From 371e3cbe475334e6cc9f5cba99cb0172bb3cc92c Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Thu, 16 Feb 2023 20:19:14 +0100 Subject: [PATCH 001/193] Add more types hints --- slither/__main__.py | 63 ++++--------- .../data_dependency/data_dependency.py | 88 ++++++++++++++---- slither/core/cfg/node.py | 89 ++++++++++++------- slither/core/children/child_contract.py | 9 +- slither/core/children/child_event.py | 11 ++- slither/core/children/child_expression.py | 11 ++- slither/core/children/child_function.py | 9 +- slither/core/children/child_inheritance.py | 9 +- slither/core/children/child_node.py | 11 ++- slither/core/children/child_structure.py | 9 +- slither/core/declarations/contract.py | 51 ++++++----- slither/core/declarations/custom_error.py | 4 +- .../declarations/custom_error_contract.py | 7 +- .../declarations/custom_error_top_level.py | 2 +- slither/core/declarations/function.py | 7 +- .../core/declarations/solidity_variables.py | 12 +-- slither/core/dominators/utils.py | 1 + .../core/expressions/assignment_operation.py | 2 +- slither/core/slither_core.py | 4 +- slither/core/solidity_types/array_type.py | 4 +- .../core/solidity_types/elementary_type.py | 6 +- slither/core/solidity_types/mapping_type.py | 4 +- slither/core/solidity_types/type_alias.py | 4 +- .../core/solidity_types/type_information.py | 6 +- slither/core/source_mapping/source_mapping.py | 6 +- slither/core/variables/event_variable.py | 2 +- slither/core/variables/variable.py | 6 +- slither/detectors/abstract_detector.py | 4 +- .../assembly/shift_parameter_mixup.py | 13 ++- .../attributes/const_functions_asm.py | 6 +- .../compiler_bugs/array_by_reference.py | 7 +- .../erc/erc20/arbitrary_send_erc20.py | 8 +- .../erc20/arbitrary_send_erc20_no_permit.py | 8 +- .../erc/erc20/arbitrary_send_erc20_permit.py | 8 +- .../detectors/functions/arbitrary_send_eth.py | 10 ++- .../statements/array_length_assignment.py | 3 +- slither/detectors/statements/assembly.py | 8 +- slither/slithir/operations/call.py | 7 +- slither/slithir/operations/high_level_call.py | 20 +++-- slither/slithir/operations/index.py | 26 +++--- slither/slithir/operations/library_call.py | 17 ++-- slither/slithir/operations/low_level_call.py | 6 +- slither/slithir/operations/lvalue.py | 18 ++-- slither/slithir/operations/member.py | 12 ++- slither/slithir/operations/new_contract.py | 11 ++- slither/slithir/operations/solidity_call.py | 11 +-- slither/slithir/utils/utils.py | 20 +++++ slither/tools/mutator/__main__.py | 7 +- .../mutator/mutators/abstract_mutator.py | 11 ++- 49 files changed, 422 insertions(+), 256 deletions(-) diff --git a/slither/__main__.py b/slither/__main__.py index 528a93e8f..a5d51dcd6 100644 --- a/slither/__main__.py +++ b/slither/__main__.py @@ -66,7 +66,7 @@ def process_single( args: argparse.Namespace, detector_classes: List[Type[AbstractDetector]], printer_classes: List[Type[AbstractPrinter]], -) -> Tuple[Slither, List[Dict], List[Dict], int]: +) -> Tuple[Slither, List[Dict], List[Output], int]: """ The core high-level code for running Slither static analysis. @@ -89,7 +89,7 @@ def process_all( args: argparse.Namespace, detector_classes: List[Type[AbstractDetector]], printer_classes: List[Type[AbstractPrinter]], -) -> Tuple[List[Slither], List[Dict], List[Dict], int]: +) -> Tuple[List[Slither], List[Dict], List[Output], int]: compilations = compile_all(target, **vars(args)) slither_instances = [] results_detectors = [] @@ -144,23 +144,6 @@ def _process( return slither, results_detectors, results_printers, analyzed_contracts_count -# TODO: delete me? -def process_from_asts( - filenames: List[str], - args: argparse.Namespace, - detector_classes: List[Type[AbstractDetector]], - printer_classes: List[Type[AbstractPrinter]], -) -> Tuple[Slither, List[Dict], List[Dict], int]: - all_contracts: List[str] = [] - - for filename in filenames: - with open(filename, encoding="utf8") as file_open: - contract_loaded = json.load(file_open) - all_contracts.append(contract_loaded["ast"]) - - return process_single(all_contracts, args, detector_classes, printer_classes) - - # endregion ################################################################################### ################################################################################### @@ -608,9 +591,6 @@ def parse_args( default=False, ) - # if the json is splitted in different files - parser.add_argument("--splitted", help=argparse.SUPPRESS, action="store_true", default=False) - # Disable the throw/catch on partial analyses parser.add_argument( "--disallow-partial", help=argparse.SUPPRESS, action="store_true", default=False @@ -626,7 +606,7 @@ def parse_args( args.filter_paths = parse_filter_paths(args) # Verify our json-type output is valid - args.json_types = set(args.json_types.split(",")) + args.json_types = set(args.json_types.split(",")) # type:ignore for json_type in args.json_types: if json_type not in JSON_OUTPUT_TYPES: raise Exception(f'Error: "{json_type}" is not a valid JSON result output type.') @@ -697,14 +677,14 @@ class OutputWiki(argparse.Action): # pylint: disable=too-few-public-methods class FormatterCryticCompile(logging.Formatter): - def format(self, record): + def format(self, record: logging.LogRecord) -> str: # for i, msg in enumerate(record.msg): if record.msg.startswith("Compilation warnings/errors on "): - txt = record.args[1] - txt = txt.split("\n") + txt = record.args[1] # type:ignore + txt = txt.split("\n") # type:ignore txt = [red(x) if "Error" in x else x for x in txt] txt = "\n".join(txt) - record.args = (record.args[0], txt) + record.args = (record.args[0], txt) # type:ignore return super().format(record) @@ -747,7 +727,7 @@ def main_impl( set_colorization_enabled(False if args.disable_color else sys.stdout.isatty()) # Define some variables for potential JSON output - json_results = {} + json_results: Dict[str, Any] = {} output_error = None outputting_json = args.json is not None outputting_json_stdout = args.json == "-" @@ -796,7 +776,7 @@ def main_impl( crytic_compile_error.setLevel(logging.INFO) results_detectors: List[Dict] = [] - results_printers: List[Dict] = [] + results_printers: List[Output] = [] try: filename = args.filename @@ -809,26 +789,17 @@ def main_impl( number_contracts = 0 slither_instances = [] - if args.splitted: + for filename in filenames: ( slither_instance, - results_detectors, - results_printers, - number_contracts, - ) = process_from_asts(filenames, args, detector_classes, printer_classes) + results_detectors_tmp, + results_printers_tmp, + number_contracts_tmp, + ) = process_single(filename, args, detector_classes, printer_classes) + number_contracts += number_contracts_tmp + results_detectors += results_detectors_tmp + results_printers += results_printers_tmp slither_instances.append(slither_instance) - else: - for filename in filenames: - ( - slither_instance, - results_detectors_tmp, - results_printers_tmp, - number_contracts_tmp, - ) = process_single(filename, args, detector_classes, printer_classes) - number_contracts += number_contracts_tmp - results_detectors += results_detectors_tmp - results_printers += results_printers_tmp - slither_instances.append(slither_instance) # Rely on CryticCompile to discern the underlying type of compilations. else: diff --git a/slither/analyses/data_dependency/data_dependency.py b/slither/analyses/data_dependency/data_dependency.py index b2a154672..448ee393a 100644 --- a/slither/analyses/data_dependency/data_dependency.py +++ b/slither/analyses/data_dependency/data_dependency.py @@ -4,6 +4,7 @@ from collections import defaultdict from typing import Union, Set, Dict, TYPE_CHECKING +from slither.core.cfg.node import Node from slither.core.declarations import ( Contract, Enum, @@ -12,6 +13,7 @@ from slither.core.declarations import ( SolidityVariable, SolidityVariableComposed, Structure, + FunctionContract, ) from slither.core.declarations.solidity_import_placeholder import SolidityImportPlaceHolder from slither.core.variables.top_level_variable import TopLevelVariable @@ -40,25 +42,37 @@ if TYPE_CHECKING: Variable_types = Union[Variable, SolidityVariable] +# TODO refactor the data deps to be better suited for top level function object +# Right now we allow to pass a node to ease the API, but we need something +# better +# The deps propagation for top level elements is also not working as expected +Context_types_API = Union[Contract, Function, Node] Context_types = Union[Contract, Function] def is_dependent( variable: Variable_types, source: Variable_types, - context: Context_types, + context: Context_types_API, only_unprotected: bool = False, ) -> bool: """ + If Node is provided as context, the context will be the broader context, either the contract or the function, + depending on if the node is in a top level function or not + Args: variable (Variable) source (Variable) - context (Contract|Function) + context (Contract|Function|Node). only_unprotected (bool): True only unprotected function are considered Returns: bool """ - assert isinstance(context, (Contract, Function)) + assert isinstance(context, (Contract, Function, Node)) + if isinstance(context, Node): + func = context.function + context = func.contract if isinstance(func, FunctionContract) else func + if isinstance(variable, Constant): return False if variable == source: @@ -76,10 +90,13 @@ def is_dependent( def is_dependent_ssa( variable: Variable_types, source: Variable_types, - context: Context_types, + context: Context_types_API, only_unprotected: bool = False, ) -> bool: """ + If Node is provided as context, the context will be the broader context, either the contract or the function, + depending on if the node is in a top level function or not + Args: variable (Variable) taint (Variable) @@ -88,7 +105,10 @@ def is_dependent_ssa( Returns: bool """ - assert isinstance(context, (Contract, Function)) + assert isinstance(context, (Contract, Function, Node)) + if isinstance(context, Node): + func = context.function + context = func.contract if isinstance(func, FunctionContract) else func context_dict = context.context if isinstance(variable, Constant): return False @@ -112,11 +132,14 @@ GENERIC_TAINT = { def is_tainted( variable: Variable_types, - context: Context_types, + context: Context_types_API, only_unprotected: bool = False, ignore_generic_taint: bool = False, ) -> bool: """ + If Node is provided as context, the context will be the broader context, either the contract or the function, + depending on if the node is in a top level function or not + Args: variable context (Contract|Function) @@ -124,7 +147,10 @@ def is_tainted( Returns: bool """ - assert isinstance(context, (Contract, Function)) + assert isinstance(context, (Contract, Function, Node)) + if isinstance(context, Node): + func = context.function + context = func.contract if isinstance(func, FunctionContract) else func assert isinstance(only_unprotected, bool) if isinstance(variable, Constant): return False @@ -139,11 +165,14 @@ def is_tainted( def is_tainted_ssa( variable: Variable_types, - context: Context_types, + context: Context_types_API, only_unprotected: bool = False, ignore_generic_taint: bool = False, -): +) -> bool: """ + If Node is provided as context, the context will be the broader context, either the contract or the function, + depending on if the node is in a top level function or not + Args: variable context (Contract|Function) @@ -151,7 +180,10 @@ def is_tainted_ssa( Returns: bool """ - assert isinstance(context, (Contract, Function)) + assert isinstance(context, (Contract, Function, Node)) + if isinstance(context, Node): + func = context.function + context = func.contract if isinstance(func, FunctionContract) else func assert isinstance(only_unprotected, bool) if isinstance(variable, Constant): return False @@ -166,18 +198,23 @@ def is_tainted_ssa( def get_dependencies( variable: Variable_types, - context: Context_types, + context: Context_types_API, only_unprotected: bool = False, ) -> Set[Variable]: """ Return the variables for which `variable` depends on. + If Node is provided as context, the context will be the broader context, either the contract or the function, + depending on if the node is in a top level function or not :param variable: The target :param context: Either a function (interprocedural) or a contract (inter transactional) :param only_unprotected: True if consider only protected functions :return: set(Variable) """ - assert isinstance(context, (Contract, Function)) + assert isinstance(context, (Contract, Function, Node)) + if isinstance(context, Node): + func = context.function + context = func.contract if isinstance(func, FunctionContract) else func assert isinstance(only_unprotected, bool) if only_unprotected: return context.context[KEY_NON_SSA_UNPROTECTED].get(variable, set()) @@ -185,16 +222,21 @@ def get_dependencies( def get_all_dependencies( - context: Context_types, only_unprotected: bool = False + context: Context_types_API, only_unprotected: bool = False ) -> Dict[Variable, Set[Variable]]: """ Return the dictionary of dependencies. + If Node is provided as context, the context will be the broader context, either the contract or the function, + depending on if the node is in a top level function or not :param context: Either a function (interprocedural) or a contract (inter transactional) :param only_unprotected: True if consider only protected functions :return: Dict(Variable, set(Variable)) """ - assert isinstance(context, (Contract, Function)) + assert isinstance(context, (Contract, Function, Node)) + if isinstance(context, Node): + func = context.function + context = func.contract if isinstance(func, FunctionContract) else func assert isinstance(only_unprotected, bool) if only_unprotected: return context.context[KEY_NON_SSA_UNPROTECTED] @@ -203,18 +245,23 @@ def get_all_dependencies( def get_dependencies_ssa( variable: Variable_types, - context: Context_types, + context: Context_types_API, only_unprotected: bool = False, ) -> Set[Variable]: """ Return the variables for which `variable` depends on (SSA version). + If Node is provided as context, the context will be the broader context, either the contract or the function, + depending on if the node is in a top level function or not :param variable: The target (must be SSA variable) :param context: Either a function (interprocedural) or a contract (inter transactional) :param only_unprotected: True if consider only protected functions :return: set(Variable) """ - assert isinstance(context, (Contract, Function)) + assert isinstance(context, (Contract, Function, Node)) + if isinstance(context, Node): + func = context.function + context = func.contract if isinstance(func, FunctionContract) else func assert isinstance(only_unprotected, bool) if only_unprotected: return context.context[KEY_SSA_UNPROTECTED].get(variable, set()) @@ -222,16 +269,21 @@ def get_dependencies_ssa( def get_all_dependencies_ssa( - context: Context_types, only_unprotected: bool = False + context: Context_types_API, only_unprotected: bool = False ) -> Dict[Variable, Set[Variable]]: """ Return the dictionary of dependencies. + If Node is provided as context, the context will be the broader context, either the contract or the function, + depending on if the node is in a top level function or not :param context: Either a function (interprocedural) or a contract (inter transactional) :param only_unprotected: True if consider only protected functions :return: Dict(Variable, set(Variable)) """ - assert isinstance(context, (Contract, Function)) + assert isinstance(context, (Contract, Function, Node)) + if isinstance(context, Node): + func = context.function + context = func.contract if isinstance(func, FunctionContract) else func assert isinstance(only_unprotected, bool) if only_unprotected: return context.context[KEY_SSA_UNPROTECTED] diff --git a/slither/core/cfg/node.py b/slither/core/cfg/node.py index 7643b19b7..82502f889 100644 --- a/slither/core/cfg/node.py +++ b/slither/core/cfg/node.py @@ -6,7 +6,7 @@ from typing import Optional, List, Set, Dict, Tuple, Union, TYPE_CHECKING from slither.all_exceptions import SlitherException from slither.core.children.child_function import ChildFunction -from slither.core.declarations import Contract, Function +from slither.core.declarations import Contract, Function, FunctionContract from slither.core.declarations.solidity_variables import ( SolidityVariable, SolidityFunction, @@ -33,6 +33,7 @@ from slither.slithir.operations import ( Return, Operation, ) +from slither.slithir.utils.utils import RVALUE from slither.slithir.variables import ( Constant, LocalIRVariable, @@ -146,12 +147,12 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met self._node_id: int = node_id self._vars_written: List[Variable] = [] - self._vars_read: List[Variable] = [] + self._vars_read: List[Union[Variable, SolidityVariable]] = [] self._ssa_vars_written: List["SlithIRVariable"] = [] self._ssa_vars_read: List["SlithIRVariable"] = [] - self._internal_calls: List["Function"] = [] + self._internal_calls: List[Union["Function", "SolidityFunction"]] = [] self._solidity_calls: List[SolidityFunction] = [] self._high_level_calls: List["HighLevelCallType"] = [] # contains library calls self._library_calls: List["LibraryCallType"] = [] @@ -172,7 +173,9 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met self._local_vars_read: List[LocalVariable] = [] self._local_vars_written: List[LocalVariable] = [] - self._slithir_vars: Set["SlithIRVariable"] = set() # non SSA + self._slithir_vars: Set[ + Union["SlithIRVariable", ReferenceVariable, TemporaryVariable, TupleVariable] + ] = set() # non SSA self._ssa_local_vars_read: List[LocalIRVariable] = [] self._ssa_local_vars_written: List[LocalIRVariable] = [] @@ -213,7 +216,7 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met return self._node_type @type.setter - def type(self, new_type: NodeType): + def type(self, new_type: NodeType) -> None: self._node_type = new_type @property @@ -232,7 +235,7 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met ################################################################################### @property - def variables_read(self) -> List[Variable]: + def variables_read(self) -> List[Union[Variable, SolidityVariable]]: """ list(Variable): Variables read (local/state/solidity) """ @@ -285,11 +288,13 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met return self._expression_vars_read @variables_read_as_expression.setter - def variables_read_as_expression(self, exprs: List[Expression]): + def variables_read_as_expression(self, exprs: List[Expression]) -> None: self._expression_vars_read = exprs @property - def slithir_variables(self) -> List["SlithIRVariable"]: + def slithir_variables( + self, + ) -> List[Union["SlithIRVariable", ReferenceVariable, TemporaryVariable, TupleVariable]]: return list(self._slithir_vars) @property @@ -339,7 +344,7 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met return self._expression_vars_written @variables_written_as_expression.setter - def variables_written_as_expression(self, exprs: List[Expression]): + def variables_written_as_expression(self, exprs: List[Expression]) -> None: self._expression_vars_written = exprs # endregion @@ -399,7 +404,7 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met return self._external_calls_as_expressions @external_calls_as_expressions.setter - def external_calls_as_expressions(self, exprs: List[Expression]): + def external_calls_as_expressions(self, exprs: List[Expression]) -> None: self._external_calls_as_expressions = exprs @property @@ -410,7 +415,7 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met return self._internal_calls_as_expressions @internal_calls_as_expressions.setter - def internal_calls_as_expressions(self, exprs: List[Expression]): + def internal_calls_as_expressions(self, exprs: List[Expression]) -> None: self._internal_calls_as_expressions = exprs @property @@ -418,10 +423,10 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met return list(self._expression_calls) @calls_as_expression.setter - def calls_as_expression(self, exprs: List[Expression]): + def calls_as_expression(self, exprs: List[Expression]) -> None: self._expression_calls = exprs - def can_reenter(self, callstack=None) -> bool: + def can_reenter(self, callstack: Optional[List[Union[Function, Variable]]] = None) -> bool: """ Check if the node can re-enter Do not consider CREATE as potential re-enter, but check if the @@ -567,7 +572,7 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met """ self._fathers.append(father) - def set_fathers(self, fathers: List["Node"]): + def set_fathers(self, fathers: List["Node"]) -> None: """Set the father nodes Args: @@ -663,20 +668,20 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met return self._irs_ssa @irs_ssa.setter - def irs_ssa(self, irs): + def irs_ssa(self, irs: List[Operation]) -> None: self._irs_ssa = irs def add_ssa_ir(self, ir: Operation) -> None: """ Use to place phi operation """ - ir.set_node(self) + ir.set_node(self) # type: ignore self._irs_ssa.append(ir) def slithir_generation(self) -> None: if self.expression: expression = self.expression - self._irs = convert_expression(expression, self) + self._irs = convert_expression(expression, self) # type:ignore self._find_read_write_call() @@ -713,7 +718,7 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met return self._dominators @dominators.setter - def dominators(self, dom: Set["Node"]): + def dominators(self, dom: Set["Node"]) -> None: self._dominators = dom @property @@ -725,7 +730,7 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met return self._immediate_dominator @immediate_dominator.setter - def immediate_dominator(self, idom: "Node"): + def immediate_dominator(self, idom: "Node") -> None: self._immediate_dominator = idom @property @@ -737,7 +742,7 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met return self._dominance_frontier @dominance_frontier.setter - def dominance_frontier(self, doms: Set["Node"]): + def dominance_frontier(self, doms: Set["Node"]) -> None: """ Returns: set(Node) @@ -789,6 +794,7 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met def add_phi_origin_local_variable(self, variable: LocalVariable, node: "Node") -> None: if variable.name not in self._phi_origins_local_variables: + assert variable.name self._phi_origins_local_variables[variable.name] = (variable, set()) (v, nodes) = self._phi_origins_local_variables[variable.name] assert v == variable @@ -827,7 +833,8 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met if isinstance(ir, OperationWithLValue): var = ir.lvalue if var and self._is_valid_slithir_var(var): - self._slithir_vars.add(var) + # The type is checked by is_valid_slithir_var + self._slithir_vars.add(var) # type: ignore if not isinstance(ir, (Phi, Index, Member)): self._vars_read += [v for v in ir.read if self._is_non_slithir_var(v)] @@ -835,8 +842,9 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met if isinstance(var, ReferenceVariable): self._vars_read.append(var.points_to_origin) elif isinstance(ir, (Member, Index)): + # TODO investigate types for member variable left var = ir.variable_left if isinstance(ir, Member) else ir.variable_right - if self._is_non_slithir_var(var): + if var and self._is_non_slithir_var(var): self._vars_read.append(var) if isinstance(var, ReferenceVariable): origin = var.points_to_origin @@ -860,14 +868,21 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met self._internal_calls.append(ir.function) if isinstance(ir, LowLevelCall): assert isinstance(ir.destination, (Variable, SolidityVariable)) - self._low_level_calls.append((ir.destination, ir.function_name.value)) + self._low_level_calls.append((ir.destination, str(ir.function_name.value))) elif isinstance(ir, HighLevelCall) and not isinstance(ir, LibraryCall): + # Todo investigate this if condition + # It does seem right to compare against a contract + # This might need a refactoring if isinstance(ir.destination.type, Contract): self._high_level_calls.append((ir.destination.type, ir.function)) elif ir.destination == SolidityVariable("this"): - self._high_level_calls.append((self.function.contract, ir.function)) + func = self.function + # Can't use this in a top level function + assert isinstance(func, FunctionContract) + self._high_level_calls.append((func.contract, ir.function)) else: try: + # Todo this part needs more tests and documentation self._high_level_calls.append((ir.destination.type.type, ir.function)) except AttributeError as error: # pylint: disable=raise-missing-from @@ -883,7 +898,9 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met self._vars_read = list(set(self._vars_read)) self._state_vars_read = [v for v in self._vars_read if isinstance(v, StateVariable)] self._local_vars_read = [v for v in self._vars_read if isinstance(v, LocalVariable)] - self._solidity_vars_read = [v for v in self._vars_read if isinstance(v, SolidityVariable)] + self._solidity_vars_read = [ + v_ for v_ in self._vars_read if isinstance(v_, SolidityVariable) + ] self._vars_written = list(set(self._vars_written)) self._state_vars_written = [v for v in self._vars_written if isinstance(v, StateVariable)] self._local_vars_written = [v for v in self._vars_written if isinstance(v, LocalVariable)] @@ -895,12 +912,15 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met @staticmethod def _convert_ssa(v: Variable) -> Optional[Union[StateVariable, LocalVariable]]: + non_ssa_var: Optional[Union[StateVariable, LocalVariable]] if isinstance(v, StateIRVariable): contract = v.contract + assert v.name non_ssa_var = contract.get_state_variable_from_name(v.name) return non_ssa_var assert isinstance(v, LocalIRVariable) function = v.function + assert v.name non_ssa_var = function.get_local_variable_from_name(v.name) return non_ssa_var @@ -921,10 +941,11 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met self._ssa_vars_read.append(origin) elif isinstance(ir, (Member, Index)): - if isinstance(ir.variable_right, (StateIRVariable, LocalIRVariable)): - self._ssa_vars_read.append(ir.variable_right) - if isinstance(ir.variable_right, ReferenceVariable): - origin = ir.variable_right.points_to_origin + variable_right: RVALUE = ir.variable_right + if isinstance(variable_right, (StateIRVariable, LocalIRVariable)): + self._ssa_vars_read.append(variable_right) + if isinstance(variable_right, ReferenceVariable): + origin = variable_right.points_to_origin if isinstance(origin, (StateIRVariable, LocalIRVariable)): self._ssa_vars_read.append(origin) @@ -944,20 +965,20 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met self._ssa_local_vars_read = [v for v in self._ssa_vars_read if isinstance(v, LocalVariable)] self._ssa_vars_written = list(set(self._ssa_vars_written)) self._ssa_state_vars_written = [ - v for v in self._ssa_vars_written if isinstance(v, StateVariable) + v for v in self._ssa_vars_written if v and isinstance(v, StateIRVariable) ] self._ssa_local_vars_written = [ - v for v in self._ssa_vars_written if isinstance(v, LocalVariable) + v for v in self._ssa_vars_written if v and isinstance(v, LocalIRVariable) ] vars_read = [self._convert_ssa(x) for x in self._ssa_vars_read] vars_written = [self._convert_ssa(x) for x in self._ssa_vars_written] - self._vars_read += [v for v in vars_read if v not in self._vars_read] + self._vars_read += [v_ for v_ in vars_read if v_ and v_ not in self._vars_read] self._state_vars_read = [v for v in self._vars_read if isinstance(v, StateVariable)] self._local_vars_read = [v for v in self._vars_read if isinstance(v, LocalVariable)] - self._vars_written += [v for v in vars_written if v not in self._vars_written] + self._vars_written += [v_ for v_ in vars_written if v_ and v_ not in self._vars_written] self._state_vars_written = [v for v in self._vars_written if isinstance(v, StateVariable)] self._local_vars_written = [v for v in self._vars_written if isinstance(v, LocalVariable)] @@ -974,7 +995,7 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met additional_info += " " + str(self.expression) elif self.variable_declaration: additional_info += " " + str(self.variable_declaration) - txt = self._node_type.value + additional_info + txt = str(self._node_type.value) + additional_info return txt diff --git a/slither/core/children/child_contract.py b/slither/core/children/child_contract.py index 86f9dea53..2c93d9a51 100644 --- a/slither/core/children/child_contract.py +++ b/slither/core/children/child_contract.py @@ -1,4 +1,4 @@ -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Optional from slither.core.source_mapping.source_mapping import SourceMapping @@ -9,11 +9,14 @@ if TYPE_CHECKING: class ChildContract(SourceMapping): def __init__(self) -> None: super().__init__() - self._contract = None + # TODO remove all the setters for the child objects + # And make it a constructor arguement + # This will remove the optional + self._contract: Optional["Contract"] = None def set_contract(self, contract: "Contract") -> None: self._contract = contract @property def contract(self) -> "Contract": - return self._contract + return self._contract # type: ignore diff --git a/slither/core/children/child_event.py b/slither/core/children/child_event.py index df91596e3..e9a2177c5 100644 --- a/slither/core/children/child_event.py +++ b/slither/core/children/child_event.py @@ -1,4 +1,4 @@ -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: from slither.core.declarations import Event @@ -7,11 +7,14 @@ if TYPE_CHECKING: class ChildEvent: def __init__(self) -> None: super().__init__() - self._event = None + # TODO remove all the setters for the child objects + # And make it a constructor arguement + # This will remove the optional + self._event: Optional["Event"] = None - def set_event(self, event: "Event"): + def set_event(self, event: "Event") -> None: self._event = event @property def event(self) -> "Event": - return self._event + return self._event # type: ignore diff --git a/slither/core/children/child_expression.py b/slither/core/children/child_expression.py index 0064658c0..2294cf384 100644 --- a/slither/core/children/child_expression.py +++ b/slither/core/children/child_expression.py @@ -1,4 +1,4 @@ -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Union, Optional if TYPE_CHECKING: from slither.core.expressions.expression import Expression @@ -8,11 +8,16 @@ if TYPE_CHECKING: class ChildExpression: def __init__(self) -> None: super().__init__() - self._expression = None + # TODO remove all the setters for the child objects + # And make it a constructor arguement + # This will remove the optional + self._expression: Optional[Union["Expression", "Operation"]] = None def set_expression(self, expression: Union["Expression", "Operation"]) -> None: + # TODO investigate when this can be an operation? + # It was auto generated during an AST or detectors tests self._expression = expression @property def expression(self) -> Union["Expression", "Operation"]: - return self._expression + return self._expression # type: ignore diff --git a/slither/core/children/child_function.py b/slither/core/children/child_function.py index 5367320ca..d79d12c10 100644 --- a/slither/core/children/child_function.py +++ b/slither/core/children/child_function.py @@ -1,4 +1,4 @@ -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: from slither.core.declarations import Function @@ -7,11 +7,14 @@ if TYPE_CHECKING: class ChildFunction: def __init__(self) -> None: super().__init__() - self._function = None + # TODO remove all the setters for the child objects + # And make it a constructor arguement + # This will remove the optional + self._function: Optional["Function"] = None def set_function(self, function: "Function") -> None: self._function = function @property def function(self) -> "Function": - return self._function + return self._function # type: ignore diff --git a/slither/core/children/child_inheritance.py b/slither/core/children/child_inheritance.py index 30b32f6c1..1ff1a4967 100644 --- a/slither/core/children/child_inheritance.py +++ b/slither/core/children/child_inheritance.py @@ -1,4 +1,4 @@ -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: from slither.core.declarations import Contract @@ -7,11 +7,14 @@ if TYPE_CHECKING: class ChildInheritance: def __init__(self) -> None: super().__init__() - self._contract_declarer = None + # TODO remove all the setters for the child objects + # And make it a constructor arguement + # This will remove the optional + self._contract_declarer: Optional["Contract"] = None def set_contract_declarer(self, contract: "Contract") -> None: self._contract_declarer = contract @property def contract_declarer(self) -> "Contract": - return self._contract_declarer + return self._contract_declarer # type: ignore diff --git a/slither/core/children/child_node.py b/slither/core/children/child_node.py index 8e6e1f0b5..998ec5ea4 100644 --- a/slither/core/children/child_node.py +++ b/slither/core/children/child_node.py @@ -1,4 +1,4 @@ -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: from slither.core.compilation_unit import SlitherCompilationUnit @@ -9,14 +9,17 @@ if TYPE_CHECKING: class ChildNode: def __init__(self) -> None: super().__init__() - self._node = None + # TODO remove all the setters for the child objects + # And make it a constructor arguement + # This will remove the optional + self._node: Optional["Node"] = None def set_node(self, node: "Node") -> None: self._node = node @property def node(self) -> "Node": - return self._node + return self._node # type:ignore @property def function(self) -> "Function": @@ -24,7 +27,7 @@ class ChildNode: @property def contract(self) -> "Contract": - return self.node.function.contract + return self.node.function.contract # type: ignore @property def compilation_unit(self) -> "SlitherCompilationUnit": diff --git a/slither/core/children/child_structure.py b/slither/core/children/child_structure.py index abcb041c2..413d7f4df 100644 --- a/slither/core/children/child_structure.py +++ b/slither/core/children/child_structure.py @@ -1,4 +1,4 @@ -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: from slither.core.declarations import Structure @@ -7,11 +7,14 @@ if TYPE_CHECKING: class ChildStructure: def __init__(self) -> None: super().__init__() - self._structure = None + # TODO remove all the setters for the child objects + # And make it a constructor arguement + # This will remove the optional + self._structure: Optional["Structure"] = None def set_structure(self, structure: "Structure") -> None: self._structure = structure @property def structure(self) -> "Structure": - return self._structure + return self._structure # type: ignore diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index 2d2d10b04..d3c016b4b 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -81,7 +81,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods # The only str is "*" self._using_for: Dict[Union[str, Type], List[Type]] = {} - self._using_for_complete: Dict[Union[str, Type], List[Type]] = None + self._using_for_complete: Optional[Dict[Union[str, Type], List[Type]]] = None self._kind: Optional[str] = None self._is_interface: bool = False self._is_library: bool = False @@ -275,7 +275,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods Dict[Union[str, Type], List[Type]]: Dict of merged local using for directive with top level directive """ - def _merge_using_for(uf1, uf2): + def _merge_using_for(uf1: Dict, uf2: Dict) -> Dict: result = {**uf1, **uf2} for key, value in result.items(): if key in uf1 and key in uf2: @@ -524,14 +524,14 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods """ return list(self._functions.values()) - def available_functions_as_dict(self) -> Dict[str, "FunctionContract"]: + def available_functions_as_dict(self) -> Dict[str, "Function"]: if self._available_functions_as_dict is None: self._available_functions_as_dict = { f.full_name: f for f in self._functions.values() if not f.is_shadowed } return self._available_functions_as_dict - def add_function(self, func: "FunctionContract"): + def add_function(self, func: "FunctionContract") -> None: self._functions[func.canonical_name] = func def set_functions(self, functions: Dict[str, "FunctionContract"]) -> None: @@ -699,7 +699,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods list(Contract): Return the list of contracts derived from self """ candidates = self.compilation_unit.contracts - return [c for c in candidates if self in c.inheritance] + return [c for c in candidates if self in c.inheritance] # type: ignore # endregion ################################################################################### @@ -855,7 +855,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods """ return next((e for e in self.enums if e.name == enum_name), None) - def get_enum_from_canonical_name(self, enum_name) -> Optional["Enum"]: + def get_enum_from_canonical_name(self, enum_name: str) -> Optional["Enum"]: """ Return an enum from a canonical name Args: @@ -956,7 +956,9 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods ################################################################################### ################################################################################### - def get_summary(self, include_shadowed=True) -> Tuple[str, List[str], List[str], List, List]: + def get_summary( + self, include_shadowed: bool = True + ) -> Tuple[str, List[str], List[str], List, List]: """Return the function summary :param include_shadowed: boolean to indicate if shadowed functions should be included (default True) @@ -1209,7 +1211,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods @property def is_test(self) -> bool: - return is_test_contract(self) or self.is_truffle_migration + return is_test_contract(self) or self.is_truffle_migration # type: ignore # endregion ################################################################################### @@ -1219,7 +1221,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods ################################################################################### def update_read_write_using_ssa(self) -> None: - for function in self.functions + self.modifiers: + for function in self.functions + list(self.modifiers): function.update_read_write_using_ssa() # endregion @@ -1254,7 +1256,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods return self._is_upgradeable @is_upgradeable.setter - def is_upgradeable(self, upgradeable: bool): + def is_upgradeable(self, upgradeable: bool) -> None: self._is_upgradeable = upgradeable @property @@ -1283,7 +1285,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods return self._is_upgradeable_proxy @is_upgradeable_proxy.setter - def is_upgradeable_proxy(self, upgradeable_proxy: bool): + def is_upgradeable_proxy(self, upgradeable_proxy: bool) -> None: self._is_upgradeable_proxy = upgradeable_proxy @property @@ -1291,7 +1293,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods return self._upgradeable_version @upgradeable_version.setter - def upgradeable_version(self, version_name: str): + def upgradeable_version(self, version_name: str) -> None: self._upgradeable_version = version_name # endregion @@ -1310,7 +1312,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods return self._is_incorrectly_parsed @is_incorrectly_constructed.setter - def is_incorrectly_constructed(self, incorrect: bool): + def is_incorrectly_constructed(self, incorrect: bool) -> None: self._is_incorrectly_parsed = incorrect def add_constructor_variables(self) -> None: @@ -1322,8 +1324,8 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods constructor_variable = FunctionContract(self.compilation_unit) constructor_variable.set_function_type(FunctionType.CONSTRUCTOR_VARIABLES) - constructor_variable.set_contract(self) - constructor_variable.set_contract_declarer(self) + constructor_variable.set_contract(self) # type: ignore + constructor_variable.set_contract_declarer(self) # type: ignore constructor_variable.set_visibility("internal") # For now, source mapping of the constructor variable is the whole contract # Could be improved with a targeted source mapping @@ -1354,8 +1356,8 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods constructor_variable.set_function_type( FunctionType.CONSTRUCTOR_CONSTANT_VARIABLES ) - constructor_variable.set_contract(self) - constructor_variable.set_contract_declarer(self) + constructor_variable.set_contract(self) # type: ignore + constructor_variable.set_contract_declarer(self) # type: ignore constructor_variable.set_visibility("internal") # For now, source mapping of the constructor variable is the whole contract # Could be improved with a targeted source mapping @@ -1436,22 +1438,23 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods all_ssa_state_variables_instances[v.canonical_name] = new_var self._initial_state_variables.append(new_var) - for func in self.functions + self.modifiers: + for func in self.functions + list(self.modifiers): func.generate_slithir_ssa(all_ssa_state_variables_instances) def fix_phi(self) -> None: - last_state_variables_instances = {} - initial_state_variables_instances = {} + last_state_variables_instances: Dict[str, List["StateVariable"]] = {} + initial_state_variables_instances: Dict[str, "StateVariable"] = {} for v in self._initial_state_variables: last_state_variables_instances[v.canonical_name] = [] initial_state_variables_instances[v.canonical_name] = v - for func in self.functions + self.modifiers: + for func in self.functions + list(self.modifiers): result = func.get_last_ssa_state_variables_instances() for variable_name, instances in result.items(): + # TODO: investigate the next operation last_state_variables_instances[variable_name] += instances - for func in self.functions + self.modifiers: + for func in self.functions + list(self.modifiers): func.fix_phi(last_state_variables_instances, initial_state_variables_instances) # endregion @@ -1461,7 +1464,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods ################################################################################### ################################################################################### - def __eq__(self, other: SourceMapping) -> bool: + def __eq__(self, other: Any) -> bool: if isinstance(other, str): return other == self.name return NotImplemented @@ -1475,6 +1478,6 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods return self.name def __hash__(self) -> int: - return self._id + return self._id # type:ignore # endregion diff --git a/slither/core/declarations/custom_error.py b/slither/core/declarations/custom_error.py index 5e851c8da..c566fccec 100644 --- a/slither/core/declarations/custom_error.py +++ b/slither/core/declarations/custom_error.py @@ -51,7 +51,7 @@ class CustomError(SourceMapping): return str(t) @property - def solidity_signature(self) -> Optional[str]: + def solidity_signature(self) -> str: """ Return a signature following the Solidity Standard Contract and converted into address @@ -63,7 +63,7 @@ class CustomError(SourceMapping): # (set_solidity_sig was not called before find_variable) if self._solidity_signature is None: raise ValueError("Custom Error not yet built") - return self._solidity_signature + return self._solidity_signature # type: ignore def set_solidity_sig(self) -> None: """ diff --git a/slither/core/declarations/custom_error_contract.py b/slither/core/declarations/custom_error_contract.py index a96f12057..d5b7b6a92 100644 --- a/slither/core/declarations/custom_error_contract.py +++ b/slither/core/declarations/custom_error_contract.py @@ -1,9 +1,14 @@ +from typing import TYPE_CHECKING + from slither.core.children.child_contract import ChildContract from slither.core.declarations.custom_error import CustomError +if TYPE_CHECKING: + from slither.core.declarations import Contract + class CustomErrorContract(CustomError, ChildContract): - def is_declared_by(self, contract): + def is_declared_by(self, contract: "Contract") -> bool: """ Check if the element is declared by the contract :param contract: diff --git a/slither/core/declarations/custom_error_top_level.py b/slither/core/declarations/custom_error_top_level.py index 29a9fd41a..64a6a8535 100644 --- a/slither/core/declarations/custom_error_top_level.py +++ b/slither/core/declarations/custom_error_top_level.py @@ -9,6 +9,6 @@ if TYPE_CHECKING: class CustomErrorTopLevel(CustomError, TopLevel): - def __init__(self, compilation_unit: "SlitherCompilationUnit", scope: "FileScope"): + def __init__(self, compilation_unit: "SlitherCompilationUnit", scope: "FileScope") -> None: super().__init__(compilation_unit) self.file_scope: "FileScope" = scope diff --git a/slither/core/declarations/function.py b/slither/core/declarations/function.py index c383fc99b..e77801961 100644 --- a/slither/core/declarations/function.py +++ b/slither/core/declarations/function.py @@ -47,7 +47,6 @@ if TYPE_CHECKING: from slither.core.compilation_unit import SlitherCompilationUnit from slither.core.scope.scope import FileScope from slither.slithir.variables.state_variable import StateIRVariable - from slither.core.declarations.function_contract import FunctionContract LOGGER = logging.getLogger("Function") ReacheableNode = namedtuple("ReacheableNode", ["node", "ir"]) @@ -298,7 +297,7 @@ class Function(SourceMapping, metaclass=ABCMeta): # pylint: disable=too-many-pu def contains_assembly(self, c: bool): self._contains_assembly = c - def can_reenter(self, callstack: Optional[List["FunctionContract"]] = None) -> bool: + def can_reenter(self, callstack: Optional[List[Union["Function", "Variable"]]] = None) -> bool: """ Check if the function can re-enter Follow internal calls. @@ -1720,8 +1719,8 @@ class Function(SourceMapping, metaclass=ABCMeta): # pylint: disable=too-many-pu def fix_phi( self, - last_state_variables_instances: Dict[str, List["StateIRVariable"]], - initial_state_variables_instances: Dict[str, "StateIRVariable"], + last_state_variables_instances: Dict[str, List["StateVariable"]], + initial_state_variables_instances: Dict[str, "StateVariable"], ) -> None: from slither.slithir.operations import InternalCall, PhiCallback from slither.slithir.variables import Constant, StateIRVariable diff --git a/slither/core/declarations/solidity_variables.py b/slither/core/declarations/solidity_variables.py index 9569cde93..f0e903d7b 100644 --- a/slither/core/declarations/solidity_variables.py +++ b/slither/core/declarations/solidity_variables.py @@ -82,7 +82,7 @@ SOLIDITY_FUNCTIONS: Dict[str, List[str]] = { } -def solidity_function_signature(name): +def solidity_function_signature(name: str) -> str: """ Return the function signature (containing the return value) It is useful if a solidity function is used as a pointer @@ -106,7 +106,7 @@ class SolidityVariable(SourceMapping): assert name in SOLIDITY_VARIABLES or name.endswith(("_slot", "_offset")) @property - def state_variable(self): + def state_variable(self) -> str: if self._name.endswith("_slot"): return self._name[:-5] if self._name.endswith("_offset"): @@ -125,7 +125,7 @@ class SolidityVariable(SourceMapping): def __str__(self) -> str: return self._name - def __eq__(self, other: SourceMapping) -> bool: + def __eq__(self, other: Any) -> bool: return self.__class__ == other.__class__ and self.name == other.name def __hash__(self) -> int: @@ -182,13 +182,13 @@ class SolidityFunction(SourceMapping): return self._return_type @return_type.setter - def return_type(self, r: List[Union[TypeInformation, ElementaryType]]): + def return_type(self, r: List[Union[TypeInformation, ElementaryType]]) -> None: self._return_type = r def __str__(self) -> str: return self._name - def __eq__(self, other: "SolidityFunction") -> bool: + def __eq__(self, other: Any) -> bool: return self.__class__ == other.__class__ and self.name == other.name def __hash__(self) -> int: @@ -201,7 +201,7 @@ class SolidityCustomRevert(SolidityFunction): self._custom_error = custom_error self._return_type: List[Union[TypeInformation, ElementaryType]] = [] - def __eq__(self, other: Union["SolidityCustomRevert", SolidityFunction]) -> bool: + def __eq__(self, other: Any) -> bool: return ( self.__class__ == other.__class__ and self.name == other.name diff --git a/slither/core/dominators/utils.py b/slither/core/dominators/utils.py index ca5c51282..4dd55749d 100644 --- a/slither/core/dominators/utils.py +++ b/slither/core/dominators/utils.py @@ -95,4 +95,5 @@ def compute_dominance_frontier(nodes: List["Node"]) -> None: runner.dominance_frontier = runner.dominance_frontier.union({node}) while runner != node.immediate_dominator: runner.dominance_frontier = runner.dominance_frontier.union({node}) + assert runner.immediate_dominator runner = runner.immediate_dominator diff --git a/slither/core/expressions/assignment_operation.py b/slither/core/expressions/assignment_operation.py index 22aba57fb..7b7bc62d6 100644 --- a/slither/core/expressions/assignment_operation.py +++ b/slither/core/expressions/assignment_operation.py @@ -91,7 +91,7 @@ class AssignmentOperation(ExpressionTyped): super().__init__() left_expression.set_lvalue() self._expressions = [left_expression, right_expression] - self._type: Optional["AssignmentOperationType"] = expression_type + self._type: AssignmentOperationType = expression_type self._expression_return_type: Optional["Type"] = expression_return_type @property diff --git a/slither/core/slither_core.py b/slither/core/slither_core.py index e5f4e830a..ba2ec802d 100644 --- a/slither/core/slither_core.py +++ b/slither/core/slither_core.py @@ -482,8 +482,8 @@ class SlitherCore(Context): ################################################################################### @property - def crytic_compile(self) -> Optional[CryticCompile]: - return self._crytic_compile + def crytic_compile(self) -> CryticCompile: + return self._crytic_compile # type: ignore # endregion ################################################################################### diff --git a/slither/core/solidity_types/array_type.py b/slither/core/solidity_types/array_type.py index 9a0b12c00..cdb8c10c7 100644 --- a/slither/core/solidity_types/array_type.py +++ b/slither/core/solidity_types/array_type.py @@ -4,11 +4,11 @@ from slither.core.expressions.expression import Expression from slither.core.solidity_types.type import Type from slither.visitors.expression.constants_folding import ConstantFolding from slither.core.expressions.literal import Literal +from slither.core.solidity_types.elementary_type import ElementaryType if TYPE_CHECKING: from slither.core.expressions.binary_operation import BinaryOperation from slither.core.expressions.identifier import Identifier - from slither.core.solidity_types.elementary_type import ElementaryType from slither.core.solidity_types.function_type import FunctionType from slither.core.solidity_types.type_alias import TypeAliasTopLevel @@ -22,7 +22,7 @@ class ArrayType(Type): assert isinstance(t, Type) if length: if isinstance(length, int): - length = Literal(length, "uint256") + length = Literal(length, ElementaryType("uint256")) assert isinstance(length, Expression) super().__init__() self._type: Type = t diff --git a/slither/core/solidity_types/elementary_type.py b/slither/core/solidity_types/elementary_type.py index ec2b0ef04..a9f45c8d8 100644 --- a/slither/core/solidity_types/elementary_type.py +++ b/slither/core/solidity_types/elementary_type.py @@ -1,5 +1,5 @@ import itertools -from typing import Tuple +from typing import Tuple, Optional, Any from slither.core.solidity_types.type import Type @@ -176,7 +176,7 @@ class ElementaryType(Type): return self.type @property - def size(self) -> int: + def size(self) -> Optional[int]: """ Return the size in bits Return None if the size is not known @@ -219,7 +219,7 @@ class ElementaryType(Type): def __str__(self) -> str: return self._type - def __eq__(self, other) -> bool: + def __eq__(self, other: Any) -> bool: if not isinstance(other, ElementaryType): return False return self.type == other.type diff --git a/slither/core/solidity_types/mapping_type.py b/slither/core/solidity_types/mapping_type.py index a8acb4d9c..9741569ed 100644 --- a/slither/core/solidity_types/mapping_type.py +++ b/slither/core/solidity_types/mapping_type.py @@ -1,4 +1,4 @@ -from typing import Union, Tuple, TYPE_CHECKING +from typing import Union, Tuple, TYPE_CHECKING, Any from slither.core.solidity_types.type import Type @@ -38,7 +38,7 @@ class MappingType(Type): def __str__(self) -> str: return f"mapping({str(self._from)} => {str(self._to)})" - def __eq__(self, other): + def __eq__(self, other: Any) -> bool: if not isinstance(other, MappingType): return False return self.type_from == other.type_from and self.type_to == other.type_to diff --git a/slither/core/solidity_types/type_alias.py b/slither/core/solidity_types/type_alias.py index 5b9ea0a37..1da2d4182 100644 --- a/slither/core/solidity_types/type_alias.py +++ b/slither/core/solidity_types/type_alias.py @@ -40,7 +40,7 @@ class TypeAlias(Type): class TypeAliasTopLevel(TypeAlias, TopLevel): - def __init__(self, underlying_type: Type, name: str, scope: "FileScope") -> None: + def __init__(self, underlying_type: ElementaryType, name: str, scope: "FileScope") -> None: super().__init__(underlying_type, name) self.file_scope: "FileScope" = scope @@ -49,7 +49,7 @@ class TypeAliasTopLevel(TypeAlias, TopLevel): class TypeAliasContract(TypeAlias, ChildContract): - def __init__(self, underlying_type: Type, name: str, contract: "Contract") -> None: + def __init__(self, underlying_type: ElementaryType, name: str, contract: "Contract") -> None: super().__init__(underlying_type, name) self._contract: "Contract" = contract diff --git a/slither/core/solidity_types/type_information.py b/slither/core/solidity_types/type_information.py index 2af0b097a..9cef9352c 100644 --- a/slither/core/solidity_types/type_information.py +++ b/slither/core/solidity_types/type_information.py @@ -1,4 +1,4 @@ -from typing import Union, TYPE_CHECKING, Tuple +from typing import Union, TYPE_CHECKING, Tuple, Any from slither.core.solidity_types import ElementaryType from slither.core.solidity_types.type import Type @@ -40,10 +40,10 @@ class TypeInformation(Type): def is_dynamic(self) -> bool: raise NotImplementedError - def __str__(self): + def __str__(self) -> str: return f"type({self.type.name})" - def __eq__(self, other): + def __eq__(self, other: Any) -> bool: if not isinstance(other, TypeInformation): return False return self.type == other.type diff --git a/slither/core/source_mapping/source_mapping.py b/slither/core/source_mapping/source_mapping.py index a0fcf354a..4c8742b22 100644 --- a/slither/core/source_mapping/source_mapping.py +++ b/slither/core/source_mapping/source_mapping.py @@ -1,6 +1,6 @@ import re from abc import ABCMeta -from typing import Dict, Union, List, Tuple, TYPE_CHECKING, Optional +from typing import Dict, Union, List, Tuple, TYPE_CHECKING, Optional, Any from Crypto.Hash import SHA1 from crytic_compile.utils.naming import Filename @@ -102,10 +102,10 @@ class Source: filename_short: str = self.filename.short if self.filename.short else "" return f"{filename_short}{lines}" - def __hash__(self): + def __hash__(self) -> int: return hash(str(self)) - def __eq__(self, other): + def __eq__(self, other: Any) -> bool: if not isinstance(other, type(self)): return NotImplemented return ( diff --git a/slither/core/variables/event_variable.py b/slither/core/variables/event_variable.py index f3ad60d0b..e191433dc 100644 --- a/slither/core/variables/event_variable.py +++ b/slither/core/variables/event_variable.py @@ -16,5 +16,5 @@ class EventVariable(ChildEvent, Variable): return self._indexed @indexed.setter - def indexed(self, is_indexed: bool): + def indexed(self, is_indexed: bool) -> bool: self._indexed = is_indexed diff --git a/slither/core/variables/variable.py b/slither/core/variables/variable.py index 8607a8921..c775e7c98 100644 --- a/slither/core/variables/variable.py +++ b/slither/core/variables/variable.py @@ -55,7 +55,7 @@ class Variable(SourceMapping): return self._initialized @initialized.setter - def initialized(self, is_init: bool): + def initialized(self, is_init: bool) -> None: self._initialized = is_init @property @@ -73,7 +73,7 @@ class Variable(SourceMapping): return self._name @name.setter - def name(self, name): + def name(self, name: str) -> None: self._name = name @property @@ -89,7 +89,7 @@ class Variable(SourceMapping): return self._is_constant @is_constant.setter - def is_constant(self, is_cst: bool): + def is_constant(self, is_cst: bool) -> None: self._is_constant = is_cst @property diff --git a/slither/detectors/abstract_detector.py b/slither/detectors/abstract_detector.py index 8e2dd490d..59f8ca3a0 100644 --- a/slither/detectors/abstract_detector.py +++ b/slither/detectors/abstract_detector.py @@ -59,6 +59,8 @@ ALL_SOLC_VERSIONS_06 = make_solc_versions(6, 0, 12) ALL_SOLC_VERSIONS_07 = make_solc_versions(7, 0, 6) # No VERSIONS_08 as it is still in dev +DETECTOR_INFO = Union[str, List[Union[str, SupportedOutput]]] + class AbstractDetector(metaclass=abc.ABCMeta): ARGUMENT = "" # run the detector with slither.py --ARGUMENT @@ -251,7 +253,7 @@ class AbstractDetector(metaclass=abc.ABCMeta): def generate_result( self, - info: Union[str, List[Union[str, SupportedOutput]]], + info: DETECTOR_INFO, additional_fields: Optional[Dict] = None, ) -> Output: output = Output( diff --git a/slither/detectors/assembly/shift_parameter_mixup.py b/slither/detectors/assembly/shift_parameter_mixup.py index 31dad2371..a4169499a 100644 --- a/slither/detectors/assembly/shift_parameter_mixup.py +++ b/slither/detectors/assembly/shift_parameter_mixup.py @@ -1,5 +1,9 @@ from typing import List -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import Binary, BinaryType from slither.slithir.variables import Constant from slither.core.declarations.function_contract import FunctionContract @@ -49,7 +53,12 @@ The shift statement will right-shift the constant 8 by `a` bits""" BinaryType.RIGHT_SHIFT, ]: if isinstance(ir.variable_left, Constant): - info = [f, " contains an incorrect shift operation: ", node, "\n"] + info: DETECTOR_INFO = [ + f, + " contains an incorrect shift operation: ", + node, + "\n", + ] json = self.generate_result(info) results.append(json) diff --git a/slither/detectors/attributes/const_functions_asm.py b/slither/detectors/attributes/const_functions_asm.py index e3a938361..6de5062d8 100644 --- a/slither/detectors/attributes/const_functions_asm.py +++ b/slither/detectors/attributes/const_functions_asm.py @@ -7,6 +7,7 @@ from slither.detectors.abstract_detector import ( AbstractDetector, DetectorClassification, ALL_SOLC_VERSIONS_04, + DETECTOR_INFO, ) from slither.formatters.attributes.const_functions import custom_format from slither.utils.output import Output @@ -73,7 +74,10 @@ All the calls to `get` revert, breaking Bob's smart contract execution.""" if f.contains_assembly: attr = "view" if f.view else "pure" - info = [f, f" is declared {attr} but contains assembly code\n"] + info: DETECTOR_INFO = [ + f, + f" is declared {attr} but contains assembly code\n", + ] res = self.generate_result(info, {"contains_assembly": True}) results.append(res) diff --git a/slither/detectors/compiler_bugs/array_by_reference.py b/slither/detectors/compiler_bugs/array_by_reference.py index 83ed69b9b..fffe93847 100644 --- a/slither/detectors/compiler_bugs/array_by_reference.py +++ b/slither/detectors/compiler_bugs/array_by_reference.py @@ -105,7 +105,12 @@ As a result, Bob's usage of the contract is incorrect.""" write to the array unsuccessfully. """ # Define our resulting array. - results = [] + results: List[ + Union[ + Tuple[Node, StateVariable, FunctionContract], + Tuple[Node, LocalVariable, FunctionContract], + ] + ] = [] # Verify we have functions in our list to check for. if not array_modifying_funcs: diff --git a/slither/detectors/erc/erc20/arbitrary_send_erc20.py b/slither/detectors/erc/erc20/arbitrary_send_erc20.py index 17b1fba30..f06005459 100644 --- a/slither/detectors/erc/erc20/arbitrary_send_erc20.py +++ b/slither/detectors/erc/erc20/arbitrary_send_erc20.py @@ -61,12 +61,12 @@ class ArbitrarySendErc20: is_dependent( ir.arguments[0], SolidityVariableComposed("msg.sender"), - node.function.contract, + node, ) or is_dependent( ir.arguments[0], SolidityVariable("this"), - node.function.contract, + node, ) ) ): @@ -79,12 +79,12 @@ class ArbitrarySendErc20: is_dependent( ir.arguments[1], SolidityVariableComposed("msg.sender"), - node.function.contract, + node, ) or is_dependent( ir.arguments[1], SolidityVariable("this"), - node.function.contract, + node, ) ) ): diff --git a/slither/detectors/erc/erc20/arbitrary_send_erc20_no_permit.py b/slither/detectors/erc/erc20/arbitrary_send_erc20_no_permit.py index f43b6302e..351f1dcfa 100644 --- a/slither/detectors/erc/erc20/arbitrary_send_erc20_no_permit.py +++ b/slither/detectors/erc/erc20/arbitrary_send_erc20_no_permit.py @@ -1,5 +1,9 @@ from typing import List -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output from .arbitrary_send_erc20 import ArbitrarySendErc20 @@ -38,7 +42,7 @@ Use `msg.sender` as `from` in transferFrom. arbitrary_sends.detect() for node in arbitrary_sends.no_permit_results: func = node.function - info = [func, " uses arbitrary from in transferFrom: ", node, "\n"] + info: DETECTOR_INFO = [func, " uses arbitrary from in transferFrom: ", node, "\n"] res = self.generate_result(info) results.append(res) diff --git a/slither/detectors/erc/erc20/arbitrary_send_erc20_permit.py b/slither/detectors/erc/erc20/arbitrary_send_erc20_permit.py index 1d311c442..ca4c4a793 100644 --- a/slither/detectors/erc/erc20/arbitrary_send_erc20_permit.py +++ b/slither/detectors/erc/erc20/arbitrary_send_erc20_permit.py @@ -1,5 +1,9 @@ from typing import List -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output from .arbitrary_send_erc20 import ArbitrarySendErc20 @@ -41,7 +45,7 @@ Ensure that the underlying ERC20 token correctly implements a permit function. arbitrary_sends.detect() for node in arbitrary_sends.permit_results: func = node.function - info = [ + info: DETECTOR_INFO = [ func, " uses arbitrary from in transferFrom in combination with permit: ", node, diff --git a/slither/detectors/functions/arbitrary_send_eth.py b/slither/detectors/functions/arbitrary_send_eth.py index 390b1f2ab..e0112c6e1 100644 --- a/slither/detectors/functions/arbitrary_send_eth.py +++ b/slither/detectors/functions/arbitrary_send_eth.py @@ -39,6 +39,10 @@ def arbitrary_send(func: Function) -> Union[bool, List[Node]]: ret: List[Node] = [] for node in func.nodes: + func = node.function + deps_target: Union[Contract, Function] = ( + func.contract if isinstance(func, FunctionContract) else func + ) for ir in node.irs: if isinstance(ir, SolidityCall): if ir.function == SolidityFunction("ecrecover(bytes32,uint8,bytes32,bytes32)"): @@ -49,7 +53,7 @@ def arbitrary_send(func: Function) -> Union[bool, List[Node]]: if is_dependent( ir.variable_right, SolidityVariableComposed("msg.sender"), - func.contract, + deps_target, ): return False if isinstance(ir, (HighLevelCall, LowLevelCall, Transfer, Send)): @@ -64,11 +68,11 @@ def arbitrary_send(func: Function) -> Union[bool, List[Node]]: if is_dependent( ir.call_value, SolidityVariableComposed("msg.value"), - func.contract, + node, ): continue - if is_tainted(ir.destination, func.contract): + if is_tainted(ir.destination, node): ret.append(node) return ret diff --git a/slither/detectors/statements/array_length_assignment.py b/slither/detectors/statements/array_length_assignment.py index 51302a2c9..f4ae01b88 100644 --- a/slither/detectors/statements/array_length_assignment.py +++ b/slither/detectors/statements/array_length_assignment.py @@ -7,6 +7,7 @@ from slither.detectors.abstract_detector import ( DetectorClassification, ALL_SOLC_VERSIONS_04, ALL_SOLC_VERSIONS_05, + DETECTOR_INFO, ) from slither.core.cfg.node import Node, NodeType from slither.slithir.operations import Assignment, Length @@ -120,7 +121,7 @@ Otherwise, thoroughly review the contract to ensure a user-controlled variable c for contract in self.contracts: array_length_assignments = detect_array_length_assignment(contract) if array_length_assignments: - contract_info = [ + contract_info: DETECTOR_INFO = [ contract, " contract sets array length with a user-controlled value:\n", ] diff --git a/slither/detectors/statements/assembly.py b/slither/detectors/statements/assembly.py index 2c0c49f09..25b5d8034 100644 --- a/slither/detectors/statements/assembly.py +++ b/slither/detectors/statements/assembly.py @@ -6,7 +6,11 @@ from typing import List, Tuple from slither.core.cfg.node import Node, NodeType from slither.core.declarations.contract import Contract from slither.core.declarations.function_contract import FunctionContract -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -52,7 +56,7 @@ class Assembly(AbstractDetector): for c in self.contracts: values = self.detect_assembly(c) for func, nodes in values: - info = [func, " uses assembly\n"] + info: DETECTOR_INFO = [func, " uses assembly\n"] # sort the nodes to get deterministic results nodes.sort(key=lambda x: x.node_id) diff --git a/slither/slithir/operations/call.py b/slither/slithir/operations/call.py index 07304fa99..37a2fe0b3 100644 --- a/slither/slithir/operations/call.py +++ b/slither/slithir/operations/call.py @@ -1,5 +1,7 @@ -from typing import Optional, List +from typing import Optional, List, Union +from slither.core.declarations import Function +from slither.core.variables import Variable from slither.slithir.operations.operation import Operation @@ -16,7 +18,8 @@ class Call(Operation): def arguments(self, v): self._arguments = v - def can_reenter(self, _callstack: Optional[List] = None) -> bool: # pylint: disable=no-self-use + # pylint: disable=no-self-use + def can_reenter(self, _callstack: Optional[List[Union[Function, Variable]]] = None) -> bool: """ Must be called after slithIR analysis pass :return: bool diff --git a/slither/slithir/operations/high_level_call.py b/slither/slithir/operations/high_level_call.py index 93fb73bd4..d707e11b3 100644 --- a/slither/slithir/operations/high_level_call.py +++ b/slither/slithir/operations/high_level_call.py @@ -1,5 +1,6 @@ from typing import List, Optional, Union +from slither.core.declarations import Contract from slither.slithir.operations.call import Call from slither.slithir.operations.lvalue import OperationWithLValue from slither.core.variables.variable import Variable @@ -32,7 +33,8 @@ class HighLevelCall(Call, OperationWithLValue): assert is_valid_lvalue(result) or result is None self._check_destination(destination) super().__init__() - self._destination = destination + # Contract is only possible for library call, which inherits from highlevelcall + self._destination: Union[Variable, SolidityVariable, Contract] = destination # type: ignore self._function_name = function_name self._nbr_arguments = nbr_arguments self._type_call = type_call @@ -44,8 +46,9 @@ class HighLevelCall(Call, OperationWithLValue): self._call_gas = None # Development function, to be removed once the code is stable - # It is ovveride by LbraryCall - def _check_destination(self, destination: SourceMapping) -> None: # pylint: disable=no-self-use + # It is overridden by LibraryCall + # pylint: disable=no-self-use + def _check_destination(self, destination: Union[Variable, SolidityVariable, Contract]) -> None: assert isinstance(destination, (Variable, SolidityVariable)) @property @@ -79,7 +82,14 @@ class HighLevelCall(Call, OperationWithLValue): return [x for x in all_read if x] + [self.destination] @property - def destination(self) -> SourceMapping: + def destination(self) -> Union[Variable, SolidityVariable, Contract]: + """ + Return a variable or a solidityVariable + Contract is only possible for LibraryCall + + Returns: + + """ return self._destination @property @@ -116,7 +126,7 @@ class HighLevelCall(Call, OperationWithLValue): return True return False - def can_reenter(self, callstack: None = None) -> bool: + def can_reenter(self, callstack: Optional[List[Union[Function, Variable]]] = None) -> bool: """ Must be called after slithIR analysis pass For Solidity > 0.5, filter access to public variables and constant/pure/view diff --git a/slither/slithir/operations/index.py b/slither/slithir/operations/index.py index ade84fe1d..77daa9462 100644 --- a/slither/slithir/operations/index.py +++ b/slither/slithir/operations/index.py @@ -1,20 +1,20 @@ from typing import List, Union + from slither.core.declarations import SolidityVariableComposed -from slither.slithir.operations.lvalue import OperationWithLValue -from slither.slithir.utils.utils import is_valid_lvalue, is_valid_rvalue -from slither.slithir.variables.reference import ReferenceVariable from slither.core.solidity_types.elementary_type import ElementaryType from slither.core.source_mapping.source_mapping import SourceMapping from slither.core.variables.variable import Variable -from slither.slithir.variables.reference_ssa import ReferenceVariableSSA +from slither.slithir.operations.lvalue import OperationWithLValue +from slither.slithir.utils.utils import is_valid_lvalue, is_valid_rvalue, RVALUE, LVALUE +from slither.slithir.variables.reference import ReferenceVariable class Index(OperationWithLValue): def __init__( self, - result: Union[ReferenceVariable, ReferenceVariableSSA], + result: ReferenceVariable, left_variable: Variable, - right_variable: SourceMapping, + right_variable: RVALUE, index_type: Union[ElementaryType, str], ) -> None: super().__init__() @@ -25,23 +25,23 @@ class Index(OperationWithLValue): assert isinstance(result, ReferenceVariable) self._variables = [left_variable, right_variable] self._type = index_type - self._lvalue = result + self._lvalue: ReferenceVariable = result @property def read(self) -> List[SourceMapping]: return list(self.variables) @property - def variables(self) -> List[SourceMapping]: - return self._variables + def variables(self) -> List[Union[LVALUE, RVALUE, SolidityVariableComposed]]: + return self._variables # type: ignore @property - def variable_left(self) -> Variable: - return self._variables[0] + def variable_left(self) -> Union[LVALUE, SolidityVariableComposed]: + return self._variables[0] # type: ignore @property - def variable_right(self) -> SourceMapping: - return self._variables[1] + def variable_right(self) -> RVALUE: + return self._variables[1] # type: ignore @property def index_type(self) -> Union[ElementaryType, str]: diff --git a/slither/slithir/operations/library_call.py b/slither/slithir/operations/library_call.py index ebe9bf5ef..1b7f4e8a6 100644 --- a/slither/slithir/operations/library_call.py +++ b/slither/slithir/operations/library_call.py @@ -1,4 +1,7 @@ -from slither.core.declarations import Function +from typing import Union, Optional, List + +from slither.core.declarations import Function, SolidityVariable +from slither.core.variables import Variable from slither.slithir.operations.high_level_call import HighLevelCall from slither.core.declarations.contract import Contract @@ -9,10 +12,10 @@ class LibraryCall(HighLevelCall): """ # Development function, to be removed once the code is stable - def _check_destination(self, destination: Contract) -> None: + def _check_destination(self, destination: Union[Variable, SolidityVariable, Contract]) -> None: assert isinstance(destination, Contract) - def can_reenter(self, callstack: None = None) -> bool: + def can_reenter(self, callstack: Optional[List[Union[Function, Variable]]] = None) -> bool: """ Must be called after slithIR analysis pass :return: bool @@ -20,11 +23,11 @@ class LibraryCall(HighLevelCall): if self.is_static_call(): return False # In case of recursion, return False - callstack = [] if callstack is None else callstack - if self.function in callstack: + callstack_local = [] if callstack is None else callstack + if self.function in callstack_local: return False - callstack = callstack + [self.function] - return self.function.can_reenter(callstack) + callstack_local = callstack_local + [self.function] + return self.function.can_reenter(callstack_local) def __str__(self): gas = "" diff --git a/slither/slithir/operations/low_level_call.py b/slither/slithir/operations/low_level_call.py index 7e8c278b8..eac779d27 100644 --- a/slither/slithir/operations/low_level_call.py +++ b/slither/slithir/operations/low_level_call.py @@ -1,4 +1,6 @@ -from typing import List, Union +from typing import List, Union, Optional + +from slither.core.declarations import Function from slither.slithir.operations.call import Call from slither.slithir.operations.lvalue import OperationWithLValue from slither.core.variables.variable import Variable @@ -74,7 +76,7 @@ class LowLevelCall(Call, OperationWithLValue): # pylint: disable=too-many-insta # remove None return self._unroll([x for x in all_read if x]) - def can_reenter(self, _callstack: None = None) -> bool: + def can_reenter(self, _callstack: Optional[List[Union[Function, Variable]]] = None) -> bool: """ Must be called after slithIR analysis pass :return: bool diff --git a/slither/slithir/operations/lvalue.py b/slither/slithir/operations/lvalue.py index d9b800c92..b983d1c5d 100644 --- a/slither/slithir/operations/lvalue.py +++ b/slither/slithir/operations/lvalue.py @@ -1,4 +1,6 @@ -from typing import Any, List +from typing import Any, List, Optional + +from slither.core.variables import Variable from slither.slithir.operations.operation import Operation @@ -10,16 +12,16 @@ class OperationWithLValue(Operation): def __init__(self) -> None: super().__init__() - self._lvalue = None + self._lvalue: Optional[Variable] = None @property - def lvalue(self): + def lvalue(self) -> Optional[Variable]: return self._lvalue - @property - def used(self) -> List[Any]: - return self.read + [self.lvalue] - @lvalue.setter - def lvalue(self, lvalue): + def lvalue(self, lvalue: Variable) -> None: self._lvalue = lvalue + + @property + def used(self) -> List[Optional[Any]]: + return self.read + [self.lvalue] diff --git a/slither/slithir/operations/member.py b/slither/slithir/operations/member.py index 9a561ea87..0942813cf 100644 --- a/slither/slithir/operations/member.py +++ b/slither/slithir/operations/member.py @@ -5,7 +5,7 @@ from slither.core.declarations.enum import Enum from slither.core.declarations.solidity_import_placeholder import SolidityImportPlaceHolder from slither.core.solidity_types import ElementaryType from slither.slithir.operations.lvalue import OperationWithLValue -from slither.slithir.utils.utils import is_valid_rvalue +from slither.slithir.utils.utils import is_valid_rvalue, RVALUE from slither.slithir.variables.constant import Constant from slither.slithir.variables.reference import ReferenceVariable from slither.core.source_mapping.source_mapping import SourceMapping @@ -39,7 +39,9 @@ class Member(OperationWithLValue): assert isinstance(variable_right, Constant) assert isinstance(result, ReferenceVariable) super().__init__() - self._variable_left = variable_left + self._variable_left: Union[ + RVALUE, Contract, Enum, Function, CustomError, SolidityImportPlaceHolder, ElementaryType + ] = variable_left self._variable_right = variable_right self._lvalue = result self._gas = None @@ -50,7 +52,11 @@ class Member(OperationWithLValue): return [self.variable_left, self.variable_right] @property - def variable_left(self) -> SourceMapping: + def variable_left( + self, + ) -> Union[ + RVALUE, Contract, Enum, Function, CustomError, SolidityImportPlaceHolder, ElementaryType + ]: return self._variable_left @property diff --git a/slither/slithir/operations/new_contract.py b/slither/slithir/operations/new_contract.py index 879d12df6..8d3c949df 100644 --- a/slither/slithir/operations/new_contract.py +++ b/slither/slithir/operations/new_contract.py @@ -1,11 +1,13 @@ from typing import Optional, Any, List, Union + +from slither.core.declarations import Function +from slither.core.declarations.contract import Contract +from slither.core.variables import Variable from slither.slithir.operations import Call, OperationWithLValue from slither.slithir.utils.utils import is_valid_lvalue from slither.slithir.variables.constant import Constant -from slither.core.declarations.contract import Contract from slither.slithir.variables.temporary import TemporaryVariable from slither.slithir.variables.temporary_ssa import TemporaryVariableSSA -from slither.core.declarations.function_contract import FunctionContract class NewContract(Call, OperationWithLValue): # pylint: disable=too-many-instance-attributes @@ -58,6 +60,7 @@ class NewContract(Call, OperationWithLValue): # pylint: disable=too-many-instan def contract_created(self) -> Contract: contract_name = self.contract_name contract_instance = self.node.file_scope.get_contract_from_name(contract_name) + assert contract_instance return contract_instance ################################################################################### @@ -66,7 +69,7 @@ class NewContract(Call, OperationWithLValue): # pylint: disable=too-many-instan ################################################################################### ################################################################################### - def can_reenter(self, callstack: Optional[List[FunctionContract]] = None) -> bool: + def can_reenter(self, callstack: Optional[List[Union[Function, Variable]]] = None) -> bool: """ Must be called after slithIR analysis pass For Solidity > 0.5, filter access to public variables and constant/pure/view @@ -92,7 +95,7 @@ class NewContract(Call, OperationWithLValue): # pylint: disable=too-many-instan # endregion - def __str__(self): + def __str__(self) -> str: options = "" if self.call_value: options = f"value:{self.call_value} " diff --git a/slither/slithir/operations/solidity_call.py b/slither/slithir/operations/solidity_call.py index b059c55a6..88430f934 100644 --- a/slither/slithir/operations/solidity_call.py +++ b/slither/slithir/operations/solidity_call.py @@ -1,15 +1,16 @@ from typing import Any, List, Union -from slither.core.declarations.solidity_variables import SolidityCustomRevert, SolidityFunction -from slither.slithir.operations.call import Call -from slither.slithir.operations.lvalue import OperationWithLValue + from slither.core.children.child_node import ChildNode +from slither.core.declarations.solidity_variables import SolidityFunction from slither.core.solidity_types.elementary_type import ElementaryType +from slither.slithir.operations.call import Call +from slither.slithir.operations.lvalue import OperationWithLValue class SolidityCall(Call, OperationWithLValue): def __init__( self, - function: Union[SolidityCustomRevert, SolidityFunction], + function: SolidityFunction, nbr_arguments: int, result: ChildNode, type_call: Union[str, List[ElementaryType]], @@ -26,7 +27,7 @@ class SolidityCall(Call, OperationWithLValue): return self._unroll(self.arguments) @property - def function(self) -> Union[SolidityCustomRevert, SolidityFunction]: + def function(self) -> SolidityFunction: return self._function @property diff --git a/slither/slithir/utils/utils.py b/slither/slithir/utils/utils.py index 0a50f8e50..a0ca0bd6f 100644 --- a/slither/slithir/utils/utils.py +++ b/slither/slithir/utils/utils.py @@ -1,3 +1,5 @@ +from typing import Union + from slither.core.variables.local_variable import LocalVariable from slither.core.variables.state_variable import StateVariable @@ -10,6 +12,24 @@ from slither.slithir.variables.reference import ReferenceVariable from slither.slithir.variables.tuple import TupleVariable from slither.core.source_mapping.source_mapping import SourceMapping +RVALUE = Union[ + StateVariable, + LocalVariable, + TopLevelVariable, + TemporaryVariable, + Constant, + SolidityVariable, + ReferenceVariable, +] + +LVALUE = Union[ + StateVariable, + LocalVariable, + TemporaryVariable, + ReferenceVariable, + TupleVariable, +] + def is_valid_rvalue(v: SourceMapping) -> bool: return isinstance( diff --git a/slither/tools/mutator/__main__.py b/slither/tools/mutator/__main__.py index 27e396d0b..84286ce66 100644 --- a/slither/tools/mutator/__main__.py +++ b/slither/tools/mutator/__main__.py @@ -79,9 +79,10 @@ def main() -> None: print(args.codebase) sl = Slither(args.codebase, **vars(args)) - for M in _get_mutators(): - m = M(sl) - m.mutate() + for compilation_unit in sl.compilation_units: + for M in _get_mutators(): + m = M(compilation_unit) + m.mutate() # endregion diff --git a/slither/tools/mutator/mutators/abstract_mutator.py b/slither/tools/mutator/mutators/abstract_mutator.py index 850c3c399..169d8725e 100644 --- a/slither/tools/mutator/mutators/abstract_mutator.py +++ b/slither/tools/mutator/mutators/abstract_mutator.py @@ -3,7 +3,7 @@ import logging from enum import Enum from typing import Optional, Dict -from slither import Slither +from slither.core.compilation_unit import SlitherCompilationUnit from slither.formatters.utils.patches import apply_patch, create_diff logger = logging.getLogger("Slither") @@ -34,8 +34,11 @@ class AbstractMutator(metaclass=abc.ABCMeta): # pylint: disable=too-few-public- FAULTCLASS = FaultClass.Undefined FAULTNATURE = FaultNature.Undefined - def __init__(self, slither: Slither, rate: int = 10, seed: Optional[int] = None): - self.slither = slither + def __init__( + self, compilation_unit: SlitherCompilationUnit, rate: int = 10, seed: Optional[int] = None + ): + self.compilation_unit = compilation_unit + self.slither = compilation_unit.core self.seed = seed self.rate = rate @@ -87,7 +90,7 @@ class AbstractMutator(metaclass=abc.ABCMeta): # pylint: disable=too-few-public- continue for patch in patches: patched_txt, offset = apply_patch(patched_txt, patch, offset) - diff = create_diff(self.slither, original_txt, patched_txt, file) + diff = create_diff(self.compilation_unit, original_txt, patched_txt, file) if not diff: logger.info(f"Impossible to generate patch; empty {patches}") print(diff) From efed98327a7553badfd1c56720136637885b9207 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Fri, 17 Feb 2023 14:01:47 +0100 Subject: [PATCH 002/193] Add more types --- .../data_dependency/data_dependency.py | 30 ++-- .../analyses/write/are_variables_written.py | 29 ++-- slither/core/children/child_expression.py | 2 +- slither/core/declarations/contract.py | 2 +- slither/core/solidity_types/array_type.py | 5 +- slither/detectors/abstract_detector.py | 2 +- .../attributes/const_functions_asm.py | 6 +- .../attributes/const_functions_state.py | 9 +- .../detectors/attributes/constant_pragma.py | 15 +- .../detectors/attributes/incorrect_solc.py | 8 +- slither/detectors/attributes/locked_ether.py | 8 +- .../attributes/unimplemented_interface.py | 8 +- .../compiler_bugs/array_by_reference.py | 8 +- .../compiler_bugs/enum_conversion.py | 11 +- .../multiple_constructor_schemes.py | 11 +- .../compiler_bugs/reused_base_constructor.py | 3 +- .../storage_ABIEncoderV2_array.py | 9 +- .../storage_signed_integer_array.py | 32 ++-- ...initialized_function_ptr_in_constructor.py | 5 +- .../erc/erc20/incorrect_erc20_interface.py | 8 +- .../erc/incorrect_erc721_interface.py | 8 +- slither/detectors/examples/backdoor.py | 8 +- .../detectors/functions/arbitrary_send_eth.py | 7 +- .../functions/cyclomatic_complexity.py | 8 +- slither/detectors/functions/dead_code.py | 8 +- slither/detectors/functions/modifier.py | 12 +- .../permit_domain_signature_collision.py | 8 +- .../detectors/functions/protected_variable.py | 8 +- slither/detectors/functions/suicidal.py | 8 +- slither/detectors/functions/unimplemented.py | 14 +- .../naming_convention/naming_convention.py | 7 +- slither/detectors/operations/bad_prng.py | 9 +- .../detectors/operations/block_timestamp.py | 29 ++-- .../detectors/operations/low_level_calls.py | 8 +- .../missing_events_access_control.py | 8 +- .../operations/missing_events_arithmetic.py | 8 +- .../missing_zero_address_validation.py | 8 +- .../operations/unused_return_values.py | 8 +- .../detectors/operations/void_constructor.py | 8 +- slither/detectors/reentrancy/token.py | 8 +- .../detectors/shadowing/builtin_symbols.py | 8 +- slither/detectors/shadowing/local.py | 10 +- slither/detectors/shadowing/state.py | 8 +- slither/detectors/slither/name_reused.py | 8 +- slither/detectors/source/rtlo.py | 8 +- .../statements/array_length_assignment.py | 17 +- .../statements/assert_state_change.py | 13 +- .../statements/boolean_constant_equality.py | 8 +- .../statements/boolean_constant_misuse.py | 8 +- slither/detectors/statements/calls_in_loop.py | 8 +- .../statements/controlled_delegatecall.py | 10 +- .../statements/costly_operations_in_loop.py | 8 +- .../statements/delegatecall_in_loop.py | 13 +- .../detectors/statements/deprecated_calls.py | 8 +- .../statements/divide_before_multiply.py | 35 ++-- .../detectors/statements/mapping_deletion.py | 8 +- .../detectors/statements/msg_value_in_loop.py | 8 +- .../statements/redundant_statements.py | 14 +- .../detectors/statements/too_many_digits.py | 10 +- slither/detectors/statements/tx_origin.py | 8 +- .../statements/type_based_tautology.py | 7 +- slither/detectors/statements/unary.py | 11 +- .../statements/unprotected_upgradeable.py | 26 +-- .../detectors/statements/write_after_write.py | 17 +- .../function_init_state_variables.py | 8 +- .../variables/predeclaration_usage_local.py | 8 +- .../detectors/variables/similar_variables.py | 14 +- .../uninitialized_state_variables.py | 8 +- .../variables/unused_state_variables.py | 25 ++- .../variables/var_read_using_this.py | 8 +- .../formatters/attributes/const_functions.py | 3 +- .../formatters/attributes/constant_pragma.py | 5 +- .../naming_convention/naming_convention.py | 163 +++++++++++++----- .../variables/unused_state_variables.py | 8 +- slither/slithir/operations/assignment.py | 37 ++-- slither/slithir/operations/binary.py | 49 +++--- slither/slithir/operations/internal_call.py | 4 +- slither/slithir/tmp_operations/argument.py | 17 +- 78 files changed, 717 insertions(+), 320 deletions(-) diff --git a/slither/analyses/data_dependency/data_dependency.py b/slither/analyses/data_dependency/data_dependency.py index 448ee393a..2b66f2bb3 100644 --- a/slither/analyses/data_dependency/data_dependency.py +++ b/slither/analyses/data_dependency/data_dependency.py @@ -16,6 +16,7 @@ from slither.core.declarations import ( FunctionContract, ) from slither.core.declarations.solidity_import_placeholder import SolidityImportPlaceHolder +from slither.core.solidity_types.type import Type from slither.core.variables.top_level_variable import TopLevelVariable from slither.core.variables.variable import Variable from slither.slithir.operations import Index, OperationWithLValue, InternalCall, Operation @@ -28,12 +29,10 @@ from slither.slithir.variables import ( TemporaryVariableSSA, TupleVariableSSA, ) -from slither.core.solidity_types.type import Type if TYPE_CHECKING: from slither.core.compilation_unit import SlitherCompilationUnit - ################################################################################### ################################################################################### # region User APIs @@ -41,7 +40,8 @@ if TYPE_CHECKING: ################################################################################### -Variable_types = Union[Variable, SolidityVariable] +SUPPORTED_TYPES = Union[Variable, SolidityVariable] + # TODO refactor the data deps to be better suited for top level function object # Right now we allow to pass a node to ease the API, but we need something # better @@ -51,8 +51,8 @@ Context_types = Union[Contract, Function] def is_dependent( - variable: Variable_types, - source: Variable_types, + variable: SUPPORTED_TYPES, + source: SUPPORTED_TYPES, context: Context_types_API, only_unprotected: bool = False, ) -> bool: @@ -88,8 +88,8 @@ def is_dependent( def is_dependent_ssa( - variable: Variable_types, - source: Variable_types, + variable: SUPPORTED_TYPES, + source: SUPPORTED_TYPES, context: Context_types_API, only_unprotected: bool = False, ) -> bool: @@ -131,7 +131,7 @@ GENERIC_TAINT = { def is_tainted( - variable: Variable_types, + variable: SUPPORTED_TYPES, context: Context_types_API, only_unprotected: bool = False, ignore_generic_taint: bool = False, @@ -164,7 +164,7 @@ def is_tainted( def is_tainted_ssa( - variable: Variable_types, + variable: SUPPORTED_TYPES, context: Context_types_API, only_unprotected: bool = False, ignore_generic_taint: bool = False, @@ -197,7 +197,7 @@ def is_tainted_ssa( def get_dependencies( - variable: Variable_types, + variable: SUPPORTED_TYPES, context: Context_types_API, only_unprotected: bool = False, ) -> Set[Variable]: @@ -244,7 +244,7 @@ def get_all_dependencies( def get_dependencies_ssa( - variable: Variable_types, + variable: SUPPORTED_TYPES, context: Context_types_API, only_unprotected: bool = False, ) -> Set[Variable]: @@ -459,7 +459,7 @@ def compute_dependency_function(function: Function) -> None: ) -def convert_variable_to_non_ssa(v: Variable_types) -> Variable_types: +def convert_variable_to_non_ssa(v: SUPPORTED_TYPES) -> SUPPORTED_TYPES: if isinstance( v, ( @@ -490,10 +490,10 @@ def convert_variable_to_non_ssa(v: Variable_types) -> Variable_types: def convert_to_non_ssa( - data_depencies: Dict[Variable_types, Set[Variable_types]] -) -> Dict[Variable_types, Set[Variable_types]]: + data_depencies: Dict[SUPPORTED_TYPES, Set[SUPPORTED_TYPES]] +) -> Dict[SUPPORTED_TYPES, Set[SUPPORTED_TYPES]]: # Need to create new set() as its changed during iteration - ret: Dict[Variable_types, Set[Variable_types]] = {} + ret: Dict[SUPPORTED_TYPES, Set[SUPPORTED_TYPES]] = {} for (k, values) in data_depencies.items(): var = convert_variable_to_non_ssa(k) if not var in ret: diff --git a/slither/analyses/write/are_variables_written.py b/slither/analyses/write/are_variables_written.py index 1b430012f..2f8f83063 100644 --- a/slither/analyses/write/are_variables_written.py +++ b/slither/analyses/write/are_variables_written.py @@ -2,10 +2,10 @@ Detect if all the given variables are written in all the paths of the function """ from collections import defaultdict -from typing import Dict, Set, List +from typing import Dict, Set, List, Any, Optional from slither.core.cfg.node import NodeType, Node -from slither.core.declarations import SolidityFunction +from slither.core.declarations import SolidityFunction, Function from slither.core.variables.variable import Variable from slither.slithir.operations import ( Index, @@ -18,7 +18,7 @@ from slither.slithir.variables import ReferenceVariable, TemporaryVariable class State: # pylint: disable=too-few-public-methods - def __init__(self): + def __init__(self) -> None: # Map node -> list of variables set # Were each variables set represents a configuration of a path # If two paths lead to the exact same set of variables written, we dont need to explore both @@ -34,11 +34,11 @@ class State: # pylint: disable=too-few-public-methods # pylint: disable=too-many-branches def _visit( - node: Node, + node: Optional[Node], state: State, variables_written: Set[Variable], variables_to_write: List[Variable], -): +) -> List[Variable]: """ Explore all the nodes to look for values not written when the node's function return Fixpoint reaches if no new written variables are found @@ -51,6 +51,8 @@ def _visit( refs = {} variables_written = set(variables_written) + if not node: + return [] for ir in node.irs: if isinstance(ir, SolidityCall): # TODO convert the revert to a THROW node @@ -70,17 +72,20 @@ def _visit( if ir.lvalue and not isinstance(ir.lvalue, (TemporaryVariable, ReferenceVariable)): variables_written.add(ir.lvalue) - lvalue = ir.lvalue + lvalue: Any = ir.lvalue while isinstance(lvalue, ReferenceVariable): if lvalue not in refs: break - if refs[lvalue] and not isinstance( - refs[lvalue], (TemporaryVariable, ReferenceVariable) + refs_lvalues = refs[lvalue] + if ( + refs_lvalues + and isinstance(refs_lvalues, Variable) + and not isinstance(refs_lvalues, (TemporaryVariable, ReferenceVariable)) ): - variables_written.add(refs[lvalue]) - lvalue = refs[lvalue] + variables_written.add(refs_lvalues) + lvalue = refs_lvalues - ret = [] + ret: List[Variable] = [] if not node.sons and node.type not in [NodeType.THROW, NodeType.RETURN]: ret += [v for v in variables_to_write if v not in variables_written] @@ -96,7 +101,7 @@ def _visit( return ret -def are_variables_written(function, variables_to_write): +def are_variables_written(function: Function, variables_to_write: List[Variable]) -> List[Variable]: """ Return the list of variable that are not written at the end of the function diff --git a/slither/core/children/child_expression.py b/slither/core/children/child_expression.py index 2294cf384..58e1ae338 100644 --- a/slither/core/children/child_expression.py +++ b/slither/core/children/child_expression.py @@ -19,5 +19,5 @@ class ChildExpression: self._expression = expression @property - def expression(self) -> Union["Expression", "Operation"]: + def expression(self) -> "Expression": return self._expression # type: ignore diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index d3c016b4b..38b4221d9 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -455,7 +455,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods ) @property - def constructors(self) -> List["Function"]: + def constructors(self) -> List["FunctionContract"]: """ Return the list of constructors (including inherited) """ diff --git a/slither/core/solidity_types/array_type.py b/slither/core/solidity_types/array_type.py index cdb8c10c7..85c2d6ba7 100644 --- a/slither/core/solidity_types/array_type.py +++ b/slither/core/solidity_types/array_type.py @@ -23,16 +23,17 @@ class ArrayType(Type): if length: if isinstance(length, int): length = Literal(length, ElementaryType("uint256")) - assert isinstance(length, Expression) + super().__init__() self._type: Type = t + assert length is None or isinstance(length, Expression) self._length: Optional[Expression] = length if length: if not isinstance(length, Literal): cf = ConstantFolding(length, "uint256") length = cf.result() - self._length_value = length + self._length_value: Optional[Literal] = length else: self._length_value = None diff --git a/slither/detectors/abstract_detector.py b/slither/detectors/abstract_detector.py index 59f8ca3a0..7bb8eb93f 100644 --- a/slither/detectors/abstract_detector.py +++ b/slither/detectors/abstract_detector.py @@ -59,7 +59,7 @@ ALL_SOLC_VERSIONS_06 = make_solc_versions(6, 0, 12) ALL_SOLC_VERSIONS_07 = make_solc_versions(7, 0, 6) # No VERSIONS_08 as it is still in dev -DETECTOR_INFO = Union[str, List[Union[str, SupportedOutput]]] +DETECTOR_INFO = List[Union[str, SupportedOutput]] class AbstractDetector(metaclass=abc.ABCMeta): diff --git a/slither/detectors/attributes/const_functions_asm.py b/slither/detectors/attributes/const_functions_asm.py index 6de5062d8..01798e085 100644 --- a/slither/detectors/attributes/const_functions_asm.py +++ b/slither/detectors/attributes/const_functions_asm.py @@ -2,7 +2,9 @@ Module detecting constant functions Recursively check the called functions """ -from typing import List +from typing import List, Dict + +from slither.core.compilation_unit import SlitherCompilationUnit from slither.detectors.abstract_detector import ( AbstractDetector, DetectorClassification, @@ -85,5 +87,5 @@ All the calls to `get` revert, breaking Bob's smart contract execution.""" return results @staticmethod - def _format(comilation_unit, result): + def _format(comilation_unit: SlitherCompilationUnit, result: Dict) -> None: custom_format(comilation_unit, result) diff --git a/slither/detectors/attributes/const_functions_state.py b/slither/detectors/attributes/const_functions_state.py index 36ea8f32d..d86ca7c0e 100644 --- a/slither/detectors/attributes/const_functions_state.py +++ b/slither/detectors/attributes/const_functions_state.py @@ -2,11 +2,14 @@ Module detecting constant functions Recursively check the called functions """ -from typing import List +from typing import List, Dict + +from slither.core.compilation_unit import SlitherCompilationUnit from slither.detectors.abstract_detector import ( AbstractDetector, DetectorClassification, ALL_SOLC_VERSIONS_04, + DETECTOR_INFO, ) from slither.formatters.attributes.const_functions import custom_format from slither.utils.output import Output @@ -74,7 +77,7 @@ All the calls to `get` revert, breaking Bob's smart contract execution.""" if variables_written: attr = "view" if f.view else "pure" - info = [ + info: DETECTOR_INFO = [ f, f" is declared {attr} but changes state variables:\n", ] @@ -89,5 +92,5 @@ All the calls to `get` revert, breaking Bob's smart contract execution.""" return results @staticmethod - def _format(slither, result): + def _format(slither: SlitherCompilationUnit, result: Dict) -> None: custom_format(slither, result) diff --git a/slither/detectors/attributes/constant_pragma.py b/slither/detectors/attributes/constant_pragma.py index 2164a78e8..2ed76c86a 100644 --- a/slither/detectors/attributes/constant_pragma.py +++ b/slither/detectors/attributes/constant_pragma.py @@ -1,9 +1,14 @@ """ Check that the same pragma is used in all the files """ -from typing import List - -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from typing import List, Dict + +from slither.core.compilation_unit import SlitherCompilationUnit +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.formatters.attributes.constant_pragma import custom_format from slither.utils.output import Output @@ -31,7 +36,7 @@ class ConstantPragma(AbstractDetector): versions = sorted(list(set(versions))) if len(versions) > 1: - info = ["Different versions of Solidity are used:\n"] + info: DETECTOR_INFO = ["Different versions of Solidity are used:\n"] info += [f"\t- Version used: {[str(v) for v in versions]}\n"] for p in sorted(pragma, key=lambda x: x.version): @@ -44,5 +49,5 @@ class ConstantPragma(AbstractDetector): return results @staticmethod - def _format(slither, result): + def _format(slither: SlitherCompilationUnit, result: Dict) -> None: custom_format(slither, result) diff --git a/slither/detectors/attributes/incorrect_solc.py b/slither/detectors/attributes/incorrect_solc.py index fa9ffd88d..393fbbfe4 100644 --- a/slither/detectors/attributes/incorrect_solc.py +++ b/slither/detectors/attributes/incorrect_solc.py @@ -5,7 +5,11 @@ import re from typing import List, Optional, Tuple -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.formatters.attributes.incorrect_solc import custom_format from slither.utils.output import Output @@ -143,7 +147,7 @@ Consider using the latest version of Solidity for testing.""" # If we found any disallowed pragmas, we output our findings. if disallowed_pragmas: for (reason, p) in disallowed_pragmas: - info = ["Pragma version", p, f" {reason}\n"] + info: DETECTOR_INFO = ["Pragma version", p, f" {reason}\n"] json = self.generate_result(info) diff --git a/slither/detectors/attributes/locked_ether.py b/slither/detectors/attributes/locked_ether.py index 2fdabaea6..a6f882922 100644 --- a/slither/detectors/attributes/locked_ether.py +++ b/slither/detectors/attributes/locked_ether.py @@ -4,7 +4,11 @@ from typing import List from slither.core.declarations.contract import Contract -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import ( HighLevelCall, LowLevelCall, @@ -85,7 +89,7 @@ Every Ether sent to `Locked` will be lost.""" funcs_payable = [function for function in contract.functions if function.payable] if funcs_payable: if self.do_no_send_ether(contract): - info = ["Contract locking ether found:\n"] + info: DETECTOR_INFO = ["Contract locking ether found:\n"] info += ["\tContract ", contract, " has payable functions:\n"] for function in funcs_payable: info += ["\t - ", function, "\n"] diff --git a/slither/detectors/attributes/unimplemented_interface.py b/slither/detectors/attributes/unimplemented_interface.py index ff0889d11..5c6c9c5f2 100644 --- a/slither/detectors/attributes/unimplemented_interface.py +++ b/slither/detectors/attributes/unimplemented_interface.py @@ -5,7 +5,11 @@ Collect all the interfaces Check for contracts which implement all interface functions but do not explicitly derive from those interfaces. """ from typing import List -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.core.declarations.contract import Contract from slither.utils.output import Output @@ -139,7 +143,7 @@ contract Something { continue intended_interfaces = self.detect_unimplemented_interface(contract, interfaces) for interface in intended_interfaces: - info = [contract, " should inherit from ", interface, "\n"] + info: DETECTOR_INFO = [contract, " should inherit from ", interface, "\n"] res = self.generate_result(info) results.append(res) return results diff --git a/slither/detectors/compiler_bugs/array_by_reference.py b/slither/detectors/compiler_bugs/array_by_reference.py index fffe93847..ba4cadcc7 100644 --- a/slither/detectors/compiler_bugs/array_by_reference.py +++ b/slither/detectors/compiler_bugs/array_by_reference.py @@ -2,7 +2,11 @@ Detects the passing of arrays located in memory to functions which expect to modify arrays via storage reference. """ from typing import List, Set, Tuple, Union -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.core.solidity_types.array_type import ArrayType from slither.core.variables.state_variable import StateVariable from slither.core.variables.local_variable import LocalVariable @@ -164,7 +168,7 @@ As a result, Bob's usage of the contract is incorrect.""" if problematic_calls: for calling_node, affected_argument, invoked_function in problematic_calls: - info = [ + info: DETECTOR_INFO = [ calling_node.function, " passes array ", affected_argument, diff --git a/slither/detectors/compiler_bugs/enum_conversion.py b/slither/detectors/compiler_bugs/enum_conversion.py index 671b8d699..c7f1bcf4e 100644 --- a/slither/detectors/compiler_bugs/enum_conversion.py +++ b/slither/detectors/compiler_bugs/enum_conversion.py @@ -10,6 +10,7 @@ from slither.detectors.abstract_detector import ( AbstractDetector, DetectorClassification, make_solc_versions, + DETECTOR_INFO, ) from slither.slithir.operations import TypeConversion from slither.core.declarations.enum import Enum @@ -73,10 +74,14 @@ Attackers can trigger unexpected behaviour by calling `bug(1)`.""" for c in self.compilation_unit.contracts: ret = _detect_dangerous_enum_conversions(c) for node, var in ret: - func_info = [node, " has a dangerous enum conversion\n"] + func_info: DETECTOR_INFO = [node, " has a dangerous enum conversion\n"] # Output each node with the function info header as a separate result. - variable_info = ["\t- Variable: ", var, f" of type: {str(var.type)}\n"] - node_info = ["\t- Enum conversion: ", node, "\n"] + variable_info: DETECTOR_INFO = [ + "\t- Variable: ", + var, + f" of type: {str(var.type)}\n", + ] + node_info: DETECTOR_INFO = ["\t- Enum conversion: ", node, "\n"] json = self.generate_result(func_info + variable_info + node_info) results.append(json) diff --git a/slither/detectors/compiler_bugs/multiple_constructor_schemes.py b/slither/detectors/compiler_bugs/multiple_constructor_schemes.py index 3486cc41b..ae325b2a6 100644 --- a/slither/detectors/compiler_bugs/multiple_constructor_schemes.py +++ b/slither/detectors/compiler_bugs/multiple_constructor_schemes.py @@ -1,6 +1,10 @@ from typing import List -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -58,7 +62,10 @@ In Solidity [0.4.22](https://github.com/ethereum/solidity/releases/tag/v0.4.23), # If there is more than one, we encountered the described issue occurring. if constructors and len(constructors) > 1: - info = [contract, " contains multiple constructors in the same contract:\n"] + info: DETECTOR_INFO = [ + contract, + " contains multiple constructors in the same contract:\n", + ] for constructor in constructors: info += ["\t- ", constructor, "\n"] diff --git a/slither/detectors/compiler_bugs/reused_base_constructor.py b/slither/detectors/compiler_bugs/reused_base_constructor.py index 73cfac12e..73bd410c7 100644 --- a/slither/detectors/compiler_bugs/reused_base_constructor.py +++ b/slither/detectors/compiler_bugs/reused_base_constructor.py @@ -6,6 +6,7 @@ from slither.detectors.abstract_detector import ( AbstractDetector, DetectorClassification, ALL_SOLC_VERSIONS_04, + DETECTOR_INFO, ) from slither.core.declarations.contract import Contract from slither.core.declarations.function_contract import FunctionContract @@ -151,7 +152,7 @@ The constructor of `A` is called multiple times in `D` and `E`: continue # Generate data to output. - info = [ + info: DETECTOR_INFO = [ contract, " gives base constructor ", base_constructor, diff --git a/slither/detectors/compiler_bugs/storage_ABIEncoderV2_array.py b/slither/detectors/compiler_bugs/storage_ABIEncoderV2_array.py index aee6361c6..dd34eb5e0 100644 --- a/slither/detectors/compiler_bugs/storage_ABIEncoderV2_array.py +++ b/slither/detectors/compiler_bugs/storage_ABIEncoderV2_array.py @@ -6,6 +6,7 @@ from slither.detectors.abstract_detector import ( AbstractDetector, DetectorClassification, make_solc_versions, + DETECTOR_INFO, ) from slither.core.solidity_types import ArrayType from slither.core.solidity_types import UserDefinedType @@ -122,7 +123,13 @@ contract A { for contract in self.contracts: storage_abiencoderv2_arrays = self._detect_storage_abiencoderv2_arrays(contract) for function, node in storage_abiencoderv2_arrays: - info = ["Function ", function, " trigger an abi encoding bug:\n\t- ", node, "\n"] + info: DETECTOR_INFO = [ + "Function ", + function, + " trigger an abi encoding bug:\n\t- ", + node, + "\n", + ] res = self.generate_result(info) results.append(res) diff --git a/slither/detectors/compiler_bugs/storage_signed_integer_array.py b/slither/detectors/compiler_bugs/storage_signed_integer_array.py index 736f66789..cfd13cdbc 100644 --- a/slither/detectors/compiler_bugs/storage_signed_integer_array.py +++ b/slither/detectors/compiler_bugs/storage_signed_integer_array.py @@ -1,18 +1,21 @@ """ Module detecting storage signed integer array bug """ -from typing import List +from typing import List, Tuple, Set +from slither.core.declarations import Function, Contract from slither.detectors.abstract_detector import ( AbstractDetector, DetectorClassification, make_solc_versions, + DETECTOR_INFO, ) -from slither.core.cfg.node import NodeType +from slither.core.cfg.node import NodeType, Node from slither.core.solidity_types import ArrayType from slither.core.solidity_types.elementary_type import Int, ElementaryType from slither.core.variables.local_variable import LocalVariable from slither.core.variables.state_variable import StateVariable +from slither.slithir.operations import Operation, OperationWithLValue from slither.slithir.operations.assignment import Assignment from slither.slithir.operations.init_array import InitArray from slither.utils.output import Output @@ -60,7 +63,7 @@ contract A { VULNERABLE_SOLC_VERSIONS = make_solc_versions(4, 7, 25) + make_solc_versions(5, 0, 9) @staticmethod - def _is_vulnerable_type(ir): + def _is_vulnerable_type(ir: Operation) -> bool: """ Detect if the IR lvalue is a vulnerable type Must be a storage allocation, and an array of Int @@ -68,23 +71,28 @@ contract A { """ # Storage allocation # Base type is signed integer + if not isinstance(ir, OperationWithLValue): + return False + return ( ( isinstance(ir.lvalue, StateVariable) or (isinstance(ir.lvalue, LocalVariable) and ir.lvalue.is_storage) ) - and isinstance(ir.lvalue.type.type, ElementaryType) - and ir.lvalue.type.type.type in Int + and isinstance(ir.lvalue.type.type, ElementaryType) # type: ignore + and ir.lvalue.type.type.type in Int # type: ignore ) - def detect_storage_signed_integer_arrays(self, contract): + def detect_storage_signed_integer_arrays( + self, contract: Contract + ) -> Set[Tuple[Function, Node]]: """ Detects and returns all nodes with storage-allocated signed integer array init/assignment :param contract: Contract to detect within :return: A list of tuples with (function, node) where function node has storage-allocated signed integer array init/assignment """ # Create our result set. - results = set() + results: Set[Tuple[Function, Node]] = set() # Loop for each function and modifier. for function in contract.functions_and_modifiers_declared: @@ -118,9 +126,13 @@ contract A { for contract in self.contracts: storage_signed_integer_arrays = self.detect_storage_signed_integer_arrays(contract) for function, node in storage_signed_integer_arrays: - contract_info = ["Contract ", contract, " \n"] - function_info = ["\t- Function ", function, "\n"] - node_info = ["\t\t- ", node, " has a storage signed integer array assignment\n"] + contract_info: DETECTOR_INFO = ["Contract ", contract, " \n"] + function_info: DETECTOR_INFO = ["\t- Function ", function, "\n"] + node_info: DETECTOR_INFO = [ + "\t\t- ", + node, + " has a storage signed integer array assignment\n", + ] res = self.generate_result(contract_info + function_info + node_info) results.append(res) diff --git a/slither/detectors/compiler_bugs/uninitialized_function_ptr_in_constructor.py b/slither/detectors/compiler_bugs/uninitialized_function_ptr_in_constructor.py index 6685948b3..826b671bd 100644 --- a/slither/detectors/compiler_bugs/uninitialized_function_ptr_in_constructor.py +++ b/slither/detectors/compiler_bugs/uninitialized_function_ptr_in_constructor.py @@ -6,6 +6,7 @@ from slither.detectors.abstract_detector import ( AbstractDetector, DetectorClassification, make_solc_versions, + DETECTOR_INFO, ) from slither.slithir.operations import InternalDynamicCall, OperationWithLValue from slither.slithir.variables import ReferenceVariable @@ -115,10 +116,10 @@ The call to `a(10)` will lead to unexpected behavior because function pointer `a results = [] for contract in self.compilation_unit.contracts: - contract_info = ["Contract ", contract, " \n"] + contract_info: DETECTOR_INFO = ["Contract ", contract, " \n"] nodes = self._detect_uninitialized_function_ptr_in_constructor(contract) for node in nodes: - node_info = [ + node_info: DETECTOR_INFO = [ "\t ", node, " is an unintialized function pointer call in a constructor\n", diff --git a/slither/detectors/erc/erc20/incorrect_erc20_interface.py b/slither/detectors/erc/erc20/incorrect_erc20_interface.py index 4da6ab5ae..a17f04e8c 100644 --- a/slither/detectors/erc/erc20/incorrect_erc20_interface.py +++ b/slither/detectors/erc/erc20/incorrect_erc20_interface.py @@ -6,7 +6,11 @@ from typing import List, Tuple from slither.core.declarations.contract import Contract from slither.core.declarations.function_contract import FunctionContract -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -109,7 +113,7 @@ contract Token{ functions = IncorrectERC20InterfaceDetection.detect_incorrect_erc20_interface(c) if functions: for function in functions: - info = [ + info: DETECTOR_INFO = [ c, " has incorrect ERC20 function interface:", function, diff --git a/slither/detectors/erc/incorrect_erc721_interface.py b/slither/detectors/erc/incorrect_erc721_interface.py index 8327e8b2e..9d19b5c02 100644 --- a/slither/detectors/erc/incorrect_erc721_interface.py +++ b/slither/detectors/erc/incorrect_erc721_interface.py @@ -2,7 +2,11 @@ Detect incorrect erc721 interface. """ from typing import Any, List, Tuple, Union -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.core.declarations.contract import Contract from slither.core.declarations.function_contract import FunctionContract from slither.utils.output import Output @@ -119,7 +123,7 @@ contract Token{ functions = IncorrectERC721InterfaceDetection.detect_incorrect_erc721_interface(c) if functions: for function in functions: - info = [ + info: DETECTOR_INFO = [ c, " has incorrect ERC721 function interface:", function, diff --git a/slither/detectors/examples/backdoor.py b/slither/detectors/examples/backdoor.py index 0e8e9ad81..392834641 100644 --- a/slither/detectors/examples/backdoor.py +++ b/slither/detectors/examples/backdoor.py @@ -1,6 +1,10 @@ from typing import List -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -28,7 +32,7 @@ class Backdoor(AbstractDetector): for f in contract.functions: if "backdoor" in f.name: # Info to be printed - info = ["Backdoor function found in ", f, "\n"] + info: DETECTOR_INFO = ["Backdoor function found in ", f, "\n"] # Add the result in result res = self.generate_result(info) diff --git a/slither/detectors/functions/arbitrary_send_eth.py b/slither/detectors/functions/arbitrary_send_eth.py index e0112c6e1..f6c688a3f 100644 --- a/slither/detectors/functions/arbitrary_send_eth.py +++ b/slither/detectors/functions/arbitrary_send_eth.py @@ -18,7 +18,9 @@ from slither.core.declarations.function_contract import FunctionContract from slither.core.declarations.solidity_variables import ( SolidityFunction, SolidityVariableComposed, + SolidityVariable, ) +from slither.core.variables import Variable from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification from slither.slithir.operations import ( HighLevelCall, @@ -72,8 +74,9 @@ def arbitrary_send(func: Function) -> Union[bool, List[Node]]: ): continue - if is_tainted(ir.destination, node): - ret.append(node) + if isinstance(ir.destination, (Variable, SolidityVariable)): + if is_tainted(ir.destination, node): + ret.append(node) return ret diff --git a/slither/detectors/functions/cyclomatic_complexity.py b/slither/detectors/functions/cyclomatic_complexity.py index f03cf61b8..d8258994f 100644 --- a/slither/detectors/functions/cyclomatic_complexity.py +++ b/slither/detectors/functions/cyclomatic_complexity.py @@ -1,7 +1,11 @@ from typing import List, Tuple from slither.core.declarations import Function -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.code_complexity import compute_cyclomatic_complexity from slither.utils.output import Output @@ -44,7 +48,7 @@ class CyclomaticComplexity(AbstractDetector): _check_for_high_cc(high_cc_functions, f) for f, cc in high_cc_functions: - info = [f, f" has a high cyclomatic complexity ({cc}).\n"] + info: DETECTOR_INFO = [f, f" has a high cyclomatic complexity ({cc}).\n"] res = self.generate_result(info) results.append(res) return results diff --git a/slither/detectors/functions/dead_code.py b/slither/detectors/functions/dead_code.py index 1a25c5776..98eb97ff7 100644 --- a/slither/detectors/functions/dead_code.py +++ b/slither/detectors/functions/dead_code.py @@ -4,7 +4,11 @@ Module detecting dead code from typing import List, Tuple from slither.core.declarations import Function, FunctionContract, Contract -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -72,7 +76,7 @@ contract Contract{ # Continue if the functon is not implemented because it means the contract is abstract if not function.is_implemented: continue - info = [function, " is never used and should be removed\n"] + info: DETECTOR_INFO = [function, " is never used and should be removed\n"] res = self.generate_result(info) results.append(res) diff --git a/slither/detectors/functions/modifier.py b/slither/detectors/functions/modifier.py index 271d8e6cb..61ec1825e 100644 --- a/slither/detectors/functions/modifier.py +++ b/slither/detectors/functions/modifier.py @@ -6,7 +6,11 @@ are in the outermost scope, they do not guarantee a revert, so a default value can still be returned. """ from typing import List -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.core.cfg.node import Node, NodeType from slither.utils.output import Output @@ -82,7 +86,11 @@ If the condition in `myModif` is false, the execution of `get()` will return 0." node = None else: # Nothing was found in the outer scope - info = ["Modifier ", mod, " does not always execute _; or revert"] + info: DETECTOR_INFO = [ + "Modifier ", + mod, + " does not always execute _; or revert", + ] res = self.generate_result(info) results.append(res) diff --git a/slither/detectors/functions/permit_domain_signature_collision.py b/slither/detectors/functions/permit_domain_signature_collision.py index de64ec52e..39543fb49 100644 --- a/slither/detectors/functions/permit_domain_signature_collision.py +++ b/slither/detectors/functions/permit_domain_signature_collision.py @@ -6,7 +6,11 @@ from typing import Union, List from slither.core.declarations import Function from slither.core.solidity_types.elementary_type import ElementaryType from slither.core.variables.state_variable import StateVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.function import get_function_id from slither.utils.output import Output @@ -63,7 +67,7 @@ contract Contract{ assert isinstance(func_or_var, StateVariable) incorrect_return_type = func_or_var.type != ElementaryType("bytes32") if hash_collision or incorrect_return_type: - info = [ + info: DETECTOR_INFO = [ "The function signature of ", func_or_var, " collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", diff --git a/slither/detectors/functions/protected_variable.py b/slither/detectors/functions/protected_variable.py index 68ed098c7..579672926 100644 --- a/slither/detectors/functions/protected_variable.py +++ b/slither/detectors/functions/protected_variable.py @@ -6,7 +6,11 @@ A suicidal contract is an unprotected function that calls selfdestruct from typing import List from slither.core.declarations import Function, Contract -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -58,7 +62,7 @@ contract Buggy{ self.logger.error(f"{function_sig} not found") continue if function_protection not in function.all_internal_calls(): - info = [ + info: DETECTOR_INFO = [ function, " should have ", function_protection, diff --git a/slither/detectors/functions/suicidal.py b/slither/detectors/functions/suicidal.py index 7741da57d..1f8cb52f9 100644 --- a/slither/detectors/functions/suicidal.py +++ b/slither/detectors/functions/suicidal.py @@ -7,7 +7,11 @@ from typing import List from slither.core.declarations.contract import Contract from slither.core.declarations.function_contract import FunctionContract -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -78,7 +82,7 @@ Bob calls `kill` and destructs the contract.""" functions = self.detect_suicidal(c) for func in functions: - info = [func, " allows anyone to destruct the contract\n"] + info: DETECTOR_INFO = [func, " allows anyone to destruct the contract\n"] res = self.generate_result(info) diff --git a/slither/detectors/functions/unimplemented.py b/slither/detectors/functions/unimplemented.py index 11a1fad80..27a2d94a9 100644 --- a/slither/detectors/functions/unimplemented.py +++ b/slither/detectors/functions/unimplemented.py @@ -8,7 +8,13 @@ Consider public state variables as implemented functions Do not consider fallback function or constructor """ from typing import List, Set -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification + +from slither.core.declarations import Function +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.core.declarations.contract import Contract from slither.core.declarations.function_contract import FunctionContract from slither.utils.output import Output @@ -62,7 +68,7 @@ All unimplemented functions must be implemented on a contract that is meant to b def _match_state_variable(contract: Contract, f: FunctionContract) -> bool: return any(s.full_name == f.full_name for s in contract.state_variables) - def _detect_unimplemented_function(self, contract: Contract) -> Set[FunctionContract]: + def _detect_unimplemented_function(self, contract: Contract) -> Set[Function]: """ Detects any function definitions which are not implemented in the given contract. :param contract: The contract to search unimplemented functions for. @@ -77,6 +83,8 @@ All unimplemented functions must be implemented on a contract that is meant to b # fallback function and constructor. unimplemented = set() for f in contract.all_functions_called: + if not isinstance(f, Function): + continue if ( not f.is_implemented and not f.is_constructor @@ -102,7 +110,7 @@ All unimplemented functions must be implemented on a contract that is meant to b for contract in self.compilation_unit.contracts_derived: functions = self._detect_unimplemented_function(contract) if functions: - info = [contract, " does not implement functions:\n"] + info: DETECTOR_INFO = [contract, " does not implement functions:\n"] for function in sorted(functions, key=lambda x: x.full_name): info += ["\t- ", function, "\n"] diff --git a/slither/detectors/naming_convention/naming_convention.py b/slither/detectors/naming_convention/naming_convention.py index 96d3964fa..02deb719e 100644 --- a/slither/detectors/naming_convention/naming_convention.py +++ b/slither/detectors/naming_convention/naming_convention.py @@ -1,6 +1,10 @@ import re from typing import List -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.formatters.naming_convention.naming_convention import custom_format from slither.utils.output import Output @@ -63,6 +67,7 @@ Solidity defines a [naming convention](https://solidity.readthedocs.io/en/v0.4.2 def _detect(self) -> List[Output]: results = [] + info: DETECTOR_INFO for contract in self.contracts: if not self.is_cap_words(contract.name): diff --git a/slither/detectors/operations/bad_prng.py b/slither/detectors/operations/bad_prng.py index d8bf28f6c..f816e96c8 100644 --- a/slither/detectors/operations/bad_prng.py +++ b/slither/detectors/operations/bad_prng.py @@ -50,14 +50,17 @@ def contains_bad_PRNG_sources(func: Function, blockhash_ret_values: List[Variabl for node in func.nodes: for ir in node.irs_ssa: if isinstance(ir, Binary) and ir.type == BinaryType.MODULO: + var_left = ir.variable_left + if not isinstance(var_left, (Variable, SolidityVariable)): + continue if is_dependent_ssa( - ir.variable_left, SolidityVariableComposed("block.timestamp"), func.contract - ) or is_dependent_ssa(ir.variable_left, SolidityVariable("now"), func.contract): + var_left, SolidityVariableComposed("block.timestamp"), node + ) or is_dependent_ssa(var_left, SolidityVariable("now"), node): ret.add(node) break for ret_val in blockhash_ret_values: - if is_dependent_ssa(ir.variable_left, ret_val, func.contract): + if is_dependent_ssa(var_left, ret_val, node): ret.add(node) break return list(ret) diff --git a/slither/detectors/operations/block_timestamp.py b/slither/detectors/operations/block_timestamp.py index b80c8c392..d5c2c8df7 100644 --- a/slither/detectors/operations/block_timestamp.py +++ b/slither/detectors/operations/block_timestamp.py @@ -6,12 +6,17 @@ from typing import List, Tuple from slither.analyses.data_dependency.data_dependency import is_dependent from slither.core.cfg.node import Node -from slither.core.declarations import Function, Contract +from slither.core.declarations import Function, Contract, FunctionContract from slither.core.declarations.solidity_variables import ( SolidityVariableComposed, SolidityVariable, ) -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.core.variables import Variable +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import Binary, BinaryType from slither.utils.output import Output @@ -21,25 +26,25 @@ def _timestamp(func: Function) -> List[Node]: for node in func.nodes: if node.contains_require_or_assert(): for var in node.variables_read: - if is_dependent(var, SolidityVariableComposed("block.timestamp"), func.contract): + if is_dependent(var, SolidityVariableComposed("block.timestamp"), node): ret.add(node) - if is_dependent(var, SolidityVariable("now"), func.contract): + if is_dependent(var, SolidityVariable("now"), node): ret.add(node) for ir in node.irs: if isinstance(ir, Binary) and BinaryType.return_bool(ir.type): - for var in ir.read: - if is_dependent( - var, SolidityVariableComposed("block.timestamp"), func.contract - ): + for var_read in ir.read: + if not isinstance(var_read, (Variable, SolidityVariable)): + continue + if is_dependent(var_read, SolidityVariableComposed("block.timestamp"), node): ret.add(node) - if is_dependent(var, SolidityVariable("now"), func.contract): + if is_dependent(var_read, SolidityVariable("now"), node): ret.add(node) return sorted(list(ret), key=lambda x: x.node_id) def _detect_dangerous_timestamp( contract: Contract, -) -> List[Tuple[Function, List[Node]]]: +) -> List[Tuple[FunctionContract, List[Node]]]: """ Args: contract (Contract) @@ -48,7 +53,7 @@ def _detect_dangerous_timestamp( """ ret = [] for f in [f for f in contract.functions if f.contract_declarer == contract]: - nodes = _timestamp(f) + nodes: List[Node] = _timestamp(f) if nodes: ret.append((f, nodes)) return ret @@ -78,7 +83,7 @@ class Timestamp(AbstractDetector): dangerous_timestamp = _detect_dangerous_timestamp(c) for (func, nodes) in dangerous_timestamp: - info = [func, " uses timestamp for comparisons\n"] + info: DETECTOR_INFO = [func, " uses timestamp for comparisons\n"] info += ["\tDangerous comparisons:\n"] diff --git a/slither/detectors/operations/low_level_calls.py b/slither/detectors/operations/low_level_calls.py index 1ea91c37a..463c74875 100644 --- a/slither/detectors/operations/low_level_calls.py +++ b/slither/detectors/operations/low_level_calls.py @@ -2,7 +2,11 @@ Module detecting usage of low level calls """ from typing import List, Tuple -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import LowLevelCall from slither.core.cfg.node import Node from slither.core.declarations.contract import Contract @@ -52,7 +56,7 @@ class LowLevelCalls(AbstractDetector): for c in self.contracts: values = self.detect_low_level_calls(c) for func, nodes in values: - info = ["Low level call in ", func, ":\n"] + info: DETECTOR_INFO = ["Low level call in ", func, ":\n"] # sort the nodes to get deterministic results nodes.sort(key=lambda x: x.node_id) diff --git a/slither/detectors/operations/missing_events_access_control.py b/slither/detectors/operations/missing_events_access_control.py index 20c229759..853eafd73 100644 --- a/slither/detectors/operations/missing_events_access_control.py +++ b/slither/detectors/operations/missing_events_access_control.py @@ -11,7 +11,11 @@ from slither.core.declarations.function_contract import FunctionContract from slither.core.declarations.modifier import Modifier from slither.core.solidity_types.elementary_type import ElementaryType from slither.core.variables.state_variable import StateVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations.event_call import EventCall from slither.utils.output import Output @@ -100,7 +104,7 @@ contract C { for contract in self.compilation_unit.contracts_derived: missing_events = self._detect_missing_events(contract) for (function, nodes) in missing_events: - info = [function, " should emit an event for: \n"] + info: DETECTOR_INFO = [function, " should emit an event for: \n"] for (node, _sv, _mod) in nodes: info += ["\t- ", node, " \n"] res = self.generate_result(info) diff --git a/slither/detectors/operations/missing_events_arithmetic.py b/slither/detectors/operations/missing_events_arithmetic.py index 6e1d5fbb5..c17ed32a3 100644 --- a/slither/detectors/operations/missing_events_arithmetic.py +++ b/slither/detectors/operations/missing_events_arithmetic.py @@ -10,7 +10,11 @@ from slither.core.declarations.contract import Contract from slither.core.declarations.function_contract import FunctionContract from slither.core.solidity_types.elementary_type import ElementaryType, Int, Uint from slither.core.variables.state_variable import StateVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations.event_call import EventCall from slither.utils.output import Output @@ -122,7 +126,7 @@ contract C { for contract in self.compilation_unit.contracts_derived: missing_events = self._detect_missing_events(contract) for (function, nodes) in missing_events: - info = [function, " should emit an event for: \n"] + info: DETECTOR_INFO = [function, " should emit an event for: \n"] for (node, _) in nodes: info += ["\t- ", node, " \n"] res = self.generate_result(info) diff --git a/slither/detectors/operations/missing_zero_address_validation.py b/slither/detectors/operations/missing_zero_address_validation.py index a6c8de9ff..4feac9d0c 100644 --- a/slither/detectors/operations/missing_zero_address_validation.py +++ b/slither/detectors/operations/missing_zero_address_validation.py @@ -12,7 +12,11 @@ from slither.core.declarations.function import ModifierStatements from slither.core.declarations.function_contract import FunctionContract from slither.core.solidity_types.elementary_type import ElementaryType from slither.core.variables.local_variable import LocalVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import Call from slither.slithir.operations import Send, Transfer, LowLevelCall from slither.utils.output import Output @@ -155,7 +159,7 @@ Bob calls `updateOwner` without specifying the `newOwner`, so Bob loses ownershi missing_zero_address_validation = self._detect_missing_zero_address_validation(contract) for (_, var_nodes) in missing_zero_address_validation: for var, nodes in var_nodes.items(): - info = [var, " lacks a zero-check on ", ":\n"] + info: DETECTOR_INFO = [var, " lacks a zero-check on ", ":\n"] for node in nodes: info += ["\t\t- ", node, "\n"] res = self.generate_result(info) diff --git a/slither/detectors/operations/unused_return_values.py b/slither/detectors/operations/unused_return_values.py index 7edde20fc..93dda274a 100644 --- a/slither/detectors/operations/unused_return_values.py +++ b/slither/detectors/operations/unused_return_values.py @@ -7,7 +7,11 @@ from slither.core.cfg.node import Node from slither.core.declarations import Function from slither.core.declarations.function_contract import FunctionContract from slither.core.variables.state_variable import StateVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import HighLevelCall from slither.slithir.operations.operation import Operation from slither.utils.output import Output @@ -91,7 +95,7 @@ contract MyConc{ if unused_return: for node in unused_return: - info = [f, " ignores return value by ", node, "\n"] + info: DETECTOR_INFO = [f, " ignores return value by ", node, "\n"] res = self.generate_result(info) diff --git a/slither/detectors/operations/void_constructor.py b/slither/detectors/operations/void_constructor.py index fb44ea98c..365904fa9 100644 --- a/slither/detectors/operations/void_constructor.py +++ b/slither/detectors/operations/void_constructor.py @@ -1,6 +1,10 @@ from typing import List -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import Nop from slither.utils.output import Output @@ -39,7 +43,7 @@ When reading `B`'s constructor definition, we might assume that `A()` initiates for constructor_call in cst.explicit_base_constructor_calls_statements: for node in constructor_call.nodes: if any(isinstance(ir, Nop) for ir in node.irs): - info = ["Void constructor called in ", cst, ":\n"] + info: DETECTOR_INFO = ["Void constructor called in ", cst, ":\n"] info += ["\t- ", node, "\n"] res = self.generate_result(info) diff --git a/slither/detectors/reentrancy/token.py b/slither/detectors/reentrancy/token.py index c960bffa7..d906a7303 100644 --- a/slither/detectors/reentrancy/token.py +++ b/slither/detectors/reentrancy/token.py @@ -4,7 +4,11 @@ from typing import Dict, List from slither.analyses.data_dependency.data_dependency import is_dependent from slither.core.cfg.node import Node from slither.core.declarations import Function, Contract, SolidityVariableComposed -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import LowLevelCall, HighLevelCall from slither.utils.output import Output @@ -88,7 +92,7 @@ If you do, ensure your users are aware of the potential issues.""" for contract in self.compilation_unit.contracts_derived: vulns = _detect_token_reentrant(contract) for function, nodes in vulns.items(): - info = [function, " is an reentrancy unsafe token function:\n"] + info: DETECTOR_INFO = [function, " is an reentrancy unsafe token function:\n"] for node in nodes: info += ["\t-", node, "\n"] json = self.generate_result(info) diff --git a/slither/detectors/shadowing/builtin_symbols.py b/slither/detectors/shadowing/builtin_symbols.py index b0a44c8e2..ab5486105 100644 --- a/slither/detectors/shadowing/builtin_symbols.py +++ b/slither/detectors/shadowing/builtin_symbols.py @@ -9,7 +9,11 @@ from slither.core.declarations.function_contract import FunctionContract from slither.core.declarations.modifier import Modifier from slither.core.variables import Variable from slither.core.variables.local_variable import LocalVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -194,7 +198,7 @@ contract Bug { shadow_type = shadow[0] shadow_object = shadow[1] - info = [ + info: DETECTOR_INFO = [ shadow_object, f' ({shadow_type}) shadows built-in symbol"\n', ] diff --git a/slither/detectors/shadowing/local.py b/slither/detectors/shadowing/local.py index ad65b62d9..a705f45b0 100644 --- a/slither/detectors/shadowing/local.py +++ b/slither/detectors/shadowing/local.py @@ -9,7 +9,11 @@ from slither.core.declarations.function_contract import FunctionContract from slither.core.declarations.modifier import Modifier from slither.core.variables.local_variable import LocalVariable from slither.core.variables.state_variable import StateVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -84,7 +88,7 @@ contract Bug { ] = [] # Loop through all functions + modifiers in this contract. - for function in contract.functions + contract.modifiers: + for function in contract.functions + list(contract.modifiers): # We should only look for functions declared directly in this contract (not in a base contract). if function.contract_declarer != contract: continue @@ -134,7 +138,7 @@ contract Bug { for shadow in shadows: local_variable = shadow[0] overshadowed = shadow[1] - info = [local_variable, " shadows:\n"] + info: DETECTOR_INFO = [local_variable, " shadows:\n"] for overshadowed_entry in overshadowed: info += [ "\t- ", diff --git a/slither/detectors/shadowing/state.py b/slither/detectors/shadowing/state.py index 801c370a5..c08dbfd25 100644 --- a/slither/detectors/shadowing/state.py +++ b/slither/detectors/shadowing/state.py @@ -6,7 +6,11 @@ from typing import List from slither.core.declarations import Contract from slither.core.variables.state_variable import StateVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.detectors.shadowing.common import is_upgradable_gap_variable from slither.utils.output import Output @@ -89,7 +93,7 @@ contract DerivedContract is BaseContract{ for all_variables in shadowing: shadow = all_variables[0] variables = all_variables[1:] - info = [shadow, " shadows:\n"] + info: DETECTOR_INFO = [shadow, " shadows:\n"] for var in variables: info += ["\t- ", var, "\n"] diff --git a/slither/detectors/slither/name_reused.py b/slither/detectors/slither/name_reused.py index f6f2820fa..e8a40881a 100644 --- a/slither/detectors/slither/name_reused.py +++ b/slither/detectors/slither/name_reused.py @@ -2,7 +2,11 @@ from collections import defaultdict from typing import Any, List from slither.core.compilation_unit import SlitherCompilationUnit -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -80,7 +84,7 @@ As a result, the second contract cannot be analyzed. inheritance_corrupted[father.name].append(contract) for contract_name, files in names_reused.items(): - info = [contract_name, " is re-used:\n"] + info: DETECTOR_INFO = [contract_name, " is re-used:\n"] for file in files: if file is None: info += ["\t- In an file not found, most likely in\n"] diff --git a/slither/detectors/source/rtlo.py b/slither/detectors/source/rtlo.py index f89eb70eb..b020f69f9 100644 --- a/slither/detectors/source/rtlo.py +++ b/slither/detectors/source/rtlo.py @@ -1,7 +1,11 @@ import re from typing import List -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -78,7 +82,7 @@ contract Token idx = start_index + result_index relative = self.slither.crytic_compile.filename_lookup(filename).relative - info = f"{relative} contains a unicode right-to-left-override character at byte offset {idx}:\n" + info: DETECTOR_INFO = f"{relative} contains a unicode right-to-left-override character at byte offset {idx}:\n" # We have a patch, so pattern.find will return at least one result diff --git a/slither/detectors/statements/array_length_assignment.py b/slither/detectors/statements/array_length_assignment.py index f4ae01b88..70dc5aadb 100644 --- a/slither/detectors/statements/array_length_assignment.py +++ b/slither/detectors/statements/array_length_assignment.py @@ -1,13 +1,14 @@ """ Module detecting assignment of array length """ -from typing import List, Set +from typing import List, Set, Union + +from slither.core.variables import Variable from slither.detectors.abstract_detector import ( AbstractDetector, DetectorClassification, ALL_SOLC_VERSIONS_04, ALL_SOLC_VERSIONS_05, - DETECTOR_INFO, ) from slither.core.cfg.node import Node, NodeType from slither.slithir.operations import Assignment, Length @@ -15,7 +16,7 @@ from slither.slithir.variables.reference import ReferenceVariable from slither.slithir.operations.binary import Binary from slither.analyses.data_dependency.data_dependency import is_tainted from slither.core.declarations.contract import Contract -from slither.utils.output import Output +from slither.utils.output import Output, SupportedOutput def detect_array_length_assignment(contract: Contract) -> Set[Node]: @@ -51,7 +52,7 @@ def detect_array_length_assignment(contract: Contract) -> Set[Node]: elif isinstance(ir, (Assignment, Binary)): if isinstance(ir.lvalue, ReferenceVariable): if ir.lvalue in array_length_refs and any( - is_tainted(v, contract) for v in ir.read + is_tainted(v, contract) for v in ir.read if isinstance(v, Variable) ): # the taint is not precise enough yet # as a result, REF_0 = REF_0 + 1 @@ -121,12 +122,16 @@ Otherwise, thoroughly review the contract to ensure a user-controlled variable c for contract in self.contracts: array_length_assignments = detect_array_length_assignment(contract) if array_length_assignments: - contract_info: DETECTOR_INFO = [ + contract_info: List[Union[str, SupportedOutput]] = [ contract, " contract sets array length with a user-controlled value:\n", ] for node in array_length_assignments: - node_info = contract_info + ["\t- ", node, "\n"] + node_info: List[Union[str, SupportedOutput]] = contract_info + [ + "\t- ", + node, + "\n", + ] res = self.generate_result(node_info) results.append(res) diff --git a/slither/detectors/statements/assert_state_change.py b/slither/detectors/statements/assert_state_change.py index c82919de6..62299202e 100644 --- a/slither/detectors/statements/assert_state_change.py +++ b/slither/detectors/statements/assert_state_change.py @@ -6,7 +6,11 @@ from typing import List, Tuple from slither.core.cfg.node import Node from slither.core.declarations.contract import Contract from slither.core.declarations.function_contract import FunctionContract -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations.internal_call import InternalCall from slither.utils.output import Output @@ -25,7 +29,7 @@ def detect_assert_state_change( results = [] # Loop for each function and modifier. - for function in contract.functions_declared + contract.modifiers_declared: + for function in contract.functions_declared + list(contract.modifiers_declared): for node in function.nodes: # Detect assert() calls if any(c.name == "assert(bool)" for c in node.internal_calls) and ( @@ -85,7 +89,10 @@ The assert in `bad()` increments the state variable `s_a` while checking for the for contract in self.contracts: assert_state_change = detect_assert_state_change(contract) for (func, node) in assert_state_change: - info = [func, " has an assert() call which possibly changes state.\n"] + info: DETECTOR_INFO = [ + func, + " has an assert() call which possibly changes state.\n", + ] info += ["\t-", node, "\n"] info += [ "Consider using require() or change the invariant to not modify the state.\n" diff --git a/slither/detectors/statements/boolean_constant_equality.py b/slither/detectors/statements/boolean_constant_equality.py index 5b91f364f..97eb14aa5 100644 --- a/slither/detectors/statements/boolean_constant_equality.py +++ b/slither/detectors/statements/boolean_constant_equality.py @@ -6,7 +6,11 @@ from typing import List, Set, Tuple from slither.core.cfg.node import Node from slither.core.declarations import Function from slither.core.declarations.contract import Contract -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import ( Binary, BinaryType, @@ -84,7 +88,7 @@ Boolean constants can be used directly and do not need to be compare to `true` o boolean_constant_misuses = self._detect_boolean_equality(contract) for (func, nodes) in boolean_constant_misuses: for node in nodes: - info = [ + info: DETECTOR_INFO = [ func, " compares to a boolean constant:\n\t-", node, diff --git a/slither/detectors/statements/boolean_constant_misuse.py b/slither/detectors/statements/boolean_constant_misuse.py index 96dd2012f..093e43fee 100644 --- a/slither/detectors/statements/boolean_constant_misuse.py +++ b/slither/detectors/statements/boolean_constant_misuse.py @@ -7,7 +7,11 @@ from slither.core.cfg.node import Node, NodeType from slither.core.declarations import Function from slither.core.declarations.contract import Contract from slither.core.solidity_types import ElementaryType -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import ( Assignment, Call, @@ -120,7 +124,7 @@ Other uses (in complex expressions, as conditionals) indicate either an error or boolean_constant_misuses = self._detect_boolean_constant_misuses(contract) for (func, nodes) in boolean_constant_misuses: for node in nodes: - info = [ + info: DETECTOR_INFO = [ func, " uses a Boolean constant improperly:\n\t-", node, diff --git a/slither/detectors/statements/calls_in_loop.py b/slither/detectors/statements/calls_in_loop.py index fdd0c6732..b3a177ee6 100644 --- a/slither/detectors/statements/calls_in_loop.py +++ b/slither/detectors/statements/calls_in_loop.py @@ -1,6 +1,10 @@ from typing import List, Optional from slither.core.cfg.node import NodeType, Node -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.core.declarations import Contract from slither.utils.output import Output from slither.slithir.operations import ( @@ -94,7 +98,7 @@ If one of the destinations has a fallback function that reverts, `bad` will alwa for node in values: func = node.function - info = [func, " has external calls inside a loop: ", node, "\n"] + info: DETECTOR_INFO = [func, " has external calls inside a loop: ", node, "\n"] res = self.generate_result(info) results.append(res) diff --git a/slither/detectors/statements/controlled_delegatecall.py b/slither/detectors/statements/controlled_delegatecall.py index 08280940d..32e59d6eb 100644 --- a/slither/detectors/statements/controlled_delegatecall.py +++ b/slither/detectors/statements/controlled_delegatecall.py @@ -3,7 +3,11 @@ from typing import List from slither.analyses.data_dependency.data_dependency import is_tainted from slither.core.cfg.node import Node from slither.core.declarations.function_contract import FunctionContract -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import LowLevelCall from slither.utils.output import Output @@ -58,13 +62,13 @@ Bob calls `delegate` and delegates the execution to his malicious contract. As a continue nodes = controlled_delegatecall(f) if nodes: - func_info = [ + func_info: DETECTOR_INFO = [ f, " uses delegatecall to a input-controlled function id\n", ] for node in nodes: - node_info = func_info + ["\t- ", node, "\n"] + node_info: DETECTOR_INFO = func_info + ["\t- ", node, "\n"] res = self.generate_result(node_info) results.append(res) diff --git a/slither/detectors/statements/costly_operations_in_loop.py b/slither/detectors/statements/costly_operations_in_loop.py index 930085cc6..6af04329c 100644 --- a/slither/detectors/statements/costly_operations_in_loop.py +++ b/slither/detectors/statements/costly_operations_in_loop.py @@ -1,6 +1,10 @@ from typing import List, Optional from slither.core.cfg.node import NodeType, Node -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.core.declarations import Contract from slither.utils.output import Output from slither.slithir.operations import InternalCall, OperationWithLValue @@ -98,7 +102,7 @@ Incrementing `state_variable` in a loop incurs a lot of gas because of expensive values = detect_costly_operations_in_loop(c) for node in values: func = node.function - info = [func, " has costly operations inside a loop:\n"] + info: DETECTOR_INFO = [func, " has costly operations inside a loop:\n"] info += ["\t- ", node, "\n"] res = self.generate_result(info) results.append(res) diff --git a/slither/detectors/statements/delegatecall_in_loop.py b/slither/detectors/statements/delegatecall_in_loop.py index b7bf70cbc..d97466edf 100644 --- a/slither/detectors/statements/delegatecall_in_loop.py +++ b/slither/detectors/statements/delegatecall_in_loop.py @@ -1,6 +1,10 @@ from typing import List, Optional from slither.core.cfg.node import NodeType, Node -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import LowLevelCall, InternalCall from slither.core.declarations import Contract from slither.utils.output import Output @@ -94,7 +98,12 @@ Carefully check that the function called by `delegatecall` is not payable/doesn' for node in values: func = node.function - info = [func, " has delegatecall inside a loop in a payable function: ", node, "\n"] + info: DETECTOR_INFO = [ + func, + " has delegatecall inside a loop in a payable function: ", + node, + "\n", + ] res = self.generate_result(info) results.append(res) diff --git a/slither/detectors/statements/deprecated_calls.py b/slither/detectors/statements/deprecated_calls.py index 3d0ca4ba9..e59d254bb 100644 --- a/slither/detectors/statements/deprecated_calls.py +++ b/slither/detectors/statements/deprecated_calls.py @@ -11,7 +11,11 @@ from slither.core.declarations.solidity_variables import ( ) from slither.core.expressions.expression import Expression from slither.core.variables import StateVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import LowLevelCall from slither.utils.output import Output from slither.visitors.expression.export_values import ExportValues @@ -186,7 +190,7 @@ contract ContractWithDeprecatedReferences { for deprecated_reference in deprecated_references: source_object = deprecated_reference[0] deprecated_entries = deprecated_reference[1] - info = ["Deprecated standard detected ", source_object, ":\n"] + info: DETECTOR_INFO = ["Deprecated standard detected ", source_object, ":\n"] for (_dep_id, original_desc, recommended_disc) in deprecated_entries: info += [ diff --git a/slither/detectors/statements/divide_before_multiply.py b/slither/detectors/statements/divide_before_multiply.py index a9de76b40..6f199db41 100644 --- a/slither/detectors/statements/divide_before_multiply.py +++ b/slither/detectors/statements/divide_before_multiply.py @@ -2,13 +2,18 @@ Module detecting possible loss of precision due to divide before multiple """ from collections import defaultdict -from typing import Any, DefaultDict, List, Set, Tuple +from typing import DefaultDict, List, Set, Tuple from slither.core.cfg.node import Node from slither.core.declarations.contract import Contract from slither.core.declarations.function_contract import FunctionContract -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import Binary, Assignment, BinaryType, LibraryCall, Operation +from slither.slithir.utils.utils import LVALUE from slither.slithir.variables import Constant from slither.utils.output import Output @@ -19,7 +24,7 @@ def is_division(ir: Operation) -> bool: return True if isinstance(ir, LibraryCall): - if ir.function.name.lower() in [ + if ir.function.name and ir.function.name.lower() in [ "div", "safediv", ]: @@ -35,7 +40,7 @@ def is_multiplication(ir: Operation) -> bool: return True if isinstance(ir, LibraryCall): - if ir.function.name.lower() in [ + if ir.function.name and ir.function.name.lower() in [ "mul", "safemul", ]: @@ -58,7 +63,7 @@ def is_assert(node: Node) -> bool: # pylint: disable=too-many-branches def _explore( - to_explore: Set[Node], f_results: List[Node], divisions: DefaultDict[Any, Any] + to_explore: Set[Node], f_results: List[List[Node]], divisions: DefaultDict[LVALUE, List[Node]] ) -> None: explored = set() while to_explore: # pylint: disable=too-many-nested-blocks @@ -70,22 +75,22 @@ def _explore( equality_found = False # List of nodes related to one bug instance - node_results = [] + node_results: List[Node] = [] for ir in node.irs: if isinstance(ir, Assignment): if ir.rvalue in divisions: # Avoid dupplicate. We dont use set so we keep the order of the nodes - if node not in divisions[ir.rvalue]: - divisions[ir.lvalue] = divisions[ir.rvalue] + [node] + if node not in divisions[ir.rvalue]: # type: ignore + divisions[ir.lvalue] = divisions[ir.rvalue] + [node] # type: ignore else: - divisions[ir.lvalue] = divisions[ir.rvalue] + divisions[ir.lvalue] = divisions[ir.rvalue] # type: ignore if is_division(ir): - divisions[ir.lvalue] = [node] + divisions[ir.lvalue] = [node] # type: ignore if is_multiplication(ir): - mul_arguments = ir.read if isinstance(ir, Binary) else ir.arguments + mul_arguments = ir.read if isinstance(ir, Binary) else ir.arguments # type: ignore nodes = [] for r in mul_arguments: if not isinstance(r, Constant) and (r in divisions): @@ -125,7 +130,7 @@ def detect_divide_before_multiply( # List of tuple (function -> list(list(nodes))) # Each list(nodes) of the list is one bug instances # Each node in the list(nodes) is involved in the bug - results = [] + results: List[Tuple[FunctionContract, List[Node]]] = [] # Loop for each function and modifier. for function in contract.functions_declared: @@ -134,11 +139,11 @@ def detect_divide_before_multiply( # List of list(nodes) # Each list(nodes) is one bug instances - f_results = [] + f_results: List[List[Node]] = [] # lvalue -> node # track all the division results (and the assignment of the division results) - divisions = defaultdict(list) + divisions: DefaultDict[LVALUE, List[Node]] = defaultdict(list) _explore({function.entry_point}, f_results, divisions) @@ -190,7 +195,7 @@ In general, it's usually a good idea to re-arrange arithmetic to perform multipl if divisions_before_multiplications: for (func, nodes) in divisions_before_multiplications: - info = [ + info: DETECTOR_INFO = [ func, " performs a multiplication on the result of a division:\n", ] diff --git a/slither/detectors/statements/mapping_deletion.py b/slither/detectors/statements/mapping_deletion.py index 59882cc96..4cdac7240 100644 --- a/slither/detectors/statements/mapping_deletion.py +++ b/slither/detectors/statements/mapping_deletion.py @@ -8,7 +8,11 @@ from slither.core.declarations import Structure from slither.core.declarations.contract import Contract from slither.core.declarations.function_contract import FunctionContract from slither.core.solidity_types import MappingType, UserDefinedType -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import Delete from slither.utils.output import Output @@ -83,7 +87,7 @@ The mapping `balances` is never deleted, so `remove` does not work as intended." for c in self.contracts: mapping = MappingDeletionDetection.detect_mapping_deletion(c) for (func, struct, node) in mapping: - info = [func, " deletes ", struct, " which contains a mapping:\n"] + info: DETECTOR_INFO = [func, " deletes ", struct, " which contains a mapping:\n"] info += ["\t-", node, "\n"] res = self.generate_result(info) diff --git a/slither/detectors/statements/msg_value_in_loop.py b/slither/detectors/statements/msg_value_in_loop.py index bfd541201..55bd9bfc2 100644 --- a/slither/detectors/statements/msg_value_in_loop.py +++ b/slither/detectors/statements/msg_value_in_loop.py @@ -1,6 +1,10 @@ from typing import List, Optional from slither.core.cfg.node import NodeType, Node -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import InternalCall from slither.core.declarations import SolidityVariableComposed, Contract from slither.utils.output import Output @@ -86,7 +90,7 @@ Track msg.value through a local variable and decrease its amount on every iterat for node in values: func = node.function - info = [func, " use msg.value in a loop: ", node, "\n"] + info: DETECTOR_INFO = [func, " use msg.value in a loop: ", node, "\n"] res = self.generate_result(info) results.append(res) diff --git a/slither/detectors/statements/redundant_statements.py b/slither/detectors/statements/redundant_statements.py index 7e7223134..cebaecebe 100644 --- a/slither/detectors/statements/redundant_statements.py +++ b/slither/detectors/statements/redundant_statements.py @@ -7,7 +7,11 @@ from slither.core.cfg.node import Node, NodeType from slither.core.declarations.contract import Contract from slither.core.expressions.elementary_type_name_expression import ElementaryTypeNameExpression from slither.core.expressions.identifier import Identifier -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -87,7 +91,13 @@ Each commented line references types/identifiers, but performs no action with th if redundant_statements: for redundant_statement in redundant_statements: - info = ['Redundant expression "', redundant_statement, '" in', contract, "\n"] + info: DETECTOR_INFO = [ + 'Redundant expression "', + redundant_statement, + '" in', + contract, + "\n", + ] json = self.generate_result(info) results.append(json) diff --git a/slither/detectors/statements/too_many_digits.py b/slither/detectors/statements/too_many_digits.py index 239efa4be..a5e09a34c 100644 --- a/slither/detectors/statements/too_many_digits.py +++ b/slither/detectors/statements/too_many_digits.py @@ -7,7 +7,11 @@ from typing import List from slither.core.cfg.node import Node from slither.core.declarations.function_contract import FunctionContract -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.variables import Constant from slither.utils.output import Output @@ -88,9 +92,9 @@ Use: # iterate over all the nodes ret = self._detect_too_many_digits(f) if ret: - func_info = [f, " uses literals with too many digits:"] + func_info: DETECTOR_INFO = [f, " uses literals with too many digits:"] for node in ret: - node_info = func_info + ["\n\t- ", node, "\n"] + node_info: DETECTOR_INFO = func_info + ["\n\t- ", node, "\n"] # Add the result in result res = self.generate_result(node_info) diff --git a/slither/detectors/statements/tx_origin.py b/slither/detectors/statements/tx_origin.py index 34f8173d5..49bf6006d 100644 --- a/slither/detectors/statements/tx_origin.py +++ b/slither/detectors/statements/tx_origin.py @@ -6,7 +6,11 @@ from typing import List, Tuple from slither.core.cfg.node import Node from slither.core.declarations.contract import Contract from slither.core.declarations.function_contract import FunctionContract -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -80,7 +84,7 @@ Bob is the owner of `TxOrigin`. Bob calls Eve's contract. Eve's contract calls ` for func, nodes in values: for node in nodes: - info = [func, " uses tx.origin for authorization: ", node, "\n"] + info: DETECTOR_INFO = [func, " uses tx.origin for authorization: ", node, "\n"] res = self.generate_result(info) results.append(res) diff --git a/slither/detectors/statements/type_based_tautology.py b/slither/detectors/statements/type_based_tautology.py index 9edb1f53e..2e0fc8480 100644 --- a/slither/detectors/statements/type_based_tautology.py +++ b/slither/detectors/statements/type_based_tautology.py @@ -17,10 +17,9 @@ def typeRange(t: str) -> Tuple[int, int]: bits = int(t.split("int")[1]) if t in Uint: return 0, (2**bits) - 1 - if t in Int: - v = (2 ** (bits - 1)) - 1 - return -v, v - return None + assert t in Int + v = (2 ** (bits - 1)) - 1 + return -v, v def _detect_tautology_or_contradiction(low: int, high: int, cval: int, op: BinaryType) -> bool: diff --git a/slither/detectors/statements/unary.py b/slither/detectors/statements/unary.py index 5bb8d9c3c..152a39736 100644 --- a/slither/detectors/statements/unary.py +++ b/slither/detectors/statements/unary.py @@ -5,7 +5,11 @@ from typing import List from slither.core.expressions.assignment_operation import AssignmentOperation from slither.core.expressions.unary_operation import UnaryOperationType, UnaryOperation -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output from slither.visitors.expression.expression import ExpressionVisitor @@ -74,7 +78,10 @@ contract Bug{ variable.expression and InvalidUnaryStateVariableDetector(variable.expression).result() ): - info = [variable, f" uses an dangerous unary operator: {variable.expression}\n"] + info: DETECTOR_INFO = [ + variable, + f" uses an dangerous unary operator: {variable.expression}\n", + ] json = self.generate_result(info) results.append(json) diff --git a/slither/detectors/statements/unprotected_upgradeable.py b/slither/detectors/statements/unprotected_upgradeable.py index 1adf49540..30e6300f1 100644 --- a/slither/detectors/statements/unprotected_upgradeable.py +++ b/slither/detectors/statements/unprotected_upgradeable.py @@ -2,7 +2,11 @@ from typing import List from slither.core.declarations import SolidityFunction, Function from slither.core.declarations.contract import Contract -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import LowLevelCall, SolidityCall from slither.utils.output import Output @@ -110,17 +114,15 @@ Buggy is an upgradeable contract. Anyone can call initialize on the logic contra item for sublist in vars_init_in_constructors_ for item in sublist ] if vars_init and (set(vars_init) - set(vars_init_in_constructors)): - info = ( - [ - contract, - " is an upgradeable contract that does not protect its initialize functions: ", - ] - + initialize_functions - + [ - ". Anyone can delete the contract with: ", - ] - + functions_that_can_destroy - ) + info: DETECTOR_INFO = [ + contract, + " is an upgradeable contract that does not protect its initialize functions: ", + ] + info += initialize_functions + info += [ + ". Anyone can delete the contract with: ", + ] + info += functions_that_can_destroy res = self.generate_result(info) results.append(res) diff --git a/slither/detectors/statements/write_after_write.py b/slither/detectors/statements/write_after_write.py index 5b2e29925..40a82d3ff 100644 --- a/slither/detectors/statements/write_after_write.py +++ b/slither/detectors/statements/write_after_write.py @@ -4,7 +4,11 @@ from slither.core.cfg.node import Node, NodeType from slither.core.solidity_types import ElementaryType from slither.core.variables.state_variable import StateVariable from slither.core.variables.variable import Variable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import ( OperationWithLValue, HighLevelCall, @@ -128,10 +132,17 @@ class WriteAfterWrite(AbstractDetector): for contract in self.compilation_unit.contracts_derived: for function in contract.functions: if function.entry_point: - ret = [] + ret: List[Tuple[Variable, Node, Node]] = [] _detect_write_after_write(function.entry_point, set(), {}, ret) for var, node1, node2 in ret: - info = [var, " is written in both\n\t", node1, "\n\t", node2, "\n"] + info: DETECTOR_INFO = [ + var, + " is written in both\n\t", + node1, + "\n\t", + node2, + "\n", + ] res = self.generate_result(info) results.append(res) diff --git a/slither/detectors/variables/function_init_state_variables.py b/slither/detectors/variables/function_init_state_variables.py index e35cfe351..e440a4f96 100644 --- a/slither/detectors/variables/function_init_state_variables.py +++ b/slither/detectors/variables/function_init_state_variables.py @@ -6,7 +6,11 @@ from typing import List from slither.core.declarations.contract import Contract from slither.core.declarations.function import Function from slither.core.variables.state_variable import StateVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output from slither.visitors.expression.export_values import ExportValues @@ -104,7 +108,7 @@ Special care must be taken when initializing state variables from an immediate f state_variables = detect_function_init_state_vars(contract) if state_variables: for state_variable in state_variables: - info = [ + info: DETECTOR_INFO = [ state_variable, " is set pre-construction with a non-constant function or state variable:\n", ] diff --git a/slither/detectors/variables/predeclaration_usage_local.py b/slither/detectors/variables/predeclaration_usage_local.py index 2ba539a91..97217d2bb 100644 --- a/slither/detectors/variables/predeclaration_usage_local.py +++ b/slither/detectors/variables/predeclaration_usage_local.py @@ -7,7 +7,11 @@ from slither.core.cfg.node import Node from slither.core.declarations import Function from slither.core.declarations.contract import Contract from slither.core.variables.local_variable import LocalVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -148,7 +152,7 @@ Additionally, the for-loop uses the variable `max`, which is declared in a previ predeclared_usage_node, predeclared_usage_local_variable, ) in predeclared_usage_nodes: - info = [ + info: DETECTOR_INFO = [ "Variable '", predeclared_usage_local_variable, "' in ", diff --git a/slither/detectors/variables/similar_variables.py b/slither/detectors/variables/similar_variables.py index d0a15aaab..465e1ce01 100644 --- a/slither/detectors/variables/similar_variables.py +++ b/slither/detectors/variables/similar_variables.py @@ -7,7 +7,11 @@ from typing import List, Set, Tuple from slither.core.declarations.contract import Contract from slither.core.variables.local_variable import LocalVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.utils.output import Output @@ -86,7 +90,13 @@ class SimilarVarsDetection(AbstractDetector): for (v1, v2) in sorted(allVars, key=lambda x: (x[0].name, x[1].name)): v_left = v1 if v1.name < v2.name else v2 v_right = v2 if v_left == v1 else v1 - info = ["Variable ", v_left, " is too similar to ", v_right, "\n"] + info: DETECTOR_INFO = [ + "Variable ", + v_left, + " is too similar to ", + v_right, + "\n", + ] json = self.generate_result(info) results.append(json) return results diff --git a/slither/detectors/variables/uninitialized_state_variables.py b/slither/detectors/variables/uninitialized_state_variables.py index 0fbb73b5d..13cf11052 100644 --- a/slither/detectors/variables/uninitialized_state_variables.py +++ b/slither/detectors/variables/uninitialized_state_variables.py @@ -14,7 +14,11 @@ from slither.core.declarations import Function from slither.core.declarations.contract import Contract from slither.core.variables import Variable from slither.core.variables.state_variable import StateVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations import InternalCall, LibraryCall from slither.slithir.variables import ReferenceVariable from slither.utils.output import Output @@ -140,7 +144,7 @@ Initialize all the variables. If a variable is meant to be initialized to zero, ret = self._detect_uninitialized(c) for variable, functions in ret: - info = [variable, " is never initialized. It is used in:\n"] + info: DETECTOR_INFO = [variable, " is never initialized. It is used in:\n"] for f in functions: info += ["\t- ", f, "\n"] diff --git a/slither/detectors/variables/unused_state_variables.py b/slither/detectors/variables/unused_state_variables.py index d542f67d3..afb4e3ac5 100644 --- a/slither/detectors/variables/unused_state_variables.py +++ b/slither/detectors/variables/unused_state_variables.py @@ -1,13 +1,19 @@ """ Module detecting unused state variables """ -from typing import List, Optional +from typing import List, Optional, Dict from slither.core.compilation_unit import SlitherCompilationUnit +from slither.core.declarations import Function from slither.core.declarations.contract import Contract from slither.core.solidity_types import ArrayType +from slither.core.variables import Variable from slither.core.variables.state_variable import StateVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.formatters.variables.unused_state_variables import custom_format from slither.utils.output import Output from slither.visitors.expression.export_values import ExportValues @@ -18,14 +24,19 @@ def detect_unused(contract: Contract) -> Optional[List[StateVariable]]: return None # Get all the variables read in all the functions and modifiers - all_functions = contract.all_functions_called + contract.modifiers + all_functions = [ + f + for f in contract.all_functions_called + list(contract.modifiers) + if isinstance(f, Function) + ] variables_used = [x.state_variables_read for x in all_functions] variables_used += [ x.state_variables_written for x in all_functions if not x.is_constructor_variables ] - array_candidates = [x.variables for x in all_functions] - array_candidates = [i for sl in array_candidates for i in sl] + contract.state_variables + array_candidates_ = [x.variables for x in all_functions] + array_candidates: List[Variable] = [i for sl in array_candidates_ for i in sl] + array_candidates += contract.state_variables array_candidates = [ x.type.length for x in array_candidates if isinstance(x.type, ArrayType) and x.type.length ] @@ -65,12 +76,12 @@ class UnusedStateVars(AbstractDetector): unusedVars = detect_unused(c) if unusedVars: for var in unusedVars: - info = [var, " is never used in ", c, "\n"] + info: DETECTOR_INFO = [var, " is never used in ", c, "\n"] json = self.generate_result(info) results.append(json) return results @staticmethod - def _format(compilation_unit: SlitherCompilationUnit, result): + def _format(compilation_unit: SlitherCompilationUnit, result: Dict) -> None: custom_format(compilation_unit, result) diff --git a/slither/detectors/variables/var_read_using_this.py b/slither/detectors/variables/var_read_using_this.py index b224f8c17..a2b93a7d8 100644 --- a/slither/detectors/variables/var_read_using_this.py +++ b/slither/detectors/variables/var_read_using_this.py @@ -2,7 +2,11 @@ from typing import List from slither.core.cfg.node import Node from slither.core.declarations import Function, SolidityVariable -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) from slither.slithir.operations.high_level_call import HighLevelCall from slither.utils.output import Output @@ -35,7 +39,7 @@ contract C { for c in self.contracts: for func in c.functions: for node in self._detect_var_read_using_this(func): - info = [ + info: DETECTOR_INFO = [ "The function ", func, " reads ", diff --git a/slither/formatters/attributes/const_functions.py b/slither/formatters/attributes/const_functions.py index 33588af74..310abe0b9 100644 --- a/slither/formatters/attributes/const_functions.py +++ b/slither/formatters/attributes/const_functions.py @@ -1,11 +1,12 @@ import re +from typing import Dict from slither.core.compilation_unit import SlitherCompilationUnit from slither.formatters.exceptions import FormatError from slither.formatters.utils.patches import create_patch -def custom_format(compilation_unit: SlitherCompilationUnit, result): +def custom_format(compilation_unit: SlitherCompilationUnit, result: Dict) -> None: for file_scope in compilation_unit.scopes.values(): elements = result["elements"] for element in elements: diff --git a/slither/formatters/attributes/constant_pragma.py b/slither/formatters/attributes/constant_pragma.py index 251dd07ae..108a8fa08 100644 --- a/slither/formatters/attributes/constant_pragma.py +++ b/slither/formatters/attributes/constant_pragma.py @@ -1,4 +1,7 @@ import re +from typing import Dict + +from slither.core.compilation_unit import SlitherCompilationUnit from slither.formatters.exceptions import FormatImpossible from slither.formatters.utils.patches import create_patch @@ -16,7 +19,7 @@ REPLACEMENT_VERSIONS = ["^0.4.25", "^0.5.3"] PATTERN = re.compile(r"(\^|>|>=|<|<=)?([ ]+)?(\d+)\.(\d+)\.(\d+)") -def custom_format(slither, result): +def custom_format(slither: SlitherCompilationUnit, result: Dict) -> None: elements = result["elements"] versions_used = [] for element in elements: diff --git a/slither/formatters/naming_convention/naming_convention.py b/slither/formatters/naming_convention/naming_convention.py index 76974296f..4aadad072 100644 --- a/slither/formatters/naming_convention/naming_convention.py +++ b/slither/formatters/naming_convention/naming_convention.py @@ -1,9 +1,10 @@ import re import logging -from typing import List +from typing import List, Set, Dict, Union, Optional, Callable, Type, Sequence from slither.core.compilation_unit import SlitherCompilationUnit +from slither.core.variables import Variable from slither.slithir.operations import ( Send, Transfer, @@ -14,7 +15,7 @@ from slither.slithir.operations import ( InternalDynamicCall, Operation, ) -from slither.core.declarations import Modifier +from slither.core.declarations import Modifier, Event from slither.core.solidity_types import UserDefinedType, MappingType from slither.core.declarations import Enum, Contract, Structure, Function from slither.core.solidity_types.elementary_type import ElementaryTypeName @@ -29,7 +30,7 @@ logger = logging.getLogger("Slither.Format") # pylint: disable=anomalous-backslash-in-string -def custom_format(compilation_unit: SlitherCompilationUnit, result): +def custom_format(compilation_unit: SlitherCompilationUnit, result: Dict) -> None: elements = result["elements"] for element in elements: target = element["additional_fields"]["target"] @@ -129,24 +130,24 @@ SOLIDITY_KEYWORDS += [ SOLIDITY_KEYWORDS += ElementaryTypeName -def _name_already_use(slither, name): +def _name_already_use(slither: SlitherCompilationUnit, name: str) -> bool: # Do not convert to a name used somewhere else if not KEY in slither.context: - all_names = set() + all_names: Set[str] = set() for contract in slither.contracts_derived: all_names = all_names.union({st.name for st in contract.structures}) all_names = all_names.union({f.name for f in contract.functions_and_modifiers}) all_names = all_names.union({e.name for e in contract.enums}) - all_names = all_names.union({s.name for s in contract.state_variables}) + all_names = all_names.union({s.name for s in contract.state_variables if s.name}) for function in contract.functions: - all_names = all_names.union({v.name for v in function.variables}) + all_names = all_names.union({v.name for v in function.variables if v.name}) slither.context[KEY] = all_names return name in slither.context[KEY] -def _convert_CapWords(original_name, slither): +def _convert_CapWords(original_name: str, slither: SlitherCompilationUnit) -> str: name = original_name.capitalize() while "_" in name: @@ -162,10 +163,13 @@ def _convert_CapWords(original_name, slither): return name -def _convert_mixedCase(original_name, compilation_unit: SlitherCompilationUnit): - name = original_name - if isinstance(name, bytes): - name = name.decode("utf8") +def _convert_mixedCase( + original_name: Union[str, bytes], compilation_unit: SlitherCompilationUnit +) -> str: + if isinstance(original_name, bytes): + name = original_name.decode("utf8") + else: + name = original_name while "_" in name: offset = name.find("_") @@ -174,13 +178,15 @@ def _convert_mixedCase(original_name, compilation_unit: SlitherCompilationUnit): name = name[0].lower() + name[1:] if _name_already_use(compilation_unit, name): - raise FormatImpossible(f"{original_name} cannot be converted to {name} (already used)") + raise FormatImpossible(f"{original_name} cannot be converted to {name} (already used)") # type: ignore if name in SOLIDITY_KEYWORDS: - raise FormatImpossible(f"{original_name} cannot be converted to {name} (Solidity keyword)") + raise FormatImpossible(f"{original_name} cannot be converted to {name} (Solidity keyword)") # type: ignore return name -def _convert_UPPER_CASE_WITH_UNDERSCORES(name, compilation_unit: SlitherCompilationUnit): +def _convert_UPPER_CASE_WITH_UNDERSCORES( + name: str, compilation_unit: SlitherCompilationUnit +) -> str: if _name_already_use(compilation_unit, name.upper()): raise FormatImpossible(f"{name} cannot be converted to {name.upper()} (already used)") if name.upper() in SOLIDITY_KEYWORDS: @@ -188,7 +194,10 @@ def _convert_UPPER_CASE_WITH_UNDERSCORES(name, compilation_unit: SlitherCompilat return name.upper() -conventions = { +TARGET_TYPE = Union[Contract, Variable, Function] +CONVENTION_F_TYPE = Callable[[str, SlitherCompilationUnit], str] + +conventions: Dict[str, CONVENTION_F_TYPE] = { "CapWords": _convert_CapWords, "mixedCase": _convert_mixedCase, "UPPER_CASE_WITH_UNDERSCORES": _convert_UPPER_CASE_WITH_UNDERSCORES, @@ -203,7 +212,9 @@ conventions = { ################################################################################### -def _get_from_contract(compilation_unit: SlitherCompilationUnit, element, name, getter): +def _get_from_contract( + compilation_unit: SlitherCompilationUnit, element: Dict, name: str, getter: str +) -> TARGET_TYPE: scope = compilation_unit.get_scope(element["source_mapping"]["filename_absolute"]) contract_name = element["type_specific_fields"]["parent"]["name"] contract = scope.get_contract_from_name(contract_name) @@ -218,9 +229,13 @@ def _get_from_contract(compilation_unit: SlitherCompilationUnit, element, name, ################################################################################### -def _patch(compilation_unit: SlitherCompilationUnit, result, element, _target): +def _patch( + compilation_unit: SlitherCompilationUnit, result: Dict, element: Dict, _target: str +) -> None: scope = compilation_unit.get_scope(element["source_mapping"]["filename_absolute"]) + target: Optional[TARGET_TYPE] = None + if _target == "contract": target = scope.get_contract_from_name(element["name"]) @@ -257,7 +272,9 @@ def _patch(compilation_unit: SlitherCompilationUnit, result, element, _target): ] param_name = element["name"] contract = scope.get_contract_from_name(contract_name) + assert contract function = contract.get_function_from_full_name(function_sig) + assert function target = function.get_local_variable_from_name(param_name) elif _target in ["variable", "variable_constant"]: @@ -271,7 +288,9 @@ def _patch(compilation_unit: SlitherCompilationUnit, result, element, _target): ] var_name = element["name"] contract = scope.get_contract_from_name(contract_name) + assert contract function = contract.get_function_from_full_name(function_sig) + assert function target = function.get_local_variable_from_name(var_name) # State variable else: @@ -287,6 +306,7 @@ def _patch(compilation_unit: SlitherCompilationUnit, result, element, _target): else: raise FormatError("Unknown naming convention! " + _target) + assert target _explore( compilation_unit, result, target, conventions[element["additional_fields"]["convention"]] ) @@ -310,7 +330,7 @@ RE_MAPPING = ( ) -def _is_var_declaration(slither, filename, start): +def _is_var_declaration(slither: SlitherCompilationUnit, filename: str, start: int) -> bool: """ Detect usage of 'var ' for Solidity < 0.5 :param slither: @@ -319,12 +339,19 @@ def _is_var_declaration(slither, filename, start): :return: """ v = "var " - return slither.source_code[filename][start : start + len(v)] == v + return slither.core.source_code[filename][start : start + len(v)] == v def _explore_type( # pylint: disable=too-many-arguments,too-many-locals,too-many-branches - slither, result, target, convert, custom_type, filename_source_code, start, end -): + slither: SlitherCompilationUnit, + result: Dict, + target: TARGET_TYPE, + convert: CONVENTION_F_TYPE, + custom_type: Optional[Union[Type, List[Type]]], + filename_source_code: str, + start: int, + end: int, +) -> None: if isinstance(custom_type, UserDefinedType): # Patch type based on contract/enum if isinstance(custom_type.type, (Enum, Contract)): @@ -358,7 +385,7 @@ def _explore_type( # pylint: disable=too-many-arguments,too-many-locals,too-man # Structure contain a list of elements, that might need patching # .elems return a list of VariableStructure _explore_variables_declaration( - slither, custom_type.type.elems.values(), result, target, convert + slither, list(custom_type.type.elems.values()), result, target, convert ) if isinstance(custom_type, MappingType): @@ -377,7 +404,7 @@ def _explore_type( # pylint: disable=too-many-arguments,too-many-locals,too-man full_txt_start = start full_txt_end = end - full_txt = slither.source_code[filename_source_code].encode("utf8")[ + full_txt = slither.core.source_code[filename_source_code].encode("utf8")[ full_txt_start:full_txt_end ] re_match = re.match(RE_MAPPING, full_txt) @@ -417,14 +444,19 @@ def _explore_type( # pylint: disable=too-many-arguments,too-many-locals,too-man def _explore_variables_declaration( # pylint: disable=too-many-arguments,too-many-locals,too-many-nested-blocks - slither, variables, result, target, convert, patch_comment=False -): + slither: SlitherCompilationUnit, + variables: Sequence[Variable], + result: Dict, + target: TARGET_TYPE, + convert: CONVENTION_F_TYPE, + patch_comment: bool = False, +) -> None: for variable in variables: # First explore the type of the variable filename_source_code = variable.source_mapping.filename.absolute full_txt_start = variable.source_mapping.start full_txt_end = full_txt_start + variable.source_mapping.length - full_txt = slither.source_code[filename_source_code].encode("utf8")[ + full_txt = slither.core.source_code[filename_source_code].encode("utf8")[ full_txt_start:full_txt_end ] @@ -442,6 +474,8 @@ def _explore_variables_declaration( # pylint: disable=too-many-arguments,too-ma # If the variable is the target if variable == target: old_str = variable.name + if old_str is None: + old_str = "" new_str = convert(old_str, slither) loc_start = full_txt_start + full_txt.find(old_str.encode("utf8")) @@ -458,10 +492,10 @@ def _explore_variables_declaration( # pylint: disable=too-many-arguments,too-ma idx = len(func.parameters) - func.parameters.index(variable) + 1 first_line = end_line - idx - 2 - potential_comments = slither.source_code[filename_source_code].encode( + potential_comments_ = slither.core.source_code[filename_source_code].encode( "utf8" ) - potential_comments = potential_comments.splitlines(keepends=True)[ + potential_comments = potential_comments_.splitlines(keepends=True)[ first_line : end_line - 1 ] @@ -491,10 +525,16 @@ def _explore_variables_declaration( # pylint: disable=too-many-arguments,too-ma idx_beginning += len(line) -def _explore_structures_declaration(slither, structures, result, target, convert): +def _explore_structures_declaration( + slither: SlitherCompilationUnit, + structures: Sequence[Structure], + result: Dict, + target: TARGET_TYPE, + convert: CONVENTION_F_TYPE, +) -> None: for st in structures: # Explore the variable declared within the structure (VariableStructure) - _explore_variables_declaration(slither, st.elems.values(), result, target, convert) + _explore_variables_declaration(slither, list(st.elems.values()), result, target, convert) # If the structure is the target if st == target: @@ -504,7 +544,7 @@ def _explore_structures_declaration(slither, structures, result, target, convert filename_source_code = st.source_mapping.filename.absolute full_txt_start = st.source_mapping.start full_txt_end = full_txt_start + st.source_mapping.length - full_txt = slither.source_code[filename_source_code].encode("utf8")[ + full_txt = slither.core.source_code[filename_source_code].encode("utf8")[ full_txt_start:full_txt_end ] @@ -517,7 +557,13 @@ def _explore_structures_declaration(slither, structures, result, target, convert create_patch(result, filename_source_code, loc_start, loc_end, old_str, new_str) -def _explore_events_declaration(slither, events, result, target, convert): +def _explore_events_declaration( + slither: SlitherCompilationUnit, + events: Sequence[Event], + result: Dict, + target: TARGET_TYPE, + convert: CONVENTION_F_TYPE, +) -> None: for event in events: # Explore the parameters _explore_variables_declaration(slither, event.elems, result, target, convert) @@ -535,7 +581,7 @@ def _explore_events_declaration(slither, events, result, target, convert): create_patch(result, filename_source_code, loc_start, loc_end, old_str, new_str) -def get_ir_variables(ir): +def get_ir_variables(ir: Operation) -> List[Union[Variable, Function]]: all_vars = ir.read if isinstance(ir, (InternalCall, InternalDynamicCall, HighLevelCall)): @@ -553,9 +599,15 @@ def get_ir_variables(ir): return [v for v in all_vars if v] -def _explore_irs(slither, irs: List[Operation], result, target, convert): +def _explore_irs( + slither: SlitherCompilationUnit, + irs: List[Operation], + result: Dict, + target: TARGET_TYPE, + convert: CONVENTION_F_TYPE, +) -> None: # pylint: disable=too-many-locals - if irs is None: + if not irs: return for ir in irs: for v in get_ir_variables(ir): @@ -568,7 +620,7 @@ def _explore_irs(slither, irs: List[Operation], result, target, convert): filename_source_code = source_mapping.filename.absolute full_txt_start = source_mapping.start full_txt_end = full_txt_start + source_mapping.length - full_txt = slither.source_code[filename_source_code].encode("utf8")[ + full_txt = slither.core.source_code[filename_source_code].encode("utf8")[ full_txt_start:full_txt_end ] @@ -600,7 +652,13 @@ def _explore_irs(slither, irs: List[Operation], result, target, convert): ) -def _explore_functions(slither, functions, result, target, convert): +def _explore_functions( + slither: SlitherCompilationUnit, + functions: List[Function], + result: Dict, + target: TARGET_TYPE, + convert: CONVENTION_F_TYPE, +) -> None: for function in functions: _explore_variables_declaration(slither, function.variables, result, target, convert, True) _explore_irs(slither, function.all_slithir_operations(), result, target, convert) @@ -612,7 +670,7 @@ def _explore_functions(slither, functions, result, target, convert): filename_source_code = function.source_mapping.filename.absolute full_txt_start = function.source_mapping.start full_txt_end = full_txt_start + function.source_mapping.length - full_txt = slither.source_code[filename_source_code].encode("utf8")[ + full_txt = slither.core.source_code[filename_source_code].encode("utf8")[ full_txt_start:full_txt_end ] @@ -628,7 +686,13 @@ def _explore_functions(slither, functions, result, target, convert): create_patch(result, filename_source_code, loc_start, loc_end, old_str, new_str) -def _explore_enums(slither, enums, result, target, convert): +def _explore_enums( + slither: SlitherCompilationUnit, + enums: Sequence[Enum], + result: Dict, + target: TARGET_TYPE, + convert: CONVENTION_F_TYPE, +) -> None: for enum in enums: if enum == target: old_str = enum.name @@ -637,7 +701,7 @@ def _explore_enums(slither, enums, result, target, convert): filename_source_code = enum.source_mapping.filename.absolute full_txt_start = enum.source_mapping.start full_txt_end = full_txt_start + enum.source_mapping.length - full_txt = slither.source_code[filename_source_code].encode("utf8")[ + full_txt = slither.core.source_code[filename_source_code].encode("utf8")[ full_txt_start:full_txt_end ] @@ -650,7 +714,13 @@ def _explore_enums(slither, enums, result, target, convert): create_patch(result, filename_source_code, loc_start, loc_end, old_str, new_str) -def _explore_contract(slither, contract, result, target, convert): +def _explore_contract( + slither: SlitherCompilationUnit, + contract: Contract, + result: Dict, + target: TARGET_TYPE, + convert: CONVENTION_F_TYPE, +) -> None: _explore_variables_declaration(slither, contract.state_variables, result, target, convert) _explore_structures_declaration(slither, contract.structures, result, target, convert) _explore_functions(slither, contract.functions_and_modifiers, result, target, convert) @@ -660,7 +730,7 @@ def _explore_contract(slither, contract, result, target, convert): filename_source_code = contract.source_mapping.filename.absolute full_txt_start = contract.source_mapping.start full_txt_end = full_txt_start + contract.source_mapping.length - full_txt = slither.source_code[filename_source_code].encode("utf8")[ + full_txt = slither.core.source_code[filename_source_code].encode("utf8")[ full_txt_start:full_txt_end ] @@ -677,7 +747,12 @@ def _explore_contract(slither, contract, result, target, convert): create_patch(result, filename_source_code, loc_start, loc_end, old_str, new_str) -def _explore(compilation_unit: SlitherCompilationUnit, result, target, convert): +def _explore( + compilation_unit: SlitherCompilationUnit, + result: Dict, + target: TARGET_TYPE, + convert: CONVENTION_F_TYPE, +) -> None: for contract in compilation_unit.contracts_derived: _explore_contract(compilation_unit, contract, result, target, convert) diff --git a/slither/formatters/variables/unused_state_variables.py b/slither/formatters/variables/unused_state_variables.py index 8e0852a17..90009c7f1 100644 --- a/slither/formatters/variables/unused_state_variables.py +++ b/slither/formatters/variables/unused_state_variables.py @@ -1,8 +1,10 @@ +from typing import Dict + from slither.core.compilation_unit import SlitherCompilationUnit from slither.formatters.utils.patches import create_patch -def custom_format(compilation_unit: SlitherCompilationUnit, result): +def custom_format(compilation_unit: SlitherCompilationUnit, result: Dict) -> None: elements = result["elements"] for element in elements: if element["type"] == "variable": @@ -14,7 +16,9 @@ def custom_format(compilation_unit: SlitherCompilationUnit, result): ) -def _patch(compilation_unit: SlitherCompilationUnit, result, in_file, modify_loc_start): +def _patch( + compilation_unit: SlitherCompilationUnit, result: Dict, in_file: str, modify_loc_start: int +) -> None: in_file_str = compilation_unit.core.source_code[in_file].encode("utf8") old_str_of_interest = in_file_str[modify_loc_start:] old_str = ( diff --git a/slither/slithir/operations/assignment.py b/slither/slithir/operations/assignment.py index 0ed5f70a4..5bedf2c85 100644 --- a/slither/slithir/operations/assignment.py +++ b/slither/slithir/operations/assignment.py @@ -1,20 +1,21 @@ import logging -from typing import List +from typing import List, Union from slither.core.declarations.function import Function +from slither.core.solidity_types import Type from slither.slithir.operations.lvalue import OperationWithLValue -from slither.slithir.utils.utils import is_valid_lvalue, is_valid_rvalue +from slither.slithir.utils.utils import is_valid_lvalue, is_valid_rvalue, RVALUE, LVALUE from slither.slithir.variables import TupleVariable, ReferenceVariable -from slither.core.source_mapping.source_mapping import SourceMapping -from slither.core.variables.variable import Variable - logger = logging.getLogger("AssignmentOperationIR") class Assignment(OperationWithLValue): def __init__( - self, left_variable: Variable, right_variable: SourceMapping, variable_return_type + self, + left_variable: LVALUE, + right_variable: Union[RVALUE, Function, TupleVariable], + variable_return_type: Type, ) -> None: assert is_valid_lvalue(left_variable) assert is_valid_rvalue(right_variable) or isinstance( @@ -22,30 +23,32 @@ class Assignment(OperationWithLValue): ) super().__init__() self._variables = [left_variable, right_variable] - self._lvalue = left_variable - self._rvalue = right_variable + self._lvalue: LVALUE = left_variable + self._rvalue: Union[RVALUE, Function, TupleVariable] = right_variable self._variable_return_type = variable_return_type @property - def variables(self): + def variables(self) -> List[Union[LVALUE, RVALUE, Function, TupleVariable]]: return list(self._variables) @property - def read(self) -> List[SourceMapping]: + def read(self) -> List[Union[RVALUE, Function, TupleVariable]]: return [self.rvalue] @property - def variable_return_type(self): + def variable_return_type(self) -> Type: return self._variable_return_type @property - def rvalue(self) -> SourceMapping: + def rvalue(self) -> Union[RVALUE, Function, TupleVariable]: return self._rvalue - def __str__(self): - if isinstance(self.lvalue, ReferenceVariable): - points = self.lvalue.points_to + def __str__(self) -> str: + lvalue = self.lvalue + assert lvalue + if lvalue and isinstance(lvalue, ReferenceVariable): + points = lvalue.points_to while isinstance(points, ReferenceVariable): points = points.points_to - return f"{self.lvalue} (->{points}) := {self.rvalue}({self.rvalue.type})" - return f"{self.lvalue}({self.lvalue.type}) := {self.rvalue}({self.rvalue.type})" + return f"{lvalue} (->{points}) := {self.rvalue}({self.rvalue.type})" + return f"{lvalue}({lvalue.type}) := {self.rvalue}({self.rvalue.type})" diff --git a/slither/slithir/operations/binary.py b/slither/slithir/operations/binary.py index ad65e3e75..42f05011d 100644 --- a/slither/slithir/operations/binary.py +++ b/slither/slithir/operations/binary.py @@ -1,17 +1,14 @@ import logging -from typing import List - from enum import Enum +from typing import List, Union from slither.core.declarations import Function from slither.core.solidity_types import ElementaryType +from slither.core.variables.variable import Variable from slither.slithir.exceptions import SlithIRError from slither.slithir.operations.lvalue import OperationWithLValue -from slither.slithir.utils.utils import is_valid_lvalue, is_valid_rvalue +from slither.slithir.utils.utils import is_valid_lvalue, is_valid_rvalue, LVALUE, RVALUE from slither.slithir.variables import ReferenceVariable -from slither.core.source_mapping.source_mapping import SourceMapping -from slither.core.variables.variable import Variable - logger = logging.getLogger("BinaryOperationIR") @@ -51,7 +48,7 @@ class BinaryType(Enum): ] @staticmethod - def get_type(operation_type): # pylint: disable=too-many-branches + def get_type(operation_type: str) -> "BinaryType": # pylint: disable=too-many-branches if operation_type == "**": return BinaryType.POWER if operation_type == "*": @@ -93,7 +90,7 @@ class BinaryType(Enum): raise SlithIRError(f"get_type: Unknown operation type {operation_type})") - def can_be_checked_for_overflow(self): + def can_be_checked_for_overflow(self) -> bool: return self in [ BinaryType.POWER, BinaryType.MULTIPLICATION, @@ -108,8 +105,8 @@ class Binary(OperationWithLValue): def __init__( self, result: Variable, - left_variable: SourceMapping, - right_variable: Variable, + left_variable: Union[LVALUE, Function], + right_variable: Union[RVALUE, Function], operation_type: BinaryType, ) -> None: assert is_valid_rvalue(left_variable) or isinstance(left_variable, Function) @@ -126,36 +123,38 @@ class Binary(OperationWithLValue): result.set_type(left_variable.type) @property - def read(self) -> List[SourceMapping]: + def read(self) -> List[Union[RVALUE, LVALUE, Function]]: return [self.variable_left, self.variable_right] @property - def get_variable(self): + def get_variable(self) -> List[Union[RVALUE, LVALUE, Function]]: return self._variables @property - def variable_left(self) -> SourceMapping: - return self._variables[0] + def variable_left(self) -> Union[LVALUE, Function]: + return self._variables[0] # type: ignore @property - def variable_right(self) -> Variable: - return self._variables[1] + def variable_right(self) -> Union[RVALUE, Function]: + return self._variables[1] # type: ignore @property def type(self) -> BinaryType: return self._type @property - def type_str(self): + def type_str(self) -> str: if self.node.scope.is_checked and self._type.can_be_checked_for_overflow(): - return "(c)" + self._type.value - return self._type.value - - def __str__(self): - if isinstance(self.lvalue, ReferenceVariable): - points = self.lvalue.points_to + return "(c)" + str(self._type.value) + return str(self._type.value) + + def __str__(self) -> str: + lvalue = self.lvalue + assert lvalue + if isinstance(lvalue, ReferenceVariable): + points = lvalue.points_to while isinstance(points, ReferenceVariable): points = points.points_to - return f"{str(self.lvalue)}(-> {points}) = {self.variable_left} {self.type_str} {self.variable_right}" + return f"{str(lvalue)}(-> {points}) = {self.variable_left} {self.type_str} {self.variable_right}" - return f"{str(self.lvalue)}({self.lvalue.type}) = {self.variable_left} {self.type_str} {self.variable_right}" + return f"{str(lvalue)}({lvalue.type}) = {self.variable_left} {self.type_str} {self.variable_right}" diff --git a/slither/slithir/operations/internal_call.py b/slither/slithir/operations/internal_call.py index 395c68846..1983b885f 100644 --- a/slither/slithir/operations/internal_call.py +++ b/slither/slithir/operations/internal_call.py @@ -24,7 +24,7 @@ class InternalCall(Call, OperationWithLValue): # pylint: disable=too-many-insta super().__init__() self._contract_name = "" if isinstance(function, Function): - self._function = function + self._function: Optional[Function] = function self._function_name = function.name if isinstance(function, FunctionContract): self._contract_name = function.contract_declarer.name @@ -45,7 +45,7 @@ class InternalCall(Call, OperationWithLValue): # pylint: disable=too-many-insta return list(self._unroll(self.arguments)) @property - def function(self): + def function(self) -> Optional[Function]: return self._function @function.setter diff --git a/slither/slithir/tmp_operations/argument.py b/slither/slithir/tmp_operations/argument.py index 25ea5d019..638c5dcb4 100644 --- a/slither/slithir/tmp_operations/argument.py +++ b/slither/slithir/tmp_operations/argument.py @@ -1,4 +1,7 @@ from enum import Enum +from typing import Optional, List + +from slither.core.expressions.expression import Expression from slither.slithir.operations.operation import Operation @@ -10,26 +13,26 @@ class ArgumentType(Enum): class Argument(Operation): - def __init__(self, argument) -> None: + def __init__(self, argument: Expression) -> None: super().__init__() self._argument = argument self._type = ArgumentType.CALL - self._callid = None + self._callid: Optional[str] = None @property - def argument(self): + def argument(self) -> Expression: return self._argument @property - def call_id(self): + def call_id(self) -> Optional[str]: return self._callid @call_id.setter - def call_id(self, c): + def call_id(self, c: str) -> None: self._callid = c @property - def read(self): + def read(self) -> List[Expression]: return [self.argument] def set_type(self, t: ArgumentType) -> None: @@ -39,7 +42,7 @@ class Argument(Operation): def get_type(self) -> ArgumentType: return self._type - def __str__(self): + def __str__(self) -> str: call_id = "none" if self.call_id: call_id = f"(id ({self.call_id}))" From 9259d53cd9b0509c2e638d82a5a4a12447f4bc51 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Mon, 20 Feb 2023 10:30:30 +0100 Subject: [PATCH 003/193] Remove ExpressionTyped --- .../core/expressions/assignment_operation.py | 3 +-- slither/core/expressions/binary_operation.py | 3 +-- slither/core/expressions/expression_typed.py | 20 ------------------- slither/core/expressions/identifier.py | 16 ++++++++++++--- slither/core/expressions/index_access.py | 6 ++---- slither/core/expressions/member_access.py | 3 +-- slither/core/expressions/type_conversion.py | 11 ++++++++-- slither/core/expressions/unary_operation.py | 3 +-- 8 files changed, 28 insertions(+), 37 deletions(-) delete mode 100644 slither/core/expressions/expression_typed.py diff --git a/slither/core/expressions/assignment_operation.py b/slither/core/expressions/assignment_operation.py index 22aba57fb..59057e312 100644 --- a/slither/core/expressions/assignment_operation.py +++ b/slither/core/expressions/assignment_operation.py @@ -2,7 +2,6 @@ import logging from enum import Enum from typing import Optional, TYPE_CHECKING, List -from slither.core.expressions.expression_typed import ExpressionTyped from slither.core.expressions.expression import Expression from slither.core.exceptions import SlitherCoreError @@ -78,7 +77,7 @@ class AssignmentOperationType(Enum): raise SlitherCoreError(f"str: Unknown operation type {self})") -class AssignmentOperation(ExpressionTyped): +class AssignmentOperation(Expression): def __init__( self, left_expression: Expression, diff --git a/slither/core/expressions/binary_operation.py b/slither/core/expressions/binary_operation.py index a3d435075..a395d07cf 100644 --- a/slither/core/expressions/binary_operation.py +++ b/slither/core/expressions/binary_operation.py @@ -2,7 +2,6 @@ import logging from enum import Enum from typing import List -from slither.core.expressions.expression_typed import ExpressionTyped from slither.core.expressions.expression import Expression from slither.core.exceptions import SlitherCoreError @@ -148,7 +147,7 @@ class BinaryOperationType(Enum): raise SlitherCoreError(f"str: Unknown operation type {self})") -class BinaryOperation(ExpressionTyped): +class BinaryOperation(Expression): def __init__( self, left_expression: Expression, diff --git a/slither/core/expressions/expression_typed.py b/slither/core/expressions/expression_typed.py deleted file mode 100644 index 2bf3fe39d..000000000 --- a/slither/core/expressions/expression_typed.py +++ /dev/null @@ -1,20 +0,0 @@ -from typing import Optional, TYPE_CHECKING - -from slither.core.expressions.expression import Expression - -if TYPE_CHECKING: - from slither.core.solidity_types.type import Type - - -class ExpressionTyped(Expression): # pylint: disable=too-few-public-methods - def __init__(self) -> None: - super().__init__() - self._type: Optional["Type"] = None - - @property - def type(self) -> Optional["Type"]: - return self._type - - @type.setter - def type(self, new_type: "Type"): - self._type = new_type diff --git a/slither/core/expressions/identifier.py b/slither/core/expressions/identifier.py index 0b10c5615..58a1174af 100644 --- a/slither/core/expressions/identifier.py +++ b/slither/core/expressions/identifier.py @@ -1,15 +1,25 @@ -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Optional -from slither.core.expressions.expression_typed import ExpressionTyped +from slither.core.expressions.expression import Expression if TYPE_CHECKING: from slither.core.variables.variable import Variable + from slither.core.solidity_types.type import Type -class Identifier(ExpressionTyped): +class Identifier(Expression): def __init__(self, value) -> None: super().__init__() self._value: "Variable" = value + self._type: Optional["Type"] = None + + @property + def type(self) -> Optional["Type"]: + return self._type + + @type.setter + def type(self, new_type: "Type") -> None: + self._type = new_type @property def value(self) -> "Variable": diff --git a/slither/core/expressions/index_access.py b/slither/core/expressions/index_access.py index 4f96a56d6..f8e630a6e 100644 --- a/slither/core/expressions/index_access.py +++ b/slither/core/expressions/index_access.py @@ -1,16 +1,14 @@ from typing import Union, List, TYPE_CHECKING -from slither.core.expressions.expression_typed import ExpressionTyped from slither.core.expressions.identifier import Identifier from slither.core.expressions.literal import Literal - +from slither.core.expressions.expression import Expression if TYPE_CHECKING: - from slither.core.expressions.expression import Expression from slither.core.solidity_types.type import Type -class IndexAccess(ExpressionTyped): +class IndexAccess(Expression): def __init__( self, left_expression: Union["IndexAccess", Identifier], diff --git a/slither/core/expressions/member_access.py b/slither/core/expressions/member_access.py index 36d6818b2..e24024318 100644 --- a/slither/core/expressions/member_access.py +++ b/slither/core/expressions/member_access.py @@ -1,10 +1,9 @@ from slither.core.expressions.expression import Expression -from slither.core.expressions.expression_typed import ExpressionTyped from slither.core.solidity_types.type import Type -class MemberAccess(ExpressionTyped): +class MemberAccess(Expression): def __init__(self, member_name: str, member_type: str, expression: Expression) -> None: # assert isinstance(member_type, Type) # TODO member_type is not always a Type diff --git a/slither/core/expressions/type_conversion.py b/slither/core/expressions/type_conversion.py index b9cd6879e..2acc8bd52 100644 --- a/slither/core/expressions/type_conversion.py +++ b/slither/core/expressions/type_conversion.py @@ -1,6 +1,5 @@ from typing import Union, TYPE_CHECKING -from slither.core.expressions.expression_typed import ExpressionTyped from slither.core.expressions.expression import Expression from slither.core.solidity_types.type import Type @@ -14,7 +13,7 @@ if TYPE_CHECKING: from slither.core.solidity_types.user_defined_type import UserDefinedType -class TypeConversion(ExpressionTyped): +class TypeConversion(Expression): def __init__( self, expression: Union[ @@ -28,6 +27,14 @@ class TypeConversion(ExpressionTyped): self._expression: Expression = expression self._type: Type = expression_type + @property + def type(self) -> Type: + return self._type + + @type.setter + def type(self, new_type: Type) -> None: + self._type = new_type + @property def expression(self) -> Expression: return self._expression diff --git a/slither/core/expressions/unary_operation.py b/slither/core/expressions/unary_operation.py index a04c57591..657224927 100644 --- a/slither/core/expressions/unary_operation.py +++ b/slither/core/expressions/unary_operation.py @@ -2,7 +2,6 @@ import logging from typing import Union from enum import Enum -from slither.core.expressions.expression_typed import ExpressionTyped from slither.core.expressions.expression import Expression from slither.core.exceptions import SlitherCoreError from slither.core.expressions.identifier import Identifier @@ -91,7 +90,7 @@ class UnaryOperationType(Enum): raise SlitherCoreError(f"is_prefix: Unknown operation type {operation_type}") -class UnaryOperation(ExpressionTyped): +class UnaryOperation(Expression): def __init__( self, expression: Union[Literal, Identifier, IndexAccess, TupleExpression], From 10109fc553d7a6fc08c0bfcb23a9d25c3abb106f Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Mon, 20 Feb 2023 11:28:54 +0100 Subject: [PATCH 004/193] Remove core.children --- slither/core/cfg/node.py | 11 ++++-- slither/core/children/child_event.py | 17 --------- slither/core/children/child_expression.py | 18 ---------- slither/core/children/child_function.py | 17 --------- slither/core/children/child_inheritance.py | 17 --------- slither/core/children/child_node.py | 31 ---------------- slither/core/children/child_structure.py | 17 --------- .../contract_level.py} | 13 +++++-- .../declarations/custom_error_contract.py | 4 +-- slither/core/declarations/enum_contract.py | 4 +-- slither/core/declarations/event.py | 4 +-- .../core/declarations/function_contract.py | 29 ++++++++++++--- .../core/declarations/structure_contract.py | 4 +-- slither/core/declarations/top_level.py | 6 +++- slither/core/slither_core.py | 10 ++++-- slither/core/solidity_types/type_alias.py | 4 +-- slither/core/variables/event_variable.py | 5 ++- slither/core/variables/local_variable.py | 17 +++++++-- slither/core/variables/state_variable.py | 4 +-- slither/core/variables/structure_variable.py | 19 ++++++++-- .../erc/incorrect_erc721_interface.py | 4 ++- .../operations/missing_events_arithmetic.py | 4 ++- slither/detectors/statements/tx_origin.py | 4 ++- slither/slithir/convert.py | 2 +- .../operations/internal_dynamic_call.py | 4 +-- slither/slithir/operations/new_structure.py | 4 ++- slither/slithir/operations/operation.py | 35 ++++++++++++++++--- slither/slithir/operations/solidity_call.py | 3 +- slither/slithir/operations/type_conversion.py | 4 ++- slither/slithir/variables/reference.py | 7 ++-- slither/slithir/variables/temporary.py | 7 ++-- slither/slithir/variables/tuple.py | 7 ++-- slither/solc_parsing/declarations/contract.py | 8 ++++- slither/utils/output.py | 21 +++++++---- tests/test_ssa_generation.py | 2 +- 35 files changed, 187 insertions(+), 180 deletions(-) delete mode 100644 slither/core/children/child_event.py delete mode 100644 slither/core/children/child_expression.py delete mode 100644 slither/core/children/child_function.py delete mode 100644 slither/core/children/child_inheritance.py delete mode 100644 slither/core/children/child_node.py delete mode 100644 slither/core/children/child_structure.py rename slither/core/{children/child_contract.py => declarations/contract_level.py} (57%) diff --git a/slither/core/cfg/node.py b/slither/core/cfg/node.py index 7643b19b7..a740d41b9 100644 --- a/slither/core/cfg/node.py +++ b/slither/core/cfg/node.py @@ -5,7 +5,6 @@ from enum import Enum from typing import Optional, List, Set, Dict, Tuple, Union, TYPE_CHECKING from slither.all_exceptions import SlitherException -from slither.core.children.child_function import ChildFunction from slither.core.declarations import Contract, Function from slither.core.declarations.solidity_variables import ( SolidityVariable, @@ -106,7 +105,7 @@ class NodeType(Enum): # I am not sure why, but pylint reports a lot of "no-member" issue that are not real (Josselin) # pylint: disable=no-member -class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-methods +class Node(SourceMapping): # pylint: disable=too-many-public-methods """ Node class @@ -189,6 +188,7 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met self.scope: Union["Scope", "Function"] = scope self.file_scope: "FileScope" = file_scope + self._function: Optional["Function"] = None ################################################################################### ################################################################################### @@ -224,6 +224,13 @@ class Node(SourceMapping, ChildFunction): # pylint: disable=too-many-public-met return True return False + def set_function(self, function: "Function") -> None: + self._function = function + + @property + def function(self) -> "Function": + return self._function + # endregion ################################################################################### ################################################################################### diff --git a/slither/core/children/child_event.py b/slither/core/children/child_event.py deleted file mode 100644 index df91596e3..000000000 --- a/slither/core/children/child_event.py +++ /dev/null @@ -1,17 +0,0 @@ -from typing import TYPE_CHECKING - -if TYPE_CHECKING: - from slither.core.declarations import Event - - -class ChildEvent: - def __init__(self) -> None: - super().__init__() - self._event = None - - def set_event(self, event: "Event"): - self._event = event - - @property - def event(self) -> "Event": - return self._event diff --git a/slither/core/children/child_expression.py b/slither/core/children/child_expression.py deleted file mode 100644 index 0064658c0..000000000 --- a/slither/core/children/child_expression.py +++ /dev/null @@ -1,18 +0,0 @@ -from typing import TYPE_CHECKING, Union - -if TYPE_CHECKING: - from slither.core.expressions.expression import Expression - from slither.slithir.operations import Operation - - -class ChildExpression: - def __init__(self) -> None: - super().__init__() - self._expression = None - - def set_expression(self, expression: Union["Expression", "Operation"]) -> None: - self._expression = expression - - @property - def expression(self) -> Union["Expression", "Operation"]: - return self._expression diff --git a/slither/core/children/child_function.py b/slither/core/children/child_function.py deleted file mode 100644 index 5367320ca..000000000 --- a/slither/core/children/child_function.py +++ /dev/null @@ -1,17 +0,0 @@ -from typing import TYPE_CHECKING - -if TYPE_CHECKING: - from slither.core.declarations import Function - - -class ChildFunction: - def __init__(self) -> None: - super().__init__() - self._function = None - - def set_function(self, function: "Function") -> None: - self._function = function - - @property - def function(self) -> "Function": - return self._function diff --git a/slither/core/children/child_inheritance.py b/slither/core/children/child_inheritance.py deleted file mode 100644 index 30b32f6c1..000000000 --- a/slither/core/children/child_inheritance.py +++ /dev/null @@ -1,17 +0,0 @@ -from typing import TYPE_CHECKING - -if TYPE_CHECKING: - from slither.core.declarations import Contract - - -class ChildInheritance: - def __init__(self) -> None: - super().__init__() - self._contract_declarer = None - - def set_contract_declarer(self, contract: "Contract") -> None: - self._contract_declarer = contract - - @property - def contract_declarer(self) -> "Contract": - return self._contract_declarer diff --git a/slither/core/children/child_node.py b/slither/core/children/child_node.py deleted file mode 100644 index 8e6e1f0b5..000000000 --- a/slither/core/children/child_node.py +++ /dev/null @@ -1,31 +0,0 @@ -from typing import TYPE_CHECKING - -if TYPE_CHECKING: - from slither.core.compilation_unit import SlitherCompilationUnit - from slither.core.cfg.node import Node - from slither.core.declarations import Function, Contract - - -class ChildNode: - def __init__(self) -> None: - super().__init__() - self._node = None - - def set_node(self, node: "Node") -> None: - self._node = node - - @property - def node(self) -> "Node": - return self._node - - @property - def function(self) -> "Function": - return self.node.function - - @property - def contract(self) -> "Contract": - return self.node.function.contract - - @property - def compilation_unit(self) -> "SlitherCompilationUnit": - return self.node.compilation_unit diff --git a/slither/core/children/child_structure.py b/slither/core/children/child_structure.py deleted file mode 100644 index abcb041c2..000000000 --- a/slither/core/children/child_structure.py +++ /dev/null @@ -1,17 +0,0 @@ -from typing import TYPE_CHECKING - -if TYPE_CHECKING: - from slither.core.declarations import Structure - - -class ChildStructure: - def __init__(self) -> None: - super().__init__() - self._structure = None - - def set_structure(self, structure: "Structure") -> None: - self._structure = structure - - @property - def structure(self) -> "Structure": - return self._structure diff --git a/slither/core/children/child_contract.py b/slither/core/declarations/contract_level.py similarity index 57% rename from slither/core/children/child_contract.py rename to slither/core/declarations/contract_level.py index 86f9dea53..5893a7035 100644 --- a/slither/core/children/child_contract.py +++ b/slither/core/declarations/contract_level.py @@ -1,4 +1,4 @@ -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Optional from slither.core.source_mapping.source_mapping import SourceMapping @@ -6,14 +6,21 @@ if TYPE_CHECKING: from slither.core.declarations import Contract -class ChildContract(SourceMapping): +class ContractLevel(SourceMapping): + """ + This class is used to represent objects that are at the contract level + The opposite is TopLevel + + """ + def __init__(self) -> None: super().__init__() - self._contract = None + self._contract: Optional["Contract"] = None def set_contract(self, contract: "Contract") -> None: self._contract = contract @property def contract(self) -> "Contract": + assert self._contract return self._contract diff --git a/slither/core/declarations/custom_error_contract.py b/slither/core/declarations/custom_error_contract.py index a96f12057..a3839e3f2 100644 --- a/slither/core/declarations/custom_error_contract.py +++ b/slither/core/declarations/custom_error_contract.py @@ -1,8 +1,8 @@ -from slither.core.children.child_contract import ChildContract +from slither.core.declarations.contract_level import ContractLevel from slither.core.declarations.custom_error import CustomError -class CustomErrorContract(CustomError, ChildContract): +class CustomErrorContract(CustomError, ContractLevel): def is_declared_by(self, contract): """ Check if the element is declared by the contract diff --git a/slither/core/declarations/enum_contract.py b/slither/core/declarations/enum_contract.py index 46168d107..2e51ae511 100644 --- a/slither/core/declarations/enum_contract.py +++ b/slither/core/declarations/enum_contract.py @@ -1,13 +1,13 @@ from typing import TYPE_CHECKING -from slither.core.children.child_contract import ChildContract +from slither.core.declarations.contract_level import ContractLevel from slither.core.declarations import Enum if TYPE_CHECKING: from slither.core.declarations import Contract -class EnumContract(Enum, ChildContract): +class EnumContract(Enum, ContractLevel): def is_declared_by(self, contract: "Contract") -> bool: """ Check if the element is declared by the contract diff --git a/slither/core/declarations/event.py b/slither/core/declarations/event.py index d616679a2..9d42ac224 100644 --- a/slither/core/declarations/event.py +++ b/slither/core/declarations/event.py @@ -1,6 +1,6 @@ from typing import List, Tuple, TYPE_CHECKING -from slither.core.children.child_contract import ChildContract +from slither.core.declarations.contract_level import ContractLevel from slither.core.source_mapping.source_mapping import SourceMapping from slither.core.variables.event_variable import EventVariable @@ -8,7 +8,7 @@ if TYPE_CHECKING: from slither.core.declarations import Contract -class Event(ChildContract, SourceMapping): +class Event(ContractLevel, SourceMapping): def __init__(self) -> None: super().__init__() self._name = None diff --git a/slither/core/declarations/function_contract.py b/slither/core/declarations/function_contract.py index 19456bbea..69c50a117 100644 --- a/slither/core/declarations/function_contract.py +++ b/slither/core/declarations/function_contract.py @@ -1,10 +1,9 @@ """ Function module """ -from typing import Dict, TYPE_CHECKING, List, Tuple +from typing import Dict, TYPE_CHECKING, List, Tuple, Optional -from slither.core.children.child_contract import ChildContract -from slither.core.children.child_inheritance import ChildInheritance +from slither.core.declarations.contract_level import ContractLevel from slither.core.declarations import Function @@ -14,9 +13,31 @@ if TYPE_CHECKING: from slither.core.declarations import Contract from slither.core.scope.scope import FileScope from slither.slithir.variables.state_variable import StateIRVariable + from slither.core.compilation_unit import SlitherCompilationUnit -class FunctionContract(Function, ChildContract, ChildInheritance): +class FunctionContract(Function, ContractLevel): + def __init__(self, compilation_unit: "SlitherCompilationUnit") -> None: + super().__init__(compilation_unit) + self._contract_declarer: Optional["Contract"] = None + + def set_contract_declarer(self, contract: "Contract") -> None: + self._contract_declarer = contract + + @property + def contract_declarer(self) -> "Contract": + """ + Return the contract where this function was declared. Only functions have both a contract, and contract_declarer + This is because we need to have separate representation of the function depending of the contract's context + For example a function calling super.f() will generate different IR depending on the current contract's inheritance + + Returns: + The contract where this function was declared + """ + + assert self._contract_declarer + return self._contract_declarer + @property def canonical_name(self) -> str: """ diff --git a/slither/core/declarations/structure_contract.py b/slither/core/declarations/structure_contract.py index aaf660e1e..c9d05ce4e 100644 --- a/slither/core/declarations/structure_contract.py +++ b/slither/core/declarations/structure_contract.py @@ -1,8 +1,8 @@ -from slither.core.children.child_contract import ChildContract +from slither.core.declarations.contract_level import ContractLevel from slither.core.declarations import Structure -class StructureContract(Structure, ChildContract): +class StructureContract(Structure, ContractLevel): def is_declared_by(self, contract): """ Check if the element is declared by the contract diff --git a/slither/core/declarations/top_level.py b/slither/core/declarations/top_level.py index 15facf2f9..01e6f6dfd 100644 --- a/slither/core/declarations/top_level.py +++ b/slither/core/declarations/top_level.py @@ -2,4 +2,8 @@ from slither.core.source_mapping.source_mapping import SourceMapping class TopLevel(SourceMapping): - pass + """ + This class is used to represent objects that are at the top level + The opposite is ContractLevel + + """ diff --git a/slither/core/slither_core.py b/slither/core/slither_core.py index e5f4e830a..e55a9cf0b 100644 --- a/slither/core/slither_core.py +++ b/slither/core/slither_core.py @@ -13,7 +13,7 @@ from typing import Optional, Dict, List, Set, Union, Tuple from crytic_compile import CryticCompile from crytic_compile.utils.naming import Filename -from slither.core.children.child_contract import ChildContract +from slither.core.declarations.contract_level import ContractLevel from slither.core.compilation_unit import SlitherCompilationUnit from slither.core.context.context import Context from slither.core.declarations import Contract, FunctionContract @@ -206,7 +206,10 @@ class SlitherCore(Context): isinstance(thing, FunctionContract) and thing.contract_declarer == thing.contract ) - or (isinstance(thing, ChildContract) and not isinstance(thing, FunctionContract)) + or ( + isinstance(thing, ContractLevel) + and not isinstance(thing, FunctionContract) + ) ): self._offset_to_objects[definition.filename][offset].add(thing) @@ -224,7 +227,8 @@ class SlitherCore(Context): and thing.contract_declarer == thing.contract ) or ( - isinstance(thing, ChildContract) and not isinstance(thing, FunctionContract) + isinstance(thing, ContractLevel) + and not isinstance(thing, FunctionContract) ) ): self._offset_to_objects[definition.filename][offset].add(thing) diff --git a/slither/core/solidity_types/type_alias.py b/slither/core/solidity_types/type_alias.py index 5b9ea0a37..c47d2ee14 100644 --- a/slither/core/solidity_types/type_alias.py +++ b/slither/core/solidity_types/type_alias.py @@ -1,6 +1,6 @@ from typing import TYPE_CHECKING, Tuple -from slither.core.children.child_contract import ChildContract +from slither.core.declarations.contract_level import ContractLevel from slither.core.declarations.top_level import TopLevel from slither.core.solidity_types import Type, ElementaryType @@ -48,7 +48,7 @@ class TypeAliasTopLevel(TypeAlias, TopLevel): return self.name -class TypeAliasContract(TypeAlias, ChildContract): +class TypeAliasContract(TypeAlias, ContractLevel): def __init__(self, underlying_type: Type, name: str, contract: "Contract") -> None: super().__init__(underlying_type, name) self._contract: "Contract" = contract diff --git a/slither/core/variables/event_variable.py b/slither/core/variables/event_variable.py index f3ad60d0b..3b6b6c511 100644 --- a/slither/core/variables/event_variable.py +++ b/slither/core/variables/event_variable.py @@ -1,8 +1,7 @@ from slither.core.variables.variable import Variable -from slither.core.children.child_event import ChildEvent -class EventVariable(ChildEvent, Variable): +class EventVariable(Variable): def __init__(self) -> None: super().__init__() self._indexed = False @@ -16,5 +15,5 @@ class EventVariable(ChildEvent, Variable): return self._indexed @indexed.setter - def indexed(self, is_indexed: bool): + def indexed(self, is_indexed: bool) -> None: self._indexed = is_indexed diff --git a/slither/core/variables/local_variable.py b/slither/core/variables/local_variable.py index 7b7b4f8bc..fc23eeba7 100644 --- a/slither/core/variables/local_variable.py +++ b/slither/core/variables/local_variable.py @@ -1,7 +1,6 @@ -from typing import Optional +from typing import Optional, TYPE_CHECKING from slither.core.variables.variable import Variable -from slither.core.children.child_function import ChildFunction from slither.core.solidity_types.user_defined_type import UserDefinedType from slither.core.solidity_types.array_type import ArrayType from slither.core.solidity_types.mapping_type import MappingType @@ -9,11 +8,23 @@ from slither.core.solidity_types.elementary_type import ElementaryType from slither.core.declarations.structure import Structure +if TYPE_CHECKING: # type: ignore + from slither.core.declarations import Function -class LocalVariable(ChildFunction, Variable): + +class LocalVariable(Variable): def __init__(self) -> None: super().__init__() self._location: Optional[str] = None + self._function: Optional["Function"] = None + + def set_function(self, function: "Function") -> None: + self._function = function + + @property + def function(self) -> "Function": + assert self._function + return self._function def set_location(self, loc: str) -> None: self._location = loc diff --git a/slither/core/variables/state_variable.py b/slither/core/variables/state_variable.py index 47b7682a4..f2a2d6ee3 100644 --- a/slither/core/variables/state_variable.py +++ b/slither/core/variables/state_variable.py @@ -1,6 +1,6 @@ from typing import Optional, TYPE_CHECKING -from slither.core.children.child_contract import ChildContract +from slither.core.declarations.contract_level import ContractLevel from slither.core.variables.variable import Variable if TYPE_CHECKING: @@ -8,7 +8,7 @@ if TYPE_CHECKING: from slither.core.declarations import Contract -class StateVariable(ChildContract, Variable): +class StateVariable(ContractLevel, Variable): def __init__(self) -> None: super().__init__() self._node_initialization: Optional["Node"] = None diff --git a/slither/core/variables/structure_variable.py b/slither/core/variables/structure_variable.py index c6034da63..3a001b6a9 100644 --- a/slither/core/variables/structure_variable.py +++ b/slither/core/variables/structure_variable.py @@ -1,6 +1,19 @@ +from typing import TYPE_CHECKING, Optional from slither.core.variables.variable import Variable -from slither.core.children.child_structure import ChildStructure -class StructureVariable(ChildStructure, Variable): - pass +if TYPE_CHECKING: + from slither.core.declarations import Structure + + +class StructureVariable(Variable): + def __init__(self) -> None: + super().__init__() + self._structure: Optional["Structure"] = None + + def set_structure(self, structure: "Structure") -> None: + self._structure = structure + + @property + def structure(self) -> "Structure": + return self._structure diff --git a/slither/detectors/erc/incorrect_erc721_interface.py b/slither/detectors/erc/incorrect_erc721_interface.py index 8327e8b2e..f894fb517 100644 --- a/slither/detectors/erc/incorrect_erc721_interface.py +++ b/slither/detectors/erc/incorrect_erc721_interface.py @@ -89,7 +89,9 @@ contract Token{ return False @staticmethod - def detect_incorrect_erc721_interface(contract: Contract) -> List[Union[FunctionContract, Any]]: + def detect_incorrect_erc721_interface( + contract: Contract, + ) -> List[Union[FunctionContract, Any]]: """Detect incorrect ERC721 interface Returns: diff --git a/slither/detectors/operations/missing_events_arithmetic.py b/slither/detectors/operations/missing_events_arithmetic.py index 6e1d5fbb5..e553e78eb 100644 --- a/slither/detectors/operations/missing_events_arithmetic.py +++ b/slither/detectors/operations/missing_events_arithmetic.py @@ -70,7 +70,9 @@ contract C { def _detect_missing_events( self, contract: Contract - ) -> List[Tuple[FunctionContract, List[Tuple[Node, List[Tuple[Node, FunctionContract]]]]]]: + ) -> List[ + Tuple[FunctionContract, List[Tuple[Node, List[Tuple[Node, FunctionContract]]]]] + ]: """ Detects if critical contract parameters set by owners and used in arithmetic are missing events :param contract: The contract to check diff --git a/slither/detectors/statements/tx_origin.py b/slither/detectors/statements/tx_origin.py index 34f8173d5..e281c1d09 100644 --- a/slither/detectors/statements/tx_origin.py +++ b/slither/detectors/statements/tx_origin.py @@ -57,7 +57,9 @@ Bob is the owner of `TxOrigin`. Bob calls Eve's contract. Eve's contract calls ` ) return False - def detect_tx_origin(self, contract: Contract) -> List[Tuple[FunctionContract, List[Node]]]: + def detect_tx_origin( + self, contract: Contract + ) -> List[Tuple[FunctionContract, List[Node]]]: ret = [] for f in contract.functions: diff --git a/slither/slithir/convert.py b/slither/slithir/convert.py index 87a6b075b..aa8dfb4ec 100644 --- a/slither/slithir/convert.py +++ b/slither/slithir/convert.py @@ -731,7 +731,7 @@ def propagate_types( return _convert_type_contract(ir) left = ir.variable_left t = None - ir_func = ir.function + ir_func = ir.node.function # Handling of this.function_name usage if ( left == SolidityVariable("this") diff --git a/slither/slithir/operations/internal_dynamic_call.py b/slither/slithir/operations/internal_dynamic_call.py index a1ad1aa15..ca245167e 100644 --- a/slither/slithir/operations/internal_dynamic_call.py +++ b/slither/slithir/operations/internal_dynamic_call.py @@ -24,7 +24,7 @@ class InternalDynamicCall( assert isinstance(function, Variable) assert is_valid_lvalue(lvalue) or lvalue is None super().__init__() - self._function = function + self._function: Variable = function self._function_type = function_type self._lvalue = lvalue @@ -37,7 +37,7 @@ class InternalDynamicCall( return self._unroll(self.arguments) + [self.function] @property - def function(self) -> Union[LocalVariable, LocalIRVariable]: + def function(self) -> Variable: return self._function @property diff --git a/slither/slithir/operations/new_structure.py b/slither/slithir/operations/new_structure.py index 752de6a3d..f24b3bccd 100644 --- a/slither/slithir/operations/new_structure.py +++ b/slither/slithir/operations/new_structure.py @@ -14,7 +14,9 @@ from slither.slithir.variables.temporary_ssa import TemporaryVariableSSA class NewStructure(Call, OperationWithLValue): def __init__( - self, structure: StructureContract, lvalue: Union[TemporaryVariableSSA, TemporaryVariable] + self, + structure: StructureContract, + lvalue: Union[TemporaryVariableSSA, TemporaryVariable], ) -> None: super().__init__() assert isinstance(structure, Structure) diff --git a/slither/slithir/operations/operation.py b/slither/slithir/operations/operation.py index fcf5f4868..aca3e645b 100644 --- a/slither/slithir/operations/operation.py +++ b/slither/slithir/operations/operation.py @@ -1,11 +1,14 @@ import abc -from typing import Any, List +from typing import Any, List, Optional, TYPE_CHECKING from slither.core.context.context import Context -from slither.core.children.child_expression import ChildExpression -from slither.core.children.child_node import ChildNode +from slither.core.expressions.expression import Expression from slither.core.variables.variable import Variable from slither.utils.utils import unroll +if TYPE_CHECKING: + from slither.core.compilation_unit import SlitherCompilationUnit + from slither.core.cfg.node import Node + class AbstractOperation(abc.ABC): @property @@ -25,7 +28,24 @@ class AbstractOperation(abc.ABC): pass # pylint: disable=unnecessary-pass -class Operation(Context, ChildExpression, ChildNode, AbstractOperation): +class Operation(Context, AbstractOperation): + def __init__(self) -> None: + super().__init__() + self._node: Optional["Node"] = None + self._expression: Optional[Expression] = None + + def set_node(self, node: "Node") -> None: + self._node = node + + @property + def node(self) -> "Node": + assert self._node + return self._node + + @property + def compilation_unit(self) -> "SlitherCompilationUnit": + return self.node.compilation_unit + @property def used(self) -> List[Variable]: """ @@ -37,3 +57,10 @@ class Operation(Context, ChildExpression, ChildNode, AbstractOperation): @staticmethod def _unroll(l: List[Any]) -> List[Any]: return unroll(l) + + def set_expression(self, expression: Expression) -> None: + self._expression = expression + + @property + def expression(self) -> Optional[Expression]: + return self._expression diff --git a/slither/slithir/operations/solidity_call.py b/slither/slithir/operations/solidity_call.py index b059c55a6..c0d8d8404 100644 --- a/slither/slithir/operations/solidity_call.py +++ b/slither/slithir/operations/solidity_call.py @@ -2,7 +2,6 @@ from typing import Any, List, Union from slither.core.declarations.solidity_variables import SolidityCustomRevert, SolidityFunction from slither.slithir.operations.call import Call from slither.slithir.operations.lvalue import OperationWithLValue -from slither.core.children.child_node import ChildNode from slither.core.solidity_types.elementary_type import ElementaryType @@ -11,7 +10,7 @@ class SolidityCall(Call, OperationWithLValue): self, function: Union[SolidityCustomRevert, SolidityFunction], nbr_arguments: int, - result: ChildNode, + result, type_call: Union[str, List[ElementaryType]], ) -> None: assert isinstance(function, SolidityFunction) diff --git a/slither/slithir/operations/type_conversion.py b/slither/slithir/operations/type_conversion.py index f351f1fdd..ce41e3c54 100644 --- a/slither/slithir/operations/type_conversion.py +++ b/slither/slithir/operations/type_conversion.py @@ -17,7 +17,9 @@ class TypeConversion(OperationWithLValue): self, result: Union[TemporaryVariableSSA, TemporaryVariable], variable: SourceMapping, - variable_type: Union[TypeAliasContract, UserDefinedType, ElementaryType, TypeAliasTopLevel], + variable_type: Union[ + TypeAliasContract, UserDefinedType, ElementaryType, TypeAliasTopLevel + ], ) -> None: super().__init__() assert is_valid_rvalue(variable) or isinstance(variable, Contract) diff --git a/slither/slithir/variables/reference.py b/slither/slithir/variables/reference.py index 95802b7e2..9ab51be65 100644 --- a/slither/slithir/variables/reference.py +++ b/slither/slithir/variables/reference.py @@ -1,6 +1,5 @@ from typing import Optional, TYPE_CHECKING -from slither.core.children.child_node import ChildNode from slither.core.declarations import Contract, Enum, SolidityVariable, Function from slither.core.variables.variable import Variable @@ -8,7 +7,7 @@ if TYPE_CHECKING: from slither.core.cfg.node import Node -class ReferenceVariable(ChildNode, Variable): +class ReferenceVariable(Variable): def __init__(self, node: "Node", index: Optional[int] = None) -> None: super().__init__() if index is None: @@ -19,6 +18,10 @@ class ReferenceVariable(ChildNode, Variable): self._points_to = None self._node = node + @property + def node(self) -> "Node": + return self._node + @property def index(self): return self._index diff --git a/slither/slithir/variables/temporary.py b/slither/slithir/variables/temporary.py index 8cb1cf350..5a485f985 100644 --- a/slither/slithir/variables/temporary.py +++ b/slither/slithir/variables/temporary.py @@ -1,13 +1,12 @@ from typing import Optional, TYPE_CHECKING -from slither.core.children.child_node import ChildNode from slither.core.variables.variable import Variable if TYPE_CHECKING: from slither.core.cfg.node import Node -class TemporaryVariable(ChildNode, Variable): +class TemporaryVariable(Variable): def __init__(self, node: "Node", index: Optional[int] = None) -> None: super().__init__() if index is None: @@ -17,6 +16,10 @@ class TemporaryVariable(ChildNode, Variable): self._index = index self._node = node + @property + def node(self) -> "Node": + return self._node + @property def index(self): return self._index diff --git a/slither/slithir/variables/tuple.py b/slither/slithir/variables/tuple.py index dc085347e..9a13b1d5d 100644 --- a/slither/slithir/variables/tuple.py +++ b/slither/slithir/variables/tuple.py @@ -1,13 +1,12 @@ from typing import Optional, TYPE_CHECKING -from slither.core.children.child_node import ChildNode from slither.slithir.variables.variable import SlithIRVariable if TYPE_CHECKING: from slither.core.cfg.node import Node -class TupleVariable(ChildNode, SlithIRVariable): +class TupleVariable(SlithIRVariable): def __init__(self, node: "Node", index: Optional[int] = None) -> None: super().__init__() if index is None: @@ -18,6 +17,10 @@ class TupleVariable(ChildNode, SlithIRVariable): self._node = node + @property + def node(self) -> "Node": + return self._node + @property def index(self): return self._index diff --git a/slither/solc_parsing/declarations/contract.py b/slither/solc_parsing/declarations/contract.py index 475c3fab2..47ee7ec10 100644 --- a/slither/solc_parsing/declarations/contract.py +++ b/slither/solc_parsing/declarations/contract.py @@ -2,7 +2,13 @@ import logging import re from typing import Any, List, Dict, Callable, TYPE_CHECKING, Union, Set -from slither.core.declarations import Modifier, Event, EnumContract, StructureContract, Function +from slither.core.declarations import ( + Modifier, + Event, + EnumContract, + StructureContract, + Function, +) from slither.core.declarations.contract import Contract from slither.core.declarations.custom_error_contract import CustomErrorContract from slither.core.declarations.function_contract import FunctionContract diff --git a/slither/utils/output.py b/slither/utils/output.py index 9dba15e31..84c9ac65a 100644 --- a/slither/utils/output.py +++ b/slither/utils/output.py @@ -10,8 +10,17 @@ from zipfile import ZipFile from pkg_resources import require from slither.core.cfg.node import Node -from slither.core.declarations import Contract, Function, Enum, Event, Structure, Pragma +from slither.core.declarations import ( + Contract, + Function, + Enum, + Event, + Structure, + Pragma, + FunctionContract, +) from slither.core.source_mapping.source_mapping import SourceMapping +from slither.core.variables.local_variable import LocalVariable from slither.core.variables.variable import Variable from slither.exceptions import SlitherError from slither.utils.colors import yellow @@ -351,21 +360,19 @@ def _create_parent_element( ], ]: # pylint: disable=import-outside-toplevel - from slither.core.children.child_contract import ChildContract - from slither.core.children.child_function import ChildFunction - from slither.core.children.child_inheritance import ChildInheritance + from slither.core.declarations.contract_level import ContractLevel - if isinstance(element, ChildInheritance): + if isinstance(element, FunctionContract): if element.contract_declarer: contract = Output("") contract.add_contract(element.contract_declarer) return contract.data["elements"][0] - elif isinstance(element, ChildContract): + elif isinstance(element, ContractLevel): if element.contract: contract = Output("") contract.add_contract(element.contract) return contract.data["elements"][0] - elif isinstance(element, ChildFunction): + elif isinstance(element, (LocalVariable, Node)): if element.function: function = Output("") function.add_function(element.function) diff --git a/tests/test_ssa_generation.py b/tests/test_ssa_generation.py index f002ec4e1..9bb008fdf 100644 --- a/tests/test_ssa_generation.py +++ b/tests/test_ssa_generation.py @@ -689,7 +689,7 @@ def test_initial_version_exists_for_state_variables_function_assign(): # temporary variable, that is then assigned to a call = get_ssa_of_type(ctor, InternalCall)[0] - assert call.function == f + assert call.node.function == f assign = get_ssa_of_type(ctor, Assignment)[0] assert assign.rvalue == call.lvalue assert isinstance(assign.lvalue, StateIRVariable) From e8bf225f32f71fa71b48363eca0eb510e1d04f97 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Mon, 20 Feb 2023 11:59:21 +0100 Subject: [PATCH 005/193] Improvements post merge --- slither/core/declarations/custom_error_contract.py | 3 ++- slither/core/slither_core.py | 8 ++------ slither/core/solidity_types/type_alias.py | 2 +- slither/detectors/operations/missing_events_arithmetic.py | 4 +--- slither/detectors/statements/tx_origin.py | 4 +--- slither/slithir/operations/type_conversion.py | 4 +--- 6 files changed, 8 insertions(+), 17 deletions(-) diff --git a/slither/core/declarations/custom_error_contract.py b/slither/core/declarations/custom_error_contract.py index 2561a20a0..cd279a3a6 100644 --- a/slither/core/declarations/custom_error_contract.py +++ b/slither/core/declarations/custom_error_contract.py @@ -1,5 +1,6 @@ -from slither.core.declarations.contract_level import ContractLevel from typing import TYPE_CHECKING +from slither.core.declarations.contract_level import ContractLevel + from slither.core.declarations.custom_error import CustomError diff --git a/slither/core/slither_core.py b/slither/core/slither_core.py index d6851fc32..798008707 100644 --- a/slither/core/slither_core.py +++ b/slither/core/slither_core.py @@ -206,10 +206,7 @@ class SlitherCore(Context): isinstance(thing, FunctionContract) and thing.contract_declarer == thing.contract ) - or ( - isinstance(thing, ContractLevel) - and not isinstance(thing, FunctionContract) - ) + or (isinstance(thing, ContractLevel) and not isinstance(thing, FunctionContract)) ): self._offset_to_objects[definition.filename][offset].add(thing) @@ -227,8 +224,7 @@ class SlitherCore(Context): and thing.contract_declarer == thing.contract ) or ( - isinstance(thing, ContractLevel) - and not isinstance(thing, FunctionContract) + isinstance(thing, ContractLevel) and not isinstance(thing, FunctionContract) ) ): self._offset_to_objects[definition.filename][offset].add(thing) diff --git a/slither/core/solidity_types/type_alias.py b/slither/core/solidity_types/type_alias.py index 555e716bd..9387f511a 100644 --- a/slither/core/solidity_types/type_alias.py +++ b/slither/core/solidity_types/type_alias.py @@ -49,7 +49,7 @@ class TypeAliasTopLevel(TypeAlias, TopLevel): class TypeAliasContract(TypeAlias, ContractLevel): - def __init__(self, underlying_type: Type, name: str, contract: "Contract") -> None: + def __init__(self, underlying_type: ElementaryType, name: str, contract: "Contract") -> None: super().__init__(underlying_type, name) self._contract: "Contract" = contract diff --git a/slither/detectors/operations/missing_events_arithmetic.py b/slither/detectors/operations/missing_events_arithmetic.py index df8cc90c3..c17ed32a3 100644 --- a/slither/detectors/operations/missing_events_arithmetic.py +++ b/slither/detectors/operations/missing_events_arithmetic.py @@ -74,9 +74,7 @@ contract C { def _detect_missing_events( self, contract: Contract - ) -> List[ - Tuple[FunctionContract, List[Tuple[Node, List[Tuple[Node, FunctionContract]]]]] - ]: + ) -> List[Tuple[FunctionContract, List[Tuple[Node, List[Tuple[Node, FunctionContract]]]]]]: """ Detects if critical contract parameters set by owners and used in arithmetic are missing events :param contract: The contract to check diff --git a/slither/detectors/statements/tx_origin.py b/slither/detectors/statements/tx_origin.py index c0b8a03d6..49bf6006d 100644 --- a/slither/detectors/statements/tx_origin.py +++ b/slither/detectors/statements/tx_origin.py @@ -61,9 +61,7 @@ Bob is the owner of `TxOrigin`. Bob calls Eve's contract. Eve's contract calls ` ) return False - def detect_tx_origin( - self, contract: Contract - ) -> List[Tuple[FunctionContract, List[Node]]]: + def detect_tx_origin(self, contract: Contract) -> List[Tuple[FunctionContract, List[Node]]]: ret = [] for f in contract.functions: diff --git a/slither/slithir/operations/type_conversion.py b/slither/slithir/operations/type_conversion.py index ce41e3c54..f351f1fdd 100644 --- a/slither/slithir/operations/type_conversion.py +++ b/slither/slithir/operations/type_conversion.py @@ -17,9 +17,7 @@ class TypeConversion(OperationWithLValue): self, result: Union[TemporaryVariableSSA, TemporaryVariable], variable: SourceMapping, - variable_type: Union[ - TypeAliasContract, UserDefinedType, ElementaryType, TypeAliasTopLevel - ], + variable_type: Union[TypeAliasContract, UserDefinedType, ElementaryType, TypeAliasTopLevel], ) -> None: super().__init__() assert is_valid_rvalue(variable) or isinstance(variable, Contract) From 8582f9c47bb591b04369f133a13f2ee5117f491a Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Mon, 20 Feb 2023 12:01:38 +0100 Subject: [PATCH 006/193] Remove unused visitors --- slither/visitors/expression/find_push.py | 96 ----------------- slither/visitors/expression/left_value.py | 109 ------------------- slither/visitors/expression/right_value.py | 115 --------------------- 3 files changed, 320 deletions(-) delete mode 100644 slither/visitors/expression/find_push.py delete mode 100644 slither/visitors/expression/left_value.py delete mode 100644 slither/visitors/expression/right_value.py diff --git a/slither/visitors/expression/find_push.py b/slither/visitors/expression/find_push.py deleted file mode 100644 index cf2b07e60..000000000 --- a/slither/visitors/expression/find_push.py +++ /dev/null @@ -1,96 +0,0 @@ -from slither.visitors.expression.expression import ExpressionVisitor - -from slither.visitors.expression.right_value import RightValue - -key = "FindPush" - - -def get(expression): - val = expression.context[key] - # we delete the item to reduce memory use - del expression.context[key] - return val - - -def set_val(expression, val): - expression.context[key] = val - - -class FindPush(ExpressionVisitor): - def result(self): - if self._result is None: - self._result = list(set(get(self.expression))) - return self._result - - def _post_assignement_operation(self, expression): - left = get(expression.expression_left) - right = get(expression.expression_right) - val = left + right - set_val(expression, val) - - def _post_binary_operation(self, expression): - left = get(expression.expression_left) - right = get(expression.expression_right) - val = left + right - set_val(expression, val) - - def _post_call_expression(self, expression): - called = get(expression.called) - args = [get(a) for a in expression.arguments if a] - args = [item for sublist in args for item in sublist] - val = called + args - set_val(expression, val) - - def _post_conditional_expression(self, expression): - if_expr = get(expression.if_expression) - else_expr = get(expression.else_expression) - then_expr = get(expression.then_expression) - val = if_expr + else_expr + then_expr - set_val(expression, val) - - def _post_elementary_type_name_expression(self, expression): - set_val(expression, []) - - # save only identifier expression - def _post_identifier(self, expression): - set_val(expression, []) - - def _post_index_access(self, expression): - left = get(expression.expression_left) - right = get(expression.expression_right) - val = left + right - set_val(expression, val) - - def _post_literal(self, expression): - set_val(expression, []) - - def _post_member_access(self, expression): - val = [] - if expression.member_name == "push": - right = RightValue(expression.expression) - val = right.result() - set_val(expression, val) - - def _post_new_array(self, expression): - set_val(expression, []) - - def _post_new_contract(self, expression): - set_val(expression, []) - - def _post_new_elementary_type(self, expression): - set_val(expression, []) - - def _post_tuple_expression(self, expression): - expressions = [get(e) for e in expression.expressions if e] - val = [item for sublist in expressions for item in sublist] - set_val(expression, val) - - def _post_type_conversion(self, expression): - expr = get(expression.expression) - val = expr - set_val(expression, val) - - def _post_unary_operation(self, expression): - expr = get(expression.expression) - val = expr - set_val(expression, val) diff --git a/slither/visitors/expression/left_value.py b/slither/visitors/expression/left_value.py deleted file mode 100644 index 3b16c8c26..000000000 --- a/slither/visitors/expression/left_value.py +++ /dev/null @@ -1,109 +0,0 @@ -# Return the 'left' value of an expression - -from slither.visitors.expression.expression import ExpressionVisitor - -from slither.core.expressions.assignment_operation import AssignmentOperationType - -from slither.core.variables.variable import Variable - -key = "LeftValue" - - -def get(expression): - val = expression.context[key] - # we delete the item to reduce memory use - del expression.context[key] - return val - - -def set_val(expression, val): - expression.context[key] = val - - -class LeftValue(ExpressionVisitor): - def result(self): - if self._result is None: - self._result = list(set(get(self.expression))) - return self._result - - # overide index access visitor to explore only left part - def _visit_index_access(self, expression): - self._visit_expression(expression.expression_left) - - def _post_assignement_operation(self, expression): - if expression.type != AssignmentOperationType.ASSIGN: - left = get(expression.expression_left) - else: - left = [] - right = get(expression.expression_right) - val = left + right - set_val(expression, val) - - def _post_binary_operation(self, expression): - left = get(expression.expression_left) - right = get(expression.expression_right) - val = left + right - set_val(expression, val) - - def _post_call_expression(self, expression): - called = get(expression.called) - args = [get(a) for a in expression.arguments if a] - args = [item for sublist in args for item in sublist] - val = called + args - set_val(expression, val) - - def _post_conditional_expression(self, expression): - if_expr = get(expression.if_expression) - else_expr = get(expression.else_expression) - then_expr = get(expression.then_expression) - val = if_expr + else_expr + then_expr - set_val(expression, val) - - def _post_elementary_type_name_expression(self, expression): - set_val(expression, []) - - # save only identifier expression - def _post_identifier(self, expression): - if isinstance(expression.value, Variable): - set_val(expression, [expression.value]) - # elif isinstance(expression.value, SolidityInbuilt): - # set_val(expression, [expression]) - else: - set_val(expression, []) - - def _post_index_access(self, expression): - left = get(expression.expression_left) - val = left - set_val(expression, val) - - def _post_literal(self, expression): - set_val(expression, []) - - def _post_member_access(self, expression): - expr = get(expression.expression) - val = expr - set_val(expression, val) - - def _post_new_array(self, expression): - set_val(expression, []) - - def _post_new_contract(self, expression): - set_val(expression, []) - - def _post_new_elementary_type(self, expression): - set_val(expression, []) - - def _post_tuple_expression(self, expression): - expressions = [get(e) for e in expression.expressions if e] - val = [item for sublist in expressions for item in sublist] - set_val(expression, val) - - def _post_type_conversion(self, expression): - expr = get(expression.expression) - val = expr - set_val(expression, val) - - def _post_unary_operation(self, expression): - expr = get(expression.expression) - val = expr - set_val(expression, val) diff --git a/slither/visitors/expression/right_value.py b/slither/visitors/expression/right_value.py deleted file mode 100644 index 5a97846bc..000000000 --- a/slither/visitors/expression/right_value.py +++ /dev/null @@ -1,115 +0,0 @@ -# Return the 'right' value of an expression -# On index access, explore the left -# on member access, return the member_name -# a.b.c[d] returns c - -from slither.visitors.expression.expression import ExpressionVisitor - -from slither.core.expressions.assignment_operation import AssignmentOperationType -from slither.core.expressions.expression import Expression - -from slither.core.variables.variable import Variable - -key = "RightValue" - - -def get(expression): - val = expression.context[key] - # we delete the item to reduce memory use - del expression.context[key] - return val - - -def set_val(expression, val): - expression.context[key] = val - - -class RightValue(ExpressionVisitor): - def result(self): - if self._result is None: - self._result = list(set(get(self.expression))) - return self._result - - # overide index access visitor to explore only left part - def _visit_index_access(self, expression): - self._visit_expression(expression.expression_left) - - def _post_assignement_operation(self, expression): - if expression.type != AssignmentOperationType.ASSIGN: - left = get(expression.expression_left) - else: - left = [] - right = get(expression.expression_right) - val = left + right - set_val(expression, val) - - def _post_binary_operation(self, expression): - left = get(expression.expression_left) - right = get(expression.expression_right) - val = left + right - set_val(expression, val) - - def _post_call_expression(self, expression): - called = get(expression.called) - args = [get(a) for a in expression.arguments if a] - args = [item for sublist in args for item in sublist] - val = called + args - set_val(expression, val) - - def _post_conditional_expression(self, expression): - if_expr = get(expression.if_expression) - else_expr = get(expression.else_expression) - then_expr = get(expression.then_expression) - val = if_expr + else_expr + then_expr - set_val(expression, val) - - def _post_elementary_type_name_expression(self, expression): - set_val(expression, []) - - # save only identifier expression - def _post_identifier(self, expression): - if isinstance(expression.value, Variable): - set_val(expression, [expression.value]) - # elif isinstance(expression.value, SolidityInbuilt): - # set_val(expression, [expression]) - else: - set_val(expression, []) - - def _post_index_access(self, expression): - left = get(expression.expression_left) - val = left - set_val(expression, val) - - def _post_literal(self, expression): - set_val(expression, []) - - def _post_member_access(self, expression): - val = [] - if isinstance(expression.member_name, Expression): - expr = get(expression.member_name) - val = expr - set_val(expression, val) - - def _post_new_array(self, expression): - set_val(expression, []) - - def _post_new_contract(self, expression): - set_val(expression, []) - - def _post_new_elementary_type(self, expression): - set_val(expression, []) - - def _post_tuple_expression(self, expression): - expressions = [get(e) for e in expression.expressions if e] - val = [item for sublist in expressions for item in sublist] - set_val(expression, val) - - def _post_type_conversion(self, expression): - expr = get(expression.expression) - val = expr - set_val(expression, val) - - def _post_unary_operation(self, expression): - expr = get(expression.expression) - val = expr - set_val(expression, val) From 43a27fb09e77dff725700ba93fc5c7c48303ec22 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Mon, 20 Feb 2023 12:02:55 +0100 Subject: [PATCH 007/193] Black --- slither/core/slither_core.py | 8 ++------ slither/detectors/operations/missing_events_arithmetic.py | 4 +--- slither/detectors/statements/tx_origin.py | 4 +--- slither/slithir/operations/type_conversion.py | 4 +--- 4 files changed, 5 insertions(+), 15 deletions(-) diff --git a/slither/core/slither_core.py b/slither/core/slither_core.py index e55a9cf0b..548c04b3a 100644 --- a/slither/core/slither_core.py +++ b/slither/core/slither_core.py @@ -206,10 +206,7 @@ class SlitherCore(Context): isinstance(thing, FunctionContract) and thing.contract_declarer == thing.contract ) - or ( - isinstance(thing, ContractLevel) - and not isinstance(thing, FunctionContract) - ) + or (isinstance(thing, ContractLevel) and not isinstance(thing, FunctionContract)) ): self._offset_to_objects[definition.filename][offset].add(thing) @@ -227,8 +224,7 @@ class SlitherCore(Context): and thing.contract_declarer == thing.contract ) or ( - isinstance(thing, ContractLevel) - and not isinstance(thing, FunctionContract) + isinstance(thing, ContractLevel) and not isinstance(thing, FunctionContract) ) ): self._offset_to_objects[definition.filename][offset].add(thing) diff --git a/slither/detectors/operations/missing_events_arithmetic.py b/slither/detectors/operations/missing_events_arithmetic.py index e553e78eb..6e1d5fbb5 100644 --- a/slither/detectors/operations/missing_events_arithmetic.py +++ b/slither/detectors/operations/missing_events_arithmetic.py @@ -70,9 +70,7 @@ contract C { def _detect_missing_events( self, contract: Contract - ) -> List[ - Tuple[FunctionContract, List[Tuple[Node, List[Tuple[Node, FunctionContract]]]]] - ]: + ) -> List[Tuple[FunctionContract, List[Tuple[Node, List[Tuple[Node, FunctionContract]]]]]]: """ Detects if critical contract parameters set by owners and used in arithmetic are missing events :param contract: The contract to check diff --git a/slither/detectors/statements/tx_origin.py b/slither/detectors/statements/tx_origin.py index e281c1d09..34f8173d5 100644 --- a/slither/detectors/statements/tx_origin.py +++ b/slither/detectors/statements/tx_origin.py @@ -57,9 +57,7 @@ Bob is the owner of `TxOrigin`. Bob calls Eve's contract. Eve's contract calls ` ) return False - def detect_tx_origin( - self, contract: Contract - ) -> List[Tuple[FunctionContract, List[Node]]]: + def detect_tx_origin(self, contract: Contract) -> List[Tuple[FunctionContract, List[Node]]]: ret = [] for f in contract.functions: diff --git a/slither/slithir/operations/type_conversion.py b/slither/slithir/operations/type_conversion.py index ce41e3c54..f351f1fdd 100644 --- a/slither/slithir/operations/type_conversion.py +++ b/slither/slithir/operations/type_conversion.py @@ -17,9 +17,7 @@ class TypeConversion(OperationWithLValue): self, result: Union[TemporaryVariableSSA, TemporaryVariable], variable: SourceMapping, - variable_type: Union[ - TypeAliasContract, UserDefinedType, ElementaryType, TypeAliasTopLevel - ], + variable_type: Union[TypeAliasContract, UserDefinedType, ElementaryType, TypeAliasTopLevel], ) -> None: super().__init__() assert is_valid_rvalue(variable) or isinstance(variable, Contract) From 79921b309674fa9582f2224b0875cdfbe7974ff1 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Mon, 20 Feb 2023 15:01:12 +0100 Subject: [PATCH 008/193] More types --- slither/core/compilation_unit.py | 17 +-- slither/core/expressions/call_expression.py | 8 +- .../expressions/conditional_expression.py | 2 +- slither/core/variables/variable.py | 7 +- .../compiler_bugs/array_by_reference.py | 17 +-- slither/detectors/slither/name_reused.py | 5 +- .../statements/assert_state_change.py | 4 +- slither/detectors/statements/calls_in_loop.py | 1 + .../formatters/attributes/const_functions.py | 8 +- .../formatters/attributes/constant_pragma.py | 20 +-- slither/printers/call/call_graph.py | 117 ++++++++++-------- slither/printers/functions/authorization.py | 22 ++-- slither/printers/functions/cfg.py | 7 +- slither/slithir/operations/call.py | 6 +- slither/slithir/operations/codesize.py | 2 +- slither/slithir/operations/condition.py | 24 ++-- slither/slithir/variables/constant.py | 20 +-- slither/tools/mutator/utils/command_line.py | 2 +- slither/tools/similarity/cache.py | 5 +- .../upgradeability/checks/abstract_checks.py | 4 +- .../tools/upgradeability/checks/constant.py | 17 ++- .../upgradeability/utils/command_line.py | 2 +- slither/utils/code_complexity.py | 4 +- slither/utils/colors.py | 4 +- slither/visitors/expression/expression.py | 16 +-- 25 files changed, 189 insertions(+), 152 deletions(-) diff --git a/slither/core/compilation_unit.py b/slither/core/compilation_unit.py index f54f08ab3..8d7167451 100644 --- a/slither/core/compilation_unit.py +++ b/slither/core/compilation_unit.py @@ -57,7 +57,7 @@ class SlitherCompilationUnit(Context): self._storage_layouts: Dict[str, Dict[str, Tuple[int, int]]] = {} - self._contract_with_missing_inheritance = set() + self._contract_with_missing_inheritance: Set[Contract] = set() self._source_units: Dict[int, str] = {} @@ -88,7 +88,8 @@ class SlitherCompilationUnit(Context): @property def solc_version(self) -> str: - return self._crytic_compile_compilation_unit.compiler_version.version + # TODO: make version a non optional argument of compiler version in cc + return self._crytic_compile_compilation_unit.compiler_version.version # type:ignore @property def crytic_compile_compilation_unit(self) -> CompilationUnit: @@ -162,13 +163,14 @@ class SlitherCompilationUnit(Context): @property def functions_and_modifiers(self) -> List[Function]: - return self.functions + self.modifiers + return self.functions + list(self.modifiers) def propagate_function_calls(self) -> None: for f in self.functions_and_modifiers: for node in f.nodes: for ir in node.irs_ssa: if isinstance(ir, InternalCall): + assert ir.function ir.function.add_reachable_from_node(node, ir) # endregion @@ -181,8 +183,8 @@ class SlitherCompilationUnit(Context): @property def state_variables(self) -> List[StateVariable]: if self._all_state_variables is None: - state_variables = [c.state_variables for c in self.contracts] - state_variables = [item for sublist in state_variables for item in sublist] + state_variabless = [c.state_variables for c in self.contracts] + state_variables = [item for sublist in state_variabless for item in sublist] self._all_state_variables = set(state_variables) return list(self._all_state_variables) @@ -229,7 +231,7 @@ class SlitherCompilationUnit(Context): ################################################################################### @property - def contracts_with_missing_inheritance(self) -> Set: + def contracts_with_missing_inheritance(self) -> Set[Contract]: return self._contract_with_missing_inheritance # endregion @@ -266,6 +268,7 @@ class SlitherCompilationUnit(Context): if var.is_constant or var.is_immutable: continue + assert var.type size, new_slot = var.type.storage_size if new_slot: @@ -285,7 +288,7 @@ class SlitherCompilationUnit(Context): else: offset += size - def storage_layout_of(self, contract, var) -> Tuple[int, int]: + def storage_layout_of(self, contract: Contract, var: StateVariable) -> Tuple[int, int]: return self._storage_layouts[contract.name][var.canonical_name] # endregion diff --git a/slither/core/expressions/call_expression.py b/slither/core/expressions/call_expression.py index 1dbc4074a..6708dda7e 100644 --- a/slither/core/expressions/call_expression.py +++ b/slither/core/expressions/call_expression.py @@ -22,7 +22,7 @@ class CallExpression(Expression): # pylint: disable=too-many-instance-attribute return self._value @call_value.setter - def call_value(self, v): + def call_value(self, v: Optional[Expression]) -> None: self._value = v @property @@ -30,15 +30,15 @@ class CallExpression(Expression): # pylint: disable=too-many-instance-attribute return self._gas @call_gas.setter - def call_gas(self, gas): + def call_gas(self, gas: Optional[Expression]) -> None: self._gas = gas @property - def call_salt(self): + def call_salt(self) -> Optional[Expression]: return self._salt @call_salt.setter - def call_salt(self, salt): + def call_salt(self, salt: Optional[Expression]) -> None: self._salt = salt @property diff --git a/slither/core/expressions/conditional_expression.py b/slither/core/expressions/conditional_expression.py index 818425ba1..3c0afdb4a 100644 --- a/slither/core/expressions/conditional_expression.py +++ b/slither/core/expressions/conditional_expression.py @@ -42,7 +42,7 @@ class ConditionalExpression(Expression): def then_expression(self) -> Expression: return self._then_expression - def __str__(self): + def __str__(self) -> str: return ( "if " + str(self._if_expression) diff --git a/slither/core/variables/variable.py b/slither/core/variables/variable.py index c775e7c98..0d610c928 100644 --- a/slither/core/variables/variable.py +++ b/slither/core/variables/variable.py @@ -77,12 +77,13 @@ class Variable(SourceMapping): self._name = name @property - def type(self) -> Optional[Union[Type, List[Type]]]: + def type(self) -> Optional[Type]: return self._type @type.setter - def type(self, types: Union[Type, List[Type]]): - self._type = types + def type(self, new_type: Type) -> None: + assert isinstance(new_type, Type) + self._type = new_type @property def is_constant(self) -> bool: diff --git a/slither/detectors/compiler_bugs/array_by_reference.py b/slither/detectors/compiler_bugs/array_by_reference.py index ba4cadcc7..04dfe085a 100644 --- a/slither/detectors/compiler_bugs/array_by_reference.py +++ b/slither/detectors/compiler_bugs/array_by_reference.py @@ -2,6 +2,9 @@ Detects the passing of arrays located in memory to functions which expect to modify arrays via storage reference. """ from typing import List, Set, Tuple, Union + +from slither.core.declarations import Function +from slither.core.variables import Variable from slither.detectors.abstract_detector import ( AbstractDetector, DetectorClassification, @@ -93,12 +96,7 @@ As a result, Bob's usage of the contract is incorrect.""" @staticmethod def detect_calls_passing_ref_to_function( contracts: List[Contract], array_modifying_funcs: Set[FunctionContract] - ) -> List[ - Union[ - Tuple[Node, StateVariable, FunctionContract], - Tuple[Node, LocalVariable, FunctionContract], - ] - ]: + ) -> List[Tuple[Node, Variable, Union[Function, Variable]]]: """ Obtains all calls passing storage arrays by value to a function which cannot write to them successfully. :param contracts: The collection of contracts to check for problematic calls in. @@ -109,12 +107,7 @@ As a result, Bob's usage of the contract is incorrect.""" write to the array unsuccessfully. """ # Define our resulting array. - results: List[ - Union[ - Tuple[Node, StateVariable, FunctionContract], - Tuple[Node, LocalVariable, FunctionContract], - ] - ] = [] + results: List[Tuple[Node, Variable, Union[Function, Variable]]] = [] # Verify we have functions in our list to check for. if not array_modifying_funcs: diff --git a/slither/detectors/slither/name_reused.py b/slither/detectors/slither/name_reused.py index e8a40881a..babce6389 100644 --- a/slither/detectors/slither/name_reused.py +++ b/slither/detectors/slither/name_reused.py @@ -1,7 +1,8 @@ from collections import defaultdict -from typing import Any, List +from typing import List from slither.core.compilation_unit import SlitherCompilationUnit +from slither.core.declarations import Contract from slither.detectors.abstract_detector import ( AbstractDetector, DetectorClassification, @@ -10,7 +11,7 @@ from slither.detectors.abstract_detector import ( from slither.utils.output import Output -def _find_missing_inheritance(compilation_unit: SlitherCompilationUnit) -> List[Any]: +def _find_missing_inheritance(compilation_unit: SlitherCompilationUnit) -> List[Contract]: """ Filter contracts with missing inheritance to return only the "most base" contracts in the inheritance tree. diff --git a/slither/detectors/statements/assert_state_change.py b/slither/detectors/statements/assert_state_change.py index 62299202e..769d730b8 100644 --- a/slither/detectors/statements/assert_state_change.py +++ b/slither/detectors/statements/assert_state_change.py @@ -40,7 +40,9 @@ def detect_assert_state_change( any( ir for ir in node.irs - if isinstance(ir, InternalCall) and ir.function.state_variables_written + if isinstance(ir, InternalCall) + and ir.function + and ir.function.state_variables_written ) ): results.append((function, node)) diff --git a/slither/detectors/statements/calls_in_loop.py b/slither/detectors/statements/calls_in_loop.py index b3a177ee6..d40d18f59 100644 --- a/slither/detectors/statements/calls_in_loop.py +++ b/slither/detectors/statements/calls_in_loop.py @@ -48,6 +48,7 @@ def call_in_loop( continue ret.append(ir.node) if isinstance(ir, (InternalCall)): + assert ir.function call_in_loop(ir.function.entry_point, in_loop_counter, visited, ret) for son in node.sons: diff --git a/slither/formatters/attributes/const_functions.py b/slither/formatters/attributes/const_functions.py index 310abe0b9..feb404f7b 100644 --- a/slither/formatters/attributes/const_functions.py +++ b/slither/formatters/attributes/const_functions.py @@ -34,8 +34,12 @@ def custom_format(compilation_unit: SlitherCompilationUnit, result: Dict) -> Non def _patch( - compilation_unit: SlitherCompilationUnit, result, in_file, modify_loc_start, modify_loc_end -): + compilation_unit: SlitherCompilationUnit, + result: Dict, + in_file: str, + modify_loc_start: int, + modify_loc_end: int, +) -> None: in_file_str = compilation_unit.core.source_code[in_file].encode("utf8") old_str_of_interest = in_file_str[modify_loc_start:modify_loc_end] # Find the keywords view|pure|constant and remove them diff --git a/slither/formatters/attributes/constant_pragma.py b/slither/formatters/attributes/constant_pragma.py index 108a8fa08..1127b1e43 100644 --- a/slither/formatters/attributes/constant_pragma.py +++ b/slither/formatters/attributes/constant_pragma.py @@ -1,5 +1,5 @@ import re -from typing import Dict +from typing import Dict, List, Union from slither.core.compilation_unit import SlitherCompilationUnit from slither.formatters.exceptions import FormatImpossible @@ -21,7 +21,7 @@ PATTERN = re.compile(r"(\^|>|>=|<|<=)?([ ]+)?(\d+)\.(\d+)\.(\d+)") def custom_format(slither: SlitherCompilationUnit, result: Dict) -> None: elements = result["elements"] - versions_used = [] + versions_used: List[str] = [] for element in elements: versions_used.append("".join(element["type_specific_fields"]["directive"][1:])) solc_version_replace = _analyse_versions(versions_used) @@ -36,7 +36,7 @@ def custom_format(slither: SlitherCompilationUnit, result: Dict) -> None: ) -def _analyse_versions(used_solc_versions): +def _analyse_versions(used_solc_versions: List[str]) -> str: replace_solc_versions = [] for version in used_solc_versions: replace_solc_versions.append(_determine_solc_version_replacement(version)) @@ -45,7 +45,7 @@ def _analyse_versions(used_solc_versions): return replace_solc_versions[0] -def _determine_solc_version_replacement(used_solc_version): +def _determine_solc_version_replacement(used_solc_version: str) -> str: versions = PATTERN.findall(used_solc_version) if len(versions) == 1: version = versions[0] @@ -67,10 +67,16 @@ def _determine_solc_version_replacement(used_solc_version): raise FormatImpossible("Unknown version!") +# pylint: disable=too-many-arguments def _patch( - slither, result, in_file, pragma, modify_loc_start, modify_loc_end -): # pylint: disable=too-many-arguments - in_file_str = slither.source_code[in_file].encode("utf8") + slither: SlitherCompilationUnit, + result: Dict, + in_file: str, + pragma: Union[str, bytes], + modify_loc_start: int, + modify_loc_end: int, +) -> None: + in_file_str = slither.core.source_code[in_file].encode("utf8") old_str_of_interest = in_file_str[modify_loc_start:modify_loc_end] create_patch( result, diff --git a/slither/printers/call/call_graph.py b/slither/printers/call/call_graph.py index e10db3f76..0a4df0c65 100644 --- a/slither/printers/call/call_graph.py +++ b/slither/printers/call/call_graph.py @@ -6,33 +6,36 @@ The output is a dot file named filename.dot """ from collections import defaultdict -from slither.printers.abstract_printer import AbstractPrinter -from slither.core.declarations.solidity_variables import SolidityFunction +from typing import Optional, Union, Dict, Set, Tuple, Sequence + +from slither.core.declarations import Contract, FunctionContract from slither.core.declarations.function import Function +from slither.core.declarations.solidity_variables import SolidityFunction from slither.core.variables.variable import Variable +from slither.printers.abstract_printer import AbstractPrinter -def _contract_subgraph(contract): +def _contract_subgraph(contract: Contract) -> str: return f"cluster_{contract.id}_{contract.name}" # return unique id for contract function to use as node name -def _function_node(contract, function): +def _function_node(contract: Contract, function: Union[Function, Variable]) -> str: return f"{contract.id}_{function.name}" # return unique id for solidity function to use as node name -def _solidity_function_node(solidity_function): +def _solidity_function_node(solidity_function: SolidityFunction) -> str: return f"{solidity_function.name}" # return dot language string to add graph edge -def _edge(from_node, to_node): +def _edge(from_node: str, to_node: str) -> str: return f'"{from_node}" -> "{to_node}"' # return dot language string to add graph node (with optional label) -def _node(node, label=None): +def _node(node: str, label: Optional[str] = None) -> str: return " ".join( ( f'"{node}"', @@ -43,13 +46,13 @@ def _node(node, label=None): # pylint: disable=too-many-arguments def _process_internal_call( - contract, - function, - internal_call, - contract_calls, - solidity_functions, - solidity_calls, -): + contract: Contract, + function: Function, + internal_call: Union[Function, SolidityFunction], + contract_calls: Dict[Contract, Set[str]], + solidity_functions: Set[str], + solidity_calls: Set[str], +) -> None: if isinstance(internal_call, (Function)): contract_calls[contract].add( _edge( @@ -69,11 +72,15 @@ def _process_internal_call( ) -def _render_external_calls(external_calls): +def _render_external_calls(external_calls: Set[str]) -> str: return "\n".join(external_calls) -def _render_internal_calls(contract, contract_functions, contract_calls): +def _render_internal_calls( + contract: Contract, + contract_functions: Dict[Contract, Set[str]], + contract_calls: Dict[Contract, Set[str]], +) -> str: lines = [] lines.append(f"subgraph {_contract_subgraph(contract)} {{") @@ -87,7 +94,7 @@ def _render_internal_calls(contract, contract_functions, contract_calls): return "\n".join(lines) -def _render_solidity_calls(solidity_functions, solidity_calls): +def _render_solidity_calls(solidity_functions: Set[str], solidity_calls: Set[str]) -> str: lines = [] lines.append("subgraph cluster_solidity {") @@ -102,13 +109,13 @@ def _render_solidity_calls(solidity_functions, solidity_calls): def _process_external_call( - contract, - function, - external_call, - contract_functions, - external_calls, - all_contracts, -): + contract: Contract, + function: Function, + external_call: Tuple[Contract, Union[Function, Variable]], + contract_functions: Dict[Contract, Set[str]], + external_calls: Set[str], + all_contracts: Set[Contract], +) -> None: external_contract, external_function = external_call if not external_contract in all_contracts: @@ -133,15 +140,15 @@ def _process_external_call( # pylint: disable=too-many-arguments def _process_function( - contract, - function, - contract_functions, - contract_calls, - solidity_functions, - solidity_calls, - external_calls, - all_contracts, -): + contract: Contract, + function: Function, + contract_functions: Dict[Contract, Set[str]], + contract_calls: Dict[Contract, Set[str]], + solidity_functions: Set[str], + solidity_calls: Set[str], + external_calls: Set[str], + all_contracts: Set[Contract], +) -> None: contract_functions[contract].add( _node(_function_node(contract, function), function.name), ) @@ -166,29 +173,35 @@ def _process_function( ) -def _process_functions(functions): - contract_functions = defaultdict(set) # contract -> contract functions nodes - contract_calls = defaultdict(set) # contract -> contract calls edges +def _process_functions(functions: Sequence[Function]) -> str: + # TODO add support for top level function + + contract_functions: Dict[Contract, Set[str]] = defaultdict( + set + ) # contract -> contract functions nodes + contract_calls: Dict[Contract, Set[str]] = defaultdict(set) # contract -> contract calls edges - solidity_functions = set() # solidity function nodes - solidity_calls = set() # solidity calls edges - external_calls = set() # external calls edges + solidity_functions: Set[str] = set() # solidity function nodes + solidity_calls: Set[str] = set() # solidity calls edges + external_calls: Set[str] = set() # external calls edges all_contracts = set() for function in functions: - all_contracts.add(function.contract_declarer) + if isinstance(function, FunctionContract): + all_contracts.add(function.contract_declarer) for function in functions: - _process_function( - function.contract_declarer, - function, - contract_functions, - contract_calls, - solidity_functions, - solidity_calls, - external_calls, - all_contracts, - ) + if isinstance(function, FunctionContract): + _process_function( + function.contract_declarer, + function, + contract_functions, + contract_calls, + solidity_functions, + solidity_calls, + external_calls, + all_contracts, + ) render_internal_calls = "" for contract in all_contracts: @@ -241,7 +254,9 @@ class PrinterCallGraph(AbstractPrinter): function.canonical_name: function for function in all_functions } content = "\n".join( - ["strict digraph {"] + [_process_functions(all_functions_as_dict.values())] + ["}"] + ["strict digraph {"] + + [_process_functions(list(all_functions_as_dict.values()))] + + ["}"] ) f.write(content) results.append((all_contracts_filename, content)) diff --git a/slither/printers/functions/authorization.py b/slither/printers/functions/authorization.py index ab61d354e..48b94c297 100644 --- a/slither/printers/functions/authorization.py +++ b/slither/printers/functions/authorization.py @@ -1,10 +1,12 @@ """ Module printing summary of the contract """ +from typing import List from slither.printers.abstract_printer import AbstractPrinter from slither.core.declarations.function import Function from slither.utils.myprettytable import MyPrettyTable +from slither.utils.output import Output class PrinterWrittenVariablesAndAuthorization(AbstractPrinter): @@ -15,11 +17,15 @@ class PrinterWrittenVariablesAndAuthorization(AbstractPrinter): WIKI = "https://github.com/trailofbits/slither/wiki/Printer-documentation#variables-written-and-authorization" @staticmethod - def get_msg_sender_checks(function): - all_functions = function.all_internal_calls() + [function] + function.modifiers + def get_msg_sender_checks(function: Function) -> List[str]: + all_functions = ( + [f for f in function.all_internal_calls() if isinstance(f, Function)] + + [function] + + [m for m in function.modifiers if isinstance(m, Function)] + ) - all_nodes = [f.nodes for f in all_functions if isinstance(f, Function)] - all_nodes = [item for sublist in all_nodes for item in sublist] + all_nodes_ = [f.nodes for f in all_functions] + all_nodes = [item for sublist in all_nodes_ for item in sublist] all_conditional_nodes = [ n for n in all_nodes if n.contains_if() or n.contains_require_or_assert() @@ -31,7 +37,7 @@ class PrinterWrittenVariablesAndAuthorization(AbstractPrinter): ] return all_conditional_nodes_on_msg_sender - def output(self, _filename): + def output(self, _filename: str) -> Output: """ _filename is not used Args: @@ -40,7 +46,7 @@ class PrinterWrittenVariablesAndAuthorization(AbstractPrinter): txt = "" all_tables = [] - for contract in self.contracts: + for contract in self.contracts: # type: ignore if contract.is_top_level: continue txt += f"\nContract {contract.name}\n" @@ -49,7 +55,9 @@ class PrinterWrittenVariablesAndAuthorization(AbstractPrinter): ) for function in contract.functions: - state_variables_written = [v.name for v in function.all_state_variables_written()] + state_variables_written = [ + v.name for v in function.all_state_variables_written() if v.name + ] msg_sender_condition = self.get_msg_sender_checks(function) table.add_row( [ diff --git a/slither/printers/functions/cfg.py b/slither/printers/functions/cfg.py index 03e010ff4..3c75f723f 100644 --- a/slither/printers/functions/cfg.py +++ b/slither/printers/functions/cfg.py @@ -1,4 +1,5 @@ from slither.printers.abstract_printer import AbstractPrinter +from slither.utils.output import Output class CFG(AbstractPrinter): @@ -8,7 +9,7 @@ class CFG(AbstractPrinter): WIKI = "https://github.com/trailofbits/slither/wiki/Printer-documentation#cfg" - def output(self, filename): + def output(self, filename: str) -> Output: """ _filename is not used Args: @@ -17,10 +18,10 @@ class CFG(AbstractPrinter): info = "" all_files = [] - for contract in self.contracts: + for contract in self.contracts: # type: ignore if contract.is_top_level: continue - for function in contract.functions + contract.modifiers: + for function in contract.functions + list(contract.modifiers): if filename: new_filename = f"{filename}-{contract.name}-{function.full_name}.dot" else: diff --git a/slither/slithir/operations/call.py b/slither/slithir/operations/call.py index 37a2fe0b3..816c56e1d 100644 --- a/slither/slithir/operations/call.py +++ b/slither/slithir/operations/call.py @@ -8,14 +8,14 @@ from slither.slithir.operations.operation import Operation class Call(Operation): def __init__(self) -> None: super().__init__() - self._arguments = [] + self._arguments: List[Variable] = [] @property - def arguments(self): + def arguments(self) -> List[Variable]: return self._arguments @arguments.setter - def arguments(self, v): + def arguments(self, v: List[Variable]) -> None: self._arguments = v # pylint: disable=no-self-use diff --git a/slither/slithir/operations/codesize.py b/slither/slithir/operations/codesize.py index 6640f4fd8..13aa430eb 100644 --- a/slither/slithir/operations/codesize.py +++ b/slither/slithir/operations/codesize.py @@ -29,5 +29,5 @@ class CodeSize(OperationWithLValue): def value(self) -> LocalVariable: return self._value - def __str__(self): + def __str__(self) -> str: return f"{self.lvalue} -> CODESIZE {self.value}" diff --git a/slither/slithir/operations/condition.py b/slither/slithir/operations/condition.py index 41fb3d933..ccec033d9 100644 --- a/slither/slithir/operations/condition.py +++ b/slither/slithir/operations/condition.py @@ -1,13 +1,7 @@ -from typing import List, Union -from slither.slithir.operations.operation import Operation +from typing import List -from slither.slithir.utils.utils import is_valid_rvalue -from slither.core.variables.local_variable import LocalVariable -from slither.slithir.variables.constant import Constant -from slither.slithir.variables.local_variable import LocalIRVariable -from slither.slithir.variables.temporary import TemporaryVariable -from slither.slithir.variables.temporary_ssa import TemporaryVariableSSA -from slither.core.variables.variable import Variable +from slither.slithir.operations.operation import Operation +from slither.slithir.utils.utils import is_valid_rvalue, RVALUE class Condition(Operation): @@ -18,9 +12,7 @@ class Condition(Operation): def __init__( self, - value: Union[ - LocalVariable, TemporaryVariableSSA, TemporaryVariable, Constant, LocalIRVariable - ], + value: RVALUE, ) -> None: assert is_valid_rvalue(value) super().__init__() @@ -29,14 +21,12 @@ class Condition(Operation): @property def read( self, - ) -> List[ - Union[LocalIRVariable, Constant, LocalVariable, TemporaryVariableSSA, TemporaryVariable] - ]: + ) -> List[RVALUE]: return [self.value] @property - def value(self) -> Variable: + def value(self) -> RVALUE: return self._value - def __str__(self): + def __str__(self) -> str: return f"CONDITION {self.value}" diff --git a/slither/slithir/variables/constant.py b/slither/slithir/variables/constant.py index ddfc9e054..5321e5250 100644 --- a/slither/slithir/variables/constant.py +++ b/slither/slithir/variables/constant.py @@ -28,7 +28,7 @@ class Constant(SlithIRVariable): assert isinstance(constant_type, ElementaryType) self._type = constant_type if constant_type.type in Int + Uint + ["address"]: - self._val = convert_string_to_int(val) + self._val: Union[bool, int, str] = convert_string_to_int(val) elif constant_type.type == "bool": self._val = (val == "true") | (val == "True") else: @@ -41,6 +41,8 @@ class Constant(SlithIRVariable): self._type = ElementaryType("string") self._val = val + self._name = str(self._val) + @property def value(self) -> Union[bool, int, str]: """ @@ -63,20 +65,18 @@ class Constant(SlithIRVariable): def __str__(self) -> str: return str(self.value) - @property - def name(self) -> str: - return str(self) - - def __eq__(self, other: Union["Constant", str]) -> bool: + def __eq__(self, other: object) -> bool: return self.value == other - def __ne__(self, other): + def __ne__(self, other: object) -> bool: return self.value != other - def __lt__(self, other): - return self.value < other + def __lt__(self, other: object) -> bool: + if not isinstance(other, (Constant, str)): + raise NotImplementedError + return self.value < other # type: ignore - def __repr__(self): + def __repr__(self) -> str: return f"{str(self.value)}" def __hash__(self) -> int: diff --git a/slither/tools/mutator/utils/command_line.py b/slither/tools/mutator/utils/command_line.py index 840976ccf..feb479c5c 100644 --- a/slither/tools/mutator/utils/command_line.py +++ b/slither/tools/mutator/utils/command_line.py @@ -18,6 +18,6 @@ def output_mutators(mutators_classes: List[Type[AbstractMutator]]) -> None: mutators_list = sorted(mutators_list, key=lambda element: (element[2], element[3], element[0])) idx = 1 for (argument, help_info, fault_class, fault_nature) in mutators_list: - table.add_row([idx, argument, help_info, fault_class, fault_nature]) + table.add_row([str(idx), argument, help_info, fault_class, fault_nature]) idx = idx + 1 print(table) diff --git a/slither/tools/similarity/cache.py b/slither/tools/similarity/cache.py index 53fc7f5f0..ccd64b84b 100644 --- a/slither/tools/similarity/cache.py +++ b/slither/tools/similarity/cache.py @@ -1,4 +1,5 @@ import sys +from typing import Dict, Optional try: import numpy as np @@ -8,7 +9,7 @@ except ImportError: sys.exit(-1) -def load_cache(infile, nsamples=None): +def load_cache(infile: str, nsamples: Optional[int] = None) -> Dict: cache = {} with np.load(infile, allow_pickle=True) as data: array = data["arr_0"][0] @@ -20,5 +21,5 @@ def load_cache(infile, nsamples=None): return cache -def save_cache(cache, outfile): +def save_cache(cache: Dict, outfile: str) -> None: np.savez(outfile, [np.array(cache)]) diff --git a/slither/tools/upgradeability/checks/abstract_checks.py b/slither/tools/upgradeability/checks/abstract_checks.py index 016be2647..a3ab137a3 100644 --- a/slither/tools/upgradeability/checks/abstract_checks.py +++ b/slither/tools/upgradeability/checks/abstract_checks.py @@ -34,6 +34,8 @@ classification_txt = { CheckClassification.HIGH: "High", } +CHECK_INFO = List[Union[str, SupportedOutput]] + class AbstractCheck(metaclass=abc.ABCMeta): ARGUMENT = "" @@ -140,7 +142,7 @@ class AbstractCheck(metaclass=abc.ABCMeta): def generate_result( self, - info: Union[str, List[Union[str, SupportedOutput]]], + info: CHECK_INFO, additional_fields: Optional[Dict] = None, ) -> Output: output = Output( diff --git a/slither/tools/upgradeability/checks/constant.py b/slither/tools/upgradeability/checks/constant.py index a5a80bf5a..bd9814649 100644 --- a/slither/tools/upgradeability/checks/constant.py +++ b/slither/tools/upgradeability/checks/constant.py @@ -1,7 +1,11 @@ +from typing import List + from slither.tools.upgradeability.checks.abstract_checks import ( AbstractCheck, CheckClassification, + CHECK_INFO, ) +from slither.utils.output import Output class WereConstant(AbstractCheck): @@ -47,10 +51,12 @@ Do not remove `constant` from a state variables during an update. REQUIRE_CONTRACT = True REQUIRE_CONTRACT_V2 = True - def _check(self): + def _check(self) -> List[Output]: contract_v1 = self.contract contract_v2 = self.contract_v2 + if contract_v2 is None: + raise Exception("were-constant requires a V2 contract") state_variables_v1 = contract_v1.state_variables state_variables_v2 = contract_v2.state_variables @@ -81,7 +87,7 @@ Do not remove `constant` from a state variables during an update. v2_additional_variables -= 1 idx_v2 += 1 continue - info = [state_v1, " was constant, but ", state_v2, "is not.\n"] + info: CHECK_INFO = [state_v1, " was constant, but ", state_v2, "is not.\n"] json = self.generate_result(info) results.append(json) @@ -134,10 +140,13 @@ Do not make an existing state variable `constant`. REQUIRE_CONTRACT = True REQUIRE_CONTRACT_V2 = True - def _check(self): + def _check(self) -> List[Output]: contract_v1 = self.contract contract_v2 = self.contract_v2 + if contract_v2 is None: + raise Exception("became-constant requires a V2 contract") + state_variables_v1 = contract_v1.state_variables state_variables_v2 = contract_v2.state_variables @@ -169,7 +178,7 @@ Do not make an existing state variable `constant`. idx_v2 += 1 continue elif state_v2.is_constant: - info = [state_v1, " was not constant but ", state_v2, " is.\n"] + info: CHECK_INFO = [state_v1, " was not constant but ", state_v2, " is.\n"] json = self.generate_result(info) results.append(json) diff --git a/slither/tools/upgradeability/utils/command_line.py b/slither/tools/upgradeability/utils/command_line.py index 88b61ceed..c5767a522 100644 --- a/slither/tools/upgradeability/utils/command_line.py +++ b/slither/tools/upgradeability/utils/command_line.py @@ -63,7 +63,7 @@ def output_detectors(detector_classes: List[Type[AbstractCheck]]) -> None: def output_to_markdown(detector_classes: List[Type[AbstractCheck]], _filter_wiki: str) -> None: - def extract_help(cls: AbstractCheck) -> str: + def extract_help(cls: Type[AbstractCheck]) -> str: if cls.WIKI == "": return cls.HELP return f"[{cls.HELP}]({cls.WIKI})" diff --git a/slither/utils/code_complexity.py b/slither/utils/code_complexity.py index a389663b3..aa7838499 100644 --- a/slither/utils/code_complexity.py +++ b/slither/utils/code_complexity.py @@ -35,7 +35,7 @@ def compute_strongly_connected_components(function: "Function") -> List[List["No components = [] l = [] - def visit(node): + def visit(node: "Node") -> None: if not visited[node]: visited[node] = True for son in node.sons: @@ -45,7 +45,7 @@ def compute_strongly_connected_components(function: "Function") -> List[List["No for n in function.nodes: visit(n) - def assign(node: "Node", root: List["Node"]): + def assign(node: "Node", root: List["Node"]) -> None: if not assigned[node]: assigned[node] = True root.append(node) diff --git a/slither/utils/colors.py b/slither/utils/colors.py index 5d688489b..1a2ff1da3 100644 --- a/slither/utils/colors.py +++ b/slither/utils/colors.py @@ -28,7 +28,7 @@ def enable_windows_virtual_terminal_sequences() -> bool: try: # pylint: disable=import-outside-toplevel - from ctypes import windll, byref + from ctypes import windll, byref # type: ignore from ctypes.wintypes import DWORD, HANDLE kernel32 = windll.kernel32 @@ -65,7 +65,7 @@ def enable_windows_virtual_terminal_sequences() -> bool: return True -def set_colorization_enabled(enabled: bool): +def set_colorization_enabled(enabled: bool) -> None: """ Sets the enabled state of output colorization. :param enabled: Boolean indicating whether output should be colorized. diff --git a/slither/visitors/expression/expression.py b/slither/visitors/expression/expression.py index 464ea1285..0bdd123a3 100644 --- a/slither/visitors/expression/expression.py +++ b/slither/visitors/expression/expression.py @@ -1,5 +1,5 @@ import logging -from typing import Optional, Any +from typing import Any from slither.core.expressions.assignment_operation import AssignmentOperation from slither.core.expressions.binary_operation import BinaryOperation @@ -29,7 +29,7 @@ class ExpressionVisitor: self._result: Any = None self._visit_expression(self.expression) - def result(self) -> Optional[bool]: + def result(self) -> Any: return self._result @property @@ -146,7 +146,7 @@ class ExpressionVisitor: def _visit_new_contract(self, expression: NewContract) -> None: pass - def _visit_new_elementary_type(self, expression): + def _visit_new_elementary_type(self, expression: Expression) -> None: pass def _visit_tuple_expression(self, expression: TupleExpression) -> None: @@ -162,7 +162,7 @@ class ExpressionVisitor: # pre visit - def _pre_visit(self, expression) -> None: # pylint: disable=too-many-branches + def _pre_visit(self, expression: Expression) -> None: # pylint: disable=too-many-branches if isinstance(expression, AssignmentOperation): self._pre_assignement_operation(expression) @@ -251,7 +251,7 @@ class ExpressionVisitor: def _pre_new_contract(self, expression: NewContract) -> None: pass - def _pre_new_elementary_type(self, expression): + def _pre_new_elementary_type(self, expression: NewElementaryType) -> None: pass def _pre_tuple_expression(self, expression: TupleExpression) -> None: @@ -265,7 +265,7 @@ class ExpressionVisitor: # post visit - def _post_visit(self, expression) -> None: # pylint: disable=too-many-branches + def _post_visit(self, expression: Expression) -> None: # pylint: disable=too-many-branches if isinstance(expression, AssignmentOperation): self._post_assignement_operation(expression) @@ -328,7 +328,7 @@ class ExpressionVisitor: def _post_call_expression(self, expression: CallExpression) -> None: pass - def _post_conditional_expression(self, expression): + def _post_conditional_expression(self, expression: ConditionalExpression) -> None: pass def _post_elementary_type_name_expression( @@ -354,7 +354,7 @@ class ExpressionVisitor: def _post_new_contract(self, expression: NewContract) -> None: pass - def _post_new_elementary_type(self, expression): + def _post_new_elementary_type(self, expression: NewElementaryType) -> None: pass def _post_tuple_expression(self, expression: TupleExpression) -> None: From 561148408ea525f25cfc5961a75b5dadb8f35412 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Mon, 20 Feb 2023 16:03:28 +0100 Subject: [PATCH 009/193] Improve expression visitors --- slither/detectors/statements/unary.py | 20 +++++-- .../visitors/expression/constants_folding.py | 54 ++++++++++++------- slither/visitors/expression/export_values.py | 37 +++++++++---- slither/visitors/expression/expression.py | 21 ++++---- .../visitors/expression/expression_printer.py | 50 ++++++++++------- slither/visitors/expression/find_calls.py | 13 +++-- .../visitors/expression/has_conditional.py | 10 ++-- slither/visitors/expression/read_var.py | 16 ++++-- slither/visitors/expression/write_var.py | 10 +++- 9 files changed, 150 insertions(+), 81 deletions(-) diff --git a/slither/detectors/statements/unary.py b/slither/detectors/statements/unary.py index 5bb8d9c3c..2a8d78a34 100644 --- a/slither/detectors/statements/unary.py +++ b/slither/detectors/statements/unary.py @@ -4,29 +4,39 @@ Module detecting the incorrect use of unary expressions from typing import List from slither.core.expressions.assignment_operation import AssignmentOperation +from slither.core.expressions.expression import Expression from slither.core.expressions.unary_operation import UnaryOperationType, UnaryOperation from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification from slither.utils.output import Output from slither.visitors.expression.expression import ExpressionVisitor - +# pylint: disable=too-few-public-methods class InvalidUnaryExpressionDetector(ExpressionVisitor): + def __init__(self, expression: Expression) -> None: + self.result: bool = False + super().__init__(expression) + def _post_assignement_operation(self, expression: AssignmentOperation) -> None: if isinstance(expression.expression_right, UnaryOperation): if expression.expression_right.type == UnaryOperationType.PLUS_PRE: # This is defined in ExpressionVisitor but pylint # Seems to think its not # pylint: disable=attribute-defined-outside-init - self._result = True + self.result = True +# pylint: disable=too-few-public-methods class InvalidUnaryStateVariableDetector(ExpressionVisitor): + def __init__(self, expression: Expression) -> None: + self.result: bool = False + super().__init__(expression) + def _post_unary_operation(self, expression: UnaryOperation) -> None: if expression.type == UnaryOperationType.PLUS_PRE: # This is defined in ExpressionVisitor but pylint # Seems to think its not # pylint: disable=attribute-defined-outside-init - self._result = True + self.result = True class IncorrectUnaryExpressionDetection(AbstractDetector): @@ -72,7 +82,7 @@ contract Bug{ for variable in c.state_variables: if ( variable.expression - and InvalidUnaryStateVariableDetector(variable.expression).result() + and InvalidUnaryStateVariableDetector(variable.expression).result ): info = [variable, f" uses an dangerous unary operator: {variable.expression}\n"] json = self.generate_result(info) @@ -80,7 +90,7 @@ contract Bug{ for f in c.functions_and_modifiers_declared: for node in f.nodes: - if node.expression and InvalidUnaryExpressionDetector(node.expression).result(): + if node.expression and InvalidUnaryExpressionDetector(node.expression).result: info = [node.function, " uses an dangerous unary operator: ", node, "\n"] res = self.generate_result(info) results.append(res) diff --git a/slither/visitors/expression/constants_folding.py b/slither/visitors/expression/constants_folding.py index 5f419ef99..158306f39 100644 --- a/slither/visitors/expression/constants_folding.py +++ b/slither/visitors/expression/constants_folding.py @@ -1,6 +1,7 @@ from fractions import Fraction -from typing import Union, TYPE_CHECKING +from typing import Union +from slither.core import expressions from slither.core.expressions import ( BinaryOperationType, Literal, @@ -14,9 +15,7 @@ from slither.core.expressions import ( from slither.utils.integer_conversion import convert_string_to_fraction, convert_string_to_int from slither.visitors.expression.expression import ExpressionVisitor - -if TYPE_CHECKING: - from slither.core.solidity_types.elementary_type import ElementaryType +from slither.core.solidity_types.elementary_type import ElementaryType class NotConstant(Exception): @@ -45,11 +44,19 @@ class ConstantFolding(ExpressionVisitor): def __init__( self, expression: CONSTANT_TYPES_OPERATIONS, custom_type: Union[str, "ElementaryType"] ) -> None: - self._type = custom_type + if isinstance(custom_type, str): + custom_type = ElementaryType(custom_type) + self._type: ElementaryType = custom_type super().__init__(expression) + @property + def expression(self) -> CONSTANT_TYPES_OPERATIONS: + # We make the assumption that the expression is always a CONSTANT_TYPES_OPERATIONS + # Other expression are not supported for constant unfolding + return self._expression # type: ignore + def result(self) -> "Literal": - value = get_val(self._expression) + value = get_val(self.expression) if isinstance(value, Fraction): value = int(value) # emulate 256-bit wrapping @@ -62,9 +69,13 @@ class ConstantFolding(ExpressionVisitor): raise NotConstant expr = expression.value.expression # assumption that we won't have infinite loop - if not isinstance(expr, Literal): + # Everything outside of literal + if isinstance( + expr, (BinaryOperation, UnaryOperation, Identifier, TupleExpression, TypeConversion) + ): cf = ConstantFolding(expr, self._type) expr = cf.result() + assert isinstance(expr, Literal) set_val(expression, convert_string_to_int(expr.converted_value)) # pylint: disable=too-many-branches @@ -118,7 +129,10 @@ class ConstantFolding(ExpressionVisitor): # Case of uint a = -7; uint[-a] arr; if expression.type == UnaryOperationType.MINUS_PRE: expr = expression.expression - if not isinstance(expr, Literal): + # Everything outside of literal + if isinstance( + expr, (BinaryOperation, UnaryOperation, Identifier, TupleExpression, TypeConversion) + ): cf = ConstantFolding(expr, self._type) expr = cf.result() assert isinstance(expr, Literal) @@ -135,34 +149,36 @@ class ConstantFolding(ExpressionVisitor): except ValueError as e: raise NotConstant from e - def _post_assignement_operation(self, expression): + def _post_assignement_operation(self, expression: expressions.AssignmentOperation) -> None: raise NotConstant - def _post_call_expression(self, expression): + def _post_call_expression(self, expression: expressions.CallExpression) -> None: raise NotConstant - def _post_conditional_expression(self, expression): + def _post_conditional_expression(self, expression: expressions.ConditionalExpression) -> None: raise NotConstant - def _post_elementary_type_name_expression(self, expression): + def _post_elementary_type_name_expression( + self, expression: expressions.ElementaryTypeNameExpression + ) -> None: raise NotConstant - def _post_index_access(self, expression): + def _post_index_access(self, expression: expressions.IndexAccess) -> None: raise NotConstant - def _post_member_access(self, expression): + def _post_member_access(self, expression: expressions.MemberAccess) -> None: raise NotConstant - def _post_new_array(self, expression): + def _post_new_array(self, expression: expressions.NewArray) -> None: raise NotConstant - def _post_new_contract(self, expression): + def _post_new_contract(self, expression: expressions.NewContract) -> None: raise NotConstant - def _post_new_elementary_type(self, expression): + def _post_new_elementary_type(self, expression: expressions.NewElementaryType) -> None: raise NotConstant - def _post_tuple_expression(self, expression): + def _post_tuple_expression(self, expression: expressions.TupleExpression) -> None: if expression.expressions: if len(expression.expressions) == 1: cf = ConstantFolding(expression.expressions[0], self._type) @@ -172,7 +188,7 @@ class ConstantFolding(ExpressionVisitor): return raise NotConstant - def _post_type_conversion(self, expression): + def _post_type_conversion(self, expression: expressions.TypeConversion) -> None: cf = ConstantFolding(expression.expression, self._type) expr = cf.result() assert isinstance(expr, Literal) diff --git a/slither/visitors/expression/export_values.py b/slither/visitors/expression/export_values.py index f5ca39a96..0c51e7831 100644 --- a/slither/visitors/expression/export_values.py +++ b/slither/visitors/expression/export_values.py @@ -1,4 +1,15 @@ -from typing import Any, List +from typing import Any, List, Optional + +from slither.core.expressions import ( + AssignmentOperation, + ConditionalExpression, + ElementaryTypeNameExpression, + IndexAccess, + NewArray, + NewContract, + UnaryOperation, + NewElementaryType, +) from slither.visitors.expression.expression import ExpressionVisitor from slither.core.expressions.call_expression import CallExpression from slither.core.expressions.identifier import Identifier @@ -25,12 +36,16 @@ def set_val(expression: Expression, val: List[Any]) -> None: class ExportValues(ExpressionVisitor): - def result(self) -> List[Any]: + def __init__(self, expression: Expression) -> None: + self._result: Optional[List[Expression]] = None + super().__init__(expression) + + def result(self) -> List[Expression]: if self._result is None: self._result = list(set(get(self.expression))) return self._result - def _post_assignement_operation(self, expression): + def _post_assignement_operation(self, expression: AssignmentOperation) -> None: left = get(expression.expression_left) right = get(expression.expression_right) val = left + right @@ -49,20 +64,22 @@ class ExportValues(ExpressionVisitor): val = called + args set_val(expression, val) - def _post_conditional_expression(self, expression): + def _post_conditional_expression(self, expression: ConditionalExpression) -> None: if_expr = get(expression.if_expression) else_expr = get(expression.else_expression) then_expr = get(expression.then_expression) val = if_expr + else_expr + then_expr set_val(expression, val) - def _post_elementary_type_name_expression(self, expression): + def _post_elementary_type_name_expression( + self, expression: ElementaryTypeNameExpression + ) -> None: set_val(expression, []) def _post_identifier(self, expression: Identifier) -> None: set_val(expression, [expression.value]) - def _post_index_access(self, expression): + def _post_index_access(self, expression: IndexAccess) -> None: left = get(expression.expression_left) right = get(expression.expression_right) val = left + right @@ -76,13 +93,13 @@ class ExportValues(ExpressionVisitor): val = expr set_val(expression, val) - def _post_new_array(self, expression): + def _post_new_array(self, expression: NewArray) -> None: set_val(expression, []) - def _post_new_contract(self, expression): + def _post_new_contract(self, expression: NewContract) -> None: set_val(expression, []) - def _post_new_elementary_type(self, expression): + def _post_new_elementary_type(self, expression: NewElementaryType) -> None: set_val(expression, []) def _post_tuple_expression(self, expression: TupleExpression) -> None: @@ -95,7 +112,7 @@ class ExportValues(ExpressionVisitor): val = expr set_val(expression, val) - def _post_unary_operation(self, expression): + def _post_unary_operation(self, expression: UnaryOperation) -> None: expr = get(expression.expression) val = expr set_val(expression, val) diff --git a/slither/visitors/expression/expression.py b/slither/visitors/expression/expression.py index 464ea1285..41886a102 100644 --- a/slither/visitors/expression/expression.py +++ b/slither/visitors/expression/expression.py @@ -1,5 +1,4 @@ import logging -from typing import Optional, Any from slither.core.expressions.assignment_operation import AssignmentOperation from slither.core.expressions.binary_operation import BinaryOperation @@ -22,16 +21,14 @@ from slither.exceptions import SlitherError logger = logging.getLogger("ExpressionVisitor") +# pylint: disable=too-few-public-methods class ExpressionVisitor: def __init__(self, expression: Expression) -> None: - # Inherited class must declared their variables prior calling super().__init__ + super().__init__() + # Inherited class must declare their variables prior calling super().__init__ self._expression = expression - self._result: Any = None self._visit_expression(self.expression) - def result(self) -> Optional[bool]: - return self._result - @property def expression(self) -> Expression: return self._expression @@ -146,7 +143,7 @@ class ExpressionVisitor: def _visit_new_contract(self, expression: NewContract) -> None: pass - def _visit_new_elementary_type(self, expression): + def _visit_new_elementary_type(self, expression: NewElementaryType) -> None: pass def _visit_tuple_expression(self, expression: TupleExpression) -> None: @@ -162,7 +159,7 @@ class ExpressionVisitor: # pre visit - def _pre_visit(self, expression) -> None: # pylint: disable=too-many-branches + def _pre_visit(self, expression: Expression) -> None: # pylint: disable=too-many-branches if isinstance(expression, AssignmentOperation): self._pre_assignement_operation(expression) @@ -251,7 +248,7 @@ class ExpressionVisitor: def _pre_new_contract(self, expression: NewContract) -> None: pass - def _pre_new_elementary_type(self, expression): + def _pre_new_elementary_type(self, expression: NewElementaryType) -> None: pass def _pre_tuple_expression(self, expression: TupleExpression) -> None: @@ -265,7 +262,7 @@ class ExpressionVisitor: # post visit - def _post_visit(self, expression) -> None: # pylint: disable=too-many-branches + def _post_visit(self, expression: Expression) -> None: # pylint: disable=too-many-branches if isinstance(expression, AssignmentOperation): self._post_assignement_operation(expression) @@ -328,7 +325,7 @@ class ExpressionVisitor: def _post_call_expression(self, expression: CallExpression) -> None: pass - def _post_conditional_expression(self, expression): + def _post_conditional_expression(self, expression: ConditionalExpression) -> None: pass def _post_elementary_type_name_expression( @@ -354,7 +351,7 @@ class ExpressionVisitor: def _post_new_contract(self, expression: NewContract) -> None: pass - def _post_new_elementary_type(self, expression): + def _post_new_elementary_type(self, expression: NewElementaryType) -> None: pass def _post_tuple_expression(self, expression: TupleExpression) -> None: diff --git a/slither/visitors/expression/expression_printer.py b/slither/visitors/expression/expression_printer.py index 317e1ace6..601627c02 100644 --- a/slither/visitors/expression/expression_printer.py +++ b/slither/visitors/expression/expression_printer.py @@ -1,97 +1,107 @@ +from typing import Optional + +from slither.core import expressions +from slither.core.expressions.expression import Expression from slither.visitors.expression.expression import ExpressionVisitor -def get(expression): +def get(expression: Expression) -> str: val = expression.context["ExpressionPrinter"] # we delete the item to reduce memory use del expression.context["ExpressionPrinter"] return val -def set_val(expression, val): +def set_val(expression: Expression, val: str) -> None: expression.context["ExpressionPrinter"] = val class ExpressionPrinter(ExpressionVisitor): - def result(self): + def __init__(self, expression: Expression) -> None: + self._result: Optional[str] = None + super().__init__(expression) + + def result(self) -> str: if not self._result: self._result = get(self.expression) return self._result - def _post_assignement_operation(self, expression): + def _post_assignement_operation(self, expression: expressions.AssignmentOperation) -> None: left = get(expression.expression_left) right = get(expression.expression_right) val = f"{left} {expression.type} {right}" set_val(expression, val) - def _post_binary_operation(self, expression): + def _post_binary_operation(self, expression: expressions.BinaryOperation) -> None: left = get(expression.expression_left) right = get(expression.expression_right) val = f"{left} {expression.type} {right}" set_val(expression, val) - def _post_call_expression(self, expression): + def _post_call_expression(self, expression: expressions.CallExpression) -> None: called = get(expression.called) arguments = ",".join([get(x) for x in expression.arguments if x]) val = f"{called}({arguments})" set_val(expression, val) - def _post_conditional_expression(self, expression): + def _post_conditional_expression(self, expression: expressions.ConditionalExpression) -> None: if_expr = get(expression.if_expression) else_expr = get(expression.else_expression) then_expr = get(expression.then_expression) val = f"if {if_expr} then {else_expr} else {then_expr}" set_val(expression, val) - def _post_elementary_type_name_expression(self, expression): + def _post_elementary_type_name_expression( + self, expression: expressions.ElementaryTypeNameExpression + ) -> None: set_val(expression, str(expression.type)) - def _post_identifier(self, expression): + def _post_identifier(self, expression: expressions.Identifier) -> None: set_val(expression, str(expression.value)) - def _post_index_access(self, expression): + def _post_index_access(self, expression: expressions.IndexAccess) -> None: left = get(expression.expression_left) right = get(expression.expression_right) val = f"{left}[{right}]" set_val(expression, val) - def _post_literal(self, expression): + def _post_literal(self, expression: expressions.Literal) -> None: set_val(expression, str(expression.value)) - def _post_member_access(self, expression): + def _post_member_access(self, expression: expressions.MemberAccess) -> None: expr = get(expression.expression) member_name = str(expression.member_name) val = f"{expr}.{member_name}" set_val(expression, val) - def _post_new_array(self, expression): + def _post_new_array(self, expression: expressions.NewArray) -> None: array = str(expression.array_type) depth = expression.depth val = f"new {array}{'[]' * depth}" set_val(expression, val) - def _post_new_contract(self, expression): + def _post_new_contract(self, expression: expressions.NewContract) -> None: contract = str(expression.contract_name) val = f"new {contract}" set_val(expression, val) - def _post_new_elementary_type(self, expression): + def _post_new_elementary_type(self, expression: expressions.NewElementaryType) -> None: t = str(expression.type) val = f"new {t}" set_val(expression, val) - def _post_tuple_expression(self, expression): - expressions = [get(e) for e in expression.expressions if e] - val = f"({','.join(expressions)})" + def _post_tuple_expression(self, expression: expressions.TupleExpression) -> None: + underlying_expressions = [get(e) for e in expression.expressions if e] + val = f"({','.join(underlying_expressions)})" set_val(expression, val) - def _post_type_conversion(self, expression): + def _post_type_conversion(self, expression: expressions.TypeConversion) -> None: t = str(expression.type) expr = get(expression.expression) val = f"{t}({expr})" set_val(expression, val) - def _post_unary_operation(self, expression): + def _post_unary_operation(self, expression: expressions.UnaryOperation) -> None: t = str(expression.type) expr = get(expression.expression) if expression.is_prefix: diff --git a/slither/visitors/expression/find_calls.py b/slither/visitors/expression/find_calls.py index 6653a9759..ce00533ed 100644 --- a/slither/visitors/expression/find_calls.py +++ b/slither/visitors/expression/find_calls.py @@ -1,5 +1,6 @@ -from typing import Any, Union, List +from typing import Any, Union, List, Optional +from slither.core.expressions import NewElementaryType from slither.core.expressions.expression import Expression from slither.visitors.expression.expression import ExpressionVisitor from slither.core.expressions.assignment_operation import AssignmentOperation @@ -32,6 +33,10 @@ def set_val(expression: Expression, val: List[Union[Any, CallExpression]]) -> No class FindCalls(ExpressionVisitor): + def __init__(self, expression: Expression) -> None: + self._result: Optional[List[Expression]] = None + super().__init__(expression) + def result(self) -> List[Expression]: if self._result is None: self._result = list(set(get(self.expression))) @@ -51,8 +56,8 @@ class FindCalls(ExpressionVisitor): def _post_call_expression(self, expression: CallExpression) -> None: called = get(expression.called) - args = [get(a) for a in expression.arguments if a] - args = [item for sublist in args for item in sublist] + argss = [get(a) for a in expression.arguments if a] + args = [item for sublist in argss for item in sublist] val = called + args val += [expression] set_val(expression, val) @@ -93,7 +98,7 @@ class FindCalls(ExpressionVisitor): def _post_new_contract(self, expression: NewContract) -> None: set_val(expression, []) - def _post_new_elementary_type(self, expression): + def _post_new_elementary_type(self, expression: NewElementaryType) -> None: set_val(expression, []) def _post_tuple_expression(self, expression: TupleExpression) -> None: diff --git a/slither/visitors/expression/has_conditional.py b/slither/visitors/expression/has_conditional.py index b866a696b..613138533 100644 --- a/slither/visitors/expression/has_conditional.py +++ b/slither/visitors/expression/has_conditional.py @@ -1,13 +1,15 @@ +from slither.core.expressions.expression import Expression from slither.visitors.expression.expression import ExpressionVisitor from slither.core.expressions.conditional_expression import ConditionalExpression class HasConditional(ExpressionVisitor): + def __init__(self, expression: Expression) -> None: + self._result: bool = False + super().__init__(expression) + def result(self) -> bool: - # == True, to convert None to false - return self._result is True + return self._result def _post_conditional_expression(self, expression: ConditionalExpression) -> None: - # if self._result is True: - # raise('Slither does not support nested ternary operator') self._result = True diff --git a/slither/visitors/expression/read_var.py b/slither/visitors/expression/read_var.py index e8f5aae67..a0efdde61 100644 --- a/slither/visitors/expression/read_var.py +++ b/slither/visitors/expression/read_var.py @@ -1,5 +1,6 @@ -from typing import Any, List, Union +from typing import Any, List, Union, Optional +from slither.core.expressions import NewElementaryType from slither.visitors.expression.expression import ExpressionVisitor from slither.core.expressions.assignment_operation import ( @@ -40,7 +41,11 @@ def set_val(expression: Expression, val: List[Union[Identifier, IndexAccess, Any class ReadVar(ExpressionVisitor): - def result(self) -> List[Union[Identifier, IndexAccess, Any]]: + def __init__(self, expression: Expression) -> None: + self._result: Optional[List[Expression]] = None + super().__init__(expression) + + def result(self) -> List[Expression]: if self._result is None: self._result = list(set(get(self.expression))) return self._result @@ -69,8 +74,8 @@ class ReadVar(ExpressionVisitor): def _post_call_expression(self, expression: CallExpression) -> None: called = get(expression.called) - args = [get(a) for a in expression.arguments if a] - args = [item for sublist in args for item in sublist] + argss = [get(a) for a in expression.arguments if a] + args = [item for sublist in argss for item in sublist] val = called + args set_val(expression, val) @@ -91,6 +96,7 @@ class ReadVar(ExpressionVisitor): if isinstance(expression.value, Variable): set_val(expression, [expression]) elif isinstance(expression.value, SolidityVariable): + # TODO: investigate if this branch can be reached, and if Identifier.value has the correct type set_val(expression, [expression]) else: set_val(expression, []) @@ -115,7 +121,7 @@ class ReadVar(ExpressionVisitor): def _post_new_contract(self, expression: NewContract) -> None: set_val(expression, []) - def _post_new_elementary_type(self, expression): + def _post_new_elementary_type(self, expression: NewElementaryType) -> None: set_val(expression, []) def _post_tuple_expression(self, expression: TupleExpression) -> None: diff --git a/slither/visitors/expression/write_var.py b/slither/visitors/expression/write_var.py index 97d3858e7..1c0b6108f 100644 --- a/slither/visitors/expression/write_var.py +++ b/slither/visitors/expression/write_var.py @@ -1,4 +1,6 @@ -from typing import Any, List +from typing import Any, List, Optional + +from slither.core.expressions import NewElementaryType from slither.visitors.expression.expression import ExpressionVisitor from slither.core.expressions.assignment_operation import AssignmentOperation from slither.core.expressions.binary_operation import BinaryOperation @@ -32,6 +34,10 @@ def set_val(expression: Expression, val: List[Any]) -> None: class WriteVar(ExpressionVisitor): + def __init__(self, expression: Expression) -> None: + self._result: Optional[List[Expression]] = None + super().__init__(expression) + def result(self) -> List[Any]: if self._result is None: self._result = list(set(get(self.expression))) @@ -123,7 +129,7 @@ class WriteVar(ExpressionVisitor): def _post_new_contract(self, expression: NewContract) -> None: set_val(expression, []) - def _post_new_elementary_type(self, expression): + def _post_new_elementary_type(self, expression: NewElementaryType) -> None: set_val(expression, []) def _post_tuple_expression(self, expression: TupleExpression) -> None: From 060f550b0d55357c6b0e747b82115981a0ac9713 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Mon, 20 Feb 2023 17:34:46 +0100 Subject: [PATCH 010/193] Fix more types --- slither/core/expressions/identifier.py | 62 ++++++++++- slither/core/expressions/index_access.py | 15 +-- slither/core/expressions/literal.py | 4 +- slither/core/solidity_types/array_type.py | 8 +- slither/slithir/convert.py | 4 +- slither/slithir/operations/binary.py | 6 +- slither/slithir/operations/index.py | 14 +-- slither/slithir/operations/type_conversion.py | 25 ++--- slither/slithir/utils/ssa.py | 3 +- .../expressions/expression_parsing.py | 9 +- .../visitors/expression/constants_folding.py | 85 ++++++++++++--- .../visitors/slithir/expression_to_slithir.py | 101 +++++++++++------- 12 files changed, 223 insertions(+), 113 deletions(-) diff --git a/slither/core/expressions/identifier.py b/slither/core/expressions/identifier.py index 58a1174af..8ffabad89 100644 --- a/slither/core/expressions/identifier.py +++ b/slither/core/expressions/identifier.py @@ -1,16 +1,58 @@ -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Optional, Union +from slither.core.declarations.contract_level import ContractLevel +from slither.core.declarations.top_level import TopLevel from slither.core.expressions.expression import Expression +from slither.core.variables.variable import Variable + if TYPE_CHECKING: - from slither.core.variables.variable import Variable from slither.core.solidity_types.type import Type + from slither.core.declarations import Contract, SolidityVariable, SolidityFunction + from slither.solc_parsing.yul.evm_functions import YulBuiltin class Identifier(Expression): - def __init__(self, value) -> None: + def __init__( + self, + value: Union[ + Variable, + "TopLevel", + "ContractLevel", + "Contract", + "SolidityVariable", + "SolidityFunction", + "YulBuiltin", + ], + ) -> None: super().__init__() - self._value: "Variable" = value + + # pylint: disable=import-outside-toplevel + from slither.core.declarations import Contract, SolidityVariable, SolidityFunction + from slither.solc_parsing.yul.evm_functions import YulBuiltin + + assert isinstance( + value, + ( + Variable, + TopLevel, + ContractLevel, + Contract, + SolidityVariable, + SolidityFunction, + YulBuiltin, + ), + ) + + self._value: Union[ + Variable, + "TopLevel", + "ContractLevel", + "Contract", + "SolidityVariable", + "SolidityFunction", + "YulBuiltin", + ] = value self._type: Optional["Type"] = None @property @@ -22,7 +64,17 @@ class Identifier(Expression): self._type = new_type @property - def value(self) -> "Variable": + def value( + self, + ) -> Union[ + Variable, + "TopLevel", + "ContractLevel", + "Contract", + "SolidityVariable", + "SolidityFunction", + "YulBuiltin", + ]: return self._value def __str__(self) -> str: diff --git a/slither/core/expressions/index_access.py b/slither/core/expressions/index_access.py index f8e630a6e..22f014242 100644 --- a/slither/core/expressions/index_access.py +++ b/slither/core/expressions/index_access.py @@ -1,11 +1,8 @@ -from typing import Union, List, TYPE_CHECKING +from typing import Union, List +from slither.core.expressions.expression import Expression from slither.core.expressions.identifier import Identifier from slither.core.expressions.literal import Literal -from slither.core.expressions.expression import Expression - -if TYPE_CHECKING: - from slither.core.solidity_types.type import Type class IndexAccess(Expression): @@ -13,13 +10,9 @@ class IndexAccess(Expression): self, left_expression: Union["IndexAccess", Identifier], right_expression: Union[Literal, Identifier], - index_type: str, ) -> None: super().__init__() self._expressions = [left_expression, right_expression] - # TODO type of undexAccess is not always a Type - # assert isinstance(index_type, Type) - self._type: "Type" = index_type @property def expressions(self) -> List["Expression"]: @@ -33,9 +26,5 @@ class IndexAccess(Expression): def expression_right(self) -> "Expression": return self._expressions[1] - @property - def type(self) -> "Type": - return self._type - def __str__(self) -> str: return str(self.expression_left) + "[" + str(self.expression_right) + "]" diff --git a/slither/core/expressions/literal.py b/slither/core/expressions/literal.py index 5dace3c41..8848ce966 100644 --- a/slither/core/expressions/literal.py +++ b/slither/core/expressions/literal.py @@ -1,4 +1,4 @@ -from typing import Optional, Union, TYPE_CHECKING +from typing import Optional, Union, TYPE_CHECKING, Any from slither.core.expressions.expression import Expression from slither.core.solidity_types.elementary_type import Fixed, Int, Ufixed, Uint @@ -47,7 +47,7 @@ class Literal(Expression): # be sure to handle any character return str(self._value) - def __eq__(self, other) -> bool: + def __eq__(self, other: Any) -> bool: if not isinstance(other, Literal): return False return (self.value, self.subdenomination) == (other.value, other.subdenomination) diff --git a/slither/core/solidity_types/array_type.py b/slither/core/solidity_types/array_type.py index 85c2d6ba7..9dfd3cf17 100644 --- a/slither/core/solidity_types/array_type.py +++ b/slither/core/solidity_types/array_type.py @@ -1,22 +1,20 @@ from typing import Union, Optional, Tuple, Any, TYPE_CHECKING from slither.core.expressions.expression import Expression -from slither.core.solidity_types.type import Type -from slither.visitors.expression.constants_folding import ConstantFolding from slither.core.expressions.literal import Literal from slither.core.solidity_types.elementary_type import ElementaryType +from slither.core.solidity_types.type import Type +from slither.visitors.expression.constants_folding import ConstantFolding if TYPE_CHECKING: from slither.core.expressions.binary_operation import BinaryOperation from slither.core.expressions.identifier import Identifier - from slither.core.solidity_types.function_type import FunctionType - from slither.core.solidity_types.type_alias import TypeAliasTopLevel class ArrayType(Type): def __init__( self, - t: Union["TypeAliasTopLevel", "ArrayType", "FunctionType", "ElementaryType"], + t: Type, length: Optional[Union["Identifier", Literal, "BinaryOperation", int]], ) -> None: assert isinstance(t, Type) diff --git a/slither/slithir/convert.py b/slither/slithir/convert.py index aa8dfb4ec..cc47ea913 100644 --- a/slither/slithir/convert.py +++ b/slither/slithir/convert.py @@ -1299,7 +1299,7 @@ def convert_to_push_set_val( element_to_add = ReferenceVariable(node) element_to_add.set_type(new_type) - ir_assign_element_to_add = Index(element_to_add, arr, length_val, ElementaryType("uint256")) + ir_assign_element_to_add = Index(element_to_add, arr, length_val) ir_assign_element_to_add.set_expression(ir.expression) ir_assign_element_to_add.set_node(ir.node) ret.append(ir_assign_element_to_add) @@ -1383,7 +1383,7 @@ def convert_to_pop(ir, node): ret.append(ir_sub_1) element_to_delete = ReferenceVariable(node) - ir_assign_element_to_delete = Index(element_to_delete, arr, val, ElementaryType("uint256")) + ir_assign_element_to_delete = Index(element_to_delete, arr, val) ir_length.lvalue.points_to = arr element_to_delete.set_type(ElementaryType("uint256")) ir_assign_element_to_delete.set_expression(ir.expression) diff --git a/slither/slithir/operations/binary.py b/slither/slithir/operations/binary.py index 42f05011d..d1355a965 100644 --- a/slither/slithir/operations/binary.py +++ b/slither/slithir/operations/binary.py @@ -105,7 +105,7 @@ class Binary(OperationWithLValue): def __init__( self, result: Variable, - left_variable: Union[LVALUE, Function], + left_variable: Union[RVALUE, Function], right_variable: Union[RVALUE, Function], operation_type: BinaryType, ) -> None: @@ -127,11 +127,11 @@ class Binary(OperationWithLValue): return [self.variable_left, self.variable_right] @property - def get_variable(self) -> List[Union[RVALUE, LVALUE, Function]]: + def get_variable(self) -> List[Union[RVALUE, Function]]: return self._variables @property - def variable_left(self) -> Union[LVALUE, Function]: + def variable_left(self) -> Union[RVALUE, Function]: return self._variables[0] # type: ignore @property diff --git a/slither/slithir/operations/index.py b/slither/slithir/operations/index.py index 77daa9462..f38a25927 100644 --- a/slither/slithir/operations/index.py +++ b/slither/slithir/operations/index.py @@ -1,7 +1,6 @@ from typing import List, Union from slither.core.declarations import SolidityVariableComposed -from slither.core.solidity_types.elementary_type import ElementaryType from slither.core.source_mapping.source_mapping import SourceMapping from slither.core.variables.variable import Variable from slither.slithir.operations.lvalue import OperationWithLValue @@ -11,11 +10,7 @@ from slither.slithir.variables.reference import ReferenceVariable class Index(OperationWithLValue): def __init__( - self, - result: ReferenceVariable, - left_variable: Variable, - right_variable: RVALUE, - index_type: Union[ElementaryType, str], + self, result: ReferenceVariable, left_variable: Variable, right_variable: RVALUE ) -> None: super().__init__() assert is_valid_lvalue(left_variable) or left_variable == SolidityVariableComposed( @@ -24,7 +19,6 @@ class Index(OperationWithLValue): assert is_valid_rvalue(right_variable) assert isinstance(result, ReferenceVariable) self._variables = [left_variable, right_variable] - self._type = index_type self._lvalue: ReferenceVariable = result @property @@ -43,9 +37,5 @@ class Index(OperationWithLValue): def variable_right(self) -> RVALUE: return self._variables[1] # type: ignore - @property - def index_type(self) -> Union[ElementaryType, str]: - return self._type - - def __str__(self): + def __str__(self) -> str: return f"{self.lvalue}({self.lvalue.type}) -> {self.variable_left}[{self.variable_right}]" diff --git a/slither/slithir/operations/type_conversion.py b/slither/slithir/operations/type_conversion.py index f351f1fdd..e9998bc65 100644 --- a/slither/slithir/operations/type_conversion.py +++ b/slither/slithir/operations/type_conversion.py @@ -1,13 +1,12 @@ from typing import List, Union + from slither.core.declarations import Contract -from slither.core.solidity_types.type import Type -from slither.slithir.operations.lvalue import OperationWithLValue -from slither.slithir.utils.utils import is_valid_lvalue, is_valid_rvalue -import slither.core.declarations.contract from slither.core.solidity_types.elementary_type import ElementaryType -from slither.core.solidity_types.type_alias import TypeAliasContract, TypeAliasTopLevel +from slither.core.solidity_types.type_alias import TypeAlias from slither.core.solidity_types.user_defined_type import UserDefinedType from slither.core.source_mapping.source_mapping import SourceMapping +from slither.slithir.operations.lvalue import OperationWithLValue +from slither.slithir.utils.utils import is_valid_lvalue, is_valid_rvalue from slither.slithir.variables.temporary import TemporaryVariable from slither.slithir.variables.temporary_ssa import TemporaryVariableSSA @@ -17,15 +16,15 @@ class TypeConversion(OperationWithLValue): self, result: Union[TemporaryVariableSSA, TemporaryVariable], variable: SourceMapping, - variable_type: Union[TypeAliasContract, UserDefinedType, ElementaryType, TypeAliasTopLevel], + variable_type: Union[TypeAlias, UserDefinedType, ElementaryType], ) -> None: super().__init__() assert is_valid_rvalue(variable) or isinstance(variable, Contract) assert is_valid_lvalue(result) - assert isinstance(variable_type, Type) + assert isinstance(variable_type, (TypeAlias, UserDefinedType, ElementaryType)) self._variable = variable - self._type = variable_type + self._type: Union[TypeAlias, UserDefinedType, ElementaryType] = variable_type self._lvalue = result @property @@ -35,18 +34,12 @@ class TypeConversion(OperationWithLValue): @property def type( self, - ) -> Union[ - TypeAliasContract, - TypeAliasTopLevel, - slither.core.declarations.contract.Contract, - UserDefinedType, - ElementaryType, - ]: + ) -> Union[TypeAlias, UserDefinedType, ElementaryType,]: return self._type @property def read(self) -> List[SourceMapping]: return [self.variable] - def __str__(self): + def __str__(self) -> str: return str(self.lvalue) + f" = CONVERT {self.variable} to {self.type}" diff --git a/slither/slithir/utils/ssa.py b/slither/slithir/utils/ssa.py index 156914b61..8b16cd516 100644 --- a/slither/slithir/utils/ssa.py +++ b/slither/slithir/utils/ssa.py @@ -751,8 +751,7 @@ def copy_ir(ir: Operation, *instances) -> Operation: lvalue = get_variable(ir, lambda x: x.lvalue, *instances) variable_left = get_variable(ir, lambda x: x.variable_left, *instances) variable_right = get_variable(ir, lambda x: x.variable_right, *instances) - index_type = ir.index_type - return Index(lvalue, variable_left, variable_right, index_type) + return Index(lvalue, variable_left, variable_right) if isinstance(ir, InitArray): lvalue = get_variable(ir, lambda x: x.lvalue, *instances) init_values = get_rec_values(ir, lambda x: x.init_values, *instances) diff --git a/slither/solc_parsing/expressions/expression_parsing.py b/slither/solc_parsing/expressions/expression_parsing.py index ea433a921..d0dc4c7e0 100644 --- a/slither/solc_parsing/expressions/expression_parsing.py +++ b/slither/solc_parsing/expressions/expression_parsing.py @@ -481,11 +481,14 @@ def parse_expression(expression: Dict, caller_context: CallerContextExpression) if name == "IndexAccess": if is_compact_ast: - index_type = expression["typeDescriptions"]["typeString"] + # We dont use the index type here, as we recover it later + # We could change the paradigm with the current AST parsing + # And do the type parsing in advanced for most of the operation + # index_type = expression["typeDescriptions"]["typeString"] left = expression["baseExpression"] right = expression.get("indexExpression", None) else: - index_type = expression["attributes"]["type"] + # index_type = expression["attributes"]["type"] children = expression["children"] left = children[0] right = children[1] if len(children) > 1 else None @@ -502,7 +505,7 @@ def parse_expression(expression: Dict, caller_context: CallerContextExpression) left_expression = parse_expression(left, caller_context) right_expression = parse_expression(right, caller_context) - index = IndexAccess(left_expression, right_expression, index_type) + index = IndexAccess(left_expression, right_expression) index.set_offset(src, caller_context.compilation_unit) return index diff --git a/slither/visitors/expression/constants_folding.py b/slither/visitors/expression/constants_folding.py index 158306f39..7b1a8f8ee 100644 --- a/slither/visitors/expression/constants_folding.py +++ b/slither/visitors/expression/constants_folding.py @@ -12,6 +12,7 @@ from slither.core.expressions import ( TupleExpression, TypeConversion, ) +from slither.core.variables import Variable from slither.utils.integer_conversion import convert_string_to_fraction, convert_string_to_int from slither.visitors.expression.expression import ExpressionVisitor @@ -65,6 +66,8 @@ class ConstantFolding(ExpressionVisitor): return Literal(value, self._type) def _post_identifier(self, expression: Identifier) -> None: + if not isinstance(expression.value, Variable): + return if not expression.value.is_constant: raise NotConstant expr = expression.value.expression @@ -80,19 +83,58 @@ class ConstantFolding(ExpressionVisitor): # pylint: disable=too-many-branches def _post_binary_operation(self, expression: BinaryOperation) -> None: - left = get_val(expression.expression_left) - right = get_val(expression.expression_right) - if expression.type == BinaryOperationType.POWER: - set_val(expression, left**right) - elif expression.type == BinaryOperationType.MULTIPLICATION: + expression_left = expression.expression_left + expression_right = expression.expression_right + if not isinstance( + expression_left, + (Literal, BinaryOperation, UnaryOperation, Identifier, TupleExpression, TypeConversion), + ): + raise NotConstant + if not isinstance( + expression_right, + (Literal, BinaryOperation, UnaryOperation, Identifier, TupleExpression, TypeConversion), + ): + raise NotConstant + + left = get_val(expression_left) + right = get_val(expression_right) + + if ( + expression.type == BinaryOperationType.POWER + and isinstance(left, (int, Fraction)) + and isinstance(right, (int, Fraction)) + ): + set_val(expression, left**right) #type: ignore + elif ( + expression.type == BinaryOperationType.MULTIPLICATION + and isinstance(left, (int, Fraction)) + and isinstance(right, (int, Fraction)) + ): set_val(expression, left * right) - elif expression.type == BinaryOperationType.DIVISION: - set_val(expression, left / right) - elif expression.type == BinaryOperationType.MODULO: + elif ( + expression.type == BinaryOperationType.DIVISION + and isinstance(left, (int, Fraction)) + and isinstance(right, (int, Fraction)) + ): + # TODO: maybe check for right + left to be int to use // ? + set_val(expression, left // right if isinstance(right, int) else left / right) + elif ( + expression.type == BinaryOperationType.MODULO + and isinstance(left, (int, Fraction)) + and isinstance(right, (int, Fraction)) + ): set_val(expression, left % right) - elif expression.type == BinaryOperationType.ADDITION: + elif ( + expression.type == BinaryOperationType.ADDITION + and isinstance(left, (int, Fraction)) + and isinstance(right, (int, Fraction)) + ): set_val(expression, left + right) - elif expression.type == BinaryOperationType.SUBTRACTION: + elif ( + expression.type == BinaryOperationType.SUBTRACTION + and isinstance(left, (int, Fraction)) + and isinstance(right, (int, Fraction)) + ): set_val(expression, left - right) # Convert to int for operations not supported by Fraction elif expression.type == BinaryOperationType.LEFT_SHIFT: @@ -181,7 +223,20 @@ class ConstantFolding(ExpressionVisitor): def _post_tuple_expression(self, expression: expressions.TupleExpression) -> None: if expression.expressions: if len(expression.expressions) == 1: - cf = ConstantFolding(expression.expressions[0], self._type) + first_expr = expression.expressions[0] + if not isinstance( + first_expr, + ( + Literal, + BinaryOperation, + UnaryOperation, + Identifier, + TupleExpression, + TypeConversion, + ), + ): + raise NotConstant + cf = ConstantFolding(first_expr, self._type) expr = cf.result() assert isinstance(expr, Literal) set_val(expression, convert_string_to_fraction(expr.converted_value)) @@ -189,7 +244,13 @@ class ConstantFolding(ExpressionVisitor): raise NotConstant def _post_type_conversion(self, expression: expressions.TypeConversion) -> None: - cf = ConstantFolding(expression.expression, self._type) + expr = expression.expression + if not isinstance( + expr, + (Literal, BinaryOperation, UnaryOperation, Identifier, TupleExpression, TypeConversion), + ): + raise NotConstant + cf = ConstantFolding(expr, self._type) expr = cf.result() assert isinstance(expr, Literal) set_val(expression, convert_string_to_fraction(expr.converted_value)) diff --git a/slither/visitors/slithir/expression_to_slithir.py b/slither/visitors/slithir/expression_to_slithir.py index c150ee20b..8263a6e33 100644 --- a/slither/visitors/slithir/expression_to_slithir.py +++ b/slither/visitors/slithir/expression_to_slithir.py @@ -1,14 +1,16 @@ import logging -from typing import Union, List, TYPE_CHECKING +from typing import Union, List, TYPE_CHECKING, Any +from slither.core import expressions from slither.core.declarations import ( Function, SolidityVariable, SolidityVariableComposed, SolidityFunction, Contract, + EnumContract, + EnumTopLevel, ) -from slither.core.declarations.enum import Enum from slither.core.expressions import ( AssignmentOperation, AssignmentOperationType, @@ -18,6 +20,8 @@ from slither.core.expressions import ( CallExpression, Identifier, MemberAccess, + ConditionalExpression, + NewElementaryType, ) from slither.core.expressions.binary_operation import BinaryOperation from slither.core.expressions.expression import Expression @@ -27,7 +31,7 @@ from slither.core.expressions.new_array import NewArray from slither.core.expressions.new_contract import NewContract from slither.core.expressions.tuple_expression import TupleExpression from slither.core.expressions.unary_operation import UnaryOperation -from slither.core.solidity_types import ArrayType, ElementaryType, TypeAlias +from slither.core.solidity_types import ArrayType, ElementaryType, TypeAlias, UserDefinedType from slither.core.solidity_types.type import Type from slither.core.variables.local_variable import LocalVariable from slither.core.variables.local_variable_init_from_tuple import LocalVariableInitFromTuple @@ -71,18 +75,14 @@ logger = logging.getLogger("VISTIOR:ExpressionToSlithIR") key = "expressionToSlithIR" -def get(expression: Union[Expression, Operation]): +def get(expression: Expression) -> Any: val = expression.context[key] # we delete the item to reduce memory use del expression.context[key] return val -def get_without_removing(expression): - return expression.context[key] - - -def set_val(expression: Union[Expression, Operation], val) -> None: +def set_val(expression: Expression, val: Any) -> None: expression.context[key] = val @@ -121,7 +121,7 @@ def convert_assignment( left: Union[LocalVariable, StateVariable, ReferenceVariable], right: Union[LocalVariable, StateVariable, ReferenceVariable], t: AssignmentOperationType, - return_type, + return_type: Type, ) -> Union[Binary, Assignment]: if t == AssignmentOperationType.ASSIGN: return Assignment(left, right, return_type) @@ -150,6 +150,7 @@ def convert_assignment( class ExpressionToSlithIR(ExpressionVisitor): + # pylint: disable=super-init-not-called def __init__(self, expression: Expression, node: "Node") -> None: from slither.core.cfg.node import NodeType # pylint: disable=import-outside-toplevel @@ -171,11 +172,16 @@ class ExpressionToSlithIR(ExpressionVisitor): def _post_assignement_operation(self, expression: AssignmentOperation) -> None: left = get(expression.expression_left) right = get(expression.expression_right) + operation: Operation if isinstance(left, list): # tuple expression: if isinstance(right, list): # unbox assigment assert len(left) == len(right) for idx, _ in enumerate(left): - if not left[idx] is None: + if ( + not left[idx] is None + and expression.type + and expression.expression_return_type + ): operation = convert_assignment( left[idx], right[idx], @@ -220,7 +226,7 @@ class ExpressionToSlithIR(ExpressionVisitor): operation.set_expression(expression) self._result.append(operation) set_val(expression, left) - else: + elif expression.type and expression.expression_return_type: operation = convert_assignment( left, right, expression.type, expression.expression_return_type ) @@ -276,6 +282,8 @@ class ExpressionToSlithIR(ExpressionVisitor): called = get(expression_called) args = [get(a) for a in expression.arguments if a] + val: Union[TupleVariable, TemporaryVariable] + var: Operation for arg in args: arg_ = Argument(arg) arg_.set_expression(expression) @@ -284,6 +292,7 @@ class ExpressionToSlithIR(ExpressionVisitor): # internal call # If tuple + if expression.type_call.startswith("tuple(") and expression.type_call != "tuple()": val = TupleVariable(self._node) else: @@ -302,7 +311,7 @@ class ExpressionToSlithIR(ExpressionVisitor): ): # wrap: underlying_type -> alias # unwrap: alias -> underlying_type - dest_type = ( + dest_type: Union[TypeAlias, ElementaryType] = ( called if expression_called.member_name == "wrap" else called.underlying_type ) val = TemporaryVariable(self._node) @@ -315,19 +324,19 @@ class ExpressionToSlithIR(ExpressionVisitor): # yul things elif called.name == "caller()": val = TemporaryVariable(self._node) - var = Assignment(val, SolidityVariableComposed("msg.sender"), "uint256") + var = Assignment(val, SolidityVariableComposed("msg.sender"), ElementaryType("uint256")) self._result.append(var) set_val(expression, val) elif called.name == "origin()": val = TemporaryVariable(self._node) - var = Assignment(val, SolidityVariableComposed("tx.origin"), "uint256") + var = Assignment(val, SolidityVariableComposed("tx.origin"), ElementaryType("uint256")) self._result.append(var) set_val(expression, val) elif called.name == "extcodesize(uint256)": - val = ReferenceVariable(self._node) - var = Member(args[0], Constant("codesize"), val) + val_ref = ReferenceVariable(self._node) + var = Member(args[0], Constant("codesize"), val_ref) self._result.append(var) - set_val(expression, val) + set_val(expression, val_ref) elif called.name == "selfbalance()": val = TemporaryVariable(self._node) var = TypeConversion(val, SolidityVariable("this"), ElementaryType("address")) @@ -346,7 +355,7 @@ class ExpressionToSlithIR(ExpressionVisitor): set_val(expression, val) elif called.name == "callvalue()": val = TemporaryVariable(self._node) - var = Assignment(val, SolidityVariableComposed("msg.value"), "uint256") + var = Assignment(val, SolidityVariableComposed("msg.value"), ElementaryType("uint256")) self._result.append(var) set_val(expression, val) @@ -373,7 +382,7 @@ class ExpressionToSlithIR(ExpressionVisitor): self._result.append(message_call) set_val(expression, val) - def _post_conditional_expression(self, expression): + def _post_conditional_expression(self, expression: ConditionalExpression) -> None: raise Exception(f"Ternary operator are not convertible to SlithIR {expression}") def _post_elementary_type_name_expression( @@ -388,12 +397,13 @@ class ExpressionToSlithIR(ExpressionVisitor): def _post_index_access(self, expression: IndexAccess) -> None: left = get(expression.expression_left) right = get(expression.expression_right) + operation: Operation # Left can be a type for abi.decode(var, uint[2]) if isinstance(left, Type): # 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) - t = ArrayType(left, right.value) + t = ArrayType(left, int(right.value)) set_val(expression, t) return val = ReferenceVariable(self._node) @@ -406,13 +416,15 @@ class ExpressionToSlithIR(ExpressionVisitor): operation = InitArray(init_array_right, init_array_val) operation.set_expression(expression) self._result.append(operation) - operation = Index(val, left, right, expression.type) + operation = Index(val, left, right) operation.set_expression(expression) self._result.append(operation) set_val(expression, val) def _post_literal(self, expression: Literal) -> None: - cst = Constant(expression.value, expression.type, expression.subdenomination) + expression_type = expression.type + assert isinstance(expression_type, ElementaryType) + cst = Constant(expression.value, expression_type, expression.subdenomination) set_val(expression, cst) def _post_member_access(self, expression: MemberAccess) -> None: @@ -430,25 +442,33 @@ class ExpressionToSlithIR(ExpressionVisitor): assert len(expression.expression.arguments) == 1 val = TemporaryVariable(self._node) type_expression_found = expression.expression.arguments[0] + type_found: Union[ElementaryType, UserDefinedType] if isinstance(type_expression_found, ElementaryTypeNameExpression): - type_found = type_expression_found.type + type_expression_found_type = type_expression_found.type + assert isinstance(type_expression_found_type, ElementaryType) + type_found = type_expression_found_type + min_value = type_found.min + max_value = type_found.max constant_type = type_found else: # type(enum).max/min assert isinstance(type_expression_found, Identifier) - type_found = type_expression_found.value - assert isinstance(type_found, Enum) + type_found_in_expression = type_expression_found.value + assert isinstance(type_found_in_expression, (EnumContract, EnumTopLevel)) + type_found = UserDefinedType(type_found_in_expression) constant_type = None + min_value = type_found_in_expression.min + max_value = type_found_in_expression.max if expression.member_name == "min": op = Assignment( val, - Constant(str(type_found.min), constant_type), + Constant(str(min_value), constant_type), type_found, ) else: op = Assignment( val, - Constant(str(type_found.max), constant_type), + Constant(str(max_value), constant_type), type_found, ) self._result.append(op) @@ -494,11 +514,11 @@ class ExpressionToSlithIR(ExpressionVisitor): set_val(expression, expr.custom_errors_as_dict[expression.member_name]) return - val = ReferenceVariable(self._node) - member = Member(expr, Constant(expression.member_name), val) + val_ref = ReferenceVariable(self._node) + member = Member(expr, Constant(expression.member_name), val_ref) member.set_expression(expression) self._result.append(member) - set_val(expression, val) + set_val(expression, val_ref) def _post_new_array(self, expression: NewArray) -> None: val = TemporaryVariable(self._node) @@ -521,7 +541,7 @@ class ExpressionToSlithIR(ExpressionVisitor): self._result.append(operation) set_val(expression, val) - def _post_new_elementary_type(self, expression): + def _post_new_elementary_type(self, expression: NewElementaryType) -> None: # TODO unclear if this is ever used? val = TemporaryVariable(self._node) operation = TmpNewElementaryType(expression.type, val) @@ -530,17 +550,20 @@ class ExpressionToSlithIR(ExpressionVisitor): set_val(expression, val) def _post_tuple_expression(self, expression: TupleExpression) -> None: - expressions = [get(e) if e else None for e in expression.expressions] - if len(expressions) == 1: - val = expressions[0] + all_expressions = [get(e) if e else None for e in expression.expressions] + if len(all_expressions) == 1: + val = all_expressions[0] else: - val = expressions + val = all_expressions set_val(expression, val) - def _post_type_conversion(self, expression: TypeConversion) -> None: + def _post_type_conversion(self, expression: expressions.TypeConversion) -> None: + assert expression.expression expr = get(expression.expression) val = TemporaryVariable(self._node) - operation = TypeConversion(val, expr, expression.type) + expression_type = expression.type + assert isinstance(expression_type, (TypeAlias, UserDefinedType, ElementaryType)) + operation = TypeConversion(val, expr, expression_type) val.set_type(expression.type) operation.set_expression(expression) self._result.append(operation) @@ -549,6 +572,7 @@ class ExpressionToSlithIR(ExpressionVisitor): # pylint: disable=too-many-statements def _post_unary_operation(self, expression: UnaryOperation) -> None: value = get(expression.expression) + operation: Operation if expression.type in [UnaryOperationType.BANG, UnaryOperationType.TILD]: lvalue = TemporaryVariable(self._node) operation = Unary(lvalue, value, expression.type) @@ -592,6 +616,7 @@ class ExpressionToSlithIR(ExpressionVisitor): 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 bd2d572f48a751aeb4bfbbf3a9fed355861ccd7f Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Mon, 20 Feb 2023 19:05:56 +0100 Subject: [PATCH 011/193] More types --- examples/scripts/data_dependency.py | 6 ++ examples/scripts/variable_in_condition.py | 1 + slither/__main__.py | 4 +- .../data_dependency/data_dependency.py | 28 +++--- slither/core/declarations/contract.py | 27 +++--- slither/core/declarations/custom_error.py | 6 +- .../core/declarations/using_for_top_level.py | 3 +- slither/core/variables/variable.py | 5 +- .../statements/costly_operations_in_loop.py | 2 +- .../detectors/statements/write_after_write.py | 2 + slither/printers/call/call_graph.py | 3 +- slither/printers/summary/constructor_calls.py | 3 +- slither/printers/summary/contract.py | 19 ++-- slither/printers/summary/variable_order.py | 3 +- slither/slithir/utils/ssa.py | 2 +- slither/slithir/utils/utils.py | 2 +- slither/slithir/variables/local_variable.py | 4 +- slither/slithir/variables/state_variable.py | 4 +- slither/slithir/variables/variable.py | 5 +- slither/solc_parsing/declarations/contract.py | 78 ++++++++------- slither/solc_parsing/declarations/function.py | 10 +- .../variables/variable_declaration.py | 16 ++-- slither/tools/doctor/checks/versions.py | 5 +- slither/tools/read_storage/utils/utils.py | 5 +- .../checks/variable_initialization.py | 8 +- .../upgradeability/checks/variables_order.py | 38 +++++--- .../visitors/expression/constants_folding.py | 2 +- tests/test_ssa_generation.py | 95 +++++++++++-------- 28 files changed, 223 insertions(+), 163 deletions(-) diff --git a/examples/scripts/data_dependency.py b/examples/scripts/data_dependency.py index 478394766..23c82cae1 100644 --- a/examples/scripts/data_dependency.py +++ b/examples/scripts/data_dependency.py @@ -18,6 +18,8 @@ assert len(contracts) == 1 contract = contracts[0] destination = contract.get_state_variable_from_name("destination") source = contract.get_state_variable_from_name("source") +assert source +assert destination print(f"{source} is dependent of {destination}: {is_dependent(source, destination, contract)}") assert not is_dependent(source, destination, contract) @@ -47,9 +49,11 @@ print(f"{destination} is tainted {is_tainted(destination, contract)}") assert is_tainted(destination, contract) destination_indirect_1 = contract.get_state_variable_from_name("destination_indirect_1") +assert destination_indirect_1 print(f"{destination_indirect_1} is tainted {is_tainted(destination_indirect_1, contract)}") assert is_tainted(destination_indirect_1, contract) destination_indirect_2 = contract.get_state_variable_from_name("destination_indirect_2") +assert destination_indirect_2 print(f"{destination_indirect_2} is tainted {is_tainted(destination_indirect_2, contract)}") assert is_tainted(destination_indirect_2, contract) @@ -88,6 +92,8 @@ contract = contracts[0] contract_derived = slither.get_contract_from_name("Derived")[0] destination = contract.get_state_variable_from_name("destination") source = contract.get_state_variable_from_name("source") +assert destination +assert source print(f"{destination} is dependent of {source}: {is_dependent(destination, source, contract)}") assert not is_dependent(destination, source, contract) diff --git a/examples/scripts/variable_in_condition.py b/examples/scripts/variable_in_condition.py index 43dcf41e7..bde41424d 100644 --- a/examples/scripts/variable_in_condition.py +++ b/examples/scripts/variable_in_condition.py @@ -14,6 +14,7 @@ assert len(contracts) == 1 contract = contracts[0] # Get the variable var_a = contract.get_state_variable_from_name("a") +assert var_a # Get the functions reading the variable functions_reading_a = contract.get_functions_reading_from_variable(var_a) diff --git a/slither/__main__.py b/slither/__main__.py index a5d51dcd6..d6c3ea717 100644 --- a/slither/__main__.py +++ b/slither/__main__.py @@ -615,7 +615,9 @@ def parse_args( class ListDetectors(argparse.Action): # pylint: disable=too-few-public-methods - def __call__(self, parser, *args, **kwargs): # pylint: disable=signature-differs + def __call__( + self, parser: Any, *args: Any, **kwargs: Any + ) -> None: # pylint: disable=signature-differs detectors, _ = get_detectors_and_printers() output_detectors(detectors) parser.exit() diff --git a/slither/analyses/data_dependency/data_dependency.py b/slither/analyses/data_dependency/data_dependency.py index 2b66f2bb3..d133cd2dc 100644 --- a/slither/analyses/data_dependency/data_dependency.py +++ b/slither/analyses/data_dependency/data_dependency.py @@ -2,7 +2,7 @@ Compute the data depenency between all the SSA variables """ from collections import defaultdict -from typing import Union, Set, Dict, TYPE_CHECKING +from typing import Union, Set, Dict, TYPE_CHECKING, List from slither.core.cfg.node import Node from slither.core.declarations import ( @@ -20,6 +20,7 @@ from slither.core.solidity_types.type import Type from slither.core.variables.top_level_variable import TopLevelVariable from slither.core.variables.variable import Variable from slither.slithir.operations import Index, OperationWithLValue, InternalCall, Operation +from slither.slithir.utils.utils import LVALUE from slither.slithir.variables import ( Constant, LocalIRVariable, @@ -29,6 +30,7 @@ from slither.slithir.variables import ( TemporaryVariableSSA, TupleVariableSSA, ) +from slither.slithir.variables.variable import SlithIRVariable if TYPE_CHECKING: from slither.core.compilation_unit import SlitherCompilationUnit @@ -393,13 +395,9 @@ def transitive_close_dependencies( while changed: changed = False to_add = defaultdict(set) - [ # pylint: disable=expression-not-assigned - [ + for key, items in context.context[context_key].items(): + for item in items & keys: to_add[key].update(context.context[context_key][item] - {key} - items) - for item in items & keys - ] - for key, items in context.context[context_key].items() - ] for k, v in to_add.items(): # Because we dont have any check on the update operation # We might update an empty set with an empty set @@ -418,20 +416,20 @@ def add_dependency(lvalue: Variable, function: Function, ir: Operation, is_prote function.context[KEY_SSA][lvalue] = set() if not is_protected: function.context[KEY_SSA_UNPROTECTED][lvalue] = set() + read: Union[List[Union[LVALUE, SolidityVariableComposed]], List[SlithIRVariable]] if isinstance(ir, Index): read = [ir.variable_left] - elif isinstance(ir, InternalCall): + elif isinstance(ir, InternalCall) and ir.function: read = ir.function.return_values_ssa else: read = ir.read - # pylint: disable=expression-not-assigned - [function.context[KEY_SSA][lvalue].add(v) for v in read if not isinstance(v, Constant)] + for v in read: + if not isinstance(v, Constant): + function.context[KEY_SSA][lvalue].add(v) if not is_protected: - [ - function.context[KEY_SSA_UNPROTECTED][lvalue].add(v) - for v in read - if not isinstance(v, Constant) - ] + for v in read: + if not isinstance(v, Constant): + function.context[KEY_SSA_UNPROTECTED][lvalue].add(v) def compute_dependency_function(function: Function) -> None: diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index 38b4221d9..2c82f9b58 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -49,6 +49,9 @@ if TYPE_CHECKING: LOGGER = logging.getLogger("Contract") +USING_FOR_KEY = Union[str, Type] +USING_FOR_ITEM = List[Union[Type, Function]] + class Contract(SourceMapping): # pylint: disable=too-many-public-methods """ @@ -80,8 +83,8 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods self._custom_errors: Dict[str, "CustomErrorContract"] = {} # The only str is "*" - self._using_for: Dict[Union[str, Type], List[Type]] = {} - self._using_for_complete: Optional[Dict[Union[str, Type], List[Type]]] = None + self._using_for: Dict[USING_FOR_KEY, USING_FOR_ITEM] = {} + self._using_for_complete: Optional[Dict[USING_FOR_KEY, USING_FOR_ITEM]] = None self._kind: Optional[str] = None self._is_interface: bool = False self._is_library: bool = False @@ -123,7 +126,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods return self._name @name.setter - def name(self, name: str): + def name(self, name: str) -> None: self._name = name @property @@ -133,7 +136,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods return self._id @id.setter - def id(self, new_id): + def id(self, new_id: int) -> None: """Unique id.""" self._id = new_id @@ -146,7 +149,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods return self._kind @contract_kind.setter - def contract_kind(self, kind): + def contract_kind(self, kind: str) -> None: self._kind = kind @property @@ -154,7 +157,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods return self._is_interface @is_interface.setter - def is_interface(self, is_interface: bool): + def is_interface(self, is_interface: bool) -> None: self._is_interface = is_interface @property @@ -162,7 +165,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods return self._is_library @is_library.setter - def is_library(self, is_library: bool): + def is_library(self, is_library: bool) -> None: self._is_library = is_library # endregion @@ -266,16 +269,18 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods ################################################################################### @property - def using_for(self) -> Dict[Union[str, Type], List[Type]]: + def using_for(self) -> Dict[USING_FOR_KEY, USING_FOR_ITEM]: return self._using_for @property - def using_for_complete(self) -> Dict[Union[str, Type], List[Type]]: + def using_for_complete(self) -> Dict[USING_FOR_KEY, USING_FOR_ITEM]: """ Dict[Union[str, Type], List[Type]]: Dict of merged local using for directive with top level directive """ - def _merge_using_for(uf1: Dict, uf2: Dict) -> Dict: + def _merge_using_for( + uf1: Dict[USING_FOR_KEY, USING_FOR_ITEM], uf2: Dict[USING_FOR_KEY, USING_FOR_ITEM] + ) -> Dict[USING_FOR_KEY, USING_FOR_ITEM]: result = {**uf1, **uf2} for key, value in result.items(): if key in uf1 and key in uf2: @@ -1452,7 +1457,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods result = func.get_last_ssa_state_variables_instances() for variable_name, instances in result.items(): # TODO: investigate the next operation - last_state_variables_instances[variable_name] += instances + last_state_variables_instances[variable_name] += list(instances) for func in self.functions + list(self.modifiers): func.fix_phi(last_state_variables_instances, initial_state_variables_instances) diff --git a/slither/core/declarations/custom_error.py b/slither/core/declarations/custom_error.py index c566fccec..7e78748c6 100644 --- a/slither/core/declarations/custom_error.py +++ b/slither/core/declarations/custom_error.py @@ -1,4 +1,4 @@ -from typing import List, TYPE_CHECKING, Optional, Type, Union +from typing import List, TYPE_CHECKING, Optional, Type from slither.core.solidity_types import UserDefinedType from slither.core.source_mapping.source_mapping import SourceMapping @@ -42,7 +42,7 @@ class CustomError(SourceMapping): ################################################################################### @staticmethod - def _convert_type_for_solidity_signature(t: Optional[Union[Type, List[Type]]]) -> str: + def _convert_type_for_solidity_signature(t: Optional[Type]) -> str: # pylint: disable=import-outside-toplevel from slither.core.declarations import Contract @@ -72,7 +72,7 @@ class CustomError(SourceMapping): Returns: """ - parameters = [x.type for x in self.parameters] + parameters = [x.type for x in self.parameters if x.type] self._full_name = self.name + "(" + ",".join(map(str, parameters)) + ")" solidity_parameters = map(self._convert_type_for_solidity_signature, parameters) self._solidity_signature = self.name + "(" + ",".join(solidity_parameters) + ")" diff --git a/slither/core/declarations/using_for_top_level.py b/slither/core/declarations/using_for_top_level.py index 27d1f90e4..edf846a5b 100644 --- a/slither/core/declarations/using_for_top_level.py +++ b/slither/core/declarations/using_for_top_level.py @@ -1,5 +1,6 @@ from typing import TYPE_CHECKING, List, Dict, Union +from slither.core.declarations.contract import USING_FOR_KEY, USING_FOR_ITEM from slither.core.solidity_types.type import Type from slither.core.declarations.top_level import TopLevel @@ -14,5 +15,5 @@ class UsingForTopLevel(TopLevel): self.file_scope: "FileScope" = scope @property - def using_for(self) -> Dict[Union[str, Type], List[Type]]: + def using_for(self) -> Dict[USING_FOR_KEY, USING_FOR_ITEM]: return self._using_for diff --git a/slither/core/variables/variable.py b/slither/core/variables/variable.py index 0d610c928..2b777e672 100644 --- a/slither/core/variables/variable.py +++ b/slither/core/variables/variable.py @@ -160,8 +160,8 @@ class Variable(SourceMapping): return ( self.name, - [str(x) for x in export_nested_types_from_variable(self)], - [str(x) for x in export_return_type_from_variable(self)], + [str(x) for x in export_nested_types_from_variable(self)], # type: ignore + [str(x) for x in export_return_type_from_variable(self)], # type: ignore ) @property @@ -179,4 +179,5 @@ class Variable(SourceMapping): return f'{name}({",".join(parameters)})' def __str__(self) -> str: + assert self._name return self._name diff --git a/slither/detectors/statements/costly_operations_in_loop.py b/slither/detectors/statements/costly_operations_in_loop.py index 6af04329c..53fa12647 100644 --- a/slither/detectors/statements/costly_operations_in_loop.py +++ b/slither/detectors/statements/costly_operations_in_loop.py @@ -43,7 +43,7 @@ def costly_operations_in_loop( if isinstance(ir, OperationWithLValue) and isinstance(ir.lvalue, StateVariable): ret.append(ir.node) break - if isinstance(ir, (InternalCall)): + if isinstance(ir, (InternalCall)) and ir.function: costly_operations_in_loop(ir.function.entry_point, in_loop_counter, visited, ret) for son in node.sons: diff --git a/slither/detectors/statements/write_after_write.py b/slither/detectors/statements/write_after_write.py index 40a82d3ff..1f11921cb 100644 --- a/slither/detectors/statements/write_after_write.py +++ b/slither/detectors/statements/write_after_write.py @@ -37,6 +37,8 @@ def _handle_ir( _remove_states(written) if isinstance(ir, InternalCall): + if not ir.function: + return if ir.function.all_high_level_calls() or ir.function.all_library_calls(): _remove_states(written) diff --git a/slither/printers/call/call_graph.py b/slither/printers/call/call_graph.py index 0a4df0c65..38225e6d7 100644 --- a/slither/printers/call/call_graph.py +++ b/slither/printers/call/call_graph.py @@ -13,6 +13,7 @@ from slither.core.declarations.function import Function from slither.core.declarations.solidity_variables import SolidityFunction from slither.core.variables.variable import Variable from slither.printers.abstract_printer import AbstractPrinter +from slither.utils.output import Output def _contract_subgraph(contract: Contract) -> str: @@ -222,7 +223,7 @@ class PrinterCallGraph(AbstractPrinter): WIKI = "https://github.com/trailofbits/slither/wiki/Printer-documentation#call-graph" - def output(self, filename): + def output(self, filename: str) -> Output: """ Output the graph in filename Args: diff --git a/slither/printers/summary/constructor_calls.py b/slither/printers/summary/constructor_calls.py index 665c76546..789811c36 100644 --- a/slither/printers/summary/constructor_calls.py +++ b/slither/printers/summary/constructor_calls.py @@ -5,6 +5,7 @@ from slither.core.declarations import Function from slither.core.source_mapping.source_mapping import Source from slither.printers.abstract_printer import AbstractPrinter from slither.utils import output +from slither.utils.output import Output def _get_source_code(cst: Function) -> str: @@ -17,7 +18,7 @@ class ConstructorPrinter(AbstractPrinter): ARGUMENT = "constructor-calls" HELP = "Print the constructors executed" - def output(self, _filename): + def output(self, _filename: str) -> Output: info = "" for contract in self.slither.contracts_derived: stack_name = [] diff --git a/slither/printers/summary/contract.py b/slither/printers/summary/contract.py index 5af953e20..5fee94416 100644 --- a/slither/printers/summary/contract.py +++ b/slither/printers/summary/contract.py @@ -2,9 +2,13 @@ Module printing summary of the contract """ import collections +from typing import Dict, List + +from slither.core.declarations import FunctionContract from slither.printers.abstract_printer import AbstractPrinter from slither.utils import output from slither.utils.colors import blue, green, magenta +from slither.utils.output import Output class ContractSummary(AbstractPrinter): @@ -13,7 +17,7 @@ class ContractSummary(AbstractPrinter): WIKI = "https://github.com/trailofbits/slither/wiki/Printer-documentation#contract-summary" - def output(self, _filename): # pylint: disable=too-many-locals + def output(self, _filename: str) -> Output: # pylint: disable=too-many-locals """ _filename is not used Args: @@ -53,17 +57,16 @@ class ContractSummary(AbstractPrinter): # Order the function with # contract_declarer -> list_functions - public = [ + public_function = [ (f.contract_declarer.name, f) for f in c.functions if (not f.is_shadowed and not f.is_constructor_variables) ] - collect = collections.defaultdict(list) - for a, b in public: + collect: Dict[str, List[FunctionContract]] = collections.defaultdict(list) + for a, b in public_function: collect[a].append(b) - public = list(collect.items()) - for contract, functions in public: + for contract, functions in collect.items(): txt += blue(f" - From {contract}\n") functions = sorted(functions, key=lambda f: f.full_name) @@ -90,7 +93,7 @@ class ContractSummary(AbstractPrinter): self.info(txt) res = self.generate_output(txt) - for contract, additional_fields in all_contracts: - res.add(contract, additional_fields=additional_fields) + for current_contract, current_additional_fields in all_contracts: + res.add(current_contract, additional_fields=current_additional_fields) return res diff --git a/slither/printers/summary/variable_order.py b/slither/printers/summary/variable_order.py index 9dc9e77c2..3325b7a01 100644 --- a/slither/printers/summary/variable_order.py +++ b/slither/printers/summary/variable_order.py @@ -4,6 +4,7 @@ from slither.printers.abstract_printer import AbstractPrinter from slither.utils.myprettytable import MyPrettyTable +from slither.utils.output import Output class VariableOrder(AbstractPrinter): @@ -13,7 +14,7 @@ class VariableOrder(AbstractPrinter): WIKI = "https://github.com/trailofbits/slither/wiki/Printer-documentation#variable-order" - def output(self, _filename): + def output(self, _filename: str) -> Output: """ _filename is not used Args: diff --git a/slither/slithir/utils/ssa.py b/slither/slithir/utils/ssa.py index 8b16cd516..9a180d14f 100644 --- a/slither/slithir/utils/ssa.py +++ b/slither/slithir/utils/ssa.py @@ -366,7 +366,7 @@ def last_name( def is_used_later( initial_node: Node, - variable: Union[StateIRVariable, LocalVariable], + variable: Union[StateIRVariable, LocalVariable, TemporaryVariableSSA], ) -> bool: # TODO: does not handle the case where its read and written in the declaration node # It can be problematic if this happens in a loop/if structure diff --git a/slither/slithir/utils/utils.py b/slither/slithir/utils/utils.py index a0ca0bd6f..4619c08bc 100644 --- a/slither/slithir/utils/utils.py +++ b/slither/slithir/utils/utils.py @@ -46,7 +46,7 @@ def is_valid_rvalue(v: SourceMapping) -> bool: ) -def is_valid_lvalue(v) -> bool: +def is_valid_lvalue(v: SourceMapping) -> bool: return isinstance( v, ( diff --git a/slither/slithir/variables/local_variable.py b/slither/slithir/variables/local_variable.py index eb32d4024..35b624a01 100644 --- a/slither/slithir/variables/local_variable.py +++ b/slither/slithir/variables/local_variable.py @@ -41,11 +41,11 @@ class LocalIRVariable( self._non_ssa_version = local_variable @property - def index(self): + def index(self) -> int: return self._index @index.setter - def index(self, idx): + def index(self, idx: int) -> None: self._index = idx @property diff --git a/slither/slithir/variables/state_variable.py b/slither/slithir/variables/state_variable.py index 7bb3a4077..f7fb8ab8a 100644 --- a/slither/slithir/variables/state_variable.py +++ b/slither/slithir/variables/state_variable.py @@ -30,11 +30,11 @@ class StateIRVariable( self._non_ssa_version = state_variable @property - def index(self): + def index(self) -> int: return self._index @index.setter - def index(self, idx): + def index(self, idx: int) -> None: self._index = idx @property diff --git a/slither/slithir/variables/variable.py b/slither/slithir/variables/variable.py index a1a1a6df9..20d203ea4 100644 --- a/slither/slithir/variables/variable.py +++ b/slither/slithir/variables/variable.py @@ -7,8 +7,9 @@ class SlithIRVariable(Variable): self._index = 0 @property - def ssa_name(self): + def ssa_name(self) -> str: + assert self.name return self.name - def __str__(self): + def __str__(self) -> str: return self.ssa_name diff --git a/slither/solc_parsing/declarations/contract.py b/slither/solc_parsing/declarations/contract.py index 47ee7ec10..b9dbe9a9f 100644 --- a/slither/solc_parsing/declarations/contract.py +++ b/slither/solc_parsing/declarations/contract.py @@ -1,6 +1,6 @@ import logging import re -from typing import Any, List, Dict, Callable, TYPE_CHECKING, Union, Set +from typing import Any, List, Dict, Callable, TYPE_CHECKING, Union, Set, Sequence from slither.core.declarations import ( Modifier, @@ -9,10 +9,10 @@ from slither.core.declarations import ( StructureContract, Function, ) -from slither.core.declarations.contract import Contract +from slither.core.declarations.contract import Contract, USING_FOR_KEY from slither.core.declarations.custom_error_contract import CustomErrorContract from slither.core.declarations.function_contract import FunctionContract -from slither.core.solidity_types import ElementaryType, TypeAliasContract, Type +from slither.core.solidity_types import ElementaryType, TypeAliasContract from slither.core.variables.state_variable import StateVariable from slither.solc_parsing.declarations.caller_context import CallerContextExpression from slither.solc_parsing.declarations.custom_error import CustomErrorSolc @@ -302,7 +302,7 @@ class ContractSolc(CallerContextExpression): st.set_contract(self._contract) st.set_offset(struct["src"], self._contract.compilation_unit) - st_parser = StructureContractSolc(st, struct, self) + st_parser = StructureContractSolc(st, struct, self) # type: ignore self._contract.structures_as_dict[st.name] = st self._structures_parser.append(st_parser) @@ -312,7 +312,7 @@ class ContractSolc(CallerContextExpression): for struct in self._structuresNotParsed: self._parse_struct(struct) - self._structuresNotParsed = None + self._structuresNotParsed = [] def _parse_custom_error(self, custom_error: Dict) -> None: ce = CustomErrorContract(self.compilation_unit) @@ -329,7 +329,7 @@ class ContractSolc(CallerContextExpression): for custom_error in self._customErrorParsed: self._parse_custom_error(custom_error) - self._customErrorParsed = None + self._customErrorParsed = [] def parse_state_variables(self) -> None: for father in self._contract.inheritance_reverse: @@ -356,6 +356,7 @@ class ContractSolc(CallerContextExpression): var_parser = StateVariableSolc(var, varNotParsed) self._variables_parser.append(var_parser) + assert var.name self._contract.variables_as_dict[var.name] = var self._contract.add_variables_ordered([var]) @@ -365,7 +366,7 @@ class ContractSolc(CallerContextExpression): modif.set_contract(self._contract) modif.set_contract_declarer(self._contract) - modif_parser = ModifierSolc(modif, modifier_data, self, self.slither_parser) + modif_parser = ModifierSolc(modif, modifier_data, self, self.slither_parser) # type: ignore self._contract.compilation_unit.add_modifier(modif) self._modifiers_no_params.append(modif_parser) self._modifiers_parser.append(modif_parser) @@ -375,7 +376,7 @@ class ContractSolc(CallerContextExpression): def parse_modifiers(self) -> None: for modifier in self._modifiersNotParsed: self._parse_modifier(modifier) - self._modifiersNotParsed = None + self._modifiersNotParsed = [] def _parse_function(self, function_data: Dict) -> None: func = FunctionContract(self._contract.compilation_unit) @@ -383,7 +384,7 @@ class ContractSolc(CallerContextExpression): func.set_contract(self._contract) func.set_contract_declarer(self._contract) - func_parser = FunctionSolc(func, function_data, self, self._slither_parser) + func_parser = FunctionSolc(func, function_data, self, self._slither_parser) # type: ignore self._contract.compilation_unit.add_function(func) self._functions_no_params.append(func_parser) self._functions_parser.append(func_parser) @@ -395,7 +396,7 @@ class ContractSolc(CallerContextExpression): for function in self._functionsNotParsed: self._parse_function(function) - self._functionsNotParsed = None + self._functionsNotParsed = [] # endregion ################################################################################### @@ -439,7 +440,8 @@ class ContractSolc(CallerContextExpression): Cls_parser, self._modifiers_parser, ) - self._contract.set_modifiers(modifiers) + # modifiers will be using Modifier so we can ignore the next type check + self._contract.set_modifiers(modifiers) # type: ignore except (VariableNotFound, KeyError) as e: self.log_incorrect_parsing(f"Missing params {e}") self._modifiers_no_params = [] @@ -459,7 +461,8 @@ class ContractSolc(CallerContextExpression): Cls_parser, self._functions_parser, ) - self._contract.set_functions(functions) + # function will be using FunctionContract so we can ignore the next type check + self._contract.set_functions(functions) # type: ignore except (VariableNotFound, KeyError) as e: self.log_incorrect_parsing(f"Missing params {e}") self._functions_no_params = [] @@ -470,7 +473,7 @@ class ContractSolc(CallerContextExpression): Cls_parser: Callable, element_parser: FunctionSolc, explored_reference_id: Set[str], - parser: List[FunctionSolc], + parser: Union[List[FunctionSolc], List[ModifierSolc]], all_elements: Dict[str, Function], ) -> None: elem = Cls(self._contract.compilation_unit) @@ -508,13 +511,13 @@ class ContractSolc(CallerContextExpression): def _analyze_params_elements( # pylint: disable=too-many-arguments,too-many-locals self, - elements_no_params: List[FunctionSolc], + elements_no_params: Sequence[FunctionSolc], getter: Callable[["ContractSolc"], List[FunctionSolc]], getter_available: Callable[[Contract], List[FunctionContract]], Cls: Callable, Cls_parser: Callable, - parser: List[FunctionSolc], - ) -> Dict[str, Union[FunctionContract, Modifier]]: + parser: Union[List[FunctionSolc], List[ModifierSolc]], + ) -> Dict[str, Function]: """ Analyze the parameters of the given elements (Function or Modifier). The function iterates over the inheritance to create an instance or inherited elements (Function or Modifier) @@ -526,13 +529,13 @@ class ContractSolc(CallerContextExpression): :param Cls: Class to create for collision :return: """ - all_elements = {} + all_elements: Dict[str, Function] = {} - explored_reference_id = set() + explored_reference_id: Set[str] = set() try: for father in self._contract.inheritance: father_parser = self._slither_parser.underlying_contract_to_parser[father] - for element_parser in getter(father_parser): + for element_parser in getter(father_parser): # type: ignore self._analyze_params_element( Cls, Cls_parser, element_parser, explored_reference_id, parser, all_elements ) @@ -597,7 +600,7 @@ class ContractSolc(CallerContextExpression): if self.is_compact_ast: for using_for in self._usingForNotParsed: if "typeName" in using_for and using_for["typeName"]: - type_name = parse_type(using_for["typeName"], self) + type_name: USING_FOR_KEY = parse_type(using_for["typeName"], self) else: type_name = "*" if type_name not in self._contract.using_for: @@ -616,7 +619,7 @@ class ContractSolc(CallerContextExpression): assert children and len(children) <= 2 if len(children) == 2: new = parse_type(children[0], self) - old = parse_type(children[1], self) + old: USING_FOR_KEY = parse_type(children[1], self) else: new = parse_type(children[0], self) old = "*" @@ -627,7 +630,7 @@ class ContractSolc(CallerContextExpression): except (VariableNotFound, KeyError) as e: self.log_incorrect_parsing(f"Missing using for {e}") - def _analyze_function_list(self, function_list: List, type_name: Type) -> None: + def _analyze_function_list(self, function_list: List, type_name: USING_FOR_KEY) -> None: for f in function_list: full_name_split = f["function"]["name"].split(".") if len(full_name_split) == 1: @@ -646,7 +649,9 @@ class ContractSolc(CallerContextExpression): function_name = full_name_split[2] self._analyze_library_function(library_name, function_name, type_name) - def _check_aliased_import(self, first_part: str, function_name: str, type_name: Type) -> None: + def _check_aliased_import( + self, first_part: str, function_name: str, type_name: USING_FOR_KEY + ) -> None: # We check if the first part appear as alias for an import # if it is then function_name must be a top level function # otherwise it's a library function @@ -656,13 +661,13 @@ class ContractSolc(CallerContextExpression): return self._analyze_library_function(first_part, function_name, type_name) - def _analyze_top_level_function(self, function_name: str, type_name: Type) -> None: + def _analyze_top_level_function(self, function_name: str, type_name: USING_FOR_KEY) -> None: for tl_function in self.compilation_unit.functions_top_level: if tl_function.name == function_name: self._contract.using_for[type_name].append(tl_function) def _analyze_library_function( - self, library_name: str, function_name: str, type_name: Type + self, library_name: str, function_name: str, type_name: USING_FOR_KEY ) -> None: # Get the library function found = False @@ -689,22 +694,13 @@ class ContractSolc(CallerContextExpression): # for enum, we can parse and analyze it # at the same time self._analyze_enum(enum) - self._enumsNotParsed = None + self._enumsNotParsed = [] except (VariableNotFound, KeyError) as e: self.log_incorrect_parsing(f"Missing enum {e}") def _analyze_enum( self, - enum: Dict[ - str, - Union[ - str, - int, - List[Dict[str, Union[int, str]]], - Dict[str, str], - List[Dict[str, Union[Dict[str, str], int, str]]], - ], - ], + enum: Dict, ) -> None: # Enum can be parsed in one pass if self.is_compact_ast: @@ -753,13 +749,13 @@ class ContractSolc(CallerContextExpression): event.set_contract(self._contract) event.set_offset(event_to_parse["src"], self._contract.compilation_unit) - event_parser = EventSolc(event, event_to_parse, self) - event_parser.analyze(self) + event_parser = EventSolc(event, event_to_parse, self) # type: ignore + event_parser.analyze(self) # type: ignore self._contract.events_as_dict[event.full_name] = event except (VariableNotFound, KeyError) as e: self.log_incorrect_parsing(f"Missing event {e}") - self._eventsNotParsed = None + self._eventsNotParsed = [] # endregion ################################################################################### @@ -768,7 +764,7 @@ class ContractSolc(CallerContextExpression): ################################################################################### ################################################################################### - def delete_content(self): + def delete_content(self) -> None: """ Remove everything not parsed from the contract This is used only if something went wrong with the inheritance parsing @@ -810,7 +806,7 @@ class ContractSolc(CallerContextExpression): ################################################################################### ################################################################################### - def __hash__(self): + def __hash__(self) -> int: return self._contract.id # endregion diff --git a/slither/solc_parsing/declarations/function.py b/slither/solc_parsing/declarations/function.py index 9671d9bbe..ba2f225f0 100644 --- a/slither/solc_parsing/declarations/function.py +++ b/slither/solc_parsing/declarations/function.py @@ -242,7 +242,7 @@ class FunctionSolc(CallerContextExpression): if "payable" in attributes: self._function.payable = attributes["payable"] - def analyze_params(self): + def analyze_params(self) -> None: # Can be re-analyzed due to inheritance if self._params_was_analyzed: return @@ -272,7 +272,7 @@ class FunctionSolc(CallerContextExpression): if returns: self._parse_returns(returns) - def analyze_content(self): + def analyze_content(self) -> None: if self._content_was_analyzed: return @@ -308,8 +308,8 @@ class FunctionSolc(CallerContextExpression): for node_parser in self._node_to_nodesolc.values(): node_parser.analyze_expressions(self) - for node_parser in self._node_to_yulobject.values(): - node_parser.analyze_expressions() + for yul_parser in self._node_to_yulobject.values(): + yul_parser.analyze_expressions() self._rewrite_ternary_as_if_else() @@ -1297,7 +1297,7 @@ class FunctionSolc(CallerContextExpression): son.remove_father(node) node.set_sons(new_sons) - def _remove_alone_endif(self): + def _remove_alone_endif(self) -> None: """ Can occur on: if(..){ diff --git a/slither/solc_parsing/variables/variable_declaration.py b/slither/solc_parsing/variables/variable_declaration.py index d21d89875..69b72a521 100644 --- a/slither/solc_parsing/variables/variable_declaration.py +++ b/slither/solc_parsing/variables/variable_declaration.py @@ -1,6 +1,6 @@ import logging import re -from typing import Dict, Optional +from typing import Dict, Optional, Union from slither.solc_parsing.declarations.caller_context import CallerContextExpression from slither.solc_parsing.expressions.expression_parsing import parse_expression @@ -42,12 +42,12 @@ class VariableDeclarationSolc: self._variable = variable self._was_analyzed = False - self._elem_to_parse = None - self._initializedNotParsed = None + self._elem_to_parse: Optional[Union[Dict, UnknownType]] = None + self._initializedNotParsed: Optional[Dict] = None self._is_compact_ast = False - self._reference_id = None + self._reference_id: Optional[int] = None if "nodeType" in variable_data: self._is_compact_ast = True @@ -87,7 +87,7 @@ class VariableDeclarationSolc: declaration = variable_data["children"][0] self._init_from_declaration(declaration, init) elif nodeType == "VariableDeclaration": - self._init_from_declaration(variable_data, False) + self._init_from_declaration(variable_data, None) else: raise ParsingError(f"Incorrect variable declaration type {nodeType}") @@ -101,6 +101,7 @@ class VariableDeclarationSolc: Return the solc id. It can be compared with the referencedDeclaration attr Returns None if it was not parsed (legacy AST) """ + assert self._reference_id return self._reference_id def _handle_comment(self, attributes: Dict) -> None: @@ -127,7 +128,7 @@ class VariableDeclarationSolc: self._variable.visibility = "internal" def _init_from_declaration( - self, var: Dict, init: Optional[bool] + self, var: Dict, init: Optional[Dict] ) -> None: # pylint: disable=too-many-branches if self._is_compact_ast: attributes = var @@ -195,7 +196,7 @@ class VariableDeclarationSolc: self._initializedNotParsed = init elif len(var["children"]) in [0, 1]: self._variable.initialized = False - self._initializedNotParsed = [] + self._initializedNotParsed = None else: assert len(var["children"]) == 2 self._variable.initialized = True @@ -212,5 +213,6 @@ class VariableDeclarationSolc: self._elem_to_parse = None if self._variable.initialized: + assert self._initializedNotParsed self._variable.expression = parse_expression(self._initializedNotParsed, caller_context) self._initializedNotParsed = None diff --git a/slither/tools/doctor/checks/versions.py b/slither/tools/doctor/checks/versions.py index ec7ef1d1f..00662b3e9 100644 --- a/slither/tools/doctor/checks/versions.py +++ b/slither/tools/doctor/checks/versions.py @@ -1,6 +1,6 @@ from importlib import metadata import json -from typing import Optional +from typing import Optional, Any import urllib from packaging.version import parse, Version @@ -17,6 +17,7 @@ def get_installed_version(name: str) -> Optional[Version]: def get_github_version(name: str) -> Optional[Version]: try: + # type: ignore with urllib.request.urlopen( f"https://api.github.com/repos/crytic/{name}/releases/latest" ) as response: @@ -27,7 +28,7 @@ def get_github_version(name: str) -> Optional[Version]: return None -def show_versions(**_kwargs) -> None: +def show_versions(**_kwargs: Any) -> None: versions = { "Slither": (get_installed_version("slither-analyzer"), get_github_version("slither")), "crytic-compile": ( diff --git a/slither/tools/read_storage/utils/utils.py b/slither/tools/read_storage/utils/utils.py index 3e51e2181..4a04a5b6d 100644 --- a/slither/tools/read_storage/utils/utils.py +++ b/slither/tools/read_storage/utils/utils.py @@ -2,6 +2,7 @@ from typing import Union from eth_typing.evm import ChecksumAddress from eth_utils import to_int, to_text, to_checksum_address +from web3 import Web3 def get_offset_value(hex_bytes: bytes, offset: int, size: int) -> bytes: @@ -48,7 +49,7 @@ def coerce_type( if "address" in solidity_type: if not isinstance(value, (str, bytes)): raise TypeError - return to_checksum_address(value) + return to_checksum_address(value) # type: ignore if not isinstance(value, bytes): raise TypeError @@ -56,7 +57,7 @@ def coerce_type( def get_storage_data( - web3, checksum_address: ChecksumAddress, slot: bytes, block: Union[int, str] + web3: Web3, checksum_address: ChecksumAddress, slot: bytes, block: Union[int, str] ) -> bytes: """ Retrieves the storage data from the blockchain at target address and slot. diff --git a/slither/tools/upgradeability/checks/variable_initialization.py b/slither/tools/upgradeability/checks/variable_initialization.py index e8ae9b26c..b4535ddfe 100644 --- a/slither/tools/upgradeability/checks/variable_initialization.py +++ b/slither/tools/upgradeability/checks/variable_initialization.py @@ -1,7 +1,11 @@ +from typing import List + from slither.tools.upgradeability.checks.abstract_checks import ( CheckClassification, AbstractCheck, + CHECK_INFO, ) +from slither.utils.output import Output class VariableWithInit(AbstractCheck): @@ -37,11 +41,11 @@ Using initialize functions to write initial values in state variables. REQUIRE_CONTRACT = True - def _check(self): + def _check(self) -> List[Output]: results = [] for s in self.contract.state_variables_ordered: if s.initialized and not (s.is_constant or s.is_immutable): - info = [s, " is a state variable with an initial value.\n"] + info: CHECK_INFO = [s, " is a state variable with an initial value.\n"] json = self.generate_result(info) results.append(json) return results diff --git a/slither/tools/upgradeability/checks/variables_order.py b/slither/tools/upgradeability/checks/variables_order.py index 030fb0f65..fc83c44c6 100644 --- a/slither/tools/upgradeability/checks/variables_order.py +++ b/slither/tools/upgradeability/checks/variables_order.py @@ -1,7 +1,12 @@ +from typing import List + +from slither.core.declarations import Contract from slither.tools.upgradeability.checks.abstract_checks import ( CheckClassification, AbstractCheck, + CHECK_INFO, ) +from slither.utils.output import Output class MissingVariable(AbstractCheck): @@ -45,9 +50,12 @@ Do not change the order of the state variables in the updated contract. REQUIRE_CONTRACT = True REQUIRE_CONTRACT_V2 = True - def _check(self): + def _check(self) -> List[Output]: contract1 = self.contract contract2 = self.contract_v2 + + assert contract2 + order1 = [ variable for variable in contract1.state_variables_ordered @@ -63,7 +71,7 @@ Do not change the order of the state variables in the updated contract. for idx, _ in enumerate(order1): variable1 = order1[idx] if len(order2) <= idx: - info = ["Variable missing in ", contract2, ": ", variable1, "\n"] + info: CHECK_INFO = ["Variable missing in ", contract2, ": ", variable1, "\n"] json = self.generate_result(info) results.append(json) @@ -108,13 +116,14 @@ Avoid variables in the proxy. If a variable is in the proxy, ensure it has the s REQUIRE_CONTRACT = True REQUIRE_PROXY = True - def _contract1(self): + def _contract1(self) -> Contract: return self.contract - def _contract2(self): + def _contract2(self) -> Contract: + assert self.proxy return self.proxy - def _check(self): + def _check(self) -> List[Output]: contract1 = self._contract1() contract2 = self._contract2() order1 = [ @@ -128,7 +137,7 @@ Avoid variables in the proxy. If a variable is in the proxy, ensure it has the s if not (variable.is_constant or variable.is_immutable) ] - results = [] + results: List[Output] = [] for idx, _ in enumerate(order1): if len(order2) <= idx: # Handle by MissingVariable @@ -137,7 +146,7 @@ Avoid variables in the proxy. If a variable is in the proxy, ensure it has the s variable1 = order1[idx] variable2 = order2[idx] if (variable1.name != variable2.name) or (variable1.type != variable2.type): - info = [ + info: CHECK_INFO = [ "Different variables between ", contract1, " and ", @@ -190,7 +199,8 @@ Respect the variable order of the original contract in the updated contract. REQUIRE_PROXY = False REQUIRE_CONTRACT_V2 = True - def _contract2(self): + def _contract2(self) -> Contract: + assert self.contract_v2 return self.contract_v2 @@ -235,13 +245,14 @@ Avoid variables in the proxy. If a variable is in the proxy, ensure it has the s REQUIRE_CONTRACT = True REQUIRE_PROXY = True - def _contract1(self): + def _contract1(self) -> Contract: return self.contract - def _contract2(self): + def _contract2(self) -> Contract: + assert self.proxy return self.proxy - def _check(self): + def _check(self) -> List[Output]: contract1 = self._contract1() contract2 = self._contract2() order1 = [ @@ -264,7 +275,7 @@ Avoid variables in the proxy. If a variable is in the proxy, ensure it has the s while idx < len(order2): variable2 = order2[idx] - info = ["Extra variables in ", contract2, ": ", variable2, "\n"] + info: CHECK_INFO = ["Extra variables in ", contract2, ": ", variable2, "\n"] json = self.generate_result(info) results.append(json) idx = idx + 1 @@ -299,5 +310,6 @@ Ensure that all the new variables are expected. REQUIRE_PROXY = False REQUIRE_CONTRACT_V2 = True - def _contract2(self): + def _contract2(self) -> Contract: + assert self.contract_v2 return self.contract_v2 diff --git a/slither/visitors/expression/constants_folding.py b/slither/visitors/expression/constants_folding.py index 7b1a8f8ee..12eb6be9d 100644 --- a/slither/visitors/expression/constants_folding.py +++ b/slither/visitors/expression/constants_folding.py @@ -104,7 +104,7 @@ class ConstantFolding(ExpressionVisitor): and isinstance(left, (int, Fraction)) and isinstance(right, (int, Fraction)) ): - set_val(expression, left**right) #type: ignore + set_val(expression, left**right) # type: ignore elif ( expression.type == BinaryOperationType.MULTIPLICATION and isinstance(left, (int, Fraction)) diff --git a/tests/test_ssa_generation.py b/tests/test_ssa_generation.py index 9bb008fdf..c7bc8d5cc 100644 --- a/tests/test_ssa_generation.py +++ b/tests/test_ssa_generation.py @@ -6,7 +6,7 @@ from collections import defaultdict from contextlib import contextmanager from inspect import getsourcefile from tempfile import NamedTemporaryFile -from typing import Union, List, Optional +from typing import Union, List, Optional, Dict, Callable import pytest from solc_select import solc_select @@ -15,6 +15,7 @@ from solc_select.solc_select import valid_version as solc_valid_version from slither import Slither from slither.core.cfg.node import Node, NodeType from slither.core.declarations import Function, Contract +from slither.core.variables.local_variable import LocalVariable from slither.core.variables.state_variable import StateVariable from slither.slithir.operations import ( OperationWithLValue, @@ -34,10 +35,11 @@ from slither.slithir.variables import ( ReferenceVariable, LocalIRVariable, StateIRVariable, + TemporaryVariableSSA, ) # Directory of currently executing script. Will be used as basis for temporary file names. -SCRIPT_DIR = pathlib.Path(getsourcefile(lambda: 0)).parent +SCRIPT_DIR = pathlib.Path(getsourcefile(lambda: 0)).parent # type:ignore def valid_version(ver: str) -> bool: @@ -53,15 +55,15 @@ def valid_version(ver: str) -> bool: return False -def have_ssa_if_ir(function: Function): +def have_ssa_if_ir(function: Function) -> None: """Verifies that all nodes in a function that have IR also have SSA IR""" for n in function.nodes: if n.irs: assert n.irs_ssa -# pylint: disable=too-many-branches -def ssa_basic_properties(function: Function): +# pylint: disable=too-many-branches, too-many-locals +def ssa_basic_properties(function: Function) -> None: """Verifies that basic properties of ssa holds 1. Every name is defined only once @@ -75,12 +77,14 @@ def ssa_basic_properties(function: Function): """ ssa_lvalues = set() ssa_rvalues = set() - lvalue_assignments = {} + lvalue_assignments: Dict[str, int] = {} for n in function.nodes: for ir in n.irs: - if isinstance(ir, OperationWithLValue): + if isinstance(ir, OperationWithLValue) and ir.lvalue: name = ir.lvalue.name + if name is None: + continue if name in lvalue_assignments: lvalue_assignments[name] += 1 else: @@ -93,8 +97,9 @@ def ssa_basic_properties(function: Function): ssa_lvalues.add(ssa.lvalue) # 2 (if Local/State Var) - if isinstance(ssa.lvalue, (StateIRVariable, LocalIRVariable)): - assert ssa.lvalue.index > 0 + ssa_lvalue = ssa.lvalue + if isinstance(ssa_lvalue, (StateIRVariable, LocalIRVariable)): + assert ssa_lvalue.index > 0 for rvalue in filter( lambda x: not isinstance(x, (StateIRVariable, Constant)), ssa.read @@ -111,15 +116,18 @@ def ssa_basic_properties(function: Function): undef_vars.add(rvalue.non_ssa_version) # 4 - ssa_defs = defaultdict(int) + ssa_defs: Dict[str, int] = defaultdict(int) for v in ssa_lvalues: - ssa_defs[v.name] += 1 + if v and v.name: + ssa_defs[v.name] += 1 - for (k, n) in lvalue_assignments.items(): - assert ssa_defs[k] >= n + for (k, count) in lvalue_assignments.items(): + assert ssa_defs[k] >= count # Helper 5/6 - def check_property_5_and_6(variables, ssavars): + def check_property_5_and_6( + variables: List[LocalVariable], ssavars: List[LocalIRVariable] + ) -> None: for var in filter(lambda x: x.name, variables): ssa_vars = [x for x in ssavars if x.non_ssa_version == var] assert len(ssa_vars) == 1 @@ -136,7 +144,7 @@ def ssa_basic_properties(function: Function): check_property_5_and_6(function.returns, function.returns_ssa) -def ssa_phi_node_properties(f: Function): +def ssa_phi_node_properties(f: Function) -> None: """Every phi-function should have as many args as predecessors This does not apply if the phi-node refers to state variables, @@ -152,7 +160,7 @@ def ssa_phi_node_properties(f: Function): # TODO (hbrodin): This should probably go into another file, not specific to SSA -def dominance_properties(f: Function): +def dominance_properties(f: Function) -> None: """Verifies properties related to dominators holds 1. Every node have an immediate dominator except entry_node which have none @@ -180,14 +188,16 @@ def dominance_properties(f: Function): assert find_path(node.immediate_dominator, node) -def phi_values_inserted(f: Function): +def phi_values_inserted(f: Function) -> None: """Verifies that phi-values are inserted at the right places For every node that has a dominance frontier, any def (including phi) should be a phi function in its dominance frontier """ - def have_phi_for_var(node: Node, var): + def have_phi_for_var( + node: Node, var: Union[StateIRVariable, LocalIRVariable, TemporaryVariableSSA] + ) -> bool: """Checks if a node has a phi-instruction for var The ssa version would ideally be checked, but then @@ -198,7 +208,14 @@ def phi_values_inserted(f: Function): non_ssa = var.non_ssa_version for ssa in node.irs_ssa: if isinstance(ssa, Phi): - if non_ssa in map(lambda ssa_var: ssa_var.non_ssa_version, ssa.read): + if non_ssa in map( + lambda ssa_var: ssa_var.non_ssa_version, + [ + r + for r in ssa.read + if isinstance(r, (StateIRVariable, LocalIRVariable, TemporaryVariableSSA)) + ], + ): return True return False @@ -206,12 +223,15 @@ def phi_values_inserted(f: Function): for df in node.dominance_frontier: for ssa in node.irs_ssa: if isinstance(ssa, OperationWithLValue): - if is_used_later(node, ssa.lvalue): - assert have_phi_for_var(df, ssa.lvalue) + ssa_lvalue = ssa.lvalue + if isinstance( + ssa_lvalue, (StateIRVariable, LocalIRVariable, TemporaryVariableSSA) + ) and is_used_later(node, ssa_lvalue): + assert have_phi_for_var(df, ssa_lvalue) @contextmanager -def select_solc_version(version: Optional[str]): +def select_solc_version(version: Optional[str]) -> None: """Selects solc version to use for running tests. If no version is provided, latest is used.""" @@ -256,17 +276,17 @@ def slither_from_source(source_code: str, solc_version: Optional[str] = None): pathlib.Path(fname).unlink() -def verify_properties_hold(source_code_or_slither: Union[str, Slither]): +def verify_properties_hold(source_code_or_slither: Union[str, Slither]) -> None: """Ensures that basic properties of SSA hold true""" - def verify_func(func: Function): + def verify_func(func: Function) -> None: have_ssa_if_ir(func) phi_values_inserted(func) ssa_basic_properties(func) ssa_phi_node_properties(func) dominance_properties(func) - def verify(slither): + def verify(slither: Slither) -> None: for cu in slither.compilation_units: for func in cu.functions_and_modifiers: _dump_function(func) @@ -280,11 +300,12 @@ def verify_properties_hold(source_code_or_slither: Union[str, Slither]): if isinstance(source_code_or_slither, Slither): verify(source_code_or_slither) else: + slither: Slither with slither_from_source(source_code_or_slither) as slither: verify(slither) -def _dump_function(f: Function): +def _dump_function(f: Function) -> None: """Helper function to print nodes/ssa ir for a function or modifier""" print(f"---- {f.name} ----") for n in f.nodes: @@ -294,13 +315,13 @@ def _dump_function(f: Function): print("") -def _dump_functions(c: Contract): +def _dump_functions(c: Contract) -> None: """Helper function to print functions and modifiers of a contract""" for f in c.functions_and_modifiers: _dump_function(f) -def get_filtered_ssa(f: Union[Function, Node], flt) -> List[Operation]: +def get_filtered_ssa(f: Union[Function, Node], flt: Callable) -> List[Operation]: """Returns a list of all ssanodes filtered by filter for all nodes in function f""" if isinstance(f, Function): return [ssanode for node in f.nodes for ssanode in node.irs_ssa if flt(ssanode)] @@ -314,7 +335,7 @@ def get_ssa_of_type(f: Union[Function, Node], ssatype) -> List[Operation]: return get_filtered_ssa(f, lambda ssanode: isinstance(ssanode, ssatype)) -def test_multi_write(): +def test_multi_write() -> None: contract = """ pragma solidity ^0.8.11; contract Test { @@ -327,7 +348,7 @@ def test_multi_write(): verify_properties_hold(contract) -def test_single_branch_phi(): +def test_single_branch_phi() -> None: contract = """ pragma solidity ^0.8.11; contract Test { @@ -342,7 +363,7 @@ def test_single_branch_phi(): verify_properties_hold(contract) -def test_basic_phi(): +def test_basic_phi() -> None: contract = """ pragma solidity ^0.8.11; contract Test { @@ -359,7 +380,7 @@ def test_basic_phi(): verify_properties_hold(contract) -def test_basic_loop_phi(): +def test_basic_loop_phi() -> None: contract = """ pragma solidity ^0.8.11; contract Test { @@ -375,7 +396,7 @@ def test_basic_loop_phi(): @pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") -def test_phi_propagation_loop(): +def test_phi_propagation_loop() -> None: contract = """ pragma solidity ^0.8.11; contract Test { @@ -396,7 +417,7 @@ def test_phi_propagation_loop(): @pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") -def test_free_function_properties(): +def test_free_function_properties() -> None: contract = """ pragma solidity ^0.8.11; @@ -417,7 +438,7 @@ def test_free_function_properties(): verify_properties_hold(contract) -def test_ssa_inter_transactional(): +def test_ssa_inter_transactional() -> None: source = """ pragma solidity ^0.8.11; contract A { @@ -460,7 +481,7 @@ def test_ssa_inter_transactional(): @pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") -def test_ssa_phi_callbacks(): +def test_ssa_phi_callbacks() -> None: source = """ pragma solidity ^0.8.11; contract A { @@ -519,7 +540,7 @@ def test_ssa_phi_callbacks(): @pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") -def test_storage_refers_to(): +def test_storage_refers_to() -> None: """Test the storage aspects of the SSA IR When declaring a var as being storage, start tracking what storage it refers_to. From 77bf3e576e9ba80b900f98fbcb0eb4188e6c9e82 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Fri, 24 Feb 2023 20:20:49 +0100 Subject: [PATCH 012/193] More fixes --- .../statements/delegatecall_in_loop.py | 2 +- slither/printers/functions/dominator.py | 3 +- slither/printers/guidance/echidna.py | 6 +- slither/printers/summary/data_depenency.py | 12 +- slither/printers/summary/declaration.py | 3 +- slither/slithir/convert.py | 122 +++++++----------- slither/slithir/operations/delete.py | 2 +- .../slithir/operations/return_operation.py | 25 ++-- slither/slithir/utils/utils.py | 6 +- slither/utils/myprettytable.py | 4 +- 10 files changed, 85 insertions(+), 100 deletions(-) diff --git a/slither/detectors/statements/delegatecall_in_loop.py b/slither/detectors/statements/delegatecall_in_loop.py index d97466edf..bdcf5dcae 100644 --- a/slither/detectors/statements/delegatecall_in_loop.py +++ b/slither/detectors/statements/delegatecall_in_loop.py @@ -42,7 +42,7 @@ def delegatecall_in_loop( and ir.function_name == "delegatecall" ): results.append(ir.node) - if isinstance(ir, (InternalCall)): + if isinstance(ir, (InternalCall)) and ir.function: delegatecall_in_loop(ir.function.entry_point, in_loop_counter, visited, results) for son in node.sons: diff --git a/slither/printers/functions/dominator.py b/slither/printers/functions/dominator.py index f618fd5db..1b32498f9 100644 --- a/slither/printers/functions/dominator.py +++ b/slither/printers/functions/dominator.py @@ -1,4 +1,5 @@ from slither.printers.abstract_printer import AbstractPrinter +from slither.utils.output import Output class Dominator(AbstractPrinter): @@ -8,7 +9,7 @@ class Dominator(AbstractPrinter): WIKI = "https://github.com/trailofbits/slither/wiki/Printer-documentation#dominator" - def output(self, filename): + def output(self, filename: str) -> Output: """ _filename is not used Args: diff --git a/slither/printers/guidance/echidna.py b/slither/printers/guidance/echidna.py index 166fa48f5..3a555562f 100644 --- a/slither/printers/guidance/echidna.py +++ b/slither/printers/guidance/echidna.py @@ -79,7 +79,7 @@ def _is_constant(f: Function) -> bool: # pylint: disable=too-many-branches :return: """ if f.view or f.pure: - if not f.contract.compilation_unit.solc_version.startswith("0.4"): + if not f.compilation_unit.solc_version.startswith("0.4"): return True if f.payable: return False @@ -102,11 +102,11 @@ def _is_constant(f: Function) -> bool: # pylint: disable=too-many-branches if isinstance(ir, HighLevelCall): if isinstance(ir.function, Variable) or ir.function.view or ir.function.pure: # External call to constant functions are ensured to be constant only for solidity >= 0.5 - if f.contract.compilation_unit.solc_version.startswith("0.4"): + if f.compilation_unit.solc_version.startswith("0.4"): return False else: return False - if isinstance(ir, InternalCall): + if isinstance(ir, InternalCall) and ir.function: # Storage write are not properly handled by all_state_variables_written if any(parameter.is_storage for parameter in ir.function.parameters): return False diff --git a/slither/printers/summary/data_depenency.py b/slither/printers/summary/data_depenency.py index 41659a299..f1c0dc8d5 100644 --- a/slither/printers/summary/data_depenency.py +++ b/slither/printers/summary/data_depenency.py @@ -1,19 +1,22 @@ """ Module printing summary of the contract """ +from typing import List +from slither.core.declarations import Contract from slither.printers.abstract_printer import AbstractPrinter -from slither.analyses.data_dependency.data_dependency import get_dependencies +from slither.analyses.data_dependency.data_dependency import get_dependencies, SUPPORTED_TYPES from slither.slithir.variables import TemporaryVariable, ReferenceVariable from slither.utils.myprettytable import MyPrettyTable +from slither.utils.output import Output -def _get(v, c): +def _get(v: SUPPORTED_TYPES, c: Contract) -> List[str]: return list( { d.name for d in get_dependencies(v, c) - if not isinstance(d, (TemporaryVariable, ReferenceVariable)) + if not isinstance(d, (TemporaryVariable, ReferenceVariable)) and d.name } ) @@ -25,7 +28,7 @@ class DataDependency(AbstractPrinter): WIKI = "https://github.com/trailofbits/slither/wiki/Printer-documentation#data-dependencies" - def output(self, _filename): + def output(self, _filename: str) -> Output: """ _filename is not used Args: @@ -42,6 +45,7 @@ class DataDependency(AbstractPrinter): txt += f"\nContract {c.name}\n" table = MyPrettyTable(["Variable", "Dependencies"]) for v in c.state_variables: + assert v.name table.add_row([v.name, sorted(_get(v, c))]) txt += str(table) diff --git a/slither/printers/summary/declaration.py b/slither/printers/summary/declaration.py index 5888a1f00..9266d5580 100644 --- a/slither/printers/summary/declaration.py +++ b/slither/printers/summary/declaration.py @@ -1,4 +1,5 @@ from slither.printers.abstract_printer import AbstractPrinter +from slither.utils.output import Output from slither.utils.source_mapping import get_definition, get_implementation, get_references @@ -8,7 +9,7 @@ class Declaration(AbstractPrinter): WIKI = "TODO" - def output(self, _filename): + def output(self, _filename: str) -> Output: """ _filename is not used Args: diff --git a/slither/slithir/convert.py b/slither/slithir/convert.py index cc47ea913..e05526d86 100644 --- a/slither/slithir/convert.py +++ b/slither/slithir/convert.py @@ -1,6 +1,6 @@ import logging from pathlib import Path -from typing import Any, List, TYPE_CHECKING, Union, Optional +from typing import Any, List, TYPE_CHECKING, Union, Optional, Dict # pylint: disable= too-many-lines,import-outside-toplevel,too-many-branches,too-many-statements,too-many-nested-blocks from slither.core.declarations import ( @@ -13,12 +13,14 @@ from slither.core.declarations import ( SolidityVariableComposed, Structure, ) +from slither.core.declarations.contract import USING_FOR_KEY, USING_FOR_ITEM from slither.core.declarations.custom_error import CustomError from slither.core.declarations.function_contract import FunctionContract from slither.core.declarations.function_top_level import FunctionTopLevel from slither.core.declarations.solidity_import_placeholder import SolidityImportPlaceHolder from slither.core.declarations.solidity_variables import SolidityCustomRevert from slither.core.expressions import Identifier, Literal +from slither.core.expressions.expression import Expression from slither.core.solidity_types import ( ArrayType, ElementaryType, @@ -83,28 +85,6 @@ from slither.slithir.variables import TupleVariable from slither.utils.function import get_function_id from slither.utils.type import export_nested_types_from_variable from slither.visitors.slithir.expression_to_slithir import ExpressionToSlithIR -import slither.core.declarations.contract -import slither.core.declarations.function -import slither.core.solidity_types.elementary_type -import slither.core.solidity_types.function_type -import slither.core.solidity_types.user_defined_type -import slither.slithir.operations.assignment -import slither.slithir.operations.binary -import slither.slithir.operations.call -import slither.slithir.operations.high_level_call -import slither.slithir.operations.index -import slither.slithir.operations.init_array -import slither.slithir.operations.internal_call -import slither.slithir.operations.length -import slither.slithir.operations.library_call -import slither.slithir.operations.low_level_call -import slither.slithir.operations.member -import slither.slithir.operations.operation -import slither.slithir.operations.send -import slither.slithir.operations.solidity_call -import slither.slithir.operations.transfer -import slither.slithir.variables.temporary -from slither.core.expressions.expression import Expression if TYPE_CHECKING: from slither.core.cfg.node import Node @@ -112,7 +92,7 @@ if TYPE_CHECKING: logger = logging.getLogger("ConvertToIR") -def convert_expression(expression: Expression, node: "Node") -> List[Any]: +def convert_expression(expression: Expression, node: "Node") -> List[Operation]: # handle standlone expression # such as return true; from slither.core.cfg.node import NodeType @@ -122,8 +102,7 @@ def convert_expression(expression: Expression, node: "Node") -> List[Any]: cond = Condition(cst) cond.set_expression(expression) cond.set_node(node) - result = [cond] - return result + return [cond] if isinstance(expression, Identifier) and node.type in [ NodeType.IF, NodeType.IFLOOP, @@ -131,8 +110,7 @@ def convert_expression(expression: Expression, node: "Node") -> List[Any]: cond = Condition(expression.value) cond.set_expression(expression) cond.set_node(node) - result = [cond] - return result + return [cond] visitor = ExpressionToSlithIR(expression, node) result = visitor.result() @@ -141,15 +119,17 @@ def convert_expression(expression: Expression, node: "Node") -> List[Any]: if result: if node.type in [NodeType.IF, NodeType.IFLOOP]: - assert isinstance(result[-1], (OperationWithLValue)) - cond = Condition(result[-1].lvalue) + prev = result[-1] + assert isinstance(prev, (OperationWithLValue)) and prev.lvalue + cond = Condition(prev.lvalue) cond.set_expression(expression) cond.set_node(node) result.append(cond) elif node.type == NodeType.RETURN: # May return None - if isinstance(result[-1], (OperationWithLValue)): - r = Return(result[-1].lvalue) + prev = result[-1] + if isinstance(prev, (OperationWithLValue)): + r = Return(prev.lvalue) r.set_expression(expression) r.set_node(node) result.append(r) @@ -273,7 +253,7 @@ def _find_function_from_parameter( type_args += ["string"] not_found = True - candidates_kept = [] + candidates_kept: List[Function] = [] for type_arg in type_args: if not not_found: break @@ -336,7 +316,7 @@ def integrate_value_gas(result: List[Operation]) -> List[Operation]: # Find all the assignments assigments = {} for i in result: - if isinstance(i, OperationWithLValue): + if isinstance(i, OperationWithLValue) and i.lvalue: assigments[i.lvalue.name] = i if isinstance(i, TmpCall): if isinstance(i.called, Variable) and i.called.name in assigments: @@ -350,20 +330,25 @@ def integrate_value_gas(result: List[Operation]) -> List[Operation]: for idx, ins in enumerate(result): # value can be shadowed, so we check that the prev ins # is an Argument - if is_value(ins) and isinstance(result[idx - 1], Argument): + if idx == 0: + continue + prev_ins = result[idx - 1] + if is_value(ins) and isinstance(prev_ins, Argument): was_changed = True - result[idx - 1].set_type(ArgumentType.VALUE) - result[idx - 1].call_id = ins.ori.variable_left.name - calls.append(ins.ori.variable_left) + prev_ins.set_type(ArgumentType.VALUE) + # Types checked by is_value + prev_ins.call_id = ins.ori.variable_left.name # type: ignore + calls.append(ins.ori.variable_left) # type: ignore to_remove.append(ins) - variable_to_replace[ins.lvalue.name] = ins.ori.variable_left - elif is_gas(ins) and isinstance(result[idx - 1], Argument): + variable_to_replace[ins.lvalue.name] = ins.ori.variable_left # type: ignore + elif is_gas(ins) and isinstance(prev_ins, Argument): was_changed = True - result[idx - 1].set_type(ArgumentType.GAS) - result[idx - 1].call_id = ins.ori.variable_left.name - calls.append(ins.ori.variable_left) + prev_ins.set_type(ArgumentType.GAS) + # Types checked by is_gas + prev_ins.call_id = ins.ori.variable_left.name # type: ignore + calls.append(ins.ori.variable_left) # type: ignore to_remove.append(ins) - variable_to_replace[ins.lvalue.name] = ins.ori.variable_left + variable_to_replace[ins.lvalue.name] = ins.ori.variable_left # type: ignore # Remove the call to value/gas instruction result = [i for i in result if not i in to_remove] @@ -446,7 +431,7 @@ def propagate_type_and_convert_call(result: List[Operation], node: "Node") -> Li if isinstance(ins, (HighLevelCall, NewContract, InternalDynamicCall)): if ins.call_id in calls_value: ins.call_value = calls_value[ins.call_id] - if ins.call_id in calls_gas: + if ins.call_id in calls_gas and isinstance(ins, (HighLevelCall, InternalDynamicCall)): ins.call_gas = calls_gas[ins.call_id] if isinstance(ins, (Call, NewContract, NewStructure)): @@ -525,17 +510,15 @@ def _convert_type_contract(ir: Member) -> Assignment: raise SlithIRError(f"type({contract.name}).{ir.variable_right} is unknown") -def propagate_types( - ir: slither.slithir.operations.operation.Operation, node: "Node" -): # pylint: disable=too-many-locals +def propagate_types(ir: Operation, node: "Node"): # pylint: disable=too-many-locals # propagate the type node_function = node.function - using_for = ( + using_for: Dict[USING_FOR_KEY, USING_FOR_ITEM] = ( node_function.contract.using_for_complete if isinstance(node_function, FunctionContract) else {} ) - if isinstance(ir, OperationWithLValue): + if isinstance(ir, OperationWithLValue) and ir.lvalue: # Force assignment in case of missing previous correct type if not ir.lvalue.type: if isinstance(ir, Assignment): @@ -646,11 +629,12 @@ def propagate_types( and not isinstance(ir.variable_left, Contract) and isinstance(ir.variable_left.type, (ElementaryType, ArrayType)) ): - length = Length(ir.variable_left, ir.lvalue) - length.set_expression(ir.expression) - length.lvalue.points_to = ir.variable_left - length.set_node(ir.node) - return length + new_length = Length(ir.variable_left, ir.lvalue) + assert ir.expression + new_length.set_expression(ir.expression) + new_length.lvalue.points_to = ir.variable_left + new_length.set_node(ir.node) + return new_length # This only happen for .balance/code/codehash access on a variable for which we dont know at # early parsing time the type # Like @@ -794,6 +778,7 @@ def propagate_types( ir.lvalue.set_type(ir.array_type) elif isinstance(ir, NewContract): contract = node.file_scope.get_contract_from_name(ir.contract_name) + assert contract ir.lvalue.set_type(UserDefinedType(contract)) elif isinstance(ir, NewElementaryType): ir.lvalue.set_type(ir.type) @@ -837,9 +822,7 @@ def propagate_types( # pylint: disable=too-many-locals -def extract_tmp_call( - ins: TmpCall, contract: Optional[Contract] -) -> slither.slithir.operations.call.Call: +def extract_tmp_call(ins: TmpCall, contract: Optional[Contract]) -> Union[Call, Nop]: assert isinstance(ins, TmpCall) if isinstance(ins.called, Variable) and isinstance(ins.called.type, FunctionType): # If the call is made to a variable member, where the member is this @@ -1328,16 +1311,8 @@ def convert_to_push_set_val( def convert_to_push( - ir: slither.slithir.operations.high_level_call.HighLevelCall, node: "Node" -) -> List[ - Union[ - slither.slithir.operations.length.Length, - slither.slithir.operations.assignment.Assignment, - slither.slithir.operations.binary.Binary, - slither.slithir.operations.index.Index, - slither.slithir.operations.init_array.InitArray, - ] -]: + ir: HighLevelCall, node: "Node" +) -> List[Union[Length, Assignment, Binary, Index, InitArray,]]: """ Convert a call to a series of operations to push a new value onto the array @@ -1357,22 +1332,23 @@ def convert_to_push( return ret -def convert_to_pop(ir, node): +def convert_to_pop(ir: HighLevelCall, node: "Node") -> List[Operation]: """ Convert pop operators Return a list of 6 operations """ - ret = [] + ret: List[Operation] = [] arr = ir.destination length = ReferenceVariable(node) length.set_type(ElementaryType("uint256")) ir_length = Length(arr, length) + assert ir.expression ir_length.set_expression(ir.expression) ir_length.set_node(ir.node) - ir_length.lvalue.points_to = arr + length.points_to = arr ret.append(ir_length) val = TemporaryVariable(node) @@ -1384,6 +1360,8 @@ def convert_to_pop(ir, node): element_to_delete = ReferenceVariable(node) ir_assign_element_to_delete = Index(element_to_delete, arr, val) + # 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")) ir_assign_element_to_delete.set_expression(ir.expression) @@ -1399,7 +1377,7 @@ def convert_to_pop(ir, node): length_to_assign.set_type(ElementaryType("uint256")) ir_length = Length(arr, length_to_assign) ir_length.set_expression(ir.expression) - ir_length.lvalue.points_to = arr + length_to_assign.points_to = arr ir_length.set_node(ir.node) ret.append(ir_length) diff --git a/slither/slithir/operations/delete.py b/slither/slithir/operations/delete.py index 496d170ad..d241033c5 100644 --- a/slither/slithir/operations/delete.py +++ b/slither/slithir/operations/delete.py @@ -36,5 +36,5 @@ class Delete(OperationWithLValue): ) -> Union[StateIRVariable, StateVariable, ReferenceVariable, ReferenceVariableSSA]: return self._variable - def __str__(self): + def __str__(self) -> str: return f"{self.lvalue} = delete {self.variable} " diff --git a/slither/slithir/operations/return_operation.py b/slither/slithir/operations/return_operation.py index c21579763..290572ebf 100644 --- a/slither/slithir/operations/return_operation.py +++ b/slither/slithir/operations/return_operation.py @@ -1,11 +1,10 @@ -from typing import List +from typing import List, Optional, Union, Any from slither.core.declarations import Function +from slither.core.variables.variable import Variable from slither.slithir.operations.operation import Operation - +from slither.slithir.utils.utils import is_valid_rvalue, RVALUE from slither.slithir.variables.tuple import TupleVariable -from slither.slithir.utils.utils import is_valid_rvalue -from slither.core.variables.variable import Variable class Return(Operation): @@ -14,10 +13,13 @@ class Return(Operation): Only present as last operation in RETURN node """ - def __init__(self, values) -> None: + def __init__( + self, values: Optional[Union[RVALUE, TupleVariable, Function, List[RVALUE]]] + ) -> None: # Note: Can return None # ex: return call() # where call() dont return + self._values: List[Union[RVALUE, TupleVariable, Function]] if not isinstance(values, list): assert ( is_valid_rvalue(values) @@ -25,20 +27,19 @@ class Return(Operation): or values is None ) if values is None: - values = [] + self._values = [] else: - values = [values] + self._values = [values] else: # Remove None # Prior Solidity 0.5 # return (0,) # was valid for returns(uint) - values = [v for v in values if not v is None] - self._valid_value(values) + self._values = [v for v in values if not v is None] + self._valid_value(self._values) super().__init__() - self._values = values - def _valid_value(self, value) -> bool: + def _valid_value(self, value: Any) -> bool: if isinstance(value, list): assert all(self._valid_value(v) for v in value) else: @@ -53,5 +54,5 @@ class Return(Operation): def values(self) -> List[Variable]: return self._unroll(self._values) - def __str__(self): + def __str__(self) -> str: return f"RETURN {','.join([f'{x}' for x in self.values])}" diff --git a/slither/slithir/utils/utils.py b/slither/slithir/utils/utils.py index 4619c08bc..49b1a879c 100644 --- a/slither/slithir/utils/utils.py +++ b/slither/slithir/utils/utils.py @@ -1,4 +1,4 @@ -from typing import Union +from typing import Union, Optional from slither.core.variables.local_variable import LocalVariable from slither.core.variables.state_variable import StateVariable @@ -31,7 +31,7 @@ LVALUE = Union[ ] -def is_valid_rvalue(v: SourceMapping) -> bool: +def is_valid_rvalue(v: Optional[SourceMapping]) -> bool: return isinstance( v, ( @@ -46,7 +46,7 @@ def is_valid_rvalue(v: SourceMapping) -> bool: ) -def is_valid_lvalue(v: SourceMapping) -> bool: +def is_valid_lvalue(v: Optional[SourceMapping]) -> bool: return isinstance( v, ( diff --git a/slither/utils/myprettytable.py b/slither/utils/myprettytable.py index a1dfd7ac0..af10a6ff2 100644 --- a/slither/utils/myprettytable.py +++ b/slither/utils/myprettytable.py @@ -1,4 +1,4 @@ -from typing import List, Dict +from typing import List, Dict, Union from prettytable import PrettyTable @@ -8,7 +8,7 @@ class MyPrettyTable: self._field_names = field_names self._rows: List = [] - def add_row(self, row: List[str]) -> None: + def add_row(self, row: List[Union[str, List[str]]]) -> None: self._rows.append(row) def to_pretty_table(self) -> PrettyTable: From d04fc9e1034b86d96790acf11aec0be212c693c9 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Feb 2023 12:09:13 -0600 Subject: [PATCH 013/193] Start `slither.utils.upgradeability` --- slither/utils/upgradeability.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 slither/utils/upgradeability.py diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py new file mode 100644 index 000000000..d92dc3d6e --- /dev/null +++ b/slither/utils/upgradeability.py @@ -0,0 +1,32 @@ +from slither.core.declarations.contract import Contract + + +def compare(v1: Contract, v2: Contract): + order_vars1 = [v for v in v1.state_variables if not v.is_constant and not v.is_immutable] + order_vars2 = [v for v in v2.state_variables if not v.is_constant and not v.is_immutable] + func_sigs1 = [function.solidity_signature for function in v1.functions] + func_sigs2 = [function.solidity_signature for function in v2.functions] + + results = { + "missing-vars-in-v2": [], + "new-variables": [], + "tainted-variables": [], + "new-functions": [], + "modified-functions": [], + "tainted-functions": [] + } + + if len(order_vars2) <= len(order_vars1): + for variable in order_vars1: + if variable.name not in [v.name for v in order_vars2]: + results["missing-vars-in-v2"].append(variable) + + new_modified_functions = [] + for sig in func_sigs2: + function = v2.get_function_from_signature(sig) + if sig not in func_sigs1: + new_modified_functions.append(function) + results["new-functions"].append(function) + else: + orig_function = v1.get_function_from_signature(sig) + if function From f08d2afb3ede7fc2016413755408cad422bcec51 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Feb 2023 12:45:26 -0600 Subject: [PATCH 014/193] Implement `compare(v1: Contract, v2: Contract)` in `slither.utils.upgradeability` --- slither/utils/upgradeability.py | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index d92dc3d6e..be4fe313b 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -16,11 +16,13 @@ def compare(v1: Contract, v2: Contract): "tainted-functions": [] } + # Since this is not a detector, include any missing variables in the v2 contract if len(order_vars2) <= len(order_vars1): for variable in order_vars1: if variable.name not in [v.name for v in order_vars2]: results["missing-vars-in-v2"].append(variable) + # Find all new and modified functions in the v2 contract new_modified_functions = [] for sig in func_sigs2: function = v2.get_function_from_signature(sig) @@ -29,4 +31,31 @@ def compare(v1: Contract, v2: Contract): results["new-functions"].append(function) else: orig_function = v1.get_function_from_signature(sig) - if function + # If the function content hashes are the same, no need to investigate the function further + if function.source_mapping.content_hash != orig_function.source_mapping.content_hash: + # If the hashes differ, it is possible a change in a name or in a comment could be the only difference + # So we need to resort to walking through the CFG and comparing the IR operations + for i, node in enumerate(function.nodes): + if function in new_modified_functions: + break + for j, ir in enumerate(node.irs): + if ir != orig_function.nodes[i].irs[j]: + new_modified_functions.append(function) + results["modified-functions"].append(function) + + # Find all unmodified functions that call a modified function, i.e., tainted functions + for function in v2.functions: + if function in new_modified_functions: + continue + modified_calls = [funct for func in new_modified_functions if func in function.internal_calls] + if len(modified_calls) > 0: + results["tainted-functions"].append(function) + + # Find all new or tainted variables, i.e., variables that are read or written by a new/modified function + for idx, var in enumerate(order_vars2): + read_by = v2.get_functions_reading_from_variable(var) + written_by = v2.get_functions_writing_to_variable(var) + if len(order_vars1) <= idx: + results["new-variables"].append(var) + elif any([func in read_by or func in written_by for func in new_modified_functions]): + results["tainted-variables"].append(var) From ebd2201bdd26266b5fb7618d3c3e37508a4d96e1 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Feb 2023 13:13:02 -0600 Subject: [PATCH 015/193] Pylint cut down on branches and nested blocks by adding an `is_function_modified` helper function --- slither/utils/upgradeability.py | 73 +++++++++++++++++++++++++-------- 1 file changed, 56 insertions(+), 17 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index be4fe313b..9eedc6dfe 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -1,7 +1,28 @@ from slither.core.declarations.contract import Contract +from slither.core.declarations.function import Function -def compare(v1: Contract, v2: Contract): +# pylint: disable=too-many-locals +def compare(v1: Contract, v2: Contract) -> dict: + """ + Compares two versions of a contract. Most useful for upgradeable (logic) contracts, + but does not require that Contract.is_upgradeable returns true for either contract. + + Args: + v1: Original version of (upgradeable) contract + v2: Updated version of (upgradeable) contract + + Returns: dict { + "missing-vars-in-v2": list[Variable], + "new-variables": list[Variable], + "tainted-variables": list[Variable], + "new-functions": list[Function], + "modified-functions": list[Function], + "tainted-functions": list[Function] + } + + """ + order_vars1 = [v for v in v1.state_variables if not v.is_constant and not v.is_immutable] order_vars2 = [v for v in v2.state_variables if not v.is_constant and not v.is_immutable] func_sigs1 = [function.solidity_signature for function in v1.functions] @@ -13,7 +34,7 @@ def compare(v1: Contract, v2: Contract): "tainted-variables": [], "new-functions": [], "modified-functions": [], - "tainted-functions": [] + "tainted-functions": [], } # Since this is not a detector, include any missing variables in the v2 contract @@ -26,28 +47,21 @@ def compare(v1: Contract, v2: Contract): new_modified_functions = [] for sig in func_sigs2: function = v2.get_function_from_signature(sig) + orig_function = v1.get_function_from_signature(sig) if sig not in func_sigs1: new_modified_functions.append(function) results["new-functions"].append(function) - else: - orig_function = v1.get_function_from_signature(sig) - # If the function content hashes are the same, no need to investigate the function further - if function.source_mapping.content_hash != orig_function.source_mapping.content_hash: - # If the hashes differ, it is possible a change in a name or in a comment could be the only difference - # So we need to resort to walking through the CFG and comparing the IR operations - for i, node in enumerate(function.nodes): - if function in new_modified_functions: - break - for j, ir in enumerate(node.irs): - if ir != orig_function.nodes[i].irs[j]: - new_modified_functions.append(function) - results["modified-functions"].append(function) + elif is_function_modified(orig_function, function): + new_modified_functions.append(function) + results["modified-functions"].append(function) # Find all unmodified functions that call a modified function, i.e., tainted functions for function in v2.functions: if function in new_modified_functions: continue - modified_calls = [funct for func in new_modified_functions if func in function.internal_calls] + modified_calls = [ + func for func in new_modified_functions if func in function.internal_calls + ] if len(modified_calls) > 0: results["tainted-functions"].append(function) @@ -57,5 +71,30 @@ def compare(v1: Contract, v2: Contract): written_by = v2.get_functions_writing_to_variable(var) if len(order_vars1) <= idx: results["new-variables"].append(var) - elif any([func in read_by or func in written_by for func in new_modified_functions]): + elif any(func in read_by or func in written_by for func in new_modified_functions): results["tainted-variables"].append(var) + + +def is_function_modified(f1: Function, f2: Function) -> bool: + """ + Compares two versions of a function, and returns True if the function has been modified. + First checks whether the functions' content hashes are equal to quickly rule out identical functions. + Walks the CFGs and compares IR operations if hashes differ to rule out false positives, i.e., from changed comments. + + Args: + f1: Original version of the function + f2: New version of the function + + Returns: True if the functions differ, otherwise False + + """ + # If the function content hashes are the same, no need to investigate the function further + if f1.source_mapping.content_hash == f2.source_mapping.content_hash: + return False + # If the hashes differ, it is possible a change in a name or in a comment could be the only difference + # So we need to resort to walking through the CFG and comparing the IR operations + for i, node in enumerate(f2.nodes): + for j, ir in enumerate(node.irs): + if ir != f1.nodes[i].irs[j]: + return True + return False From 04c71c24bbdc6344a920b6dcd8b0d6434ca6325f Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 28 Feb 2023 12:13:06 -0600 Subject: [PATCH 016/193] Add return statement (whoops!) --- slither/utils/upgradeability.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 9eedc6dfe..975015743 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -74,6 +74,8 @@ def compare(v1: Contract, v2: Contract) -> dict: elif any(func in read_by or func in written_by for func in new_modified_functions): results["tainted-variables"].append(var) + return results + def is_function_modified(f1: Function, f2: Function) -> bool: """ From 5b361e82876c165f69364ecd3c4973f74fe4d16c Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 28 Feb 2023 12:27:35 -0600 Subject: [PATCH 017/193] Also consider an unmodified function tainted if it reads/writes the same state variable(s) as a new/modified function --- slither/utils/upgradeability.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 975015743..d0655d324 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -45,6 +45,7 @@ def compare(v1: Contract, v2: Contract) -> dict: # Find all new and modified functions in the v2 contract new_modified_functions = [] + new_modified_function_vars = [] for sig in func_sigs2: function = v2.get_function_from_signature(sig) orig_function = v1.get_function_from_signature(sig) @@ -54,15 +55,24 @@ def compare(v1: Contract, v2: Contract) -> dict: elif is_function_modified(orig_function, function): new_modified_functions.append(function) results["modified-functions"].append(function) + else: + continue + for var in function.state_variables_read + function.state_variables_written: + if var not in new_modified_function_vars: + new_modified_function_vars.append(var) - # Find all unmodified functions that call a modified function, i.e., tainted functions + # Find all unmodified functions that call a modified function or read/write the + # same state variable(s) as a new/modified function, i.e., tainted functions for function in v2.functions: if function in new_modified_functions: continue modified_calls = [ func for func in new_modified_functions if func in function.internal_calls ] - if len(modified_calls) > 0: + tainted_vars = [ + var for var in new_modified_function_vars if var in function.variables_read_or_written + ] + if len(modified_calls) > 0 or len(tainted_vars) > 0: results["tainted-functions"].append(function) # Find all new or tainted variables, i.e., variables that are read or written by a new/modified function From 6b9d21abc23f7588a28e546482515f9549ff3340 Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 28 Feb 2023 12:40:43 -0600 Subject: [PATCH 018/193] Make pylint happy (reduce branches) --- slither/utils/upgradeability.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index d0655d324..2f7263f45 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -52,14 +52,11 @@ def compare(v1: Contract, v2: Contract) -> dict: if sig not in func_sigs1: new_modified_functions.append(function) results["new-functions"].append(function) + new_modified_function_vars += function.state_variables_read + function.state_variables_written elif is_function_modified(orig_function, function): new_modified_functions.append(function) results["modified-functions"].append(function) - else: - continue - for var in function.state_variables_read + function.state_variables_written: - if var not in new_modified_function_vars: - new_modified_function_vars.append(var) + new_modified_function_vars += function.state_variables_read + function.state_variables_written # Find all unmodified functions that call a modified function or read/write the # same state variable(s) as a new/modified function, i.e., tainted functions From 3757601640053d4fdc609f12bb591b78923194b6 Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 28 Feb 2023 13:00:15 -0600 Subject: [PATCH 019/193] Avoid duplicates, constants and immutables when finding functions tainted by `new_modified_function_vars` --- slither/utils/upgradeability.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 2f7263f45..8b4f2a215 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -52,11 +52,15 @@ def compare(v1: Contract, v2: Contract) -> dict: if sig not in func_sigs1: new_modified_functions.append(function) results["new-functions"].append(function) - new_modified_function_vars += function.state_variables_read + function.state_variables_written + new_modified_function_vars += ( + function.state_variables_read + function.state_variables_written + ) elif is_function_modified(orig_function, function): new_modified_functions.append(function) results["modified-functions"].append(function) - new_modified_function_vars += function.state_variables_read + function.state_variables_written + new_modified_function_vars += ( + function.state_variables_read + function.state_variables_written + ) # Find all unmodified functions that call a modified function or read/write the # same state variable(s) as a new/modified function, i.e., tainted functions @@ -67,7 +71,11 @@ def compare(v1: Contract, v2: Contract) -> dict: func for func in new_modified_functions if func in function.internal_calls ] tainted_vars = [ - var for var in new_modified_function_vars if var in function.variables_read_or_written + var + for var in set(new_modified_function_vars) + if var in function.variables_read_or_written + and not var.is_constant + and not var.is_immutable ] if len(modified_calls) > 0 or len(tainted_vars) > 0: results["tainted-functions"].append(function) From 770ca81368728b91b7b54be65b057a2d4e277bf6 Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 28 Feb 2023 13:05:16 -0600 Subject: [PATCH 020/193] Avoid constructor when finding functions tainted by `new_modified_functions` --- slither/utils/upgradeability.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 8b4f2a215..45bc78bda 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -65,7 +65,7 @@ def compare(v1: Contract, v2: Contract) -> dict: # Find all unmodified functions that call a modified function or read/write the # same state variable(s) as a new/modified function, i.e., tainted functions for function in v2.functions: - if function in new_modified_functions: + if function in new_modified_functions or function.is_constructor: continue modified_calls = [ func for func in new_modified_functions if func in function.internal_calls From 596b4d08657593ed97b5df847a19a520d658724c Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 28 Feb 2023 13:49:56 -0600 Subject: [PATCH 021/193] Avoid `slitherConstructorConstantVariables()` when finding modified functions --- slither/utils/upgradeability.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 45bc78bda..d8bc645f6 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -65,7 +65,11 @@ def compare(v1: Contract, v2: Contract) -> dict: # Find all unmodified functions that call a modified function or read/write the # same state variable(s) as a new/modified function, i.e., tainted functions for function in v2.functions: - if function in new_modified_functions or function.is_constructor: + if ( + function in new_modified_functions + or function.is_constructor + or function.name.startswith("slither") + ): continue modified_calls = [ func for func in new_modified_functions if func in function.internal_calls From 480ee60cc36a119fb18e0f32640ad96bc25fe1cb Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 28 Feb 2023 13:51:01 -0600 Subject: [PATCH 022/193] Avoid `slitherConstructorConstantVariables()` when finding modified functions --- slither/utils/upgradeability.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index d8bc645f6..22a076ff3 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -55,7 +55,9 @@ def compare(v1: Contract, v2: Contract) -> dict: new_modified_function_vars += ( function.state_variables_read + function.state_variables_written ) - elif is_function_modified(orig_function, function): + elif not function.name.startswith("slither") and is_function_modified( + orig_function, function + ): new_modified_functions.append(function) results["modified-functions"].append(function) new_modified_function_vars += ( From 715826e12099db2a9715388292eaeb625a1b9c4a Mon Sep 17 00:00:00 2001 From: "S.Sidarth" <38394431+sidarth16@users.noreply.github.com> Date: Fri, 3 Mar 2023 14:15:10 +0530 Subject: [PATCH 023/193] Update reentrancy_eth.py msg.sender --- slither/detectors/reentrancy/reentrancy_eth.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/detectors/reentrancy/reentrancy_eth.py b/slither/detectors/reentrancy/reentrancy_eth.py index 73622cf54..ccb668837 100644 --- a/slither/detectors/reentrancy/reentrancy_eth.py +++ b/slither/detectors/reentrancy/reentrancy_eth.py @@ -38,7 +38,7 @@ Do not report reentrancies that don't involve Ether (see `reentrancy-no-eth`)""" ```solidity function withdrawBalance(){ // send userBalance[msg.sender] Ether to msg.sender - // if mgs.sender is a contract, it will call its fallback function + // if msg.sender is a contract, it will call its fallback function if( ! (msg.sender.call.value(userBalance[msg.sender])() ) ){ throw; } From 535662b3f0f03d616e9708fb6ddd35fa80350bd4 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Sun, 5 Mar 2023 21:02:50 -0600 Subject: [PATCH 024/193] remove mislabeled tests, update 0.4.12 tests to be compact --- .../assembly-all.sol-0.4.0-compact.zip | Bin 997 -> 0 bytes .../assembly-all.sol-0.4.1-compact.zip | Bin 997 -> 0 bytes .../assembly-all.sol-0.4.10-compact.zip | Bin 1050 -> 0 bytes .../assembly-all.sol-0.4.11-compact.zip | Bin 1065 -> 0 bytes .../assembly-all.sol-0.4.12-compact.zip | Bin 1187 -> 1202 bytes .../assembly-all.sol-0.4.2-compact.zip | Bin 999 -> 0 bytes .../assembly-all.sol-0.4.3-compact.zip | Bin 999 -> 0 bytes .../assembly-all.sol-0.4.4-compact.zip | Bin 999 -> 0 bytes .../assembly-all.sol-0.4.5-compact.zip | Bin 980 -> 0 bytes .../assembly-all.sol-0.4.6-compact.zip | Bin 982 -> 0 bytes .../assembly-all.sol-0.4.7-compact.zip | Bin 1059 -> 0 bytes .../assembly-all.sol-0.4.8-compact.zip | Bin 1062 -> 0 bytes .../assembly-all.sol-0.4.9-compact.zip | Bin 1052 -> 0 bytes .../assignment-0.4.0.sol-0.4.0-compact.zip | Bin 1498 -> 0 bytes .../assignment-0.4.0.sol-0.4.1-compact.zip | Bin 1499 -> 0 bytes .../assignment-0.4.0.sol-0.4.10-compact.zip | Bin 1513 -> 0 bytes .../assignment-0.4.0.sol-0.4.11-compact.zip | Bin 1541 -> 0 bytes .../assignment-0.4.0.sol-0.4.12-compact.zip | Bin 1737 -> 1837 bytes .../assignment-0.4.0.sol-0.4.2-compact.zip | Bin 1503 -> 0 bytes .../assignment-0.4.0.sol-0.4.3-compact.zip | Bin 1498 -> 0 bytes .../assignment-0.4.0.sol-0.4.4-compact.zip | Bin 1500 -> 0 bytes .../assignment-0.4.0.sol-0.4.5-compact.zip | Bin 1495 -> 0 bytes .../assignment-0.4.0.sol-0.4.6-compact.zip | Bin 1501 -> 0 bytes .../assignment-0.4.0.sol-0.4.7-compact.zip | Bin 1570 -> 0 bytes .../assignment-0.4.0.sol-0.4.8-compact.zip | Bin 1571 -> 0 bytes .../assignment-0.4.0.sol-0.4.9-compact.zip | Bin 1512 -> 0 bytes .../assignment-0.4.7.sol-0.4.7-compact.zip | Bin 1660 -> 0 bytes .../assignment-0.4.7.sol-0.4.8-compact.zip | Bin 1665 -> 0 bytes .../assignment-0.4.7.sol-0.4.9-compact.zip | Bin 1597 -> 0 bytes ...inaryoperation-0.4.0.sol-0.4.0-compact.zip | Bin 1773 -> 0 bytes ...inaryoperation-0.4.0.sol-0.4.1-compact.zip | Bin 1777 -> 0 bytes ...naryoperation-0.4.0.sol-0.4.10-compact.zip | Bin 1664 -> 0 bytes ...naryoperation-0.4.0.sol-0.4.11-compact.zip | Bin 1680 -> 0 bytes ...naryoperation-0.4.0.sol-0.4.12-compact.zip | Bin 1918 -> 2088 bytes ...inaryoperation-0.4.0.sol-0.4.2-compact.zip | Bin 1777 -> 0 bytes ...inaryoperation-0.4.0.sol-0.4.3-compact.zip | Bin 1775 -> 0 bytes ...inaryoperation-0.4.0.sol-0.4.4-compact.zip | Bin 1774 -> 0 bytes ...inaryoperation-0.4.0.sol-0.4.5-compact.zip | Bin 1732 -> 0 bytes ...inaryoperation-0.4.0.sol-0.4.6-compact.zip | Bin 1730 -> 0 bytes ...inaryoperation-0.4.0.sol-0.4.7-compact.zip | Bin 1764 -> 0 bytes ...inaryoperation-0.4.0.sol-0.4.8-compact.zip | Bin 1747 -> 0 bytes ...inaryoperation-0.4.0.sol-0.4.9-compact.zip | Bin 1668 -> 0 bytes ...inaryoperation-0.4.7.sol-0.4.7-compact.zip | Bin 1812 -> 0 bytes ...inaryoperation-0.4.7.sol-0.4.8-compact.zip | Bin 1811 -> 0 bytes ...inaryoperation-0.4.7.sol-0.4.9-compact.zip | Bin 1718 -> 0 bytes .../compile/break-all.sol-0.4.0-compact.zip | Bin 2030 -> 0 bytes .../compile/break-all.sol-0.4.1-compact.zip | Bin 2028 -> 0 bytes .../compile/break-all.sol-0.4.10-compact.zip | Bin 2016 -> 0 bytes .../compile/break-all.sol-0.4.11-compact.zip | Bin 2072 -> 0 bytes .../compile/break-all.sol-0.4.12-compact.zip | Bin 2364 -> 2543 bytes .../compile/break-all.sol-0.4.2-compact.zip | Bin 2024 -> 0 bytes .../compile/break-all.sol-0.4.3-compact.zip | Bin 2033 -> 0 bytes .../compile/break-all.sol-0.4.4-compact.zip | Bin 2035 -> 0 bytes .../compile/break-all.sol-0.4.5-compact.zip | Bin 2027 -> 0 bytes .../compile/break-all.sol-0.4.6-compact.zip | Bin 2035 -> 0 bytes .../compile/break-all.sol-0.4.7-compact.zip | Bin 2111 -> 0 bytes .../compile/break-all.sol-0.4.8-compact.zip | Bin 2105 -> 0 bytes .../compile/break-all.sol-0.4.9-compact.zip | Bin 2020 -> 0 bytes ...call_to_variable-all.sol-0.4.0-compact.zip | Bin 1383 -> 0 bytes ...call_to_variable-all.sol-0.4.1-compact.zip | Bin 1382 -> 0 bytes ...all_to_variable-all.sol-0.4.10-compact.zip | Bin 1520 -> 0 bytes ...all_to_variable-all.sol-0.4.11-compact.zip | Bin 1557 -> 0 bytes ...all_to_variable-all.sol-0.4.12-compact.zip | Bin 1773 -> 1853 bytes ...call_to_variable-all.sol-0.4.2-compact.zip | Bin 1390 -> 0 bytes ...call_to_variable-all.sol-0.4.3-compact.zip | Bin 1392 -> 0 bytes ...call_to_variable-all.sol-0.4.4-compact.zip | Bin 1391 -> 0 bytes ...call_to_variable-all.sol-0.4.5-compact.zip | Bin 1397 -> 0 bytes ...call_to_variable-all.sol-0.4.6-compact.zip | Bin 1397 -> 0 bytes ...call_to_variable-all.sol-0.4.7-compact.zip | Bin 1538 -> 0 bytes ...call_to_variable-all.sol-0.4.8-compact.zip | Bin 1535 -> 0 bytes ...call_to_variable-all.sol-0.4.9-compact.zip | Bin 1519 -> 0 bytes .../compile/comment-all.sol-0.4.0-compact.zip | Bin 1001 -> 0 bytes .../compile/comment-all.sol-0.4.1-compact.zip | Bin 999 -> 0 bytes .../comment-all.sol-0.4.10-compact.zip | Bin 1071 -> 0 bytes .../comment-all.sol-0.4.11-compact.zip | Bin 1080 -> 0 bytes .../comment-all.sol-0.4.12-compact.zip | Bin 1192 -> 1197 bytes .../compile/comment-all.sol-0.4.2-compact.zip | Bin 999 -> 0 bytes .../compile/comment-all.sol-0.4.3-compact.zip | Bin 1003 -> 0 bytes .../compile/comment-all.sol-0.4.4-compact.zip | Bin 1001 -> 0 bytes .../compile/comment-all.sol-0.4.5-compact.zip | Bin 999 -> 0 bytes .../compile/comment-all.sol-0.4.6-compact.zip | Bin 999 -> 0 bytes .../compile/comment-all.sol-0.4.7-compact.zip | Bin 1070 -> 0 bytes .../compile/comment-all.sol-0.4.8-compact.zip | Bin 1077 -> 0 bytes .../compile/comment-all.sol-0.4.9-compact.zip | Bin 1071 -> 0 bytes .../conditional-all.sol-0.4.0-compact.zip | Bin 1886 -> 0 bytes .../conditional-all.sol-0.4.1-compact.zip | Bin 1885 -> 0 bytes .../conditional-all.sol-0.4.10-compact.zip | Bin 1908 -> 0 bytes .../conditional-all.sol-0.4.11-compact.zip | Bin 1913 -> 0 bytes .../conditional-all.sol-0.4.12-compact.zip | Bin 2208 -> 2551 bytes .../conditional-all.sol-0.4.2-compact.zip | Bin 1884 -> 0 bytes .../conditional-all.sol-0.4.3-compact.zip | Bin 1885 -> 0 bytes .../conditional-all.sol-0.4.4-compact.zip | Bin 1881 -> 0 bytes .../conditional-all.sol-0.4.5-compact.zip | Bin 1883 -> 0 bytes .../conditional-all.sol-0.4.6-compact.zip | Bin 1880 -> 0 bytes .../conditional-all.sol-0.4.7-compact.zip | Bin 1974 -> 0 bytes .../conditional-all.sol-0.4.8-compact.zip | Bin 1967 -> 0 bytes .../conditional-all.sol-0.4.9-compact.zip | Bin 1905 -> 0 bytes .../continue-all.sol-0.4.0-compact.zip | Bin 2029 -> 0 bytes .../continue-all.sol-0.4.1-compact.zip | Bin 2029 -> 0 bytes .../continue-all.sol-0.4.10-compact.zip | Bin 2021 -> 0 bytes .../continue-all.sol-0.4.11-compact.zip | Bin 2083 -> 0 bytes .../continue-all.sol-0.4.12-compact.zip | Bin 2376 -> 2552 bytes .../continue-all.sol-0.4.2-compact.zip | Bin 2035 -> 0 bytes .../continue-all.sol-0.4.3-compact.zip | Bin 2040 -> 0 bytes .../continue-all.sol-0.4.4-compact.zip | Bin 2043 -> 0 bytes .../continue-all.sol-0.4.5-compact.zip | Bin 2043 -> 0 bytes .../continue-all.sol-0.4.6-compact.zip | Bin 2048 -> 0 bytes .../continue-all.sol-0.4.7-compact.zip | Bin 2115 -> 0 bytes .../continue-all.sol-0.4.8-compact.zip | Bin 2121 -> 0 bytes .../continue-all.sol-0.4.9-compact.zip | Bin 2022 -> 0 bytes .../contract-0.4.0.sol-0.4.0-compact.zip | Bin 1650 -> 0 bytes .../contract-0.4.0.sol-0.4.1-compact.zip | Bin 1648 -> 0 bytes .../contract-0.4.0.sol-0.4.10-compact.zip | Bin 1950 -> 0 bytes .../contract-0.4.0.sol-0.4.11-compact.zip | Bin 1984 -> 0 bytes .../contract-0.4.0.sol-0.4.12-compact.zip | Bin 2269 -> 2373 bytes .../contract-0.4.0.sol-0.4.2-compact.zip | Bin 1653 -> 0 bytes .../contract-0.4.0.sol-0.4.3-compact.zip | Bin 1649 -> 0 bytes .../contract-0.4.0.sol-0.4.4-compact.zip | Bin 1651 -> 0 bytes .../contract-0.4.0.sol-0.4.5-compact.zip | Bin 1666 -> 0 bytes .../contract-0.4.0.sol-0.4.6-compact.zip | Bin 1667 -> 0 bytes .../contract-0.4.0.sol-0.4.7-compact.zip | Bin 2025 -> 0 bytes .../contract-0.4.0.sol-0.4.8-compact.zip | Bin 2019 -> 0 bytes .../contract-0.4.0.sol-0.4.9-compact.zip | Bin 1943 -> 0 bytes .../custom_error-0.4.0.sol-0.4.0-compact.zip | Bin 513 -> 0 bytes .../custom_error-0.4.0.sol-0.4.1-compact.zip | Bin 513 -> 0 bytes .../custom_error-0.4.0.sol-0.4.10-compact.zip | Bin 514 -> 0 bytes .../custom_error-0.4.0.sol-0.4.11-compact.zip | Bin 522 -> 0 bytes .../custom_error-0.4.0.sol-0.4.12-compact.zip | Bin 571 -> 558 bytes .../custom_error-0.4.0.sol-0.4.2-compact.zip | Bin 514 -> 0 bytes .../custom_error-0.4.0.sol-0.4.3-compact.zip | Bin 514 -> 0 bytes .../custom_error-0.4.0.sol-0.4.4-compact.zip | Bin 514 -> 0 bytes .../custom_error-0.4.0.sol-0.4.5-compact.zip | Bin 514 -> 0 bytes .../custom_error-0.4.0.sol-0.4.6-compact.zip | Bin 514 -> 0 bytes .../custom_error-0.4.0.sol-0.4.7-compact.zip | Bin 514 -> 0 bytes .../custom_error-0.4.0.sol-0.4.8-compact.zip | Bin 514 -> 0 bytes .../custom_error-0.4.0.sol-0.4.9-compact.zip | Bin 514 -> 0 bytes .../dowhile-0.4.0.sol-0.4.0-compact.zip | Bin 720 -> 0 bytes .../dowhile-0.4.0.sol-0.4.1-compact.zip | Bin 720 -> 0 bytes .../dowhile-0.4.0.sol-0.4.10-compact.zip | Bin 795 -> 0 bytes .../dowhile-0.4.0.sol-0.4.11-compact.zip | Bin 804 -> 0 bytes .../dowhile-0.4.0.sol-0.4.12-compact.zip | Bin 870 -> 858 bytes .../dowhile-0.4.0.sol-0.4.2-compact.zip | Bin 721 -> 0 bytes .../dowhile-0.4.0.sol-0.4.3-compact.zip | Bin 721 -> 0 bytes .../dowhile-0.4.0.sol-0.4.4-compact.zip | Bin 721 -> 0 bytes .../dowhile-0.4.0.sol-0.4.5-compact.zip | Bin 723 -> 0 bytes .../dowhile-0.4.0.sol-0.4.6-compact.zip | Bin 723 -> 0 bytes .../dowhile-0.4.0.sol-0.4.7-compact.zip | Bin 795 -> 0 bytes .../dowhile-0.4.0.sol-0.4.8-compact.zip | Bin 794 -> 0 bytes .../dowhile-0.4.0.sol-0.4.9-compact.zip | Bin 795 -> 0 bytes .../dowhile-0.4.5.sol-0.4.5-compact.zip | Bin 1395 -> 0 bytes .../dowhile-0.4.5.sol-0.4.6-compact.zip | Bin 1395 -> 0 bytes .../dowhile-0.4.5.sol-0.4.7-compact.zip | Bin 1477 -> 0 bytes .../dowhile-0.4.5.sol-0.4.8-compact.zip | Bin 1473 -> 0 bytes .../dowhile-0.4.5.sol-0.4.9-compact.zip | Bin 1440 -> 0 bytes .../compile/enum-0.4.0.sol-0.4.0-compact.zip | Bin 2243 -> 0 bytes .../compile/enum-0.4.0.sol-0.4.1-compact.zip | Bin 2216 -> 0 bytes .../compile/enum-0.4.0.sol-0.4.10-compact.zip | Bin 2146 -> 0 bytes .../compile/enum-0.4.0.sol-0.4.11-compact.zip | Bin 2049 -> 0 bytes .../compile/enum-0.4.0.sol-0.4.12-compact.zip | Bin 2133 -> 2106 bytes .../compile/enum-0.4.0.sol-0.4.2-compact.zip | Bin 2211 -> 0 bytes .../compile/enum-0.4.0.sol-0.4.3-compact.zip | Bin 2215 -> 0 bytes .../compile/enum-0.4.0.sol-0.4.4-compact.zip | Bin 2239 -> 0 bytes .../compile/enum-0.4.0.sol-0.4.5-compact.zip | Bin 2244 -> 0 bytes .../compile/enum-0.4.0.sol-0.4.6-compact.zip | Bin 2199 -> 0 bytes .../compile/enum-0.4.0.sol-0.4.7-compact.zip | Bin 2311 -> 0 bytes .../compile/enum-0.4.0.sol-0.4.8-compact.zip | Bin 2304 -> 0 bytes .../compile/enum-0.4.0.sol-0.4.9-compact.zip | Bin 2151 -> 0 bytes .../compile/event-all.sol-0.4.0-compact.zip | Bin 1034 -> 0 bytes .../compile/event-all.sol-0.4.1-compact.zip | Bin 1032 -> 0 bytes .../compile/event-all.sol-0.4.10-compact.zip | Bin 1082 -> 0 bytes .../compile/event-all.sol-0.4.11-compact.zip | Bin 1138 -> 0 bytes .../compile/event-all.sol-0.4.12-compact.zip | Bin 1235 -> 1259 bytes .../compile/event-all.sol-0.4.2-compact.zip | Bin 1034 -> 0 bytes .../compile/event-all.sol-0.4.3-compact.zip | Bin 1034 -> 0 bytes .../compile/event-all.sol-0.4.4-compact.zip | Bin 1034 -> 0 bytes .../compile/event-all.sol-0.4.5-compact.zip | Bin 1036 -> 0 bytes .../compile/event-all.sol-0.4.6-compact.zip | Bin 1036 -> 0 bytes .../compile/event-all.sol-0.4.7-compact.zip | Bin 1105 -> 0 bytes .../compile/event-all.sol-0.4.8-compact.zip | Bin 1104 -> 0 bytes .../compile/event-all.sol-0.4.9-compact.zip | Bin 1080 -> 0 bytes .../compile/for-all.sol-0.4.0-compact.zip | Bin 3707 -> 0 bytes .../compile/for-all.sol-0.4.1-compact.zip | Bin 3745 -> 0 bytes .../compile/for-all.sol-0.4.10-compact.zip | Bin 3635 -> 0 bytes .../compile/for-all.sol-0.4.11-compact.zip | Bin 3578 -> 0 bytes .../compile/for-all.sol-0.4.12-compact.zip | Bin 4051 -> 4281 bytes .../compile/for-all.sol-0.4.2-compact.zip | Bin 3720 -> 0 bytes .../compile/for-all.sol-0.4.3-compact.zip | Bin 3746 -> 0 bytes .../compile/for-all.sol-0.4.4-compact.zip | Bin 3723 -> 0 bytes .../compile/for-all.sol-0.4.5-compact.zip | Bin 3719 -> 0 bytes .../compile/for-all.sol-0.4.6-compact.zip | Bin 3746 -> 0 bytes .../compile/for-all.sol-0.4.7-compact.zip | Bin 3801 -> 0 bytes .../compile/for-all.sol-0.4.8-compact.zip | Bin 3817 -> 0 bytes .../compile/for-all.sol-0.4.9-compact.zip | Bin 3636 -> 0 bytes .../function-0.4.0.sol-0.4.0-compact.zip | Bin 2514 -> 0 bytes .../function-0.4.0.sol-0.4.1-compact.zip | Bin 2515 -> 0 bytes .../function-0.4.0.sol-0.4.10-compact.zip | Bin 2551 -> 0 bytes .../function-0.4.0.sol-0.4.11-compact.zip | Bin 2581 -> 0 bytes .../function-0.4.0.sol-0.4.12-compact.zip | Bin 2852 -> 2911 bytes .../function-0.4.0.sol-0.4.2-compact.zip | Bin 2527 -> 0 bytes .../function-0.4.0.sol-0.4.3-compact.zip | Bin 2519 -> 0 bytes .../function-0.4.0.sol-0.4.4-compact.zip | Bin 2530 -> 0 bytes .../function-0.4.0.sol-0.4.5-compact.zip | Bin 2557 -> 0 bytes .../function-0.4.0.sol-0.4.6-compact.zip | Bin 2554 -> 0 bytes .../function-0.4.0.sol-0.4.7-compact.zip | Bin 2778 -> 0 bytes .../function-0.4.0.sol-0.4.8-compact.zip | Bin 2772 -> 0 bytes .../function-0.4.0.sol-0.4.9-compact.zip | Bin 2550 -> 0 bytes .../functioncall-0.4.0.sol-0.4.0-compact.zip | Bin 3664 -> 0 bytes .../functioncall-0.4.0.sol-0.4.1-compact.zip | Bin 3663 -> 0 bytes .../functioncall-0.4.0.sol-0.4.10-compact.zip | Bin 3673 -> 0 bytes .../functioncall-0.4.0.sol-0.4.11-compact.zip | Bin 3710 -> 0 bytes .../functioncall-0.4.0.sol-0.4.12-compact.zip | Bin 4318 -> 4655 bytes .../functioncall-0.4.0.sol-0.4.2-compact.zip | Bin 3669 -> 0 bytes .../functioncall-0.4.0.sol-0.4.3-compact.zip | Bin 3656 -> 0 bytes .../functioncall-0.4.0.sol-0.4.4-compact.zip | Bin 3656 -> 0 bytes .../functioncall-0.4.0.sol-0.4.5-compact.zip | Bin 3659 -> 0 bytes .../functioncall-0.4.0.sol-0.4.6-compact.zip | Bin 3654 -> 0 bytes .../functioncall-0.4.0.sol-0.4.7-compact.zip | Bin 3796 -> 0 bytes .../functioncall-0.4.0.sol-0.4.8-compact.zip | Bin 3775 -> 0 bytes .../functioncall-0.4.0.sol-0.4.9-compact.zip | Bin 3673 -> 0 bytes .../functioncall-0.4.5.sol-0.4.5-compact.zip | Bin 3918 -> 0 bytes .../functioncall-0.4.5.sol-0.4.6-compact.zip | Bin 3914 -> 0 bytes .../functioncall-0.4.5.sol-0.4.7-compact.zip | Bin 4045 -> 0 bytes .../functioncall-0.4.5.sol-0.4.8-compact.zip | Bin 4026 -> 0 bytes .../functioncall-0.4.5.sol-0.4.9-compact.zip | Bin 3906 -> 0 bytes .../compile/if-all.sol-0.4.0-compact.zip | Bin 2402 -> 0 bytes .../compile/if-all.sol-0.4.1-compact.zip | Bin 2387 -> 0 bytes .../compile/if-all.sol-0.4.10-compact.zip | Bin 2349 -> 0 bytes .../compile/if-all.sol-0.4.11-compact.zip | Bin 2362 -> 0 bytes .../compile/if-all.sol-0.4.12-compact.zip | Bin 2635 -> 2800 bytes .../compile/if-all.sol-0.4.2-compact.zip | Bin 2385 -> 0 bytes .../compile/if-all.sol-0.4.3-compact.zip | Bin 2380 -> 0 bytes .../compile/if-all.sol-0.4.4-compact.zip | Bin 2383 -> 0 bytes .../compile/if-all.sol-0.4.5-compact.zip | Bin 2383 -> 0 bytes .../compile/if-all.sol-0.4.6-compact.zip | Bin 2364 -> 0 bytes .../compile/if-all.sol-0.4.7-compact.zip | Bin 2445 -> 0 bytes .../compile/if-all.sol-0.4.8-compact.zip | Bin 2437 -> 0 bytes .../compile/if-all.sol-0.4.9-compact.zip | Bin 2346 -> 0 bytes ...from_top_level-0.4.0.sol-0.4.0-compact.zip | Bin 586 -> 0 bytes ...from_top_level-0.4.0.sol-0.4.1-compact.zip | Bin 586 -> 0 bytes ...rom_top_level-0.4.0.sol-0.4.10-compact.zip | Bin 588 -> 0 bytes ...rom_top_level-0.4.0.sol-0.4.11-compact.zip | Bin 598 -> 0 bytes ...rom_top_level-0.4.0.sol-0.4.12-compact.zip | Bin 645 -> 629 bytes ...from_top_level-0.4.0.sol-0.4.2-compact.zip | Bin 587 -> 0 bytes ...from_top_level-0.4.0.sol-0.4.3-compact.zip | Bin 587 -> 0 bytes ...from_top_level-0.4.0.sol-0.4.4-compact.zip | Bin 587 -> 0 bytes ...from_top_level-0.4.0.sol-0.4.5-compact.zip | Bin 587 -> 0 bytes ...from_top_level-0.4.0.sol-0.4.6-compact.zip | Bin 587 -> 0 bytes ...from_top_level-0.4.0.sol-0.4.7-compact.zip | Bin 587 -> 0 bytes ...from_top_level-0.4.0.sol-0.4.8-compact.zip | Bin 587 -> 0 bytes ...from_top_level-0.4.0.sol-0.4.9-compact.zip | Bin 587 -> 0 bytes .../indexaccess-all.sol-0.4.0-compact.zip | Bin 1208 -> 0 bytes .../indexaccess-all.sol-0.4.1-compact.zip | Bin 1206 -> 0 bytes .../indexaccess-all.sol-0.4.10-compact.zip | Bin 1285 -> 0 bytes .../indexaccess-all.sol-0.4.11-compact.zip | Bin 1319 -> 0 bytes .../indexaccess-all.sol-0.4.12-compact.zip | Bin 1532 -> 1644 bytes .../indexaccess-all.sol-0.4.2-compact.zip | Bin 1210 -> 0 bytes .../indexaccess-all.sol-0.4.3-compact.zip | Bin 1208 -> 0 bytes .../indexaccess-all.sol-0.4.4-compact.zip | Bin 1208 -> 0 bytes .../indexaccess-all.sol-0.4.5-compact.zip | Bin 1207 -> 0 bytes .../indexaccess-all.sol-0.4.6-compact.zip | Bin 1207 -> 0 bytes .../indexaccess-all.sol-0.4.7-compact.zip | Bin 1293 -> 0 bytes .../indexaccess-all.sol-0.4.8-compact.zip | Bin 1283 -> 0 bytes .../indexaccess-all.sol-0.4.9-compact.zip | Bin 1292 -> 0 bytes ...dexrangeaccess-0.4.0.sol-0.4.0-compact.zip | Bin 749 -> 0 bytes ...dexrangeaccess-0.4.0.sol-0.4.1-compact.zip | Bin 748 -> 0 bytes ...exrangeaccess-0.4.0.sol-0.4.10-compact.zip | Bin 824 -> 0 bytes ...exrangeaccess-0.4.0.sol-0.4.11-compact.zip | Bin 832 -> 0 bytes ...exrangeaccess-0.4.0.sol-0.4.12-compact.zip | Bin 894 -> 886 bytes ...dexrangeaccess-0.4.0.sol-0.4.2-compact.zip | Bin 749 -> 0 bytes ...dexrangeaccess-0.4.0.sol-0.4.3-compact.zip | Bin 750 -> 0 bytes ...dexrangeaccess-0.4.0.sol-0.4.4-compact.zip | Bin 749 -> 0 bytes ...dexrangeaccess-0.4.0.sol-0.4.5-compact.zip | Bin 751 -> 0 bytes ...dexrangeaccess-0.4.0.sol-0.4.6-compact.zip | Bin 751 -> 0 bytes ...dexrangeaccess-0.4.0.sol-0.4.7-compact.zip | Bin 825 -> 0 bytes ...dexrangeaccess-0.4.0.sol-0.4.8-compact.zip | Bin 823 -> 0 bytes ...dexrangeaccess-0.4.0.sol-0.4.9-compact.zip | Bin 824 -> 0 bytes ...cit_conversion-0.4.0.sol-0.4.0-compact.zip | Bin 797 -> 0 bytes ...cit_conversion-0.4.0.sol-0.4.1-compact.zip | Bin 797 -> 0 bytes ...it_conversion-0.4.0.sol-0.4.10-compact.zip | Bin 869 -> 0 bytes ...it_conversion-0.4.0.sol-0.4.11-compact.zip | Bin 877 -> 0 bytes ...it_conversion-0.4.0.sol-0.4.12-compact.zip | Bin 951 -> 937 bytes ...cit_conversion-0.4.0.sol-0.4.2-compact.zip | Bin 797 -> 0 bytes ...cit_conversion-0.4.0.sol-0.4.3-compact.zip | Bin 797 -> 0 bytes ...cit_conversion-0.4.0.sol-0.4.4-compact.zip | Bin 798 -> 0 bytes ...cit_conversion-0.4.0.sol-0.4.5-compact.zip | Bin 800 -> 0 bytes ...cit_conversion-0.4.0.sol-0.4.6-compact.zip | Bin 800 -> 0 bytes ...cit_conversion-0.4.0.sol-0.4.7-compact.zip | Bin 872 -> 0 bytes ...cit_conversion-0.4.0.sol-0.4.8-compact.zip | Bin 871 -> 0 bytes ...cit_conversion-0.4.0.sol-0.4.9-compact.zip | Bin 867 -> 0 bytes .../literal-0.4.0.sol-0.4.0-compact.zip | Bin 1744 -> 0 bytes .../literal-0.4.0.sol-0.4.1-compact.zip | Bin 1742 -> 0 bytes .../literal-0.4.0.sol-0.4.2-compact.zip | Bin 1742 -> 0 bytes .../literal-0.4.0.sol-0.4.3-compact.zip | Bin 1746 -> 0 bytes .../literal-0.4.0.sol-0.4.4-compact.zip | Bin 1746 -> 0 bytes .../literal-0.4.0.sol-0.4.5-compact.zip | Bin 1601 -> 0 bytes .../literal-0.4.0.sol-0.4.6-compact.zip | Bin 1601 -> 0 bytes .../literal-0.4.0.sol-0.4.7-compact.zip | Bin 1682 -> 0 bytes .../literal-0.4.0.sol-0.4.8-compact.zip | Bin 1678 -> 0 bytes .../literal-0.4.0.sol-0.4.9-compact.zip | Bin 1615 -> 0 bytes .../literal-0.4.10.sol-0.4.10-compact.zip | Bin 1706 -> 0 bytes .../literal-0.4.10.sol-0.4.11-compact.zip | Bin 1717 -> 0 bytes .../literal-0.4.10.sol-0.4.12-compact.zip | Bin 1872 -> 2148 bytes .../memberaccess-0.4.0.sol-0.4.0-compact.zip | Bin 1664 -> 0 bytes .../memberaccess-0.4.0.sol-0.4.1-compact.zip | Bin 1661 -> 0 bytes .../memberaccess-0.4.0.sol-0.4.10-compact.zip | Bin 1661 -> 0 bytes .../memberaccess-0.4.0.sol-0.4.11-compact.zip | Bin 1696 -> 0 bytes .../memberaccess-0.4.0.sol-0.4.12-compact.zip | Bin 2019 -> 2194 bytes .../memberaccess-0.4.0.sol-0.4.2-compact.zip | Bin 1663 -> 0 bytes .../memberaccess-0.4.0.sol-0.4.3-compact.zip | Bin 1658 -> 0 bytes .../memberaccess-0.4.0.sol-0.4.4-compact.zip | Bin 1658 -> 0 bytes .../memberaccess-0.4.0.sol-0.4.5-compact.zip | Bin 1660 -> 0 bytes .../memberaccess-0.4.0.sol-0.4.6-compact.zip | Bin 1668 -> 0 bytes .../memberaccess-0.4.0.sol-0.4.7-compact.zip | Bin 1695 -> 0 bytes .../memberaccess-0.4.0.sol-0.4.8-compact.zip | Bin 1688 -> 0 bytes .../memberaccess-0.4.0.sol-0.4.9-compact.zip | Bin 1658 -> 0 bytes .../minmax-0.4.0.sol-0.4.0-compact.zip | Bin 1102 -> 0 bytes .../minmax-0.4.0.sol-0.4.1-compact.zip | Bin 1100 -> 0 bytes .../minmax-0.4.0.sol-0.4.10-compact.zip | Bin 1166 -> 0 bytes .../minmax-0.4.0.sol-0.4.11-compact.zip | Bin 1205 -> 0 bytes .../minmax-0.4.0.sol-0.4.12-compact.zip | Bin 1356 -> 1423 bytes .../minmax-0.4.0.sol-0.4.2-compact.zip | Bin 1103 -> 0 bytes .../minmax-0.4.0.sol-0.4.3-compact.zip | Bin 1105 -> 0 bytes .../minmax-0.4.0.sol-0.4.4-compact.zip | Bin 1103 -> 0 bytes .../minmax-0.4.0.sol-0.4.5-compact.zip | Bin 1101 -> 0 bytes .../minmax-0.4.0.sol-0.4.6-compact.zip | Bin 1103 -> 0 bytes .../minmax-0.4.0.sol-0.4.7-compact.zip | Bin 1184 -> 0 bytes .../minmax-0.4.0.sol-0.4.8-compact.zip | Bin 1183 -> 0 bytes .../minmax-0.4.0.sol-0.4.9-compact.zip | Bin 1163 -> 0 bytes .../modifier-all.sol-0.4.0-compact.zip | Bin 1098 -> 0 bytes .../modifier-all.sol-0.4.1-compact.zip | Bin 1093 -> 0 bytes .../modifier-all.sol-0.4.10-compact.zip | Bin 1116 -> 0 bytes .../modifier-all.sol-0.4.11-compact.zip | Bin 1165 -> 0 bytes .../modifier-all.sol-0.4.12-compact.zip | Bin 1265 -> 1294 bytes .../modifier-all.sol-0.4.2-compact.zip | Bin 1095 -> 0 bytes .../modifier-all.sol-0.4.3-compact.zip | Bin 1092 -> 0 bytes .../modifier-all.sol-0.4.4-compact.zip | Bin 1092 -> 0 bytes .../modifier-all.sol-0.4.5-compact.zip | Bin 1096 -> 0 bytes .../modifier-all.sol-0.4.6-compact.zip | Bin 1095 -> 0 bytes .../modifier-all.sol-0.4.7-compact.zip | Bin 1161 -> 0 bytes .../modifier-all.sol-0.4.8-compact.zip | Bin 1166 -> 0 bytes .../modifier-all.sol-0.4.9-compact.zip | Bin 1119 -> 0 bytes .../newexpression-0.4.0.sol-0.4.0-compact.zip | Bin 1275 -> 0 bytes .../newexpression-0.4.0.sol-0.4.1-compact.zip | Bin 1271 -> 0 bytes ...newexpression-0.4.0.sol-0.4.10-compact.zip | Bin 1371 -> 0 bytes ...newexpression-0.4.0.sol-0.4.11-compact.zip | Bin 1382 -> 0 bytes ...newexpression-0.4.0.sol-0.4.12-compact.zip | Bin 1596 -> 1730 bytes .../newexpression-0.4.0.sol-0.4.2-compact.zip | Bin 1273 -> 0 bytes .../newexpression-0.4.0.sol-0.4.3-compact.zip | Bin 1270 -> 0 bytes .../newexpression-0.4.0.sol-0.4.4-compact.zip | Bin 1273 -> 0 bytes .../newexpression-0.4.0.sol-0.4.5-compact.zip | Bin 1265 -> 0 bytes .../newexpression-0.4.0.sol-0.4.6-compact.zip | Bin 1268 -> 0 bytes .../newexpression-0.4.0.sol-0.4.7-compact.zip | Bin 1403 -> 0 bytes .../newexpression-0.4.0.sol-0.4.8-compact.zip | Bin 1404 -> 0 bytes .../newexpression-0.4.0.sol-0.4.9-compact.zip | Bin 1376 -> 0 bytes .../pragma-0.4.0.sol-0.4.0-compact.zip | Bin 784 -> 0 bytes .../pragma-0.4.0.sol-0.4.1-compact.zip | Bin 785 -> 0 bytes .../pragma-0.4.0.sol-0.4.10-compact.zip | Bin 853 -> 0 bytes .../pragma-0.4.0.sol-0.4.11-compact.zip | Bin 863 -> 0 bytes .../pragma-0.4.0.sol-0.4.12-compact.zip | Bin 937 -> 926 bytes .../pragma-0.4.0.sol-0.4.2-compact.zip | Bin 786 -> 0 bytes .../pragma-0.4.0.sol-0.4.3-compact.zip | Bin 786 -> 0 bytes .../pragma-0.4.0.sol-0.4.4-compact.zip | Bin 785 -> 0 bytes .../pragma-0.4.0.sol-0.4.5-compact.zip | Bin 787 -> 0 bytes .../pragma-0.4.0.sol-0.4.6-compact.zip | Bin 787 -> 0 bytes .../pragma-0.4.0.sol-0.4.7-compact.zip | Bin 858 -> 0 bytes .../pragma-0.4.0.sol-0.4.8-compact.zip | Bin 858 -> 0 bytes .../pragma-0.4.0.sol-0.4.9-compact.zip | Bin 854 -> 0 bytes .../compile/push-all.sol-0.4.0-compact.zip | Bin 1462 -> 0 bytes .../compile/push-all.sol-0.4.1-compact.zip | Bin 1465 -> 0 bytes .../compile/push-all.sol-0.4.10-compact.zip | Bin 1581 -> 0 bytes .../compile/push-all.sol-0.4.11-compact.zip | Bin 1614 -> 0 bytes .../compile/push-all.sol-0.4.12-compact.zip | Bin 1887 -> 1981 bytes .../compile/push-all.sol-0.4.2-compact.zip | Bin 1467 -> 0 bytes .../compile/push-all.sol-0.4.3-compact.zip | Bin 1464 -> 0 bytes .../compile/push-all.sol-0.4.4-compact.zip | Bin 1467 -> 0 bytes .../compile/push-all.sol-0.4.5-compact.zip | Bin 1449 -> 0 bytes .../compile/push-all.sol-0.4.6-compact.zip | Bin 1449 -> 0 bytes .../compile/push-all.sol-0.4.7-compact.zip | Bin 1544 -> 0 bytes .../compile/push-all.sol-0.4.8-compact.zip | Bin 1535 -> 0 bytes .../compile/push-all.sol-0.4.9-compact.zip | Bin 1580 -> 0 bytes .../compile/return-all.sol-0.4.0-compact.zip | Bin 2237 -> 0 bytes .../compile/return-all.sol-0.4.1-compact.zip | Bin 2231 -> 0 bytes .../compile/return-all.sol-0.4.10-compact.zip | Bin 2201 -> 0 bytes .../compile/return-all.sol-0.4.11-compact.zip | Bin 2259 -> 0 bytes .../compile/return-all.sol-0.4.12-compact.zip | Bin 2592 -> 2788 bytes .../compile/return-all.sol-0.4.2-compact.zip | Bin 2244 -> 0 bytes .../compile/return-all.sol-0.4.3-compact.zip | Bin 2245 -> 0 bytes .../compile/return-all.sol-0.4.4-compact.zip | Bin 2244 -> 0 bytes .../compile/return-all.sol-0.4.5-compact.zip | Bin 2205 -> 0 bytes .../compile/return-all.sol-0.4.6-compact.zip | Bin 2208 -> 0 bytes .../compile/return-all.sol-0.4.7-compact.zip | Bin 2281 -> 0 bytes .../compile/return-all.sol-0.4.8-compact.zip | Bin 2282 -> 0 bytes .../compile/return-all.sol-0.4.9-compact.zip | Bin 2201 -> 0 bytes .../compile/scope-0.4.0.sol-0.4.0-compact.zip | Bin 1945 -> 0 bytes .../compile/scope-0.4.0.sol-0.4.1-compact.zip | Bin 1941 -> 0 bytes .../scope-0.4.0.sol-0.4.10-compact.zip | Bin 1945 -> 0 bytes .../scope-0.4.0.sol-0.4.11-compact.zip | Bin 2005 -> 0 bytes .../scope-0.4.0.sol-0.4.12-compact.zip | Bin 2226 -> 2362 bytes .../compile/scope-0.4.0.sol-0.4.2-compact.zip | Bin 1941 -> 0 bytes .../compile/scope-0.4.0.sol-0.4.3-compact.zip | Bin 1942 -> 0 bytes .../compile/scope-0.4.0.sol-0.4.4-compact.zip | Bin 1946 -> 0 bytes .../compile/scope-0.4.0.sol-0.4.5-compact.zip | Bin 1950 -> 0 bytes .../compile/scope-0.4.0.sol-0.4.6-compact.zip | Bin 1949 -> 0 bytes .../compile/scope-0.4.0.sol-0.4.7-compact.zip | Bin 2025 -> 0 bytes .../compile/scope-0.4.0.sol-0.4.8-compact.zip | Bin 2018 -> 0 bytes .../compile/scope-0.4.0.sol-0.4.9-compact.zip | Bin 1942 -> 0 bytes .../struct-0.4.0.sol-0.4.0-compact.zip | Bin 995 -> 0 bytes .../struct-0.4.0.sol-0.4.1-compact.zip | Bin 994 -> 0 bytes .../struct-0.4.0.sol-0.4.10-compact.zip | Bin 1040 -> 0 bytes .../struct-0.4.0.sol-0.4.11-compact.zip | Bin 1095 -> 0 bytes .../struct-0.4.0.sol-0.4.12-compact.zip | Bin 1223 -> 1296 bytes .../struct-0.4.0.sol-0.4.2-compact.zip | Bin 994 -> 0 bytes .../struct-0.4.0.sol-0.4.3-compact.zip | Bin 995 -> 0 bytes .../struct-0.4.0.sol-0.4.4-compact.zip | Bin 993 -> 0 bytes .../struct-0.4.0.sol-0.4.5-compact.zip | Bin 996 -> 0 bytes .../struct-0.4.0.sol-0.4.6-compact.zip | Bin 997 -> 0 bytes .../struct-0.4.0.sol-0.4.7-compact.zip | Bin 1061 -> 0 bytes .../struct-0.4.0.sol-0.4.8-compact.zip | Bin 1062 -> 0 bytes .../struct-0.4.0.sol-0.4.9-compact.zip | Bin 1041 -> 0 bytes .../compile/throw-0.4.0.sol-0.4.0-compact.zip | Bin 1206 -> 0 bytes .../compile/throw-0.4.0.sol-0.4.1-compact.zip | Bin 1207 -> 0 bytes .../throw-0.4.0.sol-0.4.10-compact.zip | Bin 1272 -> 0 bytes .../throw-0.4.0.sol-0.4.11-compact.zip | Bin 1282 -> 0 bytes .../throw-0.4.0.sol-0.4.12-compact.zip | Bin 1487 -> 1575 bytes .../compile/throw-0.4.0.sol-0.4.2-compact.zip | Bin 1206 -> 0 bytes .../compile/throw-0.4.0.sol-0.4.3-compact.zip | Bin 1208 -> 0 bytes .../compile/throw-0.4.0.sol-0.4.4-compact.zip | Bin 1206 -> 0 bytes .../compile/throw-0.4.0.sol-0.4.5-compact.zip | Bin 1205 -> 0 bytes .../compile/throw-0.4.0.sol-0.4.6-compact.zip | Bin 1205 -> 0 bytes .../compile/throw-0.4.0.sol-0.4.7-compact.zip | Bin 1279 -> 0 bytes .../compile/throw-0.4.0.sol-0.4.8-compact.zip | Bin 1285 -> 0 bytes .../compile/throw-0.4.0.sol-0.4.9-compact.zip | Bin 1269 -> 0 bytes .../top-level-0.4.0.sol-0.4.0-compact.zip | Bin 753 -> 0 bytes .../top-level-0.4.0.sol-0.4.1-compact.zip | Bin 752 -> 0 bytes .../top-level-0.4.0.sol-0.4.10-compact.zip | Bin 827 -> 0 bytes .../top-level-0.4.0.sol-0.4.11-compact.zip | Bin 835 -> 0 bytes .../top-level-0.4.0.sol-0.4.12-compact.zip | Bin 904 -> 895 bytes .../top-level-0.4.0.sol-0.4.2-compact.zip | Bin 754 -> 0 bytes .../top-level-0.4.0.sol-0.4.3-compact.zip | Bin 753 -> 0 bytes .../top-level-0.4.0.sol-0.4.4-compact.zip | Bin 754 -> 0 bytes .../top-level-0.4.0.sol-0.4.5-compact.zip | Bin 756 -> 0 bytes .../top-level-0.4.0.sol-0.4.6-compact.zip | Bin 756 -> 0 bytes .../top-level-0.4.0.sol-0.4.7-compact.zip | Bin 825 -> 0 bytes .../top-level-0.4.0.sol-0.4.8-compact.zip | Bin 827 -> 0 bytes .../top-level-0.4.0.sol-0.4.9-compact.zip | Bin 822 -> 0 bytes ...p-level-import-0.4.0.sol-0.4.0-compact.zip | Bin 773 -> 0 bytes ...p-level-import-0.4.0.sol-0.4.1-compact.zip | Bin 773 -> 0 bytes ...-level-import-0.4.0.sol-0.4.10-compact.zip | Bin 844 -> 0 bytes ...-level-import-0.4.0.sol-0.4.11-compact.zip | Bin 859 -> 0 bytes ...-level-import-0.4.0.sol-0.4.12-compact.zip | Bin 922 -> 914 bytes ...p-level-import-0.4.0.sol-0.4.2-compact.zip | Bin 775 -> 0 bytes ...p-level-import-0.4.0.sol-0.4.3-compact.zip | Bin 775 -> 0 bytes ...p-level-import-0.4.0.sol-0.4.4-compact.zip | Bin 774 -> 0 bytes ...p-level-import-0.4.0.sol-0.4.5-compact.zip | Bin 776 -> 0 bytes ...p-level-import-0.4.0.sol-0.4.6-compact.zip | Bin 776 -> 0 bytes ...p-level-import-0.4.0.sol-0.4.7-compact.zip | Bin 849 -> 0 bytes ...p-level-import-0.4.0.sol-0.4.8-compact.zip | Bin 849 -> 0 bytes ...p-level-import-0.4.0.sol-0.4.9-compact.zip | Bin 847 -> 0 bytes ...vel-import-bis-0.4.0.sol-0.4.0-compact.zip | Bin 786 -> 0 bytes ...vel-import-bis-0.4.0.sol-0.4.1-compact.zip | Bin 785 -> 0 bytes ...el-import-bis-0.4.0.sol-0.4.10-compact.zip | Bin 858 -> 0 bytes ...el-import-bis-0.4.0.sol-0.4.11-compact.zip | Bin 867 -> 0 bytes ...el-import-bis-0.4.0.sol-0.4.12-compact.zip | Bin 932 -> 926 bytes ...vel-import-bis-0.4.0.sol-0.4.2-compact.zip | Bin 787 -> 0 bytes ...vel-import-bis-0.4.0.sol-0.4.3-compact.zip | Bin 787 -> 0 bytes ...vel-import-bis-0.4.0.sol-0.4.4-compact.zip | Bin 787 -> 0 bytes ...vel-import-bis-0.4.0.sol-0.4.5-compact.zip | Bin 789 -> 0 bytes ...vel-import-bis-0.4.0.sol-0.4.6-compact.zip | Bin 789 -> 0 bytes ...vel-import-bis-0.4.0.sol-0.4.7-compact.zip | Bin 860 -> 0 bytes ...vel-import-bis-0.4.0.sol-0.4.8-compact.zip | Bin 860 -> 0 bytes ...vel-import-bis-0.4.0.sol-0.4.9-compact.zip | Bin 859 -> 0 bytes ...-nested-import-0.4.0.sol-0.4.0-compact.zip | Bin 793 -> 0 bytes ...-nested-import-0.4.0.sol-0.4.1-compact.zip | Bin 793 -> 0 bytes ...nested-import-0.4.0.sol-0.4.10-compact.zip | Bin 866 -> 0 bytes ...nested-import-0.4.0.sol-0.4.11-compact.zip | Bin 878 -> 0 bytes ...nested-import-0.4.0.sol-0.4.12-compact.zip | Bin 944 -> 933 bytes ...-nested-import-0.4.0.sol-0.4.2-compact.zip | Bin 795 -> 0 bytes ...-nested-import-0.4.0.sol-0.4.3-compact.zip | Bin 795 -> 0 bytes ...-nested-import-0.4.0.sol-0.4.4-compact.zip | Bin 795 -> 0 bytes ...-nested-import-0.4.0.sol-0.4.5-compact.zip | Bin 797 -> 0 bytes ...-nested-import-0.4.0.sol-0.4.6-compact.zip | Bin 797 -> 0 bytes ...-nested-import-0.4.0.sol-0.4.7-compact.zip | Bin 869 -> 0 bytes ...-nested-import-0.4.0.sol-0.4.8-compact.zip | Bin 869 -> 0 bytes ...-nested-import-0.4.0.sol-0.4.9-compact.zip | Bin 865 -> 0 bytes ...level_variable-0.4.0.sol-0.4.0-compact.zip | Bin 776 -> 0 bytes ...level_variable-0.4.0.sol-0.4.1-compact.zip | Bin 776 -> 0 bytes ...evel_variable-0.4.0.sol-0.4.10-compact.zip | Bin 849 -> 0 bytes ...evel_variable-0.4.0.sol-0.4.11-compact.zip | Bin 859 -> 0 bytes ...evel_variable-0.4.0.sol-0.4.12-compact.zip | Bin 928 -> 917 bytes ...level_variable-0.4.0.sol-0.4.2-compact.zip | Bin 777 -> 0 bytes ...level_variable-0.4.0.sol-0.4.3-compact.zip | Bin 777 -> 0 bytes ...level_variable-0.4.0.sol-0.4.4-compact.zip | Bin 777 -> 0 bytes ...level_variable-0.4.0.sol-0.4.5-compact.zip | Bin 779 -> 0 bytes ...level_variable-0.4.0.sol-0.4.6-compact.zip | Bin 779 -> 0 bytes ...level_variable-0.4.0.sol-0.4.7-compact.zip | Bin 853 -> 0 bytes ...level_variable-0.4.0.sol-0.4.8-compact.zip | Bin 851 -> 0 bytes ...level_variable-0.4.0.sol-0.4.9-compact.zip | Bin 850 -> 0 bytes ...evel_variable2-0.4.0.sol-0.4.0-compact.zip | Bin 779 -> 0 bytes ...evel_variable2-0.4.0.sol-0.4.1-compact.zip | Bin 778 -> 0 bytes ...vel_variable2-0.4.0.sol-0.4.10-compact.zip | Bin 853 -> 0 bytes ...vel_variable2-0.4.0.sol-0.4.11-compact.zip | Bin 864 -> 0 bytes ...vel_variable2-0.4.0.sol-0.4.12-compact.zip | Bin 934 -> 919 bytes ...evel_variable2-0.4.0.sol-0.4.2-compact.zip | Bin 780 -> 0 bytes ...evel_variable2-0.4.0.sol-0.4.3-compact.zip | Bin 780 -> 0 bytes ...evel_variable2-0.4.0.sol-0.4.4-compact.zip | Bin 780 -> 0 bytes ...evel_variable2-0.4.0.sol-0.4.5-compact.zip | Bin 782 -> 0 bytes ...evel_variable2-0.4.0.sol-0.4.6-compact.zip | Bin 782 -> 0 bytes ...evel_variable2-0.4.0.sol-0.4.7-compact.zip | Bin 854 -> 0 bytes ...evel_variable2-0.4.0.sol-0.4.8-compact.zip | Bin 853 -> 0 bytes ...evel_variable2-0.4.0.sol-0.4.9-compact.zip | Bin 854 -> 0 bytes .../trycatch-0.4.0.sol-0.4.0-compact.zip | Bin 724 -> 0 bytes .../trycatch-0.4.0.sol-0.4.1-compact.zip | Bin 724 -> 0 bytes .../trycatch-0.4.0.sol-0.4.10-compact.zip | Bin 795 -> 0 bytes .../trycatch-0.4.0.sol-0.4.11-compact.zip | Bin 805 -> 0 bytes .../trycatch-0.4.0.sol-0.4.12-compact.zip | Bin 873 -> 862 bytes .../trycatch-0.4.0.sol-0.4.2-compact.zip | Bin 725 -> 0 bytes .../trycatch-0.4.0.sol-0.4.3-compact.zip | Bin 725 -> 0 bytes .../trycatch-0.4.0.sol-0.4.4-compact.zip | Bin 725 -> 0 bytes .../trycatch-0.4.0.sol-0.4.5-compact.zip | Bin 727 -> 0 bytes .../trycatch-0.4.0.sol-0.4.6-compact.zip | Bin 726 -> 0 bytes .../trycatch-0.4.0.sol-0.4.7-compact.zip | Bin 800 -> 0 bytes .../trycatch-0.4.0.sol-0.4.8-compact.zip | Bin 799 -> 0 bytes .../trycatch-0.4.0.sol-0.4.9-compact.zip | Bin 795 -> 0 bytes ...upleexpression-0.4.0.sol-0.4.0-compact.zip | Bin 1237 -> 0 bytes ...upleexpression-0.4.0.sol-0.4.1-compact.zip | Bin 1235 -> 0 bytes ...pleexpression-0.4.0.sol-0.4.10-compact.zip | Bin 1275 -> 0 bytes ...pleexpression-0.4.0.sol-0.4.11-compact.zip | Bin 1306 -> 0 bytes ...pleexpression-0.4.0.sol-0.4.12-compact.zip | Bin 1547 -> 1626 bytes ...upleexpression-0.4.0.sol-0.4.2-compact.zip | Bin 1238 -> 0 bytes ...upleexpression-0.4.0.sol-0.4.3-compact.zip | Bin 1235 -> 0 bytes ...upleexpression-0.4.0.sol-0.4.4-compact.zip | Bin 1235 -> 0 bytes ...upleexpression-0.4.0.sol-0.4.5-compact.zip | Bin 1220 -> 0 bytes ...upleexpression-0.4.0.sol-0.4.6-compact.zip | Bin 1222 -> 0 bytes ...upleexpression-0.4.0.sol-0.4.7-compact.zip | Bin 1306 -> 0 bytes ...upleexpression-0.4.0.sol-0.4.8-compact.zip | Bin 1300 -> 0 bytes ...upleexpression-0.4.0.sol-0.4.9-compact.zip | Bin 1275 -> 0 bytes ...naryexpression-0.4.0.sol-0.4.0-compact.zip | Bin 1790 -> 0 bytes ...naryexpression-0.4.0.sol-0.4.1-compact.zip | Bin 1789 -> 0 bytes ...aryexpression-0.4.0.sol-0.4.10-compact.zip | Bin 1772 -> 0 bytes ...aryexpression-0.4.0.sol-0.4.11-compact.zip | Bin 1812 -> 0 bytes ...aryexpression-0.4.0.sol-0.4.12-compact.zip | Bin 2040 -> 2210 bytes ...naryexpression-0.4.0.sol-0.4.2-compact.zip | Bin 1791 -> 0 bytes ...naryexpression-0.4.0.sol-0.4.3-compact.zip | Bin 1794 -> 0 bytes ...naryexpression-0.4.0.sol-0.4.4-compact.zip | Bin 1793 -> 0 bytes ...naryexpression-0.4.0.sol-0.4.5-compact.zip | Bin 1791 -> 0 bytes ...naryexpression-0.4.0.sol-0.4.6-compact.zip | Bin 1789 -> 0 bytes ...naryexpression-0.4.0.sol-0.4.7-compact.zip | Bin 1845 -> 0 bytes ...naryexpression-0.4.0.sol-0.4.8-compact.zip | Bin 1855 -> 0 bytes ...naryexpression-0.4.0.sol-0.4.9-compact.zip | Bin 1772 -> 0 bytes .../unchecked-0.4.0.sol-0.4.0-compact.zip | Bin 855 -> 0 bytes .../unchecked-0.4.0.sol-0.4.1-compact.zip | Bin 855 -> 0 bytes .../unchecked-0.4.0.sol-0.4.10-compact.zip | Bin 929 -> 0 bytes .../unchecked-0.4.0.sol-0.4.11-compact.zip | Bin 937 -> 0 bytes .../unchecked-0.4.0.sol-0.4.12-compact.zip | Bin 1006 -> 996 bytes .../unchecked-0.4.0.sol-0.4.2-compact.zip | Bin 856 -> 0 bytes .../unchecked-0.4.0.sol-0.4.3-compact.zip | Bin 856 -> 0 bytes .../unchecked-0.4.0.sol-0.4.4-compact.zip | Bin 856 -> 0 bytes .../unchecked-0.4.0.sol-0.4.5-compact.zip | Bin 858 -> 0 bytes .../unchecked-0.4.0.sol-0.4.6-compact.zip | Bin 858 -> 0 bytes .../unchecked-0.4.0.sol-0.4.7-compact.zip | Bin 932 -> 0 bytes .../unchecked-0.4.0.sol-0.4.8-compact.zip | Bin 928 -> 0 bytes .../unchecked-0.4.0.sol-0.4.9-compact.zip | Bin 929 -> 0 bytes ...obal_variables-0.4.0.sol-0.4.0-compact.zip | Bin 3632 -> 0 bytes ...obal_variables-0.4.0.sol-0.4.1-compact.zip | Bin 3626 -> 0 bytes ...bal_variables-0.4.0.sol-0.4.10-compact.zip | Bin 3307 -> 0 bytes ...bal_variables-0.4.0.sol-0.4.11-compact.zip | Bin 3329 -> 0 bytes ...bal_variables-0.4.0.sol-0.4.12-compact.zip | Bin 3840 -> 4115 bytes ...obal_variables-0.4.0.sol-0.4.2-compact.zip | Bin 3639 -> 0 bytes ...obal_variables-0.4.0.sol-0.4.3-compact.zip | Bin 3640 -> 0 bytes ...obal_variables-0.4.0.sol-0.4.4-compact.zip | Bin 3634 -> 0 bytes ...obal_variables-0.4.0.sol-0.4.5-compact.zip | Bin 3536 -> 0 bytes ...obal_variables-0.4.0.sol-0.4.6-compact.zip | Bin 3532 -> 0 bytes ...obal_variables-0.4.0.sol-0.4.7-compact.zip | Bin 3462 -> 0 bytes ...obal_variables-0.4.0.sol-0.4.8-compact.zip | Bin 3459 -> 0 bytes ...obal_variables-0.4.0.sol-0.4.9-compact.zip | Bin 3310 -> 0 bytes .../using-for-0.4.0.sol-0.4.0-compact.zip | Bin 769 -> 0 bytes .../using-for-0.4.1.sol-0.4.1-compact.zip | Bin 1513 -> 0 bytes .../using-for-0.4.1.sol-0.4.10-compact.zip | Bin 1642 -> 0 bytes .../using-for-0.4.1.sol-0.4.11-compact.zip | Bin 1668 -> 0 bytes .../using-for-0.4.1.sol-0.4.12-compact.zip | Bin 1871 -> 1942 bytes .../using-for-0.4.1.sol-0.4.2-compact.zip | Bin 1508 -> 0 bytes .../using-for-0.4.1.sol-0.4.3-compact.zip | Bin 1506 -> 0 bytes .../using-for-0.4.1.sol-0.4.4-compact.zip | Bin 1500 -> 0 bytes .../using-for-0.4.1.sol-0.4.5-compact.zip | Bin 1502 -> 0 bytes .../using-for-0.4.1.sol-0.4.6-compact.zip | Bin 1504 -> 0 bytes .../using-for-0.4.1.sol-0.4.7-compact.zip | Bin 1685 -> 0 bytes .../using-for-0.4.1.sol-0.4.8-compact.zip | Bin 1686 -> 0 bytes .../using-for-0.4.1.sol-0.4.9-compact.zip | Bin 1642 -> 0 bytes .../variable-0.4.0.sol-0.4.0-compact.zip | Bin 2247 -> 0 bytes .../variable-0.4.0.sol-0.4.1-compact.zip | Bin 2247 -> 0 bytes .../variable-0.4.0.sol-0.4.10-compact.zip | Bin 2268 -> 0 bytes .../variable-0.4.0.sol-0.4.11-compact.zip | Bin 2342 -> 0 bytes .../variable-0.4.0.sol-0.4.12-compact.zip | Bin 2603 -> 2849 bytes .../variable-0.4.0.sol-0.4.2-compact.zip | Bin 2261 -> 0 bytes .../variable-0.4.0.sol-0.4.3-compact.zip | Bin 2250 -> 0 bytes .../variable-0.4.0.sol-0.4.4-compact.zip | Bin 2257 -> 0 bytes .../variable-0.4.0.sol-0.4.5-compact.zip | Bin 2252 -> 0 bytes .../variable-0.4.0.sol-0.4.6-compact.zip | Bin 2259 -> 0 bytes .../variable-0.4.0.sol-0.4.7-compact.zip | Bin 2329 -> 0 bytes .../variable-0.4.0.sol-0.4.8-compact.zip | Bin 2319 -> 0 bytes .../variable-0.4.0.sol-0.4.9-compact.zip | Bin 2268 -> 0 bytes .../variable-0.4.5.sol-0.4.10-compact.zip | Bin 2597 -> 0 bytes .../variable-0.4.5.sol-0.4.11-compact.zip | Bin 2657 -> 0 bytes .../variable-0.4.5.sol-0.4.12-compact.zip | Bin 2940 -> 3255 bytes .../variable-0.4.5.sol-0.4.5-compact.zip | Bin 2608 -> 0 bytes .../variable-0.4.5.sol-0.4.6-compact.zip | Bin 2608 -> 0 bytes .../variable-0.4.5.sol-0.4.7-compact.zip | Bin 2674 -> 0 bytes .../variable-0.4.5.sol-0.4.8-compact.zip | Bin 2669 -> 0 bytes .../variable-0.4.5.sol-0.4.9-compact.zip | Bin 2598 -> 0 bytes .../compile/while-all.sol-0.4.0-compact.zip | Bin 1381 -> 0 bytes .../compile/while-all.sol-0.4.1-compact.zip | Bin 1378 -> 0 bytes .../compile/while-all.sol-0.4.10-compact.zip | Bin 1422 -> 0 bytes .../compile/while-all.sol-0.4.11-compact.zip | Bin 1461 -> 0 bytes .../compile/while-all.sol-0.4.12-compact.zip | Bin 1635 -> 1730 bytes .../compile/while-all.sol-0.4.2-compact.zip | Bin 1380 -> 0 bytes .../compile/while-all.sol-0.4.3-compact.zip | Bin 1379 -> 0 bytes .../compile/while-all.sol-0.4.4-compact.zip | Bin 1379 -> 0 bytes .../compile/while-all.sol-0.4.5-compact.zip | Bin 1380 -> 0 bytes .../compile/while-all.sol-0.4.6-compact.zip | Bin 1381 -> 0 bytes .../compile/while-all.sol-0.4.7-compact.zip | Bin 1462 -> 0 bytes .../compile/while-all.sol-0.4.8-compact.zip | Bin 1464 -> 0 bytes .../compile/while-all.sol-0.4.9-compact.zip | Bin 1423 -> 0 bytes .../compile/yul-0.4.0.sol-0.4.0-compact.zip | Bin 1705 -> 0 bytes .../compile/yul-0.4.1.sol-0.4.1-compact.zip | Bin 1831 -> 0 bytes .../compile/yul-0.4.1.sol-0.4.10-compact.zip | Bin 1992 -> 0 bytes .../compile/yul-0.4.1.sol-0.4.2-compact.zip | Bin 1830 -> 0 bytes .../compile/yul-0.4.1.sol-0.4.3-compact.zip | Bin 1822 -> 0 bytes .../compile/yul-0.4.1.sol-0.4.4-compact.zip | Bin 1819 -> 0 bytes .../compile/yul-0.4.1.sol-0.4.5-compact.zip | Bin 1805 -> 0 bytes .../compile/yul-0.4.1.sol-0.4.6-compact.zip | Bin 1797 -> 0 bytes .../compile/yul-0.4.1.sol-0.4.7-compact.zip | Bin 2019 -> 0 bytes .../compile/yul-0.4.1.sol-0.4.8-compact.zip | Bin 2017 -> 0 bytes .../compile/yul-0.4.1.sol-0.4.9-compact.zip | Bin 1995 -> 0 bytes .../compile/yul-0.4.11.sol-0.4.11-compact.zip | Bin 2151 -> 0 bytes .../compile/yul-0.4.11.sol-0.4.12-compact.zip | Bin 2554 -> 2680 bytes tests/test_ast_parsing.py | 22 +++++++++++++++--- 636 files changed, 19 insertions(+), 3 deletions(-) delete mode 100644 tests/ast-parsing/compile/assembly-all.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/assembly-all.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/assembly-all.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/assembly-all.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/assembly-all.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/assembly-all.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/assembly-all.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/assembly-all.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/assembly-all.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/assembly-all.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/assembly-all.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/assembly-all.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/break-all.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/break-all.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/break-all.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/break-all.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/break-all.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/break-all.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/break-all.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/break-all.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/break-all.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/break-all.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/break-all.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/break-all.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/call_to_variable-all.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/call_to_variable-all.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/call_to_variable-all.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/call_to_variable-all.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/call_to_variable-all.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/call_to_variable-all.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/call_to_variable-all.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/call_to_variable-all.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/call_to_variable-all.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/call_to_variable-all.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/call_to_variable-all.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/call_to_variable-all.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/comment-all.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/comment-all.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/comment-all.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/comment-all.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/comment-all.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/comment-all.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/comment-all.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/comment-all.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/comment-all.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/comment-all.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/comment-all.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/comment-all.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/conditional-all.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/conditional-all.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/conditional-all.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/conditional-all.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/conditional-all.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/conditional-all.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/conditional-all.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/conditional-all.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/conditional-all.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/conditional-all.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/conditional-all.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/conditional-all.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/continue-all.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/continue-all.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/continue-all.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/continue-all.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/continue-all.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/continue-all.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/continue-all.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/continue-all.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/continue-all.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/continue-all.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/continue-all.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/continue-all.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/contract-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/contract-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/contract-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/contract-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/contract-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/contract-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/contract-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/contract-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/contract-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/contract-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/contract-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/contract-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/enum-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/enum-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/enum-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/enum-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/enum-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/enum-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/enum-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/enum-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/enum-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/enum-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/enum-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/enum-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/event-all.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/event-all.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/event-all.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/event-all.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/event-all.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/event-all.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/event-all.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/event-all.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/event-all.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/event-all.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/event-all.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/event-all.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/for-all.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/for-all.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/for-all.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/for-all.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/for-all.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/for-all.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/for-all.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/for-all.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/for-all.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/for-all.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/for-all.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/for-all.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/function-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/function-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/function-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/function-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/function-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/function-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/function-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/function-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/function-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/function-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/function-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/function-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/if-all.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/if-all.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/if-all.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/if-all.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/if-all.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/if-all.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/if-all.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/if-all.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/if-all.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/if-all.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/if-all.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/if-all.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/indexaccess-all.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/indexaccess-all.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/indexaccess-all.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/indexaccess-all.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/indexaccess-all.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/indexaccess-all.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/indexaccess-all.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/indexaccess-all.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/indexaccess-all.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/indexaccess-all.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/indexaccess-all.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/indexaccess-all.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/literal-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/literal-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/literal-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/literal-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/literal-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/literal-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/literal-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/literal-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/literal-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/literal-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/literal-0.4.10.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/literal-0.4.10.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/modifier-all.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/modifier-all.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/modifier-all.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/modifier-all.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/modifier-all.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/modifier-all.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/modifier-all.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/modifier-all.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/modifier-all.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/modifier-all.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/modifier-all.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/modifier-all.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/push-all.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/push-all.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/push-all.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/push-all.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/push-all.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/push-all.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/push-all.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/push-all.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/push-all.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/push-all.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/push-all.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/push-all.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/return-all.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/return-all.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/return-all.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/return-all.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/return-all.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/return-all.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/return-all.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/return-all.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/return-all.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/return-all.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/return-all.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/return-all.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/scope-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/scope-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/scope-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/scope-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/scope-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/scope-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/scope-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/scope-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/scope-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/scope-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/scope-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/scope-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/struct-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/struct-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/struct-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/struct-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/struct-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/struct-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/struct-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/struct-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/struct-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/struct-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/struct-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/struct-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/throw-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/throw-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/throw-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/throw-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/throw-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/throw-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/throw-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/throw-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/throw-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/throw-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/throw-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/throw-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/using-for-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.0.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.0.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.0.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.0.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.0.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.0.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.0.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.0.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.0.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.0.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.0.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.5.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.5.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.5.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.5.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.5.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.5.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/variable-0.4.5.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/while-all.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/while-all.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/while-all.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/while-all.sol-0.4.11-compact.zip delete mode 100644 tests/ast-parsing/compile/while-all.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/while-all.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/while-all.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/while-all.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/while-all.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/while-all.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/while-all.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/while-all.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/yul-0.4.0.sol-0.4.0-compact.zip delete mode 100644 tests/ast-parsing/compile/yul-0.4.1.sol-0.4.1-compact.zip delete mode 100644 tests/ast-parsing/compile/yul-0.4.1.sol-0.4.10-compact.zip delete mode 100644 tests/ast-parsing/compile/yul-0.4.1.sol-0.4.2-compact.zip delete mode 100644 tests/ast-parsing/compile/yul-0.4.1.sol-0.4.3-compact.zip delete mode 100644 tests/ast-parsing/compile/yul-0.4.1.sol-0.4.4-compact.zip delete mode 100644 tests/ast-parsing/compile/yul-0.4.1.sol-0.4.5-compact.zip delete mode 100644 tests/ast-parsing/compile/yul-0.4.1.sol-0.4.6-compact.zip delete mode 100644 tests/ast-parsing/compile/yul-0.4.1.sol-0.4.7-compact.zip delete mode 100644 tests/ast-parsing/compile/yul-0.4.1.sol-0.4.8-compact.zip delete mode 100644 tests/ast-parsing/compile/yul-0.4.1.sol-0.4.9-compact.zip delete mode 100644 tests/ast-parsing/compile/yul-0.4.11.sol-0.4.11-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/assembly-all.sol-0.4.0-compact.zip deleted file mode 100644 index 1706d27928607c762e0e81e88a33a614a709cba9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 997 zcmWIWW@fQxU}E57XelfRG2r`GXU)vOaEpt9L4|>VA+fkPH8&}zQa3RtN3S?PCqA{J zAit<2KCvh{BeN`3FRM5|kCTO!A(nxmfq}ucqa)q;k8$C`OXs#(^UgV%m#Mm6uC+Hv z%1(Vf_iodTFArBQ-5$Yw|08d6!kqedw%Uq z*>5VAt#gu`Y%IUtx0v)t?AGdn58k`@=9Y^` ztQ7T{VVql7-!#qU=GBQ=L76tHN(&n=uu1>vGA-LKcCxu#P&QU?`(uXwf5#tk9eASI zSWu?@5%*4)+CH-QW9ZUv{`Iahx^lw&vvb z4LR2;y8`8AZr&1g@v^AQ!&@>>j6G|U1nmzUxY*RZ;?JH|WA-q?13TBaa|!;1;83xzz+~H#Y4!wdkvr0=ljr&6jWcy^;gx9?1%Lv~x;uX^=mCBhRoXfKI7!u)suXG-ucEdr(t%=D-E8Ps=pT$ZLN3xFWMh}N!%_cK}OZo_3UOB zEvGwWVdf@gOU#`PKJ8nnyVyi_X30;R#v3sYxo?}^ak_aq)pl0pqS9=A-lZ?^6uY_0 zz5RPh!0v$b7X25ZEZW-wXGGRAPycs9QRl0@`I^aXc7d;7uhHmPHp#h zX`i;fvpr^&w*KLwEn(gVub5`I@iizE?ADOej;OBj5dC#>LLT4DHBbIuRWj%D&MC=1 zuq^0}@Xxs_8rwTQZ#l4X<~pTp^;uGODGHIZKR#v*F$z=Y&6_XE@PyV>{*>ZMs zO)Fu8y$f{@TsrzLXYRuYlP7ZDB6!I2Cl#f zf1hLqoz7X_^RMGwG`~d03BkgsyBT+zr~5pg`fvA)+PzPmQ*^7Z?zDZ$zBu`jv!=rT s#{n#90p5&E_RP4mA20`kK?5U*A|^8ic(byB)G`8L5Rk3~W@ZKk0L|LRK>z>% diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/assembly-all.sol-0.4.1-compact.zip deleted file mode 100644 index 155ab513e139f227b126958c3c007868c1c658a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 997 zcmWIWW@fQxU}E57Xe}%VImfR$$C{ae;T9JIg9-x!Lt=4pYHm_arEX$Qj$UzoPJC)b zL4Hw5d}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=d%~G{_WatJ zvforJTjwM>*;szPZ!zhQ*sawCAG~+z$tdU;Jgxm+t5)xLMBPk4e$J1#I+vuvoQ~xr zylwuIAGjknGH0(pD^HB+Yu^6UvZMNSl#Km;=V#vPMH(AQlxvH3_U_g` z>>%WE>dVLFa^hTlj8}Y>+B&1V7anYV){yyC(za{k9@dTAr+$4&+j4(HcKfo0t?yfs z4!BC2{oW|0=vw9Zu(0J@>AW{9rJfZY$vBw*VQRXG`dOWT*5#R||Bl;fz5V;WTzcz? zXDQ#LUa!muJ)*Asl66j2?Ijz_KdlMxCNHSCd#p>!zRdE8nnQ`@wt}~P$4Z~c{m4AE zVY;f#+&1N3tFMF|IyLK~rH1W;%Fq7O7o^2z~ zrom@znRGv*|CLL<(b`2D&QIpup)zfM@nIp+bw1$&>mF6FdDmQGyRz}dGSf+iH$?B$ ztT0+?yXpLeEYp^~lb#}==sZ!Ju~N!5MNg`( zrZ2X-Amv}d;YJgt%NsX+I_b71`Aa!st$g3@_0dW4Zs+>~-)Vm7 zoqh9#R#LVg-?RFL1s8>K!~EhO{AZUHSi1J%8oC!m(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=d%~G{_WatJ zvforJTjwM>*;szPZ!zhQ*sawCAG~+z$tdU;Jgxm+t5)xLMEH2hmEisHvHa)f>#F_D zu4BLPHZ=T&S*b)|5d*hw>7SDTTPn2|$^P(zQ`(-{)4G8_WamA-Y+=t%^hS{}$ zxOL}F>Veq?_hWDDY=2p}dSg&b;BVo_&cMFOyY+iQd_L(G&6S=NDOOu7?++zR9wVYQVEMV38 z!29BIV*h(N?v(wUQhr+h*Rp7<&7ZX&KHKgcq+8ZIrz<4O*|B5d>h$idYZG7X^u6G+ zxM6v+-Gx_=>t&)tJmp-r%?7ub_0dNK5|LZ<@9wB;I|%Dev&vh5O`}9CN0oCl0$e8Llfa zD*rc=CzDr0$}ifjXWz#aky)<~e)K>^-(Kz|5&NEQ-}QG}?!En2O{VZoH2C8a_jUI}LypF2r^Gn~ z3u2!;7VPR(jr<`j&&HE=lKCo=>lfu(pNP~B3y*CJ<}X_7p1jn5yT~2)4XdLnPU!3O z9-8oYiq>H!PWMUM`5zZKuVRcmw@GNh+M6Y=9~`X@#!8;vB}ey#tnUx}q4}t?cKLOz`$VJ(UETa$GC9erE}Y?dFLF>%T(Pj*V-E- zWv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&16FQ z>^Bw5);UQ|HkM!STTJ>Rc58LP2k%{aG735dPiw!|s?|Fl5&mJ|RcesE>(Z0{7s1Sz z7V1`KF1Yc=Iq{2dbgRimcmtXj7$vJJh%9;Dj2?vB8eR#Yy_-deT?uC~(DypTH*>4Zsp}UN6 z@AQ~IF)KOE`<6wo-@Likxg+EK*`z%Fq)4-u8goKt9b}qbUu5(+`G$!94>m&;1?G%* ziPs-?t===^g@)15{o7N5R68ard0lIMx+BNx1^1-CHvb!Y$e%2a`O=!zgdTSi; z>Sz1BSnb}9S;988?Qbk+&3T%v5qGg;`Vk?mvbDQoRhDjA^f-lOirFGv&ir3O+)R&$R7^c2z9e^^&52uU!w$yw zvn+Z!Mb*9(}LC7S*HyNu=3 z1E+s{MeNg@Hkv$}xpVb>)rFo}Mq#_|$JBm4{Mx2LbW!!P*KY*3$yD~-+QldfhzA$OzQ8A_cjY$m;V0h@6*F?9U0fH^WM5~l0lS|ueWrFrpeCMY9FnuAN>>9 zA62ndvA6q0z5B9PHu8*cL(ofwRn593elJoKi`nZR^nGjm&$Cm5@BOTX51a3IDL-Ck zcw|dOq5XF0S%qG6PCrta`K6%9?{Qk^m()MgYwq4(aHw_K%3v$I_rLW_+$Owg44Lxe z^D#rYvT4@+zkU>Dh0WRfE3R$df~XVkzaO=%GB(y&c~QCQsg=~W^EX}})3z`<{`}&4 zGmQ`162H5@wz)3reuF_xj9KPmo=~@rxaAISn-$jtrykuF`l9YscR$zu zt+_GDb!r>inyZ4Z*4njJpXFWiW;MU~54YL#{L6n&Ig!q*Q}#sHC(3m3sm1Gq&Z~Yk z3hCIipg@VKwq1ASinH_e*d{vXd+m^RFMQb3B-i029cwSNZE^qBc$Zq`pSP3*o(^b diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/assembly-all.sol-0.4.12-compact.zip index e62ea14b01761902869191ab1d25160ef07f7e1e..b6f791ad56466fd11fd720be7df76a24bc3f3a8a 100644 GIT binary patch delta 1074 zcmV-21kL-S39<@KL7#%4gl-5WL8y*k=+Oc005^Akr+;YAJ=oe7BTTh4~3dwgEWQe9G%61M?_vOjs!aRjUgca?7|28(ywytJ|-kEAa_?} zoy(b{e+yaagIX2^UJ3&FLWSZQfw>>DqIBkU0u}9Kgk78iZo}ZL;%b-XEJrp*W3jZ% zO9AB}iC#UC{2AJRAc)#GuAD?@R|yMMBrzE~tC}emPXw0>;^De6#{v3{Y2)ot2z3y( znazS|S$U#$30o?M6B2w)qeXG$e4+%vcX!>*w` z=Eq(_BNc>CiD5H~k1e);_C3aknfpsp0`Y>yy@ToJbrxn|(P~ygjG@Ny)-9+T@e{=@ zI7uswF9ExM`#~iB6ViGI$o%chMMq+2*MZs$^RG^fkdlG$S9|q1hj9)9)$M4dPm-S; zUP%li{5&jeS4sJncjxHPQhVy`uSyqbs$n$!dWiFg@m6{9EE($UE0 zly$nVc?>A3vYnv1zuuw&>*H*!$e+L(*Pb@fvPj|N))=?nvxfeSK%{yN0hzaBdigjb z!s_FW){X}1n_6Xc9p@zW_aVs`}=NvJjB*UG80#85C>5l*r`sKQKx%j3j*{|d%jL`1rKBKHh!cAy{hHW zLtyy+j#HX761e*+-5n>)0vTy>6c2tsXj2F1psmrhyx)u-aSR1#dCvaaj1@P2ZWgdd zuzx-f4}g}LEfK%`%4jny`nbJYX{s&1?oI4};Zo6UXhKm#XSnGNBK374RjoB%2gHG>% zQ;nFs%0?zjZc=_=Gi!@jmV+;$Hab@XI6Xxkl(3Ja_r4_nzGi?#TsE%nV)`mik!IF#jN69f7t$;((3X#bA=m%Y sn%aU;O928u13v%)01g1_wPaRRijmz02m}BCrwx-;1V{!-1ONa407}pKasU7T delta 1067 zcmV+`1l0So38M)ZP)h>@KL7#%4giL6a8%uQ?CSXg003|fkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6NZ*MoKP!$`{{kfSQwoe~6ERA5eLjV7o6L zMnSi7rU~VlV_67QvJ-Gt!Hl%U3&WX-@8)BV9UPlD$o9$s)~Rgh|aj)bZ?jGS~+a z5eT}pZNH^|heLL^G>}BD+_&syNKpMoAOA`E-y^^9C4DoQ)Vf~#bmDwC1W)*F9A~|{ z%{$Hd5|jO8xC+Ze-oqaGNJ?M$9srk8&QT6*g||0<$PJiW{KV;hW8v9+tUg93ip?dN zs9WFdRYGp3`}smZQA2&7g=Lq_U8Ez45V_<89_@@Nm#-Kx(oj>C^N$AfLEUlDn<9tG zO|gW&r(IAdw7jUaV4b2$U#2n}*xM+T%;mVKJsf${1aDMc4c;lLKsu4wykN(;6lB-u(YJjS>pVSS|EC%gEKm(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=d%~G{_WatJ zvforJTjwM>*;szPZ!zhQ*sawCAG~+z$tdU;Jgxm+t5)xL#5dIT(Jig{@);W9BK%c- zLFaM|B~LD4Y*oCsQSL|8<4tcLx7u1ymc7u}@bu6*mp~!i9O0Szs&5%S&8k@@W1_A$ zp{UW~PrPR6gbABfFK>L^^(og!(DmKR{d&(Y2;@(EnBn{~^3eG;B3;+q|H!wtIY@jy zTCmZ7?T_1!RCVM3JwMk!=Z>Jw&B=#_zMSOMxiUNZ=_~=Axl=^#-&*%a%bqN?d%W=T zub;Uq4Z`P!$7_1=om#_kS1>26rS$L8<>}g`-5h+IeG~3|dgb|l=Dpf=U$)pESCn@% zy83-f=6Uru789ciBCoohlbW#p%jd~EZ`Xcv*|}-gG~am-Ca-mVn7QwpL%N}0_T7g! zuNmc-UF=D(m7LkTTPBuMtyOhWug|^&o6y2b_AXqtLatw?2sG)|druXy*85>|{?PHO zi@Ae+A}eZ*gO&z1&;FT~;I-DD!{tT#126F@uf^JOm5+Sk;Nf^&c;>C~j+R4msUL5g zIen8s`?0QF*i+F|&xAvYF(t~eE3368p8B~<#UQD1;SCk(hf69y6`QzMowi^;lpuB> zM&o&RSe{+^nO!@o&5ytCdcQ02ouaVKXT{Qq3sx_g)_ro}vi6Vl57SM`egx_8OFx;h zJWnS*L}_Bu+qf0yGVVXv|NQN2qu&$uZ5E4}U|@KzBgs;8QK6M3$F~4Wm6Ny5inYz# zz2MWsWtV>H1s2`1NidQvT3Z|LwmOQdm5wVGa69H)o$i@if4qDdpUq^Z3EPvFH%`2{J>??j{MNYS zh~mDDKNj3lG<_)0e9C@G(aMwNTXoOvaf<4GR(+-A&?M%lwG$qN>LlIXk|DX=#`MdE ztl7n4jBFoGyzvSWZZD;r2HBM=4w>3U#xW?%pScLl>L diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/assembly-all.sol-0.4.3-compact.zip deleted file mode 100644 index 159da63ee7b041c431449f0bc4efd8e96c104f4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 999 zcmWIWW@fQxU}E57Xe}%VsYvd+X3NaLaEpt9L4|>VA+fkPH8&}zQa3RtN3S?PCqA{J zAit<2KCvh{BeN`3FRM5|kCTO!A(nxmfq}ucqa)q;k8$C`OXs#(^UgV%m#Mm6uC+Hv z%1(Vf_iodTFArBQ-5$Yw|08d6!kqedw%Uq z*>5VAt#gu`Y%IUtx0v)t?AGdn58k`L^^(og!(DmKR{d&(Y{$XZ4EP3hc3|)on4^`ol@>N5tx2&HY za@a8VLU^oji^JXJhc4-@t+`OaHfer;xZ?S=moIx)obJ#}5InO}NPR|52wT(X%lCp; zNE9uQ zgRRGsRq|Y)H($QlUGOTmWuEYMC%K@FN%cnh=59XEH!e}wweG-rdp@l%(bu=Ex}hJE z{WrG5IQ+2Qt@=43k>!UC{LC+3TU9di#H7!+YrpPFH&g!1aJT*HuB6GEYiA^-zxpJ% zVS9;y?}l?KA<_>NzW!}(cr;Z;;$&W-#lm}^Kg^#dAeX1QG0pe$#zO}^U%8xBVq9e| zxHNP<>#QxyjjQ*b@Uz%xsq4$5RDCnCans(7lY{}8& z3lY9Qo7op0wc%JXVe*eMvFPvoD}>fvx}>F{A~k>M)MM>Ad|T(-mY=XvV}|^LD^jIP zH_A-xEndsrr)&OJo+X||PE*b2NUxd6{MX5Aj{R5swyM)*+6KWr_m(ePKmVdZ%Kszg yJj?eT{(rJUsVl&nk;$GJcLoIJK`>}w1X09f#{h3uHjr9IAPfT1^}y`RzyJV#{>Wwk diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/assembly-all.sol-0.4.4-compact.zip deleted file mode 100644 index a86c89095b786f9cff345a61ca5e1c8a80c1a6d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 999 zcmWIWW@fQxU}E57Xe}%Vu|9TemMt>_!!0fb1{DSdhQ#9H)ZC<;O5Mbq9KGWFocPp= zg8ZVA_{5^*jLfoBy{zK=JWdu?hFAuM1_lP(j*fKWKgNX%FP+jM8bKfGt8uiy&#_k=U^?D@4b zWxuIdw$4d%va$Sn-(u1qv0JMPK6vlalTpwycv}0tR;@nJ_RWhuDXV_ED%o9}rFX|e z)VE*H!A7^zL5{<}_gU-u#Ett_T>18)*?H%Sm!X3FoL`Rr(b<@?@8i}rCX${#0e?IJ>61g&TfC!6T2k$VUzIz z4WGzwr^V9_%e5(e=H4E#V22Z*NX^})%Qwtlp?%Gw)67NB&#+(u|C{-jPAp1TwMv=c z+#bce`O+f)g02>Pc|LV@_>@jp&F6a;hE8d7l&qZkXU0{&WiL-N7FM*MI(T>M1|5!) zI`Kz+=IMrhm-eP<|6UcL&25`kwQ*vg^pE>@w$;siVG-iq9rW7dc-xPaA*GM%=gBjK zI_Wk#RT=Nu(O&Uue)T-b7~UV#vwuI{{#9WqpZN`wCvkUXNAxk8$b?-xIcr7Ds^jUO zHf*oEdS=@aQ=3I@Rr~(W{1hO5L?CM)dD^Iv2pR7UrXz@n{pK#-`r4s zQebgVI$LVr_XSzsU+ezgbCl_XbxX5o;kCld$^G&t6^yytZXAtMn~~UkUHyHP{p)-F zi{ih(GX1)ewL8tULjLl!3f@D_ecH@SZ{lXjG&Hg8| zl6!O2ofA&$ZcXuXdK9``e$S#MQ(5bL&RmnaW16~6^1l9w=8IK-i};N$UXZGZnpUjP zW7C>s&Bm60m(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=d%~G{_WatJ zvforJTjwM>*;szPZ!zhQ*sawCAG~+z$tdU;Jgxm+t5)xLaw;v?CA8Uy(L+`VXqu|b1b729{wxRS?zH~Gi$bv{qxAAO^1{^wx0Ri6#v_3 zX?@qhmzVAbr++!a-2Z6VlTR#0FCCJDBY*bI@2OSXd{AtWb=IpO{?`x0-XH2X+`g<_ z`sF=OM<>oK`G)zuKUX^(ng6_ODYs4BY1eJp_gxexDvNL?cbtp4wtimg(R@aYkM{p; z)^U06wVrR4lJ>Z&!HD(k`!|2`YMpuxh4P6!dRwA0t8kmntrIV@C-E?fhx-_kFHY!beNvWsS925 z97>t4&zR8k^AGQn;OI%eZrKQ5U&6RUc-7@Q-1X6lU)b8cd6vp7pZ@-mlUv66ZBEys zYXUOz&#wCCQnT_(+kD=)k%sGTuQ+q<^akIsck!P&7Z_*eGgR$&7TT-lW@*8greAk~ zsc8rQW82dOQm?OiDrVPld&yt&`f74^V@FTz(XcAJ>U-1GzXUzKvsSBE{onbcuFWqQ zL+pNSt6z1nDs)5AJ%NgUJSxZXQ`BEczFolbBI)?e4-pl9_l_Rh{8HCEarQkS{`MdD zIlG1D?Ogkec~&`_zni@Ltb)t~Z&@`D&pP~YYGU1q?4&gYM|2zZ!r975+ot;zg`&-=~izdxS zrx@(j`5MX}Nm)&G&zgJvNJ7DHvp0voZ@6S|kTXQ^pT)VH0B=SnduH6Z4VdA;pn(xY Y5tH`m(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=d%~G{_WatJ zvforJTjwM>*;szPZ!zhQ*sawCAG~+z$tdU;Jgxm+t5)xLil z!UD@q_syAUd)a@zYI&U!*3~L=rn6*Sv*= zD{VU`i+Ad`pWVLVO`@s)?@#9~-9&Ea6dJGX>8-q8^Rj%}bI&_R3i;pv<`;exlAxjZ z$?EMFC+oR}g&D8Te=(EaXZ)spf80j5dy+*aSu5O=QqozpJF8iIPv@yg9(4-z{nzBq zeI|SQolwSAZ@Y{O?=0J%zb`xbg~5jpb#jcempnghzH4q|J-3d<63hPqDzkQZMzE)` z-?|VV&Yg95|C8lK{6|XqO47PEQ^g_8iWd zHRb9YgOVvfH}A3*-C(e#JK*gTz4zZcUSE-4_e}I|_fMXMC)c;t9-Z^h@${?%hBIx` zLz+wAPo9sJQ_6&-Tc@;>LG!iS%lCmKdH|1PzD9Q~Fn z`R=#h;rma0Z+-c)g2B8gV}hIfkHx=}xwz$K&iSJtd*s|gCN1V`?w_*0+VbCi@%5?0 z{U^`Q{627ck2UX}`-T2{HnDHLC~g0Ai{9yKrHbmSwGOU3JFB8)ub21#KJ#2+f{S0G z+`W)zoBB@koL_zE(odCbdfZh-@3tq*)(BeF)jT(-r%G5UvG$dIo}B1n{Zpo2rdj{B z3a-DjWNCy}e3Y-sJ*l_vvVA+fkPH8&}zQa3RtN3S?PCqA{J zAit<2KCvh{BeN`3FRM5|kCTO!Ar`2Gfx)(;Bi;CqapA&C=eAk%&N-Twsk&dTwKqu0 zPJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+Ft;mkaHe(g-z zZz`6pbCR5FEWh5jnDj^N*6M-}-n;Z<6m$%p)_$*5t9LxgFDtISjb(+$6mud`!!ExIKqT% z7jOBuY&-bfmLFw2J;R}U`NQqjul!{f-6-)&SJeG!I@f05#xAA_D?9^)ehdDc{={#| z9D}V!BAzloyq1XAHr!t&^JtyN=|ZWRZ?=~|DgSMnvY|-Z^1kMzz~3{beak*!9C(m} zW4*bB-pi$mlXTdumBV$c4(!U9TIkWPHfLLjsME`@dz-YFe>}hTg6B?@k@kWsAs=+- zE_}S`lz4f`!kt;Jziu-nbO~4*{g)`RIyYT$ny^OCghnpa{TXY;F7S7D$r=_ejr6=| z|BJii^;af?6_5Aon52j zEsaX6dnh5$YxL3n;0D8{%5&|vjW)L)$$D)u_uiq3Me!xf7hcSoaP8~=S$BiPr)QL9$CPPX@A$b<;GgKd%XI-(kE1tdo(jF! ztEkHOuld=wnq%hE55-JNTV=nfzixuV)4B6i59zYLkd@kL$m4Q7?rc`{zU{jb;*Xqo zaqiqf`wb_!&MtD~ag3_}Yg57a%Oz!gq85+X)V=%GzD-|lz*A;^H{i*Zs~2k<7;ENy znXS1#c`_S!=^~BtFt+RVyi;}?>SX0)E|UE?z4F$xV|@JT|IY4t)TKY;Z0hpIdNY2p z7q3wJ%)Yq(%j=?h(+jR$|MxlCO7xCk!@G_-eJl0iBK`*Ll8AY+f>lPI_3BEFKf7l& zt^9D<@p>v3gV3L8rvESZKkNVA+fkPH8&}zQa3RtN3S?PCqA{J zAit<2KCvh{BeN`3FRM5|kCTO!Ar`2Gfx)(;Bi;CqapA&C=eAk%&N-Twsk&dTwKqu0 zPJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+Ft;mkaHe(g-z zZz`6pbCR5FEWh5jnDj^N*6M-}-n;Z<6m$%p)_$*5t9LwVBEzEo`{x_BF85{YPeks` zxTUO??6Oq%WyI6|@}0jIvcw*Z_|&4I?s&I3U1e!fsq+8he&SzBq6}qhH+Se}%xgH} zxz+USa}D{Uwa!dWR(nct`Q|vdePWrv&G6$p-EO9c4D;|A3FSuCCoY5*2mV#Il?}>M zV9KvKoz44uj)>X8-xY30eWm4Xw}kC3Vw22kIK^O>WER3;zjSKykJQS452Np_747g|60 z=QV0%*{}adW6;QAmCQ2hc1-Z)(hR%B@bvGAhJ=`T?qMG!JAbz?Ta~r+2`RT+gewBN2C40)Ah&Vp{ zT$;O<%}IHxSn~6X>xDL1mv((+TD{HM*rKIq$wI^H_U83byVG1UpYgvv60X1XeNK+N z#H{V*Dk1A<<~HTaIm#~Ya{uIByTp6T8lC>XCP`YUm#2L@{c^2(_eTcb;tg!MXRdCa zsi5b`-rLD?u3DbI?6iZ!?EkmBVgTXIQvRc^kF_^pq&u8P*XHvdxUzrVeB zWjFhxXUF^!PX?!-F555vcy9uKnPRR^V)3~PH|2%bS#5gea!tiX@cyM3?b5Dwa%G-N zKHWK`+JDZL)AiBT^`0k>*PQ!UZNK%23X9_9_iOmQ3=Xo$t=VP4C_Md^pz+#2$u}qS zq|B|Hl*iH#x8&!}rY{v)k6f2c`BNiM^rpmq>p2~prrO8;^Qto(wqJYu(&V#M$yMD2 z7oOOhD6Q+6%P`X>{Z53W)oBj>iU#w7ZoP}Ula^iTnd#SL{+wl>ZT#^cc9+f^v8!D> z#d2!jnWOgaHYIH-U$Xz);lrsrl3rZw;^dYy;;uXOu*K!jug&a9d;HH7Bq_XU-CMVg zebyo=KK&ESiYIQeHoefOf1qwD?5J#frsH;S>5;s+Q_~)7v0UdV{IZ1i(U!bT5*Pa? z7c|NrX7<_MI`L-1%b)AM#sqjXGTAfZ&cDDc3jM8bKfGt8uiy&#_k=U^?D@4b zWxuIdw$4d%va$Sn-(u1qv0JMPK6vlalTpwycv}0tR;}LgXvBs)>c4-!Ve4{Vw*Exq z-i%wyYRN83bzeq2?JwW?dm&5g(TGni8tRUBo6}X6CY37xKkg^~r6kHw#&&auZpOTZ zBc5AL&py|XKU(X|^klWC1eb4)gWD&T`P&SCZk@={ExNu}sDOj>a!g8<>}k&9j8Z0s zs_ok+$ZmMD)VVmVZ83kq{?=Ijm9w+|ywqtfk1$QYlhye=T&%P2N#5;~q9N7H5jCDK zqVG7|Q14L)Y4LwvIAizT1&ojO9qw*iBw5J$Dw)=?mnOQ{q$n>H1T0hh(CYggM;<*9e>2Of8Ts&A*0#%_j^j7PF%A4in+qf z_*t2S?laabo!fU}W$hd0yCzTj!vr0tuFw9xH-oqE)2t2NxwCJ5I(YIPv+e5i$>P0t zc3QUoswnSRt~R}RfnaOt)q)8(Ub_`VuG!vGX;A;_;2O^-N)`7@vt&HJE|oqmrJwXw z#Qtxr*2Kl;ufv>fv7Th?<`gR6&oA&nwb`2f+x(T@yGOgP@BcIVC;wrO)iWxDdycJCKJj;(+1$u!u^%;_XoX(wW^xWn@!ur;Fhff&XaSvizvD$NCu(0{ec_u6SbJ9%@ zRfQd#(KTJYV|tRX#+ggo%bnDK6_?4QL67w0ZZD4BKe zcJ;oQJ=#56w5%UYh?!d~`754x^3I?-maEFFy_cL4o9g@nuC4Rw-Z{yw{8m+wjHRMZ zTb8A0=G6TiJ1_q3S!gV=&_QB))04d=oV!nR31pX?@($K6F>>>Y`H{4R&3BG*Mdq?u zw+{tzUY`5^eypWkfHxzPJu~iH3(UA+(7*_yh{?kN-mGjOwTwU*1f;hB%K!!j0E+D9 A0ssI2 diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 9da806ba53b327fd8831fc6475f799fa50e411d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1498 zcma*nXE@sl00!`XtTxueqpEVX6{(6<6rn}ch!I=u6|*&B#3+X-N^7fKsiKOC**H{C zRgRLgOQkW-ETTq?^z^>p^W6J>c)z@#e@Fx)(`|qO-~=MkftDtz3dT~*0B}VJ0Hgo_ za19Rj@$!F&@(+=bgWZJ5!GZ%GIHSS?1JEJPu4s2}pD+~6H#oo_%)|^h0zfPPXe1|l zDV{0@y&N5Wr_NFQ(ckA9QSk9IbBLxSo~>P}VeLay1;Li_+b#z-c8F*t;kV?pn*6y1 zXS#WW$oHyZwWKeBu}<>NY_z>&hOs5qF=4NS%0@F)jti2;(*ZDgBew~gcJH-B6KQNrgfI|BTHy++qre5UY{N}3bkpHeAzq{{tL2~m(vW01;NonR@$^84>%`JFmSuNrDPkYD zzEbfwPhXR%Ro7mgON1VW5ndxJ3u8fZcT(M=BvzFuqi?#(pW(h!S9o>#wn{vGs%h0C>xzR6 zeZoEHsfuIns3dEv`36;$Cv7S1U0>ti)5SFkj^d14oRL)nyfN3@iJl3prqC_nZ72R! z-j$l-b=%3;6RxC4tSP9a?kzF3ZD3^t)-QT?q@VdBHq*D!Ba^A1o`$OR`x+9Dp5Xyy zu_@T|L}htig0uUlbTLDIVm0gKre8en+MB1c?TAcIoH@y-US^af`HDSHlTvnPI4o~t zR|c=W&+d3orLE4^1pu~LM5wGTJpb6Y+>BLFQB5fN!dw(j@<&X0JvmdfxV_7wTNN5Q zR5)nQyigDIM4KNu70buRDId%1O*UtH&n^EfdD5#InY{XBrv5o%$`$g26tBo)HQ0VJ+xHG3I()Qg|Zp)gWvy5n~Q#YpE0tP5na&mE=YNSMo1sIVD zUN9VLXjEalV<;#v?5Nck6vKQ~$xL6aSWEog-2=&_%C9Kda7ca%2c+Ep>9F8z)!Wr! zyNx!&RJ?2$I(y}m^6Ha>-%ttO)aUJhXD^z3XU+m0Pb+dCSAWEhi+j|n60SbLF6}(W z7d`qZhJdJ^XbhVAfX(4U(j-UwXA_$+_MM?iCzNe-H7V%;7by23+&zY}X@W6ny&p2) zu3Y(CNWg<$U<>s#n*0G4*>!%mc(Ph{0tPt@Ng31(LosD7%bU~mil?4!w>KOUHK9 zsH3CY()hHVYL+TnH3j+=Z)`}gkPYfMOWSu&#paxm-u#$2d#-`5WpjQay(Bvoi2yO& iX8dn&&&mBav7le`fAvKom|1@PLFctTU;lH#0pK5#!pV8xtGBj5_b6=@F zxd}NQ&vdwthe$OcTK4F9|9n2r@Au;O=J)z*X%6Ag1;7A55D^@R`Jl8WB?|=rVKD%> z1OR|rNC?3zz~3`~q@aXUMJgdfh<-TFus~uk3Fj8uBm^8&9b9?a1ScY>=j4tB6}2%cKunG*L(tZ1~-94|GM@F-S z?NWAJ>iMn|Qrak6rw_5=3m_DqXf#!5(o?+xp47?9Dtn!8LCcN6JsR7zQmA%WohH_t z4kYP+nYA}EysK>R!saCM6K3L5!0Z78ajl6dLr9i!i&{PGt6)2ti0*Zf6_ZA~w7$Pn zQTzVFIGSYkdofXy)6tsnlD#Js$3@cuPBVq2Fyx%AoZ!dV0&} zp&G#HoJqz!7!OARW!Uci4#=L96H~I_Ligl28N^gMXb?v$c^iZ#O9(2)L*0Jxw8+0p zG(bf=1nKj%{01Xk@{{>kUuz`M-u25TlyhMWl*=#{>T@Xv+y=vE;-9W1rpwHSy4ok* zlcMl0*-c}t_e*=yj>6qlYlvpJ(a&r5%)e!##p?g044#oPe5DKri3ruDIFQR&d8?D? z3@>yac;-BU2<8-DtanU2ga`>>KSUua^5pf`oFOUXM>=!UvN>;VvO8jM^tiELk zi@1BFb82A&S4h9=JeN<%)K4C*H~>vDvPWe(Vq$s*xVFi)o6Gu3;>C;ZUpLf@FmBtA z#=HB_dWK7(i{NazpcFBNt_M$H!E`(4cxP)cwYkXH!$znX@gD1^gg|+J%zD{JwBy;) zGWV6gy{?X4u}UQgaFawMLe%&11>E)Os#Ao`p+sUHi!(M@rf7smScA{0(bzQWFEeZR zwjJ1Vzd=F%%Muv!&D}QSa+Ie-){nEdOJa)OUB$s)UI*)Q^~}dGRJnKjUG&z)buZ>I zZH0zrd%~A;K2;Bo%D0|-d!f$Nq!_Or>!jTgZ0AU0dJDwy_n7TlU=WR2n_vZ#ufr;k(hJIEZp*D?hWHk}R3EwEMuU)f&X z%5HiXd4{qgSF}f@`4ee4$rp+|lF@>~a>a0NL<`e3Xe4+-~jMuj);^LL^f22gEJZ#8!NkZ7Jq3Aq=hl3Gu_F#9fbcz4P z`h^W>!_%CtqR%Vzz$`H?7eP2;^nRG$`g+}Xx)+-rq4T`f(i{ZV ih5R?T$L9WD$G2D>C!W|ALo^{NtgWm|_e{w5?DLH+s&GLFAZG`P58$4Ldk($8h7 zu;+S7nbV#lDU5V2&h?Cs^69U%uSV_(>|b=hT`519JZxixQx-(@6q<3)W;xi|FOl|v zp+&8nOI8Kq2rW=K;bg^-25FKj=;?OJvMu#1b&^)egE_)-=#yn*+7}n*OZ%#?x!H;X z&Qhr1T;IY3HD|K8y>XaQG0j$(l(VBMs_)v-o1*j1w6Cxl`nYx|hZI(>BaC zBWayBU4vYO_*F<*FL$ZrQ^?)=SA``6eXg$UjPotaD;TC>1441Cq-KhKj$H4jyeKe~ zEm*cXp)kCMEoEkqOWML0jd7kl9YR@mG=X)|R8#o(7RtxI$KK&g@$TW~+o0h(^3P32y;yLE{pL61B(z26eX3Y+rpoYknWh~m$(Uo4e3i!CkyQ_3Q z(mQwSNtHWDs`RmZp5aCu2;ZE~MZ+#f9@5;foF|NI= z{HWcE9!4uJ8Txuc&4G3xj7>7DUwW>ANbz6C=0|-8?+9ICTl1f4aelc{wa!o$Lqi zNRfRWgjwz=EYTb=bLvimP_B}2sHvz3Aet=yga`H>>jcsq5 zC0nF@tD?)?pL-*~1gP$OS|YIRUc-u)O8J&7<=rtgm0b-U&}jSXq3W%$Bj3)eI>Txm z{58X%K5)Y^tmIQgS%R~plr&oAzxmx1_}?(4e$D^I*x6BT%dfxGX3uPHt$VPbPzPI6{0xit4!jA0~2B9;|#M3c%3;hM1Tfvsw37d2`}n;!kVC*0oX9;6jrKk+oRy4g=&{9QFG<9VBpAw?4O znZdt*l^~mUyF$L9?7b>c$_hdSLl&kNK_ZE=Xe&9prh#aq3N~^dibJk8sQ(EG{J!!- z?pTXq-lfk&a5u)%7qZ3vb6%LVV((aHse!+Gi{NMz)VNygFt}0ZtJ^2~#<{Lzb!tF4 zUDO%fg`LRt!)i}nB#oLl&>mgR=AA?~|AfZ`6l~f{ z*;&#i4ND4xBz*>voQ7!xQJjYJCqbf$6b?H8afFW%4@Q>=OA-n=fy-e{NKhgRKUktsUpLFsR4G@tomD?U zj9<2`)*3vkf_NOhFjvzQa&N$Q{%iW__zKt3xQ)8paC#fV3&SxA_b4mV@s&&ln$}`o zgZ4A};Em@e4n;aHXeP)E!~Bx4x@k9Vc9BNk0qMhBZf(vGF5?qlyMAI?uf4b1hgqMp|K=ukKLqnOS3NwX+3Yye>gA6t^uU-wK|S2y9zZ)^q%ZJbi=%+^-O{N*Vx z`5x4Q)?<)XLJBML{q(ovkUftas74(THk^SM6_1>ZU_|(9(y<2d$b=dX7J*0{>(`45 z&W)+UXahhZgRHu5XF3Uq@_8;Myg2ND>z-O=OUN13`-%1Fuw}hMhoMR5h!wOI` zbZSw#f6a=SVH@Vj_|wlhSxx>XJm}Fm%LLewTnp>L+iVw2&WLrsI=*MoVvnly@(#<@ z4Oq&gkyY}6qA#0VW(18&-EFaz_SE#9PYXBCBiZH$x*ebI&!q7q!xr@W=ii*_f=W-y z=xbZ+b2kwfurTu<^ut+!Vy-?~_Y2uyE++u=Li@cz_9bt%Gke=~gwDa8GaAzaThhQS zoN_Vx;1=-PR3$QRoC+OAP=Cz-EZrZ8FFrP#Y;xooazgPP0{IVH@nESNk0?KIr4 zUoi75R)NDx;YXy6`xVd?tlA1a)Ps!g?T|B{TrsOOMM+Pn>8~!5Fqs~1av-eyf786K d^S{ZE`!)X;Y7aLB#b1B9^&VVb<~sHO@DKQ)%HjY3 diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.12-compact.zip index dcf8b215b7b51d1518f05f22c4027300b20baade..910a72f1f04664774e1df02840c9922f67ba591f 100644 GIT binary patch delta 1707 zcmV;c22}aU4Xq9sP)h>@KL7#%4gl-5WLBS7?ZkTq001;Hkr+~cAJ=oe7BTTh4~3dwgEWQe9G%61M?_vOju4hVaqM}BpKVICqMC{jA6=*U81YL( zgz(iTEQMxT34#{#qj*($#<$`_L^AfXVq=lh)5B- zzSUS9l4>$bZ4~)|w{oJCkhBd?{2D-7g=Ex|pC_zfDk*b+abZMy&QyM|@iOyXjIbr6 zzi5s?h3MK2ip-xTWt6m!K|Z+UoPH}ruPCH-`_^Ke2E7?2Doj2zU}smIR{>!pM9@hw zq4WkfO54K+79tS?>Hx~DT0-5Dl$R8k7K5iOiS1@CCBRz%`O$3DSx^nN+_-r7q+I|* zah6$N*#*acC0TUYE+MG3O9w!S=Eo4Rp~d=&ep#>Mcr$Xq6jCJg0Fc60jR?bY7yk=S zc{_Kel$JKOD=d@}aeF*Snb-VfoE5oCEdACqRMV3FCdph6K`Uki|_tMl< zV{;0>{JzZ0D(fCg|ANi+vKfe6a5`uD2QnmO+Vr4*IhG+lHjUw0%>&EP;%}45H$R=L z&FgtPv^sRtnvVv-e7y0GvBE8Zi9Q3VH9(f`(fY!-ze;Y)fb27>m_#!BzE>Rt!%wlH z+4`#rArIMHKO!v$wRw65GGMt}jksxt-4Z#7N9k$K4=Q0!-2`pZ{5B@m?OJ0sL|X{x zhz!JkO)&EPp0QZ%82LMs3n0@Fw zn%>UNwNhy+QazGg|&VHvw~1e#)9;9BXj}PUYlU{BarMWcnyIp8gqZly0MR2bfyZ@#rwpG%0_% zYHou067_on9z7fKYpRy`J%9&gqrWwiD*GjdV_xjw{Kgoj$w1d@h)7X{ChvG**mFgF z8M<=Z)1bcVEty|;ZHMpQartcSx%lFLWdwB!wTNnCU}Aypc+MHHPFgY&iDu=#)Mv!W zG>TdMM8RFMB+PLCK!%!H&$KeRO=y3V$A1Gt8g*K$s8npl2N7`thKeWv_ObAWJ|roR zP=`zN%-vMobZD6@)TpKP&z+)T1$M1*2VSQWbi(WWV`_$q`A$8HN0uRlMjI}FVRpKo ziQkWMt!WVSJLP4i>$qpYo_siLF1^URp%Ju3-Su|J2mHVg;)*@Tgx9{CM~P)mDT+_@ zc+DqlDM?GxqFccxx|51fuS4#{IBZ{+dQ{iGS8q5XN`MT>}E$PNl=;gdnH1f6JwNTQVk}e9$zo|mz!+9$Fudm zxn!#aXT3`q!6Jq#!;Wct1MR36W}W~Bxw+S0RGs7%n1|*z+;Y0b!w0Q@3mB8bkE?|7 zfDrPlK990+_GckMp5TC$6*_z9*40PrkhzQV1XeX;41%r7NMzc4Qnz8KuXq;FI% zL^20Tbs$$-sIY_$Lgln06p5q~Xj$XwQh)}K^rwn2_gTf8T=6W{Sb-cDTOj{4y7hr` zLgj}R_eTHhVVW>dO928u13v%)01g1_wPaSGSM9`m1^@swG5`RRc?L=b!3F>T006J8 BNLv5^ delta 1612 zcmV-S2DACC4#^E0P)h>@KL7#%4gh;{a8$}vb(|Ll005FK001bH>;@~5MkIeHuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&34>lSUkmy3`U2DB3ezBG zgr>4lISmIVP1tWP{<0BH3tjR3@&R|aCXANqJskF^SPk77@J$Kmy;`H;xm?5U^}YNU zHKBdXBc&t$RLFvE7Yjk^4eEb-PitLerd} zNDJ^D^)}O>HRG4&3%)?AGZZ5Yib)~BzeD9fB`3w~v|WHnNNrKrfTe%hJPwT=q?=4# z4ar5$p#yj8NNSW&SfTPfGElC|_b8ANjo`Eolpo=Dw;uIZ8mUT6-@a}3a~vM=r;jwq z=3d_mKt4dVJvXGi}%b?&k_c4tMm+4Avj!0fPZKTRLBtxWKa z!u1UEoNpfC(?UDLulVZ=xiAupBIM5B0;8UXn!l<+zSL~nZ%PYdim*|HOMmP1pr5Iz zyNdVu*_vGTFYfxhzWUbL3P-95huj3;8BiT?Yu}FVxvQlA512D_6RNQgt zKI_eS1A#`+lZH%7T74tsJh=iDrWQ~iu93voo7CfUD;B1+M2n{tJ9Bt%+<;&^4X0hG zZhneqqQfLQwWp}Y-~bJPVMBc*zuIYUyk7MkJZI*9+C^5Cw%fOIS7}c8mxA?rQRNI` z4aZJEn?#O*N?CuGMJPzJrWP<(EIh&~noSj^Z=JuZF|@*B2#`b&r54K(9hBKf=pbql zQMYwp40nSZ>J{9QKM_k|5lAM2Zp<7yg_Yz!`5NgC$_B@W_{?M?P;M?edU71UUH2Rn zz>_({s{YD+FucTeneYi1$2ww-W`O_r?5}|%KjX-}ujhYG<2=cz6>~FjDsyI-F9C2v zal{PD5NOU>sNY3>9Em6}?G_Qw!62ZY!nXN>8PCYgnnvM@DlCYRr@bud&L3DHUtYIS zYb|3{rk8b-X(NhOK(X-{#UeKVDI8R(qo)lG5*&^@X9^mbK?f0tl^{3T?p7%^l<;N5 zRO$;;Aw_>Ggw64D$|2Og8@LsVF6+hrLTP>VenB!r7{;LLlRb2^J(Y@VMGnD6D7m+= zVX;PSrGnb1IULNiTC6+qhwpqYfkc!R6l9%=N)W>%d94JgKFs=Yml)vqX=q!!$aVu) z=-?hjmN&nDt(Gz)t8|Babx2;b|4s@^Kkof6Fadu(}W zoEKmYs)wfl!|sNa*w?tU)b%qB$VU>t@G(ONsvsBz&{pQfsa#Uj zC7OQ^Lkr$)Xk!2P&9)D40bw$}xH4^waL*`%VweKEv$LE$7KlTi!)ifL?FPE|u*h3J zi0ptXYZS#GmBe@mTrzU6!?njkV;7a?bKr7UGVhU`wK~WEWSC|CL*1ukZ(UxOu$Eg! z5O-Vcne{uF${M~Z`K&<6RcOP&hong*6RCe8`)be`u}9#ybdCm|bZ%J|uS8nCLH`dT z5cV#Cn`pyq^GWey4ZRxYndhdLl|^wYlT8g>+s0iaqyruOz^|kM17ywI?I2DHvHGg8HRri zy^?{)#14(eOP#Xt&S!TCLp0?$bn=!E`D`n*`JqbiE*g`uJq_gmQTwtSdK?GURjold z20-G7BBVL{a=p&qHfaY#SlMSSrW_iH+m>s_b;>0xGQ;h;GZhQ>(1;QLp#}JeC@7Wj z5uIVaEY2`!+H0@b*wtzG|NC;JI#3x)0Rle*KL7#%4gh;{a8$}vb(|Ll005FKliLPN K23-aK0002_AOmFp diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 59d4f189a3570ceb13a789a93baf71ce1785df56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1503 zcma*nc{tMz00;0NLvmDl@Q55yQ^`>aN!eR5NoI4*kYnU-W9F!qyU9jVX+w@&t(tM~u+dEW2$kMBRLYmf{Qb?Fgs{wVMd5P7Z7qjCOS4Q023P=9+41Y7DE~sXt_HjJHQG9yGWp_4C;WpI|2jrPk#-=0x$Ght>1s8y{%DW6Ss(2MO_M)M-U%odYhz7OffKDkcN zsZVd)PTHTxwN;>vlH7`@_nTH0+J2oqJZd$JXDxOOs8(HlifbCh8v9#ro46`8=GZzZ zD2&BCWT>3lR5%qzdbzm+oW8Rp)Mq6$g&fQG;zLJN zQXf=z?up_$(h4*kv|7b)Np=k09)m)xql>4=db+6uYD(Wg+}gUXZl6 zt7Q%E4i_{|A6Ob8C<-{)H!$V3LF~`9NrdL1Z;!25`1sPwTH<%EBM*M}!CFMca{0}G6(iVnln9W#n!m_kNP7`SbA)6t>^_qN>cw0U6PdjA@P>8J! z3UMmqk7w+Q923i|Y`kLC6pwp>2emskXzcWZsAzT8x+L;tQbaF~^+JhW($>ChM3Gy6_!D(XWS`IE z6JGbwzh)n`kx!gv34s{$l%`LVOZP+*d&l5&KFE&|IA&bz5f^?dQV#yDi|~4HB}1Gq z>x(rhu_bByrm1jZ)!ifm7Z&kE29j>(msYyg7vEr)fLjvU)^ZlA+eTO_+)wp3ESbURJ_V$>aNbd`t zyn)K65s!~8x!KN+UAadFnaAeBHYr4NCk%Lq6iE+i$H^zp)6#RCAyIT}EA+&y_WVSO zsz=R>So1MvRX7FRe|-#WJ2~O_a*jJxF4?!D({{PxQLr^bJKpG%Zf0?Ia<2dHC{zN! z`Mu1c4oRZtY0R*CV~OWC??Qf; z)HN<$7^XPEPwa(Z*^~pfakP(}A|s~O&^4cZP#>wvMs�qV#70!+}eLLRhGdw_*I~ znbq)0a^RhJf#vT|q02WU<7#Ve@B`&72$LTRgN=E^i0T%RUR2Ifzr$veHP7KxG%hc- zMxqcwGZ#M}k(H8Y>9-%iD(IF;?8$fS;*I_esFhJm{If16QDLHY+6SAToVZmlVS1TG zTyQlOgk0obtfyL!f}Z{bpKl6VHMmWnW{Q1kQ7qz~Gb;beUAH}NDp8x;= diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index ebb874ad64f0b1996ec185525c6336c259e78a62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1498 zcma*nZ9LNn00;2@HbZta4>idxEDviLnumxngf-8mT-hWinTIixXUXz7q4Y2gi`Jxa zlZ2#6-4c1;Mag4y5qhxmP#$)5@9*=u-|xlm&F}TslLV2m1;Bt3kjRK4?}W;m7(f9) zeHQ>2000me6B8N|84(=GG&IJVVvVse^zeY-_$WGq84$<_Iu&|47)y(xM{bdU0u%s9 z0|1-s>=4{KF1li%r{RENsVFj3w-uRj-dh8&FMvHXyF2?d=|-a;Wc-UFE3K>5S1)Xu zI+NXf|C-1ADv1+vQ-QoWy@f?J34nc-d;^Q86~tO0=lFGAmWp!vZm;Or%{paw80E{x zA}Fp&FRx@)>hCvmprAoZGu8{zsEiMbEsE=H&MF*{Gh`I3;}clV?UK>67}AL*))&>h z-&2P2jJa4vAqSP8>TEtox{}`chTyHrvm+ymg>ZY_b<(O>4hD-Ap2pK{n%ANstct40 zXx8%pUex?lbPB7nmbg<{+bKmrzE~aKUD@2RJ~pcMs*iwkASw+jd1$LOK?pu#E**Li7L<7&B}Pd5c|JAHKPJT+r7t{t?^qV-Sf?PYyIoxKL- zK@o>uQ#aWeobxyXyhs1aS-v4hr(ch+^h@AO%)*4l#Mz~L!u9^*qlb_l zM^GP_YyR_)hKNBf#tJV`Ih&D7wZ7;UWOtt(G`8eHt!`_&B1f08oAR&2;U^ONiiQVk-p@+8I|MJ3q0aDiFOnSLx^ z5v=er_n`unI89Hy`02};GUdXLCJOv)oc5?V3p*9Gc#jp;UZTa-5v|B@D{=i zm0`nmY_Aobp(~?^Cd>9TytO7b4WX>A&!wC39MR~; z9m$O5YO}dPk0T4T(J);AcdVNj_>P!5&tFxGrL=YkPsG8MA59vV$#yFVFq!!8U2G@f-TH>6G(_%}j^Y8cT9*C)$~h z@%lMW*$?geQ&rs%JM6NHz8P7d{L~S?MwnsuxT{P9rCWgNhFolojD1I5E#Mj*vFPsJ zi>n=^JV(A2d#D=*(+?1Gd@G&TldQ%@D2HuqtERDdYYsZgt-}V?r}YQR$~)Gqq|AXT z78!XgaJ$kQ!nYzM!Z0nGqCv0zg@+EP-7!r31>LgGx193DCt9BOsht@omFAn)?48qo ztPu~^EZa_Fc)5;mBwSHQ{j4-e%0>5Z2l9T&s-{G)FEiZgWQeJp>b^5)r2Zmbz>@?5 k+d}@^+wbK5n>5gm`M>&llAy9b{-EzY{Cy+83l0GP01Az$Q~&?~ diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index 18d1206a024f7d32433212de9d82b821ddc95f92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1500 zcma*nYdF&j00!{?EISQjsFcf$mWqIrSNUneRTdaRlq95rWTU2=l2m3|Kewd2hs+4t*^jg|n z28GvYCgtSmV&tm#AljRtKsz2f-uv^Vm6201O>hYb2DrB6kX7A9s4G!5yW7Pk&Gb2Ezf}Y?ngVX5 zTP2EVTlD5a-N+{7jlJ&5@`te;(V&4N`4q&CzQRORe?J-o-`}qeu5VQ~t|QEm;%zy- z6^unLsXsHcSWH()ZqrjL*bK|HC2%HqOV*~c-?Hts{jb#3I-5-L@m`Zk?6~lV@KPf~ zs8y%sIQB?o$z_Q8DRmvL&8EG^nY@`93+JYNw*qb?*`8@EPYoT2<~@NfwYiWY=2wd` z{Y7kf-#g(Z(-|s{UpTD1G)XdDC0Y9+qZTBn(}C$MSSIo9C)qTS+RzP~yK=_3&PQQk zRCs;SX<7G5#L7b{HM&)Npsvc!EzNEn7f9ZfJeYTwzGUe8?DAK|z1*3WSl41$+haVE z&#%#Fy%6{(9tD>wJvI<4WfFwz)N+%%rr=_zeAVG&mm!uU90om!ff3-=Jc_Cw`{}iV zYZ0Q2NX)Iv6TINjfQFIpON^ka-VNjIVMoKPjqnykP8pYCu<_EPeFEO{;yL$@IV9TQ zsm~kkQ3?dd@>EudkDg?EiK;Vd7B@#gksG7hE~xhnW$jn8>|$f z=9CGe3vTgV78G~Z#fSiR-!ThEn=#d!KBUfb*D1|aF~)^;DOPvWH?Nl+-%2{CCK@d{ z;OibcOSU$lQ9Vj~kdwOE#!i;9kj5V$G6G;#@#YT+Kj?nnN((>_dW=q2Vef@mLx(gU zRd!Oq9p`{4kKCibW05lC^9`_gT+WEgn?gOU!EPjC%v07!Sw^j%*M;92X*;q!_V+4f z@pHLNm2XB^-(&}ldE(>sG~`La*6Bs&9i6?&gN{umi;_JJviITkds>gDH>a^flh5H0 zKBfVw=ADrumR*ilA(B6%(|1~7(DXnYzV>3P7;#xca|$z(qEyZJ!Q^$JQgCzkR`5K6 z0kJ$^sB(h5h|nPAeez7kT&T!=vzq{miFiB3>HPI1DO|?6W2Q97y9^sU{FJ7@TWT(F z8QWLIXHLsIrbZr17nJb4zZO+!thYzeD)uf&L4l5T*9~*bugqgT^pXox~@#e zf`#{d7C$e2Z4vZ|pY_uYd%HU=GPw$e)<_m4mbunY)*^Txho@z_78fb61KXlaX+xwhO# z9yx}Rmm*gb(d#NN%Dj62f1l_5e*gIX^ZomS!w5i305Gs0pacb6Y*HtUs0so=BOCxU z008g|4)*mX-6W7gPG}=^5!#4gG7(RR2p|WA;5~!9e0;+Q2)|%5NdzJYxC1~m0Gwg5 zyivbUf%$Ly>x{&+I!V5&EpSGH1I$>x0@|SWVxfcbgmYP7a#frb-Phuz=0AINp2e%p zvs>E4JoYXTy~v*xpb;nTelVYlOs8l^Do=E?T&gpb*+;aBhT9HjxtB@GXYPhg->JtfR6R4- zCjOee1_?QMMsr#Pek`3+6h~K-%SI?9S;?%gOzjHQ*~nK=q5uy}6pLQS^L<4?bos9+ z1#!MdD}u(SetLYmUEo@o>=FS}Fge;zrN@NWF6!n=95tQO0GHK3COO4S(|B8zY$VNO zbTLuqEN;H+IbPxHJIIx=3GBBMCyS4lUS|gMFPuc|6fNl<&L9U2qI>JrY){R2-R&Q9 zU|KleSPOrB^@XN!YsqHzSj(njdG?0eqv^r5A+DSp_*u%ERIYYfsp$0}P4*AKYB-d~ zf&_Hvr}$z?@EJ)px(oJao@|-9ojth8)G6Q0;lzGLp`fBs4rHcn37kkJK{9eLNT#c|A5ahBB>t3bw;HxiplT}9A` zhi+S;H2T|70ld3`{K;m`BC~dG^;l;i)0G$kGo1@5zd%0vm^)CDS!txtcrubLa^-Re zCLJVUIYWXBi-w~;*ZciKul&&|_;KRWcw~yKQ!SyQbK0jtpm^QWrR~*@m?bswi-ruu zd0x>VFj;gLWn2Qu?>P4gT^jT$1GY=|a?JN2bw}}qaf=s0;H|kW+9?pBH4b*}-F$O8!2CH_sjafaq_`14)#=2`y9W*&z|C>!|RM_d`Ne zBl}M@wF;**NXQ}@7@n&R>(T!_8P+|(%)^xg#in6YwD6SB{^mZGBkfeqREzY37O0Ux zqK@NE|GS`~m#*63fA41$rL$vU>wOX?VD#BTdJ-tDQZZPok^@IdnTu|psg%9scf@(% zyK3|Dm|;V~fSBu#YH=|(l(%zn`oV z3atipF*y1NCDZ<^|E^$gevN1QKFcFMk=t`E-o6M$JC6Cyv+Po=XB;TA?zsUy?wPEE zNop&%FfLv;K^P`?{3(N|wQ%c1u@`u&7@FHy5+AjoZ#Yd&Cf# zlUDzHnk!~7XMV{3L&?{=2)Z5kOr?!uYWeUeG?!LOrKsK*Q9&v>36~(xN5e<42{4Yz zWzScoOpBHbzH9FV2FW$HLiAwG%W=2J$*fFD=cE*t(Y_Y*n~n z&mUM26x$xBQI(dsX_s=Bo*K=Ah3zR he`CAn?Z1fz{ht3zFAgIp^!pFmtMlIa@9_-){{X>2s$u{D diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index c04ddc85c36c628f2b60ab731757a96bf5d9d46a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1501 zcma*nYdF&j00!{C%`hyHOUGrDTZ}apSvztq%UmYrq0E~5WyXxss6#`@PA<77B%jYB9~kX2gUNZnhK4wm$1|M~5CCX} z1HdT&04NNGzb`Gwn-->vLY_gQkc?m|**hX6I5dn*3H9{zzwV6;U~!VXWxBcA`e$y!&E8 ze`BHj$~HdRw@lROU>?eH*CUJV@OMGHc~PEJgAej6C*otYdPl;#{Ny{dD#qA{g8H&AoP4W*lS>0!2wqP0l$oU{B!J(h3@#D8*^z9bz5MAG^M*LpY3-RiNvqhO+;^SE!V?Lm|TvjOY(1*JDifN9|} zYJ9B}f%ph)Lx7|SzQo~;-g9#a#3h|rF;?q|s3chT=(bsT)Nadafy&f3Dfl?d@f6xV+EywvuigBJx!?B@u)8PRMt`sD~0YDqCu!G_fXBf}HV^Y60hHK=?g{kIL6` zi*nOr>M;HM+ig3HEN^5qUiP_P_K8?7TeMLdc-GuZA+Pu70!FNw%__J8*PceY2YT(B()0`r~&O61Wpr@m|21 zGI@^D3Kpj3*iOSMgMMF;E_e;=o{a$hMM)01&4o~I!guS+N@(mF2+E*nxBV+P)oSXnXzU(GH@dNlI{t2~A?+{W``kS3QA2c5dWZB-db9w4q8B4DAUK3b3clz=4)xOWr3FxBr6B+T03rdv zEI!^Fy@n2A^Lce9u-sNES*v+hY|0sgIkH0Txnb4hD`w#nJb3IYEGDwE*>$g<*yD42 zS8e|3nPt0d?_#LSx>z>G;~-IP<=ZN#PYmtT@V@?#<75Qeg0vR~=&f^<9OMXJe@dk2 z^?Q@qaSosnPlL#LcNWx~4@9)>>;YY13%;=OmTY)RJ!uY#&xKGOFGtJv4 zn=b9Yye3H~j^aJ{Eo?POL^y*R3y2QNv2Vvm8V&w_vwLyNDfL_r@CgNnNq9G|m>!VM3edR8(DHgVj(xIFW;itz1%#FjD0^<2lDH z_M}ulO(+=t)+0X+bGWCe@XRnbM@EFsL3^2;zvACku{M#&D`hAhuG&*7Z<(6niQx9+ z7ks22aM&#`zR}Ubl%P!|*YkDj((JWNW!6Hpt1XN?iXSXoXOLa(Do@Ed#r|&^3k0; zGN|1q18MiIZ*Pn@j>EcDP(DbA7Vo%tLlknob zp7+{Tr9W;vPkCHbr;+Qj*trj;%h?0;aHe))Q8M~^Y9|px@E6__mst`8wz5MaRMt?I zSt1B>vXSjbxF4t^0J{ND{l%u@JilehXttvHgeztTavbHpgd{~8-Gn>V(wwH6s>MZO z;S9-4fq#{4+*R7zc%ZWEyRTMVLzbpFOQEx21AeA967QXHNt79}!K_$=%6x!-J2w%y z8X-gcFeGf&Ny>kZ-$&2G+o)!%L@!_IyTn!h%;!#egZPeb8+$>}UJkkvZCCB@y z8Gc}EY9Rbkg_43k`aFtSYM2wX9L^$Wh=g9MYY?Pn$iRme)w6Hz!jit4j1g&+zP&ty z93!@*b>44l|0r~8_s3C$Cq2gLDJ4~VFQTRG(QMPwt>L-U+0&v8Hv$Tru#sr|*y>ZD z_o1-P2Rcho60b(CZ4&fm<|h{@>SbB0*m3AsQD%_7%)F|#*W(^q`v*Bo`Ilj$D$%R% zP|$4-v%GNGoN|?o)4zjzcEU=$uwnSa)d3su)Z)}9%CyVKcHObE5ov?h$D*4ng0PZ9 zBk3atHLg*AXDL~y@+>$oJ@o-OYzQivYTSfDPIRv-w!S65oF&~myM0a>2JEa@>xPkc`g@zr6^foyDG06_Gt)%{r(F+i#oV81Pb_co1bM1PG~_4rz-Kv6lAD z+i}DM=(`t$0YAgdUL_d;4!4gR-d|JnF>Ri zW9EBsxhgl_bH0AfZiFocvK5cM_C^rj>bV!(6)zT!@oF<(`nY`Jv!fZ7mzB%)k#(l+ z!$q_h_DfAs){`Nwm?+I3G*aOQ;~7qdgYuSh(4b&AMW@d9KK6sMQaCLDQNW-irfKl1 zaJJV*#y2QyIrZ85UB|hpOZjVRzb6%$gTQi1>pfPy4*Aj>+RHW1FJYHSRP}4rHVD;} zCb}}QMs>I?A0RtAd7$==OpTdeqgCa=V|&g{8f44*1K5h707>2)t3CV8Zh81bPP5^w zi>00oUG3A;lWTD`NCG(YV|NQ${)8zOHJlt3s;zB5U~HYdT1MPgXECZ@hi=niH*ji# z&m=NiF59*!PkiB)lB|cGd>K93d+_jArQn!kWyJG^r9>|!Fc~V8t3Fx6T^h_yIqbKA zXRt1o71tv|AmNV6rynaup~F>gY-F08*)#vX(^azt86CE&R=ZF<)GxO3G#?_=GDCY7 zHCQQY*)_0qdx!Qa*U^JF*UkE`C9wZ2lr|*L?T6}(Z99-wFAW;ogTPyBKD#wOP|x90 z2l#lB)!L3SywK1MoYPc|cDbhx70qCnZm+^&tZTIQE5{l5jeJ;2DW`QbQUyUm^b`t>FO|f>IL_+foKFKdhlo@7kPC%4*b*(Md-&j@4Mn0MNY#op>Gdx#ZJ zY&xw-)n^;*z+>S=$JtR&j9G7ac(sU^=7}5SPv!W;ii7F`>$XfX?xJyUf~@X4i`&Tq z(`~v~U!|J7rhS40g$}hB*;w69b?K{tDKi%;J{y^-7)Wjx7aS0wUy^t$$3ldl64jd( zOv&HyNUnQ8YWK{;6;@WJa|V3EwfbbY3r>3vawBeCzHe7)rtKKs>lW-f$-1jgoQjdH zy6H99R8CZ_nO)(AE88Sd9cb!_l1_$Xr>fISp+K54OJ}*I4%s?aK?E*qW?xAAeBOU~V#bK!61Z>&!+v@An zBID+D^-yuE*(T9MpT5P`kL-4K07+Sb|6ANY-2HDDpr81^8h3Wsw*BWG^rP-S*z)5F G0N@`Oqv%`! diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index ad1a5bb0ac8dab48d01b6a0d081f740d6d6fa626..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1512 zcma*nYdF&j00!_s8kt)(nM%3jQq7`mdhBS!By5dkbaP1#rnE7aT#js(Muy2HQ_bCB zNLFIG426z_hnyocDW_0ILb2%Rd_T`~-uJ`%<^B9~!z*mT0`h=55JwLszfKoASb+fG z_dNh$1^|FxczAFS^>P3;!rTImgj>MFX(7G=(V;YYgs&gnpAsAu0KXVcqbhF!0p0+> z0Dz;($w7$kh_Ir;zDK{P-RYzT8;kcOrJdY~F|Ac;LeSo*50ep!hT|<77!lJXkrp;d9Ak>qo%+;PWO#$ zo41D=qe;qoik=4i=?k#600|Dm_VPWC^1Zz#KzctRcpcPGd|w*vj?r=R(8&zBO)lGsI#3!K~`qV~5kp3!X}9yeM%{ zAjoCHt*v0ZR+yyNzc-=LEnghdTFH#$8L7TZpVaTUzgY1!Sd{Fkdz-R6wI2W8GCC{{ zeMCcN84T8vt7iIF6h7&`eWd0ox9ZO`h5YP9)wFZ=#RU6r=C9o;5yqz-Aya8;V30pY zrKxRVyH1nfonA4y9U*vgGSD6dtSL9%BtQi4v;!aP(7T$w4{f4&xbne z&RpaiYG{3!N&vLb7PNPt@MeK6}y4%Y_vY(@rSb+R8Y6{pbXP z)G(#`tY_!J0gu>v@8>FE4VEu|t!81muPA*RRkC3xI|2`o{G(&aU+`-5k33qe!`T_g z%d{;K+N2JxG`K6o4#hq$O>$W@N3S~X$HkjeGLd^6G^4K|-o{#AW!}n%JC!Vv>I#Rq z8tJc0JIgklOp_*DSM)cE^B@P6I_s<RAz~1|20~rQwW>G7+?6S}aglKK71#wuAd}-#wn!2&dtmXXdzbC*{jK z{V|1s99DT(m9t3C?E7vPfp=#hY6k{dwwU_KVu(b6v}aN@PerC`cedyEL176wHgDa< zkc_b|T4O~EbqP!8^BV3M*;!A|IQCKZK7XD`^h3u_RE&10CU~Feq4r&h33_j4LlKH2 zh#cEyvvTvVXyTHAbKwC)GM%)2j7WzY7**ll<<6a}h+EPAqnfY$ah@z;+8hZObB8wX z2TOKq8i5-^N<%(4p^Hj$f)3tQkuHcRGj(_^?IMbku8TOvS~MBAuaSP8(W?S>cyaP# zGAIwHBU`H9*=W>aZ>I;f1i`GT8Mx3QR*SH~KPnW&VY*18YC77QcbU=>!`VW^)yNW8 z(t#R;REM1rtJ}=QBFHz&yhL{Lb;7dTNMQl4fOA1>Fi}4RDT>6o1uXhyCg{pb9zGkU z=mZxeC2ZZ_ZKucRR%uyX$oU#$)R@92SkavpP*gv}4>hhpGyPDFs`M1|Z8=wz?Lj-6 zADA+$kOgfYnBOZ=MCUFNVfHEm7F~BaPxXgk?Q4YUZP_2kOL|#9eq1MuydU(dUN`0}XD(hd?^ zS|yN75)Ij*BZ}F17nLg91&=hn9F5K8cb#p*LQB)uC4|g~lrtr}W+Waro@Eu6PQF2P z_Y COt^&r diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.7-compact.zip deleted file mode 100644 index 7d5e07c669058dabec4b89255daadc40d527dfa3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1660 zcma)-eK-?{1IM@7WJL3lw-eWoX1T0+i}-1ZG^T#5aG1Q58M3iijB%E^?7U1~auy90 zTUv}VBkUMQh&m>6NiW`c)GuVTbKU)a&vW1JAD`#@Jm3F6IIId74FCbO0BO{C-^}M- zxBDRgfQ|(KfB*mh;Ry-RL^6p$rdgwq_DDx$LR@SpfgT@6rG$YTOi;30pPDJJ) zsHlBA{ZJVMa;Z??IHQpf*7Vo}!Zt6+orY1^xzah_(JK2($K*y?0&iAWrq2YXRK-wWx=V# z^OUN?mZ-=NY93O?auzX3qtAkCda&1u9|<_AhUPg z&EauC-Rl07JBwb@lwA1PUvyF>z&GxC1rx@n^?$cW&k3HlMjR-qg`Jt0w4zTpz&|_T zzbk1*&(|v&|LeKEh2B?wEYyAAij`=Zn^nyAiv+!uS(+|?v=u^Ni14Uxcy{kzo>C&p zpP7QjRg{2}*LGD=a?j=Ajwg2>?R=^qBf4Wb#qvEZ01nLImm2x2j5R`8fAs+D{DpvW zT$WU@ifL+!vE;94I#T6TQ#movwe8~@KP3Y{Rm~W+Xt_mvr{CAL(IE>eM@Gf`Y?P5b z+-WIX2Xn1ANvOM{nw;_1Ue4JwgvMV#L|1vYhaFsH635vEYK;!Viz?DR(n&U3cjqEQ zW})$@k%8)>LQQ4_>iI)t@p~1GF|d~aS|Sk}+*seOOR?P8eAlbQgKI)A8_&-Q<@9~* z5e_N;iS|k8*=+tw?4hm6B@-H=n0~eWdqZ4YFMhk(H`&S7u$060(c{m_o*cn?hl%&j z;PY7BPttA{R`~kSmVMHrP(})VK0Ryj^n^<*D8S#j^4%2pLif?>w}BSqr=Dd^w!`;- zV(fqQ>{i_PgbTGqtW_VoLGB);&?eWhf|yiu^Rn6VQS&&iMBm?&;dy0V`a zm>G-0)|k6LPP(1nW%0@1M`6Egq52ZTObnhdP9Na;iB&y*)IX2#`W*cK%-?&V@y|!b z?F)pf4AjOtsZq9&u4O(MVnhjre~{#KE~-_{@gw)ytj#&^j#D^_3ZlwW&OUgfekaTu zbvcsktuEelE#NsK!Ts@IyGVgNFy3l8NTag21P)}(4AEo{IyU>usM+H5d>HcX(2-j!G-IDOD@NgexRKW&Jfd03O`5ML z=VUk?9j16vD+@(pG_B9@Y;V~Hq78cl?WlAK9sTWu|L!ZGJjz_=Zx+|ZuEOgSN2+0m z9Z|RVd%z|9>Q;(EE9j8NE7+3VqDFbo3P^>^o;23*qPcz=LYni+{aLcyyzPkpl5}a3+82Q{v1fZ7o2QFDNt$sx2X1clLJMS^ ztXbKKYxgjb05Eue#Koa+P((806kK*9Ac74R5PeZ? s=lIUjeU%qDED(fN`DY`1mBQa)0{_Cl^#cwIQT^)={96C7g#Eq#1UHol(f|Me diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.8-compact.zip deleted file mode 100644 index 4d9c2b6fab3f3d3b3343137b72f9843bcc8e021e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1665 zcma)-X*k;l0LK4ribOT8R<#?AD-4NaOoG(Zom7=tQJOef6(W&L@KlLo?xUkCjiEs` zj<(JiQ({dTq0VZHI$GkaqbnV)fmW0+Exp253mmFXkD8IM;S$t$c4i5?CsXZzTuG*;|6@$2mKgXkf zeuC@2t=M*B_*-zq&AlHo1T3$qw)bF*q)*l#9pFd2RS&((R#6m(xX)ITX@kKy{}w4K zU0kDk&FzB@%`Z1R`zzm&XteVQhJb3!gT5v|RGx4dtjZ;<`IEr~Yym?3!1GEKi0UrK zch-T6G4<6FZR^hZF(k1+C#aRTHeF|<*k@qXAEgXI!o2C>f<9zq0m{4afvO>=8Zi#) zN!2(fq8!mmd1x7izsuRLv6nsg-GF!Gr>Bs`qb1EF@$DVyJw+R*^%qmC%ItbL3Z%l# z+|=(W0ZdIRNfUOGue@{Jx?r7#%It4`G(*fRhi8U3rVa2B&qr1@zZcE?7E`dapztu( zF=yfRz*u7xuVHa5e34M?!q35)&L+;Xto&D8ko#u2dn>IbO85W2U?U0s*iMM(# zjUhBWp3!s?$45^VMs_M_yLL9gdUz2G589p$XsV%d+blUr#sXt#VD?r)1f=En0EWpg z|0Ki_U9)oDSJ~5@^6bmyH~dUVyJqx5%H%`N32t7+oV&^8%FxB48~9f-@3<4b zht}uFBd2r~QY;Ud@8Fa*CcmNaz*4q!Os3Z3?@r$e&HZIyR}#L^Y7* z8nq5T_AI(?$K{Z=1*`Ur5Zle`qG1$!6Yr@wnZ zQQ6~je&)Fv5*|oisYq!`tWJ4gFSxINCuP1BfrIp2PV~Sdc|t2|^P{-=W;$7yTaI!s zlM$b;<33I=8~;s~ThFO&5qjiO8P^i@jwzufnxBQz!BZ?M_Ty=?G|uuzzphp3B#Kc< z)N`GPm$dI@kKdZloN$q`ZD2$0W!7~L*>-Lb8D2Bcx_LSSTqxTY>zBbchY5ok2M;*{ z_|}|5zI7+=m^AE~?xqAXRi*7B8D32)so;VoX&#MS5% z>J+aGeRJLAYg-jf2X@Q5dE5%}xuWHJTQ$X73iD4MolS*VT z)cslCGsH_H{vWt}Pl-5(Y@+*1IM%gvjUDG&=CYZkv+#ClKatm+p3`sABvCzqVfhhS zq{rN@QSIb#N~-TBYOlK5{ed@;knxheJ!{;wo3u2Rzf{KdZX;uos?yZ#0y>klyi diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.9-compact.zip deleted file mode 100644 index 4fab034c66922c8013962cc02f7834a687781a1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1597 zcma)-X*|;n0LTA!BwNl_Iim8|y0=iRlr$riCnK34SPEXiV#Yc|89=l%2fJip(I@0;K2?+*hvpj?6z-1>rc*=JAW(n|089X| zOiBtcSDK%_*Va_AM?LFZXb|$XQNk5x{eA2CaN&-}lIrvM&j{e&-|8%8!)rHG$bjci zQe*jD$B`NP%z#3e>->Nk%hS{gE}u|<+6UD95dn3po?JhfH~C1cf;bAQ_qV!P=2v?| zT|jBut(kKo#)I8d;?gY`)Z7^_vzW3rhqAjX7 z9Wyyk;sjk;M>uuX=7_dU!eoesO^JPuV#KBsw2*tA`D&e6M2|6*H1W?4o* zdXskls*nm*#H0GsXi(Kg?(1-(F%7x7mFcIo+(i{ppy8{5b;Q|f;Pw$&lo$zLyZLh5 zhOJIu<`n!w%G5Z46nuF&+jBai23byLyo6603}Ee}Nom|QSkmXA!N6^90r4*-WMi;L zBrzBI#mLat!Dcoc!&T-=4D?=!6>fh`njH(y$Np{D5NUh$J7P)ivg?o?S6|pMEE_D? zlMzLEmuGH_z?6qkgNd?K<$_fy2uQN)ZdMR9bY zlqFP-zGurhg_`l*lok%l;75#N^`rRFlbO21S?pK%95r~{wOB9*Oqyg5F0_{6n|Wi^ zwOPR*+lx~y6lgo;s30+0ulwU3QoQkA%QDRUCiT=ax95*%i^8EMte9kF`|s&$+2bh! zDdbAguFa*jr%or363QcgJk$}>21_4cpMit#iwZJpON=kM3+lYm;3iwM`u(cw({y@w zTTRy%;gxR0l*H8NI#X}z^tlLYhC+tl>Awadg>@!9QF(Zm1*_zV2y~Y#anH-o_BhJ= zT-C!>l}>X9_FAFc@!gS(?a{yYKP~$(Vi}fU_lElPq<&Ht(!=7IR?MF0_ni(O@>F?E z`lf+`Q@Al^E_2w{OzED^2g5*BF1xC6t@|`)O}l+GMBZkghH)&96#LC#b?ouUwIaXh zRgdmS1?f~w-!*yM-1+CR6VxEAa-9nI*#K4pEiM_M6F692|an6+N~jOB_`<^0_-1zxeleqx$B* zrQ|d>wjOgQZ)((@Z)tJw{k3v!aNb3Q_4k@16759Jjkvg?(`LOmKAk%CM&i-Y{p#E; zjLpEi0PY%uhlvaK7I$?}<`<%;s35-C8$!lp`=fW9YvD;FAL>~7)hRX|qY h|5o~<)&C7s*7fOz(0|+^2z`J diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index d45c2dfc623afefd5aa19312cf2fa7a9c5b83b63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1773 zcmb8w`9IT-0|)T;%$cO{S-HX|q1?wPM8Z-_xf>fxn`5qFq>Ws&jOF@#)F?hId|aV& z=NyqUXC@_vh4{$kNIClU{rvv@;rn|1@Or%df~OrE%x@0x0Y`u#La@^sw*aRr2mowd z0MG;g;5IJEGn9xA_6qe3!{LK8b+in$bhHTg0JPWLV0>s8+A|d6i@W2cm z?f?)A02ioKAN@W35XR`+Iuo&+t{~j$wv&_;2N^TfD$yqBi{;M9qIv{)hAT#n9cXh_ z@n7&*q7K&P-&oy&XZe&Iayoc_`E70lGC7S`|6-)=n4WydfI_@K1}I>Wt*6l24kHn? zh-HLH#JI3TbCNG)ktg6PS(M=Mh<<{!0X{W6d_bc5GT9U<>H|ot3;9t#Ja(q6F?WK; zHB;uVo!*TuVJC{LfIhY#mm9nN3R6;>Fy6{ub@cE<;~z+8W?V15qgvVJ>Q~`sky|Gp zJZK3OVy}r5IZ2Hu3s;`e-lO<^xsJTpv^qnF1@7xiPgFmCAus*7AAuq!bDDz)**}+^ zvC{W$QNy41=jmkxbTxmxRo<+`RAzwI|1zw)67kz+qr&;8

vk+Rb|+zNR^AvLUk6 z6$7_O+eE(C^k+WClpmk|^v*gOpo~Ihmkg|~0DEgQd@(AF>QcRbOx2zh%gF7#Etz2M zsiXroappaXN!z$N)qL<*g4yNKgQir|etZ}(vZbL|?o>Y{xg{ncJ zc%YUOTEDb(ql&k=lKt}?4_0^M5IW5sn`j>VKTH*(2Q)dvNBCs~H#{AXZLoL~tE0u={@n!6uQ2G85 zn__;37KQ$gw*`CiAifVY{n8#32ix3!2iXY!P)?^d7dmGvd(L!Qy)s@FGeMXA1#(eR zsTBlWaW(sm`{X2;Bq>ylyf`Nu6CR9c*Hj7HKS%kz4RQ88 zWAu|JdLF3u^oNI!e|iX>|07%d0wVSMBR>v7J5hbM=c0~~+x)cI))Uysl zFpqeai8fkOG>N$y%xW#-$DjzZb?|;k=Hya!Zh9Gk88Pc z+r1CLX(Z|Kig0UEwb5M1tL0EsY)$~zE7mG5>|0x_5o)jqwhzO0g(JI4VpSTsT-yEV z=jB3DqXnB~2FLx%H!@OEdaOthy^R4JpERZe=Vf1+#>71Byj_MU{brH+7pdCnjcZ2P zd-|NrO@j7#WXE?>;G{==RnKAGlo2a0+W*lL_+b26pH7U=les-(hO;66v~JIncsB4ye9^sV4w>8S2EG6}t( z%{$K3N`5UogZ;u>Tj!TkTG5V;w0=cE%!VL4FrPX*vTBI(f@^`x*Pu_@+kHiyYucZS z5TRtLhs!nWZAdn}9>Y*fYq$Qc(2iN!SrHKuFHKt1n}oY3XXYphc$oTRKt{6~XoQ#} z!?bdSpkOuW-Qhanv;p#jX62HopVH)}_&&k@(u(}rsFfJp46JKu_BW;3HFpAWDmY`` zU~3C@q3fI@Y5^K#>&DZOkBiojgB3?DHsUZ3Xw%Q2WSFxO#2hjlGxN zF8W}oD)U)cC$@;En+V^1!`j_98FIK>=cJo%E1b0>#@bcfX_~z{Rgm6WIM9A9W!%UA zn3CCB^|P8Xo_Gpm29Pu|iVInY&ulf*M^a z^OHE&&2}7E`4Ru~G$>E74Vz$P9$*)x5Wec7im))LS8~ggAkU^|`kG*M?oZ>T=B75+Jvx@$ wT(1aE`PuxzaKa7_;xh;TZ+(6N^lxH8|DFHKB0IRiFU9}>^sC5U8};w|54WRHDgXcg diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 10d3fe21f9a0f53b0b5190655e9d713626cfbbba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1777 zcmb8w`9IT-0|)T;unyV6CqzZA!dH$tBB2~#F}W+>mao}z%sHD(&bg0~#e7_IMjz*w z8FLn&_9e%VTM`v%$aiv#k71v_pWnYfd|$60UXRyb@N|F+3Yh`|02CO-V_n3{cS(9D z0N}GW09*qA0EG$kz&#DZdg44nFhPOWv@~=zv^4NR{_dV(*dSbpy9W;Kg9-K2@WlrO zo)!WFZU8_80OOPtZ=FM(;Ii=%h7p9?8;DWvmQBoXk}xkm1-&Uas@e5{T1}q=w8W`aM*TA@6h}WB9+X>WOAe35DVyhxRjs< zX!sH?OU%Q`LDsa%ONV!>Qfvucr22Qc<5PB%pXFu+cO&f0mh)GMTo1M4wd304(^blr zELm7BOtrd6p}5a2hu@J>mzj;o%?n;mB0Dzido1eVKQyM7J&H`jlFxH(+T*&wl2<@f z&Rv6}t#ZR`{FD(b)#zgAtm#y!hBDtHflZ`#Lt8+D;g$_JkHUpP7Bf(@6dy>9Wzs8QxsQJwC<0q%BB4QjnJlI|d z@NSuALsSF-vS1F88GN3yl2^Yt!jkN z%W6`RY*sU9+zc_u^l|x=<#}o_gqdN4}4_tN{N^-o~y5-NbWsLB3MZltNQ_+s@ zk-k=IzbOij;aa~?UYP}}JdlDO&MSx(Ac&=k*aKX!*Fd<;KyLlYjoWXl{O~ixU*>eb zTpMkKiRI|=p2t=+jXY%;$Kq=1#5IqIC|;0?IQe)!C6@W2Gc&K@^?GVjkf7a8Ce$}H zQQ*|B-9PmQxMplwLQu;3?~3fUHVTf&Go8wjs>hE{6s~(859Fgh}l_bn!e0i#fD_%35K)bp)E%cC$-)}b*lLG;Y~{MJrR8f@=;|#uW4x*HR35&w&?zS5g!Hd zw6yxiBgdi7X4MujPa~DBi!`~1VK%A!X+e9JON5Luz|Q`YA^wGk(xG3n>{jUbhEe&( z#&is3I_s(n{f4&TBv}l0A4$=-&_fSiRv6c`^M70!@#tGgqiF)o#HQz_AGajxg6>+< zglfhR*O!yFIi>!!vicwI@C2WjC?iLil~V!S(Y%rTBT)Op9kX+a<`*;QRR`~#Q4MyM zH>HoT>&tsHt>_hY_&H+JW6z}|)8%Psy3&HKJdX6{%w%B2Q6tN=?M`jF7!%WGBhRQL zl^d;(No9#VY4JIb-vAfszjbes&)&0Nv_%ayTtS~JgDMwF$fwV!g8;gsL{0+_k=tVW zHNDS-QWMcRb7|I7p}wm|Ur}o%rx)lS8i}u)W1QNQiiVP&D79@v3OQ2a;hGlj`Q?(@ z0k+44C&{ArDZ3@r0x11|^KXW$H=%1T7ir7jBUyJ|PlcVS6~xwCXZu+_TS6dXxE=S< z6bT4!l4fXOKYgAa9n{C52B_-nc-?A^8y-v*;WVIccOtHHhy^WHzYkb~j_F5-=QD0B zOop(K7H(#=kmTgsXhdW;bacL-Y_UKJ@k$;pKbvv+fk#h%;A>RX%KQf8mAItroj7S5 zT7Q@`#rV~~e1;fS9~_*Rv#-0dx1Gb2adBPju6CbDPGL8PzAT{D*%NVBQF0=8?c*T3 zJ&~kka^S1Hn2f)_Vy#gSgxG^k{8q7R@r6x;vt9IqD<*qDT3&O1c8q{ zFoo+7%Ov6A?!sW|7x#1J4O^>UT)Z%eEVLru_PRSDUG2hfGVmaLvru39l~UDvZD?%D zNYg^FsH)wvhQIEQVmZJ;0;YohTcDo^{S_kUzw>{274if7ysvZ@%=n6p4VSrPq4Hj00Q;{uPEmN&@ICw zJu(2WW(EMJ002ZM5TnScq;s+4C~5+UXlh|*ZDwIcA)SegJ%5fwrbb4Q3GoTEShGY5 ziKrkg1KN4 z{-;md702BOv%T?Lfx8E-qyZL&q~GX2W;Y0nF~e5HM4EK9*o7Gf)?m?`>8i>H-QWBH zzx5hLOTO-g4fV1*B^3egP($kOi}qvyPA%stUHvKKKA$aj0>py|?z$J6`_~nMz!XP_ zNgN5E7_DFzUhO{cXf`LlmomS6TI?`qdERj=3u2UiX8;qXeT<3n!+80uUwd{+GXaC= z?L<#CTQd-H#-iRP6~QEUcJ|_!K578uZEmyr3t8EJ@g4q=VOR=^qLA%bSCDS;=4p6b zmw(K?r8#koP(zjm*;wXu(*-f(v}KRL$01*jVNUeg-|E%)w&%yHU@V#Tk0d+P~DT*9lh(2n-2E%iPtVQ6%y!4nJg4sGjk-Jva-)@o5?%HC$&1t zZ8qNCK{6b8_~dn>fd}7&44R2YpsfV*3U^g8@Lv_r7iVYq$SVOwz|{ zki67tu3&i@kSvL>eItmt$zGqUWK=54*r^bYs;0(fof>~4pB7=T zH~;&Z3KV9KuTzX4-%Wx>(|#$pftT;G{+yT8wd>81=6BOp!auW1KFA%PmW}f}WC8Z- zkKBC^Yg%MH8y=p(JCs+vG8As;C(Zu&Bh)J|Pr2r4DXvk_%;=dogJjkPrdQVUHADjz zG>gg2a9CcEX3KO_K(I35OOOkP-WdHN*7i9gIferMQvREVjkjd(9+o;ibe)#e z*i8C;-@Lk&E?h8H#rXKqp$1$f+zs4;uc0|%3|a6XvsGAP&H#42_8WBt$^NzE8JyN~ z<~aQQS5EDW#OG~SHl}>E0etf8n4)OWiiarnxn8~FBjR1&a&jBr?%(FCxm$uZDphCh zI5T6*x#lSnotH=@4*KXs6K*1}=IpJ@wcPWIeS;6%pv&hDy)d~4-+a+Nrymm4ocBY3 z(u2_^|1I?jpVx=u20MeK*#;92qJA|Zg&yR#NOzsq>MKrdbjjZPfc?hRuzW>l6%D-& z6WSRDSZDLt>)xNm$l2CgO2y)rSFRPU^e3K_^vt_}-j}^waf>m-K?*}sb`jQEmWP#6 z*~uy=qXMEe+m)o!HT_M{G4X6DwdI()etCw_w~;@jvry-V+zyXkslt=KwMiLoS{~VZ zuoW{^zZmLaJ(p`VqZz7KK&bs7)K)dg-#fdpo^giyx;F(VCT=k!972t^XyYeFLpO{q z>VeSSvkfli}q~C!bhf(?R2E1?5ytlwss7Xog5C&Z;oprx4wihCk<_;7d0jQd7GD~A$bY@uoiS(A zdqpAWNwKc$mr=LH?#|T)yUCB_tKn0Y7E{ZmXcQBcW82P2F@^5_Ew@2;_^eB>=NkS{ z9p>`slDn-IRXm-0f6i$2VTWXmzQ03Aortit~AEb@8c%lpRE zH?BWjGzb*3fkkOHG-9kz%f3lhU0`e7qt@`4jO9$^L~wg%1e}8fZGYS#sK#qt;s#X} z#&uKUgv?QznngzG-C+Z<6Es-F4w6uQGY)$?BN2>VkA58dY_Il?j)wA|7v5RA!%&i; s>CP{Vn-jjCQXoh0{}#e`C;XR8sekc*>A}}iM)u#6)c4}PQ|Z6;4@YSYxc~qF diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index 872ecf9c6a9297f0f7ff702d605b85d4fc86731b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1680 zcmb7_X;=~l0ESUKnBq#(sbylztC^yB7V}I@qr8U4LOdc3l(=+~Vd}&T(5AI=m|BTP z>Qtgb$>m6z+7^=LU0#G%4j&a$N9coV`@bLiz8~-N{rG;r5h$RJA3z)MIba}zg2vi1 zx`%ZEfL$&CfD-@!I7J{O)3V8w6k2j7flP98advlhan2wU6I0Gn$h6GFWEu`n$Vzce z%OI0J)6oTB0f2k}z=y>;ai747GeJ+!ya!BCaAKEA}9(Je7iToEcRe4Pw0;D3_az-w#R^!Jd1X`wBlT0 zo>GA1y9D2RhzF!`)+gk45>HEB9odLrV#qEWoKZj z-jyl~+c%p%xY4SeCxzO$x+7iO(GC=(>rJ*=`J>@C3xYonNH^AP56aD%MG@A{tLCO+ z>;WnPQvqYxX+3PL`*S3fCHC27rWQs+R5yQ3vz?Harx!ILo(ihsP$7` zF3cAVxFXBh0F@DGel}m1Xy4A4l(ya9t$O19H7z%RVcDAfRx>_oWs2~;buC;(FIiO6u)ZO=KznksjO_eat!^Bc7w)D=NtvNrOCsbvBS! z^E`-eg1iotoh_8NqpvOvk&;22Ef1Ji2OS$EE7F3Oon`FXZP79juc%Z!>Bs8|r?I}| zhGwRJIrK1?Q6OK9r6fMZWZU{rm(Ifgf+<|0={?pT)pI{d-JVs$warAMs)|$xWg7C8 zHjNPTB|fA(06e%*f07R7r(%PK=ddebcGq9%>i8iQ%%7$4YmOzVmbg z2YRMe>PLjMRn`9bmX1?zOr?&V)$1Gc*4fdNe<|m*sx2HoT5@LpiDqSV3w7yH#<7RZ z))sl?!SoLwn+c%^kaSHa?F#U&Z#rpG3_)D2%35A63hj)AAQbi>tM40Lgq-Igg0Bic zYkfb&tL3~V1m9ubs`F-Wv~0dBE!spvh&I0ZSKOEFqv?%a1*G^zYj1G$&(|gzG0NOOjG*!8uVc?*OCU4A>a`Hf2K$IQ;&C+;Kb)TyhuD zZMH2kTaTonSLVq~pKI+^U&*=aN%!o%CJ!aP%n)oE6FV=PGd)nv`T2x0 z;=N2Q`10vV!T5BKZniLFsj04;bpLByUFE>~B~~4=by(= zWxqmSZL zvEmMjJRXp{<$mwd(cMY0J2XQ%Zpd&)yz7YG!-}FIlvt{Po?cw7F^o)_p}~d5t#SB; z7~|WUCC_E&N7#|ljAxq)3w|LyYrS*CE1WVONLeq8pT~t_A9OOx)moPO9#9ti|48TX z<7nSL86yBuR_dU>89O=HTBD~Ji?i^8I6pqM>&D)~S9W4HoBl;^gZxnUNGtPZiKzYy zpGWn`@E1Y0$*xJrU*onr9E*b@P+Ho4!2cG+CrA97e64@*zjP6S($)Ltr1hzoPlW!v F{szaA7B2t* diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.12-compact.zip index 39d0a2363247a57284823d193e7ad05e787077e1..7cb3afb0d2f118ecf302faa2df9e23fb21513974 100644 GIT binary patch delta 1963 zcmV;c2UPg}4yX_qP)h>@KL7#%4gl@7WLA6tB;srb007BXkr-EhAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH2AC#U1a_4JE6P!seH_Z9^(t>-z}7^g zi+V93MK6SNol5ws#h)=U94{#$y{e4@UESiF9eJ^ zR!V1)2wuuhGEu^R`FcTW9$f^#d1Jw!pc|uFkbSQYH2f*~^cvF<1cFxWNuLRw<(GMe zG(}qk{Lqk^vqYUwUIaj1?IjdgPvS;3SA8%2tNb%Q2S2Rqop6M5`}6$dx$~JOI`$;M z!_y)+-fD;Ff)DQO?1} z#=<$EqPwXjZz>*oA#@7i&V0p9dO!j-*b*b4J;u$8HpowOn#1o)5Ob6nirYBiX;VuO zF7BfIzR#%V;CCBPzolYG5+5k$62&@POLwc`2*kL_EP>n*ORcD4PB@PSkEA&fD^R!& z+f8fqkz}TS&;FQ0t+5M`6n$r+RV}NGEnTp&hZ+NrMoP$Wg@bL44^Ncd>egm4dECc# zyzxTe@eiF?wJ^f*0kJJEOJWiK`TlhuGgFq@U13a|IJgy+Ll#<3wc^8g&e_e|V~ech zzFwqGsImY>f2Te}GxDc$C}maS$7@;l1(6ia&2woj{Hcqy-(wlwf(OIsa-%7$By7%uh2UCRiSZF#ZU?4`@sQpvL!q zgy`YG6g6n#zV-ipd;tH~9puW9zej1v!Gk1CGWu+3@|EKe_yuq;NgaqyER`)n26f~; zCQ#ha^Rm!?2@8~Jqk%KJ(W|pvVP8lp0Xrj}D#{A`8H4~D zI%Iiy8SV4Hg@k~zj_NkNHRIPufU0L1qzM)noO=z^yj)MZ9P|OssA(6;SHYAH!*j}iy*b=&zZ*|3+)R)T1Rs{z`Psr@#bA(RQBB?I9=|GD zucP8}!WGRPlwgO``x)4f)}nf0;34FZtEY>kHr)x4rRhn}(A~#H4#M5wq(qj34z42b z`iYzDyW`WUj9luWXiA{P6>?w&VOHbji#}+$6lmu!#RY#d5BNryiINU~gI0Jfy>6U6 zCGh?LJf2s;E+~0XChmmk@?Hpzo-`UUM=7w4Sg9mLU7TdcnLWvt`#lO8avm`Djx0dp zZbP#Er+q3Yk)G1xlH^+-t!G<;((`@oIMUPdy%-m{FthkVyam~BECL6s(ba|BowHkc z9wLYXlKGdA3$r}xG}UH*dLeU<5l^4_xYt4?zX?{54&?!5A=kamCmgNFl)^X#f^z^) zm}WhqgsdsunvSDJDk&qh4f1uE3FbjUEvh;r&{4YpiJePVJr@s=eWU1slCe&U-GJF@ z--7p42>=PHQg!i*`A2BH#nU%@PQ5yrB}2sh?XWD^7_bBfzbzYoV!hEGMrrpCY2trZ z6HCWePR*u=Wl`q($dMQPwqFC8vF+u&^VHu;9gjH$gQi0wOi;b*2V18v{ja63>s1{L zD};e?I%5GZOeZ)$8dK;Zy(rL&>DzLneBhH+vmKpujN|>PTRCFcP1^{Vp26p{(_nYa ztrs9@g7@S`yy#ee#HVUg7=f}UNzfu;Qw93admtF5>6`57jcpmi{R4PbNgzFTWBcz6 z75p`FOq^8&SZpTWLQ;Lfh$v62(SUADyTvjUJ?3*Hy>5XNO??+U5oP|E)v-`Z0Rle* xKL7#%4gl@7WLA6tB;srb007BX001oj0000000000004lKHU~lmw+8?K008g2vK{~c delta 1777 zcmV@KL7#%4gk<|a8!NQ06fA5002Ntkr-EhC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*+yp@$Ju$tyn)%N?>7S? zCy$}hlBqWZ_aFn4jh(G-)?vx%x4{V(!kVpTpglVR1#_HSHQE$~4n%!aE zox|m)144+peHBh#x9!Er*dRYMijeQ;4rm;gWs3rE+{XidO^`a#_#qVydmy9LKstA9 z&qBDVgogn_BhxfrlOrOfamC{i^ldKPuzl_ zBjSnTR&f^~Xd)G|SMniOAcsx8JybM-wD?-=A*LyDC4ah&|Be_n(H2y z&q|N~1}0+P3$kV)f`4*x`!_T~$DM_3YlwuAVBo8nHW#H3(1M_kSDHQbwz-`z>Um7jS@9zTM}4Xs+5_D7kn}5$k8bVQN0`wM-x8 zL!vRsa2rM;DI4&r?5_gtQ=hw=2(Sv&i=cVI(i!*z32EDAI(IV9WzA*}#wc{2ng>K(no3ozZ;lX>%RCt-#vW=FGj^r zuF{NuT!;siQyVr1G~va_%Eu|J3sulsxtNOXI)Y-QURl(|HIZ`w>0@u`(rGQc*;Q9oF$ z8)^Y*a`9sQo0n9Od^u@JBF0MSkplH03j7VUc{`<2^9v&2?;q=5doyvfW4%yaD1#1v zP58DfoS9}zf)oZNQqX8Z*{l-4DHr%GSh$qtMx8IyBZX86#h zLFBqO7W7*XHZ;IGU^tfuH35iw+=4}<6B2yKoTd|OS8#eoQzoZ z(_Jh*j&=}>3lIfJ$U<&S-2{Ap$EK`sdekWYVW$py7gK41fp(82acZk+7$?7^0OH)0 z-;eCCy!C!6lFEf4nMEfTDaoaAHa5_iuT?Vsgh4{Q)Uj>GYU&q>IEdYDs5=7By?jATItGf0D~hBTkJs zVJ5GYJcBL6nxL_(_rh&|p#N)RUm$+{Yn$0PPW6UVY&MjvlRoH*?^`| z2icbl!xjStncP3hy;pZU3qz`8d_|LIc_ne!yYw%u4I^wtb9mICPHGqdsC=L1I)xMZ zjKpQfEo1EBMx~WrX1Ri^_og|lC9$`5m&(Ru;x{vUIn%aOMxG#)E=&%N}7s1J^-~ zIQ8b#A=78S%F%7t+*^Vl zPgksJpv_SWJviWhswk?by{CbfK!4#dWcd!Soj7OZr)Z7ZlD{$=K za$fnvs_!r__x?p{?J30&1^*sHv%9}TwQ%~kqebY6d7WQS@xE!_inVFOc{TUDx|ce# zaIJd{Q4$op@by7z5;x-7a70s(JN>6VDGTWtZsll)+Fc9TdOh=-wr>wEms${S7a^pT z!J?%NH(lCaCo0cA*?D|=gZ5o6U*G5XfRZBf?$5;~6KWbQ>`s;jSpn>di#mf*h2^9N z6iL@J5X$*-C$|;g0Y^Ln1}RQ#^RHWyKYH!UgSo%^kAOG~S(v+m=$estI7^NC+RQAe zGGq$RRHx2%4kW#Jir~PT8%cjY-_T#JJL&T7w-4|ujylPaMZfW;{h{qi5vO1#6^BQv z2=)_z1yg4|%0={LAYuFasH2R^2j#Ext)Ib(K3^fKHnH+H=VNO{p>Xl|q>>nGFF%;z zn_M8njYXsBb$RT$r~}H@&UO}-<5s_ixdbE;)9qv2jJ!9G7Ob7&D z!H2N|$A^X0tb6v)Gz|#A)A@AqdN+@?Z);LJwP2Vr?p$mGiRF`w-Bu?DmPs#Dq-7ck z>YQJ2qTI`(7tYKd?bppH=I?kz$JT>nP1B@Q+@IbpvU8|=4?l2TKm-IUzH<(yz ze0k;R3Nmd`WVqJXd!XBS-Ocrl1GqacXnO;vmpH0bvKYo*PoYK097TDm{Gev?@ZqD{ zeecK@`r8lKVpTq>M*Uyb`IHe4rHtG*o=KRni4LI#!H& zvX+$q(JhPmEHli%|4gJgD{Rp2H-Fi-nnK~y3=q(KT3Nt5RvNKUSFeLufO zd^L1W;+YP26R~14+lU-!Ppr2c;$D$dja1resq0VIlq0{6e_7e_<$7BdUfxV>x@Kk} z{9SvkP2%U2PM>bC7zX;L&>a^gZs}2D-d9Q85BWncY&V1OKDIR1B_^FCe{n_1Wt5&! z&Mz+3TGUW`UFcz}YrizQTf;~9KonvwnBFAtC+%>l&~d0v=;JH}Dc=DrK_3r;mQnuT zMp<2%WDxWEvg4D95tX09p+~#Rv{V>4-h5S0*qj%`zCVXV@%OECkTrdr^*GP8*VNi1 zL;E;?G3ZKRBQ^gji*AUOJetA;)r4+q557P3(*%rGu-0PibuMp6Mk*CIQNL|nmwVrZ zVq-Nkl&@Sbnk#sL`WYr`xXbR>k(RKZQ9vGyVy2|LnN zkvVy}wecfZ5Uil_N?=CKX^7hh*_cwTeVg)T(@YngiXo&H_w<+JFGDQ@w(7;j>f;sF zJs<{fzXE6UZS=uh(7+bTQ%oEQ`rigRl+Zt+iv1V=myb}M5{D`S0I|bj4@v!J{Rd(k BJx~Au diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index 91c3835a2d30a436d9abea05973d3e41bb2fe7fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1775 zcmb8w={uW=0tN7w1VJ&@qL$iKM=DbL*oh^*7lkK;>FPnRLiM1Lgb=KMTsVOkg~bv5g77i^(A$xOFhMXM z-~|8_05DHa4}^b%N6@AxADM|zhr;k0{YrPU(ef5rEy6tpZCit+nobYU3R@(VGTx8T z3|{x%OrPkebp3dQEDo#}a^o&IOqRuZX6AnGY@6yA*H?@fS567`1L&_(?H92e^i=Gx zv0ENyv9l0~-VA$io0!K~!#kemW|)dOp}76@p|RJd6l&fkK9@uG@?7>SL7oRec_tKz z`QkV;n$rgo!(<$HPGSUR=HSEVPl3Pca zX6Md_n6KHzz*qOXnjXoS8$1q==&Suo%{hfFWQ7s8LnG41NX>0_d>gGje&S|0T4wbicD_g*!A8DC$(!ZAZh z0VYZ4wi5t+{SGDmUjO)MgtUe1=osdsnSq}2op>+;y5Pjmkup;Yuv&W&&Fa?CDMoLB zF%ajhI?;vedoc=;F^xwP%dS`WsNAIa77EdrKW{WkO-R5NMQlf^4!@ z_(2M9?CT^;Eqwm6P{~+cWMVGOr7T{QyD`-scG7rMubd&*`y{u~cOEZA_#?(m1z>?2 z5?DdC8~oB8;CIZx*+3D4sMSElYwy0$7?Y~Kv zMX^E*8LI=CA}w4`p=VMAb~%hxelEn0y&~f>Kz-^Qyb~NJ`+T5jJI!&)=u^^CWhabk zX*i?Z)H^_G?frmpzh_eIQCy0I&97&hz+28^<=;%&Z!{10w*cJKbDHkEscOfG5|dZ% zD{lVh?F@d?F|Fi60vH_}bt16w1%2d|3yfFD7B}`JuNn1$pn8aSho%9Cw*lzU#0+A< zM}nhj#?_xk_On7G5`}R_4C~LT3M3{5G`!v=PY89_YRmDZq<`q{@YU#FKx;CSuQiv+ zp&ILOZb7R8OZR^H2<}wzxsf+Zi|diGw|Xkx zRZjG)uiOWV+~j`lgs63h1!Ka;6C?eq2ig%641zTJLe8v5zZTge5>n}X&;2~kk7 zOy`VfpIYEsxwx$GgX|mGkM%-xpI=`r-Erc-sJoZ^lAFKj^!lZXD4Mrw9TiRdTjct$PAxi~z|pk#4p?_weyXAm`GQH6F3tbP&^_+g@Lf zoRu;Dtw~ZJmp(XKwQ;cD29?~*8Oun3`V~Va63AtT;_Tx2BE)t&M17^G!I(zxQza7; zNfKs-zqPyE#!k-eR%O~$|AdOpF{fs#^Iux8EU z2TV^4+IfZ)ej;{Xa-`SLCeo23)j@%eZXXIk3~mz__0>_-EBTZf_#Z|!kLI48CE4on zJu`-}yvJl1L6T{+C}}nFef^gmzgNb~eQ-L@dnO`48{($6?wB^4)bDT&Te{3kJ*ET0 z)(Y7QC;s-$d(w<3whGg~%fAjESH09QCFQfa4^!Y`nL9!Qb<;#ki-o>ohD+U_ENMck vQ1knev*VVn6cmz&*An!<{rOJNKcVpacm6MpP)NS-kO2VC_j-O`@;~oyXSzsL diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index 6093aa0994f235ec3da815227142162a5f1fafc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1774 zcmb8w`9IT-0|)T8V{&Y2auZ4@BKMKzz8?58#t0F89b;zAeI{3%h+L)2CzLrpu5!%r zag%+UYdOBc2rINnv&( z1^}o60N{th_~K&2u>LsT2vitGRb5S6OrUUYc+(F3}H|TJu>Op&XPt-4Fa7yO&bI8uiM>-f=@myXOsyJvw_{4S?+)?>tI&&-^iwx-D*sOE)xRN0h}yFkTks^v$Yedo#O zN6{PZhS5{JLR|z)?pBv?c_HayihlU%Moqrwa7<8a3k|NMwR1%=YOrHXn>>S zuM-*K;Ev6ViK==}AEoWw#WVxwHAjy@-M+{#^%KqO`NI4FQEZ4ICR^l{s|W0Xs2|e6 zm*CP&r)N|vwkHLpwno1iR%Rc51BLD(1)4iV8@f^%Q(vQsj3jkj%Y_yF>}8b5?g75S z$h-~E?rlW(a9q;Q@ALHO#h(WAL`5@6W~mZBW=&#OB~-|XKJyNSHMVuL*yw<}>zLwF zQJ7lHuxj~U#{)s$cq=Q!H4fSUjIP6xS{k_4V2jqArexe7KbJQxDte%9N*P4+>B}v-yGm-iZnXG>pVvll*PRTLCJ``h??X^h5ahYvm z!R!yO5d?P0o-YR3-(0NCfc({`&>WZV*Lcjy#-@5k$gy~2x?0eMk*kfXLZKvqd2$8?X!B+o{q7A^^>lQSr>`;J`{&u-PY%C561bi5)9q4h;iHstd2uufd6Lb z8#V`Neu4lfsp=)oN{G@{Y=6GHld^IKMjTm?QlCPXgLev?vJ&?g;U8UGdBcoZc5o}-*I9mh>Qy* z=S^4*d&9a;7U^zO(f)!7cxJL3b-cg^tVp2lk~9{SZHF^nESjn!g^S4eN;EO39m zveflt#W0J7gXSo%_j9YqPrV|PPtVMS6nNeD7%?xybQS(uib=mT7PV3;u`pLq_qP3s z=)m0mMMJORc996HPkK>@R^kf-aAU3b`INA6eND`V+W2GnR{N#2E#-a8fav=_?{-5I zH|Jx+2lVwJ2AGj|gZWbN4{=8hY>7N>#AHUZPz4>?qMC3xyF;SQ&p~a xoc62KQ{brTxDal~!D-C(zxnws(BDbs`0xB*7{Tp8za0Yrj^FkCy@`Ln{{SO0OX>gs diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 23cbcf74252a75d4ebc107b402e94ae95b19090b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1732 zcmb8w`9IT-0|)T8SSB()Dp#%w@nM_zd}xb9l^%p$tQQ{I8fCGRmFia#kTR`|8 z;DZ3r0|x*@008`Pk$%xJctT*b9|?z#G=xJ8N6^TO5|#*{J+{-Gt+QsQ}t zCMOZrLYjw`BwaT$NItEV7Q<3H!lX#4kHz7^=v9P(YSus>KVL6mE;vL0ga6!cR${~MS+{AzmBcI>V?ZvgxJeyp^1^yROyTR|jfUxk zVG+0IB`R8vc+)Z`)JjV^VE%E1neY9AlGgoenkFj+2^g0@;96{~_I2Phx;>6nkw97f z(cflB#vxBBp)7^BeEISRC&*x8b?EXbx6_X5`(ZdWxz=-cH_u zy#l28mu^-W4>hIh$t1mLuU|yIwcRk?!QJlj@!e zBMCL)g#r3)mAtK_E6FWBa4_@Q*2q0F0IsvI|GdgwBgPuDmJw@>KtGe^W&Zj0|zg`L5 zvg@6`W3?e+;tw{c)tbo>!CjcBR-gK#_?9j|xtc~J%_%cQc~qP1zHR2y%d(Ht^X`D6$XU`&e%@6X=bu-JXzq0y(I5d#6o2E z4?U%~2=PWNB~EBvp+rwGWM0R%uTd5BKp%|lpS&q{EZ(n-yRg_wGZe*K+#E}wDYx&J zS5ON)@!ZR+mI5M`cCpL$MzH3^P$w&wnlO@Y_gP1@v4%abBs&vd8f4Ut3&wu z+wDri)K$+>izOK~!z7z;Y*NfQX57-Eb{01*&)pEL)sMJi{X1vVvdh5Y_Q?${!y^s! zR0d(~enN}ZD!gQ!{?5oZ3o)6K{Sh_%&QW^pmYMT=byr+I4ncsW^<-u@yY# z^(J{|jL{_ysnT!vF6!i_ZzY>+Ra#YQ7TdWT!o*qjwR{Wa5rl$9akIN{ek}4*7q{Wq zqvLV(NC{DC@6wx@#ngw8(|npMZQWfzqmObTKFea3dMSZiEhp#IntTl=htWM!Eb)i0b_=_pg3zC z`DGof!KgX9S5P)%+R>wv#{@OeN|O>99cYFeHYaHOY{sG8N?w2x>)Esg!hF=O zd%WGah6}%KNObo!_a)J524wwH^k#3x@5(kP&RMN+cXL-S9y=oH?7Z33ES=dp@R}@x zKL5~rQnPOA6@w{TU5yz!9>Tc0|B;iRYL5~-a6$Zkqw?LAe-khE&-`D+*rPz-bpimf M@Ade;PXE5Y0qF%n%K!iX diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index a8d268e50919d75cad3ad7eb790afff7ff61c4ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1730 zcmb8w|3A}-0|)T;nB*9j)jHob--?VAHMCZIe2H_uN4{H;FSQvv^W9?8Xyv3Z-$x`) znvLb#jgW7V`Ig2KkuUQl?rsv!^|{|aKYU)VA6}2wU+{FY7YCyOF+dg=j*4(ge68w! z=nw$(8Ulbm005X!Y+z(8E+Qy0kPwQ)>Kh`A5r&8;+)e+Wmo!*o_U<;;K^axhP)HsgrIoVJ>&ZS8zPVXEq_J zq}N<`?eKZOCF)>9spIMw`@9=f-?{z$&St2H=$(us%zJWjQ6g2n)|-VvtRnZ9vHw<+=N7BdEg4x$8;`T`1 zv@$zhKF+4HpT!9?)Is~9eKjO#Vi1UiW2I$D-CVemgVZ#WOW+SpWTqG~hQqkj)ddU= zT6ZgBYt2O1yq!aul)vRl_w0P0$?AymwE9^MpvW~r_-Ix#;~96yx&u1cmSY(*e8g^c zi*qiyJr@r*9XqSMobMNb7O4;xF%_1DJ6N?Hn=uL2Q9d#S-;chM6EQ?@eql4?LzL!R z-1i-3sT{HB)~nh?>yq?k!Mpbn9pc9b$Sm6CU{xiuScjjk9`LjQLAm_rL3=|*y-dk@)WBcO{@HH} z@ZlMUM-}W)n`VB-kCy7TYFq42VkACkdi>;~^uxMcpH4#XW73cK-kG~}mtP#;=t2V0 zd0FdhLdKbHuE6B%MzSmX%4O`;FxMEKVA1;y3tG*fSHg#Kw+6%w+B&EoS(}s6c}n?~ zkvZ(+Vf=Ots0ZEaAOb46z6!G9u@Ki~mF=sE50C*n%E!{d!4-^CrDr;Rp*20Mv>~@H&<-)x#xn-bH zvx->YY_gJIL}huV^0l!Qdy@AI{Tu4a#}J~PxoLskDc%ZS2?MC?OL{lrzEb?* zO7+UB=E6rs-oo;a7RkF4cCW0A7@H(Q+1)tQi%M0vv^Nq+{2JuYs;;3OZKQ?ZsPc1Rxz9k7QFC9NxmSQ*s&m9{uA|5+w4MjNnywH-FeJj z=JxejK7Ls&U~ffdpdGZ`w5vehWt?D?ru(h(iY{A>l_Vi+eIz?>PODct%UYt8PY4>v zK>`uPWG>%`rV9R8Ls(H|>Jc?j>N^X?qXu@skA@T%A?m>nlgv6d+~Ne&{O4;=^uDgVKp78#4ErLM4M z-4!+C>{Le@><{ZZQLCYy*`|Xi)9-5@iuMn8RZ_&KUp$mDeluIydmwnmQS*;#f*(9_ zwSUetI3-uvP;{=`3%YincA+h0^mSPIgt+&t>Bh2tNa<6eu()OlLp-;9r;6+8|`2Qy5n=1c?1p4p%U%)uoOMJ5l06^dB{cWB9 Geg6Oi3p%m@ diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index 494a5517b13022a84dda4e7313b22d2e91c73dbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1764 zcmb8w`9IT-0|)RohM6NIcPY7j8j@0r(1*#CnMsbE&24Pc=156lzK%$aLT&Db&x|i~ zHhmByavv2%#N^H~gm2%^@82K3uh$Q+$LlY6A`yI`D*!Jb2J{g^(ADmII~oE2P@)R} zX8-{3^uv1K!-GRGc#lxOVC)%P=sBn^ln@-~h6xJ^#)rCj;JtkPh#06pAs8zJ;sqC2{sR?!8h>fEQ3O`pEpF+ZL*ylt|*- zf{}*6l1&Nbpmto-Ecy=RdAAoj6(qs7d#GyC&!qhrNuq+P$3rbrQY_{8Ghf=j<|(>f ze{@3h336CeEDRm4oEjzdn93;QsOHcJj$5br(VpbtOhFe*GX}eLi`5|*XnyG=^PZ)A zq0^$blmZ89&6mI2)WekXd~I(-Z>UVon51_ngO)m4JT2*_{{10Gj#Z~E6`W6Kp>#Rg zjwPqPVVa_N4gbnBGRySQIkU5)54D@Y40UL|qW58*eMhvLFb0JZf()rwuN6r&o67jS4&r@>OzO|Ou~g<_>9Gi^W3}#=0(F^>H9*1tl1VPMJs;yuf2dVBC49ISN_ zak4e5Gd_R>a}KzEHVYzOyziy}nU0+C$A<5kWayph{9(=>>TJMfvjwcwDw2*8&pf*o z1yRE`x4KBA!Ku&it)GaatDcIwg5uGi-8iY|y0!Q|uP+tt89lw%py?6V%7%-{l}pSe z&n`MAmpR!4h-v7Ei!|6#nvoVCgyyQtm*RAG>nzwBgvaVeq^k7H zw+IitGKoS{Bwws?6eqsS7h9}a@>ar*a!7nbHPib=TMDSjP2lV8(tJJ!6F6en{wJGz z%c|U3>wQZeOp%N_|8!5MC;h0mYU8<2EAmMuQ)fGK%?NsWETM1Z z8`Fr}1`kpyd6j+g4uTJD$!&2LriQkWnOU%V$Dv$2ZmUk4+&(cXDDDus?y@OX z_|np4CNWUMg2)(FV&l@5V=}BZ9*Cqsb@2RqlGCZWpnYl7UXoz%*XD&wlIb(u3kSmu zD(QQJQ;Mc?ct|?*AtBOvSL){X-D(e&1XpC+^9nG zeo4K4sg5+ib}#7i_RCiH@er4eB&hK8sT@dOpcEHCTy+d#x74{%JmdsfgtB8<}ny<>st0CUyyiUu}Atd}Tg#R5sr*b;+G6Gb`9M z3tKtH!UtXj^SkQh-v?`*;F&vdTQg80k^0c2zZ!gBf4C6jTNdggJ67>T@#^KaN7*QD zdzo4%O`=0QJq~8_JfM+8rtGhORL+3FLJDB|+VsV3`xvsur5k??)&@d?^ mf`|7C-~UGEw>$qNn&-dse-VU4@c-5e0C;}a`S%k3dH(^15=Q(0 diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index 4669030923456b9f0f04aae9686a8aa5ecdbe8b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1747 zcmb8wc|6mP9|!OcbI$RdBX=sxmFBD*BNa7QUq^1S!`D|M!yFr;IqEA#t`yUpGdYSa z*H>Atnk)-pjwpQF97UurO8fTx{{Q>q_kR8He!Tv8{rz-v28q}L!hkIBIwr~!)joMz zSquPZ#sB~V004uK9cG@-n`VCL~Zj0&3%?h zC$X7cI^l~!{LEJ^<*uvS&i6uV!Ja=R5kvP00a>><+M0)%a;E#E*$2|XgMq4v^s`gQ zuO7pMn}j7_IN^IW4b!Z5#qh~HYV`bVyuuKoZSNv-j207& z*#AorjVWCufCjEcyXBib&x|u+q?4x{TJB!GrP+3u?(^)(UOcM-T~Hmg zSEiUWBs8jZb1CfjJXF0_NnK@R?|?3MBchaBbcN`ew)sh4e4Ld!&H?Yp3>gM@53}kM z%skQ(_ulZz@gQ;SH>*{*?qeK!BFegAj!1wi^XbQHT(@aD&b9GPpENa9X8F415AWWH zEeyOffruE6qGYR>y12=v;rnb)q`(v$@8eAeDs+n>$zn4$vHc1Jv2kr~yJ$%fEi-Bq zHT0e0>^ri&mnny7c;D|coU=Q3JW+vZ#i?)KvRCG|1S^uZlJ@yPsb+O5+n>=#-*2qaQ?Al!(9sjuoP`AdFa?qmBGldBf0c>xkL zYwJQVok|VU$Ljl)q&3gr|Kze2tpXX%*6FgD<$7YwIvy}i@~(*rmChb}iS4z&^3aUK zaEer|8JUp2Ylz0hgCL+a0i(as!)Kp06^y{c&nb9ne8z0dJDlm#J3T-*9@s~!k&-2@ z@%qm7Dr+#>HMFu9S?NsE2q*p4hYZU|jf;{A>Msw)9V~IY-JTt_zN`PCp$Xi$ZlH*r zE?=(??AyD*cFBvNTH%b;W_Wo5_o`sQSIGt4F8MxKV8^4)yw_~0oL zU2KJ(^=4H|inDsEOF-=+DwF#xD@bS(K4$_doxqLL5*@VBrl>7rbj+N%NTts=;}AUHUQA z@N2M24-EpCLC0CDPfGW7R+km#gns)GhHQI`JoU|eC)^qojGIMTSib^n4n$zrLul5BI*zK*2BhUFC0}yq~NDsU_yM zE$w#H5?CDQv@z{Su5V0=j$P789KpWcpUG=x=jxec`WSbKwll56cT`UkF)8f0N@L&=3+B7(}Zo zl%_Snk@tAn8+`kfQZH)qjq=A&-%i+(rw}QfO5oYB49DEReYTuT*h_10%Urq(j&h4n z>=7MH@b_egSk0hut{xl2hvu&=pEWhjXjt=fHef-!ovDU$t`tdQz4NWQ7y;RM(DVel zoF!ZA;2xRe&r0=4g;%DyEkG0_%FtsA*YQIqs8Vpp7Fg*`&Ca;)bb-X_A8uf>8=6I-pr@Uo(iMreiv; z;9l7nDv}PSz-Z)#Yvqz#jpEf@5w~vMX5R0^obzzL^KicJy#0JU4}cs1c|aBDr;t&p zLC6*n7y#B_0AKfrCXmlKjjEfG9A&`hBW-v>b8H_@Tz~E?PQgjR^G#Y!I@DmPp zgF+%61c8BI07wD=J32l5?5DF)tiiq}o5MvNL;|Eu@9zD}TK0x@Du0|~F9>f{asv-c ztsPEH>S^F>O*C{u#K>3?g zmobd&@&GlRx)5kX9ad7~rMZB_bPLfY%{NGFR9!nRn*PmZG*_!Wdpr7gpDXvj*Dxd1 z6s)W6k%!f7haT=51TRJTWS{M%$C@{!7LK`b@)C1BE_eOV-1I?1S0M2^J!HM3#4b=7 zw0%zjv$Z&pEt<%un@`BCOI4OvuWvTr9`}($7DhniEbKRb6=pS5q2HFFcXt?-IZi47 zyIpV+np0qRvS=&^G5D&|f3E_U+FjdVqQfh7mc0Q7gYMqQHs%&utwl!=^ydk!*{I%| zY{bR;DzD3xPf+*>I_JHKxtn2ym_*N*PH-GnBGgFkMRch(-%q?&2+;|T{Vek>;GCic zK0Q=Aa$Lmsl6jYExMyU>J{?=|?oV?a6Vd4;(=zQx8=#{X*ZbPfx%mu#4(|`s)=OHC zP5K!fPK&EwU{3#NnWJke*JIwGei+(4m&GCzpD_pcy(aRF?~DUjX$*W=^Ev2*dl!Vt ze22tNE{VUN)=1NiE5?Q>(Uc;rFB^Qy49uHFZgIW^D_TkN-#-#Oz@;>*X&MWMbQ{P4 z-WicUyIF=P)}=`QrT!b{ul~NOU3vh@ zqUU^uqj{K;N7VU&82#)OfwQ)Sgpz9{_ZYv%Y3AOL>6ns_A}578JbpPuoHwNLX%&A9 z%QlS<OfG|08MF}WYo09r#B##R>HX?sfOqTBS;`=Ws z5Fb0a!k7FMI+hWyJ2#$zp3oe*-ve_%7y`PiKyQ?HBAcEW6+)v z+L&?@PW>Y@V2|L%fh8t{`T5 zfB(tho_;2f@a|VQ?1}N6qNT<5bd&x5Y5hIVmEf zDyRQEcdUEX1GK7M)4t}ps}WCILhJ_8oD%Ss1yYlmJ0&w&9k<|<(G`#>4-{~op#7bP z!ukl={bR<-@*wtl%Tqt`q!~D+7|g>*(VtC+~3J|3l#m7yeO_+~4u95aHtqR``1)_r>ThdHkRDKhXOjmjD0& diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.7-compact.zip deleted file mode 100644 index 213aa1c4c815c825b18b2ef2ce88006ca933e80e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1812 zcmb8w_dnYS0|)T0#8xrdP->=VQL!4ML2OD9DiU03Q{-Yq?LBJK(keAWTb!#ARa8<( zoTrDXade1sl+>HOKS{db@Q@GRFHr^|uB^^ou3jv&t6s7xct#y+jH*n~K z{e+~`>5Kvb*TBy|-x*7?#8S~d<*dBDS^T8kkRokzC}Hn)kwS#b@dKXCHM0zZ&c&wAFK5^rE4eoOM)5jC2_54OAwPq)k8D=XOlnd3i*_2w&hpK# z5Zxw=g~-_SP-g08cfEe;k-0_KW5kMK;aT-RcBei)uHsLX*fRBAO3UE)333$HDM*DA zkZ4N%# zstV4a{Y8I(@3@Pz;;=yd1(>pq8l2(;r&+!XA)~Y zZB3C!ymz`!oe8d4-&6Nj@GvD_lbJ)?tWg90W(t@b{huCb1V_s4Y~MXj^= z5vCGN;%>eqmHnXCVJM3*zjL*NpMn+|;o`8t&rYThZ+$eaLH7Q~^Tx^zNY<#^G+o#@S@5 z<=xTkGL4PE;-bCb2(fxp80wyN+H5N17U?gnWRo!gpOU}zw>tYpzFnX1G9IF$Gh5u; zq7=nbU75F>K)CcbRM~5)mkjGq5&tHO`c$rk)iiuYatsW5*TtEQ9-nyAZdaIdsgsqy z?XIj{gK%?x>vQzJyTes|!F}aB!e&9)z4X`_L^yBJDhWT}NE)MIDOIb&2ke8}#|ozb z1!|pB7m~CuxbW26orNOf6kcp5;LiFt2+*k#;K$|wH$z>i2)C7Tanm8w>Q7EA+P1&D<2|n?_T@-i8rc}Hx34J zh`WBz=nfXj7JS}ArReVpj)`BejrSmzNCps~^O%0m3eANb%P?BUbH+|f4RyRgbYLld zyFFGeBE5OhyYtN2)px`3)?7N*tN){jgC^Y6$OM5TPHHP#@ByIyZ-D~%C1!8`<=o(? z^u?h#Xz{u3ez-AhDiaK*WGw&sNdD55-)7?`jHE z@DcOlk?tyOGT`c>Mg=G2&4+bbJaFFH^XHz(!+X362>xZib8i}hFG4)nZ+Dq&=x?HY zKRrp=!brCvth3V@a?5>=ZB)F5xc)HiaEtYBvq@?!0D-%L0N?%4XBb{}lRjLcRqiS! z$C$#82IW3`DfDfIDaRbz?SLR>`&Z*dp$1Z`y#lT;IbcE9>CX24{n+0W;E$^K(OtoM z{*N%vb~s&J$(}Hvbf52jO9MLj4BW0TTMH(!)?vph8S)(g(vq;k{6eTTsi z`_Go17o#`aFwI#Mk@+DcOpKvWr7e?SX;hZlGd5f{g5{XJ5%ww=XU}yyN77G6+j4+V i;Qx)(52yZ3GRJ@C{~`-*%k@J$0O0sh_a9sL@B0VRFFvgR diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.8-compact.zip deleted file mode 100644 index 5d9f5c01e91791967103bfd5ea1b66e9413b4848..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1811 zcmb8w_dnYS0|)RgYUW9e(omylYd1#Crz+>jV+1kkkzQ)VP7r&=o=1&XM@v=Biq_t% zC@$BOsCa0Nvr0|~YF(^yeeUT{WmCR0kUD@9XRl5#S#b;*1G$^TvjGKyktTc-||V zfFl6J1Hgl{G_QN-_X5jl)QRCOncV`&eZ6hAg# zFXyx7w2?O6{u0SNMm+VZ<$HKBYeFpzM?WF%cQ#KB2x>?Mv~chPS8Q73a-kYbL&{Ga z0R=}fahEeG*}j|u(Iejk@ck4iVMeNoE~*{Rmrwr`VW>bXq->|m~#^!CD=n>!gC3TN)EcSf6M)6q?i?`{DP#d7_qJLld})2ub$EI$ z(xUG2ct!OyA*Lm&d`_qqe9%wnK8cmtmDOFz%^fb8E<m(t)U7^53B#c^cZ@~d>&TD-9hT*eb05^rn?VqUe zy1{)~E$hyZ`%;(>tYnfzlXn*Wc8c&jZY|fuWnMuZ49+PAdsN#$`3}gqLaRrRyT5yvKRlM%K7i`mPF;3NcXtFHCCRX zpDrgRPo-vYoE-outrwG838E%pp9so)hXXbQH#)ewGh8e2IEkxz`Jg6cfPH#gkGh$Y zlgZxs@-@rO@Ce5SJ#ZJa$9MN<`*N;=GhP7_t%W)$o{vO)H#9(Gp1^aQ_2 zOuF^D=tXPtP9E4}+elGTZ&R_VH60RVWN6sj3bWne2d-QB5?P^U#QzBz6zv5Rp zGLpTKhiI9FtC*rCO}LXGmjH-;yW~&8%sySL!=VsID{Y+_ygDUf{i`!vk6}4)W@j&_ zR*ryuOcf|t)ZfT-un>d01)ny7SBgvB8pN#_68WR=3;$iU8%edyJ$=d#Ufi6EBNcIK zV9&%|p+~=EPuZMv9v?v?T+6vx5*AA z+n7V|gcS0c3ZLFe8$%=jT@j1tC^xfR?QQx>OcWTFs!#+kx~3R9U31njOnzvFHBy(2 z?80_i_=VF-g!DZ#?e_-7$iHz9lf1%88=rGUo7C`MVnp;a7L*d456dHTa|5Gu0yokb z5y$r+^sHdT1vYZb3W&$(XlF;>eO6`WfdalkLpJi)4+qeFW}!j5?9ra%AY=&J_Y1!; z=LlT@78*O+9JVs>15I;Nl<1QH3BjdLt2S;b?%5kCcjHMD8A|(%&zahj`w&|c+}4|cRC)M z{obyk6a?Ws7V6?{DvVY5f=YjHyS{AYxKcl0;yihy$B@cq&UIpvvgG2|d(nw4?sqpi zq-NEXuypLcQ1=Bd;LE4X=4kMxyesO$xGIB9obQtjU19-QlcmT^rgJZvO74c?jHx~I zlov@Xy;^IzA^Bs!r}{W~fij7sv%w>Hq)$ diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.9-compact.zip deleted file mode 100644 index 3b5619a13d1d3a6619c8adbabadfe681b67a2bed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1718 zcmb7_eLT~N1INGGCXdNO5l7wWkcTCkuAJp4&Cg=P63480Xq$(b4KdB;X-1wx__5{T z5IuN27Ol}qU7kvEvqZ>w8o9Zgny2gT|KA_K&*zW#>+{Fw?>7bo0y_YEfPKISor*pF zTHQ|$0f1vL0I&i8AdpNU(BdPhAv8iXIg(;!4TVF$gVH0z@gZ^4NLn6YGPeP5r2lP&+ zp28mJx@ZzM8?e9~Y^y*oe?pZI>r}8i666s7s$XXAnxJ{OOVh@X+5*x5z#c6oH=s7l zj(tCZsDPnN6fccvXIPWw+JmH?KI7%QgjQp;U-a|H}eh zeK4@f=1R zFuW%xQ_B&nNA)G)24MkT1sy!C_|vURyw>`JJqrT9g=HkDVuG;fo8Fgj6DMK{Wx&_H#208=)s(zI_cvy7w6exJXk*D zc_dZReW!7oCL-^O0(ce&PV(!rg9ha}O}yV1W|BhZwVHk*Wke$*^2R(-7pzpS z;7`@uJ(X1?P*!@M8(`~->Ng9RGXL|4i>0!~Av?Q*vfA7ht9-Ap#Czjq2e>+3LP$(9TyaHSJD zmSeAch^Pr>IWnpb4Zo+sEn6}CRr7&liYz|*HIk`j{vqN7bIsem(h416zGxtJcerg+ z1b*$>V&*;8zMeGnlAvJWT!UAKK)B#&St^U)Yp|EOvBcji?6v0YxF&(2c+HZR7B_Xd&*I0+me7w-Q#c4Ua$g_WQ|JxZ! ze^4czydkQ$#v+14%EWgOSJI8FPAY1Yd%1^hQ|i!*H=dB`8S8aC%)>CkxZYnXP1xv! z%Xi;?@S5Ko)-CWmkZ{N}Pq9F+zGPBxmXGAj$FS4mr)tYSbpwTgUP*Owqi6(2$dcMh!)1nL=n%#){7aIED@ zuk~Kd^ykdJxKnolCI;)U#XZDLwANJn^P1RNY2eVv=J|I}9lZnTf84`qRmQAe(ARai zq}eLWup#r${?{>ra$0DVjdyFwHRzmPNz^rifjZTOt^3;NDpHOj(;Bpih)7!#pL&>c zM$5x-IKJ;;FN0T7tPtKRrDJ?7P;`rAndpQ<;ZAz#K-Im<*dGFv8q^$Q(;Ee(m8Nm8 zk8#e#?3;ldokTUy46}EjXp?e2PSYH!y61QG7o+$~di;sd2bHiFzO%7YH5H@wtaFVt z8GPHlMfWxT*#xHzb}%I~Fc}SFgSHE1Zsq~KSYD+(UxJ-giDFCtYWuFl{>}HXjuv;^AFz%x^KTF^X=LO zwsTj{agvnFaj2ncVsU9W|4+75o&z?#F<=* zksW=V-z>I;lb&e18kNatn70E%o~YXf&8nKu;t9TtPI&+Y4@3GzAx9SltD^U-;ZGNi zUu?quIy3(=wVxC`i#xqvM3h`}!gSn^6)AovpPJ$HdRsny^HfeSHTbI2iQK{u0prA~A(kIGwaa?+_pVc*CuJ-H8^hp(Opm zOcFo1yt6r8hFbvVK_nVl9@Ni?3P1A{-H}HZmK>+Emh5P*t{$JNYi$tSkrv4(hI_6j uONWAX8GHKy3`${-1L%KioD{y)?+cy(U4H{^8YbER diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/break-all.sol-0.4.0-compact.zip deleted file mode 100644 index a6b7484300f693bbc17d2625bd6055e98a8af05c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2030 zcmajgc{~#g0|)TU&15~oW1h#6VjlNRAr|GBbB;$O%{Atj%}tbC8|E6BtK8}lbLB|O zJ>5|>F1{ygz{`Gr5n>sS2^G3r}V|CEFH`DdN2Ot1v?k8QA@BbHe5GQWq8l76u??Cq!y6(zN_#u zr-Fr{lp+C0g^-RPlqfig{_NXE`ReV(o;ocO2v-f!C&R}CttAL3OOwXktKRvsLr)B1 zKTH(!dYK6hWn8nRtM?e-w+eeR6??Kxl8?ISe?2fa0`B;B4{V6Kf>JS3DQOLOM8s+i{5dGF5Mal2aOh~b@RM7L7Fq!rEd|kN0m>DtU;do)Q zDN52sjtE21Z$Q=`VL8BIvep^GL#pD1A*>LR|IKRds!pK`zK!!GD5S;fOo5nlN5JHw za^YC^lUsS6&S_p2hf+t;?Yq{kya>u5%%(&;qU82xHT3brv61I*8zh_>0}5H5%xNmW zed7?)fq%ZVW*w$Bb|kY;k8CA{;V=ofw0_Tbc6qLlG=Tyd-!^HtCU5%~ytL$$_3ZYM zUyJCsq$Oy75{)ER#{gk>Z8tB7GL0g1C?%7N@@~%K?U(18G--~~%$=oIA~@L^xV+4C zSQIa6n}r)17`}`KTIX5l=7rT-dga@69)m@h`8@BKRE`(1YKNZb3T%pUh;HF4PK#Uw zJ^PUp?39pN^}A~EnWa9Qz6}|mNB%OI8M%n@Z`twu1E#WjmeM(;RhKksJY2UyJhW<= zuB<5C#;moG4ssw}f<8vFD)#Nk$2NlP2=%q5+uY`5P6f-*gZD&NJv8mdO`ZY&*IV<|7TWj*jW#hSxrSxxO&3%oPZbJ_g-a+ zUk*qS-yKL?c^a>sLm8sa8&`tFrXTeY?=$|nculJC;rq;GR_W1%F3ukqDXkwS%>_YK zC`cb5;pUXdL_*IGPDE#EhYX%&F<(EnUfGGD0ghC&e0#mpEOR)Z8#;i8lDNHK;_?c! zG$+v9v#kt_#F>HdZ;(gphm5mx8ogcLj$#OH3F+@-?yJqd#&>^Hiqn->%=z4Z-F~fZ z-eD!;_26J_y1vxBbzNrA0zul-5aSNLM*uM@pk+7CerCyTA{uTUCtJWVQ%u`ucAbs) zr$Hlp`N%-8Dfj6rT92&JHkfnaGAdhyVEWW}PB-Ll_Jlc0xR;gL#REN;(S5x#NYIBT zk+Ae|?a~syNh-LcFJbnN;JJ#SPw2L)X}w^{8;Q}>W0?jMf{mA2ldoUeV-1zb;7pkh zh7|r8j;K$7;fIA!v+{3Zza|J9reoUT%-Lp#9jLu&tGbW<)+2tyeeH>Bvieza3ql?eLwm1CJ^k9KfoUxy`+Fg;bM0z?-k*SJB_hw?9EN+ZM)0 zD5n&D(gzaQV2=%~d7OJn(vrKH=#v?c)9U($moZFLP>B@|J>Ol1(3~vNP-NGi^y@vhMWd;ZRNJ2z3c z9^x<;0-NewK{k_ZD5A2A#<7*oi%mY=qu0pA{B4`eL-Yk58CqS+Mc6EAVSeH#7F}P` zSXL}(B$E&JmAt0>>Qo{~Lr^m0(xZ9?Oea} zz`S@LUDzdrjQ=#;pHrTooXt(pIthIffi>*P5RKl7!%ozps%X2fxW4qFN+*9JN^z+6 zyT)s(iMdoQxNqv_6~AcPtHB3GKG9?yBKpMrmP=vI`i$ZxdG&dRKQzQq%=g;&ihy~L7)c`Zlw6mEW2p3HR6)D@9#q8wnyiC34nE{4xKn--BwSqzOW zCy%`tshQPls9{229CjWD)UT5V@}QZjvpEKfe-3o3h=M8l(yHW03`$!xvTX|edUYti zWkp%<1j~Q7F@!KZMYajg;fcO}o-o{)EP2_7BnuQE-*QyCGMd$Hxrh E0Gl(<&j0`b diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/break-all.sol-0.4.1-compact.zip deleted file mode 100644 index f182bfeab4027c0b78918c4a4442b9cf7f1cd66b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2028 zcmajgc|6mN0|)T0A>=3_8ZDNDHgYV-<19226Z0!pq`8JB8|J=-Ir8Kx_uR}d(c_97 z&k{nBDR03rcEKR(`F<4D7| z=>6NqKZNtT3HS>gkl17!u))Pz!B#}wDl4R{={EQ5wlF1fpu$BrZ{9r>NdTrk# z%bk84^K0_@YxB>1b2&-f6tzzWuvZ>43^!w8!YVVtw(#1Lk@||q#C)!CQ;JgTOl6k4 zD7N3)s2Y_$9{ShEcBen#AdmV?uA!(g$_p9N`g>NPaj}%5>{gmvYor9h|^%W*J6mvYPOBQqN-L7@dvH{XdK_CzDm zuzyme8CukrHt^u+*b}Dw%qUQcyiI+;L-72FJec7o=(Tz?s-Cujh#*$7Klw|qg~A~q3o zA34AvZxpi23>YWMoD6id7K=P*!^AjGWdoPwX>lh_Ha0T)M{YtwTXVK}zp%t00;uzA zPrqC(>KANRr)H3QrVJ$V%PYpNuOr2BuHoVCGj}(|m`I}>LZiyF1~3gf$de-3eCOw( zbna!NMCN_tDgitvkt2Hr;Q3nxv@8)6Y8gb6#Oqq#flZ8Y-sMfTS$R~0Zg-9mjOl$* zv+2GLCuZOHy>^ErFYptFQ#emhlVcvQ4 z6xRip6rLK472@x+I1be}t6j4%5IeW?Oi_H1KTY{`NJ5kFxDBc1ETZr~s+OUYnnY9% zLDj7JB~KTXPr0$m?D@F^Irifq@n2(mc+W+-HuL4L;bm_bWUZfRLh+n|d_ z1PR=5agA~h9!$qpX_6}(y47?@gwYs#^Q~)HhbF;}@x_7-0_g#INjP@o6#foj=`c?n zj(pEBG_-;QocGAZ3ZpxAjr8z!!U~0J`XK7XdZ-S6nb1ws3aoe){}6q;jl2H2X%{BL zVH}$2m}ti_JvdCdNVCnDw=PXy4zw$2Z4RRAh<>@v zz#gYwD+CA6B>XARZ--D7@dHM{hRs(v#BHaEbGswrRB<;BznkF>qJ&d%>7M!=r_Ks| zMqt)@2Paki*WCPfRN43JtIR;Fr9tMc5zgWxB9Y^7*u;J~7N4n!e<@RL4fdoTm-wdIoH6;fzav00+Dofn z7Pe9v8q>XYTcgOoWH05Gi!Wo1URE$@R;rj7$+YGlb*!w@PA69AWh@Mv2A4F!*TSn^ z%qtZ(Qbjh^h~LegXAcsa*J@qqHXCJ6jhp8AnUiqk( zSMJ}go~H00&?w!zWy%go^9zL{FtIJ$0ilR%UD&4h0U58|IAtjONnW@v zkN{|_VPQmKPgq2TAXy>mz}b5$r9Mb<4^R;!ews@Wfa$T%cb@tWNC~cr@Go z2+D%>lgkRHYv>GUm5}(;VRiDIJF_PLn+9jv~2cy*mOmSvKq~CUTkfwdZuqssp z4r-s18H9J%$9{jxq12Ai;?hoXpDvGSBnFD+t4Ry3yf_watfXxLT*I+RUKhmYw7h}0 z?%waJ#!SRrd9hM0L4x&TT)wS}ea_P4=^;GWRe!iWWW+(?<7DG|HII9;_VQ3S2%KqL z?S#uyx|_elSpe-@TX2C4x&JrBzb*c6BDwyZ|I4zq1@Ezck6gct{=L-SrUSq~Ks~$~ diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/break-all.sol-0.4.10-compact.zip deleted file mode 100644 index 108bda5f8fa98433f449b988e30a31367d024abd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2016 zcmajgc|6mN0|)T0`%1`>V~)Aj82xgLlw*!oC>y3VZG|yHa;8X(%C!|mYGhNnk1oZ7 zh{;iArEKLz7!DX7EI15JL9iVr_;O-D%#zY$14bhK6`^2hvpf z#ZuB!p_>fUecq>IHc?Ns$LJfCe{c{X8MNV0!|fq?GLjd6va_&~PyLCa?i-(T<{s)@ zv%XVvhC%7o^Ri8&)Rmf;K7+MEI}n#0e6D<_?Sbg}2H|y6z(Q6IhHov}7k>~K>yfqa zJ)VQB{9Kz7MYS!xL&RcBl*h~7lfv*;o0Y5%Gpgh2SpA)?CG6NstK3g`sMg&TQ@utCl_GzOB-d$HZnJ=fX`pCcLgc}$8jt@mwI7avI zKE7!UPa@kX-ET=NvP}i!obP47|Bi!6q0b$!W0ab3=YbybbpriSoIdEr@N*#SnK;aTGbaAnH`A5^fvY;tmh ztOSprnj80_-9#da|H?LDrnJ68_|wO4Zckf==uQ0^Dd~P~^_LV?^+R>-Zq{0oKeZz? zkGHw@>UNBH>#W-C!kN>|Dy0DHhP`Bp?|l|}>th_aEMfgHc_cR@Bq3kWB`&Pp*MAcd z_b9ly_PqX)xp7e{7XlB-cCdbouka3lX8&4FiLt*EtHUjBuDsgw7Uvv@8eSeG9^RDD zdW6hCtK{VxaPAX-&a`;ZnR07rlFZkH{6-m=`m8Z|99;5?Z6Dw1NdPtP(R1y1NtsuC zPhDdfmRkCE>9pmXnPZ583Z(u*j!(W`S9I)T>(ek(2q<~xtBL52lSUK!vC)AdWs?R(^3FgMP$Bq1 z|5h!h)nu>v-sosj;i1u2ppmH0Gd&valA^2=o~wM>g`!SZtjcaW@ zp@tBOFca;D!O zV=nqAL8=#jVCV*o*hmKI`E|l#RE5k8bt>ojj8lou8vp>kJQGc zxcoeUI^>#yl|@av;A7r|V`iAj>9QR=tE6TBJUjva)<5ClHS_LTeNd;X}0&C2r8Cd4dIPu^i53I%ZB%M!)g7yDY>r7 z3)vApaJ*Io1vj*=l6f~;Dzs4|nJqtcH0$b<3F18jJ9i(W?!!yV&ac1r7u6IL=4AFR zrx z3L(QeM3deYuolRA=*HjtyhTrAeDYD(6aBL3`3WjyWS-@yj7z~a20QMDez~h0tuR!P zoxZ1s5D+PRx6JfnsqP3LS~H1BF*wz5$Z3s7*d^lncV=Y*J^U|~q5~GW-Xi3CrLi$T zwbgKlId;38PWKyI zrfSlW)^*rk0e=aVw`Splgh(QYK{*TSOTp8puenT_<-xPFqRz7dZ#(9)yn|k8+2V*D z`c*3qLsppNJqPxh_$f}8&DHIKVO@!( z=VN{Myke`x`~)js*YCM>Q9vFhlcJ_V zM{jzpZP@X%>p8+pQo+Q*dgxchnCM}II4q#Uqzz{#QgL-xJFQb6iFWz6&)W1LbvrFh zzN{8TKumb=iBU$w-+%db-ZjngtxM-$G~ZjwE9TeJ6&uzaHjVH@9q$XG3W^l5eBH8` zk~s3tp|R#o_!B2)E};+gf=2_X@vIa#LyD59pR)q_vyA?kOeyh5?q>jyqbcwp5XzRUFdBFWtWHh!eQqm6##agn8$eA?PvO`Kie||J}So!D^W9A?R{Ec8%Q~ z41skT?j(!4u5G?9evXBcZu-t;E&gOa3dUt}*7m=erqxhXTj13SbyZIUz@2|BA|EIB zPxEbLK9C1@@f8xolMp6@U3jc?u77K%al%mZZsqqXc~gCZu=>eleYTlG+gaRPDBU?? zOC7zwd4+pqrYy`kqD_-8iv{L?p1LK-IDYZO@dk=NX{v843FVb(;WNzA^*q9ss9&7C zJGs)Vv*WWG+xMSr8y}T&bNyqqlMkwpa^nJOT0l!qR!NVeK!EWt3?W*tS1?m)J08la z8TF{~Pq#d~0e8q4jQG}2-W=hO*N?8Oi$n^PYE>+u2t6Dx^I0PtORwc~Cye3_IhxhK z!}Bw=5odKyLMMZ%lc}}Krlv4O1Kn9-ita`ARXH|fYIJQ18vZP4iE5WTUo$xJ9E4*T zs=S4#N?|=IyniprJlt_4_`6G{e9i+o_g=`ayUgYnnuqab5hy8&F@ZN$SIyGg^IumJ z_7Bb>h6Y8H`V0#y(%ZIMm}XQ7ASTM1ykP2B63C$=zT}-JtE~3skz&`a@|Uwmg?qei zS{Wg#Sad;re5%;JFbMh`-NXTcjx^YD&(xiv23|L*8BV4;mgmsT6Hp(_eYsCUQtD*e z3wQYf0A|q=c)lveRjnr6SJfCSHt=2z?wD|8Qb5$j7L19CVX439XgL_08FCxj)Watd zMHroD*lb}{At9SeQDdiN>U5drXHvwfTf}yd*4ytdT1sPGb1Yk}1$DuP+=CDadjj&f z(*t+ePcY(``wu&-xdZM|d=d!k0Ch;>5pD{G#X__FizHI3W%lUl3p7cx)z@XkpY%|p zr0qGTUz#1_zL=@Iw=B!esu4x?)-LJ2o2HVrcFKifpkaU7PM+by-`$aI$^0B~RG~*Y zbq(W1a@2Zjih}nTE)u0ve=P8wFH6p(uYz?&jTubbPwAZB$Iv!7#p@is-pVePy&*-+ zQj&-Hmlapc3mAuio2P4**Qbi)!5Jy5YI8)!wN*HZBLQ8 z!|X4BA@j!`;)E(^ky)8Vrs_va8>X~$n9-{_PdN+IOKY9VFTc7b`s$!Gcs7;G^NJt9 z-{6exYZEYIFXYTKn0yJAJHy%YUdxMPYQB#mFT2hC2j-rwam2 zapOSr{4#-$Q`~>AsSy6b@RQXwLZ;Y65Km2MBuSFf{1PnMc2=r!d!S-wfU|fa<9NSn z1Y;nyzD8-ziEKi+luZ)>4?2uKf%0l{jD)D*(cf0(LeK&z^MSg(9Nh-{(7q74maS(N z2eeAqO4sG~pnUnMDg!QkJ6?vMYa`8T>*OIikSl&gs#|;R@bkX&Q(<7J!GCeAY_(sQ zNWZek8^15(R&jJsm>3Yfrm}ZKd=lC39aAPU+Q@i>XV*n3Sp1?ywU`{#B4OtXPZy&q uj;ca?Pne@PIN@CXTiU<9{of>T{EPpqaB~#Tv44jgzialJ&wl$K0R91D=-Ji) diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/break-all.sol-0.4.12-compact.zip index e1ca95a9b78b0fbb029e4aef5ba10b6b121f94b7..f962f58330835a01b4a0ff44eb53c1ef1b593844 100644 GIT binary patch delta 2431 zcmV-_34r#z67LfjP)h>@KL7#%4gl)4WLAkpuIft(007}lkr+#VAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH29rA|gN%E0oz}BvD50l~a=6}y-=VO0 zf1|uZOcRv7Epi#lV71TgdOZ^6QX-04o`+?s)bu%B%}eWaFQKt>wJWe`a3J3FD(!sb z{(Qg$5VmF%&v0T51moue9NH5Q9is`LMZ>P%7H_k=o~Jqnh*2BvnE zU9Q)!xKL`u3t%J&95D7=L+5(99r;q6{>TolMxg4c%9`fJ;qi;@fjrBAK&i~uxlrAA zL3+=%QcZAwos+-&8z||+@QA(zioadEq1Fs;mOs=A62CL|8U?SR4S`lY19$@9xa=e> zVB}%{?FhxCXzr>!*feeA_E79ip3Yxp%lJ5f`lQGXbcboAn^!90yI8ohQufbAPQ5ZM-e6kQGMWPTM!&W|?5PNH7&g_Es+e%4d z;tj6I&mUO%sqj&C(M~EGD-b&Sq(^+QFXDf|INuSu@)q{oT;uGJ{><|esSB_>8;6We zEO9J_(*YT?h%;+OAUPim_;isif)bW9(6B%PyRdZh5@83rb zKDypcWv}F4-6lwa3~qfEBpDKsm))=|l!hLW(y%8b$(OSz<#I~aAR^*%0`6N%V)xL> zbk6|Cv(-#<$$?++i)&k8b9FWyfLcryJw#kDGoJ|Ib?&gYX8sd{Qi%-#9spT3b}l`C zsRS~8oIcs(uc`HP@5M0Ozr337`7vlu5~BeS2TxsL7ipLlE~L4HzQx%FcCp!=+jkdm zYjLZuk7XOQsmu3EtW)L@)L};Wy@?xS2(ED(fq(Pdcu={S&_12f;S(WDeiDQ7jX#w{ zs`Do3CR}2gns+`2reO1R|3sl~9IwQGnuu(?DPc+3dmgJ2^>v%7*m-KmQB#io%CJa4 zlM<4C*@pp|b7KWDBXTM&UvI-BJBpy5^*1$-<@*mVyG2yLRuv@^Sco1E^hr1%!^7#6 zH2{ym4iQ^chc;qLaQyi)TA$iG*CDFP)-YL^Oh{$w$~#Db;HS@^*%p4?Y%d#sdt_Ld zRd5DuvO;=B*`%vlB>`cNHKicbNfgPfksV*H(Ma z@Od$3DW?lrGr&UZX5D5H!0pX3Xhjj6CG`}66lRuyB1(}F?5I=7U>f^>;RmXTwvDk7 zfA~)g`i4}YQFYxS$lSpd*f08Tb{Qr0j!r?x*I{CAK{k&r;W{+iQmZhNRQ`*;xl%SU zwLcuw=QTWoP=&xS&bD!Jn%o=1{xb+`Kf!`M*^g`fbzC>SLAoGUu~qBJSJGLuZxBb@ z)ctfE1qNwb1c%n|gn3_o2yCEG1nm>tCdGekDVH<=75Tj246g`t=o*TM)0piI22DW} zUz4F;l^8JM(%z&TU;%BL8Dk)I!-EiHtk4!xLBSHwn5~++5;~$hK zi-|#h6OzJ`1UV(5tNywYn=6!``lRi@Xt(40ilPH3YL{fH&G4(?ub0VCCCfE^d?5$% zV;fLat+BscN#nJDL?T`1wOZF|eN&6L%Fr{OX&GP{wR+bm^84}LVcTyw!aX`kn;#7SKO6PBOcyD+AW z?i8Tw@!+wvA1bavP&p?WZbIAw0i4#ND24n5AvjmR;g^4ZGMClo$e1g%&dVnR7wR2~ z8v0(GPRf~tQ{6Snk&}*eEWuPQ`Li^H=M!(ZaVSR-iwVIFqosqowjFA`4wj1LG&CN> z_{qfpb~)1d)_%r)JO+hdwahW`tNT`BFp4Vt_Aom5cPY$!NJ_02eL0^QyNV-$awmgz zeMA6zzDE#$udNBht2+>}9$2mf{o$@!L76<=#msRGTrQ?Vyjj1*|9t^9)?k7X264p^1mk!MTiGD;KB3T`U977B8=%dfO?t4oeN}->MGdIf#(&~~r ziwB2O@qD(KI()9JLW012nJhhKZPra#0O3uO@d!l*iU|M!007s}pM3xT delta 2251 zcmV;+2sHQa6TA`_P)h>@KL7#%4ggqja8!Jhh4h#R000g|kr+#VC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*+<4nCy9q#NO~0a4`}gOAdf!!~@?zSbYD;7) z=>kE?%t-s5{&~N~q{gvxv`{_}1RTpFE#ggDXP?d-4bw8V+MNy^e!2ROb1pkl7um(H z8x~1e)-{-89eh#MQ)evOcq%amm7u$-HkGEbnUu|r;kbK$&CKA_&yPX=@HOCAD}D@4 z`Ei&uRg6UfcdQbLm3S?)y|E4!9bznnX(n0|OvU<*=q!LvIb}m?iG@$qd)! z)5_S7gikTV553k$y}iw2%kqEs*56!!|48NNuP)+2;A!$DO^9=K%Bv_(F<1@Qb$sQ6 z6`40X;a7TpMAmztFs{Hfi-I61bU-s9sfxsuwwffP)p9+<>NIk7da>@sF-s>>eFz=IQyX|AsxKPih8Aymza$meCo-f}4DxNNEl%NP#={y=0S? zK?{3voMLMGR~3_7Mfi%qiE$kbK77{>r89c8QYGYn;OY37yMH+7umhJctv)+&7R4z* z4EhxC`W?PuzX<#Uqmm#mWKYslBh_AQUzLR&Sodhi%e>0*8d`LHdpKC7wxR+IB`9za z!qpmaJBpM)eQ9UQW{|P~9p}mT@Fr)_TQ)~#9gen+BU#R$wnv_g9JHHIl*w~<4`r=f ziPzMBb4U}-T-rk>SVymLkT!eR?_~8&dXlZvT z;|p)Rbd6R50QeI-h)#UZlGXQ)J21MkMhdZRleLm)kbb!v;Jlw11w;D4DkJx2C+joob z_}(LB$fbWTj`v=KcN1w-BB4YCd?;vteTI2eZe#GBuevg78hHthofDM{qmJ|2I^pc zteSf+x~BwzK9$H}*^ZuVc~4;nk`#0QmY39e0V@}jVrS1O9Y4Ga*202!;Rj9=hzize zKgDHSXOBrLD3mqVLa9l)V}?R)sS}a8QFK$@A%$~D`av|oi6*48Y{%_|X z>Pod`rm9&a1LtvDvyl+$7dYy=yL4vsH(IwdIBbU=?4R9$!3?jU39W)_GkS=&b*5pP4w-F z-ik_8z}TX@yGk)?k5R5kg7&oijmTfm*t>B4+7&?x zl#yrlHaP~Ygq8W8rdxE|F%T^u?S|*(-&ONvX{RoY?{~Gamszsen0GyYR~9}K7p)2+ zZ=}fitKZxz9yOf3GU`CYpi-13wmdl!XpL&>SSiXb8V>vF+l&y32u3eHalBXc%BEH1 z!s}vbti7aqVSV5^ei0YdjG1o8ep3e++zmR(v|)Fpu*^qJdP#NC0%A4Ax6m$%vPCtD z77?qthLv54N_jQyFpH~y(_gG3cnzuS@HrEel$P5MM7SCSAImIgKTIJcN&H=GCC<>BQ|G`s?&3&Dd*`faU5r*m+9GfOz*LLA?uLv`}!E)3# zI7?3XBRiirN>z`Seg{x*vm_fd*T@-NQvAnvJB^-bJ&I!V_;Hub)pOji#+ zq1ZbMRlI>(yQ#(!2KY}|eaSJ`1hKMQ;byZ*l7yY#_;6oniw^LwaD+xfscQfT2Dl>+ z#E6o!a*(3Oa)(fVhA&Jzc(zf>$KnsKzBr5i`z`HC%T{mkrLQYAb4bd=@qcefdJh<0 zNFGNi$n3TtC-(f41|^ASVu)B_PbJJtYrh;8dm4YFF_x!rJ;T1|q!g5XzU-^cpg&GD z&&1t{^SsSXYAF^>H%#v@DnN)cQU8YZSGUv3ZhiyvIHt9KUxIwR1-=|G&s9VeI7$LC9+Lu)C)o_hPJOW0?6&*mdEM6t)!@$l`V9k=6SW)s(l`gF2$#JO>>p8?C=#~Y zH)Y6LIE_VrpJ@SGL|Q5~0}lY}@C_=Mi+~17J?B*_<%FWrZNQLF7;;;@26-2fH{nOF zsD6gcP6Aw&bID;iNaQ-4$_ct62luMzHk&%Q^r`ekZFlOYaszVx3V;MGh=L^LO*llW z107sDPO~by#+S%Gd)Y-2pv@a5A-(^m>bsU~eRC%t|L` diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/break-all.sol-0.4.2-compact.zip deleted file mode 100644 index e4b8ebc5ea16cde568ee2fa9d63aa4634da9fe67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2024 zcmajgc{~#g0|)RiNAVzu+(OJ9*6=zfJuML%Ld0A(w_I5fd$xx;5*BjJ<65o|qlG=2 zYm}=TIbt4Vw3Xv=4oOeX`~UlSf4@I||NQ>{!tH>3RsddrD8Mc9u1lBoC;!WW0D!bE z0H6#20Q{nE`-bTHhKA}zM}#78qwhvU#UOp7`~!pT-PQ|^jtD==#}DuV05AZ6MQSPv zd<2dxA0K^bCQ`x(4^pEmCTBXyT7sH{J0Z=S-gpwl9r)L#2o5t$zo8z&@@A)ww3Ruo z?%NfhYJ^;lXJP%eEWyR131RrfQQrzfUhF^)^)r<$=OV>W2F5xrISdEj8EDmfc|Q2e3l zo2H%AX4cfeT=WRAw4;B>QuDHWI-l}rL)$NjJkPDkuj^UIeJuI>RSGVUH?Y$-DYMto z-nD{Z{7B&9S%|&!9&Nc@v$YVC zAx07)rnY*oT&SH$e8VsIvF&sK7y;iTa)?)VVr^$o{=Mz)8o;fELCfli-+YQpn)UMG5JG&58WHRISM>5-QTT0nHwg6w0t1 zOZ-3%3)-lEMgw0om*+wod3aJV0W0|+2SLX2H^Y?#Gs-u%lwb3_p?KsMkBQ-yXW{BR z%pjH`YFce73}VBTq}o%N_w2s9=yU($kN|bOuO(tBTSUz}eR}Sq!cO^9S%<)buL*=r z#*s;goafi

U;I?p`fln({MH5VSBko84D3QZu>jleq6?skfzdiT}Bics?TGR|KMQu;a zcSFv&gu9-oo>WEdrQI%RiqWe+Y^{7QiXp51t^ZJ0<1l%aRS<+^OAsUfm-TR!6y$fG^wa zT&Q-^gf4$Q`K05KTU;{#4?`>k-Tr{vEX=VXz~DYB)`mvGu%@iFo<@vz@e;`RMIT)tr`SO)={;=}fANqsihQjcj#uSpL> zJ|13K`}Bu9Ii2kKBLI9fbNAes9Z0b`d_Jb_l+6Qn34f-}Sg?^+$;Nei$??*Hohy#y zkz@^$+3V(jA)j0RXQQYaBtn>=4E;(LY>MBv{-%V9?Te6Ygb5uLL?`hXG8@KPb|f<1 z3lRjMtdr}ov382~jB$ob{E)N%{OQgC$g;C>^mX#sdS86jgP5mOUnyT>uEDYCA3Jhl ze4fO4r@{2dxH_o|k?JjFZ+jMCXl9oIVAJpB{>FKi6A@jI7uO{_2@-&5&m6^Ht1e-! z|59SNW$sxCJ>1a~h^qHCcBt!@NAq4HRD-D;V+;(bxjkeOs*8aNStMLT z7$%KUUMi0Hl4$J^VWFd{oc!zP_v;SAGwZQneyriI}`?%+}mP659hzvDs`-p*Bl-qPXCHjDpT?cxz$ zC4`y1WD`E^QF9ojth?Z~-60oNDpu$~3%Sg5nxUvRy8G^$I5-w|^Qv|SQzY~djSYfh z$gO&VniY|LW;B%!=k$8qK1g3)K}*JA&5m)~qW9G1T5O@j#GzS3U(Vdx94!hJhTzye z`w%@lMB}JG$;*|#GB53A<40GZkB8w`zc2L28Wx0P`YL(j3))ie2ZNg4=NvB!dt83^ zc-@{RkZkaM$4@{LZpXuG1^nL#|8)4j!SMV$|CeOA9lyZ8N1mT`{JFTFo&x~?05$T` Ai2wiq diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/break-all.sol-0.4.3-compact.zip deleted file mode 100644 index 266881ade1dca7435fe608ad3cb322981eef6339..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2033 zcmajgc|6mN0|)T0+!Yd;tKyL(GDqYdTaLN!Be~{k#LQL6wJ^CBa+D*jR=E@9&bf_} ztJw_k$cE75mg}is&+q@=>-YKm@%iWT|J%-zox>0~2Ji!};b^DJFqLI%ZU7Kf1^{UQ z0DL0?5I2<(AtB(%un_NnJLs^8C~riBA2R4x05~`@48_aA33vhk1^^7w(r#Qnx*YzD zGTfxcS4u_&$#$K?;vB>w@^vTLHS3p&u`iq5*k?ERk}-o_&T=>By_V938u7NQJ8 zDvmq-nl$S(pXdHsoJmer`+NTq2{}_02<1a9zfO0=UtKg(UqaFuCD7&^)f6z%D#GCM%&Fh%fderMR&n=_w9^p$GjQ39ZyaXe^@W^ex5BsvY72txt$>PL=yMq@uRpW zs4Kc>@;?bhw%7|Kvo?2+C)W|kJ$e|DtY)hC43=N(S&!^FKZ0-~DCN4>+z-L6%4%mt z9-NS7h-w#ii8c9KlH7GKwPa4(asp!K*{39r2R6e{N-$2nf z6ZNNaSmKbuX77f}VEab`R8_qkb}Dv$a$e7wj#pyJLtm6MBv` z6c7K4aO}OxYhVLWC|i&&M47SOAjpkQG>iAC5*~3Hx3G>H6FCe_;A^rNEq`;ziUjS$ zC8*f!$$9igEthvb9>UBU<`yhKm}le?zAcO8%gUY1l*+P8DAhY9S|L2s#m<_R7^^4o zwW2xnkUDt6wfC)j(^hIi?Mj7Mg*^Dy=7j0kC!P5`CZg)5f>(mf)%~8qLjKDG2ce#%@zze*H2M>*ZB5`+ zgX2Z0QzmDO`#B?vb(;`6PPVyjIxW9_3UM&s_Gm=|B>e2e1C>qF-oS6SsM8S$PIIFq z>;_|HR@M(_=^hDF_V2ZP9%l@9K#J5l-+ItPA;iBZTeO@V9%9?}|8&EHnxSX&RW{?K z`iQ?Y0{yHAj*1Eu%tM4vVYq}q1bmPf!X4;GYeRjl{~-mBSw^ep2*kkBv!%vi>f4Yk z2S4~=j2J|Gur&m=W_Cr8<*T!>ndbEV%kc9dT{oKO!l9-++o)3(cIx)o-x&{XclVT5 zySmu&xYg7toG<_SpcmkelCE$?!5gAvqNs8F{DJp#d*2#Xn$DDESn4GJG_ZFlA3mi+ zxBeDkw57cdk~(HVx1k99L#yF+burorh|oB8%e2B+K3?f{!DiT|n^&_?O8}L;Ql)en z-|3>^vmUFMzQa6(%8BE%Mmk)F2?b0(Z1v&VJms)*Lciz>l$jNGk?buYfj5y{?y;0L zAU(QU>aN_a*CB^=I<5dWyx`$vC>;yKBkPo~ja3B2)9b#~Qd&noDz7|hDLkw1TEyj# zoAnmFYv+5o)=fVD#3@|9^jSSm24iL7pjPVhZ&&QLmxo3xqcgIbZHxMkf^2+#T)bv5 zn?c3*)@^6uCk{Tr;UX6MXSl>JNnLn{mLAZ|29Hh}51lIU)Du0jf&NbOv(CgS&8Se}4VbF;7f!*OH@SbWMpgGl`_Clbc0Jko7 zFoBNzb#X=8y_j!J$>^ocN8Cl5y`=W?^FGe=Z}YQ3OZ-{Zom<-_DZlm?8WB*7y&|{|$!i-}%2b+gWmQ{d;8lQ`;bv&-e)hePPSAOneM2zIxugtNT`%H3Va?VXn%FHo52^-~# zgmMmvNQnJ%6fsS%9P#V-{Qtb3&*zWNKcD~KXiE@}KEMqK0FJ>y_Ll(-IU5K7oK^w= z82|v>LvU`sN^X9B%AtXNuDFPxz>qLkw-674cQ{VjCp0hs%EJrX001HY=%%E2sU4^V zmyEt`)PYmF1H8|)OC@I5iRqnX@VBbhEx(B>Z*l^$*5UEQ!S?G2--Vk?DMJm#Hmg4^ z^Sz$H><=eVJr)a)zaFP`$E(clUg#psJjENr1D5HeYsJQ23{;m06LSTIFTgA{PrHux zx3Z|KpS!&t*IugoR_?L3;KEKsf40m&B#<)Etb?B?-0-72c^splsAH%%7ZCM{Z-idZ6GtfxYvVQe$6sM3*T)R?>}I)Q|Lb1u>iVq8Rxo+pm&(&nz{onaCSo7sxvH3S%EK5lFrZ+B7T!E3eK=Im)j z;azUlslXR1&pD)B71Uy`@wjhmK80)+nWyk{C1l^yoA)E(!#uIcOxx&_`C-O}!;g0d zho{v#5M27EhTq#FrIlJE(x5oqb!uUyU;|n&DxlyMB4=+hxx=D7ikds2xFnb&K1a9m z(g`ckSbU8YHt8fYjYr}w4;*#-BhV%Tl7 zcQhBr2oz&Y?zf|n1!A=)||c42E#$#it{U4BX7+Q13GZBwqj z{!tP3lQ|>OvBk9}?fBUHQM6=>fx1Kogk8Idh1l91*WOC$Bx2@k@kMsrtqyR*MACN7 zMfG&Qb2%@j`bVp(UpFcW`|-8d^^{P#xsvY-jasW8+{6q_=s5J3er&1fm>Pme%Pk7T z=$v5|O4v+Sq%?;s5F++87|3d18IkZs9<#<=P7g(q`ejDOtG3EMf9JJ;S9%Si?XYyX z%W9(d*OG5$8O+aSIMab&(br-_gq%gQhn*>saR%g(hAus%!P_wcls8<;TK*&Wd?!np zyK}d%_qjk0L7vvQRU*|pbu!JGPZuOr9d}+vX3*8>-cONa80TK%#crqL!-b94a`9gi zeCqY1(j-EHAoD2McFw`LQ=cY@?uUOrefK%qClh=9|e)Oa2e8JgJwcn^hsY?qPWKhi_+Q zvYAh=q)RuvF1HKxNoDwtpWP9e7tg$uci(FAeWS7E$>5B|2&*gfb-#;I(Nd5fX6quG zBFv*dC((ts!%$CS(Qr$IN(F1bI6CB*qjJDGZ0ECD8nSileoh8&*U`O7YJY{Bx@cgC zt+{7kDSLVd!76VSyj4VtPzdG-a7quYEVyJf%@ixlD>`(FX`uP57ve`flpYy(ckR_L zH;}J5kYnaIVk%GXAeAfo*$Qn~kK6Y4qTON#j`>d`Lcw?rtt>bPMoyB%M15+{1%*Zz z6CX5;`YC;)8 zvAL_Z{?G9Ydn9ANbuJ0Vrw;-j?(}#<-YAWbB%JA5Wq~sBg-KctmsvgfapE2O@7h4E z=ENA^n>9kPP5jtQ@C7lNOFf)1_#<4G?zQz7SF{Q#@yDqGYE^>O9mne!Ps#kM3ZM7# zURATs$;1O^s<%=b$U28$tc;wVtWXtp@ll-mG?P52Nz9g?1RS=j3f81~T`7e#x=Z)d zvo{1vXGDIk4T)*khI7$YD*E5AvBS#T6L>g`mP>>}oq@{L zJbSh}xGr;;04frJs!lBIILRjp@qK78JImwj%Vmq-|Bv%TWGT9=X4B z_Y)eSw=Nb9T#8-cJm6}M%9@7F!<;3~E3L6gqgNSRp?jg!h39&XP>tS_&bk!`x$v_J zieLm@%#f@l)g?Kq{c&{|NHOvcw3;Agdt7Cl_(rNIWWoros}FWsFqCA2s>vq4%6Hg1 ziz^iwQrSy5l>vBAddcIHWlw{QUJ~7|sf9>AR#dJSE2^aqYi?Nwx57VV=+^(J39Dio z=as5{A#|=rHDHJt@8x&-FQsQtQ`rMYA8?^P?*TDS19c0ZTfj7_?222hCgD%-Q+6Nq z!MuqU$JhE19rB{?AfI33eC(3WH*)T-8j#@Qciz{=+p#o3)Q;Ydb2%Aeum*l(vRvnAX{Js} zp2?njTmBzSQqBT!L`beU*jjuS(I7RVV6eAI+NG)Rl=>H8#`q6es+u`(BY3E;womQx zU}=)^gPjD)-ReZ*0{3KVUW*Y4zG?GfM|J*X=Rbo6Wu}cdD7vCT?s^{ny?W$8s42Uk zaJ`npWZ^;R;d=U4QSSVWxhT^`lMH(`EvSpQb84poeJmyIJV1ONgIQGGfH7$OW-3>qTAEU}|Wmz?O-f@5DO&WVzZxff`;yo_#wtQFI7qcJZ0pxab3>S>&E zX#_+ga&qSH!Uy(F&chPN|2*b#?~$a62@|^xyjB*{9m)y^en3l3Y3ErgI1EbHWnXTvrnp%87A?-Z27(j z`$k|4(K5B=X`$FyL*}7E>7SPdsB}pqr#>2PWpOEhHQPlEGE_;uadAx=B7F!E zde$FH>Q?YTog2nZCphE7yArr6*7fyo8lnPi=G^WYA8e;^#dq4#h2SNSL0%Ah6cX%T zcldt85OZ*#yrE50`*95_d+Ii7Bkz~&+3J5zb2G-tM?Dr~oQ> zLagO~(Wrxf#!k@(R_61x$0-ZyfxPxAmo7LHvo3jX44}j$Obj%WYYlgLlnacd4Q3B1 zMdI?oLyEr1H^$=6Qw8MmYl6)+F^l&L zMO1OchC`T$I?H1-9#iJKV2sI?+yc#d7$H*dk+2seoPutc+;YLyKi&s?Mb6vYj9@9G zrNOdFjO9Q=bP@LVF|6o!vcVgh6zgoM+O}h#T?H%2K_%z*c8^W4dA|7AbKn9pp+L0s zjQKa4`q?7EtV4BVWp(%85@N=$v~yeTVsnU&oz$0}!P0Nwji*yJujiYapbx1(*eDAh z80^jlpyuLTkr)Qov}MER_;j3yK?}34LwU>?HC?u^Uw{2majRDBTbBRUoL%Scc+2SC z3@h?YQ}WN+dVbgBhN3>#0#QXYNItghTXqS(Oo72%_pi29(K=%HtfW2SwL>6QKSkV6z=T=F2ZosW z_6ZD56Q*Py@xsYsqC#yyTJbybIX0)h##ooDfz_))3(2SHqKaa*q;wZLr_*^nNz?zUDkt@CpJ_N@Jn(h5AFJrY=t|N zUnRc|aqvT%%T%(7H#@{kc(IV1GM$-aYvlSbD zW(3n&ixd!}_ZZnTXBwtR(DkcYsU_WoBOWUEKU8kt6E?7-7=u*{C52wG)$GZ7 zj3WzV4#KCVP(r-JkNLnwVC^#e~)axYx#QoU>7-a;Y6#P}$5YT-* z!{+#_QK!iq+f-&EHCpleKBU8Qvcw(6{a~pq-kPjGuXlCP^UF*Ytd6MZb3RJAkub%R z!%cOobn>%S(B-@6ZAvfdhJ|S`2RRH2VPZL3e+ozoKkN&zV@ZNl#HWkIydjihPz!RK zDJY#0-r;addywI=S_yhPP+l|blb?_EY;am>ufDa4PaI<58;)4ESYXA+^52FW#E-ghqqh0-ERf?iiu8#<-`p6> z^mMRo)dwj^{y49r=$fN5&EK$B!-my@$^ENc%Iyn3^l~4^`nL4;8R{^%?l|~@z{GLk z5QAWMW%bY*Q#HDZG3~bjX}$*C>1Y^p7(Rl0c|dNnA0*O@I=V9XO5pp+g%ByeeNbm8 z9f#L7e~q^e9TpVt=)#GCQ^zM*N`Y>8eN%~Y+fL`t1BFu&%w@jvZrqFJarN%ADH4lX z^$~_x(|nt{`@<9yiZPF7Z;t;l4}OhyXXl>Pyh%h1ou~WVyYI)M7Dt;s8GDgUUu+J9 zir6z3#NVtLeNYqdimMJSNAhJ?_^oB0SZd)(1g}TIG8T$2Z~RU%;1(KtF=+ODB<&Co z8(SiwS;RD|F5$AGx_lJ(?7Nq7Zs`TQ10A9R6#I1WG0k(4n+>{RfB6??3%F<3oOB<| z8n#RA&Rfl<5eDjqU81M~tD9z2k_v4trt$|DJufhi)5Ih}-WIkS)`R<6ijx5_P7`WDlqR?2ca&*5rG4HuplL$)7G@dI)EK9Ub~d}&re8LA zgw50%Eb%wFGUV~paBQ+(U_G_e;PcKW20u>2EH44yzjMWB6TP_4-xT10kWeNuPx}SP z-5ckv&wO+B5QvOuQAA#y-L3;PW+y+EHcMc0i2B^`)E6oM_0@1zFQm-r?i}$5kY-J# zsG7f~FDKHQUQU+3GT(~Q{titNr1csQHY_dpyd5qD?(ezckcO`t!0*F-9+kT3fT0pl z1+Rxw3MvBKBzbwNoxy!$lChS=5m=9k(4tK2cxYT3q-4RRjtw+#zj=5O3y zP%o|o5~@_Wj+V4Q!awZp=M448HQD-MV9R*T3WW*%_ba>m)bR%VhObAMCvFf{vB>DekJ2})!UpfyH2cD2~S9%D7|H!e_KpX zk|@7x&+H=Nb%^Vxbn&opsVhITuHhKvCuG0(FCU?dWo~1u8O&Jmj^uY0)DSJ03kKLW z<+9v^In;Y6=^9`)`&J2r;vMa2QBbr;`H!*$4+2{WMJd(q$T{5EJw>5a(@3R@LYZYc zhvmD9_u5Nlu8A)l=`}TotS9C?sx&}1mIT%Y=UHn!)V8cs3Q0|7-%cYR)CHoWXLt2Q zhIY9bgo(kqCNlG}3|xO^cGegUaa431IHD3hwwtP+v=AgdxX6q zI{(>zqf`*>DMXf;10fn2zqaWFZ5UNy?U7F;t%M(0hxwRCA^Z9%R-NY%+Zxp#b1mfI zo)6Irn{4Z406$uB8?h%(wbiVKSmsFL%*2nLXKG%zTzcN>lyLVO=W4N7uS3n&-MAdX za|ZEjTynfWLX3DBw0*TSIWVy&k?P!VT{5*?7D&9YrgGfEKLTc~DQrC45`ta@T>$l} zpk#!=2T711w{uo9LA=5Kzs@H|CsEDGcF#|%jC-lK3=>9?vdQr6Sex#FGJQV|rrztX!l3?mK`nF8OpcP73@))f8SweeK* z}7{`V5(MubUs)_ zV6KaBL~Z)O^}?H_cEiZ4*G}RIxx2>fmlpY+Jxh=ze15W`v3H|mcDqCPL3${oKd&2I zCqUM4zZiqCg?y^)Fi@&l8SA>I04?ygp5`rvWn%`4yUs{`v%Nf4vwUVe(pxswP(HP(rQPB{hz%)*&b{Z&6K^*dwV`)M%}S(h8+!j5d-QQG2#x zA3=*_ltat0MGwBvqS({bO6i%2*5rtz$S475uL*Z0MO+C01*HH z@DSsM@|HvS_{d}ZeO%l^1Nu1EJ;s0J=+&obFR7~z*6hwf z^1)qh6sG`d1s!fNFSFVAy?Rg7S%UA4Uctn3e5Uh>-v}DO+JRE^s*>IaJ}*zM#Gsa> zw_c&N$2dnLv~Ek!gne5y(#wgLxtI6l1ienVUOQBGhPF!x_DqO$+%8hwjT77at=aw= z*FGK7Xp42@nY^c22d?cVQ>-d70_AjPLu*$Pj-|FAcQ_{TBW{JrmL(Z zxMUg#%QU9mjl9i)9J;b*r{A4adVH)@xYTw2Rzs+gHT)XMeWf^|vz%NU;e1{=+*TlG z_ea6ynRBy2WPP&?O_?z!$i&6+NDZm*BIh@;ef;JYqbuX zn0{N?N=83vTxrt{E!{*9@9b^EOw_WwT-cM(rNZi&K-E%R(mSE@(zv+4kz_Ai|&Yi$9_=k z6W1@_{!oUMPT^NMwf44n0Hwu7-Z`BT!=h& zT)DmO{n++2QH578+am&q@L@(JJAN5Lf*QW13SA6?4uK>GH~ly6I6iGzGb?|dabKn| z(!}ZnHWn(!8^hdK`FXW_;#Hc5w^)5h3n5soojp#n9z? z5CGQiUfm*wu~sa+*@8Y|`;*d0<3ql?<(pi>8g&%=y|`DvC*(>9hA`THL9+QSaPq+mL@n@NPKRx#!Mdy#+Xhl0FU0N7sTzXGEulAm5UvagsxjoGu3@{=HXA*(j!Es3mMj57e|6!r}u|e zr3Y+*`>zwLkpzzFOG`I(=XtV~5FE!S*On}n0|}_J!BINj*E50Mz{URjDB7pi1FMgj z{LW90CJ$EyQiElIF1BE@-hhgRQxEn-hfOb+(O&pu-TJ%vu6r`%1J8;v{we+o3(4At zxfy79m$v#s35n12A|7g)M8V{R5aKv0h53cDdC#r5Eskc~1NuKNxhoHtES#_a|mM zcCs*!7dvE%rMX_~oLBO&2bA_yBD`Lk0R?W#J&DSc#sk_Eb%~cF;DO-3>4dW=w6VgM z1wRj+lTCq$(&@{-n3(iARWcs4c0u<0b92j?07=Lr_k$|ruyCtG(~%))R}fatEGAyC z_FxpAm(r-Ir!U0qF+x+F*XgHD>;V&P*)1|l=A7S+wrKGfy~+$BOmQ;XM>n9|P|*jh zIgfxth@Jdn=}CU`qzF&BcIeMHk{=`qFCm$qryLCqeq?O5(1WF4@;?~+*;iz*z&pff zN~~cRQ$cu=!r5^t3zX->Bbcp26IZ+RX(Vs*y=O*}afza-R}aoWmb1N@gcKP>lNP83VXyxH>eZzxiL7k85M8%DYgeA{f#lLRJ(k|Yyx#d3p6%l%XW$-giRC9v`vjrL&|$Gi)sJsa2R9nt zAH$<+u4XFSfJp5NcY9?yEYg}(I+iowxnjUSVb{WKNo}V|kyP#3Q-o~3C4z}r2l&6; h{!8!wO*GTL_`jyNM1WZT9Wwpu-CvygbrS%9e*hz&^c4UA diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/break-all.sol-0.4.8-compact.zip deleted file mode 100644 index 676dd30cbecdeaa677f25fe2ab864e1b6d054710..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2105 zcmai$c|6mP1I9lyN4X<4zPXQ>=9oL@LWh}_Bli`_HTM@~7`e(-awgewMv9noCCA)H z_G2^GmfWtfP+{&gRj zf2Weu`j~#D=h_m-{L@tOebu?27rMP?tGp0A0c)=xSmBLVjNq%@w1q-M)1yo12(Zz^ zGuZK%PXRR9q=}^f+cB7&$EaPI`<>Kzg$gAPF&5$;QQ4F#@9B`VZ$)8bW!bVyFEL2%%V|M z?PAI1FUhsZA*_53H`YIJkjF@D;j(pdn9GiGyzb><&Beo^)6P1OR81jMO8&F-gW(}L z1`HXc%+le($hvvcok?mJVuf!@XQXW0<26vP=sjE790Z9#rXBw1u{pNItZeU7+6fVZ zezgo9r%8i`ElHWvri=8#{gM|=Ch+XHB9_bPJiM`)ZIDk=qsugZ$tsQ4?V@fO&p|yyBCDeU)-;Docqa%`# zGvg!DO58r+r7*tdtNlLIrFQ!~R^HUeX3d;jV)14+Sq}~gy;YDsSHt?zKy$BU?}l9X z@yo>#D=Dsz&#ZdSk;QB2O|ZX33s_HU?$S{t6V7>M*T}^vP|-?=me7BsDi~n)2JHs} z%2+5hF8O|(Xi0@mQQwb&BFDSfHRNGSYz&G&+Sm)7$a1j7K}|l>n17VMC8_;YdTdyM z$E^QQuRF-Hr~RDy66nG{2q?`aqX5m80&s+)@HsR_|}pV-CI->cMl8X-Su&oi1wtli0QHeK~i zi;E>~F2|tGnaCuYo^laWf5wRKWNep67x5)NGGFwfU6DlGd1fK+e z-T!jr$!{8nroARz0138kX-OT16T4iTcQ-7d)A%P06L6`@%>PNiSLpPmU)^lU0D}_GGo6I^(-5+4MnYP;}-cDV0arB3|Znz|=iD;ZkFKSj3!BoC*GH;O=1$xV$uz}>Cp)AM=}ZSr4!D)ko%SeI?$P3~b^F3~ zQ1EgLDz_dAP15L2XUY^SP=^vbSDjF?+XIa64K*;;Ro7wH`tK(f@iQS^S;3>r5r1E) zC;9*W9Q-a}5N=7}eIhRn^7QVcI$vr)Ax;+bCfd7#2UX_3rnx*Ag=-8mKT-Nt>#O%M zQ6dTUfi0d5$2nckenQDvd5X#;!7-tl>7;B#Ly5n!M$Zi~fn8D`r!Yf0T049X_Wf9P zDF@T9i=qmQsx?&Y`!*5S9QD4uNgw$9Z7F&8{vs{*Iact&o#le@U0Fcr^Twvc!p@Cq z>r$_hOrBXCcKMl%lc!Vyl!&E_{PK!?uZxL zxJi;1YlT^hbzMxU#p^Y^LYl;qT8GQddBQT2N>2r2*hy8r$?;WVmWGx6GrySQ1Wo;z zTuMuKXgc*L1iJ>vV1b_gnk}{;al!>iuw23bDedi+I<@ed%rc##zth z!vyi?z`aw*%E2_RxB0>!tR}NLYq$l5f6IG3G?R`m!W$izf7Lr5-l=)w<$5ODIwrg} zhX`x4FsQ`1i`R9oEr?N$4suK(>47^Grov;yToHU%EMe0}FJTQD>LyvBS^&y$nB?~Yik&a+RQ(dvY4*@+5G!n#O2>#zx{{!~_ c3J3Z({x9RvNH+F=i=aQg{wK%(90UOP2c01GO8@`> diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/break-all.sol-0.4.9-compact.zip deleted file mode 100644 index fa0f3bcd6e01343679fce8da4b86dd889731c21c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2020 zcmajgc|6mN0|)RgnrX7q+?m`W$8wBv&Mn6rvpI6-Ol?d;$uU=rr<{3Eh+MfMBloQq zQ<7s{@`z?RmOPeY{d#`?Kd_84wa09jG2g#9ujl2n2WmKq3GbW@H3w?Q2Dp zPthp)0wp6?LKXU?QnQ>TjFg)AyL6r~hOR$qcjNiQ5+Egx_qi%wTJrvyG0|3r{>HW~ z46cD-IP+GcHcQ}zBJv37%*UUq!yzB)f=~ii7>&1F%FLEcG{1(-E*7KO?^-l1bho8B z>T1O-L-CeQnKR+2*J_FZlWvdvg2{`mvekBXAI=jFd@L&Xtp6}f!8t4k+03PeAVv|0 z*I(#mQ-tUV3(g_BZ?1HXR^lgaay)BQe{Re8xRq?G5q)6=YZ2@@dO9KbJBLhv2|ZiF zye%0}E;Qq6s*P*iz**e+emml2L)bPnmnK3&0!u~DUkEzu`4*E9`=i1y?i#8s9ndtRfA$Y*|ZnrY{f zP|s8l$LLMgU?jVpq&}VMp-p!byC7@%?E5XQ5vo_{+S?VG&{F*)Mq>}V!Pp||0HKCB zsXhCHPmlaS}c;Pu%k2CnB7h0cR9X_h+Rz!uivvA^qfvZ5B|o*N79&8u zl_j{J;50L-`5kfX6knxBJ>U2tO5%XJmr(oHk|K>5`wJInF$Zs*kl&+jtWhR%6AYq) zY4A(L^RnQx8jClj2U{Jp!uOifAqE&ty=T|DaGbO=CEurF_mn`2YBet&J4LBV7Vm8P ztKN}H(Vc^$BXhv;{EP}eKYG9-L~{;b_erT6&o*aMZgFJ&A!pnivMTz}4b&4#vvr1J z%Qx31SWPoy$4Pn@VuU(^@`;1>o$XY39v}B!-t?kiQ+nI+7pw?`IPxJCf1>BmDWs#n zHb$GXzp#C}AHsgK?@5-INh7Z5c06Lrl~<~E8i(bt+m(r@%E+)vL?ii6F7ci(c`dFZ z-+JG-YoDqj!TAV13=KrQK^{ zgX|EWs~`l9MXf$l@733tC^lPh3%d{Zygvxn9cK_Vx#&3)U~gD(v%(G}`;ditbD~_; zs@LH(oLu4$tD86c$7h-Q&WF=K_?}5Fcq4B5r%I0KlEB@)nCoA9=xS=OGMje!cA`Cp z*|YrYE@HCrDc&)q$jx5PqyR${ziyo=+%1Bb*#k-Ev6J2F3Fq&Zp9qs*NhKoX;%ZF8 zNhD{N)W>;Wmeht{8FB}oW=H}vlc+*VP>qhjrb8M`PlTaTMQ4EojyN{2gP2y;{$z&W zT4^#|sjn?t_!ibH`Y5ic#cDeV_JjY(XSut>4amxZD$ndKYw%@LF{xZ1*tW7=c94@h zdbGteS7*DgWIS#|varVV@K$|Vzh9O-1ktkv2F%?nMl89yGwFF)t#$`OFA`I0# z1(Rj4RGq&X3j@*LT&T03&nep(ewNJN$mkWD#s*TF_DD=$kr5}gEBT@+KfoP5PkN&? z`9PDYXTp^o&1*B)H$vNr4s1@w8>Q{cIWtrTa?PK&klbf;2sJ`j$hz*>``uh&giW5? zIevTH&Ch6y7GBixh@&H$RYT@k57ylh0M*k2Ti%M!j7wqUQycKqCkr>HarzmJ`e6UJ zmJ?``dIMY(*-GGDVIe&-G>E2kwRIxaY`DCy!b%YkW!2);X*5GKt*?isgJe-skvTMyjZ&mw@6U(lHsmymvU zh=QdVe-3(ZWxe4RA^bAZR?F}sA}G9nd??+$`0Qipb3Um)MWoFU%sUG0iU>(Bjw_k# zNS)e&$GlhNvpU<%HpvkgbkT$b&o2(^XRSu%Xi_(P%;bGhHN2DJv=Xv1on^fzRIYe$ zxl_@j@4V-;K2y0a1^IK-{`aI#QF<}5^ZJlqH9*vfcelm__wp3r$_yI5=4;GuSXR21 zAP8m+Zw=qQf5&U&FuISXB>&oYP|*AMD6{rSzCcb~m^_3w@E2@rW2Qw}L2uC=6yJn( zEw(;D70FJy!mBBy9r=(jp8cy!OyNMgq`?)l4ZQ(UyzbnCIUC{%!F8lgRbY{3pkbwjkbrj$FTs{=EsmEeC-A0iY$g^Z)<= diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.0-compact.zip deleted file mode 100644 index 5a75455886b1fb96650e6c6fa2d4fecbaf6bbde5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1383 zcmb7^X*|;n0LTAxMa=cdW63dj7G;R(aindMBU6^E(lT>T%dxq(YL*BMC1^E`UqKQEr&@5T4?d+~ew#bU%IP=FX94+MvYxiRDKXqHO= zK#~dozySd8C6Gw?h){eKflMU$ko*mHw;?5zg!hjL3nfS331r_OVwAsOFeNlZMnV#} z3;+xOIFXbTh}cGiKN)^gdmQ|*GlU3h)l5irQA6rh$Tl9Untge#m~%m#zXHC+=x=pD zbYcy~SBjlA>!b z?945of_gycvDRSN5I5C4#)PzZ*DKVOgw$Bu^y89xk9c_&`favzqqnQl~R zD1NI1y{x{o0N^}C>1^97U%z>awiyVxS1niF>Bb-En9I>s?+u-rbMh&QcfLVouTG6u zeBs}=%h(Vm&y0E}AF$|J;M3KodW;g{v~VsoAPVZT8m7t=7Q4L~y;*Zj?u1IG_F4AF zq_XhIiDU;`P+To<|HcndGmEI%rW&52S3NXNdvuA0Ezp~M80-1;!FT8iMpcJ-?RZLC z7h?VS8d-XA?Mz<)4>91Rb&m*oos(Cyp=4_3-hqQsTIF>!&#i^6UGGVuYA4Ipu_yW| zCCjBz6o1a5Y!F4DeG>J{ka0enI>YP2!1_uDnvIZK%VmwJ7Aqrsi2D48S&)TU^U7Af zf1#u9uiP&;v^TZQ7XqdSj;1O2@+BuHFBy$kE5T9wwjAePApz#sA9R1jF~8`8AH90@ zan4-(q&lUJaeBrp8|GxbK$Ss3L-;w^nD0a5IssNE&B|&LZHlBm)q~-YlJ)zCE zul}J7jnGx|vhrmT+RE&Ff5vk!p2)r_2Y29cA*Oz95_MjoE0yi8-xK%&9Kq3O7}K%E$Aml;<(K= z`mDlxSzW(f;rYk2rdZ(aYQO(@fQ? z&%%guwCMq+DVNfIFvbV+H_bQ;vB`2Dr%mX>KfSz-!Mr{~0awk@^Ikm_14ff1<(4cMID6P%8$oDaECwWo68~@U?Yi&ZFhD=? We>8~2NJ{@v(b4V!!oVsccfM}UJ{#HmCYjc zwR&nt@cb5Y-#jiy2sd3zLaL?FUq_wZ(RLS=`mPfe4o~r+qlP(`xsDJNoE6-Mcpbi6 zSjHC(J)Xwm<*DKs*W^)y4Z6|zrst6eU%_ssX&xrFCZ<2-ORNvrzD}L3mc$f}v__LA z7$@g={2I{|O!E&gTBq`IQy@a)F4qGUJe26UwL3bK77!76KhZj#)v)LFad)?pyNs(N z$jx~x-;`Zrj(-_ANHMIl%;E4@ZB#^(bzS|hKj1@!hy9Dp>4S*PVcBxk=kye=eNk1Z z-*%E#q6=dc7OZ14GoD*%jTcj9P*4Q&dem*{hk>c*5O*AZCI@6pqT2N-{-N}?NoL-m zbXL{Lb9Ws%2F*QiX0*<`XCfhTv7Ao*W$@vC24dUI-YMWo;AXUwC0t*&a0ZCJ zaeT!g<3&|9_njn3xCO%dP4d-Err!!rot|9~i$Ae}w_yktv4iVE{dN%?6r8?Rplh;O zn|e!jJ4`*iTq{&;UOqaYs!r33Go;K>aN@E?|EvMr2r+smeK2lISMbOyBjo5hw*lo$5 zFqJA29vhhsoM}Aw>sYr=B9Sv(l;ySJ-gl!4ibr9kX$v_{Id-l$YEw%*pz7D{x;u!8&DhymC!C?z`MjmAERh@qyp6+x7w-k_IQC?x-pIpRmuoJy&0^RT z4h2ISbXM{SmPa^2{4@v5jxC9cJf(_H$hx zW=C*MR%jiA5CoKO#yzevENx8DeS1QOesS!=%;&2i9YBVn)WpC;u9WkLiCl=AAiX$m z<&x?TNk)bA8{Y0Pqi`la4C@ diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.10-compact.zip deleted file mode 100644 index 637d5848c6c5660c12a9c9d12c8b8d975c37fe2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1520 zcmb7^X*|;n0LTBvoR4dYNYjDjm}PVzQdpU*T4Br@7R$zL&ZKB$xjv4Z<%sN2=E#{a zQF4SHxn^=E!?N^<59N6DynkLizu$}R=lA0G_Unie7BL4vfDGUpKtbbdwLkuRsZqoeyBt*af762jv z;0%M|jo3s4Jo(sHXCnQ$-H)iz0*y($tYUVwLaNc|#loBL;(BM{$?wwi$exy~n!dB{ z^Nilw0*9~bs4VXiN%Zz8awubKUa2RE%9Ed5*fR=`4H~eLxvbyl)#LE~rr=@z!t!wK zlm`itCUQ3(a(S@&s6N}12WFM8S9o5TwD-h1V+R9y!NPSAE2t53#9W=RQLUg)$%~e~ z9-^~E|9h2@NQMS%De8SxYA)9mGbuNLmLG3D;-yJ&ONJ-dsQoIA9n*uKdoaX6T|vqqnI8J$^v2B4yv)6A4!FEeYQPasyYSfgzBv%!YBLJ_y%Fcibs zXsoNIyHtI9CG;sIMRR)T*e4_+Zv>@==|`}uDT|beRoR5`dpT9lTYJ$SEAq_f1Pz8N z*-7@EtgNKjH?f|5GMFyOhO*h(G})U}ndxb!kp1z5pE;kNratN{Cc_nQXVbS*%A$pD``lpRF@!0yAfV(S%0wa0>#_gJQ?3&BFvg}Hhk+jX^_Jf zW?~AyY~nMk1T=ZM3H{loB;6^gmFimnn<)x>Kjw;tGiP^pC`a@J}id?7~ zF+kq%GyVfT>0~}avMwz}` zM^6M9xf4VKwL8h-1x%Ie4`4;TFP`bkz=-z{mHp>}BM!bwz zmDCu{!0yZbYY$I)wqP`V39peW)gx}eVR5_GV_{s{wd^(jh{}WN#F&#S@MQJI&-WA& zGBxpQ{m|Y!kx_IORj|D_xJm@VZlBflE81^GYP+?dj)aSa8$#o3Ju-Yc%g&}4`V$Aae zEIB!T4llu7x}#j6EI7Z;hNq6EY_)TIh?!<6VJ?S!sq#ZNb@8oBVAm>jc=Jk}HEhn_ z_X*80cyQzWDFHu_GL2a@6`t3sKVTcP7TPq@ULO=G1xmiOmfwRJtl}=oyK4_Ehm_h~ z{T7|ur_+$h4~<75`IwV0tav=V^%>VB=9lHE{zGSrP4=C*{3k zCxG@hWp^1=<|^z|(tq$AQ9>Yd;r}-9u7v+hq|k5tA0IoSz@ooDLc7K6GIH1J0Pqjd C)63)l diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.11-compact.zip deleted file mode 100644 index 2e32c3081c69d8a8bfc09d1cd039876eb02eedae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1557 zcmb7^TRhVX0LT9`vdlQ{qC#Y}P)IJhS1xm1h`Ae0wrnvv(TQ>y%0@(U*`hfl*A}ys z8fpnAaV)x^VlHW}Nx2=J_w#UmzlZPV_walDdLY4~)_@2g1>nvTy@sXFBmBhxU{x6a z4gvsx3B}`sNrd3|(3rEKVfYBW?X4e6zz0YCP9(&Tfl$c4G(P{bNL*%%D6H+LH*6<$p?kHhCV|t$7 zG!}-J%@a+!CX4!;1veb*nw)dOBA<{-L$Ery*qjF8P+tZt?ls}<@<#DJl7GNyJvI4U zz75xo+Dbosln9j$$wVf(shDxDn12}Rq1JJ(0;;QAj!0OHOP!5#OP|6zhCIM%Z)03d zry5Z4eyJV01#KGOk4`kBI9k>X6lADaq&SmlXege&VxQ`~V8a&Ql_o7r(6C~O9fHHH zt}WeAuyXH6a&1T7$ngfxwFa8hSDx9^*S-XC>}#8CHC9D*DozR%qY15I!~5M#Xc2~O zTunljjNFTmzX-aEtZew`O;eu`NCyr^{k$1D$`}9c?jwZSTBuW}&_S3210Bb% ztqr%eJu>STLx3;U&VrG&6)YGB?z({cVuN`-NT#oP{P z^Yqq;-;dxp!k&9>F6Mp3wZ<)v#Vi9f*?C~i&zRCj9c8X2E_^rHp%3Am=_uB~yEaux z^6dm>ZPpvh;qfl;YH5~L?cO z(_MtWl$hW~(qRpiJ{Rh4YORe(v;?rkz|Emw#=5NE9NKL0Ii&wSq#1TfsQ~?y1Jcal%)G=9v>FhPbP5 zAdpGZp+eP0g56il8_?{iFXN9t%ltv9nH8oD=lT((`JpwUQ$=1n&u?+Y`j(mRLXL_c99bhBXT7*UEjQaI z?&lj-uZMoF6|YC%y+G?*c;INR-L5+>Q!+$ZYKW4(r_^Cq4M>)J3-9fGrLev$a|IG? zyP5j> zvTt*>o0Mo{O%d4Li}H1c8^>45eObBM6FYd7**`0p6xCP;{J3ohk&C?pN=Y$2@E+}V z%M$+dYs%^CcwM37V4Ez%c`{K?xk(Pm+LXMUWy26W6I})w&QxnR0eHD}sm-mQ+90|I m5+q^`{%=ihoBH1*gMQ)vNZSJ`w&T|av|aQzE4Jki0RI5Spwb@z diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.12-compact.zip index d32066c37ec37a2d3bce9389514824e02a367434..3b1c8f6ce5cb9a4dfae1531829620165ca44cb21 100644 GIT binary patch delta 1714 zcmV;j22J_x4ZRK+P)h>@KL7#%4gl)4WLBPr#nyuc002lHkr-BgAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH2Amk`XY`#!$;q4~D-c<=3#VF<{MYE5 zHLDVB{Q&@%+=Y{yJo||nF+43@MjUC*}fy` z%~vj}aX1BgztJ*(&;FSNAWBn8;3&mp{#t--_TYzrsyUYnO)boBUj@N(F3V+*G>6JY5OimB_1{c_mLeUKv z^Y--;oTlS{@maN{0)@;(MXcFi5kSHa!t@=dVK|~8?VI&a&?l(5_E|DL;QN2ZuqVLD z>_6=z?S~D0EWHk~1UH*36BQrQ-x?nTr8C4A)A6`K?YmdrxhwNN?9n7;@C#HzY*Tdw z4mFQ>hdx7;Z!2Nyd&H#>Z>PX7!Rxw{rYbT|ER|Y+#xqWpq1)Wl)U@kYRky(P`H~{n zVc8+o!4CYXm(hM4uhsO*Zo{{3)dCy*<}(dg^m)*7o0RZEmvsojz>ci+x>}%WV5`g^eS2qykM8ZCZ|)g;Js-= zdkjZ^0WF*AhY>q@hf%STEPeZ3jDJ1Vc_VF^;l%1shvpA~3nMEwXd& zW(~44ITjudu2RVm2kCeJ9_5nc%rAgP2c3U6GG%#+e19y-Hsa!u&ChUGiiJQmI?|NW z4-Bvp_hecDb@d0e=>@fOypkLpTieEF%%kOh52tM$Wgm2`KnCS#m60LqMa)ivdw>Xj52qihI^GTD@-;7)}dB5hZkmgV*UQK*C9 zkbt67rM%)~&ta^b{xZT1vvNo=#hLq+j-c0g1=!+Sadv1 zAU~Xfx zSo7EJC?dKdm;9c>L&Bj1?afRNZsulxa=aL8V=XcUoeGgg{s$w=dr~AMu;#9Vy3|iY z#w%iNZOawxYY7+!RLAiiH@Sh%(^Dal&oX662A$hESmlh?pBW0ya-31HleTtM57DV? z_{{=K60-Z?5MDL$w=S$D5a;Zat_5aHRhW|Lcn2aYaG=+Hvc95kHJ}CPSOctMceW zI1J$+@h=T)lMRE8F}hb4vKCv1-j9=L2{{O)uM29-uX0eXf~)t7gI~H0=NAh?f|9So z8=>#Z@|RPK{J6*YRgsPh&O`ry1ST8+LJ-z-#dWzE70H=2?y1d%zi*`+69{5cf6K4! zvdT+1hr=tQ3KhKsa+P68g`p>4eoUKx$CIMCAn6E!@}!_?6&yGH7>45W4B&HM-aV$z z2S?Uv3X}$dV9$~v1|+g^giK^4j*neLu-FMVm`~P-oP{foKd$$^6EhAkOkQe-J`oW3K*VNGjldrYy2z2D8+ zvO3*DS>XoqX7o8f@Hg9c26=p!oq2a!v-1-sT|DmN z6+LG`7iVh;S3wg;6k{jdARt(7Kh}P$Ru#y_T;qoE`XjIxvQTzd!(^b delta 1633 zcmV-n2A=u74($yXP)h>@KL7#%4ghO$a8&b2PyaIp004Czkr-BgC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*+_jUyyN2jOiPvTXaZ+5w66H?( zdaA^|(;LQAvIO0KahU54!CY+=eQ6JQ$9s$qv=Zn!y|uQ*muxh zsuCDs{|awzSmW!aPV=cBIf_j-4%tz&J#FK|dOL(9jz(l7ge43pnulhF<)(Fjy5s>ab zH<3iwuXIE$TKX(+mBQ@cbA(h3=0r-pN>H@ezGUxzfDI8P7Lm|+DV&r#9cvcFfPMwP z>6Iv?N8N>nxLZVSflMvk-#o5wFl;A({CH>=963)FK^MbyiNVKD;^pwmfhB$k4hpCWpJdp=(JjDOR4UWHhpF1O)zy#*nC^x*7Y&}Z zGIkbTf_Mg6dmj4){zrC8OIe(kySh>6VZ@7n_4?+6EdQsB>SJ6;qkx;GPlmCwjz;vE zANxcplEcrof?Ly`wc=oM35>|%8>L!EPP@K=36Zw9%5?jZqapa=IxBuy2#xY3+HS$@qKW!>|IJPQS<0J# zz81I(HD~fAK~sQZI?DIT*!<+|{p`Loy=!tr5|!cmM|+9p0O+1MH1Rr=GQ{}d92e!E zEz{}hD?GKQT;TA%y104Q$V3d%TQl1^lGfY@U#QBzTXtW3#}I2Jy6%*L#vWGLi=ykE1fEwA@n0yn zPs!8aldKlknK{avL6JZ$66VXyFp5)ALy_^-(Ts|lCW>`#FHlHvt}jogZK1s$Ah`RzIDse)C`TN!FVs%@28DFt600MWOpPa2E;2wn0ZIOv9 z@E_z_)X;}Hq{kI^Tixke9QwLn*n4v05Q`TMHu-9#g;+nexnbS?O3^p=xt5j!e5Ah= zZRx_HVZe&4DQ;p$;P^v2_$x7g93YEr-~(vdfckkm2^PVJP(B}hJXzx&0U$Y)3dhtX zt~ol=|1vLXO=kM1isyg5JO5$!p-WfRpJw|d1}Bqc5%jhT+TQ|mcmuUAwTGSflsN)k z&xhK5m)Jf#^AzW=!BTQasC5GX(V@8*JD8O8dzy?U^0o*h$wwWdwK}kWfg&gnZp#{_ zY1?SJ;uOK5*J?L2bkhU9Kw1>SwJPXucjybt~wAA@Uo2fBVC-P321e$Psinb-`3@mn{s`X3!Z#5;XZjI8HFTQs?Iy-8@Z; zSH_)QX|#9eNX@6&HZYqt7ya*ia#bxCccic}ca)WWrD&7x%5(plVa;3=;=9x1@Jn4EY*+zJ1oAX(;%$;bVOrFj0N#ijxXSv3M zJ?PQlKFWPFIb$=lCVCLrqv!qe;`#kvd_TVzzqelm93)}`2m{hUKyZ+=%L=&gPZ0p9 zQ2+pa004Zv@OW$(0UO~J;_u~+_k$j6gHQq<>lYbB2noY_h4|d`kMJ`H2qgr9MMMEK z0K@`-bz&mUc+WUEf2gnStkl!?K!43fHBvH4>74c-k}plGxvkO9>fJ!I>rxM6dm686 z-CD#fC-&CnIj(KPGjSyn&ij*>M>D=HAMHsA;mFQ%k4(ZIg%4kpM*aBGx5u$NfJe>c z^2ciDyzz2RL}Dm%s1c?vD_`Gdjm|T#Z;(x*I_A0`cHubNe2sG)te6{-z@%Ra@GOAo zl6+JdFp*f#x=!2vtW{P6Q#{P+6382wFw)BZY3ah0HJ`$mb})KzSgU^-TwF&nW1%%n zF!^u#d1)@Do|<+}M3uEqMUEc@+7p(SXR@_In^EsE=?vw>_L#XUJu9C&+O}{rH%aQ0 z6+L_yY#sNAU#&{j*+VGzk+-eATZ_AP7ENmF+cJ~XZM$W!WSrbx2)#YPnAfn0C4{Gs zb7e2e)&`qnf@s!|F3HhadVbbN!vJ9&h$1>yJ;C_^vp_Ql#1ntMhDO^A`@}E zm7Y3@xzB;`q;lezT@%`@t*)LN<85>^DUEIB*`t>1)+DGZ%OB_;GobJ3 ziFMbpy(yof@TMXDbL2pO-QSE$VE2t~ZUW)T?yjyc1MIE1<|hPClD}S`>xC&sNMlNj!$j|o5(`c2|WnFhdkX~Jf~!;x<23b+70ZFTq+%K_= zbQp-P7p-W+A5_TSmnDxJjb|0Hqo*zg6(Y#w;~Swodsgd!i3=~+M7}QLT70Jx3i3gj zdFG+k#;}U!1#v^ZdSn2bY_u-@p{gKeq%y5_*UaOI86G%>JYgvIIj!=J)#;REn1aW| z$==8L!7atODwe&W0H&YwJ3+@h>{{kRdV8t}ot;ND-@guL?m%UNXltpB>{NAmuUJPW%c08>p|K9t?p?BF%;vo))d-E@qIk2Lj1<1= zro2VD&jx49H6kj8O>({!!Mis?^NpqoAR2QGLvO?)1y3;$jakYOO?C2kVKVW2J8cCK zr5@DJhzi_V;!UbKQ|ds%isNb7(sLztKzOzuWDEZV>hK)sj>@4C-v!;Mxk`1_n|7&| ztWXrsEgjqJ2EQ%vD3jPIQ#=o~A=db@_pToM{MBPhI{YKDyP2;0mUGDcVYz*Ali@Uc z1ZpF;!;eiU$yGnm({XQcsEhtZZOeYVCP&;(TMNlzTYQ;cwS16#QZ8&ZDK&3!cT4iT zrK=Qb|8Xw=qfPO-zh01(rpR$MvWud^CHC1f*8+4l-c6gjw_pUrp;H$Sa3NtE(0}{y eK!N`zR_Htaj|~xU(I38lgbwO{!2JWO0>D2||DJ^a diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.3-compact.zip deleted file mode 100644 index b6e561cc54d8b088bbb2118c19df3d97ff10e066..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1392 zcmb7^Ydq5n9LE2-%>6RW$H^tfJz~jlbRr@qGxw=RW@EA0nY%=U(3(RelG~`yP?qF= zDdd`1Zc9``9hVkkl-o=vy+1F`^L#$f^ZZ`?-hN#Wf@V0p#;EoVWFj?uNzKE750z`TJ48Z(%lqK={%8WHF^4_E0*4PUT~T#bvW`r$(r@ufZ4R1t_*-E<|YxN&=9w2h=(7vpW z*U#Wca@j)H(&XG&wFZ_krX5Sg9J9t2@ZWcwX=oYG1rN)eMCXymGc0kR96O@#eM7wz zKNW_dP=aqmpVd(Q*LN+oq7m+Pf;iVyR@dt3xijxAR?`?$NTVhh?V&}n@`g0icNaB| zAKW(Yo6rOee9R}170vVbPI}af$(l;&tJ(1!l28htEVj4p?@%F`i{4>Popj$sb>f&8 zUcKg?gHC3sKNR7Gn^?0Nt#4vyMYeW-T+fvUiIvYJEq%<5X96Jyi-*g%N-eYfL{VS) zr;00$gk!D}wh*X#MxllUuW2BF)Oaj0)s)Wm2TLK7laJ!kBUW_II*FldgFh-pz3%O^ zhj}S>9fX^<)z-Z=4jsc!I4ZwGK9}gb$7f3_XWC2(C)RFkG&pj6-Q4GnOkP1p;dx)GzPZ1QEIodft!9>LLxdT(t*FR`+U*YXisBp- zZ!Y0dOqk5?xXrvv-dTL!a;8DsGi|n!M7h)uXC)%8`fQdiEHnrH~>;*7Xfx$@`maKHR!Ousg?(&D z0lB`jAK|*|B=F>lR*idqvgIDFGhZ`-n~gXWN0QZE(L96r6=9z zJ`!;UGmJoRar+aWhvZVM%H(^vk=d}l=cL~C{!baVJo=!m{V>yD;VMm{C#4xp&WJvDZ9MZV;HagY{@Hz~`}Pa53TV)&NXtltB?B&+HaLZ`gyZ?jWef5zEHbSiVWb7 zCCRSj(C76w;pMX{mlGXJ@Ii*?%o2zgnV5BB3NyCweQ%`-X&U8s-#JbO|fl<>9U0jOo|CbK1qsSgNk}Lo|>VB*{X8^PoB=_l1_vC9WrP%p_(Q z!u{agE=|z8RetC(y%6%0N(GDPGexMPNDBVaOGWW~n8)14Z8Ph%qGy5L2yhp?u>-u4 zMq}%ih)@;Q#8138m1h4*q2yz+>1;PJ|BVvdsffKZsvYKl=KtXGCJI~-2Lvny|C@k6 cA^1xP2lng#@X!Sz4BG!W@YCr1A-o^|0ub(y_5c6? diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.4-compact.zip deleted file mode 100644 index 3164efafc9557abc8f32e2c3925c2c14acbb7093..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1391 zcmb7^X*|;n0LTBB`{*%Ot|Dfi$1xtMmbr$Nn`c=(Ifn@;H;H-XD(rD|*&fYqv!qe;`#kvd_TVzzqelxXAzJ!APmR>5i!x8_77t^86W_l zD*=EZ006<*$jE^BsDMOlY&bS35@&R*x2B(@I)LeA};ERBuEtS z0{{X5SmxwhJic>0recu&3?WPDx)Kg)JCdD`R_^bsc}SrGo8|QE)Aj{R1HEj1zkZCjoI@%3 z$h5|oQDI#CTj^sn%WoabzR)&Uh+6t0KFdJ}<7@NKDe>nCYX%>vOh=e+%19yw*Rx!f z8Ujxv24|p6Cnu~P$=&CM_}M5#pLAT_nCLmLWm>~YK>A}Ro7oHs1q2bp=X7oC+dggRdnmsXNzm-e9i64E_I)eSkMk@ z6N~Sk#aLd+?ep?4T?0zb92pA?l8OZ7aX@+Ih}u%4zCIIu@SThyb1Q4@ad~w;h@y zVmX29$O)mv@8BD$1CCoe;CpTgPHArN*>cA}ppTNAd`fM%r}{DWz0;1Z z^&|d%uFSgxheocd0GVff z(r13@BU=IHwB3o}aTFL9)7DG4YZp9kvq;tDma9$2@Vqehd;`-0sbcBc%&+WKLwXg} zzHG0KH0jbKLve+)jfn2?LlDek66LO!0;S$|m!I9jhb&0iJzZ^J{4on}cs*WE!u3(B zHYy1Q%u3geXVv@AQdUleSeALG^N{+uPY@HS$2B0%OzJ*gcpQM)9^16wnAIA!hHfk_ zYzb9@C@I;wC6IEXPoreoX&8L+}x4?F7_y*k8EqR}Y4kNF7 z^}>@By;gLql?((#q|=@4%yBDFywSOBLvO8i^E<<}2A$d}J-Ol|O!o9SqM|Rop@_=^ z*Bdq?i5|ltS%=7>R&_R(OYY~r8|@nBe`7boU_Oog%Q~%;Pz^}U?$c&=3bmUgR)dg( zv-ogc=!GKaHSKXf>#lx-{Lgt|AWa9Y-m>UK2|gD0yk)RwUHm-=_R}rtg`-7guc!X( z&Q~bN>qvkXQBo~;1X`UJpC_11zi#ji#waTja(`D-^E_XB{iDVv*j7V>N<_Ea{1p`v zq&Sx@-(K05@`J$ z>Sq_K%2Z@RGKPmD11@!lcdnxf)Y9=+ho}jU=MyqyMV<`pwt}H6tFUHcFeIWhD_E0n z!WW5!d?!H4^uI6bN{lvSv>Ddg2s=AhIBm4b;%i}2HWEa==J~zB_v#+bLc-P}|1H1+ e2mTv^&=33{9eOy6iv9Qq9rVHh_YbrR0RI4Rl#|r} diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.5-compact.zip deleted file mode 100644 index fa31d87316ef72d504257be5e1adfae1ff735bd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1397 zcmb7^YdF&j0LK5bi@9wk!dy!LOpkVIjx*ZkXtP|`F}AQT{_YbJSnyFHnK|4; z#0D*Tt)`E(RXK^a@wX}Uvaa9W;P^#fS5=2^gs-3kLghE6X;I^L2xpTn|6!*g+Im5y zP(0Z-??+e4ha_bwIZw2hyX>rZmu-(|qaW||Vbn}dICG=<132nUC)0xtO{B9amo$8I zFDaCU;Y)TIsbc}^9vX0-gg~XWPb3eFQGZ`Y`U%<`SmWx)JWxJ;vwVcn5oWifd1zx< z-ac}pahkg&Ef8_C6l2;Ge@+!#?W)fpmuLzr5Mo+y9FF58XZfJEhDC3!ahTp#?lUN2 zpY)*jzRTM%y`zt9$&1-?)9SRgdur$_)upoTty?dlXP9Q%t6hF>6q}H~P0n@XFc7rv znP%iwQQ|cuZuyIRsezhyX+OWKbB)Ko#X!t1xZi$YFU==zHh$@T4;!GeU$L|NKv;-$ zE-KzkU@esxq*M%?Og#msCzaJNPXv>Vx{4dlhA7k+~bw2f{2( z;Iw#$6h_bxRg-sf*Y(F42G4M^QS#h#ng09zx91xxuGlm>3xxmtAW-r)h(<2*dqY||j zjHqGc)2x?2okb(kQB_L@&bkveK}C4`S*HTl*5d)rM7X6+W@i2(VO|`qpy)m3i|Z(=EnxRx$1DH3A5M>Hl4j!;nh4JYn=Qytc`(8?9~Q0DaN`fBdl5c zjHdjc=NgdQmsxPt+2Ni`Gu@wsEtrKZk`|%pu3^~bCzwY0B+VRq@dh{L!Wju6ZGtle`YS%ke6U`aq#A)!yh)vXquWD zErXUl5opV-+QOTWlTR2;R#`dcMiLf&Jk_7A)M6YFPfVDRGS#R@>Muk$UazSqtPA3h zhMpnOH@;nPyh^CNBMQ7Ns;T8xXB^N~Bg>S=w*AmLk;H_xr<&FM_GeNai0>wn<%Qyt z)yegWnIAV@z)uSEF{?MRDGj*zl+DRkT;8Co8E{`~joWE8{M^jNRv@um849Gx%ssYG z?Y2p8D+(1T>=fxVpV=1cstiCsIRy|kz$U93>L`Mw(#+OkKpm2&Tp%O8l5xW#RpM}CVJrw;l;c`cZWP1_qwnU4{b%JR?X zT~tJOVhc f-x}OE;lE*mzR&-WA^{JDegA;=dvSlE(C_pQ3gm(X diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.6-compact.zip deleted file mode 100644 index 623ce5779b3c69944fd523670c500b5ea2640ea9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1397 zcmb7^Ydq5n0EYj}Z48H%m?ilUxt$$`QmGE9P)rkYzctp_#U+=SpKD=Ka8%vPTX+RK=0VO4J!taa$vb7!II`CCM0SSEJpL8ywf! zgb%g(*1UDghnNy^^v=ln!OWkt2fFT&{+5~G?i)eG2lty{-&2JdhUnoy(*@vIk#>q66J9GN1G+X}xU$=lGKqz2 z$dTxDHKKfqMP5ag^&C@{CJws=ibA@lN{!TFm*%@t%b(i$P^`c)gttvp5+S z5t17vUys}kDhu-*^B#j#!MZsfi5@ zZ*e@>!bj*T4a8;NK4xVU;!38&?zqk%%Zt{?PAd&Atni%%=hdO$nkDJHf{#u|t&WY( z!}85lq`ha0O`T%34Z*~ESb27{sN}vsi$=4$Az?Gj2F|83%+9_e&sNSYWalv}`Ap(f zwzl9OSzF9-uIdzw(~0WkhriSwh>(uglJc>R&E3pzBQ!p}gn4G*?ua_nw;N(gEp$U- zz`VeWwH_;OJSxSApF4cdd5HHp>z3nk7sX7Vx;MiAhtdb4ef|V7BV@W!%s_sNsMrC04nWlNulG(YxrdEhm#4c~UUvF8IRK=vW2G9`hSx z=sxYy8zI`&fmDG{;%^s7naN;m;vog>HMzJb&(e1yE@vqtWiij!%}?wQX{fa+1k3!M zHCnITWk4p$MUc2QmoRU)m5)Hfzg5L=nN(L?g18-|4G+%+v9NJI^~PU1*7@`TsiE3K zox&ldvdL#Q#T6$A{DGYP3`${1J42uCOcOFKNAo1PW2)-ljwkYU4oHF)TU0|hvC>=E zo-ue4IaIAtg|vS^3Gua#;~HZMyeWkdgbcE}CIaNXQXZpe#&SS8ZY3v(yo4ZD7r*MR zG)sU`*H4ygv?0?T`7XgSZc;a%cj_OPm{Yj}!LNJ|h^)N=KitBhbFPzxnjUQ%FCR$+ zGYPFdLpE&}Zo(-n)<|W$ z*R=Syx8QbyLUupx+hByAyJy;sl@|4?XGbr<0U+-q8_)vDw|YuK$%gr4@cpJjGeY%B!? jPlNtjgL@|YH&lUN^M9mhV<{~1>m#t&YkMm!{EPkph?AQR diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.7-compact.zip deleted file mode 100644 index c0e4d2077435d22c755f62f7a87a1ce11473bfd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1538 zcmb7^X*|;n0LTAqh;j~dD@Pi|6-y@%{W>{N8@iE+8-h5C)`x(8vhS-G85DI*9-P9|{15 z000Ew2n4?iM89YpDFo+Fz#DCE7@0`$!(WOZk}mk+NCCki(Rf%WnRs3tECQSbfH(kv zCnpCT{BL_)kyn4V&5iOmCgVUSfGv%-tY`kTPXKgV-Lj?HpiPYRE9+(E3(=%Q(TCzD}qk^=$9x`iHcY5W^E#ZX;+h}T}9Qb2JNyqr>4f8zGFewXmt|) zTF)i&G+0@5g2K^@+69x&nL;@69zA1=>>DLOeq27LhyReHQ)8#Osu<06*J7j&!g=DX zH(zEo*L7yhA{9*Wh4iiVC@DB{lcz)-llLR-@bcU!yhuC`M=)RVm*KJF_!bjZXUAP{tv2g*m1&)jR zFO8;@eOfm5;3h5Y2vfa$cfDqd7yyGUw-G(=T^BbVeuOZpB*;e*e zHQE?S{((Lki85ckA4gpY{9@rL^XYUlNIiA=@GYo>C)f(fa24hZ)2|2-|+mW zGqt%!g(B1ajWJ#oLh?42-wW)Uv4CpIGUI4kQBPB^hAWcuBR*r~`;q86jSMYn?RD33 z<7YlfVx$iM10G`rN}|$#Wy{g~fJl&H3Ay6Nqvzldkb_BZ1$wN${|TK&`^d=Ry#-1@?ogdN zWpDwDGqg(Z?!Hqu5oUK&Bypeiflv%TCc@P6r;77hg&nix26c7);3L(7(7LxGp&wS3xl<+|_RhE&vH|bZ(;8gn_Ko14wH4)iiYvY= zfSQ2LAU<4QgFLLB_Exjx5ABI}c^9g8-ybe&=({lB=^Ao|0WyzpyI2E#gvKU45nsBc z%6hpXmq_xV59;<`6pU-JVAmxg(thD>D@eQoblssu>jrEOv<2ENCtsbLoLv;drrbMc zimZZIb6G|!V2(a@p~@U&pPvQsWrwXNT;&+a>)Q^ou(cA*&3I5ulxJly}3e)9F_ zBL?6lEo`buMW-vRCs;3ut17ygV?e4!VRH<=?n*($JgM(LRefdRRAjlJ%4{i1+R1GE z@jXj_TJ)bZ>^A{>%m5>unNC+qJpCM2LwQqa)Ot*kshe#{?*u8>h%SS{lCq5wD%TxW zkUZJw488)#YdqqudxBt)aBM(-9TD4HmBM|N&=QynGZV3)>4wMGC)GpZbc@TSM_TKe zSg6^TRpSk9!`$I_Oe`#hCM7);Secyx3qIshANxU-F7a9F?Kt5LYU02hcb-@hVYlaSi&c^n{DAw$O+mR8U#zv{w3q$)n$*!hzw|(@Q4c((-xTL1(2=6sN65(~GHNT4;q#-%u=M!91p}v}e z=${&sZbkSK)EVih0h8Q9m!oQvqgmvkQF|q;B3J$ox# z=c}(O>zS^~FQR7V23jLSM3!wHJJr7*7hAd}S%XhWw-}t2t-VN;9hR>nPpAvZqK-T_ zVM9_Ky1mpJ=?EU{KC19mm0pA)mjd=*Z}Ulnd8&<(DyF5G6sQ5~3BDLkX))7KuF0tW z<3{B;KQ~>hO;^iugXsLsXyv7>&%$`xNmpW1CC$EO`a=82RqSBo>r8p;1W-S+?`!7s z>cPxzdX$}{f6p~V&!N^Zl z36BAPf1wqW;et*pIe6RjA}KowR`fld2%BqXy!bg}vjUTV)=i{n@(5&i0||Ei zS!Y^+iaKA{x1qwIZWQF<6+pqXXV8Pci@~hLQxfK{UwqTk^Pn9W~8P^QBiol|Yl5cap6)UmBHWaOt%ghwcc=jzAYI zZr3a7*K<;Imu~k3KAhJ%_85`p29`JFXpPd}_OZ_(!;lA6TR*p~?dQNZ4`MwaA^a;A z9~-H~)Uv1AJ$shw7U9iRjg!3IFmj~QW(ABP{_3GrJ>)NK5V-JN^xZ3SO?yPQ#zW<7(6yTPC6FDv!40r1n4j zG>(BNs!H`-v1~r(pzKOysGVHiKe zte&`=9KdWQZ~h!}w5BTIrd^EnjjZb{hPN1Y14y`t=o!#|3wg)M|0Y@F7ygf)k#KQ| QUmua3Uf5ywj^+X2A0GADAOHXW diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.9-compact.zip deleted file mode 100644 index 83e2b41f9de5f962097da615974bbdca11c65b05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1519 zcmb7^X*|;n0LTB^OxCE34sy#CvF4e3mOHJCoINrjb8MJ7a+4e@XEiDx&tp99m7}49 zr%5G+B$4H240C&Gay^fp_s@&x_j~dE{9gRte(iA(AuIp}4gjQ3iqjW-iV+$L0Jo0< zfEEA%K3-(9XLyKbq!%^7%bV|aZX|WFomEL( z!Yr-3k%3>>z}@$&-0!r@vFXp>nLXN-P34J?%}H{Q=@ETa2QKO~U+uzo1}@Qy=2iw8 z$GypjyF!T>h>M?D#=W$FO1q7e?GnQ+p{Ku_I9gq*O#Tu--(lX^AON0=@dggoXxxs` z?etPy=UYToY=5CwX@W}xpz14iInC$hWHK3TBT4?r!#j}YzbLbtHk<5D%~Y>5bny;{ zWm}@zxEFXAu#RntO=gQ8a#5YdDJg`v`*RYGb*$`+ovKjWFzi9r&-Z(bo5Hj4Rr+6JU(S{XO5g=t>OD5x3xqHlr z(t+4Wg*rofmz7a7jt^tC#M*D=li8mTy}pxtDVws{DA7q53Tfu>^UWjT=ypDSn^g5c zPRk@zzXA-d*5KVk*q)#=+WDis7+DJnQDy+`|NLoyi^%)h&X3A5JnOAX1xQ6%X-Fdkn4XDI~m-7h;kpfoy{zhU9&A z9OoJ#v(G4|>G-49pO1{1syMZ!yn|0evKFrpNpd|N8V!W_$JWOMA`VW@XSC~*6Pf9K z$L|S-uo2rMB#+C|tguSIAo}@tMh#dreQYb3ZtZNh74a?meP#yoeL?iA$8wC}*fNCe zUqcVlXAylyEITDET-9-@kRYr`DGD%7Ht`~kz2SE1w5_McYFNJ)F927Yt;V|kue^_l6p@U?{>_aE1p zy$)&RdBA+kqd|bif&(E^`uheG*Nu^|Y^Nqss%q8Wz;EB9Z$Zc}-EFbVnF(xM0rWiV<^H-Qgip zCw7YQ(u_?>!`|6y8{X~Crk=%gsDIyFTFtRu$@+jI^kN6Zk!1pV$K=#>ly~DqXakKU zupW{eUmxu6?~H)?DZZ=;8eA2d|E;g-=141xZ%Q1PaB&kXq1i9YA&zQK)>I~rzAehG z3!jV)H(+x2RiBLm9RdjcL3axGljb&*`z}yoHfIM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+Hj^jl~1RgR@I zX!4~m>?Mox`i@+>yR2329ImHzr6jl-A7bv> zrBHFd{b9zR#(L>Gi|LZ*mfy(xwt3pcLwfH{B-_|DmCj>M+|hqjMkTRT?%a|4#$PV= z7xq_*ItzPis2O~ZxIbS_({IOYsax4AE=-qw__*5Q%Ra|7ZLYFrwzH&Xy{rEr*UDAo zv}{I^V2R$6|7KRDn_cBJ%#GHoNmN`aznCUhc8HO0ndY)@k*D^ACa(FrP*3-DV%p4^ zx>di8*e)#bJU{GSBs=M~@BYHC58NR-HGPf) zD7wsKvc=`aGUwL%d4(GP4SgS$??_5-Y8Hv;<$IaC`-}OOq>tPBSw2hc@vm5OH%ZrX zsi)h%z{mC1{RAf;%+J5pqIlAgW1rn+qqg2iw*$+bJzN%fp#NUY!==n&WuNsPUO0I~ zJ?5j2+up9-e4d)Tv&2^g9iNzd$Uso@?>nuj_Qv;TsGfgm&(~62G5bsG)Ggnynmnv6 z{++?hvcR=`)*R89TbP31Go3mW{WEAsQS#J#D<1K&@kCBKr@Q3uJ>5AKujaE{Zm4Iy zq;Ys+%ezRQuV=EZ2gWzJ+{~Ps#vK=4DE;t>5b5LCJ zTdSFawb@i&ezVR0+8sUd$f;)%Z;Ov)@ZK)G&HXm?TDVPT^|T$yjm+*{`!#o7I$ODI ziiO8H$)vZ_wzWRHvf}Nb^Xr=xI0L!AlN~hgNeOjccFKbbiMn zlki{vYXf+eyZ9}gb#q0*jt$p#%Y>>e-uw6C4i?u%fA&f&JfZI1CllDF@P~7MAnU9n yVe2LJ{vVcDH7~%Mk;$GJcOC?0LojGy1W`of$N+CvHjq+AAPfZ3O~4GzzyJU&=EcPT diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/comment-all.sol-0.4.1-compact.zip deleted file mode 100644 index 2f8c1e6772300fad9eabfdcc5bf5d8eb393873ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 999 zcmWIWW@fQxU}E57C@LxlQ58He-=3L);VKscgE9jHLvns@ZfahMZemW3UU7a-d}>8O zeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJ9@}2s~k&b z(Bw;B*h?1W^&Po%cUi04$-nM0AAXw6T|KG1>rmRRG%nQ}i&a&Gf9TIvdZxl)|_2w z)7SC-Z};Kcv4^j-;%KXj*FA^j)~WgJ0)g&~zYRMsE@wKPe&qxA1IuGEk^9ffT75it zelyRaZe3S}#odQoCuA%;5MS+dHhz2MRril;Wc)%zK4&CPmgSMywRT0$E)##={AWSd zpSSwlVJg`*>)HEBGi*(`eFT^KGesgChxHP14qKDh8J#V@uk zp}xV}>BaB4l?s*Yujfwk)Y_pRk|S^M?C_54GbuF+hYol?IsZp-uG`ay_$k5pxn7nA zN#0xHQ{)Xy3%KG|K3Wm^5JCVIKvq3xO4lTeND{UJ;Qd+ zk2d#pzvlbK&(z3RZsb$8?&q0$CYHU9aZKsi4)GH2-?Oji`nFN{t$38yQZC4QQ4FFZo0>uTILN0ua{O-CcnR!eR8ex+3zOb{$@_y zmpMm))#ndS^)^M;Zk9Gvi*-|b%i_-M_&T>VtTO%NY8NxDzKh#u=*Wv-x4qXltH{pW zVuomQ*thNtpSK*lsd(avZJOP?Mh2FpKUFuc(+Dt5VS8Dv>ho4$%InmG^OqB4-9)nZ z8atMF{WID>Yu=xglXv*klrx9!sGYR;dQ@cXnThw_?peL1J&O1H!GiBBpJJ{kEO~Dx z``=BbMK&PH*z@Y9^^C9jo_$@-{6YM_>2jvc)?aKxZ)`p_`(nkf`!hHzZ@<{9 diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/comment-all.sol-0.4.10-compact.zip deleted file mode 100644 index 9261d885adc25e5ce038eed68efb66223db5014e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1071 zcmWIWW@fQxU}E57C@v}pQO;}K*v`zrP|MB0pv=I)ker{Jo0?amo0yZMSDc>{pIT9n zUsMvGSd^TRS(d7oRh*y4$->GI%fQgUz+l_ak#79QxNza6bK9(W=N!$;RNXJv+8ZQg zr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`__l)!vTp|B%`mMA1D#y|p zH2KmO_L4<;eMc_cUDhgh@~^whho5G1S5GSMI+V66jZ5`L`pSo~^(^^jr3={apE{?Q z&ZyxvOS!O0{JW*j%0Gwt1=XI-5&7!(Z-H#K%|XjfLznH3|MPQPZk>|KWzgw(``?ad zsY~)7{`|SpDQ(NE2W>0on}*Eed#3SxVRTLDoy$iUy}h1CT(_>V)>&1nZX2ij z?vR@CE_?kq(Y*L@_I??zBE6L-eU>{oo|Kv-bFf z12+%s(`et+?XW(3^0idQdXstk61vRH8~=qoy13`ngwUd3xuCYUiJnfuhl_k_B=^od z;;A$D#?Se>?u(B+=D#b>juJ~gwqkErfKDzQ#*7S%<^21qT@2*}6PiuofA3^E(<<>xKB7^*R7I>xlEE`MGuy;a4NcnehPc^bjtCS z&nJqf{k(Bi>QaKnS!O>*W%K2ePo1~8d8A2n@fmIzkF(dWl&{;?UN4okp-`Y~_8Q+k zZ)U!`wyoY(u+&>ji08Ple3;^-ZPK~t|2SL!>)hD!aKQxg&gN^(r#ICq-;Vhb*1b!7 zhWu4wzWQjBBcgwj{S*$VYo!HS92Do8qCc(Vl8x)^a?iJGp6E&2&3^Ue{N{#oAuH}b zy6Kwg%`g9*tv>3XG?Oovp~&r?XWqO2QugJqByWAu`Jnai=)+T4T?cjqZH`>>?q8{0 z+upM86`8_!uKt^TBDpnx_DK3vhGOP#W6cJ@>SRFvo?WIa#wD|^X;_Tqy6D9r8O zeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJ9@}2s~k&b z(Bw;B*h?1W^&Po%cUi04$-nM0AAXw6T|KG1>rmRRG%nQ}8Fn@XvZu1SZg{mldcu@> z+<%wQ+qR@BQhU4X>UAsY>K6WDNPIbm@@Xvy4gB z%8kZn-yQPS@_WsidEfU}U)sD!PxCvD?F(xAyD?muWs+@G!W$!_aQ&#{jQeK75x*2R z^c?-ZQrvQmd+xEbYi8>xG`kfgu6!&j-di>AYL89+oVW3UJN;js?(Vnr=gm||EOmKs z_NK@FdoM-B0_VE)eEa-*jc+}pY1W0SlLB_EZLSxb^35-4R#EfX3F60g#O(>W^5wz) z#tNei8v=HgdOw-z8l!M)!v!vv46AuVs35A{8PtHeyn8se&ws| z{qDrXY3U1<_>Xlu{+V+8?6Rr5Y$T5PiTIp!oOIY<$->Y)Wim%r4wJyN`wvzg*u2(b z)yX=aw^|^RCP~^l9yn)l>eTOW*qLEn~s+D8{cd zcy_p+QPW?4@Xd8$$us}+uFi}%(f?~!x%a2w{kQVcHz(I$ZnfC>>uC7y3&rZQK3`Mq z>`=9JuXmgATE%(7Kl>xP)po}%v;KLSrEQDNPPZ(#y!yHIz_MHN!G^0N=W(npY&fj?>h11LNVAP+*THC*@$bIywoq_oit73))|KrWw`|Xp2GM(0} zWJu`}$YWDlB7Nb1Que}=3273?a;C1AUAyAw+g~4UPL`VE`mVT0edW%aH#^1ED^E{Y z_1$ev(8Biag&UVk_ph$opuabFag@+{&s~pG-KPqzJp5_pIe{xLL^M1Xu4YT?X>;x| z*>$K~CE?-&-W(Ab$;00bpEA9SOm#iJ%m03X>8j__I^DbXi!J>3>))aO0p5&E_RP4m gG%#0#K?5U*A|itac(byBlrjQgAdtQYEFTyc0J8A;B>(^b diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/comment-all.sol-0.4.12-compact.zip index 9edd6b98c2dd72c2b665eb91f66a72dffa62660e..da744cc2668170b8642476f21c26433fa86bad5b 100644 GIT binary patch delta 1078 zcmV-61j+lT39ShmP)h>@KL7#%4gl-5WL9b!@r?xp003?c001MCYy>8eK_q`4*K@rV zG4V$ag{75VSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!Kfx-vgPz%&7NYYm>;+43SI zC8W$-{F%u3yPAdP4Dg0y$OYuD3R~j~8VK&C@Wa$vdC9X*-Pf^N4U1JDvQ?V~S45_j zmW{A<(ulj9f#o+*W_2cE*r0zDv=SyNleY6ZkRsEkl%%qQ^_=lvS7~mQ6@p7RdcDKf zTQ}UrA$xooj6p2=SVUWqsy)?@mU6MhpF9&!A~f|!WNlh8Z!_L@dpZBTwZ@kFYt(-G zlXO49?J7g3%Ya1SlQ6Hnl=M1H{0Z|ks!_PU9rq>C$J*CYP|g>cZ_$6Gws%v91Db(R z-uv>&)3Fibw7Ii986oGfCg84}me$DZfYqr}rRgOcY^Zmo{UZYn0zs8oHd`2#@!d}= zKWm)NW|Q@M>YCL;Yj$k;nKyoV1NLTxDSvc1{?Ad6z`UE9rCMD7A^Y$%bY-HSqUt9B#$NR()ah7Wb2UCWC=3tCb(O^~mB^X-S?r zTV{f&*ko7;g4_Duy%`T8*fT)6EOCssayXq0smAl2^8nUmH^qkAX9iKWOz9gVhMWOd zlCxlnDMH65TRC-qFuW#~3n8Jg=sZ;kwG>j-;3NVphme1D+t_|4=ciG9X%~yjd6Wmv z3R_`~gYve2icf=7g9t)pzsoMczTe4I`dRsC2B&F>7>0t~dvMyncDmYC$ebq?d!DYN zJZlA7BdIe0_TiTfZB`ddX!j+!3ly2Avu4h-j`IW!Q!ybrkvs1Etp{}W!s|dLVPn@{ zb$|nbypMmj+xe1d&o=zbu_f5Qu`zn_a%Ulz+1t2MrnWA|P)?q-*g*L@b0$j{*~L6@ zkmmt=8IPc@%ws{pX>7*`Xc$p>l9}Oxm3zz@KL7#%4ghmi#EGz`Cl_^W1u51ncKrj{5Om&S5# zAs2`pJ2PdfmFRy<4YF(_32wMqFYoAbY-iSIGPw;Ac7i@`#(vMbk151ofDVHlJ~a)q zA)Hg~V75@;fy)QG%WKsX4H`C!IV|YN?InQ|0Fb!`tlMi+6Qwet)$2R; zUccfQoBlzJPn=eun|gm2>Pq6Q-P=4q-W^mMp=O_yTA^4u+^3qfLJ=s;um%GPyTD>ui^A zK>o0l2Bx|opbI#rxsnS6NseXMPUr=fjSpt~73 zLZ~0nCic}yg4gC!07;>PT7(PFIUqWauD%1_qfRmLwNF_vZ?mcY0#F+p%aD){8rNHM zPkGXK-3f`0?caZRv_IyMz z=o}7s^BfxKUn&$~8<{`~CmV3~Mie2Re7lznmI1C_I5|HIxK$r~M}(~o;3TR7GTwO5 z3WRD~AL8*RR?Qa3J`>ImQ?1q{;OHzANuw}aW=yRn=UsoYhX#J}dscpf>kZ)GMCnPX zB)EOotpTF#vAA4*iE<%~#ObCX6D)U|$!QTalRDx;1h?!02V|+0_tb)Fcb=4sT4Y5< zdn&~<-NGBay`9z|Va_X)$b32?SU4mAzuT#((PeI}kc_6T-6z(h)>ZfIsvAuTCTSZXmreyawp_gWBWzL7DfFLWAPxS z!L~T^F~LnuFX7pV$lULxT3v|^N_>BL0I-`kX=!c7f$|cNRCH|^8m|%oO(PJ_oBxoS sgIG{Y0Rle*KL7#%4ghm1Vsix1ONa40D1882LJ#7 diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/comment-all.sol-0.4.2-compact.zip deleted file mode 100644 index b6c1ae5a57f249b96b0fe42d7b384f91848081ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 999 zcmWIWW@fQxU}E57C@Lxl3D`G(u01mY!&NQ@24w~YhUEO*+|;}h-Nc+6z2f|w_|%Gm z{GyWh#G>Sk%(7Iytm6DUP8L>%SO$g$1_s-Xj&$Qc#)S(no!e&3JLhO#rs{sV*4`i~ zJN5P4yG=K~JY2nWdj#|SkG#zdXZDAxWj~2~(Q$U`0{=HZyl14Z;0pP7({G*4S2>o> zpvjlMu$L^#>pODk?y^?7lYiZ1KKwMByLwW2*P*msXpf66NIMtt3$ z;~Y%)oP-6G3cb&)b2P7cUuxm~?7^!;X4q>bYntBB-nP$Njm=}K?v2NmGT%~HKV<*^PfD%ateSIwkma#* z&ztMb!m^d;@4WOQ?&#YY8`JLWbo+a`LGnIt1dHU#IR~rDdw8PPzIK&Y|CsRhlD=Yu zs?eG;*?`Zx(r%m9p1cNV{RFMn@`r{cnSzU!rLUQ;N_ zY>m?U@^+WOv=`Ht?Cf4J@y61MmOXQPQjY6z1e$}l(Z&p z_LAxJ^R+)$$h7?E)y7#{H#f#DFSg(JUCb+>)3s@0kQKw3HfEz8ug~6UOzr-0Z<2%I zk6lmdmh-b-z}gc{9!Wd zpPs%?sHU6wN85Wbh3|F;xX-!WIM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+Hj^jl~1RgR@I zX!4~m>?Mox`i@+>yR232%vycDV*+;uiEC^GF-z~+W`bw++Kl*O86%&453?IO)}^+JJC$>HBicYJh<{bIF#v)=V@ z*|&|7#WwC+vR`rbY4Ng!wc1wqCY7G7&kyr5+`if8vg2d#*zC@Xgr^~U71T~&P~(|y z`C?BO|NWh=+gLQG*eAu`5C355Dy`zCthaE-I)*y|?8PhJuKKO~OK#@schRTRZaltM z^S_h%MwOwru7QGT^6&g486TJEE28RDa9=C|W_ z=f%Dmsv>s_>Wsrwp*)QRL#j;+h!5tb;@&>c5F0Mh@Q5`^ zVvS_infDXBZU6PoSNNr+Vn2oVD8H{&s>`Ff`!1Xp)%xfC=EUy3wZ3CYUwyFw5vqEbLM=PUoV0bo@mYbZgAVHd9ucf z?9XR|B%cdceeD)0)X7~s*{EyYngaZriKLvX?sy7d*3T zvfZ)5QwuYUo;CVLYHd*A zJUWSSiDQ-A0)z1NKl#h--*bKpjP9GdSSIOeoBh)N_wM*aKd{?&;nb1$8cm<>zmJ!` yB{D0k<^QA8bIby~8JX;vapyu{Mg)TfMi50ro(%A2WdkW?1j0Zd-2%+g3=9BV+{0r4 diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/comment-all.sol-0.4.4-compact.zip deleted file mode 100644 index a9b2f05c52e214ea8c957e650f61865309e0a409..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1001 zcmWIWW@fQxU}E57C@Lxl35ve7$B~(V;VKscgE9jHLvns@ZfahMZemW3UU7a-d}>8O zeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJ9@}2s~k&b z(Bw;B*h?1W^&Po%cUi04$-nM0AAXw6T|KG1>rmRRG_H`Z9PiAhD$c%WP$>~)z|TKVD0)Caa-`Dd(6$lJ1`z?Fag=^WP8n|Zo-Us!4}<5Hx@GVQMoJNC0> z{5k*pV0wVuZkE~S+gIBCFFJ51q(Gvi{;?b5(G!!I_N)K7VcGtQ^~=kvO=io24y=;> z_-FP0-eWswoUgrqd{VmlkL{_kFVdq5IOp2C_Z&RyWL|33w)DoF`oylECsy|^z`1eW&ZaTo(c)>NpIXcDXHMP z{;zLG7*5S}V_XxVt+zwcq4QmbVbh_?Bfl@}_u9XCz?QgcYy6R)GS-5ge#y^WIi~*6 z(&@ew)L+;qk?DIQRD1q8>A*9RY01xmoo};q{ZNYg@gunY=_7vqgi{Nec5f(_&oO<^1=EFnYkJMIUmJg!SMuaKXa31$mh~Uvd4fuB{qTSLSH!umI)9~QFaPN~ zl6TpJezASsE7{p9uV=R?>a2I}_cikuwY|<)@=vq67_$23+#p^1Q%wi9bR5uA{}UH%Fi}R>o1wMB3qT| z14CDJ;r^-re<<%N5AbGWvS-Gf2Z7lT3>p|g6cITxz?+o~q?8c|1A%lCFhesi005nb B)TRIc diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/comment-all.sol-0.4.5-compact.zip deleted file mode 100644 index 2433c224314110dd178072a117e756252b36df4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 999 zcmWIWW@fQxU}E57C@Lxl(FoxBZqLlXaGr~SL79PpAvr%cH#M(BH!&wiuQ)#^KDDAC zzo;ZWu_!qsvn*9Ft2jT8lZBNbmVu#xfx)(;Bi;CqapA&C=eAk%&N-Twsk&dTwKqu0 zPJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+Hj^jl~1RgR@I zX!4~m>?Mox`i@+>yR232nY&pQjsjtPv}op+{qfS#!S7&wV9D=X@JrR|Dd>;Kdzu)ggPj|Ks{C%bxDt9o21Jw}9#7g~Khn_U6B4n1;`j z`PB7P;%(^tyRVGWtR{- zon7qCQX5%B`lXg=&-u)!_4R+VqRG2m`|nJQ$#8F**!m@2_O#EOJVR3>p4GdTHL@R% zNR#$C)yg?{J|}nAnfb@Xf@ez$#`@%4udG@u-9=&nM{`bb1iq)g22Xg+pOdq{Mi;NPqf?Pd#}$a_dgaUAdst)e diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/comment-all.sol-0.4.6-compact.zip deleted file mode 100644 index 6d10e62451f8fa59559778fad50574d54d13375a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 999 zcmWIWW@fQxU}E57C@v}pk?y;yXV1*QaGr~SL79PpAvr%cH#M(BH!&wiuQ)#^KDDAC zzo;ZWu_!qsvn*9Ft2jT8lZBNbmVu#xfx)(;Bi;CqapA&C=eAk%&N-Twsk&dTwKqu0 zPJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+Hj^jl~1RgR@I zX!4~m>?Mox`i@+>yR232=A zUq=$vLTs&!yWgF*NcS>bbI<7Sjwj!QeoYWjpC-+5&+%h$@TFfDpZdL4Theo6gTWKWp7zW|`V3j>Dd2>-yxr{y%!* z?0m1Q3*#Ss-k~gcbCF!oOxxS<|9#vf%J{+6tI>aA)ECwJ?KfT1=Ws5WShXlPLOb=H zc6N=D(-PsTcPkHXjB(|RjXl)rpZL+A>FK86wK<0;CG%dLIOChCfX}A$Eo>85cU>;F z^gF$GxrpX76U!U#64Y-g-ZH*Y!fQ5f#|fo>ej6N~huiaIbS2Jlx|@}6`1Yyn`&Ajn zsVZN8w%Zr~kBF^%vUkdshu-#K6(7rHFVB1JJU=Gui1ksfPnJLH4_$nexa#P)Zz-4f zul*5=I`B+#yXQy2Si39r*>9(=i(h(h?|xSn4xL>SpG?bJ8vEyX%&+%LInv@56^SH# znjEji%VGT6!|T)D@;}|IMj}nS_5^IqVGa-rHY=Jal^eZt=bbC7g7%lcl$c%59sc#- z)(I(^o4p72r5T(lwLRJ% zJ9&lbdGBpyZ}MDLd#TU2nI>7O`R3Y&63aWfORY*}c%S|JQ1!1oBvSHo)Vn*`5$oa!jpuE2;NRl)l{{E85^Eodt#Mw z%k+=RTDjvo(X|zezUmLn`11xMP!zCsW123w0z}?ho@6c=1mgu xKIwDsf2gAsLx49UlRY!;90<&WV9>w_qKL?k0p6@^Af=2z7zm^rfZ3UW0RXpK$sYg! diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/comment-all.sol-0.4.7-compact.zip deleted file mode 100644 index 184053f1d7c0c5d569cbb29dea6e9c4f451ec943..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1070 zcmWIWW@fQxU}E57C@v}piTzxj)yB-gu#}sDL79PpAvr%cH#M(BH!&wiuQ)#^KDDAC zzo;ZWu_!qsvn*9Ft2jT8lZBNbmVu#xfx)(;Bi;CqapA&C=eAk%&N-Twsk&dTwKqu0 zPJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+Hj^jl~1RgR@I zX!4~m>?Mox`i@+>yR232NT2gzX zg`s1VTEk%vRe{-tschAT+5!e=R%_U>2T%8ZJn5Sk@2U?5M(i=a&IWSu9FEynA5t569`(yQ}FvM&TqJo@s{W;b@!sc`DI6I<>oJokG8K;u}!s6WvY}7Klg?=?f+!QV*91W7MbGDC&yUp&sFVe zIw7s`$?Jc-uTsyi72X51MWn3utzfe}Ozk*x!~ TS=m5J8G$emNFN853JeSY01V@u diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/comment-all.sol-0.4.8-compact.zip deleted file mode 100644 index 672df8dc994872deeddf3b2efeff4129108ee228..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1077 zcmWIWW@fQxU}E57C@v}p*>&MSk%(7Iytm6DUP8L>%SO$g$1_s-Xj&$Qc#)S(no!e&3JLhO#rs{sV*4`i~ zJN5P4yG=K~JY2nWdj#|SkG#zdXZDAxWj~2~(Q$U`0{=HZyl14Z;0pP7({G*4S2>o> zpvjlMu$L^#>pODk?y^?7lYiZ1KKwMByLwW2*P*msXQ0-Sf7Qt%_L}>xeUT?`+`csX*xP7^klnfkx|Ug2we@+A_%1tTJ^7gX`AC^aA^1kml z!dA@Kce%Ldn~0uk1LGbCLBEa!_K$Xp4_LnYus8nZ&hQB(TONK@4(NWDe^JL~;;e%k z-ut{OJ2iQs?zLd1{gXGHul{{TnlC<(x$F2`|#_+A6Okcv^e$~;#&g%tC z?|nJr|221}Ta@gC`91P1@56UXUMP1Ko|0;QAmg#d%);2W88^31uzUP)7HhP%!I!J@ z8h_rePT%d&eRRF%RJ;Fc{8#C$Fxql9?{KPh)XPs5zuzY9cgSr2T)E@8AItKpxeuLo z`TRP#=E;BE{ZIrp{Kewqj2Rzs1y`@M)TI&~2&b z>611oyA?&J-Z+>Xvgnrf9(rI~ajP~zS+$OL7ej4Qa(`m}`oBZg0MU+QPXl;{=qyuA81;d2=KoSWqjwdP&&H`?CT z)~K{?>qJ3KZ*7j*m8*>Q=YC}MUG@CL1>Fm0L=G;V#3&;DXxpPL^O~wjlRolcpTQ8d7{`lXXT!`U$_@7%i*5&xHA9K zm89Do#=GU27eud&i#|B%{DIXQcfL4&L1jn7@0pQn-y5A}`BHk{?KMy3<-jxTH}YzK znk_Zi{brf^$EjSg`42_a`gfe(k`nFs?RwLJrAHqo9{hBIulwJ&&ItkDj7;{-xbrhG eOM^iJBZwj*cL#X0vVoK`0%0JKJ_jru7#ILvp#AXx diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/comment-all.sol-0.4.9-compact.zip deleted file mode 100644 index 9bfdf3d93f4be59bf2ba51adee93ea1094f84a60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1071 zcmWIWW@fQxU}E57C@v}pdBkWY*UrqqP{Yl@pv=I)ker{Jo0?amo0yZMSDc>{pIT9n zUsMvGSd^TRS(d7oRh*y4$->GI%fQgUz+l_ak#79QxNza6bK9(W=N!$;RNXJv+8ZQg zr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`__l)!vTp|B%`mMA1D#y|p zH2KmO_L4<;eMc_cUDhgh@~^whho5G1S5GSMI+V66jZ5{8q4}~?SNq(>i`OJbeU;j~ zd`;v8c_pu`I`@~SdfRWi-SRH}bvy9IuUZdzv1DUYyCZzoKPPQE4SWrjBwUp-p$-R#<#rb5xJ zrzw7_fXZpUtgwOy<_9O>%K&gdh4|gw#6Q1 zwfNAT^< zdAm3B4g0FBimS`ksHAs1-Tv>;y5e^Y`x6g+XLJ4W{;ZMo9{F`ozAbCvS;O1FC{wFo z#L`8CUD%Vl{Yn{&e5o`}!XH72TH4yH@Y3nQi;@ zyYnwDM%PyyYB66!+C%aTJ%D z=eTd$mn-TYr&>E^asAk*b-}Z{@=f{rr7NqSwOOv;6FB`q*iz$L;j!~W&hSWWp1NiG z&GoZYuIJb@FI*C;GOu{y&GXI`?`t;cczK-@We#|FyI68f9G6i;s;Y)AAwQDMT$ z3z}bc`+m%Qm=$FHA(em5nQ%9Cqqp7j_Q-vG)>k;mNo;8*N7K%n-&^9A)Xt4{zSkQy zbJY*Ct!i@~Zt@bjGX2$NDLwtI*9&;6B^G|4w$ZTbf2~%-6s;S^vu3K;q*O(2-yD}| zz^Z@aeUbZ&bprB)6N(7o!Y;}SpJ_Q?w=dr&B$cWj5{X-Gcy=8FoGx| X@^yeWD;r2DBM=4x=@Y{A?5y{a+j$Sm3*pSTR%B>+p zk2AS)lo1k{P3~rU`aZvZU$5u$`Qh{W`~`1YOAxmK00zdrWg+5 z*$r1K8cn9pza36gxgI@{S>ZP|%FBps?YhE9o$4KNTxs_el0&=ewj|Uh*&Zv0{=g-= zMo_KHC(pi9dv6y9t`-aaL5?NOc&FyvDDa$JUD&L;8fpAc?g5B2#!xZ@71@mT_0_2= z`+p84hxg2C)~>o4ja%ru@D>l~QSa)^FC_i7`7QeFUI0d^q{a~<2}j11T!lDyyqL7g z7mK&59)Y_XBB1{T9LClc^buq@xtrKblynj+cuI zQI-bIMVg-`ScK<_skUq@!PX$MraueXs+%Zhb`Y`aoUq<8cNsF;tb5A&%<mF_W?g5=?bK9 zVqpk$;0p=HU8gt_{RXW=^{RJ~ydzKjmriVf9qU6v+*JYyX+r#a$Y#i`r}SCstXvLP zLv3bsi@{zGlbL*8n`1XV#5~>|{WmC@`4$SmmA}g9#=e%n=)gjyyP1#5HTes?Mwd|U z8=v|JNlE_Zx+aJ}TI`P(+3a5SuJ|4w%=c<65_(USBXmTrtJz??Aady$J$q42%@#WP zlT;Ml8~dR-KC^Ayd=2?@QMbohc*2|t+<-D`k@*~IQ}f0s>51+Grb6e~h1*%|m*Xgf z3LgTNW(SYIx4;vlTXf16-^)zkuB zwi7;iojems9OQ*OrmG2f4%K-U?XRMI1k2EGwrJrS$_O*?A61uR=Yf`YssdZ%%izq# zwB!cFcTpn;NfW5gNTsRXw{VpreSuSVYtYY|?8(y$)Trgh}mh2Szyzcn<6g9ibRomC`@ajt0#8S$9R3le4$H=SqV+%EO zHgt^J$nFJ>IMH5S(swtkwK~{-DRTtK?N0o=VAj{$R>{#gtxYUwxMkhPB>o*+{}77H z9|qA=}x=z$K{G>d*%g)|PZ^V!M;Qe)UHKtPK!}#K_M zq6mhnmyk5^ITG^uwae1>TZiCmBDw~;`k_fM$w^Jip$eWsZQvY`og^i9k>|vJxQO;! za~3)6`;p+SIvai*Hz1oUB8t_;T9>N$={IOPrKnN*;8_p5hEISts$wfH%d>^c4b!M&aH8kifSuQQlMcPEQjlWO7;}a#WvHK>+`)`6NNi?z>C}ah`o=GRv zJ8tYblp~w@T#sgKW+dKbK0j6x0yn+)q~i}bN{LvotLG0>g_r}~g$7N-GHcZF%@RY{ zmBnQ;6odKb9#A;tW{^kP>(%oO5LbT{PlOBl&oPje%ZQQQVVUHSH}6V6@}K+QDvmSH zpevuhdS#lOE>*h!KyOhaSjMPS`R1&SY}k~XA(1d3I+L6l5>Sdavi`dPO9D52*4BwzM?OnqiV!#2; z<;@ z?}oQGE+koe;mtJ7ibrIqJ?BQ9&d*W4Sr*)#fE08WxV^5 z7cqC8oLE111<(bN22IdHj5tmz|8qxeDdu_ZDkZ-o^l8;mQsEx!*)Pp8E-`#?PXSrS z2O?zu1&yq59+hJxz`@(|xk@ccbvh|^zg}1i`pNQr1SttO1^U5<-&@Q)Irv%9k9FJ97T-dJV{d@D{oV3OmvGjKl#Jl(@G3W8s^0k+LcZqk| zu3{d}nTB&tl!trsg2c!USpz9JeYJYS2oLm6vay-F$Bn*wspBqKNHj*tW_+%oy#>qa z1Pw4I%5JMAh%YHTUJAcq;&dk@|nW{V7%c$5oGXiql z_Vij+P>}SQf=CoS>>q_?BlVHj@o1~a^OOrbgPK)rwBEtcMLon)m}^Xy(rpo0-z6ieheb=FZu+?i{KNPV4O zzja5SCqa|p$=;^=$s}VamSn~v)NFngi|V18aDDOlH1TL~1!==^rHPYj&NeJ~0^(H= zxt5DsirBiXY*g*1?42`T<^@eNI{4Xa2jz|~W4!&N5DeKkCj(JdfueYx$=wwRFkIX* z!9?e=l^!xE1+~_U&(9?`G?gi*1(i@VS=@x?}hQ5BMd;qKpmf6D7f+(@vAs)Ii@_h3CXMX69N& zbAg6(a|o)t0tu(Am-MHgf)!h3@ZPrNt~f~Gsco>R+w_=Bcp6lq;Qr{J7kwMx;7Q|^ zj${!am&9Jqe72>@)r L>-KxM|9$@eJ|2FC diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/conditional-all.sol-0.4.10-compact.zip deleted file mode 100644 index 8e0e52b46473594acfc55effb6c00ba193e92e6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1908 zcma*o`#;kQ0|)RgwyrGKbx_z`MkdUq3CI0V?w6rvMJ_WmG}mWau5($23MGpY;wVh( z*pq~gOJuCn+&NZR*h!2C)zf)?e_pTW^ZDWP`uqiNFIOp$4Il|XfC^HaUw@2FUC$l> zIHU^z2mk;=V~Jse1VSt^B*q{lCgwOPHs*YIN?h!vg!3VnLL&)D;m4y$vBdo#Fn|Mq zbO5l<%fp-On#A9IJ^Y8I46~O=(C$>DF?>{hMKm95H)AdSNv>@Rl$u+W$x0vU#OOr7 zKld?@`}mHhXv_5`zW#vU_X+0-C_k_32OMH_e-6uiup?F0K{E2gZrW(1?ikP3AkjB| zi}?{)ipIJ9HNS#8*cN7c8r0b|wU&sM&cAl_`#G4`Mj!9i5XkInZ=V>e91t9ghV1QT zGU1t~hgoCUxn{SLZbi2Qp=6clW8a`8pT0_4*W-ol{+iM?axaDK0h;C6@9)*RVp$?X zXEo?a75(SMm3dit`1p*r+<^9J({)QUw;&By1B=bSA`jagIlz(Ut8G}S+M1^^)kJyP zj~`utAR3aX>Vl0DsZ1CzmD(!1ylO$~vuL%C$<#mv<$pRRIzZ_u{F1`QRW}>zYH7a? zmbLEdU~W^Ph`xPEv(Y%8@$^jaLuU`k*+B}LvT-K}{CYgu2Os5`eA*0V-aH|a7mu#{ z9<+OCil8Z4afta73uBE{_T;2oZh~g*7H#3=to!nID6Qg9jZ_xn_IdW)mPg;E{!>*v z|7i2-0V_d2@9Xgld@Cdk&5*RhUO9!CN(9`#mzRZS6s%b1l}&C(!XG%>!{De#iHgE5 z5G9jsan{EN?z}Qi=i6_!bLUv}CadJq({3*`VL2+6xQjwQLAoXg%?eC1ZXIPZuhPXL z_TBwkUoboEmCmUxJhqqlDE3Xu#@BEM@y&%zwgoC08oCxA@b-fo5fzs-iBK zZ>NGkeqJx3g*!3r+tl_lxAYwmjyJ;G*|j)T8(cb?`n&ljcjU3ie7;7wYK9XTr$WBd ztw!F=ntCev`rMD;g$r0;QRJSF$QvZn&B-K0kiwjOhrc&^nT}&pN&O`O+XcP?w|B7C&XPS9Q0O zQC4E;SLE1^fQm|Dw$*ztggdSuQyfBgvc##*k8;lH`+jk&k*W zI)w7$Doh(2Atph-_bBPwO{L!Cm%a4~XI8g@CCS~)w}(%3BS)9ChgP0z3=OpQU2`9~ zC;L_6)qxXBWDAAqC4Z{Ikkb7pR|MMEH7?FPAXvY9Q!q9!gVHF4uAXE_)nDyoFV-Qe zdxYbwn_$pR(%C}1-Luf^CMaz|*TR`EvrfMWY*bVJG2KhPT>XQvm>Mu;EA@uA^tE z1^Ol$DU%Bq~E0MtT{yVDl8IvPXuKCaCh(sw_3@ltcrdY{ODH?z%8NjiokJN!dH==zf zA>a@BUR!O-I-22+j;L}TmOumRz><}u!hzzHJv|{9?}3WR|!cQ jssBykPYwT@bcuiF|Af)Y75r0E0Fd}u%+KAw_n-G4rPF+c diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/conditional-all.sol-0.4.11-compact.zip deleted file mode 100644 index 6927b6e08732980e3acd22877e2735eb4515069d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1913 zcma*o`9IT-0|)T;Huo~e9EFC|XQG5fuIz(~Y?x@d_n9q6v^nRNGZN9qZSEYYC?qLI zZc7TwnQP>1Ir=EKefxZW|2`hy*XxJZ?zqlj44=1reKcO-dj69QszHdbvHMwB80Xy&)JK@uB7VA0A(wmg4*B z3N6^%m@L=F0@jCP#$yu0@$Wb%V5;TQ_I=OxAQ?@*s@C>fXt|(0wW*RbTA5coIX3B9 zj@TL2KTJ|+#Dm(2em6k|P%<&A%w*}~W>Jw58n4(+mQ9%JkqR**MO6|^flr!LB)h4! z$DlK+_)?Vc9v12qjh?d7J`w(~K*yoMqQ#w!G4p3zPV=U{&`6sPK-HNkZ#py}!>705 zc|9j3*GG(b-$fops6-5=nO|)Y>%roLP$PD zJSTDX0tI#OrfcqnntuR;+AsM> zUme)}qjsQr=ZP38UM10^ATg&m*8KG4cnAvPW>q@Zc-lC%07iKpZI_L& zvZYLA;mSpaex*Ly(D^BKibr3bsW6f}-gRR-dRewBq1(1v<%D5eRl?&It02I?6>o)PIOJaa5z@ZtCxZmT^dgUfw? zZl$|jTYz=1tCeR&kh`xMXlkMsBU^9DTP{U)XWiz!w2)S6P!bM~ee|ejTiBS`zWZfH z?J>06{G?pYt|j zDk;K6j#%)RlS^*X4cHMkR{5eJR}8*}75kdV2qqlJJ@hDrYt2pI!GSt$VIc`L#xJT= zi!N6o!OhVFqUc{dnRr)VM<}_mX1(Iv)O`Mt1RIerq8|LHp}5r~<@=%Iku*aitD3={?N~Q^s6oOhww;G_UTL$Mif2<78zV;R3kpn1*Zr0fHGwxnS_ zhr20I&PqFL^{A|wkEAVl?c0UWp(Rpc$+fg4JHwiKTN3XE{!0Mnp5QWK%3|Mlaldak zdcdPi}34uXK-X+MVGAc{#RNKA@fVKZvRFFApbQaTvws!fKC~oIjX+=iThS_RQa+ zNN0q2b-*)k|%}F@XNuO%o>SuLLTAIa!Rj_}T6aaz^X>j8N3@pdUzg!1RBu3rf<782g)mNJHAP1=?;7pr!s;n&I;{P>be__cG@1}Cws1v zO8=y`sTy<^t;)d6qW4W!g;EEH;O=WxTI^wBCH`)ID;(Re=`H^)3{|KjN=g4w5OV+e zx|c~Hd?&!-$h?tsi~SC$WlWJtHfmbC?Cd*>O0#`3Xxbghd?rbWVc`i&ZKP>90p z0*&JwIOGBoe;kmvM{xi>N|RqLbahniU%MnC!sP&b5v_1G;(u8!?lI~``o3F6oAObd zL%;Z0f#=`W5SK$uD*91B2R1xePmbn0I^e^;Kg4=~FimB)KbfCJsCq;TZHFis5${ zQ+DjY4m}CVoXYMFqN6^Z2-r7SI9paiNFqF+11lR!=|K}`VRi$2@sfM9b#+h?jdO?< znK;vy+Fy*yg|`5=z|;==+vR{9c3h)#+AcPUvV_Qmz@_WT(@Ez|^DlsI#MsDvc$fc4 zogdYvIrZYB+tr24ajo#@h>_59L2d!B$!FjekGu$Vv-3_U)vlh+wrrWtBZ^29-u)27 zjtd^@#ai7IO4dYmxd>&r-MTz@KL7#%4gl@7WL8HNs@6vd008Pp001YGUu*it`H7JI+K2vtVUhJwmK_LP zwv(N7|J0jRkKBHJ+R<{jt>i5F@x94(aGf58exZeqYt^1La>-18XEWQc#xpP(S!nw*4ix%tR%Xa` zB^(Ko_$pC4&YGlMtXe)mi`neJZ!V>~SGw^Mdf0bQNc%a@_E}p70Wl^Adog$ce ze4OZ?4+pwwMrD5++1E}>*~W)z2a=tM^4j>2oLT2O@!?8L3~O3lV(DMlu(#uTJ-){J z1t<3t&%^>D2I+l}PR+>%g zBRA)Q5(L}(tG?Oscm|LGs6n!n0{KqWPpfFP`_3m8VbtjG_Ps-StdgydtW!t1_ZD5u z5-E5mKa7I6;*?B_D0aEz__gXR6}wpmfx^vtVlcUe=A?Nae;WP1vAKZ_`k(b?EUTj$ zjGA9o+6#Ye;AMwt@9!xo|Mo8hy9^@%TUT$AG1cwkjpj}wI)I={MHXUey^J%!Hsvia zn)AjisG2z=7l-?<<*C*rRfNWZBF837#=f!~`RenK15o-&@YHu9XTN?;N)h1$gi&KI z*(O`_7L}^nfS^{Pw+-!F+O@IEa8U*hh5?3Uw3C1J#xh17ZC7Gs3T21q3$LQhuV2r( z>PboUU2N!Kr-GxGk~nM+o%USMu!U7(O}{8sIAmV(*(FGlZk)=?H22dm?Se zFxG}`$sLaoOIS;8iD%C72Z8d^E;EO8zZ)p>|4fECpNiAH2bTE$leX$q5fA*94b8m@ zLl%GY{aOk3Y8hX8BIuQoM-5fx#t|9dj5EpO{-Ia91Z80|c8xYHQ-WH0FZ)~9sb?6()1bj6}IeG%!9##3{se1KvL z&Y+F_M%F&;qgJZ&_2+M#t0`JhK+KX6roDeMU7+OaJHLA-k*ggyL${e9VDNuXElz@H zUXnR;tEO(C0HC9Q{ebuW&Lswd)8H`alXp#N1{X|c4ij}=W zTv)FS{6`+G*_OQr4r3-269NMijv|6FJNxSXm`qWC-U1||Kf0BO( ze711bllQY1ga6>DL|&PzWo@I9`2FBF*<|yj8!a$8WsKXuydLvM$#&gNRe>z)wa)rT zt^MWCs{0^ILGK`%ccu{rZ=@*oL8P(j<1_yzu#Q{)Z$@leUN(xl()T~8{t)?`7~ zz8!WdKWKT9Yrkx1Q9R}uRJPP*ARm7sc^~H`8)2*555Uf=#L`{TZ*2o0pzNVVlE$So zfRNke%~P3qpm;sHan4H$u_u~b=#kba$5T>Nw=?_-?ax`(6MvAdB?MBO)e7PE=t5MG z*M0XF}oxXk15?UK9+6yo#e!(Br&B<)dW7K>C4lQ&sNR@>Ih;#EuY6e#?EqHvv~3?WeR^%@A4szX1~k- z)Cs$xrVpw!zk3?!9EsxCr(Zcgr$J+3r!&~Z-Pejc`q=cKg)o}pjR_g*Sv1%b_s1ok%ef%G7AP^- zc8_O7c3jvY2s<&$)@xW=yiv%2Lr04mRTrH?Cnr5eI<=E^7c>JBmo}uj<}p2#%gTKT zolxhWfskUXi}~ zPVAM2ulWx2><{906#mN ARR910 delta 2091 zcmV+`2-NrY6QB_oP)h>@KL7#%4gi~Ta8!d0WRCC$000(0kr+{bC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*+)iLo4>eW1nQ4LOxKY1^2QK-5#TZHxMQ`uvh&c^?c(Bv3=Hi949yTELhXG-7A}ag(&etF

H0}{*RTG2*q zlW29ky_A6FB-p_lv^d>QHcatx5`>hfYA|^nds9Gzd#xi60GE@2Erzvm=C8qk2QYEv zkghQ`GDl%fkl#3dEArWG#Dr2o2f2t_|MO90$7$vqEQDSeY)h72iGJMVp58jLlJfso zO(F0fAXw=Rv^ z@JHY9$`%eH-0Ej=!$=TRD`1X5g%IOqBE;|%w5;%>(#6M^GA%mV>3Y*m?^_q0VK^K5bHf5bFr5deA==qo(CTl*gH9op2s&AD9Gv>>>zfMh zZN!5SV>)ny?Oa&8@8c#;)TmsH+p9BcEA!wG>EvL+qqe*`N<8q(M;3%wUD4vR6T`qYOfSPB~+hMG|cFvkIwb8rO(-5R#3OuEs%`eP!mFQBGAJ~|Z)xf${Lb|~`CPZwq} zh6~u4g3H=Ruq?GY+DAJKc=AVoVCuLQwhK?+vpO@M6=uU*+h8QY47B1sf-RL9JB5v& z#3W=e7^o=%l@z{Hk?PZQz;SoFMgw0*9P|#&o|D=GUTw1mhr)3vX0PJiC*!1W-;KTr z%3f!S1BE8u z6*0$MP3Cfh3fxd)OKZLa&dJ+aH`0hYicq=;(H{oO)4UmaPC z*%8w_^En3wb6u_e%|i-N9kV4%7Q&=#qDuQhuQ|o3n}PSi@?PqHF(Qe);W^cE0?aNE zTbtc~ZA^C!OF{$@OmanrOPC*}7$66yMK*E3EORyR9^)or>7H4{h69V^FAQTOG_MWO z#EW$#2k-1gvm~+}UIk$&uZ#dDe75dBt;=b`f6A+; z3CPva0otLn{K`-?svIaxI#LwxwYKYYIVmhJhlJ0~)3bWjWsbng`tURDsu!TrAP!-ma?!iu=rn>Sm_Y-I_&tUUyO_a0uZHcs2Eq|tY0>-+P8 z)`K~gS=*H!sHY@$k_K@3)H{&dT%O~w?TYkSRLE%2(}U*{AR4_wVEJeZ78oJzjso(+dF>v;{zbG*FR1KwW=Zl-(>0 z0L5AWpa}p#C_XkU>T(o5HUz65g2fsn;IYBsi3EK7<=~L`(8#E(;RewO_*gMPA>cd! zqyvC8l^S8pGmfjCU_Cf3RXGwHbz(r7avP~+quD0WV|xF?a7x`nfAG7{QsngU0bh-n zWz0I2$)I~~d`FZ;G>D@PW}Rn`Oi>5^VuHayQ91iu_l2m4KbbEiOod*> z_nkNZJuUv>(jwroIl49ItF0HnOlb*vCc{UKd?sRVi;dW1Hp~WyT4>Vk@;aClJ(9ks zxL^P&ATEw<^&0Yf)~W@Xt&ASto}YYcZ@xo00n$vVx@FLjSt&l?eZ^mLvNG$71LiwO-N+ z|Kh}hs}2`Sg%)UZVzP#$=gobkRp*>W)7Ep-n`^6DjUPRuy=Q@IRa(!%mL7Amd0C{9l#aLY?r~d9um>-fdQbS@Ljd3JU6_1s^OVpPHv`i8*1*-Y zP`0v?s*#<87_QbVwi5t(9UYPqD{{wZ;rg3!_P{nk+NJo@67?Nu^%rVN82#B0BdB)7 z%Hh(9klqJY&7ILUv|w(zPxoTzCkAwd^4+q$&6)FzJ8!a8*G~#05~~j7q`CiC+_4WI zlyu_Pl(OV`r!z046Ix~1N;^8S9zi=qFfc8QsEiZ&s(b@ED;HNSb<>rNPA@vb`hLQ) z#;zg~)o74Mp54?SXl$R&J$lOtwO3t+zS`bGp6jMLEkYfGuTYKOYl5$qkGH3NT`XH8 zPANP@s#WsrhknWb+L94k+VgNU+A|VP)^*o|9pIKmmG&}5Fptb&cFxB`K@JyCC6HJ6t!$p6^NB0!QC4exrxRjQRXXa|T^}uluq+Rn|k(vPp!PuR%3Y>klP6 z56%AO)@=JXVPqp`e@v|-OAqSG5#Ea;1;=_`L+dcgX>IdEOJL*9h?n@hKNXW8o=UOi z=!v2|j3SPzF?lC+a+4?C=yJ2A7?H+wa^P{_CM%D;s!+U62`EZ+UbBHr#w7P@Zriy&o>*x6WH)fEBC|hAd%ii^esCtmR_Lk1El-Wb^ z7u9?vm7PS+3KX5ot~B)vy0wm$r*6rP?n!yzVm9*>Gld0fMHYltEmX>HTkAxX=R}<< z+je`_?sLG_XQj$LpQ_3|CB**e5w>^WpCyOq^e&*ZM^zk*EZLr+pp@k6$8i0~Z@Fg?XHFq42|ImujWy%JfY|H`cWM3N;Y8tQ_GvGmUkuISni@4|YWna73y{GBp8M?2; z)`ADBul}0Vs4JqjkU{!I%SJT(3^j!5laOwpF4ls-RL9M$nc4U<#!NgKGQBF_jH`?; zJY>F^!OfKSmKcH|59h0*pM2y0(d2^lLI{9t!T+1QpX&XabbG)?9PcB<2|AYT2Bz%qG-_Tq`jl@Q9URc9ux{9m_{M_ga*=rLP#D#UVh~3K8P#9G^!B40N@4ybO1od z$NQfCar!E&zx$1W2(y_=R<4tay=xCKQY|}FjbzU@hUZtf@J+0U#LzqI998_Mi8JwC zuXAh{wy>GL&xG-NpUgi=e~9PoD~M_pP7u0EcKPnt25aF7o5rxP-BaUFf7g9*p0e+f zq3dS#d9L(QiMbRdAV!@*=?^*V0i8{doT8^du+d4pd73;L^$n?oU$;^il^9Pr&|0zg zUh(g*Wt#fJ*Dx$CqOaRWQsZ)D-aK@;VgJ&cv<{I7#V71;TaA-_Te>>zk0IdVR;M;f z*lBXh1C9?u4X5Q&WE5jRotC+0Xmvb}hNr(Dhb7Jc5YQr->5A4Psf^!+(|!ae9>eC!KKD9GIGE zC(pMHN<kl&+DZ|uGfr>k!YnI7_(UnjXXjO|G4 zkrU@sv2|c%v2>DUf`$L_C@lxp_L!eQ#&)ie*T)sU=sxSka3~ZMd?*8j6lrV>2A-G0E`@Tx)>$o`O*s6Rc4T`HT3DA zLF<)~O2L*!VDIyRDYWtrIZ&Dd5w*Z>#<)M0&sEH!lh6pg8(-{#TiC zFOP@z%?+nu_h90$C87v%PC_7q4=(GTiv-(|-k){tcb}S>rM4(W3=1Clf;c;2qS_Q- z^wLvPm1^X@OJW=Po9my^G;*X~eF)JgEs|X7vw9RXcLn zhWLH{4Vr{@O&fvUgV+=vK4H=O0OB&JG9SCa_cCJ8$z_|tM9vT2k7$M9qIjc zuGM&2!h(OhpY=~l{LMMG!P;nrlkwkLJ6DfKz^{@VI7xQkQYK`?&kyrD5}Ib;y-#mB z_l^|ytzrlM*chWyeO%D31nx^wZYnkZ(WPCvu%H9R4XBpGD%YEwV%L?G!qc+Zl0uJX z1?e0Pf!7pPUNhO|egX#9Epz|FVi_La-`QAS0ROr)?Im|drLxjUqXtuWF6CKK_}Q;@ zmEfCt7|CQK&f!mf^U*r7c=6b$rnMmYHV`jg%J`q}b6akSO@1prai{%E_;v8-qZG?bv6(7du_sN;|nEDF?H7{#`;6KJ)F3yPQ&)*B`~&*pyhadU|kAv20la z@aiqd`5Ukly*dYRJ0>|JcPC8t%o+r9G(EcfyC*1?5|+ncH~pB%>@4PatON$vPS;yC z8%(s7PxjI8rzT#>QhV72^QTFRWIK+$s8Pe~g;>GQ#a@0h$E2Lh6It$RgwD@o@A{$c zuUvTI6e9ILtD&7@TbO%-sBIfaZJxOe(YRhFRn>lt=j_a93u+6@7f^LyAepE=i;%0r zOr!ZfNhi6ND*O;Kzi~M`HIXZ~=YxjU`M)TiG-oK+YYh@ zRa-R}xOyYg=~NWX<88-7#KzZSFAdLiX6&tq?0u-%7|v4lD4BO#lG> Ls^hO+{rCL?=hA)L diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/conditional-all.sol-0.4.4-compact.zip deleted file mode 100644 index dc8d5b19651d5f44053f465293d8aa13edaf2c21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1881 zcma*o`9Bj50|)Tg+;@(JM9GGbWA3}0HHI-Bs-KYU)Fzu@fz2XUGMfB<1YX(Yk5h|JofaRUGa$^d{8 z008jAhxucpu=ubmIQ1(y+_^|R&L<$2fRBjsxf0>`7d9r~TyP{ljE|EGfB^uA0Dvi( z90WUng;$N!Ta1Ou`@^u1PB~IGQpQZ_kwBYnGpje@-g7i)VN)oTINXVXhOAs>l1H9V z9l!0tOM>e7U5}=1r@<5CF1CWO=KTe)k%oOxQG2AOtJkjisknWu`5HBYVjCPAU1)$o zAa$&|u4=GakxWwQqw2orOy$+R9n$~~iF_nRB7dag!y;(ngH)L;<>{bd35g&LQW6BC zN8F7@wynCnj^D+~hQAY6^p1cI#VM)}Y3JAC3|<)Jh-)CkpT?glh^mchO>Po``iVfxO#uh|&E9VT%qjG_RQGZndMoTA3p9)FPBkNGzJ5Oi@i_MF z7KUo!a=qE>K;0`L@B~4K?R?S8!M7yKw5sFz{b-&ru3oB zs8e2aF7QT^IyZ~HMxH!R;apDp@rF`&EW=EU+g5zM;1x{f+D3erP@zkH z$RQ&*^X5oY$}okPxw)327Bw_roElxDiiv%~BFc)p9iIhiylI%+&=sET=obD>9{?ZV z(&lajTdybuul5Vw&YG22mm4Doo=r8D%KPc7@;;>G0p!=z^oa&)Buvd<({43}CdyB5 zKfPvhewSw+YM3L%bHUJKwFPIBpG~L$rhotF@yLpOm)Udh%bA8)?z?$1wG2}yY?|CA z8Iy1Btr_O7_~6B_qq&*yNdhbnI4xi`bA8+#CE0RtRl9S^fwMSbcP8DIl&z<$@K7`N zH^iDPs0_}J%Xy0&b&IWxJ(^{KRh3a-F$Pf2Evnr)o-f6J%_w#eDzik zHXhu%>VEZw>!s&^w`wc{BZMUdf#mB=TC-)q+USL!6uyKxfC6q z%%S3T+7Ut)d=d%4Q`94<03igxG z?sOb!C-&#+SXlM-NOvZGHqlB-ONc@1(VA}Wzg&@_65FeipWNAHn;1kmU^oNcnGD+z z6Xb+G>yW$87!L$QU7~8K=63Q3=zg5K@98J_x7JYFXocJ3-Co0>%#P)(su~-bqHm~3 z-w6ey(aP$#$?&PbhZIhKDl_Hy;?5fldcex$B9z@EbjZ|yA($)b{;UIaDJE;;nP2Qe zRXt1WW#XjB7pQ(5oaR{*HNo0(WHS}_Zd1^R=ReKrPAwO;z@sABM%6PyER4*K8T{UPt)5IO!k|EGRVaIQaO0stI;iu$wb H|Gs|!Esl2M diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/conditional-all.sol-0.4.5-compact.zip deleted file mode 100644 index e73bf67841c5755df9b2d2282b925907e2c6f429..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1883 zcma*o`#;l-0tfIfYvfKYWvqlpD6?aR5sTbKl0}W&^02Ut$yly)Tn@SBIuYHFIZDq% zxsBXX7|*CAk*SPL4G*5pIGyMB^Lm}n=ZDYh^B255-9QJ>fH)uzRFR0@UUMtxCJ6wz zr4Iln000Of;IH9gaRhu&q)||0B#cCe3m&kR>Hrw<2Y^%n zu+Gj7L+m1=>;4#Tvy!_rh{yfHIGT~?1+h8NBGZX{%IUxPu-z9l&zDP29c5tjB9^W$ zXOI0}d!D=FRuR@9?Y%eSG^6%5yLVq(9$r6>9it0DW!)sWH+CDXl_31brw6Aj${i#3 zeM>F;&n@ux&Vf56FK~6AMrz60{IO?PQNFiT~vh$)P@}WfYulC9@^u$== zSDhF7eh3D8IZv5o^cZ~T)H8|m-}H}!aQtq}z^;56_d%2f?lM2V{vxv4tC9|pjT9y6 zq8Qmj;tf=PmTj(8Xi7&BS zaI?bzC3c)?5StF$7y#8Gr^5T*2%0K>GQ zRlIg%do)|rKY@w{jl`KPd+-!jAmobUNT!Cllr^|#$a2>AukD(yl1rJTb*tuI6lNUL zIYqND@p>?4p|Ut?`B#yI&9dyin?PDP%f?jR!YF!c54Fum7WS5LNzaF_zBN0Y_?yeV zK*NRyuT$L_{gUMRJnMCK#o4jZ|XtYE&>r0z|tJ*VCdNj9|B zd6(*gdYEn+0vqW6cvP;q(#3-i#_YMDubZ6t*N^8B;Yo`bO|Qy)ZHYo+&f*8kacWBc z=p(bSI{Yba&S{yurD;r;&*gK&yko*j8fFu88On5Y4NTJ8I#Qg~$*1e7Zl^*6>TeCrKdU+*zeTvFL28A6 zqKUA5YzZH}^y35Zugy2cywXdrfD#HRN}|TBFD1j^lS;+TQE$RDi|RUzi8^qjH1>pw zWB$9UNuipE_ZrtWKT|nI`saug2Pfwlog?0NG}-X*qZU9fe^bsDY&mwX{1URJj@(ks zbt!{ye7|IHaP|p`rpnP!&y1OkuHR8eurlTdvuqny@1f3P@jmH~O>Jke&TE^~(sea<+Kx zl#Uuy8yyGXDx23b0Q1R_%ok_Qw2seO$!>1Y^zFGrV=M1s?VR@J)f_oW?39k{3#=>c zW*JkvvxX%7bOB z^lpjeHzoJ0mGRt{Jrft6|KOi3Xf?F8znKHNyI3r0d=9*>lSkhXWoB)Za}2 zAk!UceR^1YzL}*n5Tw$*4hb_7pRfE)6Snh0(x!bLrM&78(Nn#E^k-O5E}>grCbOnD z&r0NtRx=sr6~2Y26_vPmwk|=>X*xf!2{n(Cv=|3-tEE8_NUunzld{^d?rA;Wbqu5qq$OmgoO@%ZCH$DEUXqI?r@UXNVva(QX$+o$Gk*EUgyi?v#@BDS3%cQ+W zc_Y@N)Vl>TVK`7#kfFbU%&21V156+!ditqGj7ePCvNu21qr?G%TG1syHP|uAB;yY* zTGR?6UXWhydEYCvZGV;XO<<9Gn&z0ElESxppOl|T^Fnah#X!mWUPemwkkbR)vNcpk zR2%QyS#Z+;Ub9=Tn2C}v9gHo5=qrgCP?t>9^JJ!)Tc4`A6gM*cVEPkYw{_yFe5mbJPKV>h90iD{Vf|sNuZ;M#=`5tjtjk~2ah|jtmyE^qwfBv$Q zeVLf2LCICl)ANTJFYzu=dl&BK9S(DN7%fxh+I(`I%nR=Vb!d)TmTg(+1;i@dufMaQ zH;1btYl~>_X_=oVTU1V9?=?=S&)C9Yh+Cn^VAKb6kx+QlUj4&J)j{gng4o3G` z8Muncj6@we$sF1Uy7>|+$m1y?Jhn&_hWi_`X@vd3fxD0(-`2H@G{JNim!>ebh#svw zvTz+iT6AO0I$WM+;XUaJB2=55r<<5K8uY)#`-$G)NfrC={Ga}Lx`BV92>@b0i}|@f H{(k=fvnho} diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/conditional-all.sol-0.4.6-compact.zip deleted file mode 100644 index 7e88504038ddf833f114a91fa9ada7075955063a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1880 zcma*o`#;kQ0|)RgYa~fHh$6R;g=watT#C8O$y|>@j>a_BT;?+6Xd)3BwXqa2#e`5; za!W3`3x%05=1vi^5Kqtf{dv8f&*z8F>+=`9(J0V9Q$P?n1Ux1NIfHU9t1yKCAXyUt zGynj=1QL93p}0VTH(uKtkJljv;=O!HL4hHmUfv;?Yq)S<9e-jVL1Z5o@B{!d0Gvxm z@PqBZf^++Os*J^+v=DG78WiuOILe!7l#15C%jcVJK4-as##hB+$z2UD>H)kfa|zv* zIrd9@6y1+`z}G zK)QFes%Fyk>r&{`YEsd33 zveTx;WAnhkhVARRuw79GEEEjV#wSX@aLFIUHn z~_N0n_nwG;xUSYAXHb^*M97`*zLL zvahCH1}jTzE}P7qUyFyIS31Iiem=BOYh!U~8$Z{F!b%>DiO)@qPXx|PjezM0PG!iUxM$I>!NJ^z+W>8mQKKX7-c-rIEv z`RsjD>`2V#GZiugP1%`)2e;E^+Fd;iQG*Bxt+8o{gT^ZU<+WF962i(e)=M|{#648o zP_W#%jZ6nZf0R5VZ%|BqypanifyjPIx=Ot$Z9GZ@30i-DJA^J(chdXA_)kSJ1Yec* zhW<%m$AZ+9Ic5z}Ry)>v47TdSD?IVC9LD(Jf(k*GyW2+(ppVD|wIQ>A0Rd{rB zFF_iAOO`aEdcW*h!B@mZ7M0z*B)eXDIL()5w@Pt$&xIb!mmy4K-C5V$xy0bq`Upa# zUU5_#!=rPb$8>{D!XB?(uPMp%IQ#0Eyc1>3m3!?bk8neco#H9}A9c1q zbuoV%wg3pLvY9)#5t0mEV+F5%!-0!a=L{X(o=X(B*^Vwr=4R;v3Tk>HYTFn-N0HT6 z9XZS-MQ7J>jlM&z{w{gc04^3m8kj_+;T$U=taZ)hP`~h z4h>^oDO)lLXlsg%ym|((OJqTILjD|jr;sC*zDi?kAE}>eo{!jeSDDZDF0YKn)U4HNKzwbZc C?0sec diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/conditional-all.sol-0.4.7-compact.zip deleted file mode 100644 index a6d5d821ff526f5e228cd99639b9736c2f833e6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1974 zcma*oX*?5*0|)TUeS~sU`z!v9DPUXIsi%P&}KY_p6v1$yu|Cccx;-h5_ff{tF(+BTn;&K zCmUhxKW?qgLkMY#DSQU{@?$JoZZdl7Plmoor_>_SRB!Wu-bGMfj!tork8F49vwt;U zc`B&ea8CX)TpHw|)5PTn7mz9bde35yRGE3r$NVZn-0(X$*r>O3Xnso5_qJ#?mrdtdQ^To*bLVQ8RbT8lnwO z^XSay$gX)&q!|bFsK??vWUBga>I?Tk4~~IqG}+Grb>$1OrX3}ZTtGNeO1i=Xm@%60 z6)#uu)h~**EyK^M9V1fTdnw3%yK8^H?V?Ug!veuZEjO|#AR08M#5SCYhos&l)K++D zW>h!EUoBWF8_-X^k}%i(@fhTZL0M}(wk8=f85jo`Q^MC#a2{sLBjTaiatA(Q`484= za`n@%o;kaM1+Ra5Zk@%NT*Ko;!6p!eu~eZh>WwI#}~S2%ujd5ga0$g(k29X)H`J{z>Z7xpzF)q#E zh-n1N99fz9Je-f_<||%rbmCy^e;RQg?xpGnfoIQy`|rf1jVs1De6TCPbYIR|*RvwN z;`QCfL}`8!Irf&?jIN*9ZEuZuN1x?W!Piw+#0l~@%Y#q@2U%@~ZQ9ijBR04D$K@<) z(}a*JimEm`PfkkBn(13dSvNp7rE>$LCLVHIN1(k)n%DA=`vc#f20y!dN&Q4_HG3@9 zsJLd+VIz#IrVFJwmp2`lPp`_y%P*&s`@m($1FCAd)aLJjIb=eC%~F)*gf~fohaGTd%~na^*Y7k(4lzV(O%PA^6AfGzZ07;d47gn%GhXZ)e@BGG%TGm#GZb=i!o>*}YE`6DH-39YU zp*xg89n@UIVJ%XFj>6jN+eV0q;u&;`eUb}z(-X!oG5*cSyCq^M8Z~t#SJW7 zeBf_-I&972@*gtCL^ULYmR=qR^7ZV*7{od#iW4Ly8p9$S1|a?AXkG`2md&I$7){MP zkS94B0){DXMThMJPG4DxO0?UYHnfR{6QK#V67L=uX{9PXy)#@t#WG7`Zf1YSUgPu) z>eZIbnLb&fcP#Ij;2#O)HEm`unQIN8w~7~m+r79dY;01VeQF16d(4JbZ%-Co;nC;a z><_oL-WTZ^kxj}%`A(;#x7X<8<$78;`e8yfuh+RMkA%j&eS-#AEU4_xh(u9H0aq?I5$d@)DM6?Pz{1&jH#I^0y{=%k$j-p;_9G4h5dHH|K^DE-ZB*o*-!=@!fSS!GZbZ7tejA#p|E zkPaohh?aTC{gj4ikjfVBMd~bG^U{R5udUKc*{YKc8mv;7v z`8B68a>j30w?Xo6s}f$oK#9@1mc#zb(cxCFE=*O_BrFar;pR!R{tjgyzIQ8LtQb%! z=;LjPvDD_hr{>Vf6^Gcd$1W6fGfvwQd1}S0Y28`571D&F+Lq(DJMBMj&~$VAmpZ_+ z@CExYBHTjv8t2vVt5kUNNHiaMAGTVOQq>qUxjH^AYe=aLJxi)vmRoxh48@MB4UveR zhDTQJ*3BfFX_&}>2B!RjuY&EYGBqXa!Wr6o%E>cu;I?A#GN+OadtIj<-n3{#-5{&Y z1-X7)U!FVRvy)!=R{-#KaP4pVRHf1r=N^{_K?#CwU!s`fd9AhmohW8D3-4CyD;-~{ zeDBQ1bteTOsPT5*j_&?&2;}_Ud}QR2p18!Zeb2HRrUf6~puCkjUX^fR^w6}uJ0Y`W vIJS1iJ`a6>L;(5B`TswrzdZe45`h2Cf20+O5ET0N4*XTuUyJyqGXU@pdls~% diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/conditional-all.sol-0.4.8-compact.zip deleted file mode 100644 index 566ae8cd09cfe8d1b6ebbd04959ea545a44e7fb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1967 zcma*o`9IT-0|)T;nj^W=hlQGBj-(K|@7&tlbA-9?EyIL;94+^m#*`1auM%=)M4y#2 zS0dL!&O~iYN{4CRKHuLzkH_cr`r-9>{RK~3IGD`}p8hdm*oa6^?+D+Z;3$8^5F9p?i;W#X0RRC2^wQG< zFEcNPS4_R?(BZv55E?8)5lhLj7u7%an7do8WxFr7hU@}f-s4Roj8PnA(HkCH>Elnz zZD`-&g@F%FAb(NKsgT+9=PVfCrMhLe@rFb2-DkK z#0t}nm-$t!QrB)XoF;Y@TLC#VoT$4EWV#F8n3q$D!!plJ1-|}3Rt%TAReYvwHG%Ue zo-tMYm7&6pNi|zdLmC|@2Id^^8xf^GVpeMGl^;Fog;L-Av;rk=rp{q6vmfG>-O}|h zna=D#m^j(?4CObg-qCp?Q>0_tB zBUx3GrXalf^VSzn>DtEEuNBcbWn#MK)YXtBR%`(X`)=;|KK{Nqp(wj#XGCO2yRk_g zz3VeibME#%R!4nj-_v&u0Tx)z>mdq`+p^$$Z|gt-MU3lxjgu28#C9jr%zY`cRfnNd zRPQyb7HIxXYieqClk|LoM&_mxXs^?7PA~uIC?fib>a4OdLRj7?!+rl)qs-H;3ec7V zU#1@8&}*Sl(@(8O{81$|yJQl|8Xp(8a>%~8)PFG8(R-0sT(e-piZEVSHDX)tvSD}d zCDb~_^{ymlz2J#`^Gz->NWKJyDU(~EO_^RB$qL{)saMLW%YoeCb7~1U@9NT+spM*n zTZoD zGrN!H8R{vN+S|mWw}pbsV<&9JR(sAU?44gp8QVpbiH6*S2bvYZW_<6Ew4$9-DODbr zQqt*fSz2w|bGgAGUbR&miyH^>Vc|>;Gv`rwc%%}&<$HG%DNIP`33J^VL`ER*P<8ZI zK1AVp@_e4yorz9Blw?#(mqSF6>O%V|Li59KLAjs*fBbCI4;gqRAVj`enIRs|Eq zgYY%#fhc)8P~X>2RFHt=?c_JgczBXk>fF{fe$FThs{fQ?HGGM>>E3W-_W#Hr@ZYA@Z#~|Mj&HQX0kl4 zxdDC4RjSbagp4@4PwI;L@hWQV$EpU!;w}|!%qIvtdx{&@N5i;0 z83Ky(axe7~lWef?+UPc%3ba;#+4?;zcbik_y?{^eY$TnY7U&2PT7CEmdT>HkcFaS! z#ommoUnH4EX31r*jX_>3TB;F;QH&zaSg`E7#eIwnQCeCw#Gztz@a`Y=fb!BVRgs zy@M7(9^sk~L}rV~So*w&?>PU8h0Mg*+VP&$Cj1RH<(IL^<|CpB7dG^U*%{i~U)n4! z(7Ftagt^mh!y5-Qs7Ug(#8qP`KuQeQc=5L-9X4AVf&VvchYu09eoZ1u-k6I7%>X;^c zU35f7l=>SC5jARmBqm=FHsz088-UyrgAa{)Vs6RYrjPiil77HmMO~>9difKOtE2>! z^z5AL`ie6ad`a5G{$zwiy4R*Wc$=@#d4$#v~3(32lqtOV_;;8PM!AmXyme%W`XqYUjWD<0IO)0~Zp~7M^ qv@>ntpkoH$e^>N3r2h{A^w0c9Q*Ghwzaa(y(C<3_UK7rL-v0pJCZl}- diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/conditional-all.sol-0.4.9-compact.zip deleted file mode 100644 index e2f62380531cd548e7aec56defe4b4313a5ed456..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1905 zcma)-`#;kQ1INFMMQjTv&AqfS*9nE9+=

=2nuNxh>1E5xFIIsqDDsnp>n;ooZTS z7*lS!MVN>Uq2v^f%kp%d-=Ej(`FwtOzdrxK=k0_M5;g_)0WhG565^5};c>ccKLEhg z000F50D&CrOQaIX!9FBy9})>oA(OoQB16bwRBxX!LLf214}FC~4n80Z2D|{^1^}E% zOAFB7)ekKn>Sq{3i#vmfDlDbs+c>$iD7tvl$)}&$(bbI}Lep!|#2dXVSJfcirNy+q z7xx`k{=pOk)QY+M9Jd`mJet#Q9HUHtF(;rZAg0_ zxkg^tnZ4RE@VZikiSvBuijp9@{P2$1yP7*d#zpDy4{CZb2;`s2k1L)>_jd@ z6zOzk9g}LZd7)-KAe-%N^4nWMQp?L@>d4S)mhOfFF(X2h|Hg^~|AKAAZ(^e5_S5)c z&yTF5UDSUVKjr9)D28f+m#+|QK{QA=7o!J9r8E9IPt=tsWGRHp3{G*GBsVjQ@Hb$E zYIvKHvz~eVS(aqeQm?}|Ev&HlGCBfW|LbJYp z{Zjsq^!6VU54d5IMZ5WWSw&sSW2w%wgpqID?8fI5flWeB=QYGI(#g1IF!@l>JE zUSQb5aO{QH%&t`~u^h7=imi>=WAz`=I5|v>569?6((TTLY-wEIT8EciWSGj$EAEV8EG)*%}y3CYCB3S$*eUtVg3F`hp* z5$343_|8brJ&#RwxKcgPC- zsM$F+c@2BlC<}F=c79|{;t8P(XYD93obKEt)I(KxwkO;IwV&W8u-dfCQwNh2gJSO0 zBu4&L|CQIxNnWC-_imo|T_KS!CX4Gd7j_Kv09Hq@N_%N(*kNkZul4?(7eh83uo6<- zi{?)g5GZ4wMr6)Rp_8f`TX4=^JR@VgQ#f8#?5B*M(TL`){>mui=uX5q0_!Z5Siqy9 zIXljMO0%xpQ!?2;S{+dV+d}i4;W{Foi`sWmwMWwyzrvm@tJ$B zQB$D|e)`k}dU*Fz)(c`Mw{8^ts+h%Dc!|C~d@NLYi(=3NKq(tlkFQ;9# zvqXlb{Ccf;A8-h`93C-LJL!K6CqWpre1jUryCe*pu!?Cp_hWiy>D9c8nLrF11aV2B zPWKz6IyTQo+RLPCQ0L~zHYUm1nW4`lH984MjTBchl$09 zgY%jTjMYo<#vi<>uQb|uX<2$aEPe>Qeq2k(5MSaMAQQ*b*_6VOx#Np?=XXbx?P}Lc z#6Ewg_${iaNg~qWlFkY<{wzpoVqUDQTSG>}OuS~XR%;qj4Rr|c={u75Pm!goO5(s+ z^YE=Yk2VBzHEL>c1v-LADbAnZNm zKf7#yE*u(L-r9UwF_HiG19;@!*ue&LVosU7_}(BXp!4cgB4t7fLx`)I{Jt>hIFcn8 z`6CH+_O+I>?dTY;qe8cnx91@*)IA)6I`B~4((Ea;?bD*Bef9p3>4jFQDbMR=+6>re zP#ePfeJn^(*1Pz{O`67R*5?WETpt6s*lk_W1W{?n!M9T$+D=kB>~3aPVsuY#tx`|p zCBJ7ii6xf6B^@A2ggMBqqKHu_5t3Ak0=&jh>dTR)G!hrUf3jJ>n g{!-z8a|84*{!c49VZgss3IL#Ab^XQtBLA-c041k``v3p{ diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/continue-all.sol-0.4.0-compact.zip deleted file mode 100644 index f6e4949a2c8ad8aaf2239213fc1c6627076526e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2029 zcma*oX*?5*0|)TUa^!A?9AS$b50Pq~!dS|Lj5$W`YqnvOk?YAZriVpy_UN$GQmhapGLFn5mS&T>r7f6xE@^Z7i#-;3Xy-}|q#18AQWKm;HQP>hLoGX+i;*@y!G zc18ezHUIz!jv|o>q}WiSz=(*WF;Nlzq4CjCm&yKtmxJ+yxX`1-m?+ZzeWCzg03a0r zu)KCH?D+QaOZR#|)tSrOZXpqL*czGFF{%jN8mXp}&t^X){rSohG$xRtq;{~~kAzS8 z&0Onz$v`h`INS_lO1kaxP@|&OT49aXQ%HDWK?kfDmSQSPbC25+&YQ2YzQp9K z`akFbtBHkWogipLc=)cD`+%E8oBogbAg4XSg`@sB9Fr#@J+}=BlC-sLy`_6s(bo9= z-NSo~;D@kYZ>CtSxZ2EvH;G^MJz{ulmQxH>tM?EqVYo+xlb@i-*zJD1$61|-dI++= zy7NS36cV8SB{Ba>n|E}9$Xkt+3DEbzM=nxHW(Pxlb%<@J|d zqtm`cazapub?T(GBP3y`EL+(aKX?^-Fr1m2sODUL0OdOz132|+4*r&1SMisHrFP$! zPNxe;xWTc1WO^#o)!zF4@H$!V522v0+dTiC(|Dn#(x6$g*}|fHF4T2lMq#ex-UK>& zeaEOQE7c6Y?*a-PXk@D$WYcR_5u%WZ^_x_p`9XtEJtFIQe-;{vB_AntT)1s*a78gl zw{ks;@fK-VC=6)F6t7};X$a&# zsZN?u(pxmy4S7BAd%Ijz3OoM!)Walk{M16qz-l|YWjQPU(EjOss-*1(-`D7eJ~1D`GGHrD|(`{@MCyJ`(S& z)vNIB*dS0_H<2|$mVmd$M!4hMFGDj}K;5KHEFErQusutBuyCUyPslKG zDoO^8TK3jx_}Z=%O%SG2t!n1SnP)o|hwyE`I~tCWn&4_-EKi%b;&{{7GQ1^UKDab( z^Xb}QeM`+)Y$$8G`0FQ%TPaQ2P0;CuQ&8YwP~T1WU=O7@Y}3k@#iQrbJl@?RDsvlD zD!oQwds7#v7#SAz%!?#xMo;pqog#!~yuB@<&NnwJ%+KstFDMBF5isrJf*!~fya8)I zE7NcZ_>h-|yZSP}kd+gXrX(@*Bm^RgLZo}IN%VeJ%7xN#kQSneHm6i76@561)7jPU z-?7(x?u^c7(Gal-r>JswvYBz21|#dD4=1@3-I6ShpQCg1l&uV>#7Aa3WE*wsJ&o~8j3HEY<=H#wcj zn)XnMoJ@X~*~hcW5kJAz9jOTwb_~Fd5xWwO2kV_L?sQ#5*^41-A|a;;x89b+2m_}iVyU_WvCDW%0o}E~GY18uECb*hk4r>@7wN)XN-fl3O z-WXRcHTB83^TP)JE~+BZVsCT&d^Fk}peM%dgUV*=Oz@g}Se6o4% z^hn3@ep80?N7&BYWeQaQ8dEqohpjL#B@40NAi+90Tfy6it#`-xdZmrIo!-K&Qr9S)BD-Vpxrqga5K7S8|L3Q>0bB)dCL z>DVJ;`0Di~sXa{V$ZuioR}CFR=iZcHMvL8hd7C`yp{SB7Eu896=3xb>G$B~HtP z=O=jubaod^f!dh#A|uZDqDp+O6U7n2)Tzx~8eSE7-s}+LYFZiHB)c9$P8YMotw(Y- z#~CAc6eJ6V@zRB|rP4Qe;l`FP^U`meYu&&Qu#_!6k)}0&gl8TG6k=n0E@tLnfRtA9 zVHji}?68W?MU2PRjF%7pbeE4}Kr%YNWko49Wt2ouKekyxYqEM9zlA|}FD<${I{-zjK>yD0Pl^AZRNz1JUr=^-5Ec993;bEk&&~XaIsouL DsrJf~ diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/continue-all.sol-0.4.1-compact.zip deleted file mode 100644 index 59bc61ff7ef6a764e3d41375074cbbfbbfaf8ead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2029 zcma*oc{~#g0|)SxyPTimafOXJa+E8}Msj3|?A1ncE@2a6NN$;HlWP*n(J;s3j7Q`? zBgWR0IXbjFOB6M^kM;Dt|G%Hl`}_Uz`{(!n7jcD;{{rABKpY?)7J|&qe@?Ix0s!E; z0Du|*0PqRMg=2Ade09-*fqG%VfnL6mA;F>HUg%IC3^u}7FCZ)!C&DiP@Bjer0RU!1 zqQBvRA--&i-Ubybeu2Y+`;<~Lo#f3mnvQoFH!lyxRJLE|Ti}W%-J9q`so(zF^9ynE z8O8D2&Xq#{nqx@bob3kz3l;y)%mf@}`@sY#ACzDqo`H(k-~I~S=w*lHDr5t-PABvI z$NFtda3~O3Ecgd5G)BI7byXn`OFw=F@rc3}Mzt21ePmR2?aMf%-t}}ZNA7w=6rwQ(#O)mxx^(;u1QJ*Cy)nEqI>yu`Y_hiMQO413^dnrBf>4 z34YwP!s&|hMMwwTZSrGoSlz(~3?E!0KEz8BSru54#GZAU21f=(Iq4On$ zCU)oAJ~S%U56ivQg$$%sez&?)l|vds zl(l0-I}&P*1i-?ooRTM5^pt2E(6E!W;}&1pioMr6m*3(TD z?x40@ZyW%eHpsSIbfderyT`F}svTu+E&YrTb&+nkdze_HA;?l!Dbwb|jpk4ggSmoE z1_vY-IQi;|p7KV^XbnxS2sucOT&{RY%18gji?1aX2CRv%f;pox+n#_Ix{eD2=Zx&= zqFH(N2kj4k3~l7L2{SKg#PSZRsbl;OB;x&I7VPwXM<5{fR_Df#QT|%E?=y4BM2+Vw zQ`?{cfnV6_p6;8Ii-p;~#=n{YMk{t~Wcnvae|3S!UYd#nWP98mN*H}9I>O&66?ch? z3liM39%jyt-+h@#cADDYk!dvIbG$zC>s>~z=MI%QI?wk8gJu$gPd2@?JDE4_ z*Tg|{?WbPZO?qvKPD*bbfiOaDmA)&0EALL{dMR7wZ@)UYsFYO0NWmzx!snKIDg=K(mR88m{ zF<%E?{q^}stWci<)7(80b|V=dP@V&fE$HxG_WnY10V2o|OBF?!6<9;*T>Ef~xK*bm zu8d2-`q%AFyb$oz zmNU_1{l%n#?3|_qE!bA4sk|8PdpIqqu~L)vVB}@m50De|GIhPIK($yXUh@87*vQ&? z3S9u)skxY;A*(N+LC$s!AFl|4Xm2dLn?;M^<@OHZ9!mt*&l4EQPBJ}fknS$f8dYAE zGTZE7@UW0%`BYiFxem?6d3Nqeh*GwSmq-H&qU*ffj}r#7exlX!TgxGaP0!Ro+SJ&~ z1H!K}xq5NW*c@!odC)LM z4K9w2PBPJAz{Aa`8V^4C=tK*c+SpZqJ0x`?D2)fZBb&nG@E?koz5pZi9&2Fa6c~5} zSS+%Q@EW|)tmEyzV-A`)J1b#xd5cAJSYgMN(8%c@3`Toc>7O%ZmKqeXdGza^9@m_^ z6D4WM?2Zl1eX7>OM*NY9@}rS%t$m?=Raj6>6=B#ys0#U*hf2WjOWdS=_V>5{Hr*V> z9C?ZUdbzB&vBO>=c3JOd^iEI|;HdyP`*6&Mk_AnqmtW#nI$<<^k-ba!G~%XPs3PLq zrOND&1B&UxoEueM>GYyBBf_agwB_!Z>_ZT%1IiF>x7E~o*UPx+KSMH|C*t$%T=hR( z7sISQvo@Z*69C)njv){R6DYgq(B~F2s!hh6$5xk6x5bjx0wn`Z*4Nd@o*inj%nO$F zpKT8ml75n*hi*Z7>0Io!-fKXOB%*S<43d4g=P&G4LtPdL#WI&YwCA71{hW6b6exuI3Mbjm`M#OSD{jbVa|wb!Nlcgndqxs zcqJwu`^2x#y<`F~JGToDlb_j}}boqli1Z`1*Re*m=I B%bfrK diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/continue-all.sol-0.4.10-compact.zip deleted file mode 100644 index 0857699d0e788e56994679f5ecf813d56b9cddb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2021 zcma*oc|6mN0|)T$$kAc7IX1~PBdw96ND-kNL+nSc3m0MDvP2S@%XCr;;(N?eKQg)9QP=7%d7x4fQuLDkVir5q^oL+05BxcIdl#ie&!Vcym zHfM#rUzN?<9^!!;E{59QTR&yvm^h5bLtEU~{`3P?S#@{OhN{U>U8w4u$5z~=huFPA zIf_|f=lMklb){AiI6Ivgw?}T)8R#GW5Fr|3 zFe$Cu8(^CwQmNF=@R11{-`f$i`uV8(g<71P7}v+|dr642s+BZ8t&9`@XOXm`qDCvH-cLvv&ftvqyh2`1>GFx^@6EePpEXb6ehp{In! z6`R;31mPCpWm?Gi>uEK20yk<72fL#<<+(46zV(cuUVXYiwRThzPp0Os77{OaEW2GI zDH1mI3Hni$C23|iBcHP*1?gu)nqdlo67BRFG)r&2f*C=7maG_1>SNuRr0>5%-8COn z55I%FRZJ1??Q4S=CX_2<_K;&>p2Qrdg+_A_&|*NwVY4+TP0B9}==s9-17FSLLi1U@ zgM)9GUu|g7U|dO_K;nJ$g2`hZbC7q8{qkdl1H65fpH>d(3a1rS(y^Xh38O~u#u>z- zwtIA59fJ9`>fL}Bp+GkLTyz`LNq(X!8Ee?nn&fqx5bwFhe07l_e2+WyL@s5H5&;#~NYiV4Y23+P_DHNgTdE+bgAJ~0V zHPN=>&-Zi9BQ!Ztt$U6^3>YSuWiU-=xh==CmbVJl+il_#@EPcJzZ(+&awn_=VT*M z6OZOXOSV`J@-b>FJyx-jti|2u%)g@St?kuVD0Q#Y@B6dgYxjTX>?Ex=slkpMw)Ly= z|4(YRymQ~G2H7?@L z$H=0PFmU(IPReY8ULj9)su3q!yr>0NYo8moO1=^Z>(IT)B5wG3^tkr9B2UCm^vz_J zSF#=8p3`a#E3p^zs}m9AAuZBo`-Bg^qG+??Sa0jNsR7O=mHp$c<<6)R6UMpR#cA zBN^2TOua`LmM2MAcbwe7P++8Qp~>DX8mP}5cK4S^3g(uQjY^ei`5dI5nV9w43WV4=OL}X~Fl*=TeB=3~9MjD_S`NQbgGcD!YMZl&zr*Hkn6pS! z2IDEMKCbD3DV~=a=lXk%Tb9`$!j;7Acl?QxTp2=2W>XI{{@!R^fn<)ofZZ)H!JcqE zaKo*X?|T0UiT+Da(n$VT2GDB$79qb|f9cH?xUi$}aNQ zK<@=Gq&u17XBP$RvYY(k#_Mmn)Urq0ewv=@emUbJWy`L_Uj|(#6t~@WN~&CiI{MZp z50<5%(k+iomHJC{265c2UnX|RA3yJN>*zuFu8O?mWbpK?SX`ZKgJ+vfsm-N;hNN^S z+!wQ?^q&FxTbHqQ-Oq&~LUg^}BNxp}Vln8mWkL&Ns*TBQbdRN4XL z#I>G$Me6gasQnutTmiZjrO9_0`84@4G{q>nG4F$I6w3owQBXtK+a;5_HVyLSbLv&s tesA|Fi`Zj8LdL@Xo8LbI|2JgNzw`fKY>yEU{r3y{Q|zCO{ew9G`~$pT$@u^P diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/continue-all.sol-0.4.11-compact.zip deleted file mode 100644 index 130cf931d5a75676828e7bcb4f4ce54531e92f90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2083 zcma);c{~#g1IOpS=gC=m90|#Uay~JJT)7zwn&`JpeNR2oMbog0kW^SRQZy09{G|fD8Zt z@I(iO`2^laUi0wxR|-Y@yCE?_=#Vfsj}T99pKzp-ZzwvDi=4mG&Tq+eE#*u7E9)N& z^E?!R8+tlzGRFpyLbYVX1bWl6hop0*V{QP`9m0?48`^tql+dh;PcB_mNMNzOHDgg% z7Plf&eeYI~iGj*LnIs1??Jb8QIB_3OYqyvJdV!&(7Pl$7W}F>wpWI}Z4m}oP72TV4 z>|Sxc(FPWJuqh-ED|}%5`k>$^t4-8BK9_eYe%;tSBGPoA?nF7TtX~ z058M2EiF=i0oe%ji`A|eL3_x~VKn_GQ0;Ki{BWrKlK3=>&)K%o_>0N*DjQK{@QXhm z#%)Q-BVC3l0wa%WK5O^M&9sm7Nm*#_8nt2gs(soezR7{19Z#m!;yUU95enY!l)Uv_ zD*1Tn=|uN3`%m&o*Z!Wy*HUL6%U7_WFCk%ph_Sf=I}7U)l)^+rwY{RFOxMCBI$k`- zhNx4ZAA00bMEx1HkWU3AI*jT1A+M)JeG+*2Y_QH}Rf)8+Wu0KjLajAHw1(UNE#`BN zbv>t8mgXAo=gmaQOEqgom|0_a7TlU|Zj|U{>H)>1W|bx@(KyXmJwbhpo)e&{Cy=Y^ z`*y~TL`5x7&a2SFNKU=Q5WwHrac1ymasB6lQwKM(LYY_amwIbeVd>o)pScp0qjw!4 zw6$r|>2wzs%$Tl^`OnB0E8cheZ&HVuu_h&S77K0~szs7`7jJr^qE*KJE@0knlrVj#3t=lQDy*jF)vpypH8rP2@V|x;JqvEULAqp7Ilq|TfLJ zV2%F7ok!RN%gYLOlaqj=ub}gm^bt7q*#KRs{~BSwi6U)ElBW)w6ZLUSfiP@S0u~GV z3<;f8E~BIV0Zkfa{%3uSA^Z*vC@vxOc#&7!uaV9N&xYYcbHgpunVThQpw@IABHnh9 zJaM-}_wMRwfRqIH=aFFbir&ckMp6B)HvH}=77>RW$7Ze5-K+_?^9363uB##9G(8_a zWdYehLO+$#oJiS6cKwV*;l=PhY@}|WAK3tQuW>U=NPy`eF2B?YBkRN{6FzmUg?ndY z=rQu;v3#Xy0kb$2{a9XlMD25vI34p3O`MW75Q$UOb{m>O%bW8;ht!sjrttEajnRlD z0$7W_vJdshO`JHn^SVxnnO7G-8fQt6As{7TVHnHg*~5Qq)qvF4yfR^)ZUST8gWXja0`(3dg1 zn$Mp~W)um$+M24@mvf^|jFU9;Xz2J$j|H!2nVp)KCqMXWVf`0A!(Qp4q<|8>u9t;L z;bZ*9atgA`$}20}1Dhwo=BGwmJq2eIX22dOU}I!Jqbi=ca&b53y}fyoFF}-OGwwT< zEM2## zzst7V;d0Ac zW&`1A&C~wT42THH{)Thv!Kb9`xcOdZ41dEKXcZ=OmvVIq35Yp08t>C=xGAyZ=|<)j zZvOsIYSn(lz=4iSchM2`jH)Mbjpz1nBWNH)-Fj%r5|REQCI!toWbCTi)_(oneMufw zXrfiPWV$MQlFsvD12^%UJ6NP^S$!o@Em{8)L_bS0^tK2F^$Y>?@Z!Ilwm6a@J$jY@ zgq1IzthRkNdY%+!W6s2^$MV1B{oCLFO)S&D_@KL7#%4gl=6WL8>}c#%#C0013Mkr+;YAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH2A-MS$AlL*64X#_1FD=tj(kY-<@%!w z9Q!bZm;A^@jlJxDrt3T7JiV-CtpQsMx>+!5a_vArufo9hq_T%(W7os19N%DYqQ^bP_7%?? zW|((zL^5HA^KWEnrwmfTZNy8Xmdt|Mxvf3hS?UVQ*ok$2`~GLtKEuh6WrR!G-N?o*2%03k{GU6;yrMAo>@DKE z?>paZ?~e6<<8{Mb!h&PFXDWjMxO8tl?)ZH@?2dwUf*jPu?*TSN%>Ee};Od`2>^Feo@CSuT_xH7%<-wUs!vE;V9-Mj^KIo~ucw9{yo`5%`nq?YWd)A$1 zy;Zq?t}qzZg&2O(I3Xm$`ECDS(Jx+I{H4Y0&As0$QDwE4N$Bkkotr~7KdocDNI?Fx zT}cgb|NcOb=)VBREIDTbZ|QDTC}orDLpqy`DU_FShCax$b(?Gkw7||yDn?x))c*6A z7r^3=3+5*g<1Q5jd(wKpq?aHCaZCqcVr zm2p5tUa_uCRe*-WZc!wJ7=)A{w=VqWRdU*c%sxV6o|yYzxk#aQRD$Xl)^C)gpxds0 z%h!f?sfd0OG}f{?oaS{?%1u!c5B@I*)}xWy3$i|mR_>xc2Wg>47P46Ct603HXxoOOA=aL9yVgJ@tS$~=y0?1CDB$L3hrUCZSFR}yX|== z*`jc8XAB9m-#pV2H zopOcaep}dnN*x$8_Z8Rogji9p0(gs*| z=9}{$#k2Z5jO7a(VR%N~`=L7$>03ZrlD+)vkN{{sF`P4%QzlA}c+ofvWGQZc=}wM& z^|A+e^?SlSh8T%v7hGHVo)@sqK3W40cFls)_*GRP6|*Ut6o-gtydjLaJZ%avbDD_Q zYJrDQaVy9fo46B{F_|`E?e4>;Ta?=zglh13BSz34rV@Z$`!)_UHd}nN%|GFHq7I2u zXpWJKD1!tVWQlyoGF}a|^3O7VKV^jG+>j&X_58&-29hG)On6V7r89t+?Mm*jDdMCK zSC+2E(k+d1GuvwEL1f)kdT8TcCAUdqrJHnAaFME>J2SYwA|t*)x3p<>-oXAKV;&SCy%UCbbd0 zXJE&Kb*^|DDFEfKrVLJ4Pd{dBT;lbX1ZPyTg3CbbUUKFq*H@!=uCsj{*_4HpQZT$3 zvP^H!<)MoP0uGUP4y335<3%MYzmJwa@IUqT@!uk_F+`=+4jo-b@(V_6&#(P_R97cF zKz5j$(BjFPljPOxceg8lD%O|a!1pk6U|EL%nV%ULHA-5h+q&u2pG+zKt-`e#qKO}= zp3L3w(s0q}cnQVO>(H!fjmX%t4M#4XI=kS(&W}c^y}Oab;OR;uY>az0nC6ICU`=jP!~#B{jms9n&l0U+7SWstp{{EB{kT8k0mgW(f5g_UaQ z%?0k$%M|yCuU+l4%Ywu@9 zCa9H5$wEVBhHUA7A^P04N=ISdDLcU*opJK-)@7PNR8|GN5D;hGDlL|&KiO^&JS~x6 zC`Do-EI;~-q4y}e$4{TNybW)q$)@s$MB=wttdYlq+W!M2Vrlr?b=;al%VKuqeK8Z{ zcAT;CVpcFs?O_vDnSZ*pR{P=AZ@=xSF2}O-A~rxHJ&s?0z+f`EI!79!wng8U+II*h zFdvvE2wC!!#JN{4{*tVQ}&kM;7Iu9M1v8wQTIT1Kw~Ntm6a*t+h{kl>`KDb zp0FL>89uZwfLMc1NA+x$Bgq17Z9(XnW}Xo|Bn8B(-V{Kxp8xcekNYZ`Kd~R(g8>jn zVq`jcq|38^>1HU($2jalzhZqCocnqd@MBVgj$J1Acr*^kV>Gtva$ zEJ-=LP>&hD?KdvO+LX*<{m6Rf(UVEja4(le*hHttGS>c?JIZDj(H76LD(5LGLl-!; z4=&7Bc&{h=;iAa`Q)8~OG#Z|rIj;#qX08Cb;Q$WQ5Ak43;cG0#*A!8K_3 zxE68CkH`f5^9~6YP)h*<{90PL}{ AY5)KL delta 2257 zcmV;?2rl>d6UY)6P)h>@KL7#%4geQ(a8#Ly!{?p|002!ykr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*+bkg@rHzb#nLZYUn@@>hjU&1l$1;BC6(O9LR z)&u61iiO`WiTF}~fP-6FZ2S{Jpn>(31~>pB@zK5pCoEa1s2I1C!UH>7craD-pB(B@{^aw>! zuYi-!8ZU0r@~eM*6YFOg6EGVzgIql9Am$P?bFa5ue{VndGdTF0ZVK6(tR7v-b8k78qI@dB< zXQUi^+hz2BH8ykA0I&$qd3HrCY*^a)bZdYCm`olAtprAPudO9~nc~a`#t5|X=S>E= zAU4!|dl0T(3^qmO;WhcfaroFBkikv@%Hxx;3Naxv@Et{pdp=8dQ6Z9#$VFB)+QOQ{ zLql3S>PNN69{PuR^@Vc8wyldJjTBiW4HGEe$aD#Vq%^NdW@19dUhysx_kvDpRLeH^#vye)t=4qs%3K+wqITCAub)h4oQ`?8gY+#5+X{(gz=3 zMa(&+H%6tQ^Weno?#gU#XxHAj1RwYU3w zCdGoU?xs^q&W`9LO`Y9>dE_9H`6OMjcM$*3^wjAz;ZB;HMI#Hl3lrBGZ>8^BTsxR! zzM-juyDT}J_Pw>m;dXscKfFN=tvS5~VBnm+mNZ}wDD^N}5_0C%yVyewsMg(o zF6|9;MFFMOsXc|?a?V+17Lja%^!?)u=q`B)_k>^-+EdICU^(!!)#cAjoi}iOIzz9Xs8yd!SSFK{LRMX3_z-ExA$+M&5#C>fzcS71SK-d}re7DXB>b*GP+auDJC6JZw|{tqpy zHjxOcKAv!LM}92Bx|a%8{$3$Y7?kqT5O{(Hbd4ft6U2%xv!v#Ft_i4~sFxmpvobVv zRxjg%DCtpcx}@btn6O@#d#DWzdw!U6Y&U?Q=nSc8n=tY_=*W=m_e75*?PUFu z&Jnxn5{3zbo&*2l(s*o=9My)z+(%Q~q+Sb_{F2k;+#eVOp8+1?)@C*xt1tkPG#SM@ z=Vb{yVB`(w$TH<3DYgPS<4#|H6VP^_Qn`gb6s@-+zQz@Qf3JOh3hMVt*4k;!l}+cD zZ9N#PkWzm;3Jw$0Um;dhl+^n&}9Ry<~O#K>UAb*qz{$A zaAkDuzZPZbr9akQuKE4j>90yn8^F)Crk}}l?EDVsC+g#n>r$L6ZyDQv$T>_=Op>Us zVPg+YaO9Nz;-M`b$;1GHeO49zW*u2U6HJNa?arfCoVcCg9sm1qtm}8rc4<(&v>)+Q zmJ#NoUO~sTEEdd0(>vjI6rU(=9n^c#+b)+QQm zde6#+s3NQ4V#TYXY^w z$EL)u_RXyXG>SPpWUO(6(i*>M&9{^VG+BU*LhOF701@YJ`>N7B`^ z3Nr^Ol#z>ywAG7iW%8_9^{{|;Pk6#MYW`V8iC>Cyu#Na#%D%)m*f0!- zu5hiW2PF1?>f2KQ6&sy=zEV;FLvkesj*UnkHVGzF=i>#@4B8i&&D$0FCj+r~e%#Nmv2|rh?p9iIEc6I>sn*n@)D1abeL!H;?yJRN>0JfR{ za2x=DpfFMdjueT}3?vdylf#Jqm>bu^!Xx|x!-GO`6wGNnIgE6OUjXm}fJ6W|mzs*z z`Jr>YWbAdT39RrX38&I4PrdCbYkHy{+NsyL+#g%s<_VtLfF&m~d)-wD3zxa6qbMDm6JF0pa+X}C;z{)su#4q1 zTY4DR++CyH0E6x}l%Tm%CBEWos`JY0)GuJ8XiRGR8hPl>g-2<;B`Kf06Mc6sJ$p4z zxOn%fpHjT~mLI}h>9)Ge91hP=L5Arq8ml}Wf$~Yi0E^e=hL~+^`KkM>L;Q?gqGM)J z`w^tvY4y=afmI_rzquOJnVjMQIK+?vs;HCHq$MJn@1u-cW&1bFV`Mp<+eKT5FvzL- zTRwbMqhg}sCdQiwa`LVPgV{sYIeiJZaf3%*h@6QC-CUG+z#R}aOOT=-TWa4Mc(=;X zpNVct7(`824mpMs{U2u*)AXahQfCR?Su^jy9xx;rh>?=iB6X;Hj}=k*1?c{R?~*xp zj`pZHelzo7_jJ(eV)G6SKeNu6w{@3YET~PRIeUg*@S=QVz5DY7!pF-(sqAdCNk-Y>dbOi z9jSK$X*|WVZ~48YGDZ$Uj{rx4cC|zVoT!-?gYL_rmfI6V1~8kBuYIPk@v=v32E>gh zQL{`GOozfl<$rAY+zD1Qd!xCv@CS~c%?kQueC03nDtvO)zGbXYVfT`@ zj*ZaKA}7D(;^}+TeD>togQj_?hgv|KmRnbXacO=LJ73kRaRpzXE-jB!%CSTWQ4R2U2r`i}0MZQp{!T_x8-6YB+=nGPW&%_4(mHizp%xcXTtPPnqsMvC=K5qd^LbctWvk z-oF=HZ@_sSgzNg<*%ex=TC8!}-7*k8$+q*m@}z+T)e6P(&8D*L4#i$^@^Ue;qm8~& zM2i}%spqqLd%smK%VyZ9t+pJnxO~FpQglyt8v6Wkmnj|=Sve`OVdgBa?Ly@f(%!D< zFoY64$o31WTwE&^?k|YLytv!w8Iw_4I=AC6flIC{3ww#&;uq)xVV7vZR{Mdq!<}_k z_}0_CJF_9;Z8=h%x@*->3S-aA2nIbxe8_yTYwkSB2#YGQm0wzcS;WFvxqwBYlkMI2 zUNAl}xS5HY&j!?*XP2Bm1%9U{5JZcCsz+%u+j}DDNR4-q4V&5Ff&JW#TfAI2>2Hy) zMCq|re8rgw_vRdF#=+4~OV1 z^FobpiT$lf_+!-!JjR|2-O;))vi@pR(3x;XxCfLTaB9XjaNeSHAJcy z*r;K}dOe%x*O;NLu6@xC7@~a+HaG3Tf!0lVb0F|F_;Ap(^y+=_qHw-X@d$`!Z4|-c z#(Hk}dkNX^MUL3|5owM|3Kc5n zNXgxzgmPBMEj-Th^!)z+yCC;0XXR0AR>q`04EG zPzw5bpPv@XdqWC9a^(_I9i`8xREpN?J^j%d!Fk~V9$OKMi|OV%DF=N!Kf~y$VcX4b zVzd29MF_u#EJq>63VwB|(Io$ktZu{|M6|Z}EhqZU#@y+(rU_c6OuC|~T0Gdn{EJra zY(RD6W9=tmqFYZ2oM)s8JPs}?Paa)PSOBB1`Z8*lXdP)Lg~@BvQtmk_uhQ&ZwoL}% zGD18NQEIE6l1_+JHP~1{U<>jjS?@arS=uGacSH;@>orCBemC;$ujR|6-*leo+1cen zL&#O|7SdiQ|1vp?(bFD*?p1Fr7Q;gRkl3%*zH9boQfQ#BhC${<1geF8z*AY zk38hhoMT|EX6A!$)7-&Uy9mkR25m1;?po#z z_2%NP%*c?kY0Jj9)!jzx(pZDVmtU;jxG~%pwZ40dwf{5@tfDd@@B1rYolE@LxBD{cTOk~S3~-_&y8uByG`3?}P~ zZI=Y-={#Y&5?K~YeE+s^YWrcl0ntDwyzua{h2cdaU4P1$!=6YYBz_0)vf|E^lH z>oJb4SmA^krbU|%{K(cts#tlZ`r!X|{1gBZ% zx(N$%w{l_OtKR**#A!#ckp7a}`P35lhN^Y|QR?c|;#U}VR-N|@+s*f+o03Bn;VaB1 z1Y=jc%xt{5u6!lgP{m+-} zkZLj_J2%qqZY{nk)7|b9jf)}8%M(bH(VC*5Jkq|&@#$_8@NnM*G)Ew^z#;11LUd3A z2+5N-dqRfOPxT$PuG3gCwV5k#XMR>+gt4YoIwwy$)ZRv1SBShI96z1mk9Y}Bz%#sw z;YBv9bm~g$ai>NQ>owDiF?9LG-m!Lkr{SQ~m){pfA>TN?hAC z{H1OA<$gsZX$Cuzh~f2qiX)uocaL{YrhU0Api%6?&BEK4$UWBV)0jnP$YRRFuE9FQ z9|>)J+W-DlhE55Bw>ft(i3yF0hKM;Hr7_tDe!`U899k_!bfVpp9M&nxJHt|K<@y|D zb7gK~5q~Tivd?nI(#qt)Z(pA>nQNlk3t71XRI|NOi6LfLRF`b|aNxLDoaVi?OUI?q zg}D;v1=bmVTiV!#OF-6~jWVlPAu~~)vWn(rB~PNBYkpWE?h4pWz83zF5FgV|M(Gqw zdyS{`W+}eQv6nLan)Pi%NTD`)B%a{!xGhleh`|D6F4a+LLrVrE<*KQFElzQEpJfUj znm^y6Y9U+Fx=%{!kebaA!!AG%dp34CrV_PSD==TJQ72q+D>FQDV^Im(F=SH_*x{~6 z;C3^MsuRuegJ5xkz=-5=nR`3+RYkvhaKHMEm7T_jRqA1_u=D~qujC^aw@u}#yzY5} zxOYVzouCIGL)qn|i7QQQKZRn8o*U1crbqzJW~S)$UTc&#XS26_(|DuvHyiph=}ru5 zEtF}|Rwacdy08Ny+1j_)h$87gdD|iYD##!6yWxo)6jRA`h1pjWw z^N)DwG@ACbcRJU_=7r$zQsso|)paeb3_j|+mTa9KZLlexyp#Vxy2e0JbDZ*e*WBxN z)h$23gEbrU{HVcFy;#>W-CLe2S?B_SrDP2#_4M4U0DYqX5E}uQO3d7#E z_Qd_?22q7X);B#)yDO_Jxkqi!V_)k2-3u$zWr)^^7t&|>;-*9kdEKjI$B*TVYy{{a*au{N8^}4Y|0r0Gt32K-3d!9&=^y?0r4};I0w?APWEh z95C))F7DnaC3`el*%O1dL*cO)oR^(F&cWHm2c_)liE$U;<^k9O03-n5I+^UGwy)-q zJxH&C3#N6tyT~=44v#WBc|)Q6XoGqsyPc3%YsJO-As9;PZMKkin@28@``%@leA_Wh zb}Bex{%2foisz=ZQ+-sByYsJvUPuxo=pyKqh0orv75HY;jAy)LjLbP`7}tF_WL^3i zb)MpniFERhg~kf@@HAfzXRrNE5<|}9CdrJ}ix1gNl;cb3EvIYQ-c+tO$`>pXe5|pW zW59$o<@sx!oi^9)xD{ffc;Xth(ZqFTt2q@5C(Q1O>|sHv$gavitvuzIPBv*q1yY?E zt}T=|YSu@1F)sI|#_gZS3Uz0&4Ho%Rc0Zc|iL3@}-X{$^>1t~(PSt3;!Q$90ss6;< zbF6v4Gr9tEQANepX=UEN`tSky#mouADZ84SmmNz`ac%LEpnG8SG^!4l{4Q6P3@)?P zz_0T#_#+@<<*&#rs&|WPh(cnb zKSm3`%xs;8gBXrNW(c(gzKof-6g@YKbQO?Xm90g$R;vTES0bELm;VYhL-YmgC4 zP<{GT%m1-0Gnf~VPmFoNJBgc%J0@!m$|sxT83b#~tY;q+Vc*T$rPPV$@-fEahsrUB zVYG&WhgHxE-JkY!D8QRlt?tuhpcM%t9=DGFJC=UD+%J6PHM7QBWhY5 z44YLHyAt>y>3|f0CwCHBypv-M7Do^U*_DPrs85~)_Qm+l4Fv?va=PF4zBM)0lkXJc z+Nt-N&S}&Jd9sP6pFJ8GB?ouR7|9gS%x`Cy&aWwT&KL*S7mEh6W@+3)`#x^Sdh};v z$^=~B1^%dEFUyMu^)nXg!*)<(KaI06S`m${WC(HjPGq{ZE%)+eRY!Jj zfZJJKmDu)YA#2lA9$=Ne+QF#_ct&>@`z3Ez*P)`wtwUqFSmfs#JB>l8?5^=IRx?;G zP94QkP>M{$UjUY?CR<+JF5+SjTufPRr|S_b*B;m;?@TdAClX|$V$b*eY50Bg-dl9z zS201iHzrNyo}7pq=&H>FaPjsO{kn9}H*lzasIdX9J-ZK*8M2j-nR?S>PO^#Y|JSq5d)N7cCuQ%LJ zs{lI{9-aQ7qD#-BO~fd%_^$4qM~0c*Rg5%WG3nVpQz`dVkU$K2@ZON6Mbp3J_sW4Z zXh}IMw4FZLoIXUeu3+y?XT7%E1%^?jOdfgM1JWrZ2c@bYml8*e9nI)_MG`i2 zj}*1J)MqO$3WZ^_+X3XJI*GV>U)Y{D+V8U)oHGZS zLs`i;m~iYOqTXYPICK( zW-SVI7&F5Cs!5CwQ>2u~orLcMRm(*p-|wu!CFILdw6oyoKuvV8 zR)lEP2_NAIpud16Q0PexQrimVZTVeAfd;0A{oZlOCOxY85g;K)#ZmqJ(j1>eBLZl8qkj@D9S7$}-}DJ^|At4Rb{*PEqBykSa-#xfV(OL0y%}T?Wk*ZIq|o4p9=unM$GWhazt(RX z)@s#v0r>G*y1Wq8dM-ip1S|EB`3E&_YRJK<#r3~Y{_FC8L*n>%{vV=E4S9I~{c`-R M+22k0OFRJZ5A^EQzyJUM diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/continue-all.sol-0.4.5-compact.zip deleted file mode 100644 index 5a6ab3c41a9c51677153aa0be5e54703f1009025..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2043 zcma*oS3Dbv0tWEJ3N=fQ6>WpIX=2riT}tdKwQ9xQG>B0v6{@x3&=^HUW4nr?QluA+ zT2Z7{Q|Ic?-Uzj8)`;74-|z2tzwhCD`QHC_)|_0101kiW1eT?zZQ=Thc4 znPj_qU|kZ_aK@26Xa1Sn2ogleO+g3m7mUdj%cZCZ;ho}+_E+?FdKaPz;5=CvJe~74 za{i|UVZlxEvG(Us@5t*vqzXx6GP`lquOQL}+N|b5d|61YzFnW~a?yz8fTrhHv15Oy z`827m<^8BP&!DTlab%uRJNjzMG;dWIs(w>thIbN;Oee0s66O4>+aCLv;@b+E|B{MW ztse?r)5BH|?WR_cJbJ;2O-50tuN@j{J8sBH3>2M3n-O~`Q-39-Aei@yYE&@%@K2Gn z(!-^OZpL#(s|_+e(gP$8Qm^(#38~Ejg}z2kvw*~(D+42I@tdtC&GDPUp;`zz`xxQb zbQ!OUy2EEp^SIiR-#D>I*-`RA7BT*BpLc5~)3cWaVvEOpY%$k5~R6_5|`Od2% z@YEJQoOQ@l%xD{9PVwGL^0l;30-ak6&v51}H3Vzg+>$Q0iwn29POV|yIop#mTfURQ z=uOCuFmcN^PpA=jp9NQ)+(A)@Ct?CV2hE_;8wy7f&?x^#3oCXO;kaM0uhbK@7(1*u z{n5^2;xj?D-qUc19HunDv+T15eWdX;uKw9ZT_l<3*wcp{buuB^p;qGZ;KmXrq&ZIYIQ&cBEzl_um-uGd)??G-bZy0;B8MiM zvG=d&>-SETQC7d8ee>qM~bo-|C=(HJpqYfiFhkNo+?wc6A zXlx>jRRtiP7)7lb<7vVuqKSBE{e%=TgEJ`pjADHzOP2`N z2Zw{lKQ{Cq6dbE%251Lo?lA+!8or#@s8|jrTe{Lrx3fU6mA%jG$I|#(ZnW=!W%@dJ zW;WsM<81&KdigmH`PI2&oc6~P=R|}}NLUAtW;rMI!ucez7e(u2a0jZ9xoz>h6x`5e zgPkq3m~JtTPFg>^EigAf1@Ipb(G>C(@y)4lLEFpMmcR^IrJY`Rl0mRxpa2B&B4|!A zilK)z_h+FzuQ~!hymn3f_TrVSk-T~E(%m~AaI}`mRzc(NUUF&VjctKcn`fa__D!1k zbmuI2B3`L3f6w>Ka7E12cMIElThh>+pu22J>eigvxW68R1ePt7+#E;G(z)Px&gDfFMBgINoUsiZ*B4ojOAxg z<{%050ffeQZ*uz(!lh}@S$x#=;KSj%xv$OFqhISl$+8P4w_F?i1#KR+W}CC`tWfoB zUTViL_!TUiV7GTmRgYH;Na=yr7of27HU1;*$`h531E~TN%%cpKZgq*%q#sx*6I*AM zE3R`m9s7cJEwNE7=I0uWmiGDO0q0id?9`YVQCscCF6q7Z3TxV*?qV0{wew&X{r>LF zrK2H@`-giIEB@obHMg{0Q2o3&t^Bkkjxq&B(%Fg$@!^LfYF55KQgPCaOWsA(`-EK$ z#8c#QM2Wm=>`c!Zt9!ZuWiS`Kd&h4}oJX%nC0`~vPrvMqeWo66KTzitM6T~X<-tFV z*{XZ9^J~h+Pva%j{lD0~<4Cf}qx3j;@HnZ<9F!yZZ8Wu)QQr`Ia6lsW() z008g`AO!mo?s%);^!L{w1^ByrlLG^Sg57ThdEtFSyfto-0tgW9V}Kg~L;=8s#6+C- zp*FE(=v||sKw&4rSK*Cxdc>uxu)nhdt)K-E&Ykj z$}Tz|_l)oAuaAFD95a!{HK$Mr_?;{^JQq&UI+=Ve+G=$4}t`w&mi>4 z#mfe!(ExO=T``z!7j7=UcMi{)kJ)-dl6L|)_ zSt{4j!&%wzxIdMy+y2g4i%H^WT4ZGiBozt^`@lmb*?6&V2K3fiwdzE>1(Wl%2~wu} z5sGRZ{n1w~31Tls60-8c>+_azaWS+%ELbn8v@V1fV&{uP%?F*NA%PqAgr#0BDpah+ zGvGyXhB_9bHQoRCr*)S>Y`WEp;75Uy!NHUnqNNvBk<52CbS9Hq2yNpjU$7A-Kf?@# z9%dnxA&}&?ac1+F^i745&(DwoA~YweweoJeS%^qkt1Z|s7Tx&T`^Cz&P8{+)SDE=vGcGYm|>6=4sLC`*e?} z3Z(y-cafV4x4pK1a%SqZHF?E~MCRAqI!~=73aM4;nRFs$1&1t?PF47+${e_IFJ`S2 zYey#ltAV?XophAK9in<4tK9#VbGLya%Q#^U`(Evv#~1Fw0KGlaSG7)_{r|dGxz3g& z7A~|-!A>EWFhJ!TUE2UDX+dCy2w&>>@NRSwgh68n>00I^adJsc1wW18!k7;#U0}xQp)i3ZknPJy*>A$Iz~=3V+G$)VvSFEY5taA zJ>U1;bdlWTV3)cGLB$fV2GFh|T8L-IP}s|m##qELaj%fBTxsv7b!XMOcDe~KO7K-_ zYHtyO$WhV&B~V#r@D_J1-vPpJHwU_sn;A)p!b% z4s}SWZUo-3(Ol^Q^dFbeQcGSQcPZISx2wXA&!hDmtVK~GwGjWMZ zCo6RopDzm#3!c(Y&lGl6W@K>vBcU)?*{v8ac7ssp>2p#g;nCom{fst^G#NGhC8l~1 zc`P%?QC&~YyWl)?=Rvav`bUew{sq%A5;l9ptc$f~VQt=xU zc#e!A7m=&)fV+3Ds>>*tCcRvs+c~#|fC3{s%0Eyf>1O_P!89G8Sf!c=HS{O^M4Lxn z;)N?&lCTT9a5Wa=&#C=4PMB;>*hyir+u74c5dndmnvbuCHHl9eLudYdT;z7Iv*yM7 z&mOf3BKn5JI6)Ad#2QCv#<$a!MyxcqrJ&~i zbauC3oT6jByi^^Y&XY+#?GWhJl4Q1F4-GvMe>Iu-i>`oKsJ2JC-EkV;oPCTnr(-Yi z_od962Jh*x(5qyTi%h?Q&iIVM>a_%JY_TDq?j}M7*MIPST|cMj!Wh;%>Y+2n_+sGD zIiu?-P|HO=2f=AvbhgsdH)AVl?RjwH+%VLDOka^hCA~O*x}I1>1&!IZwsk z{tj8AY|s31SX$Rvh)NlS-T$mj$bv~J*83N09ku?PTaeE6&evcj_0Zd0#=B7`c#qf1 z-;dH7z)LK&%2W&pOKnRxBQ~q6w&g0I)ZuG6i-M0OTqAbfxrhx<74P(V4!Y)XO}MD3 z+4Xx$a4*AsY2E%PtLtKYiI!X%N*XGZ$(zO*rG>$BW5|aXfBX3_wqiqT|0m diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/continue-all.sol-0.4.7-compact.zip deleted file mode 100644 index 38fda51da7c44138019fe0080e8af96635ecc9a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2115 zcma);c|6mN1INFnVb+w~!}U4Us}3xg}=q+d?6c z6q_^G!^4oK`1Sn$|Gi$n&*zW#KcD~KA4^l#6KDVgZ~^>;AX~Zlw?(<^0Dw>c07(D< zyaMq=Uwo+d1y3AKfe?su_YMmR3?aIEhIsk--tt!PBLw0hC%}L!07Leqf_0GC=Hy7c&yUPu@oe!(Wv(Qt9?kc{~Swh7S?IQ!#q|>m|t~lP5jQdzG?S})wF2{L}pA@kvJ1Z{A z+b9QtN_wGa(<{9VR`=B;q;$=^pHW%C?GHhCi*XkB@t`GD=dk7m^gJ-7p&G~cQ=@#{ zGJzFm)UCgQ8unwi_i1x!qMDi$h1A?Lo&wu7V;PnXX*T?OOU>DbS_oECshxX82GF->wk)PRnDaj=sBqioPp#%Q-u=NXKE` zQIQN^41~1UX3QGV0oWBvS?$+XCBQZK^5reXszd`EVE$B_YKv*!cbBDqK7FbMc|z!B zA)gswfg!5d=7;XVn)jF##-53?qHZaz^X}@a9CjH}s9+kmbJ?AOw%pfXA^vyFDTgaI zbWP$Nc%|-9MrK+pB`;-uS6{}%I#^mFN}J~aS9)^7`;eyA8qF(R9hALC3Y=SVd2ECu z9d@gz-#Mb>>2cqTBZGlrpH(+7oM{uxL_lAT%}H8$3K)4btFCPNc7B5)&f6IZp;XAV z;(-=)+Z=ak-9uLn$_l}#_Ht!x3aoy1BVDs8EKqj6klrelHF?c;jW3M1`HX)VX3L1y z^L-hrM{7uvB+jk1&S*$`V<4!Eq#Ml~pB;9ai*+4io|pwbuLQQguKe~nj6?K^4RsFfRt&P%YFkNJ*`S)y~(p*KS^b5k57Hs{H=y)|7-e<^BPZg}t+Y+%<<(qZz93SHN=VUD&L z>$a$8!{AMo=4S)o3+MK)an1AWDhozc&5UGAO&F(x?mkbvWZc~PJxCGDfm6S>flfi>Z! z(mhs$snfOT`m+dcrOujo*Eq9x=3~T|#V~A(7jFqtn(<~FbS7iBT06Q^xsKV}a@Wm< zDC9mf3U~F^n&osQTuSA468zG%CYdf=aCStJ`=96~+}{=BUllmy%7e2LQ*Ow_CkHJF zi&T>{Ribbt(Jq>(qtSKjaL4t~xTZlaP-$V5Nqry6RD@@xPu|Q_x3TjmQ~Elb<;0lB zYxQpDdN)_c1Fdq|dkDYmjT}HHvfoPl(JL%CG~}`ht@vB^0`&d~WgWGNOwh=~=GLIx z*=sL^CtfC2$?lQw)x$vh;iE~^3GjA!p#OBjvM+)TX_6hkT~yJiL`Ju1j=Q;33OprC zwaaCA;Wq}J4Gbxb@WpiXjV!DV9CL`wfg@(SGLboE?s~J%7PnrbKg1i@$_x{zx!V+G`X)t4tN-$#d{1PYvDBsnLC z;Ep2O+>2Mpq_tEaXjb-+<^9F)H<36YNb!C6Oc70ZHDX_8OfvQ4PpxT&Krpw)zC8%A zS4xM`0WjgKvHhkEJ_bg1pcq_0ERm zL%|QfHn-H+8{-%Z{G`|d(;-2$J3%(6SLFa96ZTbhE|{@t?tsr4Uz{c{xn;6H!p@b3Ts diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/continue-all.sol-0.4.8-compact.zip deleted file mode 100644 index f8c057b2a286b498944990f64688e76d61b9ef70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2121 zcma);cRbXM1INFdGs8n>GK;93b;`Uml5}L`xO%KRvfa@c*=1$>>5P*RIu8}1vy+pZ zoz;VL_8z(HjGms~|G(Gk_xb$s{^#@m`(uUxF~I>wfC~`7dt1^eCMmC206+`^0G9y( zaKvGK-LQU-70>Idnrg6j|IDx*uLs~(~Uy} z(WQjl@@(9Y2G)^qX-Epkx*iaEr81<#mAMj;{>KOFn!8Q2_!lB6l5$t0K<2k-42MFp z2UlBoA?}@q+C6MIWlNvSn<)BjgFb%1tI6mry8VWdWv+PsLx)hy^5N#=Ei`3?jxdc- zANO4b9!p#{B-O>As*mi4>ylWu3T$i;MJDU=s=>ARhlOqK^ur@Y11qc95xQ9ZlF`#K z!mNU$rs;^yZa``o%Kay`^EtK6G_9SsMl}er5VE*NQ#!1a0^0uW0L_U z!!P;>*FNgJo7$%>)L5N58sBqqj&t=EVM??6<&VC}mGxbVnC;J9TMWofSCp3y9~1=7 zfr0oI%9J9uP~_Uw@z1hlqE*@H#`i9oM$^4&kOP0`SN@HDzeCR?S}+>JNqv{1@tL5=uVBs0)uEs_p7m^n=J#e{#k6G^7}BUP-LHmZvt2 zb(2yneYqwCxg#T#aGhqW)6e6)!WSce`(bV^z~BIXwou0}ot9?AqMPozo8Vwy$Gm>^ z5ae7NL2`o5QcS0LMt)V?z11i@(y7IPu(0tTYC$Nc*}^u6EP>{F8#_VQ1p!2$u#O~^ zmt9rR?Zn{VIOm5C-=yQrdoPEO$>i?)om-scF8d)XR-n~nLQk*0~>8%YK)3t z)5);vs<&qPun+UYcUIe_>VyvU+`7HVshzJ__Dfi^zHwdFGL`UjqaKi<>B2CNsRBjj zd02s96ORVdpkDVkf9<3A+-&Yp!bI+-Y4RBiG*;Fsf0ZpbBq-II*Mem}EUm@qftkK3 zcOKH0HHyH^*}fXYanZR^uv52phVnkppG>4fI&6R<2iuhg;AnBr)8i*=z@C)cb=yi5 z62%;1zHFk^WUT?!f3VBWtI*bUlJAvBH=rlcsz6XfLKX+4dPX|_@BqdXS2d5;iII$# zgJ-f@3N~_dN;19x>{cappW`w{*IkLMR2G3oiX0b}B4BAesev`mq>0)#>_=uzJ!`0h z#&LgjH+>u~<7R|MpX<;|t#_x+IlD)^zlRp17fm2AfB&J8d!x28F0x};_D3?CfCqln z&&;FXfO0-=b6K6RrnRM^BP$F8texEXYgsC*F<1q!65ff1+5%N8hVm(Z-5?Nq-o@|w z2Ub6NswZL3czm~G6-9E~%efHEI9|V^+YSOHs7*Kpi(C>t4ADC&^^)T(NsateyS07N zp>irCeD!4S;!4e6XWmfpX}P!4I}EA2m=`%{Cedv8@LCD~_Va5udfv@28zp*AVR+lW zT)cDJim4Z{`vfN5e!15gG1HVnc_1JDgdd{W_&`QZZ;6b?dS`P4L|lqP+(jubnYCC| z$f1#N%-zV(uYZvHo^HpxW1Qq;rVF*Kre)6G4{)2cSp$Q9YQ_)!b)c94={?f%xWPRg zQl(d?vYdmDP9jc=j(X*Q#AxuOm$U^iTZ{VKG>^^Ctwzz*(6Mo^zKI0V+#qq#voIuk zio50o@njI9$Kb2=Y?T^zi_}ju$>uBL!`>|lSr{$6>~kx@@Hj=ziR1CGy+xXu$!hj; zi__YcUDv2$EVarsA{!oMB0pOu+TG(dU>Gnk({;Rm;T~@AoONq*iRKWq8e=*-CeT4b zy1b6j$t=`V>A>zSpyT&mBUWohrai%EY5J9KMsYl}8*)jV`xuDHi-o49yz!)nKm3zK zCI)5MJ+I@s-B$WUx@SbjM%@8ZvynK*qJM&l+8O0f*eP8SqkZ&uy|LTaSka?gv#)EB zm3fo=QL>To$-tR4Q@^opAE3C_y462GJ{50-y$Uf^2 zozr(Va8b&*oh9IsKzbRVLTelI8`_qy@j3J(GZY~)_08;5VlQw#(;$5Z_1y*encRZa z+CW`Ncbwctz7dO3EccoZF2d(-ml;Sh8-5AO$`muBbL}!Ju@#tO_7yhKFYP_X@EIOR z!LeLUOY&%sHkU(1o-q!7B^;hu9lq{8RVL&%QgxPQ!fL2m0q4>0$k!vdNO$Iqhe5v# zKf*=v(7xPSYrEKd{##_QJ!c3*@N+h{9uYu-Z~u&aBl3b{9+kusw_EcwsDrLk`Zl~i zi%om=GxARU%C{mrk^x98?|WIIaPx$NUVTUG_F^$=;}4fElsWVikxYnRI4t=!mx2>F oLohJHLH}Fvzb*gYJZ1P7|Bvv^5Mbtiw+z2)@td>14+8-F1E{$8NB{r; diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/continue-all.sol-0.4.9-compact.zip deleted file mode 100644 index 61b1dc5ebd445de8dc890c927dd0a51816e23e33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2022 zcma)-X*?4S1IM@Kh%)-ua>UR!A#5yqTz|wv84;Fij^!2`o5_{A#*n{;bztT`O0LS8 zb16lb{0q4g<%)7uY)}8^{qy-ezu$}Ro8PohDeAx*x0n_*R`6@hpc4FdvjX;*Eoyt^HQB49} zF`IT?YgXP>?fF9^@TG-ezX(ywAr!vmw7J!4N*)UCxWuFN>S#K!nMkC59W!2T>h^fLvLIEzOb|U+kTP?XC#8_+8Vf6({$M^<6 z+i+j4n)1nB3`_N(HDpEOPH$D;6SdON0-i$!M%G5nzLJME;fFh@ArbmLa_5A zx|DTmz3R=NC{oUqoerl*y3at8CRZU@<}5L}>87rO(gTv~5T;@>S+T=gqdwaTQ zW2-!EghabzRy;hq@x75LpY~qG&Ip+E#0dv}`y60F40@-!OiX7!4mOc@hWZk7`Xn22 zWj5}|wn(1%P|fHx2oT{Y8%KZqHcV9ER>Yx0YSy>-S}(mkUV*2@4Z~zM!`BZsrN`W% z!vtNo)Z_Us22GLAfL&{wRXe@t`HHl7yJ@IN<@@%C{76K#Pr0}f+M0$Dl`H~TPrYG&D3Ulu!!dFG8b8e^UFK3Q7Qe(wf9$0ibq$b+I;$)LFxrUj;#-hw~YPCT|zNH zgqr6MYcG zZW6tLW@;k0+qk99I^|Cj3lopYPl+jRS<+mmE6W)zXfiI=8*PSWN}-X?!i96!wGKyJ zlYchLb}g*bT1-zYmeC%D<;}qNZUutdomiQ&C$6}6mr(Lh7BiRE%FF5+AWqAyox1BK ze+7dW2ifzMNGJ+kjBUE+Oun5y%j&)~I6MS^eA}7{MR>_;vnM z*CmU4FVa8bu1yzN`|C*@ATwZsZE=4?@*gr9{?z&l6IB2;4xqc-71)KzzZ8}V8mWQL zS$cBi@k?dNF^vfb!@$E2G*y5!b~!ETS@8opR| zSrJs+LPl*u&((x-DO9r*>vnA7b^fkkcdu~q9q*&@4Id@X?@SVqZHW>Sp{32@2CT)X zNK24}hIrDR_uHSgY?HW&Wpkf2Mt*JL2esrkre`kLKOKut<@=gL&pgUFCBYPV?^sBm zvKk^qN=%TdU-N+l-ca(_$>|ObrOxt+6FJkkWF#ZP@~22VV2Ei7UQ<*@7KQKMdP7}2 z5$0{kF>Ph9Bbr5fJZr(8`{F|ROtJF9yonkdoxR5Bg;g4q`;w%`(2g$O(~f6*j$!Xf ztTA;U)`T3<#Z-c$k#wA+tJxWtg$DaJabal^E#HZK=Wtv%mEI?^B`sxL`1FmdJjM~2?M(tu%|c-D=YWBLjwR=F+tS0?A5wLE8cK)f zi@S^4%Cy26+U-L=EG1^%ui&K4r#laX{JfiV4KaHddn2l`mV;o2)EE>uDW3F`S#Ss% zKkS4d4utVqZ`{*5I)_H8n(4I9Ts)`Lln$KyRSc#7J3el&5E;1*>Sf)wC{^B1M7Vv=g2ZS@smCG@r5e+Yfk%>nZN@skftM}#lz1FIhO%$;XRQAdq1 zZwEZ}ovIia&%fY=xccVY_uE&L7LxMyTTc{Jx#`0>6Dv|j`fuH))rZcJq$da5aXok8 z@rsc4u;*@iJq65^T&ipR{9yypnzZLx7!~y@o|6^lYjG)jzTj1~7{buZMn*#v<0mGNZ*Z=?k diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 0a9969dfc6fce76a2cb88534cebe4e310f85069f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1650 zcma)-dpOez1IK^Z3fXd7ghNIsnU(w8og~+n&Fu|iW@j^FWA0j5M|LVvnV60<)2LjJ zikaIgm&z@2pW931NG~N7$K`a+|L^m>-|ruv=leY0|3BXDQXqRk5`Y2>I?b2w@Fc4P z3;=jT0MG-zlNu8rhr`DkArYnsB!W(*gc6cz)VTOiTpXShnMgp8>C_k*5EuvnfD8bz zWwD4RJ0`KEL;Vfbkh`5Rk;mILvvSaCcKWr4n$3Ry<9QmtF;HsuBjj>MZ@Zsf)LZN_ ztM3W-U#s8T3yJq-efK6@X28~(vEB0WRrcBNyLqt0@C;8>7mBRtFi}v3>dTTozx#S% zye34i=UQ$E+;(rbq#M$DN>}Z}IbahcWX^gIwn@J$-USMv)X^fRpK^eps9W5C-xU{r z;%G0ZH{`_Eq^y5|2xbzD&RNl*f38g%!?vbNGy<(nl|JF-Y3yONeuA-{-st(ArtHFA ze*Gqcx_{!OYUvcpM(hvzSou<7m)PvJwVw*lTen=YRk z#ZSI8bw0Lc`eo{xc^s*5swMx@Zr^n?tF!*1x9i~=iO0kbkUpD1hmXVt`%@z<>#>iB zlCD#?W%&Q)UK=$4RU?{(jcRW$GoKon#0BYKgP|Sx$8PK^iaQ>?r{>dMRO&mds#U4W zMfgPAL%UYqVc#|Qs(I;UzEPRKZiJV!w#^X;_c&?@PTEM{9C(a4;1mtJd0RKW-nWg# zagDx;w)HhyB}Vz&x}G&ZTvnN#yD}SmZSCXpGZM z9n@|_T<}KybMt4{dKBJ&{WhWrq%1x=c(ZPHOUH6=<|y*peBw}*TL9}8c#ZOFqs{pW za^1&67Fr=LaQ(ES4Vo&M+np}kAaWw+4p3`W-s+JsL)e+n4-4DxA1W5flCE;M2hR$v z--k|ljo&kK91d%9LDNf-2$h257nSxzO1j5c=Pjop%-D5i=Agv$!gEcNt0Ru{P&`&0 z_B0l}v4`-_j7a}MzuehqV4K8T@eUi4tH?Ue4zQdH3g>d6vMM@-s8yC_Ux4eyR<)K3 z@BUEcb^R? zmA9fW;bg21ZxlAHpCcb=CHK*OE$ha7iSP0g;eO*eOKZq((r=$mAs4^G;{cNXFq(-#@47eQC@(Y+bP{rXc=eAmyJRmk47TPnyA(Mza))}b&C}dIa z&TuLAvrJhOpB)q0w^n?zbPgKQ_KS9ZEDh>|O|71gXd#6fT;~s-sV`Xg&xS^OJ|$xx zcIJdkIr+h(s;&;qsbqe)=0x78u4|ZN-xLWe?>PQuB&L()Qt+tnhyF&mdCwJ2azW20 zpX@-CqZ2Odk6 zvQ>zljPbZ*b>!fpIN5Rm9<{tt{MjP9G{0O6fJP}j=}e;@5H5Xvwno)h;5DfjjgSdT zV^;E7iaG&efr`jRcI*mosuaO^qcm^p0e&brA#E1t&M-BIzLvvRwrM?F`|rl4?!d3@ z8m_&(vQ70CW*vo5|4WF1HnqZ>3ZkZi6qoNc9gW{w=0%QpHE$9YS4T2GSf zq8UPI8#~INm5wJ_56XBZ#;=bn8$U>O^iK>$k(G8F@)nnKZ6shhsmv6IhaS88Es-(M3|E#|NjxX}+ diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 90adc295962508dc395ce373d371aae2e8ffe7f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1648 zcma)-dpr{e0LN!u<<-bzh-)HRXnBk{uV~IAjjZBi*v%qsW0*W@na-Llbk)?#L`b=1 zG0u7ARnz1#>?kTJ^V*PC;&yfa-{*6`-yh%4@ALWn|3&)AE4TrG01ZF}i5N^R(0$UT z2moOA0|0vg-$=kGCPZQqtzg!6)-Y=lAr6gAArcZ2(UA$5Gcn0n>sS&2zgW&Qbl-zIwVn?Lpls`L~PeREnSlwfF2~ zxR};c%RV-@?#IMcs09B#;yteDY#jd_1bXb2ZNkdaNsgi%b?S18)p8%XS>n`ldD~B0 zeZ7DE9)^+s(&q@)Puw;sB91*$uCC|Rkf}qVmCtue)F38N^=PlEHQ;fhJ<^j3T3nmr zOOu~wZKqXStE02$6`@@1MrL)@EuSg>axhjfMqL!IvZ*^Q(->3>S(HuIKfQOz^mCCSCe6-`kdZc_#8G-`phrpmZ*%MsU zOXzf7KxRN~{{X#v{0dGUG-0ncRXPy42bv%iE^@o=jhJt1Yf~$9RRsc%7CVqtP<!!H4~m8CxQs3TNN0}94zqjOE~uo80+5F`u}SXinwrzld0pws&eNkT zOZRq#EaDHel78}y0P@;C6#SM?xg5i^7<1mHOWF71f=PN~>$s18VJFw_Q8HroP2%0) zl9bF@< zEUPeejCY7kxa_L6Nhbul_Q+;Wck;$w4USeYBqaMXx0uObxRuyc#$WrU7qj-ZDN@0Lm04 zzG4hW*~0Ju4bSjyW1San8R6|`zm8|nd+kd-o-{PZE|*e%PIh|!J{7L^<+W6HE|(xj zzAs=)L=xr+*7?A)2tr(TQV#3ZcCDxA9bTG2LV_Pdzfn*pFakH}rSa$g`1LB${~W#H zKnevhz%et#AX*DlQYkukgV{q&ng8p1IG&>cyv;=WvJs4Ip;z^J1b0XhlCpC@=ES|0 zVegb>muMuVCVl1b-0F#7h}#AK$Mv!|eHUp(wL)j_3%R&ELra0!{u#Vz;l-e`&$Vn* z?RzckmT@R=07j!T&(Hy+BN7zfu%GWQl?_dQ&gEV4`Kg^5=;_rnq= z#FG;d_Jc7${#>QsjiRsgnfbrd8)vqnHLg4>L(QU$4os4dojbb)Iy@A8-7avzfIn^f z_8|wtWbLrr&3-ot8BNo?qvf!8+OEImNI(B*se-t{x+jDjV(hPTGzqfD?PEyYg@X8L zV8Ix;JfU?%6BHgDseZ)KYF_gT0?${CJD z^R(KIm`sppSy^*t7l(5jWNU%G3-$H6x=5TsKBwxL7%dh8nKotDk`rDZn)3zMh?;Q$ z23Z>)?n^K^F1+922ag3E4rEkbc31_doUWK*hME#uKf!eNL9IMA+!j;=c4f#UG~c@G zPlZd_)pTDnU-qsyVw-md2#b*J#y?j&%+gvjJrY;0r2K55CyvTKIdf&(u!-sC%r{ox zzNyfQHhBNS6xUQ!{$TE~5+1MgSUXAoLRGKMP0g?@6~Tk~6gF_Txn)`^q1jNFv8eOt z>H+P+ne+$+y(rQ-{DI6Wf*9YvJC*WqM0+&zGHu z#=IK+fKxeQFltzery%>B>7fLwWqA?)_#Y3FZ{OvNUSgz8%ppG9_LFW|Ak$54PUh@# zv~4DIE_@mcBbEQsG*+;FDtYP_wxgS9{k61x(MNg1(A)3K5@y_uN^&=Mf}6|uGRhFr kPY&oN|KA??rhl?*IS* diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.10-compact.zip deleted file mode 100644 index 45b6b2ce1e75e57fdbf66fbe62fdb3d8dba3955a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1950 zcma*o`9Bkk0|)SFMy@H8t40V(a;*bfmvdsy+8Dze+4dN7g%sZsVMK1Cxgv&PDWe>Z zq1+x%bCZ!J$CQxk>G}TteZ9V)&kvv1=P!8MSOWR401g4bfT%!!2Vw&*b4>sMkUb9o zr~&{09LX<;?2ZdMr>&*0rL7f6B4WMn`jf~(Sa&k+j&F#U7Cw;VC&Ui|xBviA001m5 z&PQ)oFMvAK_u5b_ufxyx^m|AQ#ZC^cRxQGW(z)#sB@HOxG*9edRL^@yRRYI#F|L>K z0{LyrGRvn-*kOOvYzkxu3Ftg>r1DCvQr^>JAs$gy1}p=-#MRM^B7@$T!{&Pf{p>0X z4)~3|2S57VP~lZ&d5QPDEqj+lRv8|>UK=`+5bKDqxYw=^>auygtXjC{6LiN^-a|iK6l&MIl_$xZ{gnoMF#`#O)P2Q_yx%el}w?J5s_f{!6&Pjex zLT^{Z!|;y6a#eWUR<$zQSdt!{e}WE+e3e091lE+KPKz3EY^Z)ZUo)+KD_uinR_N;Y zQv+7$7!l#}?%F^eC}m^oG(^V6PSbl^?$~9mBO3DbBrGzRYaG#Mr?)S+$gVf?{(~Jc z>B%docXu@EpTkqqYDXyoj4_MMKXH*J$<$Qt+~jFr|9HC-<>9eSvf1LL0y4ep&5a=% zY$3CT7&8Y@8KdQ`^>igI=I80IlcKMaz8aMjb`K{B)ZIf2ACPV_Ubtt6+^sU@1gSKP zw8qziB=Vl!VH5ETw{var0?4TkXV+s5=2paYsj)ewm)|_b-!@WeEVQ)J{YxLB@xfIE zWpSJ@VjS6Zk;9|#rMI+(_CnPQtXw6Ajy)xj{U7RUt+d&119xGOS^4oQNxnBWOyifV zN@?PJUlFymVDxoF1Nlv;GB79Xn^dr8C#bC=8`<_LxgoJ^I*Vxy5AV!~PZXLDJf8Iy zh6>jShR;P+fXU$1@M_K2EQ1BpL87j??Tqr?nM2L8?SsHqE#y-T(#?e%@`-qW=(w;u4nx9a$si8mm62b$hBzA7?5Uc!d`s|JKcXu9IvO7OK7$ak8&s@G4Um zY;JpI^1EFby-`l;P#LQ2-2N_uw%C!fI&bT4{efv;a566v<@|6I;oA%1;#HnDNzEMwV7zQetTL(Lc z5BSb}BdGux8V>NsAS9}8v0pb|8IHJs+|+f4XCpN^*43Z&MCt12N8G?Q9?GhLU@4vg zY_IVsU_E{lI5pudqU_joWI8lP^@W{0!{+r$`8GMhG?Mc` z>1$Ld`)-U+2Ww7h;mhn)pKN#aX)OK)JJUp_OF=?j;TyV-8el?cE(J767Z5zC^gYI- z!xzP>J1%@QL*+vI{RWkELY&j*FbNj-J!FeqLO0M+6UnjnXMP&{jw>cp=OY!Iyuw)b z$<7%bZ%+!8fAoTv zI^JJ*9-=--$#tdmZ8@&xbj;}`ES+Mv9MB=e^FrGJM#Rsf3^iU?UR^Qiu~P}he%P&9 z%;DuE5yWai-z(*~RDm7(*SS>q8L38<2f{RSj_D((43|?fu5eCFnJ29?JFBa`Iw-;B zm%iK1%}s)ipYw$aVh?Y!f0gSn+ZncFw8rRfQ~~gUbnV4W6Y*G1EUz_J70p$CsXDSr zL~LAZs?X1-syB$`xTT7m^Imo?s;$rV Z-}(OxwXp>Kb{7EP`(20Mt1tNP`v)fUp;-U` diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index 2a613b0efd8d838f7e96ce09935df725952f17a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1984 zcma*oc|6mN0|)T0W7K#SVvfx%IX5|bZO%r{G}jzC9_JjfY0knX##HX2q63K(3%Qk> zk&$&s%JFNPD02C6@wF;bdNK6m_qL2Wf z3IISLAu8sAe_)KZ4niNHgCG&k`voTu2^V7g{4WHChQ$RV!byav!~7t?2LLDlU_zte z^>+25%UEO0=)Xz_qQZ`K$x*YNWlWFLg*puCm-;SMws`Q(Zv2%-8SQdYjbQsO(wI&6 z&wlx7e-mE~cHN({o&lldqK8C8o|t7SmF7vr1yIhQ22tT+=2Jx#C?@rg&EBi=_jTTZ zd|x)lrRQ46J(?dM+aV_eRp5d#zDhmUGwY>hq?-J8Kqu(2wOyf^4~jibf@^QXJyqZG zX`az;;lkCAdhN+Am4N&)5(=kQI;)PfsjR0LMmg;7i7i~k%(gJ*weZik-bfKxj4iVd zPP;bYJZ7L^HV7?V z-HKTts`RUYf=1n$?LnXM_7Mw^^H+*JOUI@ft?yU129ZO(d_6b5I>Gtugeb0BaW}DM z;aK+}fX>07RFG=U^K2SSeu666?XDszLAa9X@!iN5t^al@z36N9ZI0rnHDAZhUg4-| zv?{ar@0p7e%%mdeM-u{a8;&fc;qVW?idf(9! zGmSXvvXzE`12RKc);abmGMV2H#}BLeYG;*vqU?o>Csuzir%c^Wh%q+5CVBkf_~9bx zfATu`wKC_9!acLj%YEW7^3~|s3p4ftaNeM46kJA7E{`z%v^M|UNy|aUC{*^kC9X_z z{c~PlpgJU&rsrEuX?XZ|IABq*2>+JHx z*o(fFxW-uFmgQWPrk9bxXqNpw%1qE| z@b2=Z%hIr}#s;FPQ!-KhZCf$sPFYQ=z)OldoEgQRkkrnCvC~hNBQ#`88k;C3ue5<+ z;-(`KQ>X;0e)#?*YSmiXZcmz(+uubOv2k1X7&(GVtR6qTDIU)XM}pRF@lVt@7P{*_ z_myaHnq)t-y@6XDyJlGOav$VY73SvC_rfm=yF%5K{M=ycJ;cW$^MS2&o4TL;$K4|a1QQMbEDXzTFr0+yx+NRsyL<+P#f<=TSMvNmFvf=hf)gScg`(@ zyjvHIYHvPctdQ%XO?}<>M4Qo1O1v#NqfMCtg`NG^dhB zpueHFiAw2^2P=z)j%U!C^kll7YsQzdVed4f_C{(W{@bd8nQ(_jL+rs>4^anj#N4w9 zVd5mJK;r(E&M%wY<&nCWAfM~-{Ai|KM{DYYOzkGKC@fLX1ngLmT#l`d{D~V+=RAL0 zNhaS9lQVmBIjnfg8nM0O{kr+DQN{fb1 z8gw&AfOb2HUb=*km1(tME-D9Hk4~oe4PW1Iv8^iVDIBa=NnG}+wXUEi!|UQ3^_ z=y?f!$}pJ0fAsw>K6%h^{-PJwo`=_r?|-}cht~gw!t?L^f68L*K?482dH&S(&*J_# H4FLZDCB~X5 diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.12-compact.zip index 53e751f43469675539c722fd490480a59b5f7cfb..be4436447874344ffbab1b59ce7dacd7972f4c93 100644 GIT binary patch delta 2257 zcmV;?2rl>C5ycW4P)h>@KL7#%4gl@7WL9d?7PXfM00164001VFo(L(CL?nM7*K@rV zG4V$ag{75VSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!Kbo|)bOb$U%(XE%Aqa_RcN zFlOq0kzjwX8)~ren92qC5`tahoZCvaq_PGi(pv@E6PB+Ht6UP~FNIJkWJxhhWhkVe z{G`w+JTnbhM}smB1o}y?ADMqP<$hg$AEna>hHC~$6dY?_o!15_qcAaHAw zrm*3XJDIxZK`39_AdwJ|n>+|@6JMt*&^RfxaQ^=9a-$oj$KWrJR zet6v4`VPZ4_wBrU93C0(x5fmIpZg<}SZEsa$4+K}AD1*z!5=+L(4v2qY!P1g#3g#r zROe}uD?5o>z%%QQUeW_3&F4qR=p5>S;1l9$$-4&-Tm>tLHX@rNb_^JWnwMzmV zA2jvccg*Z$v0Sh8tGfH2ec711CihrrLzR1anl%S2vpqt&^I#~bq}pU$=#q^DJc{jo^zRrm%}YC)X)z;IZDbptjO&5czPJ>1Ma_J`A3=7678}CF^d4 z{nw}zNO-8wZySG`C+^ZAyiGgoR^h??zzozhIaG+?QQ@We9$H$amqorfE=EzW1iaBZ zEGnVYwZ2BPVTCM#fjU~i?((W4?+JM0eIhA_q$N5mqUGjp+dujW>7?Zc{Q~4uRa2JF z)@!@#g*HeZl`J8hi@hjS7T)M)-_sgO;Rt=2Or4E|M~8pRVfILK9dcY*-KkO9pu}ertGy-67GlIPSv^<+w#GGa+ zsi(fYdJlgy;Q^NTdCMH(xpzE?9Ta+-+x6upcKeS^0F=DsW!$%HtG;P z&J5uh@PvjZ9WJXAyeC3B7U4LrdU~Khi-f7)$fqa!f*z}*Q5T3l(&{xc;@{s6M$*|; zsE0qjPj?eY@b`bVb8SEgj|qA4+aETw!}>+T7;Ar5A@(^ij2D|$Fswu5MdZDn2*n@a z10=sf6bIyZWBd_rh1hv5YEVqOO4x1=6Y z1D${L_XQ<9JrGxG{D+r$IGf-MW~tADM}mP2a~&Z`J4{FExQlpn4DSj7JIblmr8IKK z(ds5YA-&I3an*Iq6~u+>U>H|6=6d&mzIj06V)d8p*o`F$BOqmGzUJ_gfd)94Kx%R` zPlyNG?e+KYo;tXln^W~cs)^e5C*6m-QmcP@{EFF9secKp2laX)(>iC|-1Nkf_JQi{ zBARbzAbTc^U6tFiU?RS2YP|6ssmu)c1on|NhIBHGMwgClg$9%Jfn<_c`3^vg-W0?8 zKT5kC6=QXYDBD^|Om|_E@&8xvLRj@~-he5$fB|a!w^~bNW%brZiwFXvHzcUb0&Ra- z9L?n2BN?BD(X7{!kXNS#eV)t~+qzjVCh0Bp+2@2_)t;Bws!tKC{<(k4xAY?8k0kld z1nh1Tl&J3KB9rgW^QdCVlI=w(!(f0x6C`R~vEYDddP}}YQ?Ha7ge1MKz~sC9K5!UE zp4N^eFvr?-qePRe1DN(D@kaV`cLsk@qdE>XwTbL>Z>KD!jPID1aybbB#BnYyZ+fRn zZSflCC1ruLJ(01nJVle;5eu%1dZ&+4xyba0+qWzfpPI9aTob&~di z0L|_0!WMQC(9uH&Fu_e!O+n;-2QsNa0w#&z4xYnWgQ&$fh=dmL4qChj5w4*Wtcixk z?ZL?CBhY%0lD~G64o3M-825kWt4ZMa4|?h7mOV-dfs!VV_@q!#^?@H*VElAH-R~s- zA!BlMY$jWFyfCA9<^kg6$vau>n~`m{@0*?bUmhBhTIP7dEyZ71PwN}4+N_hH2jB!) zn+ZYko<2jj(lK_bs*MI8;XaFeVLUNB0xCp$#7Gk@W3RYW$f_V9`x}29<3(;w*jiy& z$$G6u+2H!k9Yh^94v)4rD3lDSZZD$K!f*b^J-$a4$?FKdhnVmTw~6w6nKx|t6vxQA zg)P@rt8}pTsD}IK9BzIVW{cXPSz0zTww@~CO~AymJl*ffB^0NXONBSXXV18KJy?&2 z#6ZQKKDAkta7&DwdwYK@jN)@S@FrmqrQIsH+>C}ZLcW7%T$k;m8|h=#+>i2=1-U9( zG)j+Cx!`AFCfXdhYlrs3okiFQVmgo450z%F8VXb%>vjv1dC}6yKoif9x`tzf97v`BaFfj-nhS?p^ChJbeBr6+qyHYZml5btO928u13v%) f01g1{wPaRm(H6Cr2mk;cJCltFN(S2q00000!f;w# delta 2145 zcmV-n2%h)F65SCPP)h>@KL7#%4gi32a8$3xR}C)+006c*kr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*+j~t(acl)nl|ZSuAzGB{iEmateDujxwev@4Xvi&BIn`|b`LM* zfs(*M=i{%7%a06#79F`4Lw|+Q&$-VswlsecNlnpcJDiCFajacsGB7@Ul7~|=#z6;y zI5vLr=M!8ERE-2kPVy1Gq_nc_bLJ3cHNbny5%(=y8qz6$?-0(!Aw%^iv{Njw49S`6 z>ST;xBT-4*`dzyHL2s%&`E6#V%@H2pXee{Y9`G2*BX(#Tb>gFWhg{GDpJWt&U{HCzjdRym__kE>*WAgD zKhl4pHd30uIs!3J?F+ICjg4vARNPmw5We_Ias$DWvfzcN;R)+q1a;OD-|OTl1ki7H zFicxl9aGH`A(b`4DI(@L^yaoRTvghh{#$4bszRTdi_NqGN)6$!Q4ra z;3T7gEl}TZ4`uT{CP>hlOmlFg!3v(D_T(Munrc_1^SOEe*1H{L$q@F%Okq+~U#lVL zYfvWDs^ftaDHOO}gGDSFURtmt$sCDr&a;5K>|M&V9wj(glsziWjW!{~~qf zb(0w^&1g}weMfw0$CY#kGaND_vN#&@af#A`pKmSTFRKsr6|wi__pv6qJP1G*z!YKu z6-}@`Q!TFtVf=$J_NF_YA5W>$k8040BB;!N_^M~69HwS7z*frVXbgGak1MNd&-Fgk z4BA0P&p1$9Z^3x&W+8p4f9T8T4pv^Ts=bZaqS66?4Iz3OKf7Wcf=QN2#IYG6VCe!? z=?hxz#C^bZ8|50gkJN%!=q(4tK(k7REE`p-Cpg^jT~Hw8m@r`c81EgA%9Ud5BWvmuElbwDm=DV6nIRc6Im zXl(l1yOqTJdL#{xYeiov&RF@MBUUj$!r61z3$sSUsYG;cQI)QYP3i~orRy!~CHS`< zmI(5TCZtM4WLG|gL##a=SK6Wl5hpo+%Yxq~P=8k) zrg&+m!C3PBix@9s^~Rj2CJH%9%EyC`>Qwk4&31`2`Hf_WAHD{VLaw1Kh6UUW_heYw z6Xl}aBooD((@E$P)KM?}Y_|D-@bns&Fi6CH1$RUkHfQAuJd7lcrf<@dP-`rBM|?=Y zZoli?0@q3EP71(^Ah1GYciH{=FA%J}t`g!q!ZFW-$B8R&|QCWuhd-X*IMW&+Z**8%Y!gO zRFE(yGJq+X_@V|Bof=vnQc$1Gz{S!1IxYthVA_@=3qk}yHIG=YW4J7rU^+N=$TtVf zDff~NeZC7%a{yF-WvDHGx-sgxU+iEAG}{EbH^yR`;x1p|dS9e3I7hVjZ?T4pA)hd9 zS-SE;9Z96VI# zdR>(WV*7D|JZv)9cJ+P5_!sN%)g}zC!e}%zzOE&y0vSM}ce1ATceVyKZZxSSna%si z$B@7yuES-WRg_Nje0`#+*kbzpIaiIZ_r_<561g)ZsJhc*WHUF_j|*SmGPs?Ch}qaj zlGojkv*ya%=_I6oFHf^tsCT{D#U!bY9Fb)1iQxh{e9@Bb!4-`aG~ zViDrLJvRdiJA;3_icR(T>I`gSXIxob_K#$SoyMf$dRx<;1^g9U?LDG2&Cj-J!usm+ z)O`^`N1(mqP&=u7I#)Kgh3hgrs1^OYyj!gI!a@yPDPl-}-mmoAjHvf*d}QKW0nRL@ z_|g(*%X1LOPi%$zaD;^H6y3Zo=foyn93XI@-gOEHUXhzDQ3#-xE~7(M11FMjk-T7~HZ!UJ9v|ud;ZR1LT~| zy3OzGeRStFP>{QqDU8D{c|6_LD@LT9U1`~5(z*ZZ_qB&mO928u13v%)01g0vb8u9z X##aq52mk=KIg|AWN(OTX00000@U$f? diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 8beb280ada524db5d47b5dfc18670e315beb05e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1653 zcma)-dpHvc1ID-6Y*-EoYijP7h+Iy&j7cuz%=NPzw=nx$l4c^DPcrwp%t>kFHcgG( zCuUiZ64DS+2f1{}bqv+llFR9w|G($?-uI8+^FGh}|IZyK2DS!(0MdY@7&88iR6$lB z1OOoF0RUQnAB-Z!ULg=;^$iVvHZU}ZiHZyiNgzjEi47!NA%WAq@+l`X+pT%mGddZBhaw6@_RKTDDp!Li z)eeY!7aBZ;?@=y8o&#>&+_fM;)>4P1MWV~gzYj5&VS2uvJ!FYOb5_{^ZD*|Rw<6uw zO}2#hzu(@k;`Mml+R-?sDsJ*(9X>7Pc8od~G1Y6gNUts@raBZGL4D($Ym>jq+tbZG zZ#W%opR{peeuEy2+0}h$h1f2JKi$K4gnwq+^-yd6GmVDAC%4mF>wU5xFDPl73ko=P zoeXmpjvk#v(VH(E7UTT+O7yldv*ok0QQ8^Lq`eRJoru<*%r=bqK^B}nlc@Po()fhP z*{HAQocWuak5Tp?YLgl$2-%+*ab8X-*yfo#-x(M(qqbZ*N0%+|SIJkcoK-A#yQMzv z1%6v0uJdbHfsellL$Yb|a=O!v>fjKP9WZ}w!0`EOrkx3v7*o#cBsm)t%bPam$KXwDTBLzK{4o}ba!dFHQP~R@k z#na(=<+*%pwFV4@;6X>~_x&!|m(XaCH>7muR57UZa4gdHw>zmN^^WUOmTj@m!*HWx z4~eCxWShiR1d8sOfmgdPcdG58`+t(Z{aVD`!4wQjJz_PhD1SNMDCAu=aUa-L^7mME zY!}L3lJ;Mjn`*QQegM*YYBx9|cY86wEv9|2F+QRw$QMeW2V%z2)tgmuyVY+K6&HE9 zepX@@ik3*kwpRo!4$pRUU0+%d?{T^pp|YfAy3tLL1(usdI5badxI9BvuDh)lM$II2 zwLB2lPYIqQg`ZSvaYSw=9M)V?(k3eM;~W*vw#ef1mpz8wcH0enm)_~htvIzQ!<2|Y ztxGZKlYD+?`Zr)FCQqMf*ddnVbMElJRU&WNfKY!fMU~~hGH~3WE>5+Wb_9C+@geYS zR(JT;!)(^oDo4gkw!pboMi(N9F0!pl#|MOe@FT1ULps9ozGe4FTrG4cBdT|p+-R)x zTox9d-$mk1-h%z%DECW{B3+*MjCI8|j+!Js!d&a%Zw4mJ~elQet$>ygeY43-jWgTsX zDq!>#!)?|PZ}?i4&v=39T37CbTo6?zn`~@eDJb2yQq^!sE?i7gid?gvw$#gg7&LKO zVf5g7mhFp+5>rDpi8;pw@vTYqEbM!Njv0(yo#YcLpH5nSloR`9pky9e8Uy5Mb-KEq zRH*v6+xYd)aZ*ACaYUF}`ijvroo5W&V&EsB-r!Yi6pmk4tBhQ=1&<}SJX6yaZ6q3$ zl)pC#2POJCGxKl`3(g%jJZ&F+-A9}mx{>KQA^bciSf{^XXe2|+&E@;v$Uvc5_I${} pO7AIgcN`F8E%v`<@WTiHgaZ5<|DPJ%aS-vp-@qTm|De=A>o4)YH)v4rH7lgq}@W=4*=ZMkK{*fE?&a!XD^xg92F zONhyda%)*6noCr}I&SUl9Kxp4Isd=U^M1d7e4g*~eEhA|XBo8*zmge>oA0yNv%aDmlV}kPsgyCk+BF z0ssX7PUYoAB18yM?ZjAz1N8Q@xG4QTot%OT2OJICAU!tBj{|A-ooJ~AA(Tqt^aU71 z^D%^< zX7QI-5g+9pnU`|cK_)C!b_KKb=D8KGM$HJ$JXI*zs-dcwrBn1otHyrsY;_Q>5ZRV3j%^^i=X(W8pPh}{tMiv z5y{rFbDCoY5Ea-Xq`gXy;pqqoT(70#guK8$@BNQM;gbYQ#N4sj-k^gq!x+r%RQeBc zdri?L>FlrXjwk3pDL$%v9EE{d*Fj7y_hI>h_b%4?tOxh)H6J2}d3$b0Cqk@4ERo&> zR*xOF&DEwpD+h_W0-L>`!PhoP@@J29>IL+26e1k_;3v6CU0`$|X7ghl^`=sPXvV99 zHH$wjwg2g$v*?`HI5eHkj&!4dien3Y{N25#FP9WNBG^j2vG=(tu-|jf8b?U|^s; zx}l*u*Ck~amgMa2eCrOkFgcmE#P)C>Fq)sbgbJ9l$7h=us~G;D!j86Ur9-||GpYgo(u+@2 zCdb%vD>A#qRq_|J(RZ`P#l=%pqe_t1oH8w)sT8@2Vf|K1Z{(>*K;+i$cnB`_W^d2= zhs7fXXK723iKveR?L9(( zIKEKnhm8JXs{4`~+QM*@QOR{B6q=?NepPfRh&OjW>R!02Y=W@`{KA>%<4?^CUS2`k z=o7hug`Yw(PZa$(aO6d;VAHF&GCuqD``#o{BTYP9VnzM*uf!d&_a|D1LauL!bE0FN zAKrDx3wku2aF+f0owdXn{AmNIFqO5*?Erk&?zFTmiHocFwS#J$FS0PDU&rnAM*k{g z6h_w+S9nfSb08X>Q9y$~c=Y?V;Lv9*wR&i#DVPuX%@i9! zl;g^F=LhjG27ZUmwOwoND+2~k6R3~p6b0wt*Q0Fn=X)MTa*T<$Vg2K-DI3AhgqnwZ zen$=O>vjiBKdy8{m}$BZcpA5a<$ao`%u~nQVh3vJj{$i=PmKA{@*D3@A?}lYXs>4 diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index f0f56fc9775745d40050e335f9e26e304beec3af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1651 zcma)-X;=~l0EQ7nCBf8rgs$>P^O%%IHgzRt9(koD%9?@ORX=V`_SF+FVswinbH~=KK2=m&NkjdqsFV)}R7jjD@ba2EgW zoVs4|LOh$JHI5a$#%+Hvsv969PQ#3uR$~3q3vOaVo z`1zfA+mjF6#)Xxk$@Mi!=u^LV7wdKYlnxJ*3)EsY8Sb*U#QF3t)tD*i`LKN-)%q^% zF%t8!$TIxG!?M-xwJp*>ezbW$@Q)z2=i>UtVNV&y;ZRarUuD#9xzZOwtEkmC^sb9Zt@Dbx~E@X2MXk4rJ} zdQa>p`HeuRB6cP}t+-!udD+n?-_^t3iOh&kC3M_0B6PW&Z`pCnQ4Zlv^sgnGKGDU9 zD1n6fRbj!W*{ik(97BrxW}JJS>Q*nRK!>zDPZa|Oce!Z?)Mk9PSiV}Q z&55ZYF7bXvnuXui_MUX^S^VM5i~WKeDS@;v6{VR(p3bJmax`(QhBJJe&M1*BK8LsIhwDxr|H(^s!qJ(!YD8u#*cCa{jZlwD=Jd)Jc992Jh zKu29rtpRGv=S9()l8fk~lQY@7AodNCLHe)0Y5+DGRr6&umAHGrzO kyByFS^xrD@YJ-2nl=}z&PYmAfV1<9)a$oEFm5_he-%3RR0{{R3 diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index e68ab5ad1e819f4e876d63fc1ef18df46d9eca66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1666 zcma)-eK^wz0LOn`mbVRy#u3h)xAT@8b~T0Nty-s9bKaJ>ZRdT=G~C!rh?wpanM;yZ z*hMJX&P#cBc@1H%xY&w9*1pt@;06>T(C&Y&k60B^j?W}FAsj<;Pq@=jm_=KR4ctUstjbt53jU_9|gMf1Y zzyg3{Sy^GWJGPWt!vhTtkm62qgz;njj9jdaqv?H>M*G_NcKV%1zH-wmkTh1`V{elv zao}85e|_nh1u2>vR-ugB6?sg79P}yO>gxBLGQTSR|^*yo+8M)tCbnP~>KSS}v zr=h`#YCJ(c)}?l##p#Ez^87`}0h>88U}d)EUm+oF52LFpYu@=}A`1V=2i2BM8oL=8 z9?A5EM85jaq+Nc7D}6CnbKSO~B#T7tORMyw<=Xug+b+}^6936i(}DBq47F5IJ&<6Z zPzxS9Jm*HFy=E%2eYnY{tQM;Mp~#CUYni*E9^YGUJ7v>N2>&Qs(Ix2(RhfP^rdZrQd?oyk=VDKOE*is`*xjB<@_Z!e-Yi$vVHzdk z)BEEtl({%7l)bMx4LV|-^UcrsD=C-CvJe3gDv&qLaWMy2n*@U~@<0H5bCZRSu}>V) z9LvSCMEC3$puwhcBHjE{#@A?EYtTEr?`vA0u=7L(kW%E8e3!WZK4o^Dmu8$utP1RJ zoYL1n~k-OYZXWor}$Et*vuY1STDri@%TKfLZp5Qbe7 z)0aFMR1t&D1~jxgcvGbg+O= zVBosZ7}^LQVM(of+#2Ls>Sj58(n{7#9xU?Y3D41o8m||U9jTJt^_}lFpmg$)af!=A z5_zqyHqb)v@L5IVtbw|rK&ch>dR(Icl=whv9+kq>t2c(o)_V22PaZPQqZn~H<90o9 zyShGaGZ6C1^cn?&^Fl5YN~`f^fn!3m18O_VCGgv8i**~9?Qm|#IaMv#%x6%SBJ>%M zpgq3ehekDVfs?i=NoMBq&B>)*Kk@cpxhv$aV}V~VOAW4lpfhK@y}*g)AU93?sLKbv zmAvjx!yM&6FX3CG5=D<{1=lYpu++S3E2G2=?{BewVrK`yNv5pb`O&cm%4u5-CrBT~lfd$0ok6^zr)d+>Z>oN|N^~w{L?9CdP39CCJy>#^ zaJhJyU5R6D92VuM%Uz#6Sb7z_HVA@_>)U7V%miyZ$`3|8NnIBum@_*?+8WIbG~Y>S z`to&Uht(+T_F(kBFrf}&wr_D`@F`-^47Qbbk;NHZ+$`d%T+&PtZA;43q!(3PdP}in zU)Yu3PkDFk8G>bpxzyzo~6ny+xAdm5sJ`OIgn&*g^qHNOrVKTvo1pSSaCQrI8n$ViyXR?>)k9HT4QeI(&Mw(3Pq6!dT@RVmgyT$BDKtQGyw@<7hGyKC|pVDu7{>jgdejNV0 zub9(FN>J#l?AY7Sx0}CD$!qj+D|&fjKa`IT>o?#B>?olJOkVH;+}Q#uEbtSyUaoV? z*37ImYDZ*MtJ=Kx9_zA>LCeTG$^Ew(KFi_Xuw?$h|MLU}4chn5Tjq0dpQ-)t`WyES B5CQ-I diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index e5fa7148eac7945903c2e80bf3c632737f530b06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1667 zcma)-dpOez1IK?ZL&lOjVK|}Aa%oE$$t?{dqmA+%+L5tn(dczMn7N!VD%v7) zdx@2MV@RQKBAs$v>bT_2%c=AKd7k(C{p0g|pXdAk2ZI(7wE%Jj)a!zRnPlKVU|hVyzz zIrCVl^=HQt->P-Di-_N`Q1;W`dW3q>r*@*^C#RkcD;YS7Ky;ag-6>~L>bN@v59wosJ09L-odUs~ z4F*LT>IsL&m4mx=j@9Fot&IYoY)$?*U-++UP`KSm&ER&T>ryGrnAf`yj^VKHPR19i zn&-jOYAUdA8YgUXC9{fg!Dr5Pjc^jIO4M%UV?_2vhbpQ$-RxI74@`pvCXv{`{%B7s z4zOXIQ9?}J=rUy9xx6JO}KH5oB( z;`uU^4E9UYNXt44_}R{dOO( zE)7=NK5WrAdh={qmCYA|9a8V{jgxFm9lpj3>%6sL8%y>@+L`g|xhC23O6$gltQSxD zHx;46F)J|++uKU5tCA$Sf>t@uGS~{55uUF8RwI-#P*v>3f(#q3rhHX)HPg*JPAm!& zl%7jNe{=iw_{hH1!%_ax`}XGbc2a)&yvOAgQ}2lVnvk!zYT50nQ)W9%7Lg&|6dCMX z^7JK*y{sKXr9qY>7$VhkO8A^scGsifKSoI0^unqV0w@R=7vhJ{kqY21-F zT_4nqPk9t<*Ug-sg>Uv-u*iO_KA(IjJ#fjvUwhitY;=!&{lwF6N*>Y@d-o`cbeGpQ zyuuLHAg1^XtIDY}}l6Ai}5PpcY<$U`M^RYHbn-?D>j6H_l zn@akLuDU{SbB=m$y0?IU_RUVxnk!Y%I!)&O$isL=?+%Hz-HML0-zpr`kR7c~S-C=0 zpMQ;yaA!gS3UDrq99T(p-NDFlE-^?nwp`NsLiD&vx6A6b#d9h2W9rsyayYVZkO3RI zv~RdE_x=w|UM*qb#kSXnIGfB(D_qMAzkWBPy-7M2$=Y@GW#jVHa;%w-WSKNg@2B{O12EUoIha`+nBNX7}NR0iUWBwUZhDvEGmn=m%caM|8iZIIx%n)VKSJ>!WXz?x+7b zbNF(;CPI~H-+UvG{Y3ezdsn&|%7CPFV7+{zQ}P(@t?|KTd)MI&?}^K>NIO50RJ^y$ zlSPrE@(gx%UrR#9?J|jrDKyNbPq2x5T{#OLsECMYYyfv+k@e9yM|d3;aLuhy^*V8_ zGg>MZq_O`c3*xF2b&zv_uu=dpXdz(>k$+dicRT!(M4=z}|3ra7gT#Kkg}(R7cdGoe F{syT%2$lc< diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index d6fcd038f64e0c1293c321a3f904a5adb70065ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2025 zcma*oYdq5n0|)T`%-o`E$3!lbJJT??noGH4w1qXTKg--%Pz60iN5CN~I0{>826>$!|IB z)uUpkFFV-WkSYmR!8GPQ#7sH5M_Rh(BwZz+0jC7g&Z4`~VX#xvIc4Zq*Tw9Ajto!L z`4EIFOY$S3RS25TjzH2l@y*|CO~_saj{xu4mX+5bq=}?MQPh#+-|$6+{S@b#(P6nv zwPNc5;y5a_JQk z>OXd6n4IfP*iyK;`_UD%-2mnrl^aVz zWiMR5l!CYXEby}l6$V_Xubq!a?i)E>m5^!pcA%zd#(SM6#ScSl?i?7xB)zqo8QmRw zW|NjGFP#$tH6g1XK52FKiv8K7b6JvkoOE5QV&ZhczTC*Q!wAG?Gu7xB>9LydUrLE& zPtpErgJqA;0q&qhYHn#G%w%cObX`PH`t~<^(y^}}+a6BW0Y?Xe^}e%4o5DPc2(b~Z zwok-w2`H{#ld8@pMZCW^^&K8z@=dCUN)MV^{X9OI0i1$Q`stw7%3WVp@($5>tmkr= z!H%_<&?~%=J?fJ@&0)0Ci*}5y>!iREx&bM96x7)wrLdM(;Vt<@rP7|j95rsa5y8)l zzhJO)27PJniR-0~?{iGanQ!^Xa;m-m2+Y@1hQM5e^4G7qT@IG?9wGSpc)k ztqwU1)AYo)CoTJ|PPKLKHy079*YZI}!9cj{Q$#95SW+CH5k#VU$--|t|Tm@B5vI4r8ajy zc`>Q5Q`*=Dm>qicE?gp_uF>(@==Gwxhtryp5jKQ_sfKBqhYQFXf1PWtJ8+#v}-D z)@xtT-Z7cpU(V~6^B!GC-Ob*DsH*Yc&USN!1KeY#$J==$W0I*&RfR{$@W@Z{SrTuLb_S#CB-G`Lk9!0|lTfZ}-R^rH1QKiB+W!Xk;_ z#Fd<1VxIiq0L8Mg;c7aKp-BYSjyIwo>|NU!bGaD_w1B75GLVF7kQIE$^RHx=ZjGII ze^xES`LlmKqv>M#^wxZ&9ZH)yT+tht;9O{en;oY_cCEDVwshdE?=MZtvfWr&sx5Kb zUaCVXTxB@ZBZd$y0%?XQf}$Zcn7$)B*-EW?%!hqk+L0=y!$` zTT09Q#qgR_DZ>uPyULD#1TC~l)9(E~pgQ~@MHKybe%O~`y_?G@^*N-Pax3HvjPHQD zbk%-1K=7zV)r81jjr6w^7OfSB_~7Jg%DFOFZk>2pCoI?o8-L=6@T+piQ;EdH|Swu9zg~jl&h@M zPubhWFM28qW(5#j zFMo6BP}xFvqoYd$mzvnLgqI%O;OQFDW66#5+nv4pZdpCdQ*l2B_E$%6qXp1(vmQ2V zyppZiXHokKYP{jLj4JC?m~ev2W)n|*$~Vx!o%zSog(M_jjK6QVq7{JDYIh~o4Oj@WCo0IZES>_nd7M$ERXsEMe!t>t zgZm%Yd4UXUArYrTE=TDvsP6WgW)k(FW0uB%rLkaG(~obXRePF~ebL>)l+qefgk+tz u$L>7}PwREYf`m?j|2M$D4E}FupnvE8CooAL{E0Qd(<_OO)z diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index f8bcca38f2729794f74957b7fb10a9d8652815e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2019 zcma*oc|6mN0|)T0kaLpBm5Isq$T`Q4oIP?a@vKp<5R>MZtC4eB*(lm15^{u*`rH>XenM`}7Kk$&-@^E-)qQb?K zd53Fs1zL>InIkSI^^+BP?5><4^IM zLbWxMNEg&7#oTz~?-aA|)0e155v5?Y|Na$$&p#pmShWI9ljE_X;F0(KSyAYq3rYm*S7u&#(e?$ zWT)oQB*%<%n_s$~as6UER5yHRmRsK5-ItP!p^0ywJA9vQi^hqQs;$&KphMJY)5ID! z?gnemM~07LlqRW>-z%1>^->e{DVht5cdJ*=&-P{nI|%y(nN8(C>M4h!jxRCnO-zow%Bu5zR9>#VT2perCF=r8cg1uzQW&y2u(0V*D!cNL zj%PNe{~X(b_^T&O%al}>FnnAdUI4=4%I_j#_np=Sdp4zKkyO=+`6$2ZT5cY9p9qfS2jjVgbZxtn$H0;=HNPPUmObT8 z9b4<;WPErW_C2?R{4hbJ7-@Xnn(C2+OMCcDft1W2nW@O7fSTM-)w7aP zAC`8QQEFJFAEqP9(-Ufy57ObWeQUoIAA9jEF^dXQ4W~W)6hJ?gK8*!k*SCDG>g;~| z;$JIvW+47)uhZ(pxvmX`G7t}BKG#7uCHk!Q3;LNee=OZEt+qN)!~gmmxB2EAu(oJm z1J-bB9pP!$E55;dE!48M{V&}S+7BU-R|&`V&TkZTL-nC=~)J+QrP`OHp z#hf_Dx~ZaZZ66|U_pUJ&G>kz6Z(NDebUM?poFLdK*H|B)m5hSUf3``)YmQ_^Vq6;s zqhTVd8E2bqwqf!E_RYDPqyekLkgve_rVPqtUiQ<%xktiB(OXjc3gl61PL@WT>&Yd_ zyH-{6gnE(QYeIh2bAt>swzk;Sko2 zm7vTGc1Lfp!cU9XXOzA~4Lrg(u~{QdT(a{ZsB=b*ACl9!Pm168uK7BRczh$T#kyCD zCkhcut?hC^Z>NbwyfH*4i3N2_`1)&yl#AS0UJ~fRCrhsftWCeBc^kFo&?MrF$qb(S z;K*FKl&CT<)YC_)578vfty(7)u5~>P&%Hmvw-aob)Nj(UKb3*L)|WY#b6S(fd%pEZ rGHcKd&UV6>{eRQ@Ti^c%$M*01e-PWjIZyukX8T>_@4fe%asc=TGF{2; diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index cd485e3e6da0e07ae6c22fc570684f8fb69348c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1943 zcma*o`9IT-0|)Rou^bt>=hH`+$+fX&m7`Q9v1GP6b1z|J47Eu`l2OLTeN%Jgm?Lu^ zq2)tFa;0(>)2T@a`Skhz{(U??uh$Q+$LlY6;;?&!OaVav3`B+m5ohC!3YI|tpr{7` z8UO&0D1o6=Pf{pcA7OydM}$xU+`VZ*6l$ouCza&ucf}h)4xt2!3JC+Q01ycP#~BPC z)HW*k{>bwNV~JdDpdYMLIVJ(GbmCC8cq_Vgx#wDOqvM{LZxYdw1D$pn{_os)j6qJJ z&8H1)rcap|@z*PhX<=jK;9e=IO4C@i+$6axUXj*DPmRdZCtszrj0R&w&h88kO|o4` zLUW?hsU4>FKBcLjCFJyZfdE|dyK~ul@2wGR)x(;P4zWiv`cj2!A56i_)m05+?Ig%^ z{5Hi>o6LCuh356Ti#}R3i>`$Hg@yJu_|5X!Py23? z@#g#A$+*n@azZWBHzyoUU!0qKPTrCEaBH;ApB~*28{WJ`dnUCw`Q*@@)qIqR{XTh0 z&%vvoc*Dzam6OOy_PX)~(LP;0772EDs3NM`JKPB-$lqNZ%a8ed)ap-v9Z>l!wA{UE z*2~6RTU{crPlImW()O!d<+xl17^CZ?lA<+0z!}U(TI|8>T-T}eX}eWXKjnwZ~^8A-I$+^H}RZ{Yd}V1f94s>UoYLdj0pfc@bIYI-ZaX;9yC z3PYC{dT#YSFS_pZ7|~%p8hQ?|-B=@4VfN83YiUgcsvcAg_z}LbH>hrJFuf}4EVN?N zFGv19&2?XaEND!g=@Ggvt`QDE&fhm~^dcJ6cdgJ$76K8rg(P;7uWZIQb~P2>>$ovt z$&rSeJi{!<;1SmIyO@Y2j;7W5C+!XJdmrM>JH+rVD;0(>FQH^BI6mRUWSifw@2g$8$o6=bHDbgIQM3~ zvQIn@uNc+&v6d-&ha}MZIq7A{A_S>fv=q^p^laBunVE43+}>UP$#B<8K=9tl`cPGw zc_iu3p7)_#-_x9P-R&ubl0Cr1FS=-sS7lmm5O8cg)nF!#eYI6viyDAP>6cYnAkmnM zZpP+zfug@0;xMB*gLM9@+!8nSx0r?#3Z=~!2502j_Y&vUm<0bmiWrCbRz`A?&=tW( z?v%43UM{zDU$k5;inGs|ty5)?G=vNr6cvSqqv zw1f*B7~)#E*oN{m&Xl7d)qd9__57?pTlnY;Zu7ptu;Kvhvo}K@6Fitv+wiDUX_@Tr z_WrdCofNgSfHz!ZSj%{MSygFF6S$457B_yi+V}ePO%XuPUK6pv)$=o?eWv@+-X(VW zl85`u>ZATRiGEzI>}yigq0hZ*9W6C}ic)q!o?0swvB*^gUi{s5&^ZjodLMhBY>b#B zcB@U!#0rK?36NEdE<_u*>CZuaKF`k+!I|(Yd#p!_h*dI}jJZ5{-=eKG?OJPXa2?b{ zPX9`BU$;C_Ds8jo@`}gw7FEP)o0jZYEFV|_{^=2_!}xpi!bTedZaGmhw}5wrNXkRH zELKi1+`fOgG*vKcr;Cx*K!81pgnVLNy!o1sbvGOSVVq!aQPC0?DvElGQ~RsxgN!n6 z`HptGwBSqFS0|ku3KD?}>xO}bYqVW^jD4*#(Sy^%%)PQ+2f#ByM@t5j^G51?_DOWC zZFXo+JxNu89=;~&5AVlJCe?NLZKIp!ZNwka2_%c$vCuwVJ>N?`Cp&7$_{0S$Yz)#a z+rBN%wE2>WE}cK@x6M!zcJ9AgMNdhj^$}W#(ADYSNAx+JU@?A&NWfPg&`z-n0nfRS zx%*^4ZFDDSb@DZ1XhzZBHOp=PO3_)6cU$8lowwEe;um1fVbSt{0dlLzd<)s%V&C9{ z@T7xTOtmJhJGW+7BNNGpcDJc;$}QZ@E(sd-I8CWIf5L7H`^j)%$>t?e_qL$(7txz0 z1q<35*w;}YCPhEoVq@DpSyKjY@Tx>wG~C1@-BEVOmRFHkSHA6G#A7Zcuv(v=%O<2` z)yv&(Rh+FibWB(C^6Z)XG<^2xjRlrzqMVqdB+9l{_{Mw*A#DDBtC_kmG2O?uH%>fF zy=L~N)(qy1+?a;L7oW0(;11}$=~8v|UH&Sx42KmEG~M(6x%@5W{}L(i@BBABaaiHs Q-~xca?-GA6eDA;SA5z4KH2?qr diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index a126eff99bbbe36a949155828184c939d82b541b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmWIWW@fQxU}E57$Sy7j`K+X@vA z-7nYL8zg0?zMgxx>Bg6btCwz%V7~v6x4GfW{!q2-Cvh)2&Td`c|K^AHjPw;;A^&c= z--BKjNRa}V=!<%^K%`++8wp9Jq!((DUikO@`RGp;G^=U>c$V}$9eseD-(zY*b z&7|jBHqAV?S5Wg=QO)I~`?}J-Uyc0#)l8D;37uJ>Vtjm7gx%RofA6kS`pCWVj{@Rhkui3#{6`{_ggu3w5R-TOnTRSaDOWYoA{znJG&as zo>iZ*=7Gm)na2-3`mV7&&^T~y!wL2fx!zUv*8HnzCB;- zrSg9=OlY3T5)<*Ixaj+{{~Yf5>6i02X!i^0XKq>Vu+7|1%2)rOpNsS#-Q_#(J>I2S sZrJ*}BlcE+HzSihGww(M#tRrU03(W&C<^dqWdrG81i}a)JsGSY06~(?xBvhE diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index d205c47e181b662c4240064c5859d422bf1179d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmWIWW@fQxU}E57$Sy7jIj;NI-J6ktA%dBKL5qQbA-S};BtJJkwWuh+NY_BmM9)C4 zI6o&owW1)us3bnIC^;juELAV7I6se*g_R+efuVtc!M39#-T04j;lfMjwpsJeIhvQL zx?irfH%Q7(eLeSX(~U0=S1;Wj!F>NCZ*#+${h?~vPvTy5oZY&>|IH8Y8R;vyLjK)! zzZHFS(ur>jtGE&$hBxudn`ctGZK?XJhsVTz6frq>s5(iV>(h)@keSSH?R2*Cc#~cK zM@^20}W!)JfuF^MoRiU5Bk2`y#7Ho~aZ@4yXVNscK%7h=^mezmnHnnIu zpvcMU7qN0u&6P?ShKiee=7qdj^Yv2R|7us)kLTC^e|LB%d)W@2BX8#EsZaK4`ps_d z7T77IenN)%X2-k@O>QrP{x*Ew@M`)WEu{#zk5B&|TEG#gozWz7NCZ*#+${h?~vPvTy5oZY&>|IH8Y8R;vyLjK)! zzZHFS(ur>jtGE&$hBxudn`ctGZK?XJhsVTz6frq>s5(iV>(h)@keSSH?Q}NpXsu-b zYSWc6W+KrYPF?fb_`;Sg%SoIe(xbz)?iIKAdmgoI+m?AYESU1weOpLD=d-0^fw#OS z>9}oDR?|EX`|2pKeZ&7I$L4_Duh}CnJUY+&V#QzE`x18|I`?u}xTn8)-F8QR*WRl; z&uwP5cV8rFy8Wlb7wM%F_PGVCRY|Ox8*HK3YpbMxyJPw$IlrKPkH5d4{o``QPI0YY z&sUb%WOV572@uMcH(_y(Ha&MTB6?v#_gaqMfpP!4*e>_|V@!Cz(5%hLyy4lqx02;? t@rVDvyryCl;LXTn&x|`(fDr=*4ZxTpC5{5TS=m537=bVXNKXOl2LN>f%bWlJ diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index 95935344597d6aa8498c01b36a57b5339e903911..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 522 zcmWIWW@fQxU}E57$SE!enf;GvS_mTpLl6rCgBAk=Lvm?xNq%m8YEe;sk*tNWnl#t|Nw?8Wwb^FTaJac)Od`I%}oIC4gW~Nv+%-w0? z!#``*htlO{i(c;blM>!_fM-V1gsIHw^Z5R|-A-6CRqC?B{4D}`morTE`^Ihgb|&V< zHT_+=Z#JCRbJ1hMyqt}HUTx0koLTY5)bMWx|Lw{EE!As>3f4WD96FQvM1t@YuN>~` zi`JXI9E>>p_Eg4!%sGq>x~^|~0~W?u6`hy<-y{3z%9p6G8zT!+^HWQ1etf$&Nh9Q+ zEO*_c4T7iJL;w5^|Nm_xn^Ax_Ba=Nd?$`lF5EwK7V~muz3h-uS1L<|#tFY0Drr5-6?Ml-u+#mylno@59ZR%S3W)!$_Z)FFj(F;C{Plo0e{TP%FTF zwCw9GR-3I$cqbM6)NfwXo*i>ryqWdXua@&%$F0k5TPJpUKEG;l>}Sy5jd!-)XsUPf zbWvQ~ApiB7#X*1m56`5J8c7ybCH~Phb=$?=Bx{xTb)WRv@9D1R;-_k#{}^Rd$!$FS z>$3?`6Fy$Pvh!q7QDOEhwQw!hnaK~EpD+7;K5oyK1smnL*4s_laIEiM{eqtlH}IS_ zIcmvm%a+osWt$gW=is}x>i4n5UqUt6r)x&Nd~JBLGAa9E)`5G|{+&qWwwrAr^a>^+9t?07}N@s%anWe1#C$e28z?+fDo*7G!voJ7dF(5$0@KL7#%4ghU)a8yxY39p3#007XD7gc{JuM4|1vFXEmrMFlE z-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2tN7`G(lF0S|stRG@SAq6Z|-Bh~gICN~cae zhVgi~w2^1{cmdI-b!+!2yUe=DlVe~{|FaIT-NP+LvtYG(AIaN&aGtgToMeR#wNjHt z%Jdks0}%|iSL~Io{@38}!82X`-%f7r!s9S~>-bSnny`P-x*PTVraxyFVk~D=;9Oa6 zvcLXJpT^tUr}vkCqDcJ*zO%89v!S_KgLs%Y>|OvRiqI0(W{=Vt76%vsx!2O2tT-{@ zJ!V`q@V6DD{R;)eZ)XYgt!&-dXD|LPs{hnJbv#f@0Rle*KL7#%4ghU)a8yxY39p3# U007Vg005KR0ZazX0RR910JB2PO#lD@ diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 29abdce607a9d5a8c70b4f272e1d8e71ab1ecf68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmWIWW@fQxU}E57$Sy7jnQgQ9r4J(mLj*GegBAk=Lvm?xNq%m8YEe;sk*gKkn>}TCg?xzTw)mg+*n`DHDEtTU!6Q+ti}v zfFdWWU&P8uHCHNS7%Fb=nHTbA&DTqL|EpbHKb~Lv|J~u8>}5N6j=Y(tr#{)I={LK* zTVSV<`Ux54n;r8uG`YPD`rGhz!>j3kw3H&;K0f_>XaPr{c1DxTk@H>ULY2ZdxoemD z^}Fozi9Yfx?^UdU>rcz&FJ^Y;)+lA|`owaotn;@%d+mY;4aW1A)<*FQ{*sp1%@ynU tcG?Q}-w!G-1$Z+u*)!vg6=1}GK?5+RNQt8WZ&o&t4n`o10Mb*y`T>lk(HQ^$ diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index 80cc05d39debbf7b61080276a7bf96dbf4158024..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmWIWW@fQxU}E57$Sy7jS#O-&vA z-7nYL8zg0?zMgxx>Bg6btCwz%V7~v6x4GfW{!q2-Cvh)2&Td`c|K^AHjPw;;A^&c= z--BKjNRa}V=!<%^K%`++8wp9Jq!((DUikO@`RGp;G^=U>c$V}$9b~?NIf0JGR zM@^20}W!)JfuF^MoRiU5Bk2`y#7Ho~aZ@4yXVNscK%7h=^mezmnHnnIu zpvcMU7qN0u&6P?ShKiee=7qdj^Yv2R|7us)kLTC^e|LB%d)W@2BX8#EsZaK4`ps_d z7T77IenN)%X2-k@O>QrP{x*Ew@M`)WEu{#zk5B&|TEG#gozWz7-??HUc2BygYo>OwNdFQh+t-5&|+Xfd$xbV`sZPvVVj^<^m z?w4!r4U)1`U(dbUbmPmz)l0WWFyH^k+uU$wf2dmaleiZhXSXi!fAhn8M*0e_kbgJb zZ$%%SbmAMsDz3zb;Y~dA=9!dkTdMx*;W4ovMNG~es!mep`ZS{zWG3@lJDoko9{IZO zO7N$K#jDCvIi9T*{r&Y;i!r-r1;gX#F27gg6l5G4UEfHx}}NCzVjMgZw4VEq7f%hfml diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 4226876c208137c27ccf58090131062e63e77968..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmWIWW@fQxU}E57$SE!e2@{{h?Ze2x5W&pApvAzzkX%|^lAjx&T2z!@q-&sOqGzC2 zoSze)T2YW+R1%+9l$?=Sma3OkoS(vA z-7nYL8zg0?zMgxx>Bg6btCwz%V7~v6x4GfW{!q2-Cvh)2&Td`c|K^AHjPw;;A^&c= z--BKjNRa}V=!<%^K%`++8wp9Jq!((DUikO@`RGp;G^=U>c$V}$9b~=0i^lPSF zZ{9Awo9dpG)z*;OmyCF_A;Mib=XOseS7M^H7`2e zaCXbtGnLEMN!-g&-v9m>r*hh#J2hP%Dv?sIcaCZP5;9A)Zgo6sdR)P6{Zyuj7O(I1 zrgSHMobB^7DSrR@C#yFwr^$bfm=VJ>H&Db{_W7BmYZ{VYU0uAd;2ZZWzK=gGs?Oe! v@hV?C|J)xIiQWKjMkae^+_3_T7%*r6#uO=W6yVLu2GYR@gb_e`3Rph?`i<1r diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index 0eeea5e4bd89635de33f3d51fc6a523f9e38baae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmWIWW@fQxU}E57$SE!e;bObA)Q6FQA%dBKL5qQbA-S};BtJJkwWuh+NY_BmM9)C4 zI6o&owW1)us3bnIC^;juELAV7I6se*g_R+efuVtc!M39#-T04j;lfMjwpsJeIhvQL zx?irfH%Q7(eLeSX(~U0=S1;Wj!F>NCZ*#+${h?~vPvTy5oZY&>|IH8Y8R;vyLjK)! zzZHFS(ur>jtGE&$hBxudn`ctGZK?XJhsVTz6frq>s5(iV>(h)@keSSH?R54>q58At z7NxlpJR8r;Yn++tWsuvR{Yc`qlNYD#i6)1C9*G6wt^5ZfS6yq|6)bIE*Z=X+y$EY> zrsg9b*`{wlRX6GDk#{#5J=)}JZYXCN-Ti#(#@(MgH);D-Sob!y!_^LZW|d+|!j|ee6KGh3Chlz?}(?T+<}V ztNDUBUzER{G|9v`-fMAI*@I(qMLaU~?yrCO_-HNTt9iUWnv7FCSH>u;kB>?#T+lyj tvyS15KlX=~1$Z+u*)!vg6=1}GK?5+RNQt8WZ&o&t4n`o10Mb*y`T;4*(G&mx diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index 2b5b716cb9ffec04eacf7492c591acb3ab670e5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmWIWW@fQxU}E57$SE!evEvjv;KRtk5W&pApvAzzkX%|^lAjx&T2z!@q-&sOqGzC2 zoSze)T2YW+R1%+9l$?=Sma3OkoS(vA z-7nYL8zg0?zMgxx>Bg6btCwz%V7~v6x4GfW{!q2-Cvh)2&Td`c|K^AHjPw;;A^&c= z--BKjNRa}V=!<%^K%`++8wp9Jq!((DUikO@`RGp;G^=U>c$V}$9b~-0;#Qj-w zi_+W)o{i__HO@@+GRSSuekAeQ$%|9=M3cimkHiA;R{jH#tFATf3YNC7>;L%ZUWBzb zQ}dCJY}2=&s+;un$h#Yj9&Pe9H~K6W78!t-NN;Le0cu4xkG z)qFvmFUsFenq*=e@3lCq?7^|QA|9D~_t(FCe6*JF)jVDwO~xsnD`OPa$48|VF6f`N tS;z3jANxbg0=yZS?3r=L3NT{8paB?Dq{LBxH!B-R2O|(h0O=`U{Q#Rb&%^)# diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index 38bd0314c794dab28e6e9ebca5ea89215498abac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmWIWW@fQxU}E57$SE!exfp(Mmk%QYLj*GegBAk=Lvm?xNq%m8YEe;sk*a$oZPdL+^S_JKe}je{7n&WjGm_8oj zyWGA1_w4*y_czM6;6VDEI>qBMcXXA$9@?{c-TS4t8B~r@u&N0njLS~89t&V3+k1M#XpUO1R;`P1W zlNCZ*#+${h?~vPvTy5oZY&>|IH8Y8R;vyLjK)! zzZHFS(ur>jtGE&$hBxudn`ctGZK?XJhsVTz6frq>s5(iV>(h)@keSSH?R3s*UT^Qu z=2>a$oZPdL+^S_JKe}je{7n&WjGm_8oj zyWGA1_w4*y_czM6;6VDEI>qBMcXXA$9@?{c-TS4t8B~r@u&N0njLS~89t&V3+k1M#XpUO1R;`P1W zlT8sWHRZ-i_QC&=hv?}-mR-=TJt^AmVAI*+Wu;Cng$%lXRu^A=T&wg> zbccn2MmEw5hAihNqIJ3a3A z=i&{LUH5)}{4Hg0?)FguekX~Ae4=c6mC2iy`Mp2Q(g7aHerHZpvWhSkXWSV%6M_5Hg>U6@r z{sJ?WgzyW0woktNJ)qvX!K+1n^Z%=YhYBBDS;D%mYkIT%yu{6U;ZDGNwfVgcLcfy9oS!bL!>NSOGhQT_u2p5x1SU~GczjK?qmID@5A#2f92v!PMlJI z+v+e~&Uc@Nk0syA{XX6AF8?_s{nzDw_qKHa%0p6^@RLa1> O2!z2vIvtp985jWMIzMOt diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 4bc34b2c9a8c7b2abefd62ac9399d932da76ea43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720 zcmWIWW@fQxU}E57NGdJ}kyG!?P+?+VXk=qxP-S3XNXakH$jnLAHPAEBGteu}&xud1 zD9A4=iBBv_&d4lF)ypc*&*NlaWr$^9XkcKl?dV81{$pIY@Y1<$*1U6$=4Gnxmuu|} zlCo1@&%N7pdGeP>yOeS6DQ-1JO#&qJGlJbzXnr?pD zQMct6{QbCWcT$W=!P-4_6%X^m0%m+*<=J@ezw!xXea|h^1PYI zq7NCa4csLd^>_91=M8`EM9oc@G1s9)>)wZVSDvd$eOxJZesA^hZD-!>sO_G~V(c)( zro8ac1zq*6D-E6aR)jIQ$pm;DEYD}MTl4(Z(LeL%ROSnZUvaWH_3B8D(8Kj_XY6HS zDNB(Q&T?e$m8iMq_)t*k`WxZ!v}$vyW2;vF|Df?yEdJZQSB6nU#w0#&J@of+I!&hK8+`B|8HKoIQzU{K=Ag^YZs8!asoMssP5-^C?`PjbC_Vcbs7XQrW1gCc0u-(;Q9lGH( zXT*2U*MZI*QZBVl=hUqo=4Jf<_`%UOz?+fDo*8#S1Ew`FXkY|UL?ycbZ&qL`Wnf?g N!eAhs4otTU3;i2@tPQxn9sz(pvKO?pvu6&kdj}Xk(raKYoKSMXP{S{pA(;2 zQIKC$5}#OzW0W2!zZnVh zg$jfio8EZ+Z*uC#pF4JCsC{<(qP*i;jK?y*y&cmZY|lH^UfcTWD}&UsuW4mJs#{psy(bnfl8-_p{5Hi^D`8ouZ0 z8^-0|ZEk6`x;3!6{}O2Gef>)beR&TTuHhq)Ox}{_p-)1`GBgWFTD&zB43;fb6jmvZLGp^MQ!yO z*VA`7!tL)rKD<)t%1ev1w^}k%e6j}^0)EKsyXE$0eI2C<_YgtH=Iis0do#++D^M^yESy{`p?XFdC@{lq$i##s zY*5+S^`g#r7j|zu9u!ml*TR~8(zMM2E+%aTcDi=IgFgLx5@`|O n&B$cWj62N&lPwrDFoGzeQgDDbD;r2LBM=4y=}o{az`y_i?^jr& diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index b3f271b1c09723bb35ee8be74c3f0ff270819911..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 804 zcmWIWW@fQxU}E57NG>i2SsFXnwt|U);VnA@gDL|9LrQ*mMrKZ`u7RG3o`GI*eolO9 zML~X1Nqk~aazT8sWHRYGpYp+Nx~hzy4Z2F3)ZH$h zc%~uxvwI3V)4}!sOU@PBb$@$#%j#QC&R*9mZ+e%@`PY6ik-TO5+3LROq8Dc#`sWn9 zQA)CUxt!x7!};Io_Y_ySFD_PfyZ+_%@s!O1y91(Dy^)%+S*9;ZFL&XV)9(t-r?=~^ zYPzz7X}7%o^2A*J@Ea_5?MnGvg@3QJ3*7SbN92=tcb9j5tNbD~Rma3-j#=y6B6GGy zdK}OGCNY{Qop`%4a=LD_o6W6qp~sgl&lTIO@uJ=1WOm_Ao)w#{gZx5!Or4cARu zXQTI6irFaXHjhIf1H`P*dr5-0krEb4GoEsrcMK<;9odH|WZ9Jlrp}ww|d? zXja}{WexxU diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.12-compact.zip index 8c39b863600b303a79df8105c87add488e76ca2d..c78f73da9744956704196e248ee8a54b085593f1 100644 GIT binary patch delta 723 zcmV;^0xbRJ2HFM}P)h>@KL7#%4gl=6WL55m}2dlSBPtR2)E)`ghR9}(<@z03C^v%ScH{A@z zK0oC?P4!Z{P)mPw1Fk+~I-WSW8F~z7tP`^PHM-QUH*fWn)U&i+^2J}%=Kt^S8rrQT zagqHnbkM|Lh6FBDP+_~7z1_}CDHk0w;gvF$N*7}V(NAc(b8761dV_F$8?`|xa5ud#a$kq%D$dG z*-gz%J23D9!aBI5c(+sX2N|TY(^OaokjdW8=}Q#Z^2wTxwF!=Bd*+OLN(S2mek*w1dO7KoUs+6iR2f7a`+V$PFF7S~9#ly)Ns zmNm&n+RZRiQ+8Z<2pFvsuNlcIOIktatQxrJ^(4iXDWvrkmdk0nK+&YJxnLr(yW|$>$ z?QAI7m|9h$Wx!b)J-PjFq3}>k0Rle*KL7#%4gl=6WL5@KL7#%4gh3xa8wgvm^Qis008I+001SE90MqkLnMDEuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2tN9)zQBR9MpO0;+M*(g#2 zPhWSI7gs@@Ns20<(N`A#m6h?*G?Ld2Bf<2o990fM7?2}}mBb|*`+f#2U@iEe43j1a zn`DSG+b+OZI^sm_eCv~8JxPBdd8ds~g7EKq!O{rgxlI@@ueyKXR+FEHF7|Z{l`;&} zGpA2z2_Y<1acuZR zb!Igl6@?46yq z-s>dP>uM?t>YnIkNGUKCc!%$wqZ*!3Qg`->Pq1QA32?~lvYmgxn|bwR^+LmM^98peae&7!=$1-8H%klr91=UhKCId(Sv3H~ zb}hBIjdIc~+@~%d=sZ&8o?fu9WEe(48^J<6kqNB7DLT;0;17hYBOPDxe@+WMa>?|E z_HQeCa(u-!eJer*TZHmi;qp!<2TC_wtVQTJb2szRufz0_zC(XrEW?GAKd6ZTF6@~> zVS=eDVPG2j80kBDuD2XQRI+Bh2M1UueA8e>-0{`wNXk{0sLQ?au{U{jt6E=6BAg6d zuN~HvYuI@4ZK^j`(-@^%|2>|0008jkT$BI+ diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index ba560b7327d7bd103e68251c44500aa7f10e7514..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 721 zcmWIWW@fQxU}E57NGdJ}`S#J=MwN+yp^=S&L6w1lAtk>&BQqye*Feui&p@v@KPNu5 zq9DJhBtEeyIU}Xbn!b|72S@X_0nwP1%U#_(` zNXkxqJ@;AMVz}71PYI zq7NCa4csLd^>_91=M8`EM9oc@G1s9)>)wZVm&>@kj%0o37r9qxs#>TRI7Mc;d|}}B z*V6Gn!X#JTGH#zQ-SpsF{#+x$-zjG`e?;Ef_CcZDC+*UU=G@!o{EM=tW{OvbcqBeF znyRL|A+6+<@u5i4kO0j%cbKu+6WPV9w(~MOsf8JkKvuN>WhOFRB|0bmc z@64{>RWoFtbmQf{l&cXN{!N+O6jEvFy}H}Kq$I>4A(-L5Eo1S?T}gbOkKM7!{~;I7 zwRG1!oB0*nUYDuNGU!VblUyF&#N>W`-4(+-JGne(F=q?;DvCdh*U0vhX?uS`aQEAd zoj-qvJ%4tMFVC@PK4;Lphj}sAMe}Fv3-6Wq@#W7=mspuTwZPyc{Z~Hc9~oUSE;D?t zcQpQeM^k%XxQ&@~=)!5Y4>!&EW?8;>rohpREbZ=k<KvVT8sWHRYGpGsk^jOoNVCFLP&HQoHQ zqi)MD`1^6$?xYx#g0*|hJ31&l~>SiJF@*W3EGq*1Zq!u4p|v<8bKHvQxYE`>{>h=IptnC(-1) z*s*KkoNqXk?=N}$@aNP6=Z>pB;_VWz5BzT{r4fDMG?SmM2cP3 zlF3@6;hyuR=IJy`{%`8LopRH^f88V{V;+9u&{3D736~4wt}ocLSHx-msTW^vyhuq@ zc)sVTq3nT_t@8Ofi~jPxo)XB(sK0pTTi26}CEs_%9ABCI;dsUepNHF0zJFTH_-L!n zmX8+aUT#;kv}yq&Ah|Ag_UMzE(y!wn1H)b9bZY@3eA+MMK` z{iT;fzIcmxE4%F?rO+MuA6M4yIeFz**c9dfZ$>72X51+anApIefe}OzmF@z(S%Jxv Rfq@YSgMoAgFyS&V000$DJ_!H- diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index b05806362ef6f3ddf5742b60b0b8d03d84f4b301..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 721 zcmWIWW@fQxU}E57NG>i2IdSsHR#hejhDJ6922}xp7^Zk#!%?)SvhpJ^iiF?s;cIyKFH$S{*q_5x#`FGR(_0`?V z=6htkwv>OlsS(8NA74IAJlt`vXP4H3i{WDbr%wHN$z;-XK9xPG!U28%Sp3th+*c_a zTM+lW@>S29Wugpr{9PW~O@h;&MLwBOJNL5m6Sj#0;S)kv6k2BPiuG9;>-0{*i&5sz zm&YE9uP&N(WRm`p5a+w=^cOnqOn25?b5!SK?~}@VL3Kq83jFH9oo3HdZ|Q5NC7$Bd zy&<8y{r_Kc@3k*}s%WLJQ}{eF;?I(YM`|6)Y8_rD*{K|9*eh6Gkecg~(f)eN_E(0i zvm+NpsqM%<`gW~Ss%-G<>L2flUOw8anP{r=P4|L*^D?CizQ^Y>+sK6dHPk+Ack(EA z?vLdESw?$mI={vFcTN>L9k<6ML2T~6^hu9Pey47GvhMD4lb{N}`(lrl-3-X@)#JM* z%d~vuBl9OGW*$A~H$l5yH97oH-;So{-D^_z%RKSPYW$k9=~KU+TwM4o6RGy#y$OaV zuHOzc4YkQODzf1d{&A|sVgLSj@8viBah2k)*HHU1FYbS;C+FJ6iGPE`W7DoBI`56k zs=3Y9{P8rugxN+5wr|%i-LQCjUQ#8(s-kATk?i2+5GR-J#{7qhDJ6922}xp7^Zk#!%?)SvhpJ^iiF?s;cIyKFH$S{*q_5x#`FGR(_0`?V z=6htkwv>OlsS(8NA74IAJlt`vXP4H3i{WDbr%wHN$z;-XK2^4fOmmMce7-W#%w*4@ z7ERSHo82AD@5O)I>tt8p{lwx#{m~mS_FW>l>x#pAq6Mi2X=FUTL7j<#p^=S&L6w1lAtk>&BQqye*Feui&p@v@KPNu5 zq9DJhBtEeyIU}Xbn!b|72S@X_0nwP1%U#_(` zNXkxqJ@;AMVz}7sH_wKaNm-XiC1mNm<##e5OJ((S7hHsg5qJ6$QESe-?YH={~cE!SVWKVrvZALsuf zj`2cLUwm?Qety1Az<2klty8^c*LXG@kJ;Sv^t5i&^W;V5-_>_-ySZxXmKi5Z)=$?+ z2)^-bUsg|sQsaikCv}rH)NWiO^XyORLnHC+&Kn>8d{e?+A^qrwa;MhAt4jlt1jEwT ze)}gMcSgtaU~hAlef6{xmv(Myc2~a}QqZ!zcAm@CgTKZ9zjM7Dv$KGe|I)5SAE(~f zxrM9K%=yqqR_CiX1o&qN3;p0@yWbsg>DKAV4>TeSW>~H`{O*s&cSr39DnI|Oj9ea; zaLs+*cKzu^cC{L{5=SCBKTqR%eX`L}HIvUc>e~DMiaR}mVbU+WTR$Oj>+sJ8d$wyYSySsXH@#J*jZ^1F{JH4|Urb#1YGIm$N~*ln zhMgZCKAA6B#I&ht-tF@}jMa`kSDoLsoytC~fANv9?D;zPKjvFkB<*tbd;Y|9%8W&? zWiMFk@P#NS=oAUs-A;ZhH_vZQp3?uvzFhADycwD7nQ^BzU~&V421XD?RLTqRW(6ix R1_nkT3i2S+9})IiHDv!I+(aL6w1lAtk>&BQqye*Feui&p@v@KPNu5 zq9DJhBtEeyIU}Xbn!b|72S@X_0nwP1%U#_(` zNXkxqJ@;AMVz}7sH_wKaNm-XiC1mNm<##e5OJ((S7hHsg5qJ6$QESe-?YH={~cE!SVWKVrvZALsuf zj`2cLUwm?Qety1Az<2klty8^c*LXG@kJ;SvRO;lS^jB93V(Ry^h$t>o+Szw!XT{fg z-n}=hrau$q>oOI;;NfBv7rmc3IrX`D8@s^o;%Y;%&cd78%iW7M&ObzfhW zZ5ke-<-1GXv3XX?6po!|IX7h-zIvCL>+m!->l4T4XT`K@Mg-R<{o7#jes_kS=Za4` z0xp$W@={iwpZD6<^1prf;kLwo#}yx@Pw~tbNwGdZYpV+1f>*o0>FJhiGidp<c`&LC3?H$Lf}O+RSj{+?6ai%Z+QwA5lAQ zf$!fxUj1Jq&3kmQq|+ysNgcPPcs4v(@5?2_S*zQt`AIgozwD*Wi&raB-9E%Go06EF zdcQ%V-{+)^iu@=2v}T*#K?nD$YQ+4!p%(kmadLC{evIT<%Mi50*3J&mQWdkW@1j1k-y$P5F7#ILeV_E$G diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index 25f7bf67ee40e0e743beaa99105bf1647bea9f8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 794 zcmWIWW@fQxU}E57NG>i2x#hn&I**Bg!I+(aL6w1lAtk>&BQqye*Feui&p@v@KPNu5 zq9DJhBtEeyIU}Xbn!b|72S@X_0nwP1%U#_(` zNXkxqJ@;AMVz}7tt8p{lwNzw(4% zZd>$PWa6Urv>gg+&e$g=eO%|9_{{e6tqV(6I_Ez#*mPkEgWsXaA0$gPO5ZEpzxsTq zSi!E1FW)Na+b{a^F;eWK{mI)$Y^^E{EV#;J8D?25YnQs+!^<4?vldv3Fx*k5jX zCCi7?nyakQ#eKrnUH2rt1o`$oZRZTLJLGuudff4a?ZJgR%+`0f1)jY+x!7&@r;N^G zneM5Z%r@A#KF&FbJx zzo3?5ET_dOxWKos^25QZ)BdNlf5dKj^Dwn|$*a<-?c2UqY;5#NSbO%$yv^%OHh$S{ zCtTKZH{hjT)VV%)0W&qr`uhB1&8v1%5DmsU-aea$Di2xjAR+(tIWc232+-W?*1Q$uG~y%t_TX&@<69&@0Z*iBGL4 z$S*31Pb^B#$Sh0M%PP*#<78oFh-F}CU|_KA=twvIV_dlK(z$KcymOA`WvcF%YwZn^ zvQuBrz1wu-%fr=6w?{DF|H#|iaAtp~TK1E;7aeD}F7SWz!+S>h3a*fUH{D-f-K}iC zN5*SQ`Inm-LCpT~<X)U-IF7|)w)Q^`;CSB)KQ~FV`{K&%RD-+F3_8e-_ zRNb=K-Ld>${Kvgcb_L!~Y>u71akN>ABU?{<$@CkuXEEgp<(E}8?-vy6(qDb%!`_la zYk|hU{;Qea+DlZzr$>8)iA>;?=vhf{QenGNhOrA*dv|Gve* zG5@~oC!a@0Pw};v21%)F?^ww5#O}aivnSXZ(&w69 zGVC_;w9~0g^!A+MoHMzps(r_{_Y(ImoGCc^k~Q|FPh8bAxwtMLIVY#yBfIj~y-WLZ zd&A=7XA|vqOjWwOeWtiZ=d`8T@j$zmwfs4LPM?hacyg5^3QKeinMTJ z+!oNHT{PFh^qKWOVW!x#d#&9h{M>$P+U&RZdsk<^{TFHO@^Jpg>C^u|30IE}@MdJP kXU3gofyovO8W=$oQ7JgUo0Scum=Oqrf%GO|7GPii0Qv?~!vFvP diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.5-compact.zip deleted file mode 100644 index 3a5919dd69635335c09ab6c291de616fcc67101e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1395 zcma)+X*kpg0LK3eImal9i6LaL%+ZW9a%_Yd$B-Ne&D7+IF^){B%;e0Gbrc$DUAbd= z48<1Z8jNuj328OtN{D4MvbEp$dG>uj{GRuD-p@Y*9wcG`2m>+zIU>wW-0%2*{YI|?t0i;K6*~`Q(1~ z@6OBH_&om#Nw@Fgwo7kXG>raG#x+FqLT(@7680TU3HLCIk|VLJ19hPZeIR|2dRX-5 z&;E1cc>~xFME`0DLqyaAZxbm3`kJuNI6bOs`K90RMki3B*PQH-2Ip0a_a?bdKA&L} z;LY!O(X4nN)7$WPA+BPC%1DhY^+mLO-JWow=qh|n-F|5**|DDg)M!>CCSfD_MWAwa zlE!reg}a4|>rny}B5I2P>>I1t_V<~dK|2shAk9+8K`kGbGra5jO4d-qYPV-INb<<@ zT93YNNNnC$5ByS1)QK{Wyayp9PO9}psbQnf-IS!$j}w-o&#hc;f|O!l2(uZjG9M{F z&JISpxj^u?ZZTm2DW$nW(YJM*=YCu7IZKBao_UouMXY}U&9~B)4pn1+LFaZn7%X(V zwdd|sbzzAclI_^FLL1Gk+%XU1enLEUfJ~LIGc$H*jWdMLY+HQ_wxl0 zrzb})-jwXR-n4zSZoo^y)H{^XzxXiF8I1Izlofm|0qa~+s+!wtn;}Ict}FaqP9bf& zfVDi@b5SnlJzn9jnS}nQa!J9j4~;BM_qW|X zJ_z?$vObA%&HMiB*aAM)k;TDVv>HQJisz)trVw#qanm{QEF>W81#8$6tC~w2DlLvN zsoJY8SyhP*Mto7N^Ph}z>4XK|Yu;Yfbb@V7v~Q@(ds;lgFhY%gDRExMjJY;2B4KAX zjcx>7L#lbsG)>KyTQhNa{8eaS=6w3jDR5?uKykR&Y`})jKi{*#e+(Xxcxq5cZDho`!5s|e&P5PwHfob; zgGDmyOE_u@CeD>qvkr2pbh-)W_xN=bnJaFkIyc}4#Fbg2eITtMwjAm>wn^?$x|&TQ zeU!6I4_b*qALw{IqfJ38@7}I?5RtpR|U!EC-ZV=9Y9n0~egF!c5R>=rPs6NPd#)mQ?jEBHy#~m2Dr0y`Qg5 z3ciJp;Xw^F$rB^YyBF>hTVS`z!<#KF+Fu_X$-#ad&)^wG3aW8$tiK0LJ}rAf^pZCy zx_{7rpitM(*c9nG#wh(@+o;-BtO~X!iYcA)6+EmkfpE3h%wTNeII{ZJLTOiil&;YM zS?U-Zm4`#ys(`ZL_{6J#qF7c1+lH8um;^hDZ!4v#v{)KalL!`ze|>SXFqdibYxG&3 zmEq8A&ocKzz3t-_KE`Wt|ICoBUt#8}_GY4`C0gGl8}ao7-R|=dt)gpQAxGmytOAA| z=yPI7GbCroGc#`VL#+&2WC4}Qf?HpKT0R+-$emR{Eav*Im9GSy$2KioHEdw$?sXAJ nL;_w&*aGz5F8raxe?u4giT`Cr0$z0A&$G~vp8i2e(Vy!dw&Qot diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.6-compact.zip deleted file mode 100644 index 7b8fda48fadf46d3ea4c61eb2879e4e1798c3a59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1395 zcma)+YdF&j0LK5b$w4-vG$dpZBh0LF*%P{r!(4JnHj9}{j5*Q8aX03EqK-?)CCNP| zBTW=`a+y0Px*S^3HkA94+o|*YJkNRG55MPqp7-+)Zv%#40Wkmyki$Zpt!`?3cnJZ3 zPz3-$007`ajqvloO4c*bH`Yh%hf%K*$=5@uv|orMnzx^SI9Wd+j2bKn5eGa0AO--; zlanc^EmUa9$Uu{+%so!9KcZbVG2KzgLaR=ijb;iuZfv1*a;$yh&7mo&hB=D2_ zS;hAAUu|+J6;jSSljr8f*+(#~D!9gofgpw&7r#d{h30B@P5uh2+Fuu**atR-)E|l% zoqjwGhZ(Npx=%SS#E;lx;^zb1Egg;_T_+rd%nqCL;Kqb@4IRZc&;5(nDzWj_+EO`m zY{1;6!EII~MbC8`&hdG-Ra0QVo=ig@SXl5Jn;$h~MLI=kk_BB3^Nom+9U~Oz3tcN`NYX z@uI{(MgF7%Rj6R!4ENK5OE?jet@?o^Ova>Qmoglb89g(6KW2VIP!hv*U`bR>%L$x_ z+0aH(w!*2rJ4n8A`{uz}PF0%lXHuE9M&jWzMBPNRHUVD~Um75*9ar&mZA>{aH7S?m z`{aujsn5q*rU3)nN^PrrfE}1HENM_-Ttw}kv0Yk}i4#&v;|ON^tZT*6vS;LR8eiJd z1A`>`*|X&##t1^4o1VmBk8l(7%PSj5B9#ShYD6sbO*V5!M^Y8f_Hij%?8VNk_qE8C z6K~HyEM>Nt3(-$l&5HQdoPcGp>7(`%;c;By6@`KGM;#fn=!fCbIwycosHQvJdAh@W zYuGbg%8I9=o*R>rB+&E#11zF3f>-PUa1+Z~YTvd1mZ$Es6KxL6ty_VymO#aPF>5Luybk z-)tykm!;MB(q!Co?GNZ8)fe_QaOUVGK27!W=8$q04P)Oi9u1Glby?@*3UEsbstKLl zE*dzl@BCL-`6h&pN_FIXfNh-_6Bso!Xt5%!t+!EN%}%`DqoTl$j!hr?`qh@iEC&NB zqkEfKi(-{r|7cC)uYRn3l@U0->5zB!oE-d^j+cAudX$?{1ENCk%!l+hri}jTbMc*o zei-(B)Y^3({gi~WP3Gv1V z$2LERtU3v0pp@WJ^eOFBie*UL#Hg{{g`V}E-keGih`zfDGg=h(lFvxX7tcSCoGb4L zv!EeDv9H8Ap_fNA)KlB1yWd)s%X+mh>oyry9G_~{b_jdnmj#?=_VSQxBet)dxe(9g z>_e==8}=qye4TVkk-wAQ41uARf!uNL$M$%Rdj2gV^# z7qUveP(>JrJUey1Q$9nwihZ4q?L94_rUE!~V9!8L`PEpv=@ni20_NTQU`@l5>XSxp z{R4*TmLLhA&)Uw7X_>L1PDyf*SX`9SF_*g*gM%j7rR1e;)#xa^Q>%vst^Qv68+hbj z!rQXX)CnmSwp~KgMLg4-=wheSWMv(Il1UMnI_j21G3@DoqA`|Z*=+?b%T3KoJa0J$ zlNii7t#;pTPfH-~ z06+ka6pRT)YiPmrVEV8~T&OQP3XhAp>FXEaAB?$$hJ{4p!udelfHwe;0RWzq6r_8g zODGy2ZN7XauO}R%*eQKC-9-{{p$^=p|6=KFY-x)J7i05G0(rR8O$p2LSxg$C6*{i& z+CB=ZIPH2ww_cfQlQ(FGUTY$ah9%1mJMk!_L?Dfc5EPAyQIohk#H9zSmm*CtTNpNi z+B?_!ja=3e#vKh3RaMIAuIb@ zS+uwy4dkIjPr&R!^;4}jdYb;(wKea_)hT%&@SY#kk|-$lCZ+W~o>BUC3a;ot2@H(^ zM1{1gb6tO;qlqi*?ABnzvW?Uz2BO&dcx7C9P2DQtor%Szczk!D(X5^$;yE~R_f>o!l`h+L4^2`8j1&(ur$WC$R^c9!^RFRt6l z9SnP8aFz=9l^vYXMymQQ^(-ZcUa(pL234_~_rDy+<|)riP^F*?z5iRj&g{YsA$Dpr^@i zK$mR-0GawE9S zeV2Mj!x$@sYH>?WE0)sVcLB`1q!6!V^K-3gS0_nk#oFzi6drB8U(iO8lm$MB;pce% z`MOk))V>s}uWXe>yj=O{5QOjv$STa!zb+dl2i0Tx#YC6e!RlS**<}^Ys9YJwp;I}+ zt}c<;;|iAS#VH@n&rr?lCQ1r|kZ5(G!{85}#j}aQ@P5))=8}Th;b5HdzCsHB9P-T8 zQ_u&z%Q#$Qwl=6s%fgYaMlDo{E|c6ZeL_ErXif2(5UR?gZMoy(9Tdh6xSo}9sFp0Z zduohNn%)8%_UXq~*ud7rSjGF7JQr_l*^C@+3(+i>m5nUeGG&7P#I(HqYfP*#6*WeS z9*rP;nhbuVYX@rz(s?r^wYI8zsgTQ|w*nzrUROZywLi5~62K0OXy{7DH63GSWLfK{ zL^(yKd9Kcy8uNanw8YL{39qr`LyhDVogak>o_Dp^Bste+$2R-V>vTX2ci;!6)MwJ^ z@KC|(-ZrL{-SoV~;Lp@XgUqFFN2>TKh_hj^lzG`Mk$Vo z(b_VEmFBm5G$jFSpN%u$cV!WFD;bA@B*zToD79$xB%A58G7FjPJ84Gj5(jg~utm%5 ziyck_uXEc1BC~cgCyP=;3_YPU7^4gbPe_`oRakG)i`l)z8*{gVj~A)CFfyiw(0Mdr zWXe4@q7N4wNAF& SJipHzC;j7Oy-u(OfPVldv#*>0 diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.8-compact.zip deleted file mode 100644 index 907a36c8b8f1b0fe0a3c70316ee78a591578452a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1473 zcma*nYdF&j00!_s=6(<}A%sYxtz3pt?uTs$V{=e)86%TKn9Gs}TcixR6fM_DDQeL; z8gi-R63ewH!d#l%ZzpkdzMtng@B88X@_znd&;lTHfFF88}4@@D2f0jUJ1P<3K9g)13&@*oK8sz z)Zft$E9UgPFqOF1ekn+^NriIDMe&SQwRnT!v$@td2FqRG%d$jLLRXXP(cmes*_7_u zA}8J!`c7bl7;bmO?%P1a5u=w%s2WmFNUCZVMo8mExSLrd7++f%q@zIT6fgiiRVIBH zZy1}1W~wcIcc*qAS`}ZO;wb6JNC`0X9?CQ-*)UHf2-6}RRG~Excny2{rluWC2x4P4 ziZ3-WUJnG{IU0hvTSv)c4IrNRQ)X5{ZRP@bdYdm*+L=N;aa}<|*yAjMeVl$muE@LO zL-y5npy$0GDGSZX?J%|FK>1a5m0;mGx~qrEiRz-l!|>8(A6dQKp^*r|$9QrHB1z4I zY%wLxfG_#R;5@m&04SOdeF38pX1Doqv3y$5F=z)&a{2?8wL>L)+^1Au$6ZsC3I`GV z-h02y0Ae?dAI7~PPT{^eo4k+ZYoAN5*pPTgV!8_0XsxaGN6z!oI)G!Jj>(6##$IEK zeDS>5aE8u5sJIZiitN3%c-K-Li_^0^h!jh7VG!T0`x13PwTM7vEe#aLMtdMcij_g1 zt9?>{0W(jRbf_ZukE=G;MWC;ii_26s|2ViVnhsFjf)@hLKl8kdhy@#H_Cfv*aCm-} z_@@C(R^5@|(bS)0QDXKO-tk==XOiTY?~?%H#JT85(uxzVnyV&{CZ3rr@F{Ic7i>i( z_NcIAGo?q(lP1wdYi^hNFO_^oM7z=@N?V1P*GngBzZ88|{28CGnH+<~eAj7oY?HR9 z-;d(GwLa@wNDkGVnB=`J!=|ro`}%OB@0O-_vL|-O808rA8#(n=;j?UO7IYZzO5S1w z{hA3e*x{Kxxx$;7_+&*IUJl7vM4r4wsxqtU7>j58s3o?G zlo|5RK4=Nx;{B|b3V-WTX1VoHn7TEGhYwJ(Zq(Q1A7Dfz)Eh83VoSJyG5n^OLnKL9@=V$9IJ7DB+fIGZ>{VQBLh0lnsKUdAID&IpDO&^{d z-;86Y&`@34Q({^Lp~|%bW(4%=jTKGyc#(s>y#BTZzOkn0iXD@?;MAdbI$L4 z-R8YDu|>xFn#Mb}WhMbaV%3(4nHRxic?G(v^wKNizT*l=WY2tkCc?IF zRSKwHFq2ihSCo0D_RXf;9@5^X=>6L!#c}rT2dwbNjVw?06DWkw;Y;4>qcpisJeFzC zl9&79y|y>nB^kMe6KRfex>7C~zK&MCeyZc>d~lSrT55%et)HbvM7~);j5&H%#ZNMf zX3=8o6mks^mR(svr|cl19N`nesFujR4S*SeLG$sO3;egN`?&s_1ioMMznsOO1%-Z{ O`Sy$5U-x~e0pK5eX{$s4 diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.9-compact.zip deleted file mode 100644 index 8b45ae3148068760a5b0d8a486c78355a4e4e961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1440 zcma)+X*kpg0LK5!7$G-XjLa55MPqp7-+)hXsMr04E>-c!dR9FF8_Ow!i>TDh2=w z004LfMfvy!;Nb{WO;s(`u%G}}d~|S7Xt=9;=nWs=NW7|FSWqAjm^qieeIyWP5QC`Q%Vr{RmNyYPzqA1i1&K2`)bqH8j&Q zDO_E7c5T(}ZXa}$Z+&i1N<~BvRH#uR(kx|EsUFAuAi`8uwMraW)ih60Fjj+z8|hDa zJkvpKdy8f%5_Gfc$mz8sx)q+}#Z7Pr8bsCDZIte;gs}NkK0Pzb1A$HpSRC-mXOWu3 zQc+*OoA?Y%dl&7cUm0GSRW6truVA6hG$I8z#JbQ#U99DY!Nt1=%BIKT^(cD^9UYp3{Db6oQD z_(4qyJsPt@6S;=XAiT? zhVVQk$-otdr+xF1HEDOCtHJdHFKQ^=TiL=qj9Nv|sL{~$ytBM>n4Oz_sENSpFx;(&;C|H9Wc#N0*CmVtyN<}k8#8-Hjr#nflZ9Tot7~2XcVK`*nPTKX7nCGv z^V=-V-_qYs`i8N`vB|qp%(4LSWhwdHz9ZDvilM1)0N;8z=gBtc6P>VbE5gWg>bVww zW8Q{tMrI~m6I}8&JVRAU-~R4acoq2Ome`EhF{h{HlTBsjGlv%5oI0LjI4I$;9Gqy- ge~a^nJO51_$4~q(jpDFeke_FcAGP{HZLXi|A8*yB2><{9 diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 94d8f1746cdf340d7c633b87c290c9422aa4162b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2243 zcmajh`9IT-0|)Ron=5C;oO9(!h>VF@u*%zaHr#>bVRoXx%5*CIJ%$gvR0#K`$z zjyVg>ndAyh$kDgY_xJDP`+EKG`sMWpJk3l%U^u`CZ~-eAe@g|AH>_f;05I(V08#(| zxcdhAD5)r`E2}7D{JfprAN%_S1UkC}xS>6R-IcvCe!gsACcp^*umGTq!+EHks68wh z8*bL(%8769+@A0DR0#lkCc3idV5+k_{+ zTWnL9%5$gCOA70g7%oEquFL@UfGa~_>;ZZf8=2adxI388n#x0MYVE7VwaMs=C)BfU zkq0loZ~G-6IDLsS^^U>5fGc{9@uu@pOT|O_3pVJzbp1O69=Kb`M&dmQp1;@aG^8wp zm2r~I>pL`F*(u+;NY#^4{Oy)(pT5)22)7?_%LK>DkLgHJBe4-{V%>fvFEB68 z8-(&bK=Eg`ZG^#@+dRh(Yo`rc*NIBB5ge%To2TdDsA{ta(^mO(6x#>__;#OkYS-LBp0X$;CfyXI~DIBOYXDLrSfEIg>l&vUZ>Ykq&= zP&ke+(eJmz$T+@~w9s(xvcHbZ;L}Xk6lTQwK?n=L)Jwbm7(FO_E4q9Pf$%ZAa3NfGeqT^c_7Jto+#;a^Q(>Dg{X?^|}0dp5>vYy<*5m>YY_lfVi z+FaF_>7HVdn!_8s&|1S7VU%H^a1B)>?=?N^JhDk%)`*?#pfS4jv@|E6ZhF)b9a5@y zJ=R}=`CKCRQn5MxkECl4N;#II z;WuuhVY|2bl1O}hE-~Yqy?9{<@cui?E%97|1U_vc?Q=O818dDwYg;{o$-pm4#w|1O z3|`St#H6z+&+3)c^*-9I(V_(IUen(f+8IYGtaOV`lhby1NnHim6vvMihMj z<6>@d#BpcM-=W>~m=Xm_srd=P|0ww}%-ea_JrOWEgQ zwavst*g*?r_|S-{1@C^O0w43~SC$?+?TYK_lkV7ZIp7Fx$r$JGm~2xdj#-_wxr~Hf zY&O0l2C(uaIc7vMohu-uf!>!F3j`?;ewf0A8cLkMjxdAxHbAc|c-Y znS9oEl(fRl0UNBn^hiHW5ko{&fv@P+=b1+ycjb0q6t32$|}tUsmeH;IFRnJSD6TVZRO;4ffz6L z&Cln%U7rc(3Ttgn$RbeVm;ZAvWl0yaesncP5B!#6;rd-i=ZO-O?5+54Xg;#qH4o~)Sz9^xC zQu(ZtZVHZnvx3CKdunM$HJ=kDiIW!O&QeKEDe4(zC=GvEed)7fc##o@$>ZNAJdQh+ z$|zH;KG(Aji?hb%v*UW#Ni!1$MmXqy^Wu*%{u?aAzw`gGVP?X_{O^9j diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index d3a7dd22dfbddd63537474cb2111caa973453d2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2216 zcmajh=RX?`0tWC{wMq$RQ)<>KMYs}sR8g^4h?X>F?7jCWwRd8)c2G01M{QM#_G~J) zP>mmF)VTic{eA9vUOaD}Ki~_|BO_MHyAw7)5F^r_R8DA$=M$+>Eh#oq$Z~T*a85N001~K5g~Ie<5f00g;k_O z4I`Ze`*`9~jX9KsKhk!|HSG_ERNySh)`@g6k&}I9LatkOdx>A#N(~P$^zsqaG^V$U zI@cA-ZYrHq0exKM)dcwq+T-%hF_DC4;;enAcnu!jvXHs>mc5j7P<%c2qv?|Ih}H@B z@5nb&=%+Qr9}LPine20MK^Hj}lS^oCw|eO?bi?D-p2qs4Kw}|(Z!Vy&%!g%MYmB9_ zf@9;><$9H6fuHcZK3T^*F6F9$g)nXdB`@h&ja+0~?}3eM+v&5UbLXRg5kE`gwEOg^ z#3R8m@GXQfyQ^;S?A0W_5#R6K$>nncpjl1P61znfr36QWwE=LruMu6?by%}kFF=I9 z#xcDpy9CTG(LIc48ft{5&unZ}9$Kl!3|F?7R7K;Rst?N*0d3)8;gmP&*}#_~&j+OE zKnkdT9ss8sBjnBB%rh>nYpDOEK=ysmsyR0Vjb|-z986IkjI*}x5OHw4=lJe!_&oul ze{5t8u+fue^o7D#{mW&0QdtK#b4}jxq4)(WVhx^M_IO`3h09CD?3Ldg43Bg7UuqBm zMTL%m%^+J1?z8{)fZ}mKn>7a}3*v$WPq))!6{WgK?J9+>T+#haIR>^WlTX#3YVyb8 zXwbK3vCAb4CQKHkx;^e@iqLO=@u{rn%I)0RDjd_D@9$*?9yEMT{dyHM_xPCz#kI|? z;@C<}jN;M@DnZ})uk$H45Fs<~GoEyDInS%xW*WH-ea{12r2e`_t%@WRm2fVpmeEUD zTBc+lau;tI!qB_Ex?V6c2uZ6S6WK?0F`OM^ch(+2I~#HB61k;15nk-Jr>_FxwUyZ> zL%Xyfl5eR{S>7LTbxs&vyCq`S>f`IH0Pyz&i@`C}BRi>yrubJnx#f71rt2M4SsCLY z%neJMGf6npsK4X})He&RQ*uKc>&cc2^s#BqrdYs97Yp9xH~`VSeT?El&;GZ&Mcd2=36P zGdU|}QFZ7<&lR!0;pZlrL^aRz+S+wxD)8tEK0ty-tF@B~v>qLliTiJ==_@((yZEn# z!X);h+^;z^7!=hicEnpu<5I;14mXyJlSR>Tl=wB=xY}prjFYOu@p{mq#uN=>o#3zGfG7)*B$U{m^G|><_@Y|GY@uk%u{TyU#(<7 z{s=nvik7qM?UrRIoDI%U+Tb$>Cx_k`GOMAU*c@CF>r6BGLj3i9TL(8sW8H@%23X9< zBSTcv4vR`xT1k4A-=|Ub`Eb67`h7wTStct-a6Ca%Mo$-Ze_7;V^586%-g4bmCwx&# z7ws^GCD_Pg(!utLX1-BV`z2wn7<0m80XLl%XE`Keo5rzOMEHBOS zXH>t#IIl}cTocqWtInxO*w&pqTZK$Ap0|3DP@hSY5Cp5%u6+BLDf`9fP}3bBSC21 zJuG^^oiw_c$(crqPxz|=3|&bZqW`b~r0+6MN=QZ03w;hV;@_`sTk#kzerMBZ?=FGZ z({M-zCKJ-+Q7q7TGERx%#6wq(sV7xW7ZYEzY;D(bvm4pd>zEuyS)LFg`SgOmGhqfr zuc8vwG^usJ1T9YW)AY_cN48Y;=<+#POj)f6qOAPpT605LY~E@o2X))HP@B|h_*LEW zZfIiLw@{jRzZ&=Du)*c!Ku1WH+cLFdLtSz_ij|B?^9XJK44iEEk_(~COwsjN_CvlY z4sJATZlbx@k8&z4A7e|sc$#&UZB2i!?l}m$3Dygmgkh1ZL6`XJk~|IZ@DVM`*`;4A zg93B;;dZ>lR<=U+pE%7R{anQ)`YVP5Mko{KsV4C%JR>3h9+&5WQ0v<_JUNmjrRX5I ziLQ(+Th{pV`~X_f08F?RZjG`uY13ahFFHx2`1QrM)2dDxC?z1)NG8oBsAcAe{KO8l zy~~mfGAP_q<0Ic!ryX($Lh`sNyMSLO85Pn zwQdA{%f}9K8?M_^CxV{z34F04ceV5>M11W2|pCy zZrQsM?VRBgKnNWE0fg0iCVE|i8?lrAvZh$V`t7#{H6yv}r5An>JrYtCvj1&}KaBWq cB1!(9|1S!N9>u-CpCo?@`LpVOJOTjx2fd3keEjxcmM zGKD!}Nip~B*Yo@T_xgQ4f4u+s{Qr5QOc|LF00Y1cd=Cn+&4Kz)cCZ2f{T={70RV9K z3-OhehhKxs!-M>N?zrOv`~!pUxCFXlJVV{#UP1nT>`csnGXO*bfM!w>TJcB``|R@w zQJt%(*UuByDHNY(EubY{3vO4c|Ir;$-eS)eEyau*zUWkGgd! zpD3Fw!Uwu6DPqNp&QB;#O=98~&kEl(+26u>mPMOyGkG|7mz90KQhA)54jv9_u$*Gd zPS;VP-S^|0(1=RG^IzSQIkQCMDl=(I5VoooZ$K9IF8}f$EGAe|f~V?sEtMsiH$3)x z^yRV|aklZKD(sos#jL5*>1kY&$;qpf>e*uE&d1%GJf~Umhek zCqglDJN1l@k>jgl5ql`0NJu7wtoRi0t#T?J=6B|drRVZQ#YDAq6$w*Bkb^8gTtPw- zJ=#uaT5tNbhdWsEjsMu;^Fg-5WcC$qag+5fUqn%nBkfp=paj#I*zSJSz#tau--(Ee z?OHYxqG?=Vopc)D4auN`$OM#Y+eY2Jaws5V5m2oFAy3KBqM`G;J{Zf}WUt$%+CMv!wj*G>ir1rNvHCUEF1EdTQB9pd#SoLv#JzF)xHlb2{#v-7O+pqETP+5B+OYI zKGvcj!|wd$R!|5C%{o`8iKC}i)7;Eg-;Ap4YF)Q*vg(NX6*27ak?~<7hc<$n^Lz`^ zI!_u)n-w`c(U;=kN2DFPH?!TLN-ig(<}i#f8tnPAo`4;mkq0^|g=_iAcZcplhD2_` zkje?2Bs|qzQ}}h3|Cg!BX02QqCa#>mmWphT07WXc;mGjV>Ll)bRj&<6Vk`$vHh#*G zGF`N9_}oE#y>lVPm~;0KZr-bS1DXl;Y{jypB1W3oW+>y#xi)MmzF>$-{e)oE+3?i` zYt9&m4JK?C7F{6bVu=2m6sLW>P6g+KyE&n8l)ia;!L99VeEEJVcAMfu@DDR~etVMd zK9+mC&o>3=%ssgDnKbexAR=LQXSZZP`o59PU#bZ{w!K55VOfm|A((Ju_W`^|-Np5z z0QVR%d&JeGoKL~>7X@g9kXyyhKU*>_%0M!0=YOG4A(O!0y@fp59`OdE7{!{M~s0>gi?Ss9CpFd;9Eu7qzH1 z8}P-yqlQOfQe$ET@R8dBB}uM=cZYO}W<>fX4><9u4ev93uM%GxWFk)bau&V)E}k2o zbIdclW_pNuXP^Yu^IJjkX%K#2k3+}bN9M_SKcTW5Z}fUz+)sdf{)n=cXh6&GdTP#m z8;&4xYJ05PtygI+RpyN1$w@VV^6#2=T*TB159Rtc?x^U>z5QyUnI(^K);Ob7`VBTp zv}4jjG5cAEs{5IY&9{j%z31c&^N!kBY#bc=9z?2BUP6F5*krV6oPnwCQvPvt6$9h+ zF7qk^s$1$Fbh zCe_3f2WvZ3N*VbS%$J&!_gX{zy1rY(ChP-iVGJzRMgvsfpJNjj%^scO3z*@kI;oq< z+^ZXSZzm@`)n%=-k)2bp_=CMKCN;a6nalUk!cDSAo(aC!J%&mfEx-Ou>OYsZ^62~c zde?8)Cu@3q8GfsH+}ncf8na-cmy-Mb{L%S^vV5|j7S_5*hKs2>w^Da2=TV+hg_$Yl zgMKRQ6!L~ASY&cSG662E>MGt2I@vGkYC@TU7!ZvA`~Ck2z<(1B`WOG-1yH8UEdMS+ Oe~S9Uqdz7A0RI7+D+WFQ diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index 733c91ebb8de327c98d537bcd8353f4a19ebce27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2049 zcmajgc|6mN0|)T0IVM7;6^CgKPN05LBBI1K=R zcW_vc>Nz!SwR37%bfBwu1O|O8)Ybi#ryuIJx0*i|9ejj~8*l~yJOCIZCHZRo(h4aa zd)K5dP|y>MQl!cxq}fUsD%bM2>C~;$aHY+Eb1r-ph{wOBB9sD_UDlF@UXZOB2NpTL z<$QMR8M9xdhJi+{@4~54l=6-92mITV*1j_YJ=jU=-jcD*sbbuCV#8Xh-z!B~X2;p{ z58W7J`t;!ihZHMYUQ$cN*68IX#)_?oc;ys1!X;UX1SwX@ax9sKa&i{ zIF#eS`-w5Nr}KDk#HoTO@=5#A2bQBwaSf%JGj+{_`rnvWP@?<%tV|?{O<*@a-MvGd zL{Ht6@l7h!w%jWUj2In&g;SJe(w|%Ih8!1-S@Eb6+VR4nA|D{K^Q=tn@$JV9D0PO+ z9~QND+=(zrtg?GiJa_Y&>-A(gd!O0N3ZKkwCU>LSIRw}}FI%Gd z``B%kz)wgSQR*>uc19vfH{6Fq6xIU&Z0Glkbc8!)NPXYUz5lJpt78+x!TwON28Wnm z<4b<$X?)bSDS4Uz?Q`kt6Yj;OH3}QPoQ-9>^W~BB_i}Mp)jsyX;g##5`Va+Y9Z>o) z%6HccGxV`3p$JlE%!F_6kVDs=p4GdF*0UUoUF*tOZdUZ*6mJYZvPz_CN>XaM$C-k5 z%**XuH=}4eR?qJ`Qx`C#ahB&6d*oYhub0|>8`FUEn*fUX6I9 zW1`~xg}y6ap7@{GwnCmn^JCOG%DtRAs8s4H$M|XK3mkigiqd0~TjR_Hq&K!f`&_&{ zBf^sA^*I;X&P8P74L1okpCqy;CS89{0SD1*)vf_YpvHxXvBi zcQaHpDflU3pY2+c)+{@iSKGr@(z3A7uxZyk_vWxjy)~%X_VeJ%Sp>b@w2ly<;VJ$| z=tGdR(uh{%!cFic*^J2!g~}N!mp|DYEGJx_YwKWu`Zgtde!aNG!Jgbr;7u}5$KyD_?0oPn?p-zA*mr*>K1*iQ zge-p?vY#@!V@={Z0PWf#F3%6~OnP*dM3))&y_rsW<)9JoNi^OeK%7>iUU2fFI_z1Z zM3sLUj=PWOMWq* zgvU&wZ#bg5=VtCU?s&v0HiT7*rj3p+OrMFpblANH))b%UcLgVay@o?|B^j%CMQdPe zR1%jj{?l1ivFnpEDgm*Ko2;J_*{~n7ncd!MD?^6s6sw1(BCtYMTSI17PG6B`Bl)`B z$Kgo-ivIdQF`9b#fXqq6nfjI7Ew^kT8+%n_uD_7K3z-HoUjo{HjbU5{EbZ|ty6l+O zOnq+yFTVF$&8+~PBisPT2 z^pqF?XtBax8y7!m5Q`|SWlm$a{7k|VmWrSmWk)4;(`7cQY6N`(^}h+N5IVqiDvP%t zG`*!)*(^vya1c3D?8@(}R_nM*A7JtE4Nk1-ScRZVipvS4V(3L!>Bt@TWY5`{BD z@tg@5oNLnVmpESF+41rvs9yJno$f~iw$SAdIDzKTXHRGysq%NPboq!u8tjEF9f@nw zFZ9TA#>mvf!Je&t1H$$pxWQ>xvW7YPQwxbr7wjKi%T86h-d!fql|cjaa76#XyMN{6 zH>Oq}VWX^+PXmI>Bcd16rxTEJ3b@_(NlM#StHXDEk$!;%L5PwSWq*`(1{O*?9L^Ey zjNRpf9!MAXWE&qB%mSkF5e2$)+AU+Z>9J!RnIL?hCT2N3fYD6^FOTHa?B(dN=xT^n z4m)`~bIbb7h+rvPxjz~(3Il>?L{Wk zIx|pSu)J%)L@BME=#>g5h?IoyB+E8g!;XnP%;j;-~btM{%@TB`264CIsTphPc__v So9Evr$DhLgZ2lkU0pK5=p4+AX diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.12-compact.zip index 95a93ab259bb802fb8561dcfb96cff9751814382..847fc5931c67b5f40a458641a89f090b64ac5007 100644 GIT binary patch delta 1989 zcmV;$2RiuG5V{Z;P)h>@KL7#%4gl@7WL7ZYLYb5Y005I%kr+&WAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH2DCs=bKEWpI*8!>)oYiDcQ3y+W14$$ z9~z-q2(`+C$EnapNJusex`_Vy9pzYqX)@?nT4S}f-?kgNM`P?jMOB`T0v_JlnFY#} zaM`%i6g+B>JIO46R%AXCDWGcC;Yr3Y$3-sXgZ<$bESHTIj0Fafg#gAmXP(K*dhm<| zPdYZ$U9JQ#tw0-}Gq;Vh4-Tj4T$*s((Q$c|vKtcmaJ;4=!$uX(%#J{_n&T!)HXj8hSa7o zRuTch%n_44dQ*9htt)P!5P8L8UA95~L1p5BeJ-tAhU$&~j7Trug-hM=5pM?)>2H=` z4}KZEhq9qGq89s@R2RJGhp|%ch1j8=>4ahVyqN1Qn=?x`x+a%k)#pBct=+}juQ^T0SphMT8M7}smO_By zX3JG)ni;;t{?l7x73c_QoC%(X;Bprpb*~=+pj~ceBD<<3%PTgyqY4T_ivIj*erH@2 zK(6zj_>VG{VS-mMl_J!Ekjp04KFu;5j*3KE!~t`a#DjW{8+7SZAf*eWP5yN;3{a7N zPncqVw?OAkpNE{nxBUpnSjscYX04!=fDq4Jr)r@PIwKhd8h7czHYeE5&=&su4l^fw;;0>jRMmGM8 z*BL%ExzSCyZ;@KR<)z{a*gE#bjnkD@*1ns6@;3LzR+gB*-e9T4^uis{fLF0+jDZOM zf0YXo8o&E?vHZWZDS7{k;H7@EqUe2<3-=$v<2cJOJ`qKudF9@L0vvbrVLrJ2#PKIx0 z!2<%`cexTVh7ZMX1^jkAMFtFz!*a3dwQIQY{_xIMZUci6i0o#b_hWB>g4#;i?SeO* zmd;Qt8+gQL;;$B$g{7sU!DN!BCAeOH=tMBl)oei!%E%}1-*-hy$Q0}&>f z|8q%xNQ8RFe;kMYzXa}-GjvRzu+wf(UzC3%CUxibr(0wWB2S;?Zhdrz{$;tbjBluU1|rQZ%#@rX z50(WQ(58U;g3dg;w>S#nAwv{#i39%E`(B=3cM24^#V}ai0@ZzpmUk7_q5JC~@R}hq zQYEToP18W?@#2A0!B`klenTgJK=e2aQi5*mVtS2Znr!*%joZKw!YD*hSN{-gF%f4C z?eRE>y2y zveSI$190Clz)Mxi%xns^d(BZT98BKA5%_Spt!9$bqi+*Xxz`f&b)0d3I!Pz$n1zWb zqY113ANXE>XI7vFHi8?tH=D7xw4~v>k`J?#ng+rbri`S-t%6p&c*s{Y1&U~A>?6zu zBDL9@j3|!!loT(YP+d*^T)~-arJrQS)zf^~$-UMS#j{ql@|D&_co`HCf|?Y8yx10Ebq!=bez*0+zBHsJIAQcH4>St^z-*5 z(+lUo0u!cldM(BYaEyCy4mKYQf4$Ef1^t_Wqu%Xk%cyh~w#O}h_=7*uWcmsjiZg|3^jASbINb&DY%O6!B)`8O9-lFzcCl&(bP%COLi%d zw@;jt?jZbs54e=n30sDK4jsL^!TGs=qaxxHgjaWsCuU8VU(09HW$XAh&Yi*;;HHxE z+5D!lVl4>t{l18QxO*q@&8=WWNwxYrBC~=62zviFY6JJ^VpqzO{|{XFY1Ouj4SWi} zLQ158FP)0ph|~5qqdgdKc%OF+U{0SWRUAw`^YJ)lWkPEuoTlV@RHlTy|t` zWrBuV X;X;{|2LJ$*Sd$3|Mh4Ue00000u3NtZ delta 2023 zcmV@KL7#%4glqIa8yK?G`z0|002p4001JB{|68mX zJy;tgzyGwNeqRtwK{6ukXXP|K&KvHe8typ^dRrF9UC(A9^>bh?-rRqz#WA*pc>EAw zZ~)?nj$5Cc=H7Ek8bR!Ldq@w6w1QQ9tH6BXaUwj!)c{OoIEbR3!C}R4czVeSPHp2Y z;A%?)z^P=AT(D@m?5Pg=mr1JfW?d3TI>fTiGN{c=yLzRX&Fuh~QMmzeuo-5o>=x$` zP0pks_g9jMOEugyp-F#QJLqW!{`@@SaUj@A<6bB|^k(;X@sXW-El--)g2Zse-m(dl!4GZaf-r4`32bu9h{0JBx2G6E<^s))7ORc@c=T7&x9u z43Qz<3U~dc^jRmLee!zjw!kgOmknMuP5FYZBL!%Jec65CzH)yJ-?~8Nw(Mt@g{&_u z#gM=A(b_ANo--|0=!W&uB&p-2?oY?-TE}q(CeyQ$E%{9bMM2^$?gu;iOj#*aMw2L; zFz+p+s^p6w*o&<2_D$;ZT}xN7j-c|=jUG5&XoAlK`QBzmpUG8Hp(y;eulFBt_mPws z=8x#}>`4nZL@0kp^{_u2NGelyJ+c@QysZHtNkiLquKa_F;~+`yl>5D06po6s^aprp6tFlpz zd8cpgkyuCf3)LjicGut9zd_Ww)Y-~En2f_?{j)^QmJNTP4jIT-NJsVoGWJWePM46e zKy@g|qvZCRsx3!G=={I0p-q@?r)H+tOz-Qx5SZ*_nM&X74(}M)ioqZ2cK3=a$!-i9|2^m ziRw!g6SFVZi1D&~G`7I>SeMe?k$m$Qi#b^j!_I%QD}S(XoMLt3Hh(=GR3h6zaoCV0fR}Bn%r_iUd^*ai?`{B@Q&(8El?RZ2%@0sCEsqcyOW*@;2BSI z)=IWdNq(S1;R00+)>>8k3>+(`+ilYGATh=v;zrF_Hwx^y1h{^StkQg-GHA1dEhTa9 zYa@S4fJYk>KRF*jRJV51Ha}MXLp$BVphx|Nl*A>Fn@;+gSajdrIr{XfH2#`C55diW zLvia4Rv*Vq;Fj6Qk%W*_4|&ec!Q_agx@E>C@=d~E*OzLd$)Geb<;d^V#Oogh+(A$& zr;gnCl2IWco?3A=LpS%R`vA(}NjpmFwCaD9KM0aOhXk>MWB9Hy;VyU{2oAzST@p`v z)igL-npH1=6>v8bR)s?GA7Vh!x!~k>0x%1Y3|v{iNt}5vZD$uo&a5KvUSOUHTVYms zM2=rM@Mk1$qG;f^kQ|aj^8lAuZxgIj_$G!^_$>Y+z5jdin3^NxQk z<}-pRxOS5azAG1EKslxVO4d-nyJMi8NVrmpAyD?OZce5y>Zn#XTvvQ-BW>{w1kCf) z@~FhE>S-WVn^$hqC1!^4tTurK$Q2F}*6cTZkmmL3oGK4Q7fexYN5`$ncuN)IZ1)l$HdZ3D~qQN9m# znZI*7cLx_|TK|C_2~4Jv{W#y%OUa2?3$ct`vCJA@AtmEdO}5Op{9&kd;3L5$JZ(}x zy+7p~3g);E$2Se|;c?sN{B1F@!ciYwKez+PnB;}|`&kHaaS}6+HVJFsTgZQ+f7lS| z{CwQ|D6lQLtkpvU!WBVjPdr7w^>_o}U2$CuGY|MsiQjZjMg0zU&k00ICG0OfOVR799GysrlU07+$&?gvH&?*{+? F008@R>Pi3r diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 3a9e7b0f73c81b6905f196129830e751d6a45753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2211 zcmai$c|6mP1I9nYa@2&v_GNf1dx|NK;NO1AqhI2bkWTsLOryial-s_<{id zX#fD6-F@*&=atoz&ntU-;2fPFdU|;IIHJAoV_p25m0i6(+%q$9c61-`eVH79U#6{o^Gj zWPGuBteF&HYpvx}&)oV^X8YV%K9Qp4bRec*)-n88++5d#1rE&a;B}^RJyKBRm0H0| z0u>y|YL$d}w1Izc`c_tQgo&crB{iEX-3VTt5VpFNN^`|9PU_~mj985=x#!nAIFCv9H4-Z>@pd3EU zQoTZ)Hc8hd_%&`m*n{IMn&bw=W)GhwRd-$ zr?V!(%hwntY+^8ZrG&g7L1z&4tYRkS{B{)c$i1h)j64T%yGBzzMVDe<1s4{g?I@mK`Iggqb~&m)GUTJQdy} zIB33fat(LjYS6|#=!x3?DSanb%czFO7)`UL7zGK|J!YEwWQPVD1Sxtq!wS1)(&}~u z!#qnSkGt{(q7>1&?h=l+(=iKKD*ilakuE%6iwD|JRa)~ntaRdrnwMB6no8}o>`7dV zUHy$O7Zya^a4ue38Ul}O(A6G#maKh$&vS~P^zr@(UA%&e<5UvjQTxE0spy>|;Wg5+ z1$@Oz%<01THj$e@-A@rOPeu?IV@-}_VGVz!W^+h^_$){&-@i(ITG0|-hYc3YxZJ$W z=1q-KZ{cg5bw9J4lMu}ug5A-^z+Z6h7t;9Z>jbR;dQL*_MqEHA;=2wZU|9JiY$wiX zzceb?W~c!pg=33O`MMZEd_{h@a{C?(i^9Xl5BqTmt_drx^LgQUE%E?P^8qI42~(Qn z{aVn=O{4X6b&d)N@Ci|E78Qp}g?KJ^LD5#M;M=%AR|Z<{m^w22(Bq9&;5SI&RfZ+C z$XQ-`Ot&&dKAT9q+|u4(8(h0$6B_ib9@?0;d~oEr%qtvC{1Ajsv!`wj>iVEWA^GG+ zftAAMW=Tr`tant^^8zc$2c+c>r87s1P;(5Ny_KSfOlgOb9p+^?`g^m+opYv1#(!ZTef_3jMCa({I0ZW!%STg9z zPUM#)(Nx|??~&!Gj!)5K=qod!Mjs$E&$9hc1-I zRK4Plrs<$n|K`O0j1Sfl>L%2)ZYyYBa_C8C-vnk@xyA00R-H+WxD`C`-;ic+9 zmSL9q>rYSm6_6XH{CkwB@^XBs{aGxJu}LItkjRb_j_i$E$?xC9QO_~c3e*+Eg)Tdr zOW9R-$(2)F;YRdI=&nAT$bFN5jAaWQ~=Bu_pxoN*{8}P~Mq{V7!%hlTc@$ zsgT9~a#T81 z`A1-RcQK+t4uYfWi|M;b1g!6Or|m}m-@TRh>sQN6peM{pz@5+0Oh0+a!OE&t1+()$G zYwA3A@5jU7XE0Bf8Z5Mdd9DC*D^GkuPsvjOxmRoW`0_yZK==w_nd&ou*bFc5gQoIt^-K% zJy`bdz?Qd(=1YxneG;(}7bwfWSjlRrkb zMD7>g)<`h$cn}GjpxT}3RMB|9sX@FKa1bqS)fKTJnZhWHi);ZE(*`>TuzvA4VPfP# zw9!|yJfEW{Kd7yJlTFjUscY8TWa)6Pfy~00nT;)onG&QhpG37OMbZ$%RXsZjEL5e; z0TQ?hKW~Sgh_1G$eYvh*^<4I`=+Srt=Qyvq^k)Hyxqr_bD#mMat)N=H1c8L=L$Tys zfy$pnc}!`moTrJ$XJsM?zQfgh8)3R}aFKdHnk2lbDTD4ME~yQr3r%a#Zg?%=!YFuD zb1bOg(eZ@maC7N8?AfCR>QuzJ3(>Thjl}i!BqgDq!kJ-qvuD6BU3WhnEF+mxmS=Rb z=9pXJ3$qtj;aZO^RnGA?oA+IXKASH6!pyQ5aO>U-BOJDk$+$eVkkU*8M@E4|Yqw8{ zYaDCq!@sK4(4k&a4#q%7Vc%>KUs-XH)fbE^88@@7ZiB6ZWTX#nDcO|;&$)=Av0ZO& zw^Dz!8ZY_DA1e|fnfpvCQ0M3;CgEl8O71RUD;B|41I-UbmrMR ze6#7k$eoO*@ALcfdOn{YKEHhafVZh34XrwW8gK)!?(d77&4y}HT?GK9T>$_f0040D z4)l_e21CKpV1FM^dzTPjA9R4d1KR1STaXLb-QUNXftC(n2LMC?0BSg#tK6BK-|O+= zW)-G_UT?QMo&4A&1P@HCma$#FeyitMS&JpjGKmQjMd&mW^;mzri5qIdo9vPeb6hL0 zAunci&&pt)>TScpoxG)$JBnn+gVMHs@%Vcn&d#IN`}~5hpAq94Hd7M$l zV~J35u3M)pS6Jo-iY0eKoiBM|6KU##eUld_mPexGg04(rz0dCfK34WxPO#kbNV_JY;v4{w99zDkvMm z@f2@xfl*&|(QT-GK|~Yy;m=8*WUH6x@n7}J7mv%Ej+N^<8kH(0Y!wbEi)+X94LOXt z<+!|`KPsh8ONs~|ev@kLv#-^|-co=Z&*M_)7cFshzB<+gmGK>T5vinrwz z*VGV_c$ePA@gNd4J6M>>H+Z#Hg4(i=>5)!CQEcwM&Ho@PRu? z;rT53TvA$Uh{m=cVXxR?ed6f+!*r_jq9~jaI zQle0gKvA8>k_~K@N>;@e=8=2zsPufv0MXSC6RJI`Lux+Fd|D>w>|X4)(#tE7V;|#) zw-n6ge`cwVvkrti_w(GdGG7u?V#|y~1VIm?nxmw%5_)nOv70tj&;FT5XJ70q=1cLO zZr2Nptl`u%Li|e5MdOFA^4uvahBy;k0-Wx_Xa04iloID56vM3^#?SHc%i<1OT{ct% zJi|H@tr~nHskrk)qTEow<@@6`ARWEh=y`_hwUTRK%%RTTkDz{wa|XQ>Oi4`FH1os6 zWt-UFti~?(P9DLM=Bq^H)THIzRzq#Sxedi%qa3=49NM&l!xWT}-FJ;1_s@dnv6p3( z^Gk2!^Vlo9)+Sx%0Vbw}sO?AnMzqcTsm+|*9q{vscUeEh${^mIY*|%r#|%idN8zTq z{-V<54+#>OYl(hPnAM(s4tqxOFOny-yd8CS^HE)n!r)JjpjZwfHlQut`F$TE*BZHV zF5)whIrAG7T7Fi>AF7cdI4CN(iggRWIAw>}el<`*eGm_edY$H2SwZYfAS^%pR^BOA zA4xmSIUy|QZER|?*%w-5?*Rj7IDPAl98K_**wWPtihY}~e>009?GFsIU5zF=sXb8& z$`@}TMHH$8rjyRPbFKB+uQDqVo#%tyVE3JiAjBo@7dYUPdTD zt}~soh{tmf4wV$GwucQi)RUutQFP)P&J>%P>LO>KB9ok_;0HL?QI6#9>U+cTPAS6v z0TR_syGwn*4>V?m!l+aj`@TawF@i3(aj`4~QQ^VEB*-t4UEDh?aL_f?RzBCha)#8t zM~I>6nLq6HS{u-Efy>L^g2ZIl_1$wKU(1aQ-% zIiT}B!h;)KWcrrl1xu4eC#7$Vv<=$hc1Aat7}k4NRSEF5FtQNyU8hvZ2~V!u;LL$% zSO%!x@1z%ODLZe%zAQNu;BeQfS_GE*>*5d%(p~lKS1AjDup~tAsPYC6_`s#w7gBZ| zILw(Rpp^FTdmB}V-Pja6lDzHz`xj)pBo!l)9)43;>wAa5JiItYmXsQ1eF~#25WD%7 zP6`(}^=+kg@lC}89>80tV!~QF4ie$Sr)dyR*ZD-*@Pk?0yOSUQSf8k1w>!GEJ49s6aj}KU@x(a04sUN3ekse5IVW{}MUi1} z1~yp1E2Ml#Wv?iVvOPOD@j!0xV&IxjWac*qE@H*--P(1 fi2o*v>fibQpfEM0yYlao>Q7DoEc_2g0D%7hCUz;$ diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index 9d9ce382bff0e19f3806957b43b9c7a827dd2179..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2239 zcmajh`9IT-0|)T8yIDFM$uTjMoaMenSZhK_xkvJ`nQSA(8bWLCh*43F5hLXm-_xJDP`+EKG`sMWpJna!Yyk-D5a0HkO!d>4vQfwx12mnTX0RRdB zfKNd19kp}n+Un=jgRuTcpL;lL;9aCwpf?H~;-l^tgbe`k@&WDu5Cs4xWU{Z;Z!LV@ zP+zT)P6tg+MxBapt%SllCmz;{P)t-0!|^m`&VxlPwNI&;PSeO$oJrTUY*uXY zK)bCvaaCk+)dxYU-4>eJtv%P<+^Tg?`j1n$gQ)8YlsDIBEADZN9{E&)nnAVoLz@@@ z6CTDK|11_yH~g~%6oy#sY*!SoDBQiNN2pC={{7;7Z=3sr+H+&i^IsK|iDvCPeAJ%T z{ZtYR+l^<~CdA7I3q#CPiL3Rvq^<0$-CeK0ANksZCvA8vjE3h6x2U85qMVj`!SklC zz``cRAibII`i$Dapu3>b?vi6}@<7qe-6RHww5@TaIxq=+ztJ*YN%CRSUwi45;gQ)Kq5X_R%|yafNw5X3r17aO=rfw zeZ^ml3rckKG7zhz37M>^WDIDvIB$hRuFxuJ<7Z%4SoQn@2@~Q3=Am7$`h2i67cL_jrIjm z(C=$MT`b!|cu-P){z@(@j`S1*ED5L1L}vi3Ee->oO4uVCj<&&RrH&X1+WXWg85G~n zrQ%9~lyS%4p`leR(N~K^)__~oHN3yc#M{pCkFKW~&sM&wsaYOC3Z}NMa=cZ_oMON> zMwm^|jqvU=BabFM3%5I8-35Bx&3Xtt>>nyW_ zx{*!0fw3pf0#{JVJN-hibeUPFCWj!$L!>=C`Jx>*wp?szbvpx{k%$=jx!gJRXl(k1 zd|{2T*rdKjpaML#uo~X@()e`4;f4rrJE|g0_ucVPX`L%~PNMpE79GYnDa_WND1ll~ zP4s=3bV=++fYCd`>3M5Lztk{s$C{;KW3M5WjbZBe`BvxFSHQ)X<_I4v?KKmqM5b0Z z2dw;Km{958owqN!w~Vqp{c9hY^SZ`XC9Kt5|CpJP7kBedk%@!B+Ld>xYQN9N_{n)(R+Ny6&nVYu5ID4PYgy4^u(PS76L^l_{Ynn#9TTeLj39h?2vfMD&> zexu!)0?*?Da!;0b-9c)ZR2NU-h%16`at~@cMeXbyzD>vE`yuHAcJq=BaQWGU@aCbbRNhqS8{D7*&ONF8 zDjvPYrqiS=ZN!U}59@N~3CPq;UC&CxrHBoc)t64cJI-FJ*ZNVGD`%ip$-gq7D8%fq z%PQuBn%=)U+^#{V=Oc{vjl@f))(vEdxJBCOs<6ZA^V zT{GEe_wAt&3zAzSUKOW0PcNOjwKh2uk+Us_mDqQe=Ps&D8wpqT&|Ni!d`yaD(T=E1 zsOn=Jzg&!y-CFu$H0^k{H=m^Dq?n9p6o66XQr}92H9`jUn4tdgx2unA)ue9nd~riGVSXWoXRy zn^Bf+x`qM%!OyO_zXY4BZAC zs?)m|HTJkAbd+BoF$`{tv%g1Es8l1ev@g$y{z8IG^Ils_NgGj(1eUhU?_t9wf*F_X zzS^b-p@m1!TG;eOv&dO-%Hn6?RJON@CYT8~^}7 zpu&RGwKTLfv@|fmfp7#iB=~M9-0QB7e?T}w;|?Ym#mUMBxCH>j0RV<6DYqfV5OnDj zrB$D|@C_>fHs~#F5Iw43kjK z){ODDcZxv$uDzDF4u+F{wSr1?Z @W3d}cew2eCU|_1Cq-dLniRQULTu-Z^rM^r zH#0WJhJP`j2{F|`Ym+qZ;59XGcg8T!`uSJZALjdYCaIUjx`@5piAxX-k%H(ezlnLG z0~zB!I|?rKq;#qPw*g{G-mKHeZ4#^9pi@!M2vFnDg?7seGjhItdbrBUEwXN_4s|R} ztxc;F3PrTj9Zc=1hG0pKJY-RBakhp~zu*-!5pnCW0sg8x*F`m^-zm;$+sC{-1v|<)N}0KZvz4<&PdyHSe}WS2GhcZ?esT}C4?kK zEBUttyKCOXM z$uY?)pqJ~{h=9N;jd9Q| zPv{*+{=tpJUpTWd!*&%{fr&KI(V+#W!=piK9hD_fWin>Ekc^X?j2I6GzG#e6R~ofy-ELCO{8M6z=+VdnV= zK>x_DI<|AUo6^+jU_Xp z6yINl^g$=33CYt<$ch^`!<5ZFJ-s?Pu~muAKuc2d)-ju|A)d=3Y&Xvzl!`!}?-?y> z3hzdYu1WkX+xzm`wT&qu8>znU8>_c-HH)$wL+J8Q81h@<6PwjEusRf!;nJh$LQM(> zFBYCPj+I*84|o3}wx^Ss#PC?^tjdUX9pLN5`bb6o-mxU|T!%Y+tn<2Fm#1SskvG@; zJvqJk)oYUr8*xbHGYmY;z~p|+SbEa#PV$8ehRfZc)~!46A;>h&-{zo8P>r1ac19y| z!#M#B>q`A6uw{9F+XMG!!QAtd4~4EP(j{)kkvC@E*lIKz)V9!pQ1izQC+;N9fr}pP zeKo_@_pgw2GZ#7ji_-@3EsuHwT6D{&gbpJHD7q}au870)b* z9zaFOqr)#Ym5SLT$bnihQPsy`jRS!y1`1N5%euG<=i+=-(Imv3RRjKZZOu8!!uO9A z!;5+?{Ui>W1glbq4;KZbuGe`E75qp@rqRV{d1J9-{ajuzK0?uJ0QZ^G+WGhKOe-EA zTOxs#`h?R9Qf#ooh09Lo(a!bR<}Ik2y=gPsaGA)*v^<{+cBe15RQmKhSeBq^wjZ|e zsFNXnu@BT=7S16*^-{@fSZKaY3-(t)}H?YQ&|}jG3I^gLfat`Q}MmtF(fWW4xEk*!f$^`&`0000d zPyeT~@=ztHJk;0Av)zN!3vaw-M*bY~~f}?6HB>rVtKI6hY1-bRk=YgmJh4m8}s++sQb8UHVFNMLwXizbd)zu6cn3s*&^x zS8vhA5Rj4g5@wiDmuwhj+rN07mz4Wb*|gUdA}0SBa;PoY^1}6Vhv^P>7#w-F3|EOO z!t9ogR(1(y5GJB3VjC%b?wp=``10xd_Rq+*H5X)pJTP-6yF!+|a_LuBIwGnxGOU~i zYw7gmJTo zL9Q~oEWYcUX;WLqPI!2a*~g~eu_Z&oC>Hz4MuzpXaBFI`%1gj7MW_>lTE6p3qm~=x%`_OSS)Q_dh%5qQ(tB9qxC6gTP`|wcr z?7L0&gO-FIOq6;>Pu|hK9R}9VHK*YCc2nQQ!uhVE)%$BM-DlXZEV`{8QK~WQHA4H% zF>0(Okp6_=hY4cN{q|N5SrfJ6vZUrcs}JYv&{?=J^EhEGJpE|YIa7$j{siA{Wh^i< z4q9ylbKZQ`&Jw28-kPr>vRp^G4dQWAq(`BUaaSy5Re9I;>TlRf%%I2_za0|OKo}7= z_kk?>C6<#5&`EemK4N4x65d2l0xM2f>GL;AJsv@iTXzyMW1_O>rT299GsIpHq;XpQ zduDR6cIJopmxRLn!ZYh323Z=WgkeYN_4AorL-_hdQD%pz$sS)TJ|WlDJrSf+sBxXF z9miVSEpHRZiv*VUCtPu$l+G$hMpGZCey|EUr;OT!L14b{UIDO5Cgy2Xc~1+azq?h= z&@Y&2iIg*eJUDF5ep6ww&`2{yrW)G2{j3ky;6#lcqdr+&QFe_uDEew?8sfI_Gj%B? z>LFI&!SsmSz`nW5#bYdO`kDYO-TY1(m$+J@A@AhuVR z5GSPyMCu7%GT!{?V(j$!yC`x*$CN7R+NL>B)U-xf7A%LCI*U@W!utv0^9C#W?hfg6 ze5O-ia}eZ2TEgger~^2^cc`hY3u}ggIfnU{wG7Gg0?`g~YNtfcq0{cth7F66))Mj) z+g7EKYb;lR21_9$%%jD&C5i+l9l2(L@RS!|%lYW*OBJJG4vTU>({Xcf!@f0MVtIc* zM&+aQLM49h3nTGlQ63(21Rpt@j`7qymLoOri1ExEI8iLA0WlX5U;5riNkwnyg~z#t z&X!fJm}SL4MB!zvnYDl31KT})nZGaInRyqaY85)_VG~)SP#%;#S7Occqjr|tm=ifz z$;O4q>sqd)XD&Q@udYn$;`H9=aDqV7<6bptTorY3RLhQ43vqj}7T#2E;NY#3bX(V~ zRtvsX-9zpC7ua^2X0Eo7vvd5+7defR>4*hu?YsY4``VfY4x3U*pM{VZuH8ZpB;|0M zwJHR8l@b5tbd*(yAAQfX`P7j=q<+!CAh5l2CSClX{5|_D>7TFg~G6Ci90gJ2`!s zrgAY6bzbgoL-MQHbfMWJNF|46IX6e~yb@i z@f9d#YDIo8A6mm4@i z%SFxt%3F=UUL03qf>Tce43O^cgO+qwjjN49$RBCFo= z{THUl&scoNd{c~=TQ}eu5op$Exo^}P)TK&dn)Ao(S=LYJtWG5qep_e?qZjvYOgSz; z;qI+SSl5{-xG0}M7q37!_>Sbib#bZI7#HH9v`baNw0J6katJm#wR1LHvt?u9_vg9k zZve`n*%Pmy>J+j)&uvo_YbP^&`XvL4R0vO>9S6fMB|S3G?#Sa58Lu`)8%`fb#WP~z zD=Te_r$3%Hn}w0jA%eN0fwX%YTIa{xHbexR=7JXO|3-#C)bL+nY5vCl2M7e5p5gD3 N=8qA7Qi17j`wuN7Ck+4q diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index 092f34582b4379ca41591a4b5fe391f71dee325f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2311 zcmajh`9Bj50|)RiaF$CO)+WsVtgMzPJ6yZ9D`OpZCm+zDy! z`&wgcx*WOZY>sc==lAFJd_F&Xe);?XZ>SlNLl?jf5Cr@{`&$vIOI844Lm(!)zt#Gp_jkvIxPjU{i{(AD zY|mm|t0St>0bU2G+cfyN^-N*$FSR|swZf)ud7S1|iPo*J`Z8zp!^f~S3z;NSlSuE! z&S=PE2w@hFJ=NE`CpdHJVW`2PhoqZ$^60(-$uO&4g^*2lP^l^O{}OW}Hg%xmKhkg^ zDCOhgI{cYe)qaVnkq~R@6=-ehw*h?ROpHJIFKF6dO%TvbC8tuUgd;GnIla$c$O+5; z_;u|Ub4Wu1kjG>7;|(DHB4t$S%T)KP()_jze*G5^3s2YbcTaq?Sj)zN2~V5;_Pb-( zUxpA-+i;GFY(D&mC||jHT-2HLCQpX@e4O8XxO2FUH*OnoPTp~wQK*zxL`?ySx;54_ z%4e+@`bpSgD-kcm?VE^zg1%?HcK!C(Tw~{N8kww1E_}hw`=(O5*LGP|6r5K$j^(W`9Q5MU4vTn@^iljF31kJiA)>*1 z)3ofzTBdSxtWoSH4Hb%v8Usa2u4j0PoqcOP9>!}TQe;rFwXB1LsloZ`h+}6sBR-x! z(mKZpK`K7G2y z80?uLtc$~mN5@+S zzL5qgE=%r8K>4T=k}EEpKAUJ4Hn!i*y~$P=(|-8_?oJ|{^`N$~r@=M>!kufuy41R9 zbKlP9>fH!6pX(>x4zd({ZMOB*Get;NGVnoP#1l4*t{#~+{>8Oq@Rr93Hp3-%G{x7y zVpw163I3x0?cs7wzl_qex%{=TgQDlKq^Zg~*UxTX+;^|duP?`QXNRYkvqi6{XjEa)gYKTz4eMw&`gjZ|dt2cg=x zh(iUkqbI{pK=D11w(DU{4+OIEWYeBIefl1~D&mNI$F}NnBWT0f^1g$Ii_ttK*m|o1 z-%4u$^KOs>6&@Vv&?0J{^uKda*Em@C0ruNp02 z7y0q;h}ISBShFPa)fyo8(a&YDH1%Ggj<#F`j@l=r}Z zp2r{B<%6XW#7((49%b|YG+1bv_?9-4L)d?=U$<^IV^N;Gfm+ z%*3#|92QU=&&nDF;zHM@lQJ^Fau?2T8a`}zBsq(z-8Et*G_QR(=n{pCUEdxYP4W^= ztOmZA{$(tC*scFXR`L^D_rh*)ulk8^=Z&(xMcQYSuQ>a(ix|Hx%SQTy5ud z!a$`?EoLxFugG5OXrdUW2_-)`5i`@H8__fV`h#D=x+k3&wkdG=97-4q$F^m|Qfg0H%{rutS=AW@xC=SEyw zVjax&HQm(_IsT6M?8RQBxWmp)@|w#YT%uz~Zw@3TRkd;iXeb<8Hr#txmto_fQXP~? z#wenr;ll3Lp*8yPKXwRodi)Y|!D5Rxd?$t9IKs0e$Kp!#PN@3|qevWNZMf}|4AOw# zLDnQL_cjFf62nwI?g`-o1TTlWanzLvT`j>c_O$EeLWTw?lfR|80uY}Lhyr!t1EQD* zP6fFiQ&gy~9v6^dCf9twF&fYKmgvg;WTyIIczNcA;3Ge$V>+E~CatoMR4mVt4f|SK zlw3hI^XYAE%Jrr}#n$NJ=BGG1eTa8Y{g-qmF73BYHAk!$3R6|VPNB#YXD9G#5mIZn zyDyximKJbC&NQayQPrO$CWlRy) zpizi%tk6@I>i1f+tOys#%Vt?mbGj@7WPZNNW}$VvY1KVetFUh{F;)EO!kFAQu(7l1 zNaaw_5OMSOq*AegV}5qX=?T!rnds7$Pm*2QObUU0wm(oJ9aiw(0=1dAV2475Xf}dG zodqZ+j8>mo7VVN!)GG76iK5_QBsPbp-PTra9xPgZp+HxP=4ZS*f9cm-A{O4>Vtb3k zJ|o#|BQ#BP-8mMLefLx<8_&EcqrN}^j+=&&B2EdiCaC#`Q>BQeYUWx?jl9;g+>s5Q z;0dI;cHOdbd2>Wl`ToIW(Wsp z$ea**WZCcat(7$+$2pU4iF<5=w|;5YG(DHisO!RaD z866-+4X&?rn`vNqm2ODC{I^PM*Dl6b20s4s!R23JDI2aQ6(m=I0;j0}Tid#vS3}2Cx7?005(;r0bgdnxQ2F zpBoGW^JzGL2vz$2gG;B3m0k-_v}+dHVxBj;a85G>;|V=fr!#@yul`QztuJ<1W+HR1 zSMZ|`#u59^jf3DVpKns7NEJ)EOo260OUKzneKj%a=A46*_C_Wl7yCPE70Tn!~L8w^1=Iyo?yHB7s;WxxvpS zvnSUtPxqn@;*13=?|J2yISajm2T^arHu6Yuf16=aAeL@Mn_ex@UafmI1z<2k$xnM+ zNsK_Lo>b>qkpJ=ev%1=4nu8N998FYc{XlRH*kuXL9zV%HiqVEgOxb(w+85m}zCjii zYQfX}1kz0-H_0REh>MF5R49x45&3+wB*PKAQWxd0&ve(zawzZksg&67eN8;lG@>hQ zsR6rk*Fugqkn2~qf<1tV9wfFfAK6|1aysCpft|_&mc5j; z&3;G|8ooKSas%cJiGJJzsQS?q(T*g6Manx169x#O;uwWT>&R6=npPD)exs?ymruG^ z4@5*?kw?ixB%OVmO+bWE58&v4`#vVxdNpcezj>+NDpjQ0)A`=kYZJ}emG9)qRVtNalPO}-Ls{51$u0neqtMgd8E>PzT zQIn;jHgVMZ1j!f%cmOYF)59M{Cc*4QDo;KJlf2jWgH(&1vDx}O!`^PF z+j?+p+lxR3VPOO+X2=(mbFNUp1xOMtTm4{2^z3j%tc$QcXjtH(0M``OWJn!T1tK@s zywP{mAtWs(b$PQP0r}BxqNeF#hFSNGma7WJQr5oU^wiA#+xGnK#F-ksqJ^20j)5dw zul3Uld8Uw?5L}hpkOgu`#22J}Tt56*on;53r_z)Ri)~m79j)SKXNFD-_>SX8q1nrK z?1NZ2cv=zk+Tz(q%Ck-PI~;P=&N0!`fpwJJoPJ)$l7`L zu$Iot(j4bYXsWj9=cMe4$M?E(2@lUKtyaxYt^B6%fBdCNojh3|*sI%?KawHIMtrZ1 z^lA<*1hOah^7cu^9pOVb4ehT>M$Q)MVwWm)3}UyIjf*y#4isD)wJ8Nk_AxC|!s``7 zKJyVOz*ci1nRu#T$PiCNAHX17fqv%yOrRX*={orn8+Mti()U{K8uL3pw2cPlJn9hH zs%EW+M!WthS&gDAmM$-zGGlM+5v5XDM^>5Dm;D#^HJ&K2tzB3rq``N$4PLysUT3jO z+(G3`3;&8x%K`e7UwHZhs(%h3CUtART)xfhhL(|4&2~1AzVFs(|0&(4=?j$O6k<5p-oKvSZG*3ZJ+OOf{uhFK>zD_Sl0Eg=bps{$JmoAK|R4q5gsaPF4YG_~%|hy1|oq5|wN(OVFwyGLZ7)n7FW1_itn$(uQa zdX&}t zeJE+cK}oNfqWVljBjK1pYT8N@A=)kNsa#)&$IcysaLRjgrR4g)_Kc0KkRtOY-iWI^ z4j^k@QP5wOPgrL>>C&1fYB?qPl%R2y+i#rnH>cvR@03g?^75sJNhrL@PS7xB4yN`6 zr@2?`E#z*EaR>E258}FIC$s2QeL7zvt&Plhi{Ria7BZTbL-~dMo=uVR(Fj3USoNe; z!F5)wu2CJbVg=56C(~bk{bV*7rCPHMrd*MZo)+!*=fiB(uG`FEca_Ihh?^mPGiQ)F z;vwaov;0IW^o7-yK8sWr|3UG=V~3N0`gMw?Mmevp9rY=vr;9}n*9sq~qL3UQIOqR%lRtX$-w-(d#s4=I6q1|g R-zCSNqW)ztLWx*advq8P93x2W1|>vVYSp@8J5r@)?AWtvkBZt_RkSryl-O03 zW3)YL?-i@6(sO#h-{-#Xhu`x)&-(}bP^Juw2mn2R6R?5{u!hGK+xM^l0Q)WgfCK;l zaQ6%Hm4_;*C_oi({yt9bAp!n@51gC>U9p}I-4(oW{(eA4CV&F~fCm7y2?P)2pUQt$ zOpdp~LB;)kp3)?d_%tga9ogsX9jeV6ePLDYHVpFzpjiAU2_xgZ?6^)CYc03f{%)G@ zQNw0Un>GGfrQ?HmJ046DCf01JeP`bzz8$=ps42%!I$G2h5vvIMl+d#NL=OdF+{R>| zOFBWJb~iSn6fq;BWFpv%kd4mW*+1KAsA$>s<5!v6vsjS$GR?0NB+Absh0iFve8_gu zc=45bcYX{-i_rnq#<>(fyTjRq@F4|54~vK~QF@}4q+(^QBwKped?40VxPc;ccIft# zJ&$C-;$4mFVci+98MmSYMK4SyC6Wu}`H7^0qm~Ay+xy%r^4jdo*F7%itH;OXWM+Ny zVUKs)U(8Ho64EJN9)@mn+3q+4zeMZLYcBVTRfH2Ru6qSTFCoE#?HbZ*(jMH@jYXTE zu$^~a=Y3iRZ{LGT?S>iXaml2h15|nN!l*-d!!=*sb5Xm;jtMZjfzyPw&^J;R9wl$+ z1`~RmsDU9?Zp0FYH6i*Vx;T1hCI6juDxILqS7dhPUO{u=C@iu za~8qT`hp7_K58TH01^DFDw|)UTVSYib8WfL<+x)rY@WTS-7OCdC5j=Tb#oY@8OKD8 z{G58(6cAk(?@I>J1?aryC3a`zW6$HmWRR45KY2Zt*AuN~>yxni5~@-Bu|ZcR0eJ&^ z|J1c3yt)MYWl zQ`@QVxYV$j@bnijzSU9+1sV^`h`*8)B`EFweRjjS=*@#$MYl^b7(DRoAE#cGsCxQM zD8&u})dTy~lP`e@U7iQeK8FcCk6&p9WDA*csq8gn9|g_x-mEU$P8UOucLL?avf=~0 z%fR74A7t}H)Im|$2gXW3ahH^uz_K*jfi==Dee!Gua+6$g4n}js)Z0uoMJ@{y2(L*+=?{sGnTyOqf#r1EQ|7vhnPJtB|IQ$6&4-8x^=Qt*FSi4?PENQ*30~D zY3)H0+?c1l-y$X8X;w*2&X^^Gy8$vr&RKs{8?C3tZBj&2g0E*CN1Ibs>?6you;g~5 z$|{G}+2f-WULtenNjVMA?I_g3@u9F(U&3Z@QJc7K!^SP#=ZHK9 z^`V${O|KLLgjfsdS+Dt5QPCIy!WOnytOn9Mytd9k{cxKjGbLz#JEyWjjo>Xk!Xj{^aXW@{Em>V2>@IRW$$2l?=Sy5oU zYfRNJ2VsqUNoeTqYo5(DS92a~IoeKz7 z2ao!UtcS~821=g}d+6b6aXp%{ zqktkuvcM_1wyD=Qpjb(0p$Ge-8#>Xd>93R~$SUWZU&p~xZI9vE@kI3Gl4{8Abc~wL zS?)@K{9!S(0z_%c#Na&;O;XEdE*KiC8Xz*ec3`yc|3U}~aJ;_Pn&86!%6+XnnfyeUTH-lIEfbpaqqG3xM^Yw%6Z?G5V+ zdx-3QYKYJAc#(X>Be3M7nUbqdrO&74%c2Bc@vYT|y-R~(-b%|ewz(Aa4~;The?FJS-op1zK2shY-@nO* z3t#;J&0H*94K3&wrx>_We`j^>m_s#Q%dFd*^l^GwAF%x7wgblNi+vlm{)bBv?(of+ z$gNdVWtygr?0L9z1BY#AMO?&KV)lGNj;62E4lG29+j3;8UG^NQ2kL~z(e60gJt690 znn|9LQ{lska4sD!T2>aa<~S#lEuF?uH%iE>0m+kPVn#h`m7+7}Glv<;M&?!7;*yue zv7l0HQXzVWSf5(gWr^uq+DVKTAL<95?Op!a@Ink_N=J`i_}>cfuLb-!c)H*C|3ZK= RWn%vQr2Dt1-(>y0{sG^Y`+@)f diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/event-all.sol-0.4.0-compact.zip deleted file mode 100644 index c838a54b622b582d86a7ffe6662f98025a582922..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1034 zcmWIWW@fQxU}E57Xe%lRG375(Ph)0aaN=cPP-I|WNG(gvE748N$dI##p)by^ZhpG z;==PsEP{*8tDI)K`kgw**?+R&Wk5z#>YYHBlg4u`bXt}@vrOyk%K7%UvRdROBlkT6 zcggs!?KA$a_^&OmY91PLQR~_%si~iwo&Vkc_igfg>85!S?%N!Er?m+2r^Fe_eda0g zn>+K;$t4rYm#BZ&*}81!D{I9_?nxm!))m6NR`XXMdf2WVe*T$+yUgZtEB6DQGZp#z z${uvrn)Rqf@31bn-@N4>`%{q))!Hn#Qs(C~vm18WEnvSNwZ!n%o_V?bOGMm6mUz6l zwef+SpLIgPjoEewQXYpG@$L{+xY04?`${Ppk5uuurh%WTKUYtb zZNA?5?%GYpRhu@4w-`-Nn6!N9^2zTcR=I@#_$%@1WZVnK3&t&$Z9iGHHiR4O>im$= z`pPFRSnp5HjTLn~Jj`x4t<9`w8R-5K&JwwFFzR;ofo0oXAL*z|y!=Fq@zYE#`CGAN z<@(!%YjdwR95&{A=M!CMe1vm-#ryU%DPs4RmEWl3vf3uTXew)-(Dtg?z@7t(NA9&5QZ?>Cf^h2X!rOpE}kq`LuiLX@*6a zA5N6NFJJ%ug3z?N>{?$>UY@nVK<7Z-xd(GY1(W`w|UVJ>W>HWU_O+6{9 zEqrfpswMB6s3*{%;#tFY;kEe*&-)ef2Mb%WmaO(?IUwMer25j+==y?5K|1@wU$a&! zet&#n1E)c}+mwqO_bfTCT|PS7?v3DDuccqs9L$}<+Hg(Mib2Ai|969ks(Cn(1RH+GRiALlnp;+{nq)Cm-#4d6U%gl`n%Iv zg-U<#)qfxUZjQE}UGgE>Nq;Xsyl#5iT={kTAw82l90~eMqdw2^sHy+$7I!tkn~}+$ j8Fw}X=2S3fU<6SFGi`u3D;r25BM|xn>7~FN&%gixEQ8T( diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/event-all.sol-0.4.1-compact.zip deleted file mode 100644 index 733ee3eca526deaa6a0bc8e5ce3f755943a41bb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1032 zcmWIWW@fQxU}E57Xe%lRkw2pLErpqZ!HJiFL6L!hA+;Xbn!b|72S@X_0nwP1%U#_(`NXkxq zJ@;UZiKXaC89mjM|~sdoZhP8!dR&YAjVYtgoQ-aSg;QZ^5A^y<$u zcUJcN=sa**tVY${p3`?f9GW&eN4=l0iK zVzQg4pRf7iy5H&<4aO!dMcUt-jiqWI-!NabB;oJ&vYjG74|Qpp3zfahxofoik#@S? z`fqRUhrSQ&S?97~{>LJ@|J)+CuL?ACvp;D|d%HyTpWtFSnO$c}_)VM3eE)uxK58Y; za$wuUzHfctKEX zV(c%+?M8i_NBE=IKE7$(cg)mNBWgoKp_%2wr&hClFVyIGy_=agvo)!hXRpS>`SWLZ zv^{D!>s@!_>AqJ^OZ&L;9~!m_SWnpatK^N3_r??2ox;Zzv$OZ=zccasm#cO+X79VZ zjJt!2GoS5jx$`}I?S>0MI(Oc;#yVM6WtN>dU8Q)Pb<1SK{K&JXUEZp_dhwb!(^f%M zFE3m$^P0(T-I$l}?!Gi0@5T0=HiAp|T>hEWZtM~{8~Q`q;Lwv029^HC zQK?7UtlzPzifl z+de(AI;8BEMuWrAHL*A1xbFrml$Q86$z3kVaJTEE&#(UNJ<_-9zTPaOB3(AY;N`d4 z=6?wY)(aMO*%B|T)+S$g*7hmiTkh}YlG~QeD%+F!I%L-Qb8j{OKU{ZiV}Lg!lRY!; hObX1WV9>w_q6lW$0B=?{kU~Zv^as+5f%%<*0RZ0k+;so| diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/event-all.sol-0.4.10-compact.zip deleted file mode 100644 index 1a3f53314f4f0afcb10d91b01461844beddef78b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1082 zcmWIWW@fQxU}E57=qM@(xya91G>w^oVFoV)gCYY1Luy%SUWsmEPL5u2eolO9ML~X1 zNqk~aaz7wGzc=~ z_PBB8+|_^CE;^~{m#1imt>C(_TPAL%s?DqL1&R;mX_(^4V+4%`|{<#jv z)ov}DvH$sGmY>?~XEddL7@szscx#%NV$EXF%vPSKE6ypeGFHp7x~1Q#8e7SoyIp+l zi~|Qlc2rpX%i3(u#I zd;Kp9*POVrVe&MQT9J&eg3Bi4%law_a5IK{ba2VsCtvsY>{rjOu)4E5AB$vdS#*ES zmbS;~Vivz8TF+#(%xrpK^vHV4pRgqd${4lo+y8X?HL{(b0b4X+p4yCcEokZcd_xS4>)SPe0Lzr+wk%0 zQr_gD)ILn9UPki;O`~NHnR0>O1iI~lA zWV*U)Yhd#KXH1@~EHgiEx7OB}f9EEfwdC^e)qBp~vC}-opZe0i+JtqQ-FWn}(Ni^?vN$A3rzU`Fd{gTi*i;j@f}G;-7qqg}P$ozw+OSGWt-R95sJ&&clBJ z>x``5GoDs_eEP)6Jxp7^Zk#!%?)SvhpJ^iiF?s;cIyKFH$S{*q_5x#`FGR(U#!mYHs5b^ zE-pNO#3H!Zyvk{&tKX?}oc$*YUIt_|rQQj2IcYrCYh~r}_cIOhzdTluxfv9uvxD_T zgGA8_-MdrQh<(uQSv_4atop!)#v>+iuJgo2?H!KzrM>gsc6#NJi*Tq@ryDlR?aMAswdTfKYoqLZ7i=q}SKe_=f}@91jhE8aq# zUpE}6Zv21t_^YXXD~d1d_PoNL>+vY#{q-#uc?C6RF>Q`y-v8)yiupbh2eCKHI(Oxq z=G-=So&A~GyjSZkZO}__>iFyLcVhAvL18uiH{S01*T3+xoY>u%vs?DWrrY^$CciJt z-8J>E{3L@D^*;JZ)n0e2 z+B~Oug|>$RXGY(iV`ba^_bb!;^7{wZx6Ckop?^^8dbh>Td&+(9zKHPsd+?`k{`+qy z7qrH!A71RsxJu)7b5`cM9__MV<+nx}D>At%||X}0t4OirFW zu)Iet`uLXEJG+w)PuOgi#dzJgYr*{8D>$FEUv*!r`@ccLL5;1w?RGzx{SwzhpDxW2 z_Ij}@tL2sb{r_BxPVP$WD)g~5&icgNzlim0=*;hu%Ga7oUs~>r-&(BkWm0+Ev+#|Q zfeUMyomWYS@+7yc?)>0zu<6L*t2!$0^qa5N3lvIj3H!CrNWLJat$xB=8U02U5%1e_ zmDe^%zMATz+9fl6l4#T1w=-mbN$QvRlvQ&~*1QSITk3s&(QobG=bYRBvdwb5`DgC7 ziYMAK^@`6c4jGoHU)y0cqwBq;5Lh4KY@7eQV nR)9AnlRY!;;s978fI$Nzh$2`x1bDNuffO@KL7#%4gl-5WL756Fv&**001eG7fgR2*K@rVG4V$ag{75V zSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!KbwSl_kpL=OCYE0Azr`IQFEaRAw08*V? z5{Kmtl*k{`ItK*s4JadUekn%e%-sPC>|;&FyzQw4-&ztJRDjui^ht+rRo8Wp|1_#e z?A>Gao0~MRX%2tZz-Z#Q{qLBFvLu5<9-K$AU`wfJg@tHkuoYThWWx~>S?_sSd=nERzqAu=T^fWbYG%}fQ->2x7u!;O8 zDne8En`f<&YF3IkP1XOX)IJk<0p2p|Lk0_^t~g@LN2z~R67B7|3~rePwHFoCMnT<) zZ}L3pcn=p&f{1Gjm_{Vbr5C=nBvDyBKlrlf4cpE9k~FaO6^?X*c!(8_l=cUfHT=w# zY5y*%@Ihw;L&Bi%mj4ucT*hNJVcF5duh zs_jOHvj2bBp(`d|5Qs$l+z8c!nZ87c1^-)QB=uHfiYtH)oK0>6W1ha`$ma2O_ZG*5 znk6%f0UydBgDFMB@??0iN*<~wkuzUEMkUXrDl!4kxv zL~qClgV6fANFU)qz(GiOF|y~SAj(g~{Mc&k4atADw<|@&d-2UNavh>f$0ZJu&z|DhfYDqzYxDTI~oYC_&X@X z6!^~3@p2PWgJmLWe~-Wr_=id~Z%N3wzEk!5NPiptOONnz!| zz+H|7)4V3+ae(%3RKExebNzM1hZQL#u&{qaj6zRh2eHegl)G~{{tU0`QE!5UN~oW& z$@blJ78!#0vY8~>)}CMX2eK8cJ38`=_-KPTm-1oga5F#Ys9T>suqwk%Lf0Rle*KL7#%4gl-5WL756Fv&**001eIhXh6jh6Dfr006-y BBPIX< delta 1119 zcmV-l1fcut3DXH1P)h>@KL7#%4giR9a8!Wmx^6E7001-*001GAu>>TMKO}!AuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2tNB&(b$A(SzoYA4r#5hxP zH+n*uMNZ1j36IHe=}>5bW!zCj$upfw&|1x6PM8!UGb4bZ5l=P@2$J71HS;@q9j+mL zS^G%wVc7yaeF18>yduW?)qsC6culA1>3IBs_Lb7jCol?_tSzKnN=r8R=C`SU=~Fff zwcPpdUh}?aMmW~G3?KAWuS)RlS-N@*aJwW-JTa$43!~`d52R`K} z4Gdi#M_dh_eB*I6jt511&{T~_!>Ts=l>3`aO~e(oF6TD7SRQ?oZqrBvyQL&H-*dO8 zFegH?-gCN^q_gyG@KbIjwL{0tMcaA9a{(l{A2RfZ^=s-T!nsjWRQn^uz7|T!MHO#D zD8F1yDPje#%VLF^q!E82>QgJk8&RW$Yv@|8R@PSu74_KLa1LH_Ex>$`q{5@$|Kvbn zd&B6d@q51*+fFb*Gm*$dAfzdLxe9 zvHmqbnt9wmeC=k#CQwWOiQ*?)kb+0$WiE80+t@9mV3wD=&BlMTvDR35;VJ??_M(WQ zK0_U$H}c!#z0va@R}&v*5;MF_OWPM0(4$nyDR$I&Pp3a@!_@X;Xhd+%QC;EhydnjnpzAa!=E42L-A_GYH3C$(NzHgy4AjyhIE6tV7G7 zN7axCN8Z}|hlaGXrDvZL=Qf{24O+ufi`?QX0_U2rpO2jw&ISGa9U z5_zb4%_NoU08g5=fR<=j+0lP$W|?7NcgAx`sOIEN{kU3?4D zk(;KLAPx}DdCcE~`~#@d%D@_0_3ueJpMb9iv6uxKzt=otng}}{7~cjL7U^NDg! zFI4fMYy^KE`hCz}Zb1X3$?Vp;0>uur;IL4S-BAAom5p;*EC_V8x)R4BaNglT8pd(m zz3K05eP|o_2BBD1Yd!&(~V5kPVlv*D+-&1=~)F34pjn@gG|b0n~xstuqb z?6k>)wXvklmyrxF(pV3b`mU0k_(SxHgG)N=yQz8B4_;1thP`~ l0Rle*KL7#%4giR9a8!Wmx^6E7001I*plu!HJiFL6L!hA+;Xbn!b|72S@X_0nwP1%U#_(`NXkxq zJ@;UZiKXaC89mjM|~sdoZhP8!dxHRpR$BJ#T{PBF&OaHsLNpiqa& zu8!*-2TV$dn`?bn%+9gEJeg&te){s}2>y&R_L5`q+x|xvMNgh2qhR_$^A7K!%~QIp z?cT3++O@vgd%@1SgWMLXuU7Vdn|IISfaH$rPwT%Kx@EX;eP14P$fvJ}MRs|k2ID)1 zAO1_%w_LvCctEn2tE4EOrQuO@_&Upq3fYYevWwm;TRtsNcJPu=d8xcTGAUzy*#5RS z-YM!a^0)ObEh{)0^Ys4{Z?+ll#f#gXP4=~&C!o+IH_I?dV!wb@!b5X`8gFrZ;UAMe z=V@%)%+>fsb7$V}X+2Tbs&2_%iRiWXIDZGFQyqb7C!DqS#5+{v8W4=PK>W70|h|%HrzZ`d4C` zlui5Z86{4;^Rub<#%uMo@M(S_8~19J&e%IMy}gR)7%ZWMC4f>IW2H!UmNF++-tipu2Y_LGKUe8jghQn75-3Zb~t7ct9s zK28hc`ts>;tC0W4nYCve937qS$?g|i&BCK5m3rl~Qe}I$$w#*hk_*)A`bA>+S&MCg zCiwihr~E*@-dQqn+BDsg?e(Wq49-QGoA27iztmfxcyZxiyv=)^x(Egb6OO3d$D|0*9rOkr+m(>@V4pQ*sT8e$s11V^W|+`b2qFx z!L_PCFvT!~U0v$xjOCLRg6Ddi7nDrBU2CyC=51|L^(D!W8-4r#t@dCF@MdJPXU3gP gfjJcn8W=$o!Au+A&B_K+$Owe~Kzb=K$1^Yh0Bq&RPXGV_ diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/event-all.sol-0.4.3-compact.zip deleted file mode 100644 index b907d765e048ae2413c6d2fa4fdbd2d90fdb1123..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1034 zcmWIWW@fQxU}E57XfG-VaWmU6Cykkb!HJiFL6L!hA+;Xbn!b|72S@X_0nwP1%U#_(`NXkxq zJ@;UZiKXaC89mjM|~sdoZhP8!dhw>axbiOBD+IK>!8!=1+8f%ppV^`=Sv_s)18Z5M0scat-_xiiG%#$BsY zCBIFF+#ZM;Zg^75S-EPa|JvsvojKWz)6D1QzghXvkmIWDc~5J7^XfJ|-JA!(K96f} zNzdSyynRshvwLpZRs*FwA7s@mwJ*)Nv0hU;>*)Vqf$}1UIh8k5@@|-y{r%M8OMK7v zRv)){G*kAO=$!{Uiq~D(aXD;W#jfmK8X~O5DxK`DCv2u4-#I^uTX4~x<5xGyed1Sl z;_?2gSn0uLXm#Mjvrz_j9k?B(H0^-uqq$|S!1o40&r z;iaQjE_Dm`Y2|5eIK6S-z4&`?7f&g5NOf3U9WAuLE4(>w-jwPO@%2l(v_w2Mm0L9F zb_MFn>3@2^=98e1M{V#{b+vsmH_CO5N>@(p*j)YNQnIz=^Al%suCgk|>K*tzzmCVf zco(1bGduTZ94Y_Q6@TcSW@bCncJtyqImyk!*K32aG)~NtKeMCO`Zf>q^~zHRWPD#$ zs>bqi2eErDXLg!BQ*qVl1v5UMTs8eaZ_S!uM};>|4$ogUvc%~Z-wkG8u;VV%^(N*y z5-OoT6tAB@c3|tarwfykFYORoH0R>7pDXfboGIVa8q#}M-gK_%B8euM2}#=V*}JEB zF1fWuxz9*#(a$-hmR}i_E=%kFH<7Gynhq diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/event-all.sol-0.4.4-compact.zip deleted file mode 100644 index 5019c71ab06368622d9e030f17fc58169fbd058e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1034 zcmWIWW@fQxU}E57XfG-V$?g&Tlg7-z;Ka+opvb_$kXn|SSE8GklcQIhpA(;2QIKC$ z5}#OzWBFN_4A+>bcp`yu1$FInldQiwp0q-2Kn#I_H|)hFK23UpLg;T6XC0 z{)>E3)Aqy^E&OMwWi-uMO@QRH`hu94rG#MB z4-IbNMK)=wkv=s|td@D=hl*?b?pKlKz=WIY&$X-ASJQtD#!_YeZtX_vcymTMlU6 zsh+&>Vs)X{@~2gn4|6)?zP#rzc&M+j_L+91+|s29Z3m{e9&PM!tYY5Wxc|fLoVA-S z2ZExv!h=lb;5kpj%GzRqnw zkoP%#?z7sZ_dmwvE^{ekpSV2)>C008+R-?ab$ diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/event-all.sol-0.4.5-compact.zip deleted file mode 100644 index 094627f53ed20599313a868fbc6c573daf81db75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1036 zcmWIWW@fQxU}E57XfG-V$-15=lflfu;Ka+opvb_$kXn|SSE8GklcQIhpA(;2QIKC$ z5}#OzWosnerrc;*DG-z7sFIU;MehW#j!XvLCPIT)#Q} zU5A@&Et}__Ev2pxB$VeLlYXT7rf&U&?4R+swS`mGdS8l?Eah^xnR~8I;))X6oBno% zxf7<%FjYy>tT5=*jTU^iC+V2jhySxRf=qY)&zqp_+H2i(%J=D;#k_l)N@W^&Q+PLC zIb>2hBSC%oy_v5&b}^T(zY@7~!;zpb8fg#y9Gl(r{kYD2;kBBQc2z0cZ{4_4@*sI# z{_G3Qe=q&tI`!t!tch2>H>NIdT~NnxoI&tKq;E{W_%S<=<5O;hpX$_IDa>+lfx-K8 zKP4TOwJ>eWIX@|(d>+T)XIp(w%uHwR=IfC3b9sMdbC-_lWHE(*vZp5Xo_VDH_(bgL z%Ni3mu_n_qOHwT?*A98t3sH`a8#l&w%~wM&XOO>kj6X2s!NweO+6neWzT zQ4+f?e@vKf!t*P}-XMVcAoCZ-D?cMn?Mr;9!Sb^HdnniCQ`&pN!{YO0HI0`CPFy)e`<;SwSL61E3&AWlq$#4JNmi9Bh&-ytR8p|C`8nD_6|pF^d0tWzW3; nZ$>72X51MSm{-A|fe}Oz%(emEtZX2Kj6moQq?ZHpJOcv&+?wC^ diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/event-all.sol-0.4.6-compact.zip deleted file mode 100644 index fdb561b59cc602865153e965cfc00b2c1e61c9c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1036 zcmWIWW@fQxU}E57XfG-V`6J@ooWab%;Ka+opvb_$kXn|SSE8GklcQIhpA(;2QIKC$ z5}#OzW~$8;6t85?oBF`@n9;(*%ANAhkDt2zIz=P$j+Ic|+drJ0Om#16 zUh;Gc&S^AV_^EOJ_Kt^B*D;>`Z6|AY`fJYVva^nb`ag}IPj=;AKjp0DDWzNKhk{IZ zHNDf;X4P&z)pKT!7t0Bs>=W$S&wjDVdx)EDV0FC_yxVQkG#>_+fasT=nYxM(R6ZLB zCs%IF@Xr^>T;`X(sMyvP=b>bDLRo@*DFpM63L-kuRJg{gk5udelp75)_IG0|J(vTVTcT z`AM_dia#sEtn*xEyfAMlpPa&XNtE}8On9T;%KPH-@4whJi?6)!O-u3a%gO4Wvl-s8 zHarlVnvuZJylbPfySuv&&qL4UXYH1|XlvCy+Gsw{^b%=*g1*yNwvzereo zHzW7PWb=DJF77h6=wk1>e`3*(gUc4Ompr>>A#zJlo-Jt7I;N)!$|8PE-SFsU^6FJj z|3&BDFjR8bzwXgThFe#@6eeX^vvkP5da3(Qo8Rs9a^2-MXTEQ#&&_B#vQSy%K$%0+U%e`;syE?#t7*l2TSxw=H2+MRcvt5&u@TEyb;_`STWx^wm$j|M^4x{spz+U!e2 zmPK!o-t|`Nc&pL0Ifmb+P0!u%FI{REGlPKFg~`xp7^Zk#!%?)SvhpJ^iiF?s;cIyKFH$S{*q_5x#`FGR(U#!mYHs5b^ zE-pNO#3H!Zyvk{&tKX?}oc$*YUIt_|rQQj2IcYpk+X5hDrbSk#p}-dPFnZwjoj{Qw=~Zl zetM$0DevMePGcv-nm`GLckbnn0(>ml+3XkEGCF$7B-INnj69Mnr@YN@>&Me4o2Fm5 zB^LMP@7C!T-%PhSdibWz)|ivMdlR)LO?euinVa98(sf5q^~x>rLsPtdgnEf?Tw5i^ z{&K|=!N;ob?9Z%ci1xY6m!^>ZgOibc;zoW1bpv+X<0k`jppFL_x-g{xP0dCfQkHhYC)a!ZdbaobREp+5S&ee_GNWA8Il7B9TgC81pVxoy(y`+KG{ zL^*CYd2Aw}aP0n`sTw+ywP%K(%gnt#C0+58MOXaImn$0rJ}~~g*ri{`+_0>A9fS64 zi>R=Ovo|$LwPR*L8d}y=F?DMbP*1Ip;Y+(E5h{Gk`SC)c# zIy%elFYWNq3h3Rtx#i{QU6<@y|NptdUlkps?>0^K{*sOi9_?S*D|WJTJaCq|`Ndj? zKVbH+=g%05%rDM(V|SBjdC8=i$tpsc%TAlG$U5;PUGlo!kvD)G5pCR}y>Lr#`Bg8TRyL*m!7{TG7uz>Ez2kJ+_JVnXM;A-M zb^oy4At#(VHwRfy`_(P@VwKGL8Of9Py*c&7jNu7KLBPL23qHHBD`$-+B{!|#u$njY zYO(%A?mt5L{k@g!&om8X{bRo#pB-3o?cU96YE#}ew|`m6o;&x2fI4^Rk%)7jgck+% zXFc9A_o2kQjiUFO@4onRCtEkbn~}+$8Fy|6W_U1YU<6SF^L~IgD;r25BM|xn={LZF HgMk46{h0#k diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/event-all.sol-0.4.8-compact.zip deleted file mode 100644 index 16033263ebb84c3f330213cbea448e4ec15f7f1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1104 zcmWIWW@fQxU}E57XfG-VdG^sIW(_j~!xvr#21N!2hSajuyb|5SoE*L4{G9mIih}&2 zlK8};xp7^Zk#!%?)SvhpJ^iiF?s;cIyKFH$S{*q_5x#`FGR(U#!mYHs5b^ zE-pNO#3H!Zyvk{&tKX?}oc$*YUIt_|rQQj2IcYr4b7PnKT<5~;HsQvO8mo(=jsJh( z=J}ju*s8Vg>-+N?%N8v%JG^{$QMP!L4^Q3n;BS(x*7lFj_!#G`$-Dda#AN%{Lkr6! zEguyLX*{{SQ24r^pTn1Y4SVeiDGs04YV{P(2or1nK0)Y*u>SuE#s_697WVBim0J?3 z6!Yi(lf*^ejEXBV(k1`56)tIaqhgn5yi*Uf{_QtI!GF`rm0X9o ze=U#|yxZWInRda1!LoO|kK%#9O0sJ69tBH%*`_}6bd`N$>pB7F?T;90PCe|q=bKg6 zeDLh^47&rD>$_eisP4(OxL3NrG~aITkLrZLiRjYKZ&zxiV z#^t*4)q4Gl_XQQ~SG4@mtNqgL%c26w8T$Oom5#Igd*E3dXt$@%w>0MQWX(nYmF9Sc z$E;V$W&5rao}iy|$>CI$;iZm?|Ja;vPg#5G%>4CpR|GivtysnQ>_c1p6CEuVjYSjI zp0JkN_uJ)SL)z}DYY`pGkGXrWOFYgn6a8PkSAHdH@mI?)A$xK~lKdZUPG9v~CPI13 z3z_NS5mRPMsa*aL<{GiLlDp&9#4e`JH{0{G{Tt)A{COKzlruqbrNGBkA5~_#iO#u@ zdAs)PoWv!64AUF3jSM!%yuLc=RGf==fsOmzxAXT^uXw>1xRZCAj=IH-^I3v@9-VuC z#D+zNFvm}__DZjswEIK;{@zDo{SznZHhkV9U3P1wxDs>rp$kHNm-|A`u=j_G2}oMR z@Us73{Py?$YxkEP@sO1DX>Ylr=xRD6L~B`|#uwN<^1-$@oMkae^+?gGi-@%}P5kwKp`T^doY#@b`u_aJvPFx`4lkcwlr0|R!&5gs_?u*_wf*BWKE^p~^6vgUG1Rf-(6jCULb_y#6-Ja$sDsI4MSyr&zvuQB4D>(LLiSEx7@`Ly()7! zLZ|w}#Cab$rYCbL|GCI1WGi`F<){hw5wW@_3qH)VSLY5qx2;kwMt-5dx^lUKtmp*` zd6Xg*&d!szV6-rbeY42xaZpEg<@HCOE-UAHh_r3d_gt)*bg<>^#)`06llAh@ys>xa}XBosL? z&9}GT9-mfwp~}auPeo++eUnWOcl>h^dDq3f{*XgvbH~}e$E+T^R{N=6aZkVUwq~Wf zrtDqW_AF1^YlR%;m50BHZClr#dcVk<;kDobIgQ4akV1XqQ_-VCla4Ch zGESP_Wyf^>qu@sdZMpkXCjP%)S-P(*jnge?qoM6tv)dCUJ-hmAeZ1vqorr~BeKokR z3q6b2q7kkT?!E4_k4)|Ha93w@YtBrqPZ~@ruI-M=xy$AU=DSw%-^Nc$Y0I9FqCmaPh8=(vs1cr+Ov-_`tkq&T2(0+;LXTn&x|`$1M@W) cG%$iFf>}Jko0ScukP!&|f%Iiy`M|&c0K{P3n*aa+ diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/for-all.sol-0.4.0-compact.zip deleted file mode 100644 index 4da0932353c407aa3ac31e81cd34461a52aeecd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3707 zcmai%_dnDR;K$!*o^iGiavv+s-g~R;aaoxeWgN~qD`#e}l4KL*T-g-aTU?Thki8}A zD8(t~`}ur-|31F2*ALIf>+yK~15YbcN-78F&_OoWjxOC6AOIkn1ONg60Nh6g zOS${|OQVtgZucUBkij8t?!lfuzG3&I{m{rjIx1?w1pwjzKr1!XTj8$)s$%j}s|KWG zIM7$5_gYdG{Hpf#28K?hrtgCo>^ld_m19Uk+{a#9QN*U}PU?6|x#j+uX@U1EdK>bb z5fe;jeDHK;?CNnA^uw+Bu~5#@ zZP2B@?hpf`Wj8_eN~Eg91O%|)jQcX4foDyRR}B#^dte;bd6#s|SlO&pG!i=-Y{0!Q zUWLik5*H}oQZ9bJKt;Bp@DaDD$;lcjn5D@7a5da>toX;ztPvr>c1tk7q~K8KPf7oP zjn{iYf2^^!ataq+42&Xr1J$QLnQobCAz3YeW9jiBH9gdig`j!)tHtNRo>!YE;QY!stqP?dDs88+1O zkyfg@%uz11?LmUc=%3-(5<8H@kvJ$_HrEN13As7-FE39ToTyna3IB~hbR{OI1 z8SiolJCV{{3%T(3#UT;){vBN*5#RfJxLe5hncv~#>#OPQXKj^@{$^erFUL%5Ur#fZ z3dg#c4}I1XgV0u}w`Ze{63;Ulb{5PY{x4%$b0L1i;hkRD7g&Z-8vUaiwHyyH5qo7t5G zPagGzjXnpwru>9PER*^oYBMYWs*Ln)HFg(Q%Z>pntIf7*I`@l)Zd!=-Q|(!2%}BBn zSbM+u!Bc~?lvcp8lu=>P+v2m$+gFEtw6i^`j(t<_excad4?ti8Ha6xfYx_c7f!2-F z%}2j!ov3&Wo}fDOY-43hI^I6ABKY1!^$JwoHp-e%u#LEJBCxs^g^RU%&9Lx$TB%3N z(W_XlaM_LlyUWb*vHFwmie0p~CBoCGeP`$L)$FnM8B9Ue#9|7O2NBx{ISx}^`f=Zl z)Qq|3-u$+oWZ^G*G!f9~$D3-L`m%r;a_p$oe*!Qo>2fizFu5EIROki9v}_<=BOnqr z>5&L683K57z4qXJxd#Bz&|IXD+gEoLQJj?U{-z%2jqn2IsJeibrFW`{{-Lo`#3KAGWy%Z zJDGdEIXuM%WG&C_wy6WnFyUe3SXPet3M|MB7F3Zc&N1W#5TC<&~&iY{ep zkq{aX+!t+iXhj-HoVv)v6X%;A%{Ha_q|yo{?G&F}I`idxSCe7L`qm`ZQ*FX2!sXpj zc4O7Rji=b$pVT)M1P?E4UG}kR6p}f7DX%|NHF;*0iVMUIsZD(NX09|JrPDpqjd)2R>QImS-#h~423NbZ^5tZVLhF>^-e1eA?1 zv8U28+^o+RfM=d$U_%t2#&nNlidhWIgLUVJ$&wx+Cg z2LQ>x35o1GDvt3!jYA53XRsKDezj8d3Y35B@F`Vy+disQS&R4`uP}8Ll<-DsJ1|Su z(-OScWJHEuOFk6^QY+{Z_dXJ!M!e8*);cz8D8zfd?M=el8s?;}?23oAm9U-5X|`)6-uRyTu1@=HtTBWcpnnu6CrQJ9 zVg0zRw?bTyn_^Wp1zDo`og>q0S0Zjq5W%c1O=(tQzw$T#kzI*0dz?`LaS_rMz}$Ba znLzp8Jw3;L@aN{Y^xYz}%)WwHi@Y`cKVSEFSUbTt^KU?^+Q&0|1iWsZOEPrWQ9Yvm@wZ0!-){)w<%U@7tOL2&=l#qy zZqUDjoi@!w{My^^Y?_jty{4%o-2??(^(q3rm5|sJGr!``Dj#tod@AM7aCx;6lUAJ| zd0q4lw+NLNGgUBdaiFxOTsoOs`O1v!4-i>@vDXoDKWyxz+?_MHW^P@-gY!gtfcqVJ z-&p!c?__z&0qZd3$r2yF(J}{e!h^j!3(z`I?r9A0 z3@r2Ju5K>T%Mf0*@^TddevPlq$`coZ6Kw|JtWO{76H5mU#pMHtZ-@wLnaV;h>Ss8dT2;VbSH>+~t{qWdr^#xYDkf$bs8b->?_` z#czq_2D2jm;6vvw=)bf}<<=Y5}pIkauGP@y3Vts8r+WWqnO zqkZ}*!M@d4nVJ-Hd>)fY`K%--fvu58}Gbsw_GKo7T1!^XEASP{L0UtX3VNe)OapV4? z;=yZgYN0lm_n2BApt0Ekbv7=P4vqb$kSEl3cYe< z>>G}zl-PD@nTnJb@*$6I?+4fWY?RG}r}RY#HQIv*Z>gEpUlzX|QGT|k%1T|7rx)?^ zvm#`LH&e4LpY+efQ!N?aSwzfXGu9mjV;SF+y~7mjSDZIw=z-2e)2Toei{gfoL*TO> zOJ=tRH6M_{u;h@#G|6^3nt{@WZBFGzhDQhGMQnxE<%L$^Ndd-Hbi&~FTYafJg`9QX zD9w$<5BJ?10E0c*VQ<%rf+jZ+iGtRpf=ZW%hn6(3FD}(9JsOBe zu0gGJ(m{upY&S<(OqS*JsM^_|{*~`=lkF^ zQ5oMUExn#s5aBZREcQ23`0E;Y)~jM6{H)5+wz|cnRU#_a;3OD-GpQ#h`D-JMSVePg zn6vYX8Jg$U=w(o({`?6_4db|_Aj#jl$5iZ%9n`~wduaFYeg{_|*n`FhJwH8V>i2aH z9{`{9zY=7bp%b5^lFB$JlI?B5GIA@vICikGsa0L??Ov!Krt9;9dd^o|w4fg&wQ6(~ zFg;(lErJ%zU<~asG+UoK0%?K%X zmT?;s@tCd9zKN5gTd)d~kkeI;@W_dhN;X7qTE(y0CH-w}!gY`#y&o4v;Lf}q^&euF zlg9x?jdO~w2RCKs8Yv7X=Ow`}huKc8J=jUW*r|onjm7gXhphyah9na91I=K2wNlW)hHQ%Qd`6xlTNbY^(|RV^meqjAx?rE?2yTQ^kl-0_oIQu4#`+Kh_zY!yeh z^|c{DlbS9v15_XA&vUTFTaS5{Tn6D1SZ~EhVTMWQWBmbZqmPP#T&zTiXLlq zsZXZA&2Taypbe;Icyp1Z{8_7!0g@8BGjE`~(T6QOH(8MDi<-6l%KPkHdFL}r`e)G`&M+&^@f-&&Hz2VxJtsngv2mZKz%_ojYO=q00 ztp^`rI{PyjMLs-S=9@ERHR3t@uoTf55sRz%q-Gk! zUEa6a9&Sm<$+`?FM*BWzOdo2REfU(&%&iPzZ&8A`C!Z^OV089Cd3{*>NQTBG?{Rt& zOq;%0B}4(fMhHHzy$yRoIHKN&)nT5 zd_CQ59Rs~Qef(^n`Pd^}{2e7+eLbI(5d#6%06+u)07IjlrLU#E%ceiK$=@v;eC{HE z<%~@+VpSAsr09Y)@AZdNwwn>H;qFF9jAKm&-L`CY(G#tu`ajR%xz07@CN~RORH902 ztb<5blS=!nP??7%uT+N=Qdq{oc_!RPMU}+Rqd&*>)z|tgzRg5s)h;DwSi)vd^Y~pkUV4 zCLb2}A=Vv`^0gPB7bNECoCUBo#@;}ygwaohA;15M;l7vIbN}$^-EQS?(Q-Xy3kmtg z5lnVz%Gk%vXwW%1@!jKI{PAer=o-1u3r`zc=9B5X;^@OO#eML`9d9|oRv32Z?DlV8 zb<*RJmS>LXvKt#Rq=KFxctsB%`YD87{>mQR?nR{gM6?^COp)YmUlL~5%;MFradpY^^rbJ9Dv@=?M z#yXEMwIVRSJ49Fs3Z*B7G+)I*z_HVYwMr;Nf7rrtY8$03_ap-JC+g?O!7qcn&ZmUo zWF_-G{9~u{s=xRPk-#y$HMPbX03|Y&dI84!7DWf9-|ASe4u=h2$Fg6g2zr8Jo)(Io z`Ca?lp09EHbg@*RJbfnpM=x`6GoG?EtEJLnqIWx22(9bs%m-*DsJ)%^rDSt$6=DS~ z6!4BgZMEa`f#t30yyK01H98?e@aU__sgj3KN^>?a=Td@oL9nw)UE}>fe#vo1v3+A+ z^v-Ere|v5Oc%rx&!nT&SKmFe{{gU=dnp?JHOcgxG}>dySmDtNjpsC9-Y8z&R4qVBJNG9ItVb z%~1E(NWU02xmy7rwV|iTdhMxGKd>_%3tIR0xr$j!R|?ZqVWal*RY#NZ37b*{R)th0 zYqXT{u(e$eyG_y~ux!-Qp!}!Oxttm}Tr)O8M#d$0Mo!#Od-4K))HiKwQF%1%jew-kggNV#gWh2oFYgUh`3cxoL&<-%EDX^gPs z2G79h5u$ddl;hr*(aZFG{5Dz9%L)O3RHpo=v*+bQ4<$OQGCqLbA?g@(D)&giK@;;% zuGGn7F|dP6u>^L0$;Ff*%{RjmTGx&e46Y@cc~mbomGWEaF`G3YR9upX$;RC4`t=Ri z*WMYeQHj9(Pn11vZRF$`#fgdF7ky;gUpir{Fo9o;%d~L8(EPnWg(QCq%C!`Yz8SGhbincC@|fNpRP~^Dw?tX zicr_)Y2WM*I3`@lHoTPltb%h)eGcr9xk3bFvfsHZsQ(f>YZ*yG(y$@9gu#-rVF}Ss zab<#4n2)!Q2hzRJNZlTms)XFu_=RkRXh~gWPy=X^nlL@Zb3IUx#$OY zN27`B*#h({e9(Exr2Esu?g5^0eg|UZSA>vd9WLlwi;wmE~+iF46HCMLQ81O3K5aV(iAM393?as<2|P^Uk>`Ee6_*L4a<^C)A?$mL|+z?_yjLp#O0QmC5J z@Tw@JpoygSo}-~I*>aLlBZhrPHYCRSkoh$8Q)h}Rm%kPhQpnIaWvbB%BK2Bjq6{m& zvADx+J>s6V!z!T?qNKY+%Bb<-YQ^qYOVja);RAU1wBf!jl1a)oQhLCE6loGhT#>!5?N1qmu zGuWyh-ro&=#1Vg*`2AJAJV3Xjsi)jduAk~adi71{I+>F&w<(`Xk%g`V1LLaNKXA(#R_wN96uxjT$?C=!BwDWG|N&+{2AZL zSjl+EB5$oxc%{E*i~b4xTbt`HsLI+v)NS`JV%<`2*^AltYqDF?$FX1|)q8P|pB%>X zAKhY5+gG0R(d(5N8?czt%Fum~`$W=>y<#kOFv>k=cK>lLH2eJrlYy2X`bEnZ7-tkN zo(bvlHcUC+TZgrTIFN|&%VCj=bO}ZURe$erlSw0H5%CncZ^g(gYn>>Yj^ZNUxt9GQ{GwvKBu80#D|p4lW?RqX0iT_}!<#T* z=`$#9;In<=bg6@5dseM*lLXZ&dZ;Ze$uZ>7;?3kA!<^wZB%j7xQ)$8<{7eh_26j~? zMqT}MA@943mUBH&bvJSn-&|`((eLEz2L8m)<=0p~K>wzbd!-it8sr(?KiX+0LQ+o- z{hO-5W8RUwNk=Qv)Qadd+7YIahzS^_a#t=m9u11nPMINHXb-D7wM|ebqEL|jW>uol z`C@zW!TAB!3eJ>*_eAt_C*QU=$S9vV-xtpGqSx7Q2kDxS9zzzz$)|V+-*87gFeEoy zHK|l%_sBkak`w^rc zwvv<-HD67vX;*GRcb0pkI(DpVWWQe$b+1)afWziUtT>edB;=xYZ-ts-j2X!(NnB-0 z@bd+YRVw%Bn|Z&WrdVM!u3xva1oIvTns;nv>hO*Fm-oMEwr0u$5HvCjgWg!>$ zH$Kv`o3dBiNfy6uy_4dHEiY47`=#Fl&5uS5F9(lg(^({DacLj7->O9V&~!Z>Y@O7? zUhtUC`);U|X*(`(PNc@^a)GJ{a&(ZAzgrFoE_JRlXP$?^lugmu1l6u9aTW-6S+eNr zpz=7Ih0S8?-;PK4RZ2;qK||JT?f2nCzk{N0)aFj|sV@x)eMlIuM;`nNMo3l%GKr4b zaLX;6e7ad=9$-iGlg|+FkV34QRE4hvq$go8yzHXl$eC)sz@T&RItfE>DE=z(fzS=H zLlshdHF0#0HYO3$ZJ+qyxVM?0(b?Ik9r_J20sH7OFcDzfzXZv&n6#tX4=#Co;G{XGS4Yr6k{ zi%1-Tj&VbnhzVCD@!@1~7$2XEH8r@Z>rW)hg@mwsRB|OxJ$vfz3DC@H?Lr7d-x5u=e3BbGzJrB%IEOK=i z&n6ox74T`TLPNKU8jQXMZ~{UlqW|s3e+c>CL=gNt|3{MsaNwPPZv_8T_n%e#2ciJL Fe*kb&8JYk9 diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/for-all.sol-0.4.10-compact.zip deleted file mode 100644 index 464634eae9647cd7aa8c4590118b199bdc1b30cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3635 zcmaji&Jj0T_Q0$WFQ^V zT~hb=-1ql$&v|j)oPXe}r;UrJ1b70V0F-*U8;&%Z?xv9g0Fz+=02=@Ruy^wmvT<<{ z_HuKvvh#O$^Ypf|@q{@#`PvCPd%3w1+WA`XF8OT7(UEHCN(hv~ z5>fs_Sq8sV!ja+{2sIxd_tD2B!L?vf8G*P^@f1m3Io&!bqc3(2nWv_^h z(J;0Msd7P=0=}SSkhZlH9gh!IvyiOp^)__eO3?A;`xg%ddTGyP3d_(-O(zC0wRzVB zd;G*`gC+Pskqw-~d(s5t#W&$PCtgn4)0%}-lYYD-zE7dbKK(-qan_tX+T&-|_3TuN!RZ@=8ir8_RXzUNJ*fm4pe9&&j)u0dlJ(Nkm zg6z!zZ}Y9x9aph}``LB-8guLyIbKt)!>?yR&uHZyz%Ya&eGuDm{(+aRUPSr0^};!Z znloeJj`1;?G5O(%pQf@N#Nk5w=zTpttmoUboJ6>hY6kD;XF`ha5dcMoh}aCkrN1Nn zq~wixIsG4&ED6G8_)UY}EosSimjypURE1Kc_AD#nxLqqzGR~)NHYUL?`Zj?@2cId7 z1XrL&e^g>)^V?dOWh{4`G5>^*tCUYHK{eqWYoZ{1!k{dR!u)p7k{We6{XjRfN2k&Dx*oW!-OzOqK%+dV^ zpX{Of3Mv*a>(72VuDwg7okJr@Xs={ZncE0B0;<~I>wxwP`!}dkG)T^+xXX&)71_=` zh?s@R0L4NDv#R+pe8#e;iDK4*ht-H9;NI$3~9J~bBQBZZNI$8ADg_w7Qh3EA* z8Z4cWn&-Ws^lIH_4xurl82iurmbxyD&pl8ZIf$|X#q*HmN)Wq4JRqaug!1NovhI z7E|_p1IwvH(jvGvZZ=OV_0jmge7@8CatJY7^FVfLmSCQL#A*Cv&P;$`4v+l>)08pG zQ4LYN@4?H)H4WS}o5q30bFA%~DA^bfD)42IB9;`3+?-?AWM=73lbueoymDW9D&Hi6 zu`V7QfnGT`Bm zrh&X?ao;~^Vo3KIG47xx*05tKhV%OgecI`-XGrV(FJfVzLtKDgjXbAV-^RM>F}l|3 zKX1KD@`wV@2N_=AG|TprUacci`k+N#El%l%mid1I*|ww#(;P_=orHt(Tu-WWn?vHf zm12M5`3vD?8_`D)pLd-luh*JRl5vNxzT0Gn{&SROn8KL+o#t_3wYIKfeXBAzGQw!P z0oJEmQe#kA1F@?VbPrl$q;P=1udo?Kd8G{WNwX@cf-_>}_lMeGGoa_LpV)D}ct~I7 zCZkG?W6~4LiY$CAF_3OzKy65Z?Nyn2=8g3&5l zD~;TRsLee?X7z<|5+MTN42rk-DJ%)$zTVDHUw1R&o&F~W@)S)l#R`biDFV^jgs{Fg^b)X`h)d>-1O zqiR!bBlIflh_%1>zgh!Q1WPcw9|c}eH8X7wbRqvv|IrZ82noO%6@4^vF=2X{Uqj}< zj243T7^FE$zkc1MyDVXIM;b}@_80se6^}c!Gm41_kTH|Ut1cW9$>gs)0Y3gT2mhI8 zYwcn&-*NS(@9uID#yaZ5zKy3jGI=<*mAjtl_XGcFTWZ1r~@cSbAe=df)f6^4S+7cp6?gSuqzW@pek zrSs$ApPr6rd+<v1pvzy zqRj||qw)e#GNx30ZGSA~Z+?1~kRk%VW_K;f zQsgc{x%@ecc1!?O|EK@Zy9}*2?B}Ig2J%YHy@WZZ7}qV!lf`Fs#uw)&;!lkBWld2L z0+Vo~4^9rPyx?Ssme0nQJ4n77cX<;qaNd*CjvVGhJq}q>vFuZ#v_(NJXkS-K3^O7P zQR4d>lvD!DHJpRGv9#BQzma9JJkhCaXi<{gtcyO}BbAb?E8CNkZ4-cCdPTTTdaeGD zkZ2E9I9E7Q3C7v1jDZ?YAuzsiIz_(^&FkS%F#LXMH1+PHOtf><<6aAvDDR^_BQ^}7z;Z>$!rn2xa6An!7KpZF{ zzoM_?r(|^;wh=gUQ|)Pp9tUpk9kM_CVh{Ok?!xyi5cdkIn(|DjOkvP5{zYp#WH+#= zUDxnCQXQy?>evDQ6d@_M=+lLSHS0EgbiUw!jb~K=B0;tRg|Rm&I!gwf1J$WPT0&8I zLzy8B7rnf+2*%-PWXz(9pJS?8#*^^D&5jgDA91}$Ni)rfxykhh!syt9J>}ey4dL07 zyel&!oFXLsD@UWeI(VVor!9Bpz-OfU)e)XYv0_2c)OdOULjK=n?yBJx*Ai=hoA0flZu;!CK z#fmPilBeO)Z6)3!1>K>?(!>s^fC@hpgyH$y7u8N%FlPz!8|=H(HyMwSRlsXZ*oqSn*MZi+3qGW)6OzL){w>v#7upD*(sLOd#XB znaO{(@K}$kQR0x51HvzZlLynBl^BH&J=vB#GJi-e>var3FpUJ%{w_v8K)| z&qRvsIim!*lnLp0Z55yAcZbpxLKaCz@u=1)p0t6Ts#kP=JQ^BzD9gqI(QVs_#Cft% zliXF?68m3k$UNTD1qDU!_U$J#jM3_$3poQxn>sA$gEIKwWI;)}5*X_Hk#w)1bHg^% zM)4&Z+A0q^$-g;Ug8;YFIE79PH~lAVyp63^RN7==IBltoTg<|7zE_J6$1RUseFdWo&i4I6vQL|djKE?08ma&c9Xf0@vE2`Yg3{r?)UcK z@8wEJHM_4O*htkS*Sz~Z0@ZFqggK#k88g~zDFDYh>?HsESZ;i9X^`($Luqk~)}<9u z#oX_A_q0I4aw28HW!V~okW}D^c!34aaS4i85mBdg)rXt(g3r}I;-QpCk7~7Wm;~O> zHTNF1|J0h379#n$Uefwt@)u4{9iw(QBYsPR2pjG{0|!J0fv|Wv(t}(^Yr~IO5Zst= zuZM*SK}D7N_3EpBvCkLC?SbAb-a#v7HQsYY3`eC2T6jJqK9A;8@KgS)rF)9k^ZQOk zz{G=B-z7?8I7$01)__6aIy>nAQY}vmOt*CFvGh6&#@dIku%IKXiQx=;^TZWyC8R1R za!-l+jq`IEJ)-=~A`S3&2p648rTSjz)(EG}mV)b^dj5nUsl?WBaEVrl7eM1$4{8Fd+UXSk~1GD$Hg3wC?{X1h(HXFUT zh#<7XdXsKOIQTe!=R&!XWWrq_^6-oGl3ZvkQF#=-n@g@JjL11jn zh+xC=8rK-VC||U%p!_pkjt-z>8R~Y}5Alguhk))_Tbl~ymNv!-aTHg=e!k69iOq&N zhT^6ggZ$#<35_k?tyJQzwbYlBzUNt#AXo^9y3>U!ol8f+NuA81fp8(;xYm>8uS;o% z6UZ(T;@dywsg|g_Jh7MwDTM00f#TakaL0y~AVZ2Uw@rw)CulohMYAc$w+*`B9_}PN zoQ+T-9pReGsV=YmXZn@(4D$Jg!&b0EAfp)@cN&?#nS-U>f7-Z|~O`S)csyQh~0`++MZ@Ey{Ce*^8AUXCWZs%>}JRQv2EsK41tjUBo@LQtKW z3ghEUcyxPjkTE~PiP(m;>unsmPGVK?93K=(msk;p#uHDG5!10Povt%m<$y@y`vFYJ zH6oB-XZq@296?}>>TzoC3Ddq`i5hxO{^0D` ?%D>Xc%Pfdyvk<+XZ*;tM^A-Y~= zcFGOnuW+jkQB$f=qs(t2b|mCyy4b9Dg&U?m(lzN62y{oS{YtKOwAuQkhu)(v+QIt6+a9qcPgZ{k8z57a6?Y9Ji^CVj_%Bu8LadEmc)7?Ny9V1 zrtnj8RJj?ZYf9{s%Q}z5(MnkDJfKs4AbgnmT!-&m7%WB@`+?m=?%rl!Sp^k3q4GQ*Bz}Ih)@)CBFV3~uyimG zY@R2m`>4&QBU>ScD#4`;{0zF;>-O;^k_?i!n8a(HkSJT(~d!-lT=P$sorXV0c-*%_)h zsaE4p?KSjUB~y5W#11O_(P)u^bd>R|-@(~sAOBv|tUwsd{QKvM)Fn+$nfH@+LgQQB zwT*|UoH4shN9A@AK-iK%L(7+2 zvn;dO?i=;1Yc=Z#I)KZpe3T?GQ6~8O{Z|fA=%@WLi0^tRD3W&KOKcB|=ii6FyLpSO z)c-Rw(wlL-We?#e?8GCb>j)3_W*UKy?9V~eq&yFs1z4^0zKaHCB@CXxxjU_~f+Eb% zXQyObOG0yT*SpVi811?F9wqjrGYK4&)a{g>PWaf`4cLJ_awQijyj8L8He# zXmr|M+pySAx&HN&#iKLz^!nBTdqJ}XukyU!^(T0pEJ+U-8XGgdbhQgSLal7-)&D`J zUl+Su%cQ3J#Mn)Io} zs=c$|b5ZyV_YdcgGu|sw$sUZzvc!?)*Q_hnmz4Qiu`*~&gZq2;`o`N@ z{u31@ho~5#%o_?92gdEs#%a~}{uG|v+-4XKS$5^Z&7h~Y9wH{liW^?qmFNNE*G#Vl zq`4!}w#$`SqNjyX*B08};l)18hYv*^fC1)^v0LQ36@Etm*SkTg@tgq+`;3hmn|t>0 zuiu(Ho3rD$7Sh$K^UBB)KO@&&>2!kGV+EDu8yM()ihu>EGbB9m?M72Ujjh<2~s0qP8}aL#R0HUEnNDMJ1Qi zEQIA0(IJG>3It8FmGzPA7clad6O?SX4oo5T&wqboxM|b_p$=5@x?g7Ws~QaOC#tUh z%eE~bnRQz-K~_B`*+h&k97|xVFZlR|j+K3u@Pfpq)EZQK<5>U%5fqCBLs`3*q|YGJ zbHuPEay0{=)ZzHw7b&jOk(s_K63E?IhG|(WJ8$0{ z=Bgw3?%bA~vUC&Im{nVN*K3OQx56hcb|ooy(Jk8Mq!(UMloj`b)D#Tj8>&?0-*c&VsR4v0Nigxd zAIo6@ZUQ{6oGhzIXvX6cn(q$`O5+m=deY|%Se{MRhMDZe_EW!{@p>s1)2?)vQ+wcO qVn9HsO7!2w?5~^se_{y!ga4svCI%#=|Ctf|t@KL7#%4gl@7WLA2lTk07Q007<7kr+vTAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH2EO6%QV=p@^myi4j1ve<2&DswP}YHe zN4~?#(KrK9Me3=5y%kz&;$zij-^4`5-GnZ1DhRK}-xqEM__KUkC7brX-RB_*2!g7X z*8Shi1mqmkF8y_XCMvC~+Jtp7Jp0J2)(2$)JA!smA{U9tJEGr@eRJj8b0cn6%;rL` z;Nuz}vH?PI5?4^(z@|t{S%rmR&?xNkAY>C9Bjj+jK)XTe@ewr3_%C(PCgqxsFwcS&t&iG;L}5YLSnYTUa(*%;|zrSa7UB` zw+Vb%sugSt1qntVpfxJy5xqY4W8%Lb1LUX=Rjn7V3!a@qHDn~Q&DB`-)A@ZWmcyCA zA4k=cfNR@Z$}j6G-@gusOt)Iq8Rci#Qo&gsq7^r$`K8Dl1G|LcJ$V{-!RL@uFcjM6IxnM z2G6(R;T7&{g`ibXZP@DsT|omjq1DRd9L?h1J|KU8R&<*$9Y`Iz2TJyyA%LCP^O{yU4pPu|qb_!B{?v(cYr*Jtfhr77i$<9QsdqG-?C-(m&BHBc?+Y_4FDN+sZ6 z^e)MNwWN7s$4tX*7EsiFwk{LBGHEXPsAIg{Z83#sB{Om^_Uwj2A)eBuL4AM}@aP1d z2;QF5bUeH{3L*3QW`M*knG)a^g*dl$P%ZORMSQmXge7S~dXyK+PNq`d)0Tq1wZXvK zy5;zJH57A%pUW(Q(u}*3JkWN&T4lIaUM|ajY_D;=0yB-}r!Q&&-o$--#H&q3VFf>u&|PW{V6lGNuK?b8_M%#w z3i~sFiJn+2)-~6~o)=d06NTJUWaqDjA`q-#t3_-)4XH`Y>;DCVcUn=uL=4}ZI-pyB zTc;T~?2I6+psGpUKcmp(6syZtDPyY3V4-w?d>TUTE;4D8+t`6*@T5q{@2uc}I9}eh zGL%l$N*~)H2IC=?*!I)eW6Z|h*pn1nb`2wBLGR-Sk2KjQOBb0+`9fibA3Oq5#Q%mnyM6Us-QQOn9@ai<*Q(!XHYO^-_kkZCE4~ z35Ty2QsU6ypO0w2ZBoV5bBx0M7lRJ^Hl9wB&yN<3SgU1{vF`s+UXN}LmU$|b->hTG zu~E~`^4m(V(y{S{If5&KItlmsL!=53rlH5P?Y{*0JfpfcmOr{#0iw9l7&|y6gkUVJtirEmoTaFD;|2e-JtzxDd z+?ds79}C$eiM)1^V0~QpwvEERl$i#FaO04)H#1*Ht2fBD7~AZamkZXQ4Bv%{X?Gyz zix`U+Bx3K)9N4iCG zlD?Cogw}z4QYC(WXwTq`Nssvbx0Qar-J;V?u97pB1Oe%vvynFq##D91jp}a(C)Jl^ zs2Cmh1k}^**xo{aGFL-+$iLOHyg;2rHiT0awJ2HSb4~??;3@%=&Yew>Pb_)S?Q(s- zpGmUm2>F{Q{el*ujyPTbDma%~5PzLHZeu5BvW!)l?|tEanZ+yrNIE|qbnhAMgT@GG z!-L@u8%OXM)e_8;b)zOgn zz&;1zag>@vL8F~jh->N|SC-QGRKA6_AutZdLEGjbMjKH}B@A`BJeX6ny&wEpVy#@#p+K^jW`eBDSYYHqZ(Dfx|y%;qS6LK~qrXVuxGP=Or|kgTm?;p~W1vk{V5y(J8&sPE;JH+}2x>DhiYn!sP2#D#y1PUsS>10tI!3EWpbZX_)GaDLTZE0xBjYvJe-bJOlkOO{wvXe^@ zm(efV!MUYb(h89ffGbntj2qK5SWVZm`nY9@nT`JQf?c0MnG=#8V2)M?DV7iWr2 z;qcTUMJRzB5q=@zFqlmn`}>~~O6ZyjGeiM@{z7>L1hF_!t_5fECu1xi!_I}L2Dq@X z&sOSDJI~Q}5DV>myq91;xt@iN`@Vz6`Yj`SEM~b0&q}LM@H_aAQ0ZHnkO*{7Edr-W z@yKXp?pY8wF2Qd5Tm3)+eJ9i(FK)IYw0e#371l31>4|J(1Z@}A30Je>|36V!1UQ3# zJl7f7xpbhI0oEI7`Urv_bIHgyn79n|D*dwz&QNs!!74>kt}{gzj9_~uQu0V#y4H1}v&OK`5CkA#pn9KH>IDxc z*E9c1sn?(rdw#zqLr)4Y{A$ByZ(llP0*tg;Bkf?V>PLAvS+^@Y!hi=5f??r*LO-i} zGUHz)vwS%8meHS5!LfD_m+=K3)r5WGUFFQ|RIWgT{{r&ZWoXSKOA8h2H0Q<=74Sf1 zhSC{HVDn??}qxNIhg>~om`l&2euT7ra}}|G*SlV_B4p#i~tF0 zTPTePXy6D?ki^^Il7Ky-+X0V%9(~)RuYNKPqmzfAMkB`ctMBJG|5)V!b(qM}U_@*} z76-`A8VWl64cl$4%Z!1%_`CVw&%Z=2#z0QsPVnTf?EzEN66V_wYye5#XwSD~LFs9}vU z#0cSj3|!Ce)18fJ@L1^sK}^T(wzdmzTKk(pDT>`!olx(sw(6H6FMvKFBLm`5CQ&;Q zU@;{IZHU5j3jaua!xN;6!wa%4;(PP}`|8Y{+-PS=xHk2`_A(~{sWSq-x5riqM+mzb zBi%>yj5@E37yB-|gq34|;Jy{dl60uB>t*>VgT4yd%KC@$bY)Q(B(D2t#k}&R`)Ldk zLH2k&A3(u8#n^Z=)HzSfWmcl>PCd!@24ZD(`-KOq3eb$wCX&b#i+FGZnDChOw~$uf zDKYy}zGu4Bl@<0PogQaP&=7@d%4fN^&E8g|?JJ^I&%KB4@*v57w>Aaea66ad^_zSc z_p!5t)zERzupK+lsF~91bS&0WOd~lA&71mSb1mW&Q1f}1u*RF<8a~`=4G?)VQ1>@s zhYOakGaWFLQEpisgT#ofnDGF*;{lcC#mE9m9nm%FQQmnZJV5O5D3eZO-N^*gmquT) z$5mYqbn>RDjy79=l?JHuHCJ`F(cncKN_~)#R;>{N)DUG?D=XxTMy-QgETWKkP?Gda z4%6b3KGAmnON(4LK0z#7wt{Rg^qIHk3eI#J-#%3q&ps8R9W(nLV{SD0UlskMJ$7y_ zmi?q-LoHPi44^;8n$QBs;?oHAFncH)|17L0k+tfrhq3X0wDqwds+89``Om)j&9X5o z?kg?OtPsB?@@@?|WZ$V#qXR=v#bqbz8%nW8{yoAilCH~kZrQ@H_SeP=kYQ3vg-ek}<@xhgs&o?~I{Rlq z)lUuw#XgUJxI2FjoXH+->J7jq)tqq2Y6g-Ti7}CEaph3fxsh~Uu`-fbueX}3m!U42 zt$dWJs|2Vwg9Z0~nS=j=Lb$=C2Yu|mDB!gPrngfld4@~nfu~j?L|Y+-vAxjf@&_+A z_+4Mxv6n0!Fs%oVHxWm+xm07e4m1VqswI;rB);r_eEVq(>N79>5?>+`_c%ogcB{uq zl{tci;xN&xR<{bycYRSDfs!GAVltuCoJ^rz$NM$$0OHWq5pSyZDF)UkvnO#C;>@0v zAIsLVDT}DFKAw)ZQ~hliEDJIK5R)(x9l_oTW3wJ}AJ9dR&cYz$kMJWZR~drj?^#vS zwLuAgNQ-`{rR)>I!->$FB;4&7?qPhgy?k3QXjkO!z(qGxf*_sV52WL-@%r`<90foU z7j^_Ij|Z`~s***Triw^O;g_@{+zIWS8aFZtkx`kxXCJgw+)a}Pm~Su~JUsMa!gHV( zxS;svu+xAFoE`9g8@^y_nX?j3FBTGbq7v0FX>A0g#$qaG2o05u8|K%56-B3#b l0zU&k00ICG0PVG8R(hmc>KPCK0NvA*iVs5uRuBLH0070M3LgLf delta 3962 zcmV-=4~6i#A=4ilP)h>@KL7#%4gjZfa8%wVN|!Sa0048o001A8fe<2*JtTi8uM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2tNDeAL-x|eeYE-3Tm3%Zh zpOiz#JdGL4Etymx@13OtIE$=B`o#J>krNa@Ofn}7KU{-{Bv<| zy#?uC^DKb^Vh0Z;q@}nvO9g*mCvkIZe{KLj1z(j3GxxnGRm7C=6#Z=ozW#tZ^l|l2 z;Z6wxRbU^J((4k}9JH0pTFfIakAXt@_#x&sBBGCA{~t7zM)1n@$?YXLI1^e_=~8Ml z0aFO}9b_%&q{0X*n+bILh!F~wna&Krj@N>+#o_Acfx(6m{{s@(}P zCG7Zw+>QNjoUhs-L;&fmfC=DNT-r#6E5P%v+nxZb4`AJFbH3CO?XhaBp0+U~fPt!q zI_49FR;olauUxcKz=VIL*p=!;9`D9j)(^7s*e`j3@RVgm{nH%AB==X6+cM9q@n3=O zH#9Dt%0PSYv5qto>jg2}klu#yh4&GfMQ0;%BQAb9qe9w0O3SI$%dKCcn?u5D>*B^Ye1m1IG@>(KN0)j0Q`) zFg(jaJ1-89t`Gg)vodOwDR29a*K}3#H-&QqyHj+>Vd0dh)x7qYuiXIqKwTFCr7kK< zVr&M^`P=d(AVq)e-?E-a7*>)MVJd?iz$Wmcy9EU$!(;w@V=BSZVW2VQfRhbRTfl50 z=gT9<+z6+dI5GS_@Y+Z;ETsl{I0M+Ay*Exh01ZzYloK2)!qgbaV zM!MxEN}-CLo-3qGhP+ZPPc$ju^C*L<1u~(yC!2$e-bHn%B0vk>{Ocy7fB3Xpn!>X3aHe^^ZLWAl+o--h(e5r9umopB-{S2ruMQ*A3mP{{Ij)aB01xGmIpQG zjpZ>`8iz8WM>LLxS!G(ltBG(z@BJ(juT~U-<7a1gaKLWxoh zOeU#BU-J-%EXn(F`(kRizVHK7E7Um)*(9o{Fk24XQ{0QsncX^5HSbII?=f#a@-w;E zWq^N|D%f~!J%}NBplK4&w>aC;Eec?r%Iytk71PXFX146mhy;gxfR9M=)O{+xIppYk zZ6@n%tBMKRN0<0S8k3Q86K}+#3VO^$+?E(j^b~xg=5UIR;ef|SyHXoa6{Xj9%>@p8 zXpJt$q;vZFXGNJO#)TXU0ZeOiNwd&mRX~4#Gp+n#v1#ZCXa!{9gY7`ggTj|!6Dt^? z*kri69drHUT-antAKjz8Ql%VqI>WlO(Sm*#E!g)kZipZ?nTNF2O1Xxo*wVFFuwc1# zfD_EmIm8a57M~XRD)+>JnxdboXjG6!Cu&6Mmp)U2jtV6Y# ztdMXZS?7&(zF)>A5(=?g5m5_@HXn`Oz(3Ku+ybp##PcNb z)31q8HejZG_YtkkO^Lk)g3oYwsJMU7DK)q^cHqrOvKPh(h5PwXZ_hNAZASYa0;qB^ zC^LZPU^T^F@&LpjHf;TZSoIE(7jz|`eErBQBVE~{WEFv(^>ysScf+t$m@=UeeB@Uz z_u@yW$HpP7o*7!rK8M-!rzE)pAbm5k_XIAw^x5}f3SqFA@34y#eAA`k5Mh75>fNtg z-g?_Hg76>=n|A`UHXQ!1*r7{)5=^z7ndAE@_2pyDYQ-5pohq73Y%UMhkN0~Se`SpHbgs*hU#PdzkBs{fiQRxPoXJ9!I?ac#y|6Wf`Iy$ zH`UDh)WD(JAFasc1c0<5lDOovs3^elf@A1?(&qyC0`ZL_CPtk9 zWe1+2A)dn{i`i(OhH znRT|v!^BR~HUT5sd$ctoFqFroByKpIU>;PVn`<`G1GN{` zKH4^J=nsGM+KJVb*l~78h|BoPhamc}Zjtu0NPMc>g~*9iy7W3!Mg;uh^~&U{TNrT? zJQ~td0>;cdpd&8)Owm8BmY+=az79zjS20w3c6f3gQ>rprkve--9q)eXPtq12tsueq z3J+!YE@)9uMD?iJoj`O1ZNSAT9JzY?=Vv+IpK*TzH`Y~7$9fVM)pWK>;==iF_YT8k zpPqP8jR*Fv1bHP_z?1v=Ig!4UTw+7keO@kC5g^vII`d(v<==6a`Dab*!5~- zar}Q36s=X2g@f8>@Bl*A9>T{Kx1R3pxFo|Q?*_dJ zxl#$3LL3MDO%}Z^l|JW~8wd;HP=Wb2U1wNp;*GWzah+Dd{#Gt%Z*en_$qzpS)=qRC zIQMXGR^!gNk*Vv%ZfWs0+#B#NXuvr{^b~(6T5l-4UVgcko9UgTBZLxwae72=WpAWg zJW=PbyJzV%aZ=Fd-T zQ;?JLaa)8t``L$~RnFF%kN@Fa0y>CkKmajvwDn4`Ne@!L(;SE=TxEk%JeZy=u{VE) zGX)wl*Dh~ni5;+Yj%$~%05{!0g~k~g!#ilXNuRNZNON;{MCgw%IB#OGZ1(yzk@nJ! zXsVlDtVD0s=)==>W_+OlDylWOEZZ?%c)z`({#SLwun+oF$NlL?0_#(4>MVg#zoEDq zCL|NA!c6lB3esPrJk^zA|Cp)!Orn3IRab|5GS)Qwhj@i!V~iLNOY#$yT`8)yXyVn5 zUaDA^)XIl>R@7I15Az{S_yC2OjT7(;Hll4u3S3kncm3xTjc@>Sg?0Am3ZGXvEj9CT zLUevxsVu$?_JneGs%g2cswwYE!{Bv0HEa~35cd`{#z@|5b+80F-5F$gYR7-HNkhPs z{8le_-kh(f$aEFhYM1CO^AN2v6CTmo`T79xIP_!LN=`rh(M&WEecH$X)J71`G6cdr zwK7O5D*)q`?bZ8y6_?SGOOY9s@-1bxw^P@$;bJ6vGKSGY2bg?U>s|>rzqLX{EPDIEVUm9g`acEK0OJ4a$QF1`B_jbgm>ZqYsDmZibtKDR;5o0^-dBoIHqL`-OF<@l~}GFDJu* z2ku!;dU?x2FiNd$W?21^K-EUj@=W6YTCRl6wvE|Chk&*~f!i73#Z3rrD_&*23T(@P zDy$VxC(MLLFy^R1@aBIAEm&w>;XjsPxoX13pBP*EH`NX&&Z{qP)h*bIjFf;h42|?X z=f2-{_kQ@+UTgn>Pe&aKTONQ3AO;k9xr6aB->~fx0RX~L000vJ0I+lO6tILq1ijoK zA8h^I-8{WNSbADJIQrTOI(fOd;$h}gh_{%I+`qhE-LJ@!y@(&+-x8V z0Pj|STdwfK0S3e$B-9XP;z`HRunLwHdacoro*8@)n=t6d45qZq#21@2-XB--q41!C za|d^>2$!~R$%P$f=^2WN2;hd0NL{c^(`Hfj2jIcslaisU@;TLyZ{eg-$OSifiB^$s zdfUOJLQ}rQE(Wrv=-R_y``iG zIUiMEjWckHkj}^~F-p|KJA#)ZRiK%??W7Zg)6R~+6`OG6-djeGp9`;;@2BV2Vj;^{ zp)`QqE!IV5?G$lp0(L+AM}av4B!y=A;Qd{A>HS;b)no@gKyY;wX@1O~{Gd-k42(@w ze&;x5GoKmoQhY?11~q3M#Q5_CeLJ}cH={j*A5Czm@du}+D=$n?Fe&6B6EKM_5~cRK zbbg=i8+Xq!L@CdbdM8&$O24w`7(TZ1Be<*`v(UsSdIPtLo(uY1hqbA4BK+yAn}(_E z1QW*OB*K~3|pNw&2EK~SR#)-3$M^hWcH50f<4Ue-*j z(nt#~J%LFs7&~>P zO(vv+YemTnoq+GgYN&34s*paMKt4v)u-g-zL|J#9?K6mG@-S^+jM+_bFzeftF-d1A)1YX-G_Qt{1Eu{ zeGSceDAdrqUUwG#I$$q-BS&0(+~Sh#O4+D(3*C4DRe97>d_HD$v(J3BuAs}`m%&iC zTj)$aawjH0{tpxEB=rQpQ@2+~7*_s90ry>n+0s#JU|+66$Paht1RCM5q8!)8-6ld zEo(!gURF#d{Jlda(boA5HBJ{|t7$r&oqTwX^6q4$R?Mig2Kq=c-%V$>0&F{N=6SZ4 znXX9vbT#P@WZn7M5=k@D%h_;7%llnlrg8fj$Q~34(__ zPD~yj;_9x{X)cxyzxCR3PNSBf7OU=`z^VJ+inH0jAn=_kJ&%n>%IHV{j3G4-f2gl} zNZ*)>z{kh(B~*`8-ODrz-O^u?VAyJ3k@x3KH-!R0m=}l)Q)^%|UJWPdd!v zz_y!kwX@r;j(2OH=#OfTQN5ppvcuV27~1PdH{NB8lX7c+A*eTWtpfa^pBcX~Gwfu< zr}olsWw&-*IOg^RWZN*~Vu!rc9YH)&XV_2{*f&eHE62pEnNwtG+V)sI>(_qcS8Y%5pRRhui4%Pc~@cCVrRyXMPd<_D8>%oiS$BUIGIUeqw=O-VBcvf24 zgNcT!SJglx*lUW2CAU}PUbvFUABwlAYJteMCj*B4@M`MV1(tMo2)ro1bCN?(SNJUf z9DLulnX-gP<%pD97%xYWS9cNT@_4WgN0Omlv?iRbCnODJoO&|uiP!7ki{`uEilLsz zG`#W;`wUT-&$`o(z1!Oy$K_WJ2`J$3?7+0Dnu)977GpPFOfZ{rh z!YyGb$&zDV_Rm?J;?qM*(hO3u`635*Ih7DO*jG^_R(Tvn9yYYGMuE6p`W2bahBN6{ z)2M3?Eu>OXEU1V+dMM5)#J*Q-*(MC@0~4wlZHnH?G5N*VQeTAJzU!`N2uqo943lvM z6QlVLsUi8%Ik}}wM!M579IJ83z5PO=c*1>i1~PN|)+-!$YvexMgO4|TZ(Y27EMC%b zzMkFo?_P=TMC?Vy^#|lcOl+-;k$@~IJ|?f4+;s|*u0RjwQc z3UDQpeI9SM%M>*WmIdxMKhFxXrdjeRHJfUG}(%{n(4CYc6TK) z>6dG`iHn6|ZTH_zo(xIwxiT7bWyfl-qM4x)1Lp2sJXW-vYI#1Fo>4I}DuUOrj)i~Z zq>I4wt|bUvOaqv@`-0OAWhl+aZKzt=RMTZKA^am*WhZx`P8appLHRAi);nzvry5uT zCu>sF0wu-bRc-ql*`SdSVOrz&CJs90Y5uHo!(#TcY*m*Qgh#w}-*r>elci9O9d=Mr zZ@3B0wCqrd3!L2w)zo_gC|l&#*E{xY>(&DW2 z`q$wB@gpPtfXX{!9_o!UrXih6pQ72=L3BcSGF)c%p=0^EO9f@+fAGt3hx#Ot(UFZF z95|LPRF;+)AhX1 z>fciNZFuC=wXZ_Ee#bini%gr4iE!UZ3mg1G9fLR%LHBEby9FlvUf#JV_Z^nK6aAbOY3iGX$E7n zuf9;j@fmv|F|pN4c?KoXXPVbvPO0ziU1=ii8RwvN_wUNTpAs#oxiELwD6%rnTL?J( z=_8o+6Z3RLp0Zp~5cn@+h0x(l%(~g0b{A<^DZj^1Q@WdX2}%4*%#5z#8P~JsftSG^{qJT6O}w0883Gd&1ZP~)?I7wUYk@<5k7(2 zAj2W(9`fT48m2y6j@dMyyi-3T&hUe)yy7Wt>Be5Wj;C)Yy} z_p%veCe1smD8!Wg+hF7(VBlit-LTf!QTDi0n*)dM%H=5HO)ZNx^zpMU?&z{qCG!t% zaceXPgVi01iWTLhZK-x5j=Yaj{W}X`%u`sZBJp$q{)*OJP!;f&4R)`>g++8xD8#fx z(m7P~A@e6>+2)LYP5cIR8UA%PJt=hdmNHz>w)LR$mk_@+EvZx(_RAfzO3X|W=U`Xj zYtEBZXeP2rrH*KQ>@=s)o*-z?g9!BR%jtR#CJBs!X(r+NWRNoom9=@)oOori{dn5- zcDfh~I??azoK+Q8@0qi%cBAT)_*tUdBjk3Maf&B<$(QmYNhXbirR?$3tN6(HiSlsz zKn^n^@=B9Pud|H!^fQC$u@cF!eJkG z9xO+~D-%{FzIT+}QqA87BP!c1f$K-qaY#JYoY#|Rx05vSp~P_S4C>EVP30^D!hV>3+I`^4vQ*DWm4-k&d0WR+aDiYx?X^&^cig&c+L>B zetvgqU591oB}D0pAxNF-597GFNt7)StFte4Fqav)a+V=6G5xIzHTzUyD${9QpyYQd zGCgwl#LbT{&bu3xUD207J8-OPu zup0G%KGQNzH57!>UP~x>JZ3u6EZXR>(9Qfk(ar8*#&^G6@zC^WZqsTy2F1SD8~S0+ zK+Y~%;fv5kWw_NSbi)2wD|pio^{(c&K?JRWHGQ(lJ)u z|A22k>fAl+$ivp@a%bFrc~qOIoi<~VXYnepi!FohS?FW}CkgxSitjsp+@){pmHwXE zUu^;rfu={2(p83OcOek&FRvRtT34FpJ#Zb@@QaUWMZeDJLI$jU2jqdb1`p;58v=Ug z*Pg77!?$LOgt%ZwBWv_p>|`m&o2gP#UuM= zhw$J)W`+?8@l`04M4GScPqj4e2M0LhGV-3_=4jVP@!MhYEt<2Kn+nxCAf`w!b&I_p zLbDO+BK1u~(r$l$>>AJBh~Mh_)D1CD6Yhu!30F2Xp_wvKHYyb+tF}#et(tXcejIT^ zWyDG(>p|)JJU_0W=1PdasL03{Lq{yKwX&5}WX!$#rxu2;Xwe%DkqXJPtAJfNf-HFG zCEm4@?qbP~6S-~hC_!2oI%=H{xP4}0AwiS2g|opMM-X?E(E%nIQg5R`!ro6&AS-$wMX3f z1>Ge#X+OQ~EMuV_PUlscOjhkL>635jWWY5QTxYp65jz0$UE+-GUW%5|qR^IjhoWDDIt(e;j=|UX*G2SP0RTi@za(5zpFYd?k3a3vdjZ9UaZZzTbH*;W+DZ^8) zz7Q~yR{o(0q3YA7u1o-Zr+U*jXFdY9b2;AuC%pdkdUVQe4B%P_GBMJymF2zSJKXW;W8VT^~`=*>TE0>sYGNE zKx}E*P&xn9g<2}KXTzE_B0PoH@N5;jR7dfLi^*?jBe=aeW=X;T>Y5=2fP~x4*DYj} zJK=qSLT3ph9#wun9cd$6-S@9FdeuZcY+w0VD#@bU-_BUD!PUtzLN`=(x(PtN?{Sj3 z)SpF5hqk9tDW>)^FLi<;y5AgSKwB8EtFKlu^-o5lt+ecwi^$*(w)_vJ4TRd)pj-#f zT}GCB7NuARsp_IrX)&WLE=&~hG#i2(cwU*3wAvo>!XPcfq@7@@mUAsT%#-SAYc+c# zpSODvU+e@(zXML8lmsfn$N068U4v$Uy4=HNF~g5&?MmYc#k1F|&q^Lv*d_fV+IU%r zkyf0%J712$bybb>CYA1&RgAr(vyB)o3Ab0Ne-^!Y4~pj(WqZ!P<&un6Ysq{g!j3qM zQuoiOHf&>gS9ob_y}y35rXVCxdx&8+?|7lgGAt3Wa~fSUDPo%2{`8W$Hq5+T#eN2W709= zW}>_U@Cp-{6dwtzNq9d>Y|$3^ysm%M$5>Eku+#l0*p~YK2hF+RUN0@imiXs~S|<-h^hqgPZ`?9+U1OCIEdaS+X!AB=n)d{dKUr*S5$eLaavbTg zB+jHGfG27DbIhKs1VM_(wUKNX+&B^6h28#*(EE*H+#u){!;;6?LGkeg_EjDs6WaIf zUhx-mx)irlnYCF;0jPez=>~Du+udh8^`^<;xeG-XIL!TXms#`jO^N+B&tSSmGFyzp zSD{9~{GN-{UadCX937IwW`Ie-+)Sd&_ILodSF|ujf--KqS=rfcy z;ihC@9`>s6^BtRYcP51EuYRy!t}X=ijqVy;rfl@zFc7 zY1%3VlM|rUmuFx@AU~_7;q?2$ab*A)<*PE(*w*A*K^#=7^N_(K#|oc@Wj~D8SL%~# zT|<4xryUHJltYp}f6oF_yBLA_YQ-U;%B_F#D6#3Y^7Ql{T}D-3dF9?GDnw3V1`p3w z;O~^r3uF(YQq0l}Fwvha)wz!F!(Opc5~3C3MuQGfj16{u?I-mX6A4=_>Jt6(0#YV3 z5uV{q@jH|-qu1%H%q3+HD&}zqy|CZd0J<9q)3WEWHj*}?_>tU#Pko@1XXbSb9pJK6 zagGM^eo#8>Yt3QH?hWpEZ7?vpUNKI`30zli3ODM=pmhrTIy*#_JiE2pT)dd9^+q(g z#>Hr!jdWHe^de|{{QewO-qqokN2D!;s8rj&85`Prx{}sDRSKAdS{CLTE)g7Wkub^| zaX_GKToexNZPR8eNv_O0Z`2(~u}h}h)A>!on|`;UxaIb+f#+BMQ^Kr8@WBaNkju+E$&#sj)9DNUxP-p{OI8e=XihvKNgRi%5HwBooVk63RL7NDcjvk}CX{p@v9R1OHA#u?H3KeSD}QA1n-PAN&xpqT3pg0CowgN1derLQdm z*`}}vdcHkXkf*XH6yyNCtqbs!3gCz}Ye<)jm&Z)*ee6%tun320_hz};g&^*i2Vu!qoA|MQ zu&{1C7j)<2N>YyCiiJ3tVWT?+=Ck7Ow z46YaEKo*jK=x>52D8$bd6wbfR-r|tu-0jkixn?bt^-fPiX@T=Lg8QPD?sUpSOkQe$ z^d`|aKfyoPZ@63ZR^_Pl3p_tzPayc%^n|8ShR-@%bDekG28MCaZ_0jk4IyjLjhoE! z9L_JMmdnuoE6mC}wxzwww`+FHXsbwr-iS?>Xsjk-hpUsax6YO=8_kYaAL>hp`t%BF zChk(nPbyW&{A`eWtTp{;iil=cj?$W83DMAoaY7$&wtEr0(KT4`!1#qiUqy80!~px8 zZ7=JaW?|Z)PgF}SP^*T{4bHBvjpXejoQj*mf@X39<2=Qig~(U#NZxiPNBGm!8l~_7 zx)|}ssp`M0jjYj|^OlA?HxJDQp4z972R2?E=<>JKKK`jxeWY%0fc0e)wl(QY8S#&I za+F&z<9d3z+5bJ3gZDYL{1;9`Hh?53cZ5s+Wm!n73AiOju=-10Uqb zksHKFS;Qu82Ms6rj3s!%@#yTZX10#>>%IpR90aL$IYLeRd~xi~J?*8Vo`|PMW_MMY zzLS3P2xfO+<-*ZN`}p9vAUlo@aC<$yB-JUFJwg0*5m@=TXhiDE4<7fJOOqZVj!_u} z^b=1wGkWbyTaGPR(6$klCMO0d@oAwbS1|}wE*WgKJBW;I&f~fL)3JD{LnWo0)Dq(r zu5k{{&AocRoo3PWE2r6a+WRMg;$?0lwZ66NZSz8)YHCzkCbgu{m3*-`mWu&4XceVq z!t=dr_|&S*x4dgdA`ttaTL%^1!#;$})6>RH+b!N^7QK}Dd;7(K>WR+#q|n{vc7vPj zSlsT8>K2Z59^)*5H5`UL$*o{hpvYlV2$eh`l0a#@!#A zEV7+n)5qDm-Pqsp0~jGlZYcx*J0SlxwL#=v^}B|A z_6lg zcHUx5l0uZMcESY`%W|;;m`#pYd%&Tf+|gk^#WsO9ojQ_*s!aU1pVQv7=o89CZCzwC zFYMHPk*pm8`H5H#h*CsH{mej5IjsER?Z8qS9Nes=wcyd_IC0UEsvMjrDu(IHH-O>+ z0>))>EVVQ5{OMAe*OZwedqR&6iB#+$?I5f32CmSZN~}>R{b?puO) z5Y!z&t#npA^BG7&gC|{2 zbd;9Io`-=KWOA^gcG)dGyt9;f%ZKtK-RD99iw;2F?U2NjN}VPmQ4Val){V*B7Zk-{ z<*%}|>AvjdJ714pso*%=9e(c(E3@#-qH1j|)HviPf1y6|sTS5gW)#eUo-otv&@iD- zY0Vtp0;^CCY5P>gC$wALTNE!p8P}jkDx@%nYWx&HvaCl>Mx3P@#Z?7sNa(Q)XP-ba zA2S}mNQNG*x%%Pxk#y!XHoBzh1K%OC)Bu5p(MoGPv+Lg}fiM z=!{(X>FtqfxklP&5qgtiti)#Ruh-Nx$* zq~0Rv(FLICLe=BfHMj|DeNTaVEwjjverk>9tu1WUMswXAJPk*~P(foR@@f+KM8w8|gC2TfgXt9K4%!ijV+SOJqRp z>7MI{cC(^L&Fq(F{c1fcaZ4(7em)|%V(=P@vA+djw8nI~athDPn1=!%4WwOD{3XQ} zmrk8J@e6=tF0PI+E88{CaC~vS4&#HE-_BL}G%h(@^-8$3>o;^^?B7M9>h z@I&w03vgNcsKr*U;guW_tg?3Z*XPa|6y&0qH#MqhAg3+3kmFZBqG#rHNrtul3!ct) z1V+QPx7p&~<9X*NRc5{(?t%!Ta!qGh&IL=0yEpI}l04dU5vhh$I} z(3lJtpE~=k^QPlRcsDQ7!KD2B*rVDf6E`4`U*0^3<}4;`#vUq$ayU=k>2;{*uj(ue z_f?*1CYUOHl}UKdXwcH;)?A+lt{YNvbA6uaNd=_d@&j>@EJ7g(9E0icyxA&*`aU3o zFJOe|ZcR!zZB60P173No>M8rcQT~r!jM{KxCcO9oc5Ib#6RW6Pt&Q#Y6Ze>pf6ftH z>m1s>qLJNwAsJFDTB6odiL=siY1x`+-Oq4Lz;LC|Wb5tGExqo+-G#dQ5|Nwzh686o zM-J3|lpCruaG#4RAakr9zY|_0-yEjYXc_*>w#Gr#7w7!|n!`yuFvD!9-itMfDT@%c zi_CZoYeGA|ccKc+f@F`5Ik8q^8Roaiq>Z~i6jO6REauBTILKI-tuwHItCBh^uzf7< zjk=g^8Tqz3v~)9?jc=5qSehvZgiFl`9Cf)MRC%OxAw7zdrdeCf(Y!vq*~)CWk<_Lx zm+4C$!JO8?j_q?v&55`}g@KlRFkd-ViA-2&Z%pnF(=8O?#5@U4gHQNWC}6m&^){Z7 zwNr37JL~6L8&Y=n?xFAGMuBgh0^)2*ccb7@3ur_T@Ycwehn8caS?ax9vOCF67z4+? zlby;bw*sE!WD1&@{zkJ3@K46>W%yN4hEy?|LYDUGBdqSNuf{c*Sw`n6f)c!IzHpeP_Wh%iG(vjX*pC~wV91+FmrGe4@Z7OacuUB5c zKGD==#X1B7^vJpy<(*YTi2HQ^f&0PKg%!$_CbnIhmxU?z#=XG~#&xs~Q!Wt`Xd*BgK}a?LV4p)EZ*}%Z zm8Pgx-+B`n0iT3*cvVJeexs$WH1mN~KeS1KH?mjB4NquY;Lf{U%-y`bsN2jUGIYWA zkH+2-{x10sEB4~DKHEIEI1>!;m5(HZ@;y2cf>Ou~F0`|i`=lNgtt`#EpW9eJt)ZmP z&57;ONyt53nu(cJDqtHOXdaNKh@y7clWG&c`DA@m^~pYe1*v;6R1Eo4Kk5$%eiY#JY>V0xP}+?v2ZJOapcT!A6H*kOW-!Ds_gv@cvGv$a%F)J z@|{VN2&4+fJT=A3ds^ktubuOslmd&Z!e$mK^>Hfu>VYv$jb{gYuq+qI zgMD1l35Oq2OjiM>swZ=FIJfkXt81aE$7Xx&e6V@)kHWft?p_8e10_UQ7b+IewRYzN%={T|V#Z(+%;|HwK;Fze1T^-=& z_iU?joO-T3PIvE$O&st?v5ENz=lTlue0o10v?g06r((B2pv1*Sh$-vG6%Z!3-tnS* z?iFbriNMgUqP-~+m9$`btvfD*n52ktsm>0-`L^aV2|hM>SR;}zmB8WL39mhIRIdJt zUBMLaM4i3TP2QWxfwzRrbv+&e^ROs0e`#ROrjaJPqZ@Na%;1T6&y*+h{du)1s$a|) zC#5&&{5!@F7|`?n+Q+^SE5*=#Yv-E~q^@%!W~X|&Kt`n|trZ?>FPLGB-QETrL6fz1 zKnGDQ7`(wqx0Z|>(y?ER{OMQ2Ij(SAwRD<@JvFId`B!87!SiLjG-e_1-RZ{Ypj9^4 zB0`?>g<#8ttW1dWK4$rZO-wy^-$4c(iyn!Dy!odmQNz~1muU2Y0XHwQ@I7UclX$8Mr z9m}5%Z{8b;T+tXtzAU8IDNZChC5o>|E@M5* z7Png3XCn(TB`|%X}Va# zwz0KGE4spW3rW4r_fr_$f~VSBv8Ftx2~;oFMKN6>^cmz*U3t^WazH1uKs diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/for-all.sol-0.4.5-compact.zip deleted file mode 100644 index 03c9f7d64bc031f8c9fdd586552dfabfba871989..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3719 zcmai%=Q|q;z{L|p5izb&(pt4zgqpQ#kJ?JKwkB%UD6vOr?AkL{?O7wmwQI*UV$~=? z?OA&(%6sqo{e9kZKAh(~&-nw+PhX3eL>@o{paPVj-oqum{PZ><0Kjf20Kf(S0Bl{| zVF)KDL6obLm5tAPS9cF9guAu9gO`n4>P>CKQljY$5JxEoigw7gRoZ>aWt^{nUwn%7kkX7&Sb`< z>B&klPa`6RV~hWKZ|Eq#Xm}i$sUp=_T9{FcXcQ}PQxZ{#LwHi_eDp^7<&FialX+aP zls~W(5xkN3zMgyNd+JGM_Vwj{MM~ur#hoF(79vzzEf|Z z+>yN<=6|r+P+3U5^}+cp{03S9*xTa3V$_0@e7SQNxI;w0$H|ee9Qv{P=MOtvi8SAA`eW&@Kf$-cfHy8&KHL{>46ZJ)Dg;U9nLcaGhdmPCHvtommJKm z;?HJrwXP~kUka2_qd1<>w?FvPrk!y)j!lqteJedm*F#g2z4!oi3I0MTrayK03GLc3Bgm`JF1`T-Yh6N zqiHwQAFTP%3=4)+_y%|VlP@1>v;x4$|)tVm%zkwND3Y0 z=-S(5PJ#Ys;0^p{f4JJXtXq&vV8f$sbkQ;qdrA~CZNe*lEYf8e_^I&g(*n7S|FQTs4~-u$3NAxX_dJG4hnV( z@ar4hBArn1wi%kVQ8t*!7EDV2CFVjSN|7eH0kYyb=)p{C_ZfdCg%@A5z0jdnUC3-t z!d-qWO?DK6#3I#dk%^5)$(&myt~2c_WPf^0ci&J!g$NDbN`aLmeBH{@%JcRQzTex1 z$56wF(E;300tasv#cnK2B2jhxg7JJ>o{!S8?}GJI70wM9EFwF0w*oOkHMwd5uE^?c z%91fT(xPzM0pw2aBxQX`=U_h+FmFiZ+}s^HP%djsZdu5!3wa4)UIH}TnmaJP@Zyw` z>YcgAeM3YUVif@3(mb@hz$j8i!gJ6Dc}$@rzXfhN66o7CJ?J_&s~D7B7x!u{saB~n0eDp1RQbk;;5PR1zq_nX=v z>@7;oFV6JN=sobL*Y+^d{*}Xnsd>q~O8b0<=nt+}{g-40t)NB`;!k)$4tb(Wfcin_ z2~st)V_hOSDq*48Rthmnj`X0CQ&jJ$S}hGJeWmm#2#T99z)a!@n8pt9(cWEvo)xoh zh2B{*MTl79x%}rm{BLxH?8dCd65_Zl>#ji)Oq1}9zBk0mB2ub}2#Q#A{MgGW*VAtY z1&YLUB;q(@6GDXdqrZ{jf$uxeq%{{6SoX5V3d=7eZVu?K8O!rM1P0q+dBDbFp9u+Xql# zCZfp9bRLr7c7-X?USb=p@9^FfMKkW8;9mzs?&_j?C6<@=L;Zt@_1rmg6^7T$ZRd~D zf^`Ep2s?E#-G>XTaT4T2iA1wBq9Wf*SO2KiVsgH>$egppC^bCNW{6MP8Ch29tg|mW zKhMm`F4%YlwWt<(7)HS+LPlGLt4`vruRc`YNj=%wEs|NK<7fE|3k${X47f%OAc3*+ zFP+|HYX^BQ7^{*y*8~BX`nd*JLI_LKEn|?A7;0)h8O9zwEvT8kOh#vNkLRdL(Rn%I&6Am_z=w?D6d1e0SS+BHxnn+%oPiNMEwPJR$WM#0P z-DYW;c8*m9fTdRppG=&qSib(3RCA2g_-d2_=2e9A9Kk&qA6FF zaTK~d_Hk9lr%PmYX5WPYF%c#aF{kaoEAw=Dn~=ME{1l;_8YOdRea=T26gCUViI}Lq z3(LZhS#urY>Z~IYYhN1=WsY>3rEYA@_4GpU*R%EUQ?DLP?=e>2YyK*qxZ-)y*kNBk zj2qRGG4rC6HJ(iT{(-z@+v-5sIJMjq!eDsVx$#xs#Jz1KsZYF!Dj?eW<7Pm7xr#+y zn}WF2O8$&w#k&@>*$1h+b8hy^C#&{)2<8UqBCO;))!Duxxv~S#eBW!Rl0fncCt}m5 zk%$VI9W*&C)hdNd>SC`XAmjyOa?^A9i$inb;%~wy`m`i$pV43?wEdW~3b<64+#*vW zYN_!?kU1*hFxPJ;!@CTJTBOLLDv}AO8#`xEq>kAi_S7oi*b@f>`68E^E+>yu ze~NxC8h1zN2;1pYM!Rl>G&=T^WZks}xyr}|tZi5GHQaMsA2#aE;pJ$fhNEc}Qb2su znnhCG3!mkBFyg8-RdQ(7rg4MlDxaR<6W9j-LQbCef-Z+XJ@&jhxO~MV;S$`uQ_CKr zxH#HbYP2rh4sWPhaVo0fK#`}X6Jyc8IO%byA6d%5FAX38b%aW!&?{4h#cKKJT2#boAC0}uYN53l}2}jbv@FW zcyBF%DghoO+m}BIQZ@0x4*s>7G;V=`!tjG%hOku$sY5n3z1nx}H+_P%+F88zUyNGZ z+43YGy^)yiHz zY%MfYM#=P~G-BIMuzb(J(%Xe2?jou4dXwc)9g>Rbj5|hVLFL%uKxT46ZW-ABKIwQj zsBKIUbw*Y~hcZD0rR16H8`&_tM7%Z_w$tb}mF;p2D~n#~2Hj86+#a%RR%0P+ia&3e zk?6{R6o;ABkDhcb^oiEBaZh1k#TCJC$aCw0qW7*Nkwd>B_)zb}szrHCbg;{o=tYJ= zWu+K2%zuk4F~7`MyMvn{L?tvv{qw1liN3&Z+AK1B0Fk1J@kCtL^zK&Kv8msA?ATk6 z?AJ!Ooz=9lEaL>(U!rtI4(=!y;&$dog9`J0W|^!{m`Njc?oV4gUGrI{Mj#4n@!~-LvtAb0;E|e_P&AQ9LZ{;j$>Bx^y38RfN z?_Sa%5eQdaNf`s{lG5QzhBfK}-(S%s6Y)KJd+_lfCKfUU%^V{D( z@k^f6-=+Iz%ks;Et;L_IulE?#y0W<*2Yj2}sXpuHC4FIqc2>@^a001X1gpe&9 zF8taHZtdvr?S=5Mwnf;xxcWK@yS?`Eq#z*$SONfH001;5#`($BlUD^lMjB+OKlXUK z^0u=_B^t8G@nI=(km}8EfhCQmz{LYx#yK8hatxh8# zzsS<#;$~E0|2|0KS$>9cpKKy%NC;)bxtCi)A{Aeuaxr?=dGl#;JCpbL7FoeNqeL6i`5q|J!cX2qe{5J4$F!>ZV7Bp%$A6^WO3U3IqLtymg)3^bucsA?^HLRccS*p% zI7ROqM*g-jO^PxXcA1|WHuwn8%&0-cy?k2TJi*wO6@^L8lnfm-wr)D=$W5MabfGX^ zaF|%yRALrj@E=MaC$t0>{^2k6fuo^B?1j%CgI%-m`ksU_+ydQficgZ1CM5HP}(E}c?VB=Z-U z^(;Q^+IDC=LRM4FTOH`-x5}o#Ir_t9!=tGG&aK`pQ7@jgV`jKm-G^rFO%zWZd?eDL zJ<}iyy9R-LC4XI}60Cra^$1QOpJ_hW-fCtet94JZV8XbxEjAYYvnW<&*?!bPWe%z) zLV-aWwPsEamlJOmopy9GL`Sx^=JjjRpb+T~Jg9|8O$ zD8zmEfS!_Gp3FZ_13tnubTa$;+_h;$3*&IN9sGv58J+bN z!EE*{n9aNl1LeDFp|ih7{}#-=v!0NSggS@c1t98k(*c^9{Fu6MM-R~rOQAr zX1Xa`*{{m=6cWFR$F8mAUxXvjl4Y^gGO)MAi`!i3`;>lz(qm5jzu9g|P0I2NJwR9% zP>y8@rtV6sPW^*xGC5-(c#v`A(uLE>#@l9^i$Eow(u%hake0+&-F&D-^nyycBbc8T z>P*)qSMsQz-o80{h(mB|&!EZ?P~qLo=ei3dvfus?ecTLE-VFC0R_BWSo0oJbB9Ph9 zp#lA4SkBbmQ~*YODKAQ|x+yxg?9<^@q}n+WNJ{BntT|3r<);0>;J6vdO`+d>l^f@K zWjn8*D?gOOZaUJhakbLL(w``?3sV4fJ*#7u`o!%|eqj*UH}LSz&yaV@3bB@qC2X4{ zKtIW6FEPx6o~kVao~cw%l6Wd}sAKm##knYFqx1Fk+yb1t{{(r-HlNc$S|Bfm4r zjMc%I^-FDrrFE^(^TNLRi=-i}m{lEWMVlJ+!Qp>XvHT)rA%-o{Qe z0h;DvfMdSe&CV8x;yqX34H{W2tV)Z~a}bwKIXWupXT>(rzD?}?ponURQ9nGBz8)_@ zN8otr&pY{IJjD8|@~6!EK2%eo2y9t2=DUHYsgFF;{F&MDGRvSbbVd^rZkAwouEk_Y z&$;dK#2hhWJ7(8ka;`m(B5CCvV;$xwOo~TOPr}TuHkC5W6d8OYg6yH3Jz!MoV~&@g zaYX73UU{TO)+C9LHo__yG{=^U>>mX<$Nut+{uWKkX+f6mcq7I_c@_1`Yjo=9)z#wa zP6$O9qw}Yy2cCGVRG^S96Iw8BZhLo!;-yx>5rH*LF-T%~&K{WdKvE0Cq|8J)pgwmz z>`b`i@p7(DmP`3uwfA|M&wFe1`)qmd2=4PnEq(Bgw`g=59l*?{3nT8CCL|wRy@Zx0 zH}Y3sv1MIqbGdzk9x}3B4oC#=*WZ z`m{>xz7(;G$e2Ev9>)iCEt@c0rsRBGLhv!jWRVBIav<#>9wN@iSH(nKUy=U6U#+{s304K37L(8cuA3IrSh4R3I; z3J_g%=elI>#(n63YZ@txC<>*JBM+!Adi;m)D76RxkW?NJ3g&rZ)}ROJ?!*s>8K1w7 zd6la`m3&P*snerUdDXdaWy)J7sLsM>N?X~zvgs2!)B-WTsq{+9cxC&;uy#nfy^xlH*r|MAkgS*J48 z`WJz6ciIc5Gh^?u@cOi3J;D1>kJ9fvhKQF62T| z$9X0@@4|%LZ$CEN)$6B{crRi@ZxxTtPiK`5HNOMuATlXYks;V1<%fK$slmjYv{2|7=OX`=KFzH}C}b z@7=Qk4{mpCbXr_?{}-gb-lwI9Vxmjv3%Tu#?y#08sl1M?e7t4YdTcP+Bx6N5=N(#+ zUMko=7%7HeCjWu={X)~`8-M$rrIEDy*m$IE;RBKVoSfp_$1)sqv`l073L8F029ER611qhbtg?(M~%%L;7tg;cf`2p1s8i zb@G8M@%IHy-hODQ8cMSN-SS;6#%~c+lSFFn)3^pi3&JIAg{!r(_W?-@OPqe!4~;m! z2P9b(Jf9*JB6-kMAv~aZki}pQ{qC_Lr9xWRrm?Jy(GbH9EG*DB&hJ3OzAb+GTQr0Z zw6-a2J}*Oa9ubk>^vMF=L<9Jl3j6IEa{jb(-sdTE3{7&5r=*TrT;*-A8p_~1q5k5% z-I(u8l_Vv%o7pOp{|1uabC{JMrh4Ky3DCdqUeX$vP^5tA$a-WZ7O$4b9A!3BvqxYv zD1EC%j`2iu55488Af-cIY*iNR<>%EpS8*ww;SOzL-{%bz1XKl zhlHf4a>Uq|z82}7|J;cFt z(c1I9pZELod(QcAzMOyHGSVj^h5!fww16rh)Do806-J~@GvpaMdn(@r*z_5n+gqPz{^db zmoqNSgzb?~167w?6TUyRqTQTm>4@e<)JU(HpvSuHcH(I3>!*9?`uQ%^l%}^ob!kN* zOKbzK?xq#+oG@ACl5EW{s%fml;svJM2SpXciYawkm*4TtRDDakc>>3GFX{y5G>FFm zF|ilob?0dNAgM0NS#@=__a|Q?t`&Xd-Uyiz0a=Wzl`IH#=B4Zud?l39ng!*-0<4@X z=t02M&_;FJ<$@g5@ScJB_bq%|co<)=+O~wvbMrtld2JbVyP)iELt1yT*!V`_eA^_I zfe;2P-9WJWo0f-k41&U=nX+1V#TrRai`;Es1;dFdKHm;-%(?*CdGt^q-Msthg_3PX zHjaYkj@9bC|+V;o~6|5`|WuU20h)9I?vGKn;NT>?lD5{65)KeaX*;Y+Eye=c4qvZrtE(GWZ8$ zVL6_t6a1Ssn-NQ!yJ7XcVtCDHn4%n?6(BebdroJO^6FS@?l>qch~{zG`U2 zVdooH9H|icjx44yUP0^1PQl=*#F5}2dwID*+&=Lk6tY?Z?@z4oZa1nV3h2bcN77iu-G&y5qrUmdA`9R-0v`}tX^sM%G~J?RRg6(6vGa)2 zUmDUHJ02AGIp`9{!WcK5Ft(_oa;z*>(kwZz_dwSzS2=gr+_bN1rj{0zc~g*Vg5UWB z8f{2$i)gANBMA|VbNh17>`PHg`YPeFY~N(w*;!4riB&Lgu27jqaJGY@!=WUcA?+7f zgM1PSn&{@}%I#o=q87d%;1~Cge()e#1T}t@I?#8DRceveCqArm&d!;r{mVImIV4 z8Q*8A+Je2;AJ%a-U-mr%r|DoTL_!feKuX6=CE$egwKj$E>z8Xr1k5sGrTw0sNiCz4 z(s1Btq@-%a4uwR;2V0&F6x)z<|F56A0ZgZU_J88IW-O{#az;(>t(oo#6Bv0h-5D4z zBL6Y@xYw)7H{2*3s@c0He-&1JaPrQ>o97+w(r}Vb?0t>C@9l6(msLr91DnJkAu@dC zs$9X?%G%S!BD*_?LKY+)_EvMn1+xzCpY&$a_AZqQJ_J*=ZSqIGyq`H1$7LZ61;*d5 zKsj{sIlBkW6tDz0nmg;3uDrY!|42nQv^cwE0o@XCz0I^KZ3P?*pJ;gnXzt2_e3P%zEOxMvx2tH*Lyo|)a1q<}jea?;Cx#}uFiouPxw z1r4V+*BQagyG5`4FAlYM73q7Cg;-Uw#^Y=q>V!$Oj-*C#-$(^-iYY6<8Hr+v|7mxQ%p zN!*R8sn|OY17iKj$M45q4Wt&`T{8hkpDDF5Am9d`KOaCPul2+=a69?Ry~!hS8fmiE z0(UG&wUFl?vDca*u6)htTu6AM+?N=ccT@Jd%(EjwDwEq*i%x2P^*ZRED!=`D(_d^+HMa147f`W0l22w7I2s5BWgVoap7 zmcHlFsxFYX+gPCBD0P%|#y>V3Cj)sn$W3|8_PqWhw}AexPNhc;V&eR5eq;uzh9y>Z z6~W11yY$3@0b>@cnC;VQvbGQ>BE=gGJ{LI(-la9GlzHWK(pi4Gel{Pjuv~zRyv;A9 zyR*U0C}=FnOZ~EI4dTo9VB%V&NyzqD37AI%H7M(c(44o>Kk{bj+uv@zWUq(^7x>XJ zu~EEku6ibaD=DYrP8W2qp6$QI^+3S;J*2EI61n|~wH%jtuEg0_UwRqY5BAew`5USJ zq~BPeTS_qubWGC<-0m8lvu%k7k91xW55QpBt5eO~yJSuy5OGS^aEtebT`e(x7A+e< zg1P7m9JNOM&(ep-w*G5TH+^?O*Pnv8!nRkEEwD9SOVX+voiXDV{yjzq1AA(4%c9s+ zHwUIF3YSF{jhRNCI`hHai zp1>gnT9LJV?r`L?0y0M+^>5BtZMdUMYE%jetk!zt03~^I)zf@W?DdCurR?8-iG0iS z2T1RN4u?K;TJ&>dTm zSRQ+-_&Fx3QxZ3g__&K^zn7%-!7jNDp1B1L&DTwW;{!X^0q z0Xngpqy|H)$*y-7nbL3m>Y@M>%qfP5bSx~MU5{us2I3uxt+5rEsfOMR&7XRw2Jr3) zXKH3z+FT`J?3yZ_2P)|=0(=E?ocwtDX?J%ZqBJ)SxfW;sL0%^@e7m$G@>!=p zz^s#kbDo&(EdJ^0v}PTB|Bn!FfQ*)UE^eZSEY2`{0-2w7$fdKI@`=7Qob#aBdZsX> zQDiu3jCW}EO_LsxiF*H5fXf>R<|Mc%g-suUwT5sDZ@G6SBh?h)GjI1p$W zXsoQaGaoj`68V7<0*dRJY^NIUr?uK5Gft&;iNN;FYq`hYu_~FV27#wAG7UWe6k@I} zs$*}uZ15-()*&}?N~+qog9@n!j1Xp*^OjAIvKc=)Zmx~18$#?E#J|Er!jt>_m3hxlY@(Az zjub<=huAj4M_>)mW(c0Oj13vldv6Ejb(%-6ZWRf6J#zDdv(WGH_9#Lv=ajeszHC5q z8+5vHCW#k~m&>n7&q8GYT&pwh^^5TM5fg-^bSG6stmX1~GgXerYs2Exa|csANU_fx zyUMOu5Q%z+GvehKx!b=m-*axzP|esn-E+U>kr)$5#Gn!{mCV<;VvhzhnjWJgtG4QW z?I&&6jnP*mJ`saDM*e@f=xmRPpycN)s-+OLtbT4f(SB(Maa2Vu|CqBLFiS?J|6GwNsAI0`H7 z?5KRlov?=|D|fSBw#e9sh;YRL2-ZPWb@e!Y!eFjchvr^z8dGjrwcBTpV_otgrPdK$JU+>08$E1Y!@A9Iwq-C1p0H!#ngcbs8uR6zgvVc-pW$RN%aps zpE}C8$ir3G@Q_g0hrmKA1t98>)zx$%|Ia0D^7VM<6V4SPy9*A@rkz?N=YIOA4Ep5V zV~HVH_d@{=PuwPpuN*S@W7W8jhYvl}YH-;?~u4o2mI#?Ia>o$?MN! z8(*<%mY<;tQtm#lxNyeeAT6`wIZ*b&YN&3TJS%P~wUrnu2-IdZAP_iV$9nSpVp z>}AE-+H}8ATaIUu#$Kvjk$(%}=I+;D7Q<(iG~Qkp0ox9WzgOF5M(Ol?r3pUITsa3; zBM?WSs~)f^7b3pOYrRTuBYgrw2+@Cc=fCv)|3ne|Xa0vmjr2)K|8pbww}$_2z`uY6 G0R9iP5F9}O diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/for-all.sol-0.4.8-compact.zip deleted file mode 100644 index 16aaf48ceda0a446f037f3dda53b234515690202..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3817 zcmai%Rag@Y!-lufNT-A}FCY!08-!8PF%e;kW0ZiDbjRo#NOy-w&N? zg#Z2i^Y8ke=iokh&Y$Zx(80k~0)PNyfO2xIUT`4?cNb?OTs*)l03a9uP(UIP;&!}xuv+$u{G*9Q{Q52DMa@jbc?Ys7apnP^o~bR z$=mfDtuRPI^W{`q@jDgdZp>-%zA_1v$2YDzB>t$vV<<=s9Gw$qun7!g*96ckp43vyOW^O)bLKNcvtnZ?N*{?}&dt@`p=wngj*1(SIK?OG#$ z51d^y%Cb<_<{&zs1KlJxf$&qm@x6}OCeO5os4sn~5#<3JR{H(|^=u;P!=tTm@P0x3 z5L>=7F+Aw!0Hb;MNS4i@wGT85MjE*Y-J&~%PdeUUW>Ny}$XZlA*QKV|B8ngf4r_dL zyO`_2+r7`9m)4f!mD86@qDhC0k3TF-YhwMv5GTd}m%0ApJPr}O5{>sx=E+r_#>y%> zGGwgT>`=)qrgiFH#n)6fKDdvqN9#DNg^rbmFCZuh=r8B zWi(6QC@=57`~7$U_{2QBDAcKvdtSohnI<&_RZV8bYsfQTI+Jkv zGII0fG8#A8DVKqiUX}$#q|65b;z)``86|0ciZ9TP(PSI?8Z@N)h|eJ2g_&NVg5v^~ zX3qU#I=q&Sczl?hwWsgs8_zlryQI}V!(JX-R@j`KJ(NG^KeF{wgj1H79}DI9`s_e7 zvdH;qs^08CrbuR7%h|7_Z|B~?z{y~G3t{wg%==j3@m3a2j(t!eVKHsD>=r(g!+F;N zWQ)FPVkeVNgan);#Di1Bh^Cpt_UC2XIFQ&r*23fYxQi;Tgf-LKJBmN1DiBr~Iasy# z9S$7sf2`r-3b$RTfMg(}GqJOt9(Lqm15?rS>ZrqH&&r&=;P(Avjzhm83+wpR3B1i-c*R@FGTWJ@q zoR0LGw{0DH9~Qu$m|RcDFPsV);--R?)1cDy7ZP!PB_8i=#(8}hd($QoN^`@i_V~`W zazU*G)8Ai4n2JqrgzR8w)`+6)tK7+~;TA|M^K?j~iwvE6e#D)e#?jYu+V3t+pp)aw zvXMcRQA2;_=BRvT2gnyjXG`gmL((Uibv3(t|E#m8W$M|yPNa^rCak$veM>wy*ZpIL zXwzr;X?2&3z;}t%3|(Zq%9?A0P`2YHw{4!2Hf#pZviA)`bi=`TBePnKp69%w!Y8Y| zhdzO{gR?)^o+T2?308@x_9=od%_Depw{$wXI5)Ms_-NGn>S^Rh7r(bfmsf`#t;Ut7 zy`>Mqbd%wua2{M<;3O>6%&ezzolBUFv>SA>Tha3^SblTGK5%84M4h$!Fy$OEHd`&) zRfsgR*F5?Ide2i285wiXBq}EL93+aaaAii+eyOC|$3{-(wVX(!xyGLV5k3K3P5~m$ z(8(0++-0)C{J?-iDQIP35b{;m9U|N}h}-$%XYml@%HTbv-gFK+C~KXh#f&Be`tT7t zWyUoL_53*FK3UM$P@h?i_LQf%aPSulc^gqPfxRFNLNkAeC+pJ4vKBfn+m+=F)Lk(! z?ra8&dd7+`IU(fw*3kufymewWv6A@fP5tV=!+zjg$$D9!H%EpQNwiCxK|RmFsw$15 zd`WsG@1gT@v_4%NboC#6lb6Mv) zf*9>k)M;*N3dKjMg0sCM%l~5%;BRvIM$Hl&b6x^O9*Nd)ReR!sQ zYHC~b_YI}d^>^Lm(KpcD_J-;4UFzNP)z6rR0K(Xv&q5oh1762K&8vPO7nrM`LZsA65EB`eK0*ht|&A6!7Dy$3GYHaE5-Ny4U0LmK)36JKsQv}$I| zCrux@);JZozdm|x0-DwEB9^o8Cv8B?@6S((?|@~5vI0d6<1lV=N%HI>dBrV81E1){ z8)afpSIc>wW}()s8l51_TiYz#p%veDa zo9i1vjcp9T+hl3YcmdJdvyTRJ5-O{IMQevato-gJ=JW@py$j6>zcA8^@aTgV{sogn zgUkxlZ=?Zgp%LWC9K?AkNXEK{xh8ZBW5{|iMRsK8qOVkFl3>#cKCX-Qd1GARF~!|n z6BSvFK11RQ!1}K@aSFyg7GK9;jgJTT+6H^HI6b&JRYDSPPA7Cg#eP33X{N;xuMk-i z{;K*p?~!tsRSwdK4RMYB>&og0pruncpDB-aKWych(uazpSpKw2{F2t?-!FRAVB)y< zU$RL`%G8p@)&%@Eo&s{4ay?jZ1ei*maktj8nmNf?d0FZ+QM>%Uy2;sB=^kYcB$)Y1bQRHBrMFc;s*kW^yUVgse&J=;?8bL5#`N%}OMV2!utau!%Gj-_QM6c+%QErX4x&8V`VmSCJn}Rsn)rZx*~w@?();9R zbDI-C-5P5v{;vLEBg!BjCp5$f^@A?a0}Hj$p~_FFFv=a9&fwjv!}~S0ljwiz;8?`% zGdrJ>mScumk2!c|-*eP>*u~NPxx2_aKE|DVaT&Xr!F*DSeF)M2vM6z4+aWg`kg=)O zb`}E!Bv~+sTaIpH0+@-%EbWw6LIVSj`4DPW!r~F(UK?zu0bKh? zXZy&8JV84UYrtKhqcy38-5c+UYkLYACwbNx(zh$Vmlbx1my<5a5(KM^+MYb{bnQ|b>d4st`HuSJ)t&nN zfpbpL%l)m3dLbGPceHDSUL{D1;FkD%x z@lxe@gBvE*we#mGN@eF`hbK}pKBx>T`cJ;r!y1Vhz(5BGQo{M~9{R6}{(pjj|H1#T XQUe`4{Qt~=|MvO6jQm$<0f7Gl*f~9! diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/for-all.sol-0.4.9-compact.zip deleted file mode 100644 index 59430dcd2083a13438552592cb1497db6e688635..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3636 zcmai%Rag@M!-c1`2+}bbB{ifsa0o~#-3(AVWHf`(IS__`fONw|x>Hh8x{;QaMq&y` z!|(Usf6sT$#d~wE&-1)ms(AR)fcpS)K%tupoRoITF_8=am{SO5S30*T_caC8)K zLpqvSd%GY}?q(J!D_c8HYXN&Vq%#RV0l)+R2m%14!ozJK*AUm7@1yk+WSKqAcAV|Z zm}ni~3+_tN7SZb6Z+`g=ukluXlZ6Bgx9f2^Y?$tZk9_&0xqq&jYE$$8emk#3&MUnF z?6I|n=UXNDL!V<4<@+R~8Hf1O;H*bk`S`F8Wv?!$t2{&5MfU8~atDp(No6y?jbf-I zZMzPZ7@xhyO2{=3wn|A{8qgASKISWou3fhOxK={I_$h|`maJ*vwh&Yucq+`VTmh3! z)SpS2e4#F45fhrQJSyTwOsq&#Y%82Rt+6@iC!Fc1w}og?m#L!m0dS@9TtHr2D~gN- zTvvuoB7tOCb&Ec7CZEhp!F2QiZ%cRj=P|&Iy^vAOQQuF^iSP<`i-^owbrG7+-kC!P ziQ|ekujC-Kc+=$y4NL9S#ev-!0(I}~Hh=FtClTO^$aUaHR_$G)Q*9$LQb8}PU0 zacbbp1USO`Sw-wGF%hU!c>`Rmn(mp9wIK24n_iY4(DCBiq^^WH&wS?#oFdaU^f_l^ zzDL?dIwep|#JIyR+$^%ZtFF)>IIPHgyWwZ>+}+uD6qQ3*Ik!hI3RqSi<{>=!btcN{ z#hCgYbp7eJ4qbGmP|Vx`Su?XTTq1Xg-fWSeQXB2W1d)ocu=&g7PVqp8umB>ik7jf~ z*tjG-Ds#H2cUwaO7kSB@lBY~IXkevfC5G374KNAAb6DC?$6uzJp;U85bQqQoSQ3!3 z#v9DglWqN=H052}eW0v~O0x?_LB8P~p1LSAv3WnvDK4rek}8#0mcP#RPes}wA~Kh-+821%C+>Kxw6ne~Sw~;h5lONZ`-2ni z?puczyk3%CNWwRBqTUI=7n`1~3oA3If^V5fkMf(RhFt$jO*b3K{hBS9t~OJ1{wRVee<2-Z{v zV6~2mW_Wan`?1{kz$~dOmx7bsZT7Ee)mv3OpMRYe=sQX#f_xr5)KZk-DIGRz6Ej-x zYG_3LuraJL@6W3vcM#v!hlV|5Cqhc;ztBioH3XYrCDhZ0aj4v-VR+_)wq=&HACl)? z(IY-B_lHW_=aol}^8LI++nC=A{3oR_b;erCP8(G0Y-C z_d&g_VfA~Rz5Clrj7b4-aO~)WZI4n6uOaiGVBhaLfSU0WLmLe_(GX|iM&3t8TBL4- z{NeF(?&n6`W11~pzMsoN6=?r>EhPC?7M8Xfy0ewQ;p$uwKMYpmG_-`ec$a2Ei$UKQ z&)CfmHN*yE$LSQe1tZ2%g)cB|f{i_1c;XgCV~uaPkeFG2b}|0Ht~n)xx|%l#O18SS zB?Em?SmtA=1XMv#)GIyFK;Zh2#k=LVEVdF3SRZI-J(JiRCd5y=bKww45b=9Zh{`ZBe40fIZJ+bJm%kmXfg=A!&6@5SZAUxMIG1!oIHC z@HsZfFoN#2?a*f}W%o>;;M2!LB*s_HEc1*eVTrEni99(<&rd9#WNg+wDE<$<*JO33V}1Mi4`-EKzm4~m@%v{4vP$);GZF=N#ARU${rvYu*MPUAU$oOq zpP7Zzi39jTaI%X*V#Mb-=FySYzSd>l`*_ofl&m8n!;hoA0OONK`?@A#`6CP(c-i9O zhs8_WNsk@$GP?F><202fP2h?{ow;vrLSye{2cKNY)CDZ7YeY8KF6AOXK??%Y=hq^D z^P-k~B&L@KBk+@D{MebP2%T!f{D2)OJRr~s=NbL zmu&tK-2<*ulXThkQr8|`|j+LBkd)=^J;N@{>R)Wv1`Qkei>b5qh{Fcg(Zs1INbmq=5l>W1IWR7 zo~N=Hg)K|WfdRO4?BB;|Y>I@7DpAw$<7x++MgK-neApPU-=qrU_n@S%1|d;>MQXh% z7cP5HFhmVNV%=gyI~7Tw9l z(uU)Ke>qRhV|S*yptU~Izg)*Umd8NN>1&+)HW}6*vUb?WdFpWc4&~6r`z~6yhL>%j zN-_)zVnxv`!ZHTJyANGg{CicI7v@BfGW$u7SHBqJ&u%)JPYbcBl$81xT;F*SP5aim zy!t6IJx8@v^nta-it z^A?XAM7$*CbCggO5!gx7xZgjM9r?QfclJoh^4_JtE|F!G=@zuyn|AJ zU4Ar>$efeN*u6NnzYyNj5B>PPlv%)=Lw6MiBl6wnoJE+y7t(wS*A??<(i zu2FTn1NX~aHvI0{AFgw)b=_X4|2}b zL^MH=p|@gy|Cf6~rJFIvocU?*^Bz^vY8gDT?18fVHrHfpnv~Py%bJ{^>d_|U5Jl6G zsn{^Sm-;`RZ4Q>$?^tOAZ2~{3$qRm01H#w|`0z{uNHq_A_B}17+ow7fh~pT2j+@qNwFFWOq==TuHq28##SY?8pl zIPob5${K~S3c1XM{Znxbu^eqg${KwTh1#HXBEB1wUYU;w8NHjZS6R;csn&h1D{>p9 zL3eS$kYxYGy6S!cfgCaM99-cbucE9HsJf{ByoDe-wD^oK_PyThBPy|d?>9ri0>@jc zx_CRk`aZ5EYVQU~MsIH#CGz;mu>ng)8-r zZ>iLF{CHM~22DCK4$n)qsHd zQha_P^vNa1XxTYy!Z+lnOgipYDsRb>kS6=hu5T2oU)_)mVC-NMDjo^#1Y!Q@twVKL zwh)y;0|cjPOtlg3^F6}t(d&fz3CQ~sO>W7?3-Bz}0+Ibw4qqKBB-+hA z004k{fOie@BH$tFs#>b*s(}QbyY3-=gn*#CE&;BdUcv6F-hl)>H#-Nw5deq;0Dg~; z_s~4i^e2xF)x-GnyYXJ~ZQz){tS`eAt9YBWYnD61C=Ir3v)la9k%MhE3ilaK%=iy= zg_dgvs2mR}59ai5QKI(rmqUVs>G1;(nj4sz(S!r*7(Fd@$`9RsV*{VhYAuh4Z?il?{7U8&&Lm*z!{ zG)jil2;`V6sAVZjDog+I-MS=@Gb~NUS=C2razxN+a6}T_mmBq9rUFI~C>3Pnn``Z7 z_P4t_qk4wah^39QS5%rxUinLKwNF`ZbC1{k;f=X%bemS3OYGWY-gX1|^yR8&RJv)- zG06j^Kx~5rq~Zbz4$-T>u+&c)C#w~jJsZ=GGo14Bm-z{jQSaB~U7;=r@DNg-fNCEH zm|kG3A+1fEsztCdDYVs`(Ap{UO9$yIJa7@6>)B&rXDDW>dqUvZ_Blqpoq&@C=OSo` zQ*L=-t){M^Prg8E-R`YxQC39X4lLv>5s0xbi4cuyNHyfUV7|M=dMhJU5eBWb{4(f~ zswfGU0iUYGig=K0}sk{cJepdQ`OlGKxM zQC}W#Lo1$maVN!ku>?*aXL!cCBL^CEFRkdd=Hb=KiW9p$uQE8W&HeXBhhOa%>lQ&r z!wlij;%OuiIv2+t7%FjB$L^aL-(X>w-wf9dTPh5*h#<6KT=NKRHWh6vvI%>4`b=8% zHBN30SKoYeeNtO--D;Vge^y8|yZ}&_p#O$=%jc1tUoZLGN|D|gKhOD3d>5~-AABz^ z_P_htI=5da2W>OgYO^jbWDo+KKr?R#q@^py9XlhtdzGlbgSrJtpVAM9R2HSTHTC{R ztzIGD-#Q^EZ?L4&b7DFZPf*w8Y1Y``qN-gK=hTBe?>+liW#Jy?SfFo!>@7bz@OE(F zyTbyPpGNZG^nc33a%HaEN?k_qq=y0fHr|nYYrdICHub9lr8cGe7br>DePRn{8+pIU zCz!Mn$IsiGc5%Eiu%vZ)6_k8rltd(%l^V9-dg#|2C<|AcM_ZAVzK)x%rsG7HbSro$ z%&h7gP;nr8CNyU?=ZsH{%SxiIdm_O5o<3^GXvdxfV+$-3lY&Crm1M#d=9LYe$<3g| zS#ykEz(QV=`0A45+{;D@b`X2%Q z+!%J9&+5D&Le+i7@lJq|BTXt$oeNACz8u;zqe1T!vMhL_KQW#Y8_wjNBmy@*6DGQ2 zA3s=o19>1NLIzN+w@8@;y9j(!@ zZ^EKy>?9M))7X@k{Ihz7lZR^O)-q50KluanOS9$uT@%BKY(9n~w)Z2SF zFlS}-y1Q&dc+;ta{TnBYsCTHB?u)$7J9gdgKSB59b?-soO_}bRDPMf7P-eS}oD}VL zx!PT=>DjN|pRzOUr-%!Vg$Mj@sm>r_Se3q*OrDm9TmEA-q}hvBQ_8O@WW@4R`VJ9G z>;Tp3I4eboF#vM!jy6q?SM`f3(?AgFQ&MQZrUI?%Pi8x`f0bu#n~xI~6M22Tz(G0I z_B*TjOI!By@R`>6=@lPE>D1U=Lm`}-grEG!?k!1fmnn>=U|wE+hs-MT9$6v0yeXnI zYa*TS*J8KFkI1vl#L)`UWejgE9d}8E{WIE8!hs=4&%$cBxPEw>S(Ewzd2e8zkz+3& z7gd0R$ks}Qy0v;=w^%H&HQSF3fm8_`B3qM=me-z`oas~mwsCQdojC9X>EodMVK<$N zAwhTop_W3L{;D{Q!d`Q|HTX}uO$TG$k%XTOPp`DFB#k4De~|MyqiNMPnj3Cr0vIy- zok-$3FX9DGj5lev9Gj?DO@>};(GL_)d-GUo%ACoP`}-pmoa4ZL$8*_bx%)^zmR6A+ z3p41A%pGR(R(%I(Z2vMWN&D2{wv%-jQY}zpQ#XzZvURAB|HXBn&T#UNCf2G%&ystOg-GS_{CK1X&@YtDy_*fQ~ zq^E}2*0szf5Xekh0+l8v`k|RJ)&*d zpqFG)*2>;q#Zo{qY?*pzN<{p;xn`{87aqX(x=lL6cCWV<>e*Q-bTZoMz$H|B z>W67P34BgjN+L6!@OUASM0yLJM%~gXhqd&yrgW`(9@@^treMztB%uuv#tStOU+B`Y zAv*UDWMu_O2FxFD)3~2+%QA>2zzz45*A;F$2B2;=gX*6{;Gxds>Gcn>G+_jX0HL#q zYVmFr$Cb>0^cLlY1AwD>kDOb`Ph?=GV=IwQ_J zGJ2$wk>h%Lp5LF>>-l_MpV#}B&mZu%gaYaG0ki;C0DVx9ZH{Y#z7!(>APxCD007|m zC;$=W6BwYNtf;1_tQZ>T=i(6&6c`fb;ueDN_Ca|l`i2GuFw)Tj9smIG0Dx{vikIrS zYH-E$XRJ1;WH`V_s#hc_(^^1J<}GulI%a1us=Cb{xbhS9G=97nCXFP)w^Jrs%Pqd2 zLW{g=nQW;GCRZZCQQ}iqB}K)$7GEhStmAq=0s>F*=w_>wQ?|6iDF~_eaMOZZzR)_+ z3dLWaShYt`b^7tIsM#tGUpt?=&J0@0lV@rNF{(@$$Sq}HK>u&{FeiXEF03Lhy9 z({`MuJ^}0F>kI`ig=?P|qlZHTL=8mz%91rqX=p{q+{w31Q~U*%-a6^LPzlH2cz3g_ zI6Og0SLz*)ysK)%SoUR&w!s*hEs-$+-gehC-T8%{L(Qkyn&1+vA*URHF^&9o575gt zo^}WW;YB_LHP~zRBwS5hYujmKBQ?l;q!$<>2-9(jsa$&Bzb6?@sjZ_^{9R3e%zrW* zH7wnqY@;Z4(QO6Q(3;A&WOp!b+`nFuv5MjPc;~*fj>yf3nQxiGn;|EGK>$03szwSO z<9STgk+Gy2i#=)pP+B{>Y?_sr(!N;t&$-G~^YNL{R2y@r*F8?@Os6*nJ$f2LH;#v# zdI#jSgO@-;bQi?&FVewNoXQO!Z`&l|4aMMNXbw{f&Cr)IXE{u$rGdwne$tss-)@DMp{3^JOCwZ7eG4q9=i)y$Er?BKIK?SJhUF=T<*3N zJ%91Wou-YBd>}y9v0pdxafm(OJ$UJk*r3IrxWCj)>z_#YTgvbBtqtaE}$;)8Jt{>FQi?f3|m>UlHX}64xC-!)-To9fiOX5F_T4@V$v3~g` zT)!-;73iSdYRW_BF4AU9Q}9nrJu$xF6XJtqj4?wTm!n*yCunb`ks5I-T=*LD3B;DB zQ#`;NYzJ~yvT~>J&$&!TKZe><{6LFO9xzv35j@}_zEXd*Mlql@;(yD?SN!DefGirB zZT!YdvL*RjoOLNWV6Rk8APZ$bPI55AUAtr4oo^VRxZ}x(Cc`lH=wzf<{#D9mwxlZa z4+AbY$SuyVMe=P~Fvo}4(53UtpYOt^pD315j7}1u*|%5Vqd}*dTHY*m$D!93%qz8fV zx4656;K#Rj{jhln4V5N9iNMMW(T%0IdX-!~_!IT+c{a@G)<(?^ee-!^(a!UE0^h>0 zC)nhwMLA3H)#_U^|8jLS62?wC-pB*XSvd+Z(H<|g7RGrCeF3Z91&c4^fGr+|@5#|@ zc&_;RUH;4H#Og@-_swA$hPkP8yge+?)+(T{TlU<9a)%sJTe>g)RNllU4{ET3 zABlVJ-O7XaIV#-p^Y8Lr(CgqIb8xkD$Mu#!JC5tjhZ-IFeIu%ZOW&Z15r&~_(nB%Z zztT7J>$@0Swvr89p}+A7>;OC-CyimNvWkv0+qa7xN>Z)W57Fv7d= zb&~M1$x-#mb7>)~-OEil=@{(UId&S)qa-R6!>ch3w6|~AZsZR-j;(_4|4yycMb{OL z3CMt%cP?ZqNAX1~;_a3xl~? zX&G)EZM3x9(4#OwphUcHy)t?PoW}GS)rNM0EEWi6Cu_wQ&TckAuSxLPu}zGX(ahZt zU%R5b40IWVtw#{Yz9aiH>O6VLDyB*|Sdwfi#J%uq;$}1=ad8k^5h>Q-oua;mKK~MI zZs$+^KBjRn2nl%X`pf9g+lN9tOHIU@5i!C-LOQVngo%IVE8?#;2Yp1w0rUE%4*7UI zzk4_DC=fh)Q5=+U@n@H~wIgSxRRms$o!A(&OWvnz^`BDLxLF~{th*F?HeTFr2{e9r ztj0S0nOJkws-T3=czg|;S?uvGZTYx-L;YsavRnRkoPb8bbF!;~rtX~Ufllnc;=}ze zyC}`&sR$3+l3k8I+LA=l_+d#(=^y8T{z$cgrZg=ze-Y3L!|V#mOL305su0I zl}uHeIto%I%VzQc`U`nv1p}#6vqHnY3zx3x)D~Au1oBg)_3J??`F2*BM{qx7U)TO< zIT~xJN3_)0k_NCHGxW{~a_zTNFuq0o+|dSpxna^J&7;^ms&n3}p36mN&hx!>#On93 zxZKzz5<4ra$UB@?C{)9Q;{KsC@sG1foJ*(RHAY-)hWbQB#WqLFFG7M|_dIv99|JpI zDK-7}^bdY_VM5!^%?&*^#KAUl$wK5kk}^wrP`P-FFwW$lQ7#)wHTHCqtviEbFxRI+wA*60lBJ#r|yAQMRIf0$lIGWMEtp+rKk4y4L{D5uWGC-nI*i zASK5%{azmmHA{X-Rr0pU(?D88tThnj8u|Lz);hxJ!Bs7s>*|HrI47)}eO7L+J8As- zoPV_ICeb+#MFkzCL(%Dkj%@FCr6hHwcvb^FSO}HV>Zr7d=chpP$Fjo&=?JMkYytw7G%i$KMkis#%{M0>z<+JBe`=zN8Z;)+puyF5pk*8l z&>JoA<~KDr6NgsB<_*$b!`VtwPt2`BmQWg6ec=CAt-rSQ-^A1W2mhaVSwiVA{pU^d Ox3+)j^H<#ffPVuvSG4f} diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/function-0.4.0.sol-0.4.10-compact.zip deleted file mode 100644 index 417498f0905622d23b66da221693431c1bae4f52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2551 zcma*p_dgU40|)RkE?HkHUxj4loVd%#-g|SlWL4%FXA@^6K;Z!hA9`9Kz#agI1^|>$C^yM- zNxy=L(Iy4v9Gs7bVE3Ikv>B(eP%UG-RNary;U&#BG>d!8FQSLLEkT}Shjr9Q<2#d0 ziUHQGoWbI9MwjK8dN@CU=PoZ_$6Pi9vOLh;4?s}Hifc?!6xNrS1TAv+!K%sryZ++q z0vx0Hhln6ToHqZksIZBh8p^!r%%k+7evt1Y#PK{l_Wf;9OX$F3 zfF_U0PyCiN%cZAvu8tT8OlS7`!1V#z;I`F>q9)|`FgPHeceWrZdVfkN-dbG&g}ho} z{4+4pu9VJZjLTfvSUlM1d_Jzm#Y&j1C7Xq$90l4OiPvEPi&P{vK7p1yw$s=pd!>1QLl|T#{v74xM~;T3rmS^g_w%$bYG6R?Uj|SdGU>y z-H^*!sp3ibN4iG%Zw5QJ{z>n)h;svL`bYtRMft?(>WkEO~_$m zg{jVi^U@muTZkeyNuGNlr`bC)AF-1gIhz1W?m8(TCBItL3q&^pv1#m=2+vBq-71VGZQ#9t{~z6XuDxaP$02)~xv1 z=G%9q1yN60_lP^_H;&z3i45edFRGWF{Dxm2cW_`jJjLUZw(^JV-13;hlwI|L!u{2v zfWZvCJ%w|qaet;){VKUdoL0@Rl*7w7OUs2<2P5IJhg7PWZ1opfbF*u2b^ehV)|IJ=nY5!rcKlv}JiDvhxQqSoXNd+f-3!$k~U$DKCY zG+l~0tqiV))0uxuxeF5 z7)JOcTfPJ6Porh$(894dbpaE-1TUYdjjZ?)y5T-2sm4-y#w*(hjVBx6yVWm_tRe;Y zxY@VcgNJ$5Vi!0fx`giiwX}R!r_!@eFMIHp9AWPl_9HGulG_v|S%?jgn?egBPyL2) zY@dTMeMYZD#l8(O>r=}U&W@(gCBS2=zpo>c2F4OU7Hm3ulv~ZLG&FgaxpW+PTE>raGq9QzLq^+ zTzW9F+Kh4aCjB&35_@uHspSIl`igC5-(h^~PCc_Tf=9cum;@rfP*+GPtQK(`tK*1Q z9@x7hcrf?U9gYgLJ}B3YQXjk>wqI0MzNr!U2y8Wbkd8(Yf{C3Ts!cI1Z)obfy}izF zZ40yERqD88*FU#tu7#~@sPzWI)!VF6^Lf#kE=orq#GZO~;e5D=-1Hift12o&r;sC~5WlD$isq$Wv;0X3X>t6b)y};J zfmbqrdr$8!<9?Tg18l9AhopAvYPFs}Gkcb=Q{##Dx&uj54pYt6TZLq&b#AmW zB79KC2#3kp8T@P@(?GLdCE6DGkV_##3(jyL_&HmX#6fuj$M@Q?r)%){M9h5KP86ZP zfeT3U=t4v#^tA2$^D#fVg__^Kf5uK>YWiBR`3&ua?1mv{UThYK8;I_i4kx~#ek0z- zNlcLMlplqyxIUt(5aTm1nExEMMmHE@$4wb<)y5+_3f%u_2$nD++l8r~t#rd2{&XJ|?6YZFGet3#>8a+MsgCkG{@Fo$dj3f z3h-pRsDtl#Rq2#wR9CNve1EjNlAaTLzA17TI0ODFas#9g?;6lvS`<$$GIisx6jBYkvDB# z#>eW3KiX}DnX`_X&c^A zPE%p^wl_V0>x8@ozznFURcQV<$Nq@yzlo;$cm6+|!3=;`{(V#Zsl}f~|KS|~@E_$X B)#3mE diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/function-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index 897c38c1bfd56b88bfa82395f49313a7e8e24f31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2581 zcma*p_dgU40|)Rkk8oxg<;)13#MxPQwj4qsBbjHGQD@I{$ll{J%Go1I!rAlaOZJ{2 zhoFPtRZe7(Kssc8T<06;hZpb{JFB6A`0 zym)-%qcRh=&kK381B_05z@sW!$IvQUzta!V;f7rnS*=v}tr$G(hm8 zcUDOC=Bq@OGY_vY4TGdeU(e@w=V&Qw_{)&eP0WR@F}FTk965dq<}gZPjawYa0Zi>R zj&eFDK`^h6uzE?k#7-f!c0{51tyy}JY?=(!WR)Np!A%kE1T>0iOZjek;@cvU3*(7l zYg2Dv8>K}c`H1R(?VWH#KmdsVXh>+fQ^x%%ej{4Jb-&lX8ueql8M&SN`eivLM9ijO zB@7Zw*n%^LVzym*&~t}?Nvc99w; zE3w)21+#9rHgVHE`+}Tu4c_F>C~G$Qp5i#9Z{cc4)@$eLTnF{sozbeQ@QaYui8SOA zw-=(|WHlKHU$`Y2*D#_L+f#UGB+DZzE(MO(8}y?pOVsx!LaJ%xe0=5H!~ z3Dst=&T6`MnlZdfS(BsGmI=Ar^{1JTuoiX$mL*c{Oml;grEj_1TkUbQai~T{4iD>SRs%L<4=P{1 z<=%3|N1ra3TTpfQO*oI3HY_HD_AJ&B{nONIIAB3x3 zw7`QMGd2gyZ5Ox?Tw3Yrt$ zFz?Gu;buduu&IFTrq{~jEb!!$^$MnhS@Vb#F8?!=ER!hv20{SYWuq<4Slk}WBJbZ3 zU0?N_7}K6Gvw&#VUc+SxE61jUW2RE}!;-pgM%~_dMdIdQIP}}7S1C{`a!8(YWiG*^ zLwa$%U&_~@De}YM;E734nc}1)kWuwK1#QoZ*D?>#RGlA}In!4*BV7KdhBrr)b(a}Y zKqIvR(jPE1g|;w;sP*hAIR)cNV^szOpKU7QwK}Dfz&S4h(BEtp%-L`_M8~BrA#OsX zqZ0B*h^;*Kj^eUyDE7iF%sakh|5Ut6b4tAoKil}7Cr7wp%-!M&>9fY7U2t38aj3N8 z!+8ai_PmT(80C{I#4_+WagCpY zbtAD$;RFPNh+?zZBH^C z>d86@N(BEDj?#!lH$Pz+IcqPK^N_M?)*LD1+@Cv(=rR3(OPr9S$M8ieI&kl-?Y&_6 zZk5c}8o{`bL7Yg=I!^{K2@n=od|X`gGyz~YdW=!uNR-&IO%>l*wXv5K(d*I$>WSW( zcWeeXn;hP!;3iXnBuTXst)Mbm-jr9?>1?qC2)OhyHz?q`$(YiI&tZl7yAa*u$Q(># z4c95cLyzKA5q+ujF(|@HNyL!i+RRGqqdm61PolQsNk6V>pg0FaktGj@I;V$gG+-Hw zM52V}iCBz;WO7Bg(APaJ59zj=f!;s1Y1eoeqfUK(M@;%o ziKx`?SNVM`{fU&%_{%K?L;nnR71W73xzmOap_rhDKaK!Y8TXzU8igPG2w12On48w$ zDgs;KV!-y*pLk0hb9QBaGmMxfw+j{kt!?OaD?8$NjdCs5;M5>&RHmCs6`Fe`de7Pc zMnNRsT+RYtUF>9D_M z*xyPIG-gM$_S3Cm@Y?j9KrFZU-tdj`r2%;oi=}#3o_x*x5kt^EjmG;~HCxvSuI4j1 zCn=DE%h%Y~&cL-~`AIVc2)L;DF-vQ=07U;r$JvuJsW)=*Ly-=mR~TrB*TeZN!PY4& zaH7I}bv_h^cC=y+8(QC{c!B3<*ED^{IGodCFamX@)3iOdcwmu9&79z#RVp&y#)nOj zJ<4>4RlMR@BeBj_OsNYhF_j{D4i+EMbTcFLM$ht)5MJffw`D7?5tZb2_H#?#Jy$B$ z38#W2b4VvVcCzOoDlog%X(1Au5asVWmmVDPJ8WL-vB63V*3LfVn`7_&UidQji)vU} z0^JpTJSq@qAsVycxB|^p+gwGEMVcFQ`kWv0h=|`Ck`#$Ta`2oaPKnQIy?h-)xABnx z-HM3dN;K|b%q=ZwBYNN0jvJzVRhWAqY6piuxJ-Q)s{OS=k7L2p=ZB09-7te7aq4y# z8nrMD&e^@o(mRT#X)vQZ*d;Lg`xoT>TE*4$vL}JMdKfq@U5kA`0jTmi8exz2gMY#! zHZgc#L|D96zm;w;2N&dE5_|~x1gbe8fk6O5z(CD9h?-lUd_y14r&Bw5xI9SC>`*&u zIf$88)|FIfXWh!vO{LXr!Tla}>*q@gnOM=1|1ENM|EE=!s-;$qscrs=t0(n~FTQ>H zQHc^*niUYkz1W-iOnIsS&b=OrXo#9b(#-b;_G+J6&H b@$dY9bTc-fq5bzw@waAwx9Ttc0D%7hB!|Ue diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/function-0.4.0.sol-0.4.12-compact.zip index 86d3cf90953b2951349052e303ad2abc616f979b..654e6b1fda24d83fb48eb5c4c54f4d14027ac583 100644 GIT binary patch delta 2792 zcmVaP)h>@KL7#%4gl)4WLC~Uw&Jl0004dwgEWQe9G%61M?_vH2EXX19A*v5sj)WJi@4G%ZTj|6U8nkBn(2EOO0_Yh($9H^AnD;OF$;>+=G-1A0ELIR$xRLod` z6Dpmk8@&_~XoKm07-@v&a7LCnBTz) zEiB0A!m2M9kkD(@!y)?>K)Hn&RKm01;7${m7;y2KAc4);%3PL@M8af%BYMURj?rwYEop z&S+#4iQlcGodI#l|5Vr0!YJ|wL@~f0;pNoNbG^#r(9muL(Q=@axSM`eBf$kLe8d;j z7P2oM58+}EBnq>mDo6Ju7=rfR2U?v?+9~mWROn!)2WvFsf_P+uK4{PR{vUD>z9mDB-3Jwa}E!csp9sVeoBtIjG;WCBgE?<6Cc7#zDu5tKe0 zePcP27uE$nNG3c@_gSH(Aje>!H zg?77e9Y(WO=Oe!lQI&JRyOlnP3gsS)_;;4j{4{dijC|G~w*PXM2$PM$d^f!Ib=(=O z;Bg}1q>Q^VslVz^$|G4fg`iw)t5eTz^I;8-eqQ7o!qif=i>q*{%ps!)2@rV?C+q`g zAmr~gN@i);BE~yFG-MaDB=6L1H_<; zv-$m?*7NQ9kkmTU507ANN>Md`_NNb5(s7c`;Jq1~KRkAI@2`N@_VYN+!FO^Xpz&{_ z&wMxwtPA&FuUF@%LZs?G<5+@9r^EQB;1Qk!yR1H%w&u|&p*v6Sx|VP+HFv$US?N*+ z5UQ2clvFQEgfMpvVS9v}R1Fe;cPf+a=#WAk zIoXE2^$n9GT{K+~og#1IdifXRD42QU{pYvBq=$!k3(d1&8~0fbi?N@-vZpRe=}^pK zAbiLqAbjmdzE$o<2BW!$w8Gec7(u|mGF%|EhUfztrxnv6O>YtEs(OqNoCNTE0Dtrf z<7>XY15gVr=MqcYhA8fTcXB+~{>a5l+kBb5rCULYN7fP4?SR5Aq2z{xWlM!6Po@hV zyEJ=orM36)=d*jY6cTW{iOT#*?v?$IfJ5yOyfRrUz<6RMuE3b-a7%UrVo-Wf63Jk* zaoahG1G-=I2;V9^ecOFBznBVIe^F8^j~F?N9yj!wLd5)D#|&S8rq7Czm8$T4?*$~KsgbEa?$7^~tcfu?rmX+-!%vzdp{=h4Yrpp5JOMGWN%hLO5*UA|O zuwx6j>;jUOu}D&X|J1B#{M{%SAR~Pq>TNdEB%YJ-FlMG{f(Ha%^rK>g)s0*!(seWm zo7#S#x%hZ|do9C~Dc#(k$GEsk3!r2~R&zXed4hBuQCy~f$6gj$jQ_jT&Rt%aO74DH zW#$HF`x&wWhf9rCw?iiHIrARB^R3&iosPq!$aTPeTx3Tr}m21K8-1i_#LFn!qkj=S>+Rj==BAE1x;GY%YAtMaDUXtii7!v*5S6upM!08e!Xd9@ z^3QmE3w+Z4`w=IAQ*sPyj!Ou-f?_9A{qDC3Gl7Fg^Z9I6+9v-uTyA@G;vV`=nF1B7 zgJr{iJM9gTMh`r_yg@RcNF?Nnz4c(YL~!;j*_NY{`>Tj1b1z?LA&?vpJ07Y??$`0_ zj(D_t;z6N6YRxbk($-ZG@M)yC-m+ za5ZzN{EChC^={B)^j_X>Ovn~2FuNTC62(q`&G}I@wQ?X`)bsKJUV|}^LM#l`3|S*D zN^KcqaP_}0tyCFy)}7$?7&cs4uN0BDt*v4fMn)PXJsK-Gb@Bf%lC}nWw;T>Me)CA* z#9BZyvNgGtMRa7Lc;>J1{(72V2qmp#)t}&meW@Py5$!D}9}D*`LN3UGs~v)`2tfLO zSf%|YRd#eH9-W)T3!fsa+=S$ia8BZnBdduC55>E&Ij#j@h9VDbqwh~gNMUsvfR=GB z2nD?~S`$E?pVLA}VB(!R)w`P6(tIHFr=bX}tS_E{zTzOvBI93t%mwjLIPh?@n(A-` zXAy|XkiNb4d6>f%OzmF}@ej;0* uO!NJFHo#Cz0Rle*KL7#%4gl)4WLC~Uw&Jl0004@KL7#%4gdyla8xQ)(4KY*000_V001VFAPXsxL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2tNDp~Jdm_;vBp@NY+nX&d z;>f?p0B`uuq^?nj_z;Sh(M9CH^W{(SpvUbg6I5wh{GNfSYK}XdT-ZIVR%SAlVOYDQ zG{3ZO7!BD<ByLpdxMja5oU}9J%8&)K{ zL_ZH~0q4Z9g0ox(o--hS9lwLCowgZ774afdTstg%Ciy-H2@zVQ)1|&pZ=jR!7wI4B zTBQH0z7#(bin_29;`K6=R8^Y^WZ4%4^|-x6Q~7wU1(4I)SC1m^wqRm!S{`L^$+qBX~Uln@30y zqYN=%Z>Bf0@>z2yy9T84OuHIsZ?!KVvxO*TTtxazp>QXrNq_5{-9RTMq&j$uUd(!o zeh{>$Z}7S%9sTsC(d2*AUjx#0F$XnMpS$uz-BQg2U+COC*qgzhze)9vy`aTtPFA^- z!3wOeyXpUyRKTjCXCr#2rNU`a8Z5AVynHk_`p+G;Am`XBQtoSC0_9qGXAX%n4lI-` z^;%JO1f*e=b-7K+yYEy~i5b_>dri4YL2%QuZ;RwI=OEjapoH3oEK#xk;q5UEoeokih0 zK#m#SxWVoIbD4j~I+yciLp>V#^JIeF+RV$eK8R9nC6*!hvS00d9DV@U+{eVdu+#pk zr8TmQjyc_8aVPS@uFv_sW>bHw4?7z=h-C~rkPs*6P9U8z>*TcI*=PU%m=?_gOqBE% zT~H|;(rp8J(qB4w7{(s%{`1qZT^7AMqvl*Uz0UP;iv)kiguw0~Zgv0=)`=(=}JVkKkx6%MYYvZ*2Bk|7<@J(4Fqh>}Pnmziez4dGu(unhwa9{PVlJQQ94C|! zI2$MmLm3n`Luf}o?1x=LE~qH$Cdj+LRs5B|E&VN3ht#O4y^W+wPpJeWq9$_hw|N(- z4fi#4J>9g>ZBwh`T~%0|C)T!QMZ&Gjpy@@B#BtVN$0XfCv9(%%`&cc$MUIC<>C01 zJ{zI23+q9(B;ZTKxZ@kwkc$wLILSleLyC@?+Igbxw#z!E?t&;_|G65JKLkd0ensRv0!j1o8+!ZDlY%fCpH3CeAJyvDeUt#o7n_Qk0Ob)>*qxhbvTv%w>~6@bSHu@gamNuoR3>~Swi|2<=&3* zvqdoSCd61*f4PR;AlP7n8Cd-iq41Cv^@FElhRq%gFNJGE<*Aj{Yp8S^r=x!%T#roN zKoaI6nqpD8wS|5w4QtJE*NI{|XUV2TGSHx5fy;n5>z;S-+v$MEOgkCC!pMYGCAoSWdCAq8%s1S}o!ec5icrwsFSMYatR0~p$~ zMJiC^Q>0^Fbd5{&vd=n8Qq4Z0vV+k`EMn-=4gskK;42>rtQt3U6l7_~pai&||3@*F z3cXUNW#i}_HC>Ug^T7ByO=J=IxK6O^!})=g!d+t%D3S@ej+T_2sv>`^?V|3Bb0!9y z+<6LBcU2r5o}3+(MX9S-m~UzjGen`)VfA$*8gKXEIqV~Vsq%iM2Z;u<)(T?b?{6Mg zxl&3adDHjw`32xD5e)W%2MupY_9ky-FmI#N-KTzu1MlUZOj_%AU>Lg8iCZYW+C0}o zdy5qcjW(Crl}4!Kd^UeZ&YA4oq;+iz&Nkq`;4#Eqd_zvL6JL@4Zp_{I3M>gV2fTd{ z2XgQnmzIIo5@(G$l%lv{=Si5hge{I8`q~@O=L)MKp%mcbgXS3Kk{lsZZt-tUUiISf z_E}k|xC*OSBb1FB=Jq(~-cClNk826%&6@G0#l1UQKw(%qH|&3I@tM%|hTgSK-ChLx-}`Q9^}$@aFfnB@os+LWwvHEwp20s*W7 zHX80htu^=Vav%M4V3OtQpE^zZ%TJ1K=2 zLJ4HXU0k7*fHEpX?vu(n8z)AyFMyInof>-=MX8<7;}$%0{!4>NH_c8FS;&Vnd{hPx u|Iz|Z5Kv120zU&k00ICG00wYyR4P@_o^}cV02%>WlMf3@2D%CW0002x(Lt5~ diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/function-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 50f407bc4c9dc6ff8bb6f5830cafc02b8cae2241..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2527 zcma);=Q|q;1H}`mU0aG?RA_Y=wM%K$zT~PsqH2p(6~v}gjL_Ih%~E?yRHzX(D@H@C zP}JVkYD-1Ez3=z;dERrL^ZdS?Kj3Ew1zl1F&;VEgvFf2();SR2<%6`f_i=P}^LLhX_w{K4Fi~9MxLsI9fG0ECiko zH$q9`!wZ&UaK6|GBN#?n!|xd``Ywn zB9*Pkza!OENfnxZ(FG_|vx|Fut_o=gKFg0$)CJNA4LTgEiRNk`-dMK2 zB6t?GJYMJ@zp!Ek3o(WR(RJm%m~FSR)mSmMawq>C8GFHuD!=d4`f5sS&G(gsN~mbB zLXR{@s*6W!0W2N?HaR55JBK+0dY&~VGR6-dkER|DAHD4MeoygyMWgXJwdMr?J z?)ug|Aw+|Hr=8Uu9iuy&-+AGdA^G>64E~ zZp@2qUX9JgHy}Pi4oZ6oswJ1=T;#HR==h6c7!Tw!n5N*8hz1|J(?QR7>Trc)aXmMh zWTZ{gvsx~4UzSSowey%Kw*$aGYb$Z>7|~(Oa6pGCM|+wIjhuJZ(UUzdrSj&g9GBN<;>y@<&;lnH!Sk~>JL_{_r<1=Cqg-_8q| ziQ1p?(t_=O*naThK-i$_kXUh>*cE?peZmoHG+4qV~eQ+pByts8iDBoL;a zkZItn%pDMnKNjSPz(5Kc%-@7wSW;UWhNvig*d2{$Ziiv2j&A&!6`P7H?~1#t(_YUt zwKzuR0MYN5EvHD1N_BSZZOWlNq9NaoKdYLxkEX2f_b0lPOVb|gQ4eMFD5jdNChod8I zVY0DWNu_@-t1vpbd(f6i>VsX?StsB6;*NB+-o}b58MnwvsY1Uj9ZF{k&Gsj>lqhcn z7CO1}9y3*^2S=8DgQPRXl|LGb4y~^@eRG4((f78P+R{W8oo8dK=bgn{u1$0HHF|Gj zu-urx!kX5uj(VHNCuaZf{}^G%#TwQ3DJ}h8IyyQcYT*I1%22TUbQM@pXYTT7nY@xo zrof8c0WVJny#>j;GJn7*&y|jazQh6%&9LFmHX^_@*{$ij_Hh%|iJP|bke7YpsW)@> zP<#ak8rg?u`zEBbEgdm*E!*6spe*{VUqE38^;2^y;+44-ZR=}VO}Vo9N>N9@N8h$s z&9PToe&N*?Ij=8$ZbtvGdly9fHVtf+q?{~+Z`+OU425{;GhEFzyC6D&D<9r)`Np?| z*dqxH!B%f=s>L*)zL3(Kw=!JNDHH6QPK|i8x9`h5U%_1t{an9zeiuC}XM|Ml?=k|; z21;CU$M_!^fm2#_2*^f}%u?a*6a!@-3Uy^$F3n=vp~e+>-nkdNmSc&K5w@LG$;yCA zlK$E;w(){ciqUqozX~O(R%{nE?hlzJlQ`GUb;Uw)JV@efdv|2y9Qf`;@ASY-Dan#B zSr79bHkYWK&i01=(<>gMJCn7`hf0Bp@k%r$wk&`7q40FTNq(Cqv^cGG#dPXg9!+Nj zhA@DgNV8v`&1!qkN%Iv5LOS@^(NNtVn{Yl>ho|S&-y}S99-!#*H($XL2U{NSU8YED z+P`+vZgD*~3{;NcJ$(h1DiRlOL`?#2``w#G6faJ7J5YS9K1n!LQLPu+B(8C7}MwvfO-#62v$7( zxIm5+OfJH{wtmW*QEKOh5NeSp11`S45{tx>o5{^peEm)kLLA$#lcKC>UJ?6^Qg>r< z(@AD{tdVG)kN~S(N*%ZxB;z}d|7o#drZ;*n(voSTKBjQm^^X&33f3CCTXp%$OMZvA zQ9%lwUf1OZ_WfE?bS91_j_|n>mK86pCw>|#%sCpo;smprg0{kA)LU;>Yatfd z@@ok1{HfYKvkp0*K>++tQqVf=d-WgK8Oza&0v@^amH{m3Gn# z?#HEctvH>9!%Gqi8X?*ZA0Rd%AI2v${s9zQu*j-8wbwKQr9Q98>2GmUVkx!5dtdf1 zoqa;id~&8D!$*QHJe|N&TXE5;$**G>?O_yi;w#tu>6e)AvfSTSm-;g#3fKPbOO^X^ z+T>;ghL$VHdD`s#;yZv-v?|_ARAArGbK!-FUyYv{7kk1xxgt~7OaiTjT8kp0zY;`d5(tW8j8I0V@t1}fZCt5HhBQHBwT_yC*gMALQWi1=7%0)aj%#Ce2xp! zgngE(50g*8Z zJu28c=%tmS^jMsgw02C*r&#Y?H&<~;#z$iV9C{Sn5*r>Fv~Hl+O@6WM);Vw{l6x}6 zQf#*))#syl6LxX789_@k)g_pi?=Rl33ZQw425CJK%JYaK-b&hZ2f^%kF@}w9cQh|6 z*9=TRXe2a>k@3u2^r|hp(z1h*4LW)bggdtVErw%Vzr`BX zM}#K2BzV&| zoIr^HoG}>0>RjQp#NWAhSv8f_=U&VP%h~PjO>#QS3h^(wL&N!Q>L}c&1Wrnhoz4^$voE4(< zk&h!XDnxwye1HEw9^cpN@p?RedHn%T9F_)z2B-lh08AvBR+X5B-Jk~mG0dL<0Duqh za`boe_L7j6l$Dg0^z-(xa}FkY`}*72`#QS11v*Q*`+0lOgTR0d0E7boDkjDSafa|I zB~QIpW-J)?aue+ph)Oi!RlQaZ?UZYz42D*;SmFGLAWBiOZhGtoI&%F*+!Pqb6Ii zB=N~l7LMmC{iOW!WEsn)&dB>SgSeXqGu4BQ2!=-KcL#EqYRitf#gAwCtgmDIY)7*F zmG6&a^I`hnfdsWAgv-8?U=67Kv& z-k9Z8xsnjyA?ju43uImID=EkWlpOANLRUztuY#5k_jrtw?Zl~x$4tdLpdgVcBaSL! zHr7{DlgYqD#s>oGuR8nWYHytwx^i*Y+7Y>NV(9o$0ED3g2g*6^%@0#8X~ay?M2f!W zWgLv~rlzE?-g>iOug!IODuhAx`}0|bb(VVB4fAIcx?Q$ObdZNsHKqJ9a^M5s(Azi` zr}A5m_b%MqF1>LPvG$3wL@>ttZ}c*+o$xxsS&HP^@S3vfc7@zlq6^R~zn`TAuhnP{$jBbGqfYsXGwxWYIZvm%mg(buD1=Rw@|PU4up41Y?S#KwlsMynQeR@eIk z*vxoC**3k-V*RDv3;GzXjGZZ|3 zTYPCm4GCsdSq}Ge$$GrLpmKtc!VUD9pZLL z9gAW0bG5#A-OC5d=ym2rd+sqebfIs<3^b=D7Y^HZw#;O-NQ5Q0gOx;b6iCJbQZd`E z8=G@~oIlEa$2}t@YvL;h zi!&h{VM3na6;Dm;zOTJDAu5Z>=f+cW}jYrb;s)Nkkr z-Qh^ip@sPl@fzkHWC$s12&&Egi3=Z+)Xcu8_eq0x*gj$M2%8X~_CROcOYrjw|C?C< z=*ion@wUR1Okf%4kVFjpgXS{ zp2@eQx(KUL?LV8sFyK0bXpw(`GD`v0=fK`axj4sDd_GYg6h3a@Ij4GA&sV^y&2Kpc zE3yJ(h>E?Nt~!<+Zx%4MDz`#l_mi0>LJVq35V=NZR>i)!Yi#wZ6DF_sW zfrOej#80d^2STl;XufUmo@V8?<>n3jfE$CqsPR8F40UhkX8U0J9f5BKX()J?7(Z;I zS9pY_)(_)7z0QfaINNuvV-!o%aL`pYxOqe%3!hTl1ZBXJy*rj@_Y{&?-;7E?n1_tW z&0VFn2h)+5rMquxyeAdPx--+T9JBpGSUa;gPatm{7f;}QLa4V(ANi>|Iu^STej+l+)uAuyFCJz% zhCiBXtslSP#k8$vR_~5tR=L6mwEzK3`zhihB4SU;P)jwUR715ytfkEVyQ5C7NqwL@MB34yd z<03y$mdcr|OSTT@?Sf;7!rPR5di)$34ys}`Vy{|>z3EBmO&mn*J&UNlHN@7aDu>!5M$HyQ&2rirEoxP* z&>FGTZW^v}d+zu9JokN{_xXK!|A3zIog$VT!3uR?jKlTj){3+v=ugp>@?D*VCIH~Vs-Q<{nrki4& zcZ*YUmp^gDew0H6hf2UQSLiRe_(Ds4j?<7OrE@*k!kQ_2W_PbwmO6HU2Y;M-KYT@` ze<%CbdqI@Fdb=hMbEUbu#e+`lRu6kFamjmgnRW80Jw$~9d-ktveDoZ5g7N;lIcSRWF~Tt~=XR%P1tvkpUEBS;o^e;GrVo|tQO@DF7>ucLF=>)?Fn4#~?IO2MC7 zS3lFl$hno3p8Y)BT~WJn!rjJ{MdrOY^Y@Phu_Z=APKj3{d*5#{g17LJ^E(QM%cxhm zIW^V=FYDHm=!8c9_N%mNSGPS65@uPbqx~ZrQg#&59?{A^>|@~>m5&S6*&8A=+8iz} zzA!sG)xzAQ930C(mt_QORxk)xp;Cy^Ze7*~316_tQo($gjz`v2jzwd-7Z*Q|S#FUw zt3jb6#+`dfQ#IkOX7Me+#-#E*`)&Wps~SF&g6q7k4_hZi#ULrLJYX&}zP0LS&@e2n zzw!LAC;rW}qrHsEB3EhXj<%MU)*E{gL{>Akfg;kt8#l@VVmW`katG;}z3-*6>!pz4 z%a6u?IXv%7<#{F^ixb7~WUcTdihQjVFJK8edJ(L4_uJk^Y1?y&sy#wK2&gviPI|9+ z%KCK)$Yku|>R}xYg&t?*pT_lgX~h~l-H*Kw8BlqUgPJ+pMoerM$_Xb0MVl<8qx*wy z&+k(hF<%23bI~P@O#3h6)K~W$rtkiMst=wR?g1o-wU3GQvw8fg&CU|>d6j?Yy_#+f z^u*0|lQl8gOZ4nB&dKJxjxNq0W|Zzk@HKt5K)A{~af}pROX{c5dtLE9i$C;a8Q_n`=`6o3vPKy}oN*{B;3F?#7?{AF;wz>>VIu#*++^U)f2YGykO z$9ZFGcfqEs;9#SZA4-xo-Q^)a4VV=MV?&)HWpJ*O6Cw#~p!#oEF9)lE^ntshYn2K+ zx+3|KuwP)SLAnD0zN|u4>C|9CGdHcS5Is(Z83I({KteI))h!)qm8dP=<6as;jZqB4 z%@1cX-Mz&fc1A;uT_%{qssxPT*cirFDfNc@(A&0PRiEqSW*#|%uimaRZkG&Q3fY|t z=(xA$2eP|lcT^X2u z7RA~@g?p0;5P|pYEQ{=Fk)WZcp9m7?70`7ec6QU1SBJ_$eyoFe4Q{_Z1q(3!mH>;t zTx#c{OumG16`$!R(-cGNAX2KXjsiwcM`uKP)(yK>Rd0+nNC_n;8=&f`dl&PrL{*W? z=r_+sn+6@}ZUY@?vNU#vTHW!q>aUH?zKuVV!L#SI7XXr_?j^AglQ2D1RN(iT(1xvm z-q2}9Qs1yoxpXl?)lo8#>Cwhm~4jfPy6a|tCcv$3a6Mp>HZkRY@wX$ z*Jev$tH9}vU*hwi^a*jX-5x2`_B)0Y3s5lc#m+2)fU)wn&Bj($zPfaH->gVtnVw9; z`N68CGlHBrqCJ|K%cy)5SbQXn7A2i<19B8^1;*Om)=S7>vmh5%f)V-yaIN$gq?EXi z`S#v@Wd{90nxd<;(yWfuY~StQL@(JES(>Lw((^N>iIB1AJSuAjcQ<+N&FtoA<;{R; zx`OY#QL7r#9{7*1hlwAB!%!$BFgU0p*$n0)Gb^Xbn;%Hah3k<_={AoX46oa0DJQ-S@I)4LOMCJ1+R1%dAtq*kLF?rhOh<7 ziUiijG1L4xKl>d|qRsf)Tl({?YOQWtA3>@#Oa^7W$t(o^aU}rv=VyLG294dg82kl& zILM-*AP7U@cxOiuQix*O(1;TevAYiI_X}((T$Pxr%qjLM8)V^B%F5Mh1u_-rHMU$z zsZ5Axmt9RiRKQu*_!2>d=`&)bEDOod+p3I&$+th=FEYliUYo`yC2Y{JnN(^~K7yqJS#E;*qV4cqFVm8iZH-D;uTP z3&5;70{zqH z^QzKa`x-c63_nRDAQP zG3N|}dxf7r9sl!bBs12=>L!<<$K%{?mugT!q<43>tDQpf_Aj&Q+95>{A0#5%H=M4% zIgf?=hh~RV>~d2Su$hc_YDUrHrX9aZ=?$|u4AF)UXongbDbJVGiPL)gG_iyOIR!u5 z!wdBY?Baar!w~b;T!Fq{1!9lDxxwi;xXKI^Gb$%i0Cy5nn@fY9>KPQJpT&3eheLtx{`GqLluIhMk-C zJj#rsNDPk|S)z5i4?R{bJ2l$0w}lIQs zDByL)PMp^BfIOkZZ{@0ZZOd=$iOU dH#n+)@c((3DT0pvpEuR-qJJ~ux5)tj{{a`mnLz*m diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/function-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 2c9dd1437da1f8e66903c29a9a824b86b38a30c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2557 zcma*p=Q|sU0tWD?NNtW)O=HvyMO3YdQADXxD@Li=#ulQqB1USInzgsq-lM{?cTrnn zRZ%r+j~YdTy3z!`Vaa$ zXF6$)CA7$YX0@2GYB)Y3j{xuO*11e^@#W7Q{Q!@%v4SeYh%@HMRHDXe$I%b{!`uM< zVaX+kR`G|T%b}lGYpg|_eGCE@bv8E(Sm2#RPJs+FvUByJ?S?ww_?{fwdIDGZl0{xX z5+<%jY`?R?fB9UOu{Uls)BYOx7K9{L->F`;GA`!ZgM5=;J3bNbfEaYFA8U>t`ijgB z8fLFN#csw%huhMtI>#Kl`M)l)=$coEwsfU4!^yS;HKbKJ|O z?Hy`O((J3U{)sl6cwZW4rO3Zt?3OHTK;glgUFYvbPAq~BB`u_VvXdueiAH69|2bbp zKaHdPP-8nnmr@hIA{gq9`8>ShV%&{@d>(fWcvSexOY32qDR-cbf}a`9xf0^8Q%{mX z<=HUJ=AyS$BK5In-p<_+?&VS@B+Kks-A5z#&oH|C6z5HQ@ZET*@mtT|1EJr#r4qwr zF;R{oGlA&iD=_T&(YB(m1>vtCjPPTZx5Ha1yH+b!%XT8?>wjyAOdw_SjAknJxN*X@ z=Jx|Vo+28KG5xNe=uP?DeI8bcc(PLlgBRy>ERTA{J_(CZQ5*XIPIM0!Qs;+QYNk!s z1!6^|_A@QG3lx{t)<^Fi7SPpZC&?&cXu)`wYr zy42|8a<3+{a#e$WC!ZIS=aQ}1mQ0y02h=H#l#^>!gMmYV<}cHYWh#go-@A(D?+8~Y z8GCX%r15e%oUuCOsTf&u*m@~q4W!Y@4#x>}qY=6R8 zD)+&1AcMy|JnOFvC$~espnYVP!mcZyXzTXxn}t>Q+RGNlb9P{pwrDv=C+v5+<{K)$ zX?>X1oOTRCvGd;Xp0gTeI&dxD<CqChy3tIZ^0d7ceqp)VPfr!~p#c@u;i< z(j|M=-l>kMi2;hJXAg5JEyQczeRn}WPH|97SWy{k`jtSHboKg@asFX>y5zcR^X#E| zury%6c7E-FJt*>mREEaB)_-Qe@|t?G@0a-*nzUC(Vrty2DZhOLk^?%S9UXRiXw|$) z!>%jVc!aw=Fh~^5Ve~AdY z<#r|=zDBkuia@jU`4w;U)YPe!6%-)OIA(G^zE}^*OHR+-L564;sjaiy~FP+g06=BcS>0kskqzA;9qAhQ8n?696oA{9H|ZH z4n*KMy_fU(hVmA84FX|O!nH6hSh<7V#PT|qZ}c59nU{aR{OGmHqL)xGVLo4Pi?h%N zyNR>hkmP=h_9k{^6~bMAKdN61Rmk;)KFJ3bY`;naejBdCiaw=GB zTS~98n-a+PY&ba6{8&s(24tVyS&=E-P`%*gUd$6)*mt|>N8A2DrLtY}(xO``1Ac@# zyk%No5KQ=PPGFpIs#h@o4ZB0AUhtqIKjCFt@*#BJFc#5Vll^g|4I9|F!L`owm%@jy zn;ffO`kgx!9H`q$zAh>xEPs93fU*2hk=r4_?i|M?RX^n>19&FvI9{@GnTQj{`)e$m z!YLZB%4_I}8?02j;th`Cu&7hd_Um-g%&99fn#_%pLW1*jVSj7A7s=+8K5^|@K{^ky z$8l(SiM<4GQ{Ie@Mf~Lx5?GhD8szeYYs*gPjxoe+7Bd#GQ5xjN#S}EyAAI#(Flp*r zI*(tr5}cA=ntKJj=#|4icm-|lQKOR(P=7hW+ebSvH2wy3sHp9j<^F)sD9BKNjOv%E z0c|lE&qae*Pn@mK^Bs70B?g9oI6+-;QOULH$S&1|`~F9?>%>EBlL>YZ7Q5$r1gv>81ekq=?nQG9}>8gL?@hYt2LeZ%#IMk?SG%arBX3>x=+1vYtf z!*Zr^m-iq;(wGMA?0?=lefK5Nt*@MS@)2f)6SDDZID0kbG8n|})$2;jETrNUL3O=M zS#^nV3Sni*fuC!?37q}L@Qh(_%on%I@A%k}vF5BhFuDDQFaz9(}@NcTor(oeZK z8x2WPOGtn(*p)rrXknTy6+YEG`p}e-8J5i$zsG=O6N~b06C4bQ{ zTs=BL7pno6ALFJ4L!=CVw3z3gtQ8__2ThzUA*tyFRO&A5Upn^sN?KrMIvk>DhkjM- zBqL#9f+W`bnY=M@8&KG;vFU|iwB;}Ovh~Wy%81Wys`8=QR~umzlz&FHaUaLKI7R|1 z3lU0-PC)mH8r}W0=f+jxDc>XmoA1)21lDfOB$u=FCSyv?-uVT)wRXwmt_fxvxoA!B zDBRWRXSZbGlN4zEK3k3!Gjt*yvO(rs?Jwvd=6f|^fKbng-IjLY`t zMSEh8aNxY)R5H=#1(tD4u}W{POk(0)X7AB-Z@GT+b*YX8bjn9#p_GAJM~tIrm$H=Y zEUlJm>BV|c$wCu#yamlwGg&FaK!@U*3g!Ps*&mnvH+YJF=l>&`fesbu-#5jdBL8gS JALIc5{{hjaUV%1qUdr zj-WF^0llG)YP4+$0ssdU7y*Zm@YQfB2u^S+p35SL32cqjFQ6;@NqE3lTGocJGqLi8 zjoskb%0~y411#{~aK2UJQT@~Y0v)jZN;9GWAnOlcA*ynWh2P5UZ*{dd7^L|FpWS&y za`H6*Req%8nf4q&K_Bz7Dh;)r$Lecw9id#-9W#FXM$01Ds1-cNj}r^5$%Cj)gMT7K zL+{i!z7gBO3NC4_7mN+;v+9zvn2Y?in+2^GP;2vpM?ShjK(-759gW{pqA z-HC#X4~vAyE{-+nt%Uq!Nezq z=TGu%W+g1IGZvohhMITdo?DD%szPC}8IGCj3DeR|3y znQtgI9?LckC5w}~j+&&A4v_-5)uqZ+PS|zL&+EEDy%eUR`EQkTltEwgd&Lt-Asln# z=Crg|(L94gt~10Y4CB;C|LpZ1Gu1#nX^K29ny#4-G2ze`uq`aRr0Ag@i(@JW{aF;O>VwO}wlG&0&sM9vh>P*^ z?XF<+7$=xaBf2{AAXmH8shziprExC!d0K)Ks9=M6+GX3W%6X?p*1tIrc*)HUtKEMG zv>o0b7w2$DDY`=9$p*C(#D<`#I0D2$g`jCOZxin0|^&=FRLQ_!nE_6bE$%s^zR_~t&#o1yg1h|;#10K7(m$_tJ8{n~jg~XyIOFTTCPyVUfqeY}B zCk}qL;pE|CGksueJqcxYWzr2DOWn*?Ba9a-O`s@d{q?79KRZqR7O8r)*1FoB+gD&` z%0=z;`5*N$|E1SNN)Bf!_&J?e^_E*y@UthZ=Zb{+T<(mcg0%ETq}9>A2^NCXU4w?! z&n;OP@$=uhXU`%FsYs<%*~53AT$_qTXa!x-6}l}QeRSlPd}Z`Sys&+@R@SKtX#1*K z`vYsfD8RAYOL?I)+2P<45u|4A&7UQb0WY16UPC-ZBiwH-{AeMuY3g*Z+8EM=iwgpp)1<64Vj`Sxd4}m;f$c zHGJ{1UA&gVh3;RPT(E^GoeYYP;g?!bRCN}DzZcBG?8QY+WksMttgh`(Wr&tuJ&M{P zfZZ(gv1|Lyvs8)Rx~@fQs9iBy>NEU5t+>wtS={Uy72JH2b@fN(rnu?GbU>)YNj=5dAb@ zd0VFCid*j+48Kg=m?IWf*9&sI+Yix*RDw$cFDz&2+r}?xuz< z)P341Xz@H_OxBWDugP{Eedjc{uU8R;r(JAQsy)_c^mm*JK!}z03%}fNGZ9z?G*EePO@7C&N8+U~?6=&T z8EGMZk<&<`@{j7eERIK+8pK?V-HN+Oquwxo8WK3ma}mDxc3}bENxn>?rph}kE_e&| zg)7QZB^st1e8PC(m4DU8&F9$eeUM}m^g|JQ_h!1paqv})Jb}@~SCOg&fy>HXKB*I- zx-V@Yg~#Zriwtj~55OA1#0+Km-y-{ivi}Cd^zZzCKC?yu+5UYq{VD3trvDKh0Pr7Z Crp-kF diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/function-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index dd6d4a9fbc7ebcf824ff733323018c67cc79e4f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2778 zcma);X*?4S1IM@Jh`-6z$X|#YbBtUeaztTcZbhy%=A64^OzwzLrpc81jya-Slly9J z*59ou$}EV*o%B z006j$__+mpV*KP4VJa|1SP;g?8THT~6Bz958t8`h3`N1bf-rt;Ow0gB03Zqg&`wPB zP(D!($Qz?JTmzH3{X8Wo!f`2)y?K}5sj{gop$CRSB$Tz+s5&EhwI<9tq6;tkOy++Lq5nRA#|=bza!^xX&_;ggIJw4NhVc!_hdm0SjkY0 zTy)Jc2Y=%=6vFJB`f>1fuzSqn^qQ+kG(u@&X~RUDFXZR&+!anXDSBRDuy}fX<)GW# zqjim2!-en+a=uI!$wMG44L94Pf=rU3-jC|zsPZis-zpSixaq05>>kBbg2+MIKW)=g z5659K2f?MBEt5#GYOX_XR{iyjNMzAh@6Llxb^as9C)ubSDbLndZHmb|^lPy?U zHlxj+P>z?oa6JtxA>j+ti=DnH$2(PB<&lxlEA-l5`k|=SW)JLgki*)1TZUPVwc*{&%I6g+o7ZJyW*3BTIv4vz zv^gsu?n%mWHXUtIb}jezGzV&t`Iy@~oR zOV)WM6M>d>kMvo5`S}r1`DY4WE`nIsb-)I0ssf(EhG&uH@6{m(89W$ShMnK4w+Wc$ zCho2nm_vD8!N=&95iY{dK@Y^^Q*E^@reuTwO+oBo9!B3klWZDByAzJRon;Ul4|PPZ z8&a%^0p+Lz0B>(Ijva%0fQ ze#*klBy8$Wml?1P~z^0bcS;RIX*P-s>`UgN&g@rKQ68ezWzSeQ8}svbzg(q zNlUE}Lf<+d=Of+OciX^5pI%*j-1q>OfPr6uZYo|>iE=MUo0;fNZO9DDBl%s*`T@Sd zNn3r=?YQHy_|LAuvNi?ks#r2=)!e-&Rs43ShUEJBEgmw4Www&>a;ur4L|}D)A(N_x z^ePF9dv@eV!-qZ@0kc0eC4Wm~iX4Dy1{x0(tre(ZndF?QaIky(j&8fjgpmmMb35pO zmd0A?XbQl~hxB0y#Bouk*g1&DV*M2;mYAD<64=pp(qtW3NxgOcz<|_wz0V|hBI2^T zdZ+oNg%iPLym?Q8&WE8#?37=!3_@=)X>*0xCU8~gX4g!4A4)VLHG3!QsVv3`vB>NM z5ER*)waG+#wj>SBVTVSnvrFYp{JF$+GX30LlcgbHcb}~>XP=YjF96mPbP2~&R*7;p zM5990iJ4uml%c7;n@3n6BAMQ<$Om+O^@tBQfrFe1V15UG5dKjfZl=~Q`K{H4r8(3{ z;`_=zG;m4gx2P?=to&s{<^`s59lR2UX%<0LQrGP4rz$ot#!*HJjr)@JqI9Yl9f4Nb z7MOx2A3OPFV{4NkYGg1>4mdk13VA>%eIQv-AR7GUue1J-cQPek?Crgiy)xOBm65z- zF%d5jkNo+2QsD;X&R1XUmm>~OGgO!ho&0bpz7B2^1l3NzG|f3d(V@e0Sy9)381VJ` zalM7<+eNV1`zNg{pD6WfM)S%_r09am*onDNg9I@P<=p4At!u3%f1hrS=K}<~5AJ(e z9(79?{P^8yS!%9!GNQq2W?A5)x?Sqk{8M^I93JZKbeNxNQ)OKp9trVay1tK)a}u_J z%FvJ{L@c22rTyK%J#2+Rn~t}>HN0R_;_!KB6C>y_@+1HKV&n)^CvOnX$DkCl=i;kj zlBPcH+xOQW(*SQJDu9oMd&&1zX|fI9dBqiO2KgZ%Q*xsN)zPRc*Wv~(;g45)TQg@q ziMVo#mJU*%fI^952zy`V8#(4KD{FOYWwB~u8+uQVeTau~GYUY{&yj)(98$D~p1#T= z3#IvN(K{{K@$U$y-I`GQ?7m~6oK=@-x%vP}-rU6vb%-VpK1XqSS3CQQ;d{ptZ^ivm z=}7+T#XI(0t%nO|{z)9%Bf=wS07kG}II2d-QLo)Tg?Ssl=Uopsnkn`Bb;B8AE01ov3LIyAxlJ7d+D| zF+G>m!#rU8w?Tlj_ag9qIZ)+kHZ{aR*IZctz9*$V!kd*1t%UZUnbLjzU`yxi4=lBu zK~D{z8X3R0shAqPy6oF@Vw@cW%)HM4nQY^SliWYW%v2gp+XsQUMdo8i;lm~^OuDk+ z>b}Mp@uuKtvBNxYdx`Q-o`kX>DF`+NQPJM{FJ5ffpW_sxKV$JZx9cAx-kWQ{Jjd zObA(4!HOKY4HL2DhA&OG50}POXkGLPrBX%+&zNzogiRP)TO6(Wi*t80Vt>+;Ls3G* zSKikFwE8Q{EP6f~!Yls`Ysbb{K=)PH$Eeqbtd?8x88e|eW$QO#bTREcaT^uyPJ>fx zvpFwIaaC!)KmS$+WdcudxO4B@;fYA82w|%eDH*6a90<}m^S_Prk97VwQNVxk|M{mm UoSEg{HSkZZ|Iq)B!2$sP0cxT_W&i*H diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/function-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index cc8c5f54dd4b0d2edb9a0da18449fb0c8c4492bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2772 zcma*p`9Bj50|)TU%#oZqVpQe~Lyn>hx#h}DxyhPo?yvh8HN!MH$0ElnSMDQgjw~S| zXL8@<2${aFzMj6%@6YS?d_F&Xe);?X@4F@-MlApXfCIqf?{6b7e{W9m8~~7I3;;+1 z008e0v}Z8V4-He4SCLng5AySMeGumF7Z~j79_aZH`PTz^pCCUpDs=`XkMuUPyn z+E4S@T@W^UUHIyE-)^`|_&tJ0s$OKu;nX+4%#~4_F(%8r{2~kKHcJzsXS4#h#(I&8 zg?q)(nE`|vxt)&YsKpagjxNFg$%8=%B0MbD*r8js^hGX=W`iZ4`8~_cj)Ja8MQh7W z#FsmKAEOn!C>)rzRHna696d~TOY8X(!=o$6KoQc=2%w>RgDJm;5aIf(sKl~_SMbL# zKS-g66|pQBxKgcklqmKET|7;*)6kX!l1CI@5pFO*d3Jtp4J9QW;ctr$B!@7}

ez!Td{Q!tGwBAidoB2;>uWScf4MX z%%>^>LWiAA4sG$U)iBMEh_Y{@;kJF4!mkuvWi7mx8Wk_)nb|;>IBGme90&?DfBNDX zf5O31z3fM{qjtQl9sF+EN)$&3l=SzT#T)ic<#nHrU~y5Yxe;AqHNth@SwX|dSTa>bsXx`ut0Z|F>I~0 zLaaqbzPrU&PFy&jC+4dv0!~s^Y}K2iE+yi^Q@ZSV_-)C!4_v=5UWMumw~ z8QEDB*Yo)MaKLgBQ1pF6v1`{k?Fl`aT&bMQ9gx~p<^Zt(Fon#L$B z-De$!<|4QX$9MX2|H{whL~ZwN7u)c6_`8bbpwere@Y1t}yk6QgKFSotPyU=UZ~>^r z;AV@g+^ZEWR6Cr_C6XQ|k$Y~H>D&>|(5qG{M-x6`*WAj^jLihSgRey7L?a6&oNy%j z2G66-9fL0?uP(EbbUC|2=u6h#MK`t_o&&*ytvZ#GZ77fW1*VOi^pb`)Cpp%@?Xt$-ygkiy`8Z=s@$1ry4~Xn zI*u_OGkgb!zh!A5Y=*^&^Q%0(NCXl&_qwbJpJ;bBS(Th=Tw=!F4mbqq?6ZvT}yQvBK(#GD! zPm){THrw1+F1Ai(Yk_c4sa$WOyqD)rbZA-#AHJ_W*Ds_<95YPi*t@a;luy-}r5@+T zS`EwXhrjhagXAw=ZZgB2&0(V)>jq8@t!mh96P>l;3!kTBG#xTUuUqC+ zXeME9^CjrQf-doBTCoZU-O26<5Wioi4AbR<=5P%J@7PoPoI*z%ze~{Gs+LJFt}aw~ zkUCNrCu34@!B%w8GklsSkVgYdJW~BA#m7;3=lvT;DDgstYjy~&< zozcHO<|z&BR15nAmOXdB!-!b!Ht2B66jk4uED8%fXu4Th1=}o%x8U=M^Z}E+!W6;h zj)!uw)6;S$-S`(?lq?=8IR0455*{bd8i7X^6l}mVa&beUABaCV>Dr_^ey&s_(0%v1 z#$eTqlIo0UM{-SL;@UH7V6MM#eTcC(G+a}@Xe$Z^V6gE_kY{!z_JfpDhP-nEBsPy8;NxA&ZMmYvIl3kw_Xdah2M_p=m8+QhK|%Q+kJ+;nA+WYvRm^K z_(IHw*`ibhkZUd72y%OO&S_xquUft%V?Sd|9O-MLq5(s^xfP%Z1sbmL==K&o*U+HXPA7;}gn;8;CPb)0TLcpm8BKZKXTaS)n8536GN$)6!ap4lLR9sZnb)+7R{18|G={-c z^yYu4fC+>Oz>^1O!r#xggP5_a8xOs~S9Ppnoe3)5V=0I)AkB>lfZt6vM22eR@ek*x zs~IOsH)@wQfmu^+pPu&J>MzhKcN94uLVRzB1MHgOZ-ceNQ z)6eH<^JwW26Fh@MrZY~RXQQG&K9eg3X{eiE@~Rk;z3(t32@%^C-;TJmX&o#WJUUl0 z%Kf`eryQcn$H14@yt?LoX-_gcXAu^zxdzEhWR}q2N z6il9kN!6V{O5P2LyQ@&KjSuOEP|x0K=BV5?0WxTT{jSzgB`0-P>Xq*cJD1>>zJC684t`GV9)T`Wp09j;Xep@xwg3Pe0CmM@a_V{=Rwe!R!n{uj%VCkFhSM79#er&L$SUF;hfe*Kv3wy0Ywh<$BDC6A= zgLiJlbYRlF-c6WB=$#2(K|cPL#T*cb(BIw%@VyxOP+@|&V1Au7p}pRIvSEB&1RQ$) z7|*4LL4CR!I)p)B)+vt3TA_&-i}QeQd{f|QYLoYQg~p<7CI*~oUHSHPHQc3m>!R=s zXiBBzK}SOv;kO}EPs(VHBRMCKYf`eVL$hLSTr#)|9AA9?E?}neO>%Pv2q6yA0XA=8rAnj6VD@s+*xh&3+I$-XeA{+74O(bWSGQ88Xeyo4v7jO@hR* zTHjKNGJIWbxX*+;^4ke5_8dCBY5J2!+eEI&Z%-lV4zkKgU+{RDdT*p+WteceDo^%3 z>^t;tS9sMF{!QMbY3+la$Lb4OjrStLy!e(WMC*o()}eoY7P2mA9k;$Un^#s8C}El> z>#Sj>GRUQ5xAU|~20BsUy2QOXt-e+&6+L}kHeax4fYMJqEG}v*--WRPz+dyWImkmK zoie$-mx0y9w;y}aH@%&|-;lOusJ>Ca`XB0nv?!Mox1`p3{UJ&xZ|1$)6T54`=DJTL zYz0GZzI3~BCplX>+7%_!sk$2y&FsJK$8-ykVMDTZULBLYAm7#E)d~M3F7RV`UfB-jK? zrDKwAtK8U2B?yh(cMi1Map^~mLTi(4Hq*NX8G7Fk^yJg7i7NgCmNHuy`-d+J=&2bt z{wa<<^w%OD=QbfcLNkV&tYV)2Q}y(&lLHKNc?58{Stl|2OU`6H+N)L;>9T5#Z3!PoUjQycWj6dc!UNR znz%r>K8TX!@U8AY9rf1mM#z*P(pVqMSn#+NuDz6|-zIyL*a7?{$@fcRo@Q*hda?Xb z)Amo-theIYYCp+-k2TCK(JvG?5}Wl;17D&tXX2GIrIt5Z4rAOMLJ5L{uB+3%T-%mW zK+Q|y?i6I{j$PjZsQ94APWy+~7p%MQ)zc;x^~dg$axd43OPOL__>dX`f}hOE5=fH(y%-@Cg|G zK(OGw!uZw4Ma-naG-o5S*ukJ#G`_S~7|{UH$-nVeNb*U-2AAYq z@E5IMh;RD-)`IDXNUP zO~8^K+~qQ5EjW^F+4t+tMes63A+>bJ`5GeI!bwi26l9+92M~ij(q1LHb z>P$9)Y-BTVLe@0V*+C>~^pv)nn zzaFHkpanrq1)Abs{ZF#1LhLMw38Ar*4)Y`U0*>K*_f`Rr4O>TR zu2j&H-5sHKGIUysE~$Qv9J-b0d;STnaZ29khs%-}PPzzxuNG;+uv$rGp@u>6Jbo+V zB}MTTrT)!!=A0OUi21p!sIXxCyMQ+{2wc(%j7BR432%k*@gz?jlnLS{lr7upu#@5v zKYFe2IrsG#(a)|MrDZ^7__q8Ba%@z%#-=;7nbc zSgz3MeX%RTN$*nwGICXl|E;k8aDAvFMS8vy_a0RRA(AaBP& zgpaqQy{D(Jn23~!m`H$+r>%3SuaAGAt-Zga8zR_Q#67^ro01d=um%8P0070rL|4gc zNx!n0i8guaqCsy2Z!bGC&45LT|NWh=r%kwl@XB^Gl8qDU_?YotV?K{vo9~HVTT68h zFEsOAYd}VXC5^jbYJmY72`jvR&it4Kq+^%W5FX-+tumV>E5BihzNERFTt#8J_)Lw= z8c_mR&V@KSR_5|)?E!SMRKmwu)uwPg*xSq{Sm0nJn33^oltE|&y7u-X&RsUfRG}{w z-WIhz0DVs3G4%U-4dl-Im+F=E^s8q>|FC!1Ogjzu4J8rsJSexLmgQwUxq>|=I1M)h5OWAkBObRVY7=S0?v>xIBc6Dqy(UlEcTKBJOgN)M-BH?+B zN&0td87O`yYow0`w6$az-v$rdV-*BobPNW=+oVH|#tZ~bBF;Blp@V5qX~=c-CDJ{hJD!lT?dKi|>-mWz4U>{O4%mjpt&mi4jeLI{8Q94yjR3 zu!6?BTlxeg)0fmNcUYqMwARf8jV7zSJ%wrS8b#E~DA4V*6(Rb3{LmPdpJ%@~f#Hk4 z&FUF?(qH>?Kp@8zrvvWVT6(PFt)Y^XW-OP=dD`6MAUzsNQtZp!XSmxe`}CKRX*+x{ z0a;3KmY8HkgSoz9YM~piX#Z+KJ3Z*OEPCB-PpPtw)vSYX1B{>%Q-OP8bk)rJ!A9O? z`LEIK(FgGIpUsDh$>{Nct&-1orSgW8VIOje`~Q%|>O;y;VTENRakc*br%NQ-pKAfj zAy_x|ba)29s9>CKr31!>trc2VanVjHUtnxH##O-_Y2e32AfnEnBD=MU$s#wVGTZ-< zmJ?%QIn8iXAGb5SNGyB5lP6y9MTgUVei$=7SsB_FA44>T0~~6| z%yLegkBBOhD+ z2lB*?(!*!E0PhGn(Qh|#EeCNb$=ypnaolWhszVU3k{3zoabJs)d|q`Ui2r!yNAcOEU50Xf1v_Ux)`2$}s# z!QLIY*AbD`T%3iU!Yr(;53$Mi^SaZpR|SLgGa~^8HN&&75;J45nn2$?l&nf4px6ZA z0A>M83RXlsNSiP8qT)_qtE6xA^}z~!&pxD6m^y57?c%c1z|HMmbu7$<=#^ zUX6V5iOp>7gPo+>{Kl9*PksVn4I3G8Vj)GIsA$XN&AZZ60PG&$;Rn^C4 z`!5m)jOF)cA0sEfT_8B2@Jqz14qMz;GejS6oM5PGy6MtIs@Ya~x13)O>-6UGu}+2; zQqK0TLX+gNKv35ML(aJ$U7JfmDl%Tfz&=N1lpx(4&8Zp3mqsQJaXJav{Op^R2!gP| zMqZfg!9~kg(4)bz@Gv%Kfg^*lpz*ubD^?q;`}`39FsF673;Up&u)S}euiCTf=SUzC z^JR^a6BU6dIq{thaKIiH=Uzzp`?axMn63Z^=METVYWns znj~Q!)ba&6cznBn)%QfOx?5FoKJ0H<@UF?~MO=Jr*+ObXrrqm3E6SxG^-ocs_yUp9 zCQf7#9YRE(b9p$2lATET#o@~WBMY~v+(7!LEBeDb$UtzNjQ-!hf%K1QNuxZn5_9#G zAGJu?pFhgHdhW{gEasK{6F^3%} zQJc|M@l{q5w0x#`5&m|N^?kmeLJzM+Gx{oZYcJ6V*X*q_f@zPVZBtX&kkHgH`1{Wp zOTr_&z|>r_wISKo71yK3OzaoD>Q9K??pr{bKG-Bg_PQ*yZPFNfq>XnB!ruhkDhGO* z#Wt+yEI~?+h+_o!-6Ja|Mg*}`LS_ltTp4g-L_(3WNk7Byib5oP( z++wA~%SD;KrLOZzG;{x?v*wRqM+y$jeLoQhAfpSHYC_+AjB_n=HIeLg{}stco9zo3 zso^AZd=^0czWr@iFhBjkC&T7Wq1l2@P^%)&M7*$@FfF>ub`8QpZQyq74q?!-C%)*8 zSU1#loszT6#(s#s{cWeNXSbb81@xfwb3{6aUzIE0asdhaMta2b{U!Hl%ESs6I5_N6 zlz1y1NJhck0S(l}Hnn@$K!(9L4SbLb;+}W|$Bw65)zZIkX#^ZIwKxjD!IW~x`T}$X zvj-m99%dyaS}YD9v16a7&M+TNggIAAQYodP`8OVvcLb6cGMmDn02Fn`1}tCbxG-?^ zJTG<>qtCX))rZHZ}e7odhe)EZ=nx3I)k7@`n!wjsQ3clLbQNHBBcs;vXxi z&w;gR?AO;~-OjZxciZQI-ql$F081;BR#N*~LF1b|EE+RYR+*l)Rq+z~U_}q!!f8x{$fERVQ zkR&y)#_<#E{S*d|pV)3$P(S73+MgYb6tnieA5_nwM(0a5b!Kxc*VEd0_WpcIPMmj1 z3`HTt682eWGO5ao(8g*Cc$Y%0VwG;GlS>-F1 z65~L^%Pb3_4w(pdnj6TfmgYI4^Zuz9RNi$h) zk4Z+gCy}A}dSYAl^K$p2&$7(AMD6dDtGqT{a}~5R5CDOAtIFet$#pYobNcU;u2H@@ zOEm69yV|Nv>}O8xsi`W}2TF2ko@ZQNUVDDM`YwbAZ4n8rYZCN_&^1Msz|}dC$~(Uj zY>`tMU?w!pj70P#VJycQG~g1&kNpe2ME{8hIg8Tx*5J%aqQO(a9~-l)vE#e-PmW0V zVU7iuJAvO22U}vrLe` zxAwqunMr7J^pjfM>ZStG*Kp?rrv0|lKYe|-N35jhG%DW1FP@gk=gpPA#L*S950~-y zWf`cHI1Ka2c3qLNuH!8W_+uf!H#Y@wiIwnD<9UG(bMg z)nFc3411JUnT~n9+_RZ^P>R#5&s)WuoAxGLlQ;L^X&FC!Gn^ffukYxNdq|sb`l2C*wnrq*^%mnnqya^YTk zMH+j3dpMc8egi_9jNe-kVsZcJ0`EZ)&x6OYFTVQlk|rR*S#i zfB!wtch1FobuQ1v3w(`*tpLCT5CeX@yMxZ!hr@D+0D#9}0Du<&066%#*?K!c-E6I0 zT?K>%#RY{0y`Zj^_WtfrPj5?WPg}5)uf3qN7u1aa8wX$x0E7boa&d8vVt>Uvisz;} zWQg)d+?+TD7-32Jbn;w{ggq~skA{NEJKte#pA$uePYxJzy6jv0h(oj&>7L%a&UUPN z0(w~0APG?R_R@%5=eWM~pyif~SW|X#5s_<`+JUd5HRIf|KeDjq2k8Dz)rfKk`+hX+ zpk3cCR48|)=LD=<^X|k_p3tz@r6{u+qaAK|H)G+nxB<>8qATZ*A%|<#@u5T^%nsUQ z0l#-_Brn?hd!O@@K0QyTrN9^44&^b;9Q`uK2KDoY=jQc`-Owi7yuo7q0eKQTE#XH} zwR)~IBw=RWZX^A&8rgrF`qD!ninI&8xaDB+NG%zDGu#9L7wYW=2Fr{om}7B2^Xc$g zXzepnpN^a4vQmh(gM#Uh3FkEH%g8S+8MKmIKK_r^+X2pGy-rcb?-6k(p$dbw0KVz>Ab6=)b}(V6}7zCE&qTDMXH+; zL<-Ae{V(NWljffLkv(iu^Q?~X`=4l@yS6X(_`3Xx>76Mlbt1)>38-*!GA|6ilY=b} zGsz6o1xNjAl?@C8HZ#>Uxt^3Iw&y0$Qb@ime#)uoD$D)X{rCu%x?0!dtF~*KS81B0 zqUYE(Gnh$PoC&>!?O?;T{m_jmfEJM)KDCeF*iK_dt&E%Ol;T%{V1R??vrCP4ecS9k z8ud{Ssh0Yk&r2SgBopu+ljyE3cSdb@b0r|=crcwR5P&RlMrs@v1dxcQ+zqv|xAM_a z#aVJb#85~pM=lWW=U5&dXI;Go)k$G~1ATiD%;u3kpk_kG`Q5$2joxhbFK+@dPE9ZO zGlc9hWy7efKAuIb7PGkRNOa;D6@%u5QM7C+B8SO=voE*1qHjsR%r4xJGo&5;%1lLk z{b6O-f4Zl{M?PSZDN#!HQ9%)(_FQz0eD*GZf0kpM8yHD(&7ay-X76{99{EM7G=*53 z8=`;oy&Oe}bYkG^A?=lx(CyM4YSXAt;q`GKIEa#g<}n z6SHKe4DSXu%oW3beqM&_&L1iw40g8{XoqvPV;hXrp^-y2u~NC8n_ZA}cPL*~&h%?V z0tJM}0A*UmS>HguVvnt?n2SYBK%^p0T)DMXhde8X_|4_f;u)7!LykbP8h6$iR@jE=9&MxY53kAj8r0tX+cE^hI7<&lIms6yHaG4Z@j~%Lr>e)Al%W33g%X<6*H5 z?Z}ZmT25v2y*|!`XHQV$thG?_C_ah4?BBwRHYrjZ4l zKwU163uG?eY#1}k#=EJuq3R?RRJ0pSP?`e|vqxM(woUYI&mne60EM;bGf$>Uv^`WdVlFkVO4j99!uv%O z*;`X>V_@>*!uxY13+NWST6S6WU2wf6UCVnle}xV{5qj{S>w9);inpJi{=JHr(cN3i z;F1HZIteDezU>CykVN}Nu3}s_F`yb3K~jH=SXwEZ+zPrn{a!POrq-P4wYIZl_^Mkj zp~{S5>YKb3Hj+C`6osXK>Yh{4jfC1xf0&&GeV6t5mOX}6)iI~}(78~!ZJ^3@$;p*A0ROHbSU%LF$?t`dr_D?>I}khGji zjV1<_fpreG0ScZyfYf0`$fPA$hko@ha73y=N+?7{QFWLRNnndl#JQ9^poPqUah~oS zIQMC0#a?(Pt zU2%L%R1uZ627W4ycT648l_LzO@_{ha``XXwdqi}=<`H3{=0Zq-;YGfC^W25Fp3e9zgS_b+rQ zJEM}6Y8ab76W~mgh-a4^%Mq4H_PS{4`5Xo1-nnE-l~s*%9nQJ%RTFwrxN^)R?8eXE zpR^3bhLyfEF|u6!VLmrWTB#ntG)@?05+Jo}7fPy8UNRQyC(q_}HG&y+)^SkK0et}0`_pP_8?cBAGAr3y_pQt&}WRCdI~~2wIPT5b~+K4Bzw%Vkua` zc~^?B5_~toH?18#H5}0q{OnDfpRoL-8l=$>guuTvc-)d*e5={>g695!aiprf zH(81$3~&egyk^=UeG!BV44}N?9%%G7=vyE1Zzs7p`>L9E2j-4(i#weH4EAMWh!kj~=lu23F;=mqKc5dtJaa+k!vOo!kaJivHAcboiw^0f zb({X#i-P`2eML}cp1Dq(=xA*-HDnOlRu?7`ZTq9gCt9F2`Xw0|acVr8a4_L*#2iEL z$NVx=p3BYiAZe^+%Z_GiF;Y`ebly++NzsxuW&WY~UzMgD3=+iy?wMgR+9Ha5Fdyw6 zTagQHW`HHUj{1+(=buI3#3=EFaNjh?CViiD(~1OzKhg7&(XTCV>=Y_SttBF4;cMz2{26Wf*`O= zhKD%tyNsm5!|zKVm>CM)us~iyTBGN@`0D$+q68VoN!R?&0dHFWy$KOBl;O$qY)$v| zesiAHndcQk727ZV?z>uAR*!kC3lw>7H>`Bu<7mZ&>-+ ztB?9A8BaD@#J^3xJkOxFZPj|r97I`4S^~j>fx6j+E5T`9?<#4^(kF$~!FY8pS7H#W zbqEH|2iSQ$I_N=A_^Yf<9%X&pP0B3%S)EoS`V% z^{ZhRh`XnKRWq6N&=(UcCG(k$^@VXsSI$jD-pu65x}pZwpt1q0?2ml}kvYA5TX}7` zLvbi|`)QNEp{Dn%izC`ONOQZiKbL_2q&f-A&o3EFnxzq!@{O)0o{jgGdR$OlEIcG~ z8LR3y*P&CnD=#UYn&#oJ)o2b+$qoK;V75?$fN8F}*j92%stVEch+MWoU^R$2dzf}r z!g|r9nIP|p>4w?gLED-ZWe^E5`}?=t1bXO8WAJ_8%hqKRjAaJ`n&W9ItG1v}DI-~Z zip*U|q){#6i2)q&GGs`RrPLo}U-1Ku-7!x>6=_BoDT5#HYvD&P8Y60rd#88+`u)II ze0QxAezIt-ZWu6XZ)D+lERD zFTp!H>8M2~WAA*G>an7^hBkN0JxWd);Ma^*m5KI0adcf$>yg?#)lpI*Wpxo5RrjcC zx^fV=dVT?h7v{0#ccKw8;yK-n%EVb7?;}Vr^a`@->K)Wnxs6Wb76M-PEWa=SNZ1G8C{LEkij{kNas@NK`e$ho=jP$XMY3&JWV zjl5FVW$WPM8<(XWz`Z4}{o`G{9zO6j2Breme^ z1gU`{|NH&t-*tV@b8sI$r_XiWdRio;3IJjN4dBev(@?va?5G?J0MLX2073u&z~0Z@ z*4N3y-PXp{RYY7=LR4JT$HNtAhw}9B_C?xw+d4Y=+le~+c({W|$pDrBKm-6FpOD}H z`vdbTo1SQU1V#_IJMneji+%N+?Fs)os!qwKU2Jegy9vq42{=09OE=}0|EFWBCLlh4tnPVdg1 zLJ%=8D|k&UW+OpHl5bcX&6SVue?$*0&*$82zA9^nFw`JCNtooY6a~V(a~Sbgy$@=a zA_)Zn2ZIwkoMovfYE!ttB`B4MT$+~G zDe8qUm3;2Z1EN{pO;t}ZXGk&{_xrNSUp@X!`BSl3fcu3sf;h5NpPurEjODCnbE7e* z!I5Bbp;{bGZtU+&Y*MzY>$Y3MrG?Dz;jIj_`zLZwjD#^lDt&K84LhETlRtWTq*ifX z4q*s7aJcz3qx4ju06Nq-f>&Eb^;|)@n$pW(!~k_pTZSM>c4yO78|VnfLd_&4&O<#Y zHE9FZTyjl=s#oc^>sgh!3oo=S{dN0j8c$IZbUf@q$mLmsr&g1>QZ+3sj1lngIhH8; z{kIlFqML}o;o@8K#{vrGz2zME83&vyf!OO37vNB(VxGSB*QrPO@C>bFsn-5N(8~*N zl`dm5%&@M`p!@~xTNxJXW0X=5kZq>CZqJq-xtM7RM zq>o7`jTVG!oLPl)Adl;S7x7Ab38kDgw5A&~wT4Me4uNi5O1sR(S!}y@q|r|vY7z}2 z!S1K8Gs)*x4Rn4*Ro=W>+i4yw+>}mFjh&B;%T3b;{(WgBVUfN1J1hLdK+92}O@Nfa zU#o-r*3ZHKv#k4wAZ*#Bdda+9xRW*gjw+rRw$A3Uj_wX&tqFqWdwo7Xw3k83&_D#I zR9Merz*~75W_8Tn@`k!gm;AHJz3JzuJ8vhN+i@j}@d?unE+)hBSULHr+Jm3Z>Za@;JZz;7 zVGKSkJj-TE>gsc!cc>%*UdQOGF0%Tij$3uJr-Lo=pHUBH5$6~d3v>5LqpKp)UL7Vv z@+MiVJHrRsW#$Q&#)-S}28>PR_l{Ts`(xrkb<=CdwXl5`&kDC6 ztSo4i_gi@k`fIw<>9rGvl5&jos$i{8Z%2ly@d727D<(aWkel*$6K~Q&=YEuywj8v& zkOWdkQ!Busq^MFCLp45)o3ZA;nSzcu1lW|9BUN{l(#HDaPSim{bgg

xh3nxJ*5}S5LrpXteIOyvP2bG^(*cMc^>QAW54uN;V(;eUR9;31zo zJn2KLNz6xCk6`P#@L5cR1-hl|oZX=upf&c|Z5!Yw)H`&SymQe|78zdB)}?ii5~*x` zXTdwrRhn@#SmD^AThqv#a8sj@>otGB!ZBCij#7YNLe4VCvv)kdc)DTPw zO643;bUQYn6jIo^8y{Jbd352+#`2lksG3u zA|{c1$iHdL|MLya&kObf5>BqLL@yK+$F?x>$~?fEe=k7_)BFYbh{S}Iue1w2W+Sj7 zXA*T^&{AjxzEV@?*7yEx2Xi4U#puMj)(>DV`;Woy^*`GwFDumX}en3vJH34ppb4X8Y`kx4&po07e_($4_r`^m{rfHocvF z>HtFhT-TOK-$bsx=9~hmNjCDID&pgjXG%p7Xl$$Y@in4 zG;IqCua0gC%&4n-t5oclX>u9~obrX@JDSU;=&tXp>gj`QU#kMBy*fdsJG@ixnA@}G zk_w*Hjut?x?EP1U;6^(tCNAIDqx%|vZbk1z(XHrwA-WVYHGnrnl$v5?v83c>^=QJ0 zg77~PgIc(iK#-j!akTpVM5PqRan_Ho~`Oqiw zo31jwiI8U{756?V{6pUyHb7pe7UW(5`b@ zZjVQ!dEJB3V?U{Bk~Ax{{lsbUc8FGE$MOxCgc!rA@8FY;&3?0qcXxci zqqDNfTrvkxYJKrxi_EVrWKs6Qu13r%8&a;d@;&HING^>ZKd4ISYme36Ot*$4-l2Q z5YmrzLL)_Ek`b4hCfi?BQKxQ!l-DEL7X=1ogzL`byKvx`J2p$|=wx~2x%8M&)T;h7 z#o%CUOWX)ta#YaLReQ`?uOr@nPmCzEPl2bNqGZ3_*{TcF0L_q)vVB#$!1Y^M6<<_v z?p4LJshu{~tneK)fni2&SO-|CwDn+$&6wo_A%Da}ja;aD3tI(09VD0{<6o{fG*&&# zp_Xd|Nk@A_O~WgV2VhlbbeK+LzlgK=qOWP_%rm11zvYjRt9VgwRnm0L+9#C@ z_b(8BCEBdLS@eaAe6(ve)Zozh^yF)F`zK=5e$p|9SKoA=%)mHvH+Gei3ZDCxg1K4^uc?7QEB>pSUrnQZ; zV?a0Sw~&hz`et#?^0%ZQbJ2+9wk4#TQWIZRiZdh%*L@{KY{5Jq0~CzTl0n56hnut*@Ft@$u^)iU{5#i$)K- z5Z$@tiyeFamQImV)J(f~b+vJVo^jiH8kDexiV1`7XHRrJW@;Mp5_S`#h0N~t;mtH7 zA5BYl3r{2ArLB%`2dTcB4D?8ySL?kf5a|pGDR(OilDu}qptOKMZfAPu><9>CZHRLo zlLzJ*uc;B?6N+8-q4aHBsQolx)}0lVZSfQLJx75mB&qD()n8C=b7y7UyC5THH|_;( z?}VXKC%@z(=($;w*bjeiIZ0${mnEXShsNT;rcLR}N0?;RND7N&9q3Q+L)8GBP^6ml zQo~s9B$t1DKsE2n1F5{7rAvTqa7dnZfZz*q_!dRuL6_BAxQ7;4X7fPDKwa3{Ja}Ky z@GkfDdd;y{vUHE8IP6qFO|x(M8y>5=R)!)NUK#=q62y}h{5waaipqMM`^c54XY8z) ziGAxJ0~Sn`a8<4m-4DUC;*DnEiZSwD-(n1-p1v|QSaCYVD7oLZWTkCSXO29v&9RYR z1*Q4MkEN>kIaBg3HiOoOK4_$9GF3hnm+fF#R*7=fg>gOx-sN3C;&7x&?Mq^y8`YY1 zb7hpSj{!*>mAH^!y?i`Z+a1JD&TVdFz@Hua?;VIPN8pQ1mJ|%=E@hRej4x7*Gs)NE z()0M_GEP-?dZ^a_~_!uRZhd4@=)y zsSv~;W&d288TUfAi@J;8L!(>5CKXkP|I3cs59 zK6v}(UU5?PKO3W>qXncb9~}W5DjSMKM-LNP?`nqs9VjHy(;^~PAo=gI_pk5$efD(XnbJI(F?i@Er0RXUl1OWH}0D!HxE7Z#Y z?h3Vbb`}y9mJk*d_JliI!u;Ie9$uE#9#DG+ADFPCC)|~UfDm8~03ZMWxu_^R@f&gX z!pYI5=M*{pt`1zCEXa6W26>)uWZxxgcY6a$n~feUA5(-O(4G3+P8$|GQJBU8?Sl*T z47+kty}LOTDt{#}PnAe4*E!Ceo>%(gypn^Hm|UaGN*?x1HOh_PGdo9)zxHX8N|KOh@#hyx8ffv-n5-vYwMZ!+LCct_4tmuHwh49N8~ZuS=M87;0;7 zhC*2xH)^vvy%+A=@bM~AOd2(D5KNcHua7hTxYkUUos-MvWuaGYW!gnn_=JI{hWe>W za2qW@>x>P3$g9*%un+($g=j`lo%LQJ^rw95&E-xz>0F)P_;}(_n@_B zq|3p^7xM;tl9Qef+i49fm2_b$0bvncN;c+|$|Ss_)N7P&oJVVMzAL1QMpa-H zZrdj^D|i@fBE$NM%4F=g>s^`UD6{6y->X(Wk?rxXw2BT3mhC~c8MF&tMS0)Wlx@%B zSx$6>$Nc56Y+%l7=hUO1B#tQVB+FI<=5_10XY64I4kgn}D0jMHDaoR8{!?}SLO3#T z^@Y6Q$l&#*4d_|ZhiVSHRydC!>~h7!zz-Dp_-8M|fu2BL2t3Uj=rh2rHbLN{J7*`r z`JkE!sviEnj27HR-;$qMb2T=HLA@bkSl*v33wRP5to);Cw{`vL*70jRCS9Jf7Ku9t zEWw*+8CNPj*&)l2fmDBGBua~O7pYTzyI`0vJ=PDzhL|n%yxXMLpOwztLy ztdeZK#XfTbc5tD_@Ee}z^4@El^!+L)tZUZ^d|mtw1?!SKtPEuN%U_zf=&0j*QK{BK zVaa+bMgw4=`f9>FuyP>NC%7C&u*AyurDHb0R}1aD{Ox%9BpN?p)!% z>f1C~F->Y3mKF<+-ZE)6&y%$pm|v}bcP-i;OT0TNCwWztrZJ%E$-(BO#mzVo_D8nO z#3*pJ>QPggxY99|81Y;7pAoAAZzr2C&-WMOcVJ#l=uzks6Cjq*BM0B-^@ zg0xxWDm5?JGuq8~oW66+XL1f6~pb${-m8h5D9ZM2bh3X<_-!^*s zT5qZcpn`gH$5~iaVQ)6fZrBKv^kmT1cXO$s^SSFTAa~K$&A&ik#1UOEO~cer zW5n*J3C=ByB!X7ew^K&~!=2#v2zH%uy5bZ4f+Se&e3830GAsnMTi?v5Vlg*W3|mWA zJ6V73H$uVCoq)JUG#u?xq1KTqvh+@xjf3$ z5Oia7q@5`%l&tO5=-N@G!a%R$!#~4O&}^w~>UUr(HTJ-4tx>ZC6{lvU9Uj~r3#%-% z*^GLSVO}YNkyz-Q%_RDKbaePP_%L(=*}t?QO#E_9B45H*cpmP;wmR`C6E0Rvj#;m9 z{C>V%7CC|lKa0>dfST@?GFgG`c?l9oYH=5`3!`qI@G95{hWFjwQ@4}z*y`9mli1OA zj2}SuoM>i-n`}526PQAfy?p}NZ`2}ncFYUBOl?d4VJeu~no$C!UbOVTUs~puD!$0t zlN1k5{G0CZl_!GsmebozpH$J&0;KR%n(wsFkaP#U1>+K$9(}VOw%zDIG z1sEBk`RM}qh9rpMhh*0;aVkrvz*=gp7~@xp4bvr%}xPbjW<1J)B4@c>YO5XdS2>RI3tY~m1>=fuGJ)xgi9xzUSi*Xl-|hL+vE?oMS{=@ z$_~7{Wb$okcm~Kq;Yka*Lmx#wlQtrXI|E(*8dH^V++z*devWT>V6*q*9~W6da=|lh z#Hw&UM@v)PSwtALB0yX_h;6e_u?P=z7RSx7=p935k9XTX8T*n>Sc?N9K;mOet_OMG zd7}HPBx4Aay2n|$ptJ7xj}Pg=HBI4Hx|#}D3q;63~_9?44*-}bX72;~fN zx8z1kwTB!dFdSs~GX6S>W6_reNvzOQdRz2jm&y5aiNx#A|^Ki9ZeN)uU^lap#NMFLG$CzYt^ zFKN5(Pco<=P6KyP80S((*;XG8aWZgsoZos8uL!(-Ag$otli7FVOv>OW;BN7z&=}#MEp_2Z)wQdwY5$E2EYqjy0v$;C{{-sEZLIOL@93oxVs`+T5PMp*AVEG^0e9k4@LF67iH<*bdiceQqIhD?3Ng77#Ww zuN`s-_)=}8{La?5UbR_E`hWrUWuLU5SS3j0- z@Dn12%u@3wCRb!luh}i)AyeYno;-yXt{Nl5bGV2cZvs&+t<4NUUgH@fhEtND4M|>0 z9_O4`)6opc? zwXV1496bh$KwFn@Ox4|e4SOhUVc3n*DuyWU9cB(d=IO&YcQWxOhnmB}BkkeCLM!?e zraoj$+`iJ6gLI%OCjw<+9t8$lIbXFlUv3DZi3`#fPcRa$u}LCn|5_YLu)D`>31nn9jxQ z0MrHSh1MaW33aav+!oo#nub_~d;j2;pb^zFLmkY1Gb*YhAHo+C*>D~HxDNT-nF&8c zy;;J;O5gNT1$@QIKEP z&^~k^yWmLRObUR1I)6{a0~SU$ZfcLI9kr3691i-2gpU-nY09g%A1$gG68nXXTBS%; z^;`L^rj&(FGGXk|wwTi>EO4sxE5*S0;dy|(APAhV>bHAu$d~Jc6t|uS8t$?oV(oj@ zm;$akG*aD^6jP7zOj~32)W?G*u(Poo#+jt;y9qvqjt*fG*)W!f8f}w5Z{F)_j*nZk z!Xe~~okH==yJ#xvr`qhvn!?YqPRf8-&3OZo#653} z{5madv9!Mr>kzts&#hPp&{4<3fBE45Ho||U@PC8A`w#zrKh#ktB>L}x_iv5wf^AKprIk diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.12-compact.zip index 795897f98a9eabb55e85ef6f4def9738dc78e1c7..f47b8e99be5f728eac96020a180f665efedec79a 100644 GIT binary patch delta 4542 zcmV;v5kc@KL7#%4gl)4WL7#uY+-p3004g4kr-5eAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH2EXX185r@cylf)aEu1Pt8MIz#<9a#* zh*vyEm5K@hi-+Gkwp+Wj2O8q-fpm$jEX{=cx3ZCG{ zvcEZInH_)$0OWapS+}vAj&u9OeX`9^0SsG~>rI>nhC&7 z`390)?-)i2O^G(bRsNw57X$Z63Rxd27yLHlJ1N)y5a(=u5z=9m6bFgd7+w_<|R%Qi2Z{o)enP_|s$w zH|Je*pB<(^^?D6YUaX#nB1N436vyt|X&DhsGVrw$xtT%xtkVQb7>ReZsuabFVqE&X zVgB<`1#JzO3>~k-Mr&SM-lmAK*R#biZoM53HFw~DLT@q~Ng55oi`c136mvolTqM&?d&;?x(r^O=1#p!8swJ zsBkn-TtqfZQLG0)Wz9MI`C4Pl+IX^K92dL~8|#p@zKx~%ADO6ipD=%1Un7=G@Qezl z`+HzG#@FxY?2ZFc1NPeP2Efbg7?G7BETU?E<`$9{Alwm>hAqTrEMf*hOhiC;CX@+{Q|$L>iB2K0Kuve#pC}#xER{lIU(MY|9fr#V1`SPKd7slxMO3*n^ko(vhFm0tb(Uqg-U!z#cch~0xXF$$`2Ej0KHq7|as^@SY z6u9ZBvtRBw#}g0l?UR^ld{trM3z~$K+jdBi4U~xH*0jf6C`U;{wk9 zIAkU4MvdNJ?Gf|?sN%#?myV2jqMN6G7`?P*V0F>#X`~MLCamzt5zw6nVB#?f7x5V) zOD36HU#XdkTCuUnOXN=!_RD-v$MAwZR<&?OjK6Pt9XGx%7$Gcnq3oNT|JuOQPZDu= zSsDrRA}v<6>(|iP%b4Bsc7q#I7%o0nY0UiIbxNA1{ZAv2(MZ~->{}lXrjieTitaqT ze46ya9r*$^hY1$@*QmE)af>*qo6dI>R*@PFPfx6nvbNRGSwsH#OBaycZQT=%NMk2ZIEoc7awQbzYesqDd&%zu>e z8D{y3@tpz8GAy48;lvslB+VIky3yw=7}0>70qo$v-u;RcFkDCh(9Lq)rXZpq* zciaHU!E#*`7Os*QghOyj5*=qcHJR9;*9S(ccxS2(nE|MYVC9BpGzglV<*)L9_@O3H zkbAdUDj1P#_PZZroCMcw% zD{1OttfC)5P5AYH%eMB66yY>3ju0P-2mSoBsF0DNx`3X-tWyv4ZYFRfHS7rlOBd=+ zSp}DJfcr#c7=P%B|GYg0B~YU2G$eiyPGuCGChve%N%N{HxP;cz7z1nA!L?oC&O%1V=06r1#m&^pb9V_Y ztb^L5x%h-C=5y7D>Yx&Il>YQ>CFs)$A;}iOL;NOZpBSMb%TpSma=C4`GQhYv6~kVw zvI$I3HAvHNTUiPD+i&;7ZRPNIxm>mz#X)L@pOxzx5x>p~$<~S9{Jshj(c?nc;M%TL zcdwVGF=>T=dwcu~0)ZPfHH1qJ)ufR{m^xls&K6vnv!^Pb*k|`gT>JE2*^hZ{t(k$_*xZh$zxP+`9`Z2xY z@b`JOO^?BRLa7}w03NV6r?bMv6-BTfGt34L&HzzQPQ_+BU_UxTzGw7l;Y3bpv|R@@ z2-^GqEQlz#SNzg^Y?*>VdLxLuC*cH~{T?x_AW|HOp_htKvDA=98?S-X6X^i=e;3Nb zbVm?>-yJT5HVD>DO{TN>$l`tRFfeZq36QvS&r=-LWRyDhSn*1ec8giJQ-!&rGZY?! zc0*3qTvR*(V_V5HFkP5~q78>Tu;5{dd#$WhII*DBuucwPZ4F`bIwvsd%!Y}9P7Udy{z z+R?EW1+s@;QE6u$Wk?kvk2E4H%^+`=1AV2HumAqHW1_Gg$URDr>R%8&`hvn9S4xJ6`P}6>#Ez z_I4oG@zg)_0a%?qmo|+ILN^u%jMVjPNI1XSmv!LOC1vi7SP}E68tE4cQ88oeI#LMp zap#GyopSS0YDbrO`;`%>Dat(%mo^iGXJUswlSG7?BdLFdckhIe2IHk2%SCVA`hD#8 z5C^vOrt!Bhbx z#5A%lQ#NS#GqrCK1i243aW6OlzCwq(f4!?xskJZwL;FB5Ydp^2;K=CN4yS3}70JL`wK}N4--RJ?jy@pSD-J~EGg4gQVq-E36q)S(S$q>G2 z06O0h?<_+wWtEsRSb0Ayt~rLivNehi!|}m8AlR^gSZD!6{%!va-biiKK--dB`3mew zin?@CR5H!1_ADN)Qd}@5LTk}$(a6QA4)%p0=0yi9b(jJjq3$H6dtl$dE(9pTc<&Vt z%}{dl(;ZX0^h?8$OQ=A#G{Ve(c#$A9_gl9i_oz9(!tSK&Feo>9aiYMI-Q|zwp_VwQ zL{rhG3I6q7Enq|us*r(`V#?GhuE=KsYlEt9ha7sQ9Wr1#b7r?T@sX-UsK(T}Rk^Wa z9{W9h3KWGeWH?*CGQDmoAHqb{ba=D3VH6?XXmGt)yFf&6@jWxJA4?*CnS^ho(jQ2{ zR1_xW(=D$m3^_`o#u|qFK5x5_IOGjXfTsbYjBL8;0d806t59f`)W1LQ@=xOEO#8Y9 zo*kc0ZxqO-ki7*Y{yP`u~uN?<^zE7pwI00VJ3glW_uoSgjaHf9ja z8?Uqchm+3}p1-0Z6yy{=|a3fH~ly6uEsq@vP+qQhP%F)N~FK+16?9q{H_UC1cvw~2L|Us=%3*9smPi_jTtDWV`yG!VBQXop`IDDYf- zqCCYf0t&|wQg~YT6uy&6Xe7AaKBY4`KnU&8z*S}!|H46kKkn`5W~4=cb)e1v!(zx0 zNS)dV8N3q#ea=4-foV?j3^r$WKl8lhBzH-4ghbE z$Z&@A)>^}#Uu#_B`eS$IQ!hp_=B&DuZyo{H{Q7M8Xr@g*IZW0ST4+Mrtj=`xQWz|- zQY+%L(8ddfeKr3*Ni3K4S9VqA5`BsHxxx2}fO~j4=#OH!U?mV?CO zt|dR#voDn8Owb7c=O5=VW>+&*>Bp=`d5Eqz`+@4h}2+xZ02S1WoUFs303}(v)QIO(uw2m^4X!`?Pvy>4Vwq?* zW4=$rn3jnh44<$PzPTrF9eN@i>+N3T0GiW()`|%K_&gszx~{T7OUK2bT*-=))ONe= z1ix9d1hbT(fh+EB*eF4$XpA};DN*-(g)!jD0oXNyW=H)zAS7V2@AICmlq5wxUiR}z z-191kj`UY^ECroq_Zn*&hP8M5Z2z`bKj61p&aPQZz@Y$gEq1(6+mt?1t9o2)K0phbCLIKyzds~zis~##g_goU50MV6*_;Pat(8!%;R9`TNa6dM z1XykF^(zWmpp%R`Z@u0K#z`=6H?gz($su>XfyH4*9)b8a}E6Izwz>c@Y2re%h0Y5Kacc5dZ)H0FQONh5!Hn delta 4209 zcmV-%5RUJ!B;Fw#P)h>@KL7#%4gmFVa8!u7v^OXa004i$001hJ>=7-INF;wJuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2tNDp~JbaP0D+a>q(aTzE# zf!ac8YcV~wIN+Y!^+||u1ePHpoOw_4kw}APe*7}T7?ll|ZIcPZs}K@4V<>PzMUc8U zG#17wq5KVs$vofF+@45eQM`XVqYjzE%x5E;;xmdMe0r7KJ}a3C%sTeNM+Dqb5r>wd z1hzu^4}1|+RFE$6M!}pzA-pP4wYl|Ho9aY;zg>ZM%f7gwc@nKoZX@#;WSTSMXXeBz zChvXznJOA8vwrsxdXvv1-}DqCKg+2M3(Bnq3w;BWzUBtV)h>%@nZ|zw6w6zX9j#v1 zOC+*Yu>Xb56ENs~q?{eDyb}a9pw9rb0?R67(*SH_?nY{ENtZ{6P|q9RMP2qGm~aa{ ztVDhd(Y@RjrE7jvVB_uqJhvsPXN2oxP7ecE3sJJ#CPk$P{Kx*X;)eSr>Hfnd)oPp`Y>?saqlA`_mC6wo%PB7$_og0uGll9rYxo8cBN^MaU{ z)uZv}7diR+rprk%+O7PSY0YSH2vQo#aa=C+efu+H;ve;pgUo+H+jocBv2Nl~bnL#; z+et?j&)Ce6jg-X*e3RF6nWYWzsT2!2QLYC%>rrR?pnK{}A9|R4UdtqqZ4{8CEmu4w zcIy$GoyCmYP!9LhYUKTfzafwZD0wDSew~9;35VJQlA4jN{^$6Rs+iagstC5t+Ibw^ z0}6gW6V;9(%J6^8DDC4mjEwIL-yTpR{#_#Z@<#|s#a=oj1j|H9ed(?O7=nre)9G$3 zC0HM-K^ZGI8*c%v$q#A(_?TjoZ#fe`BDgF69?`Jlc2Wmy-I}&u-z_zk(-hj4{gTQg zf|%hpaKx%*pVNw%8R-iHVTe6y5$TUR|DPMRE?%9G|7(3_u zoxjdiXd-|A*SpqLDrpYqMa2-?!y|W=ukwnsyhL&)K_z$mK44P=IQbnhCz6_~`Tjvi z`RZZa1Ir_ZD%Q&;k&AxcJr$rT?a|&K7RqbCf8?I=E=-*=1+@4F*M$bSHB~URW~pLd z`dg?0;GxGETg6$v_vbnYu1+qXqKFG?Y=002lyrYTB;jgm6q8%FFNp1{?2buwbo0o+Yg1V-O`*PER29NOOeTYE?zsb!#!o6{$$G|bG+brQ2!ODt`J`PtRJC1P&CJ?!4o^>N>*W#EJ->tUQQES zVbi-3*l5zyTJttg2eE<6UsI8j=^l@Uga&_(DCM`ISixskje<35n}__US>w^vs~~*! zFZq-F7 zQG%9`oN!m0{&_F1nFkzX_eNvSsJDN-+XuOwlu5fAe_7de;U?=TW;2gBcY`)CLrJO^ z`SUT=g#|*(e5#g0y>zi^nooN^nu{CPOCg%O7Wq1Ol5Zjm*AnHFl#g5O3EqB({Frv1 zDVfkfM+N83p=dMyEhFe-PwYR&9#N9U8n*X1j2K=?Co%-yP^>C~#Twu%zN3GTTtpa@ z4IUa6fB267f8jD3PV5#kO04mH)Tjmp$lgaFjhO*{VD+^EBBiY0gg$TF!5wD3Lv797 z6AQ>2@PHu)M{bypSC=GlJ*3&UP?CM~^Tw(Xs6Vn@tp<4isyzkMFoS5kWtL@m&UKWXa50kFHYn3U;HwbYn!o>70hcaJ3381v(sPmPMRt7FkSdg#MvywlGPiDGHue7}j~;=^O-2)-MlJ85b^{nCiYkj0=a3!Juf6;* zKmV{?TRbE85IfZko)vlMcbm>-vaZds1gkvFNe-ozAluIO3yvRmrJ%@qLD)JDOwA24UsA) zezj2$Kp0G`%@%!dZmKvYzbUE0r8D^yQ3n@%+L%BytmT2&gW*#_2Qkge_`4nxqlL9E zMpL{=2ZegArV)R(i>E9k8i>YCQD=Tllcn!tU_mn&`vLcL^k%D@)lNLWOGXrPvRv#$ zGxvoytg50To8EGKKBmxeI?;FUUiP+3v4&xenRQ z@;&gpaQGc|plHe9#re_qIPIT58tDF4rE$2d%|xtOhxOb@0XtJ0mkk+^%t%G6?x8m7E1~hEp)Z<^mst+ zk1`v#-sFGod4}^B->pbzkll*vgxOwJ<5S!p;1J02#H^!uahzQs!Dx&%o~tNQ=OP^t zQ_pC{?f;Z2nJsD)zk!fr|2FzS<(Mn`&Dg6AG33o3X%D5@V8UR&AC&<%y-eo}FdmQ} z7dTkqV*tO_WQwsEdGNNv1k1{?A2-!9;$GdMZ)Cc@?GR;4eBY~X3oB>&3G_pSZOJJG zISlUCe8Oyy@PYm|{kT@tdwd>;#jj5>yEBb#64m2`fbwGybY zVGnL#kn4jEUD#m31+#c(JhC(hv^zp|X`+9vpGu1Y5T>%Fo!W8vnhRL}9DY7xdXpds zZ!K!?&&~M?5Qc|75r$EdO#k_%3y6}|U_tEW&;0koP~7)~n4uK2uOPT0%Ah@~;fFY} z8DC|U3_y;^R3ai?@jFW3Ik6|z<->2=)+5DQ-M7@&3s7R;gY!M;yoB~+Y&q;|gmQlz zEJ?3#67BtdI2AEQZLeVCa;QH2JMn~k-gX`na@*}94|1X&YTJK;;^fV~ zD2@&^z)M&ww62+&;zpb4jWB_FYn_V9#r?L20=!<-TA6>!+u-#8n+;<;KN4a$Z@--k4O&2hZxs1G>f3ZvaEJZ1 zHBM7)x9yeB?mmZ+WGWV^M$9rx8$T?V^^}Vb+1wvkN`|U zV6RK_NRmVx|=2KvH4rXf+sQSb|=qZZ_O-O&}z0H3i*!eHUwd#FG zp(N`gu?A!MqjX**%p|X+d>7f{90_C z7lTQ}M!)H>QB!}nm~<5(%SzbCa#r9*lHvKVj|4)ZA|%-C@x`aZ6U&uFw8aILD~iN^ zzBRuAE?uM)Qb}w&xYR~`OX_eCRX<9(d8`(>HL@yyt5uz4PGY%5Cuh|`BQo+`l_~}T zu8-XA-Aiau5;jNy`Ipu&<#e#geZ6Wi*Ka`bM diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 24e0b6ef84e70118fe2281f29262901fc134f08f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3669 zcma*q=Q|q;!v^r!tF~j05Ne0eP({tw-g~bmN32kLi(TWiHZ5w8qE-||jfin<4z0cS zo;Bk=&-?wkuIIi#+@J10;HR%eK&Sw~2T%ddJw1(sdF{48Qvv{wApn37004mddN}zY zkRDDBZf>ID;AdcQus71p4i?~veCuQ9@Ycy0;Rge|cq2W?2#EkT06+u)ARiz9r{uk) zSK;L7H(APDtOtUxlQSmSko6^hEkzr&eisv5+H6j+d`cM=G2ChL)OEvlCw`=PIP>(n%feU`s6KS$e;kkJ}=q7o4*SSW87>>GL(Kg-;~h zfp8tV!1EPH=`(adJBJAElhZU722#o8FhQ$~zV1m7(mx>oC;uIf$v@D z6~dhd#!V(MS#gSx@CGNyO%DR+ilz-7#p93zdqz`YP%+ z9wfA;fU`ZIa!P~Lf=wS9m6Z(hm*9rlG6uQrpu=EX&75DFv>=f0Ps*5#xmQJ>=||kg z+tST0rXE~lK$G}QtM<8hRcYe4Ox_V`HAb&e^V*7)!w{mvA8tc9>5?kE2OM7jCaC%k zpBV(6d(>v}W-5Y4k6r4_huKh)ld7rV+YDBLw*^#+zAX*K_M**Td8hkLx-Wx2 zT7eJl?85_DB`NK=lH{P+Zs8wHUkELubNsbdZ}S1v&{KHJP_3n0YM7eKnJiOwAR47FaVjiyMr?s8FCdp1n_)4jl8@d%YnsB#nH(vk^{xw|Hg9CDPMr;9JV#IxwG#{zQ=W zG0$}J+0u?X#YV7)5C+fgqm#}!jyR_8P7HNKzNisH8_ zDMRn8t0dpxB!m}r!`jk1;UOiVl$WLw_dGiFy$PasMIdk#rWs)wma}d$PgVDK2W_JZ z)>j07mUg%OxfF-Mz`ATGH~A&=An<*pFSb@sW$5)M{wuo8n+38q0XpWfyu=UFZBZdN zkuZ~7U#ZE6rSBdylI%V6{XbYKfc0ZMYS)j^kw;J+k5IME<9U|tVp)xdApaf`+cMBA zqhSm6^ZUOE3|UmL8pZ_g1(b@S9-rrAbVAXEVkN$0rHUWpsUt=-gADa~YH-=I84Wit z!npgCNi$!IM!%@`22b@~Ey>71W$Fm+7<=0P=?;%`Jjc(QVO#bSA`d3k-?&oFV)?K? z$G33v!B0eute5MM-C31CHZ210jof?O)i*bMf!lBVskD#G`9zh$8|9)hGAZLYCjcl? zR~ruKfRv4PO=YP(bbsz9fNzf5+*qv840c^!{L}n3k+z!Z#+h}20fJ`+jC+X7(1+Xh z^;@FcKJ{W?)*uwKv6pUO4uo+I!^f#Ov$Z#DnjPpD&QUceXv@tkxq}eZT`9eK>uo0C zgJSZR2m8F2D3a#Asf}+kV7=ix->t+dNMSR~MX7XiAX9Roy>FOmu?^{0EkM(}GnG%2 zpmTcaYdubasoyUL4O!j~vmP#JlgqtFMKhn-4_x_c1}JVLY_|J%tdYTX^2LWrA-UM^ zN@fTn-*+sV9&oO-f&x2ab8uGD97;8fH6K;tIV};ioD(lsU27_4^`p{ClO$!-Z1x6#)mh%0F zCk`MRJgql2RZ_yy7|GM^lAM>UL9{&=LxVHE5zEpz_7*KZ{HGt~NyiSV^3W;gMsQEG zPz%qB6pr*}#8;H7uFS(Q9Udf$Xk1Gf76cp4t)pW^v=U!Gvn1bRFtZZJxQ9Pn7njeQ z6IEkKklvdH{4;ksYFU2qlH4?m$!kKXvX*cI&m9Mpv|TS~z<3|+?GAs{wrIh{o;}WuxP37sL9!|<=k3s4cCRmLZw)QPg&#T zyZn?Q#!}>?oNZPFGp}-`Lw5M{$v06<-{h7eCDB_2UrwSfL$ocL($B0^orwQ(tJdOK z5aaX5(CW{wIA>1fb;i!$L~aMNO6O;p)ctr;h`ur#C$*YTPWHMQ%6yck+Jfo5>M7B_ zn==OPy?w}v?)f_Uo3pf5dQjK;kk=}r$y}0GedOK>+FEnY|HAd13wTrsT|)BH+2Z+V zKMh%ZvbWMieUHq(Y@MXhMS_ylI29SCJ?%0{ud+AFu7czzX7J-3Kn60s?3fKD$Z${G zXyH?;c=FP^m}VieF{$A`79)4YAlYh~h3W=gsTEs|W)FWqhU7$=bF&Fk`VV`3k3PQ! z|I;5EyjJ3JVWKdlJoIA-oWinn$9)m%_MLZr8ykR*B$4(wOq8| zQWK%iFlDcPJEcjJpY9|OMt(X4;2l{xsKw$ClmZ3mBAE)MXBBkz?_O(N)@b90gbo!f z0pW}XR`5d8Q)b0X^@n}oS%{RdtuSAQ?EFrh(8Oe7nx!Azsyc;^U7O>gmWT{`c+N_c zdm`LN#${|Vl=A^iRwDD6yKIGAxah5l2d*{d$V=`oMG3|;)oat1_=ByN12a&NeJl6U zgy!#cyB~@HVNdoKXiGYNlxD~h^&OGyx&(sSusii6y@9x44^NqhMagn)NtMN#n2D)Xliz_+DSf zgj%~8&}v+_{3Fq>v<@Xh+%9)J!jPha@pRDii{StjI_%x-f2b#twC24|jpTIyJAw56 zw{DV#Mr@;X?jVd{{c`eD9dwen+F2ahlqdEU*Of){)6m2{84-gC(;r?U&lRai-fy5Q zOsCcBNZ6;b@6Sz`(xa>Q@fqw6x)?L9b&Yi{hxN=PNeULxyj5(2Yfnb}nj+&lC;bW2 zKFdN@MAtVYBNbU1u-3e;;dLI{F7MPvg#{@1eKcb0ss2tYlMy%CZGMY%{!PN$h5u!ZDC_CnX0MR1Qj^O0WeS^JkhbzR1nrc6NKZfHNy^t%AhXk-qM*JaAY6M5|YDS13-#8Z*0*;M{REFQvn@|d|B;k*iWpsF$9TIB(`U4}>e5@T&sFA@06by$&_dv&B zgV{1svAqmL4g@aBWHvK#q+eT67kYV`rON7}k#YPnZa<7h`aYA`vIttHq1ML*(r!v- zgb!6YfUuinmww=uz}sl{mvS|`OEIg4s@`J>){kW_-@-H7A0D*&hJh-dnraQVV_$8= zXPXANT1p;!T1s~u-%8IGtV2J%k)uZtf`Q(qdDx3yfn9El_Co)r1ygklB&k}O z_!il}{a1hWLJI4o>hWB|EdJ6csbzl?$Hsb!GT2E=D7)POy-;s?SE{vn~? zvzVTZUl{RB(&iz;Des&9Cfhz=4z_IDfiX6_7ZUBV39$=SlVL{ftg3%J5YW+iKD?!g>+Jj4J7Gj;`_Jn0cPBUDq}y2N?Woy$ynos~`K68cFMA~p;>haMDgxAaWTO~V zIShqE>U{I~qpvkIF4wvx=s5ecI{5N|gj})FByjc@-3V9UV&?lojuGrLE0QP+H^|D* z2rPd5&r&r`_uFkIEGMIDBoXyaeVu>Bx$en>s=2}raS+azR*>^U*?-({#6N~Qt;?g9V+K>z^Y{0i>i>*fh} zfO>ccL%gMMJc1L)^$q0!6)&M{V0HE;pt&8}zxOd^? zXuTX&P9NNjr-Lo>oe@ZpuacrgvUeKeBQT#KxIhNNuQy}ZUER@VLoo-HofSYQ2;7_6h)t>T`u%T494NC zONTmIv6nuqd)@lr5iRB46d(hsI4(%QDy_e3lFJkMI`4hmMY#H7uDubwkJ2CO zs}$L6g2lbuj;p+Berz1vNA$*+_o;inH**sQ>9rB-6m&>jhqNNOv@mxkt3`S5VCxMI zV0522(H7^|Qrjb(7O_MMV){Dj2CV)zZTyXlq%7v!(?3Q|MzsbCr$_^=6bMNMIrqGj zS!rn+d3qVTL7{WPY987c6|L>NN_oJW23oqi+f@bE$R%imnRnWl^_~Nk4{xiS1T*uQ?USN zQ#Q-wu(_w?*DhmQFX~zC#SA=LGgqfWZ>HSXgPFrnerPt^#A@q2uy+ts#j21`02;OW znpE}!wq}&CVjqz|O;t#4Ni!=p)gq?~FVfc!vRkoh-c%Wl=r)y;ncgv~ILViaVO#{dN&w_Je{ml ze5PgM@c3BH{R4U8sb>fFlfQk9B)Napeb)hjt%zy6ScDgK!xolJFiI89A z4Q=;e>a^9%eT`|OY9AP5>{<0rREME1x_mpm|AxFo;?~i_jMH0ui3OH-^Idk#O)rSNrsbSmJjmH1^4hI=jxc}O5!!YqOmpZ zRSb78gHhBN1|qiS{uWL~qYxyMg-b)y4xhQ)+frS5rfaP@m`7p=-)|W$QpD}SI@&#i zQV_z3%&vu4RB}JjE(G>t7K&DW^k?^XywQ7qKLeH0@SuH%eg@K<%uaeFyH@T`-#dEKF^kWY2;m zk&Rqll#^!v`I8LhFELRt^MuXj2(tjX^&`>3wC(zmw>w+4ue>_8|LU**Q2XzX6dS`i z9vv*#%||_JB2d2!*XE(R;)kKly^bF0@>DtrX!dp>e^f_TuI5zCgea%%Kofg{s%GXx zxIc{td1>D%6U9;kK1>m!^j=g~mD^Y8#k2%lTA54~xd2W@XUDTR{f1v?w77o6taT!W z&qT0Xw3)_)TE$<3^8?FW<+QZBC2Sz1S0?)TG9S@SQ~dI<)!NlY2T?37gqi?ueR#-@ zz4yUz!fb3n+nA|Xz`MN3fypcwXTD1?s}jn^^$hu}<(%n{!7a(rzpjvWfP++H}W_fl8}^*Y5g)Duj_H4WPIAjB<_phsgC^ zsJdHFT3T3Vfq*nCq(_o z>sf%}I$nBqy1HJPB~sroj7X$~XFVS0vZ18YFE^x9nD;Q-?HYffa^Y8QY0W`zPfe&^ zsD4&pd@tWxEo5iFe*~_DL6S3_5U(xxj#WqE%j0fbx5G*Uvuqr5a*`)@;!o}LDkLrs zkPm`H%d_+q>@$H9`%GES7=tWe9R(Usc+ZvInu=Hy+H;gUI`H}izurdon z#hvq;%-8V4n2|2DQ$=@wL1MZ&t^}kyoxw&#p$CXA;+!{rP=_jB49a@M29$!MWw@oVqeznL+hdCzX-W>uZRA&2xEy5Gt+08 z0w`&WP4>gXO3h@E&%F3H)!2ma*20p7^@i1u$D7LB8~3O_tb?r>(;_2M!{XXRX-FHH z>wERB>fHymuH0GRl+%$WZF8@Z#aL6;5PzxDA>a010+OteFN+(OA|;+H3)n>q&q z>C#`4_zi`0PF)Png4k)2butItv9mT!XH655@bU^4HnAiwul(LLpmzbdUAVKzMsHtztv==rg{m*-fUIXX{;I#JVDY`&=ehPC}a?J z>b+NE2&dFG^9z8togjM&ClFygY>d}UrD2k5tutfv6cp}Nsf`dqU?}NRg0;LSH8;06 zUK4n?4wihD1+0iHgd|pNVyo#5SpavI?c0)C7N-I-DaR<9K-`1;M@c`2+ON|2?w9%s z4{#8)+(m-++zDhwpmQoI&Ao=V{FQ(|HoAiZXa=~;tv)ypLIOS>bqKug+!57G51vx9%Dj$|(!VL`{k z+Idf)PpV`rKrWe?NeO5$-Msriv-s;q$LExW()a9B6j5yk;Bu2`pLgauW z--_j4Q(fk0AP$P7qXMrh$`YGhH=h6tf$X+r?_0NWrLP6*0lUl|g;khFlRCI5nu_?R za@ji`M{7Ljy=s#9s~ir05Mfn0$#_a_8)=P++EUbed1p%P3#jdoKeGt)r`L2-+UT!Z zQ%;Ll!)uba9x;uK`+;z4k zfsO>;>Q^jy@UkjZ$rH84+gGvA@>hq~wIna3hziW)f6t9~RfT2lPVD@la;YxGX`r}u z*a}!Jh#W0LCIkgpeA{)!nKnDY!0#jhox&-Kthb4)uA- zc>9g}JiW}f!RLC$PX=}ZnNKZPR8M=p@uUekX_z;lZ1bifnNyitBUOQtAa0f z_9mp;VmUP5J)B9Lo@$TT;ivSwbj-7^+{uGZxBzm&$R*3i9J7INFCxitNbu*UQCy!Q z6qQ$A4Bqy7_$rUzciPg`<^7ZWTu|~$a68SH=Ay8IuPJ1A?4-|pb8|n z{B>hRvRH?q=4PLg`mT4vD$Z$_VN3@61HQ@!mrQlZPvY`tFu_axq7XAbPeZ5+SPIQGRQfCLPO0^*ovSs zs?SHCLcLu=%RD!}-bY@)yKF|QHV-jVkD`)rac%Y%rn8PT6Lv|Xs{Xe=L9z+T7qFtv zx43qMAtNO)&zw%T9r7ttNoRM-E;wr#FJURWm?DuXy;Vt%UDIgj`!9nKbYr~F{i+Cb z5d4*HVMi-8T76(Co~JEcU9M-rY{mUY$9a2uxasLjhW?P(bJb7{_hdgFZ}LBBp9*9ERl;>@ z8v>s}1RtzPB{3#xJeio2Zkf|Tb38WLy?EVRKcc3C>|4x|M+ph%75Z1?yy%Cr7hfN6 zGNZ|y{V4sWDOeJl7uc&JBK(yb1(TA%)w(-{>mdxD;o&P0{BPU+!@K_`1n=MZ|D|W}jEMN(2i`w5|7Yj_@ge~5 EANnBWZ2$lO diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index 184dbb9c34487618ea52763e2a23a22224900e85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3656 zcma*q=Q|sW0tN8Y-f9=MB35Hm5wirTQG4$OK`7POl-hgM9x z_q^|Wzu)J%=X^My&L8m8R>Q@U1KnA-a5f;y-{yn-QiZQ2zv)lTfx_EZ=H$p@BtP8Kp+6{JTej~awFnW zFg4LEO`bjI?7-E-8WyL^B+FAv+96iA)$d!-@xpkykuuLBYXM_<57WO77yRY9tCTjRTnNqjj995@Hul zx3VKoH}-Ddq=t!$gTte~_8Gf&^TY6*50f2|EDukDn|GUz7)vAM%a^*pFy^{GFkN6`!(24&eGFt%l_Zf%NhjF>oc`U#M4anAtP zt5(yMzfQ=#amy4KZevN2NV;9Yp~OINaU5{k2Xo13i$M?zuYw8Iev?f|H=KB!q_{NA z@eV2YS}0NFS6K+yJ-4BZoVqfZo=GJ1qM!PO(k>7 z0C1*|>h2d*N7-<_9*Qp8L`)|z!-cKFWC&qBuGiNTLZ~Br7d8V9bjQ^OR z#xr+_pr%#4dqbYsEmmBd0VztKts`6-9moD{-mb6dlPe%wB01KF2E zl5TNtB+5F<4jwBpGuZBH`n3(-_-aE=t5J<3@b)Km0y0YLs9ifL8Kp2uV!1?g4-*cI za(oLaeb}I9hhpgp62AYu%@6B69BDCKQtEvdX>+qK z**GYs-)K^djs$XuciRv8T+@&FY_@d4NRDl*_bLLF8+AuAH?oNf%+!VzX885R)xdEd zG&@8F_`3;-GR2`3ogC(&?XHZx*fVh*?7Wrenp410n7ku`*gT>+d{0NpMsFRtlC95C z(q4FV^Kps&cB%}8KMFJZl&X;#L2u(Qhx-1@AHIe?Qvr>9PlFh_Iv}_qqrNclb?CIB zfc>mc#b^TE!OuNNyDxQa#XHZ}rQlqgZJy?rGFemxf{1$L_UB3SFMwdN@Rf=c&k<~L zW7mAH$WajFc+p(tQwUF7zx6RA?16D#WN)wXvB7AUn6Vf-&lk{9y+n7qoUH1sqOUa^ z6fm+%vB9#5-dGO#mE>sFU*}Yyrt#xXjz#iwdsOM0<_VpwA*boZoPg;RttZ6dW%yoP zrYvD!ip#Gr&kY!L(jU{?H%N(tEATqFBC?piNf=@d##<@A@%Q=|+6&?hd(BYyp5^ip zOa^n0PGd)&cpkG5*3xvbC{|+G0=n!CS&cHO()QxlC{ae>_vB1wnQdpVn!U% zy^LFI*3^|Trh*Sj^W;d_u@U%bi z>v7+O8F1^2;yh{w=1VJPeOOjcvoiByaNJRG{v_BWdXtXlyBJtRSLy0lSG_a8N*b2i zS~kHU4+wle{>=HscN{5gP4$dQv}gPQNtfCA`}G{>A5QgGm$aUbWTBwT_4oVJ^kPE3 zeqilq2BUVZL!cM{(iHgTFHE*M|D&mkXPv-9$@Qrov3m3Q9kjqd6tA>{hbi3qN-rH@?*&OhwGA_unS%FK0F$8S8!LlVSdrk zg^b^5L!UmgCaP-oID&XxkL%%3y;uHquUfqk{jhc3Z+P29<(~A+cFJhJ)H`7u8pxy2 z246d_)Fx;#S17{BX?b=n(z21mKy*82WAQc-++yZ3LvP(Pg2xXfC*hcO<$IM;(S!d? z5XO5}|0^bGSJ!qJ;YQk?(mGx`Nykzr8Y}2HIru`i=4Ev?N7WRXt1mY#c61|TSLac& z4}0S3B2+1{obo8(&c)Pyrz(5=oHeiQ#+pqLV`&K0A`wjISJuOz3>E4RS$ ze!ay0Gx$eKx?YgPd!iY)<%)0t9;{PxU{MCfI)CkJO4~lyVKy;oqWk+y>Ql?)S5e~Q zyRXtrlgfS>fL}DG_f8(2mA9!-^zcyQ*Y%ImKZ1#>rD=o>ghR?ks^rEp2LiaDz(MEW zU`SlMkw82Q_s}MZUD^@!Bw~`52 z)rWU-$xI(dn<%T+IbtJf)@v@naIDV!m(yg39;*9!tAAid29b~Z%I!pbNQEaLT;?eW zfyzsi+X--$+^yM*SRuy4qY}J5zfK1IE24t?LLBn9Q~NHcj*Ew*=L7xzQV@Rpl6C5McPFqQCHum z3q)@JY{qBFL6bTvzLeDmc{tN`lgnGDAG}dW!`gejBsQjsn|p2GdG>>70)gp!jjW_y zupKIAVTjIpv3XOl&QmZq3AmUSzUkSnw$a+hPeNM>6cYMAXFe#@QBU2{s-h7i7*1EQ z2G(4#&v+z?f2&T9hW`5NBGu-5n?^BFJ8MRkUO{Ku8Z{UqKWOvOZFOk27_=_u>aE+$ z!lWkbfx&u`j?o+Re|(h@?;&VqT++y&rf8*GGIQWJn*Srs%JXKe*{A?Zd6Z&QQm*_C z|8;$Q!F8XHrq!^qs>zgsj1-fF)IA|*>*?2Tl#_#h)K`UaO5M!Ek{w9waK>>(8Wt{E z(liF>r~H zT{_|_A3k~=ME^7%l1zc}W&Ld4$Rw`JyM_RlgZQdBX{{O`=YE-dG06}M?;EGxPY7mH zUEB=kZCK#nS)^kbJ7-i;53dsusv>F-an}xBn`aJ%A56ciWts(gYIVFkBJIkG?Y!Cm z>^vE*JFXzQDf|ujmFDdxM;|q#)^oq5Su+0pBx&dYd5;Fpd!6e+ayz(;i3b{q#Q#y8 zV@8To11^@y=TI|Ouuv~=p)BFrS+P6$WxMQ4*Eh}Ni@+#V2Dk4jFDzl z`(E1&PsS9q775OyToF335q-#u_wfSdYlV(05_q%}M=>V3l}d0G*$}zZmX5><%-5)L zgK%DJE4PBoFlU$G0g7a=U*H`|f;S^f>ki$FtGffw2-Nj{QxXK&I&2iRl4))UmL`{f z^NU_H2`sK76W12J&8d1m&)16p!Q>7RnSN9KicgJ}d>AnD+#GZ&{9rkE#^CxX-dW|SEAHUO)Rrqcj95Bk&_qa76Jn!% z-SbFdFSn2>%A36Pesavps4%~LW@?V}8-X-LYeJiDpRr;0D$%g06-i70JsJq zoc%qJ2xqvrH%MAiPEuO(Dbm})B^ZVD^LK#zIlFrVx=4CHMIvY@sQ`8WKr{fLiblK1 zUds9w;U}8zGvxInJVd(rwbL4Ys-EYJ>K{h zdT^$n?S`c_BQ5CO2+{O^s++hZLj38=eOKYxqNazJjB2CeTEWsU2pUECT2Lr21bUjO z8|#V&@qU9|qhDB*jQ$P@;n41QCdF@lYbS*_^Ce?xLqRZ1>LZ4CtwNO+dgh(|+#A0uTggNW7-jw<8eR$kD|B@;S{PClD;AV#6-J?tyFfa93sgL?`qqSbp*za!5)G+P{oB9eKmMg!L>f8HHH;5L1t?4;TI(pGWZEh{r#XX8O zXMLbqqOJxKR?W&+=Mj-zIRmTNGtme_TF-?jCSkw% zjpvXOhcUJgF!g!Y>7_o1@_Vm^oK z76=JaE0%(R4m>vmdm5pkGDF`frxo|vzGx_0G1vmBInJ90Ikl(unc^khs>4xad8zVA<=0 z{l{$2j54r?#I_NHUFuC;(1vOl1&SB%5bPJAY>NbuICz zSbEo|qYKjXImA!J9!*ep>PxgEk8A*W*T}5G)BEf<%lX3~m3 z#Hzzt3Vljf{@Sv)VEYdYYUNaHzW#^LU&*rKKD&_0H<+)7a57akFyeAUsftm_%zp-z zH(OrZN6CiZNc1YZa7QnZo4Jb;+C$Pp_Gx= z03oG5oiT7G*Hci|3wHVIezcAw0eN2kIq3%t>#jWxP91_AWJPv*om2Q$CWbQ0D~auM zSw$sm#SWa=`92OYsmnuE-D_tc7+duu*WMo0c(E%{ArlC^`B+%Qn~U7%*Tv{nNqxSe z6?sqFF$MV|F(=v-h7l7U%0;KG&iMKWEYBayN}EowYmu+$>N5)lXLT86G#|NE9MZg7 zWq6W_NDe(KKD=G71NYaLKQcBz^+HAoZ-TXOL8NZtB}D!_Q&fCR+=`T#+8Z3Y_kX6+2a zqRffJiEP&-t({)p)V#1%+GZ1GYv zQJRu|c?jU981tSx?;ex0LZpg$kLCM_b}bA#|E$C!)$`HaNXRmHyOD}%+0eEMGpaX} zU=e>mSx-UJRI{FUnlwlR)%ee)Sgq}L%y>Ax5TT^a zh}c(3*=cuj=mgZV0!il*wT5{-Gd($4t-yRUDFhbcNZU_=dHa)vN|Uny`+iP`o|}TU zq-%mbOW2z8GM^}bp!JSL{ll8!FDu6-@FBrYj7#+DakP`tAK9o;qg!9sq}oQ=cS`z{vHUwN-NNT;;R&gS zEVi0A!X>X%cBr6YkF{fs`tLuTh4yV>-+89X!oR( zc{v&_-?|ea7KBWN$YhA3=}C+`#3h#>`xj41zt8Z<+TP+PDUtz(Sb_$Dic*_2gBsvhzr0sRg0ypsoq^A={mG^=-BfJ_V&K8IRpD~W&>O_zH@@|k# zg}aK+7lGlgi)%~5@nNr4C_6flm_0Xob-ZRoH?NU!rBDNxYXo-l-44MlQ)WAd?)t<5 zN>13TYq}$)-VE^~>3hI?v7k1dIo)?aoDXt-V46fV@v~X5dhr#}s>AA2POt(1A$^o$6Z^Skrj_`K!IeX^4#(1 zBz&&^Oo1C+VbIl*9CD*<$Sv|T)hq0jybWC3^uc^mr&vmt6?u@!Hrdd!s>xX_X0l5^GkZA+So%s@-<Ll!D z4-OvlWL`U2KjQ;6az2lhwxDi=AEc(ig7Qrl65pN`@;B4zlbn4zeB*z!3Yw!bwBX5k zMS8_jaHB#4bNkkS$aIFoK-W{H&5U%z2EM%f9M{5e;V>E}n?c8FN8iWG#}r=^pRjf8 zV!k>%z|X|34!ubpZ}MeMq?H!UoPXO6T12h-UJO-QLTTdd^vSlg>X0*jj@|BCw3joJ z=gF{Pi)>MzI535X-ga#FAn}r+NzGWFj9i`KfAj7i;r%z!WdF|pk3D03D(Zh9WdGFi MpI!cki~zuY09U#11ONa4 diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index bc6e120a4d44d17d452da73f851312e076defb2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3654 zcma)y!dA@Tl-m7zco>xy3h$9cc29N?Sy}XQeT3UwENdSP}FaQ7y0010cdD!{6czW2` zxVZ@kLPQ~g5MNI>D~CWYPai)k8y`Do7k>wctFNaA0S+#}5&(z<0Av#rokZ?Myvyg& zoiZdvqaH3?11xc=1`KjMO+>w7Ee9hZm0hO5tqYQv$f*HiZulxW|N3}}pFvVi{4 z(xEw7T3^BYepZ^T>?;tS#Ko-d@MQJNojz_Rl+ihcUpg)*2(@VO3HGju!C_hWx1M%#ho3qb=Sto$+LMFe;;JBF!3P6j#C@b%dOnt^hWRA>iNypI;8v_gIgxRyV{Y=SJ4vZ7}0ZLmNlW zI)ZGay>en3k|a0CX=NtC@y+QcGP_YO|M%5pO~K9CsXw!BgBM=xSVz*uMo-=AJE8gt z&!@hEzmqM6DE?|6!6Q9(-K>-%W%pxNh3&JQdl~;e6{9_AZR}_;J8NY&;W(YLdD{Q zeEHVA(RLu!lu2}GQb^it z@FpyGe{(-?7jjpH5N71kU=lG~0k-#nH0H3=G)|Q1T($=hHRlI-i%85EcNIb4D|8{& zv-&^T-XYFH_`GZJMOF%%utxxKL%R{RXNS{BeecTg01K!l|6{5)A0)z6IkzulW%Y@`|M#3P);GuOv}D~^+17{ZEGB_JxcBG0EM5y;N9NIC6fXp|r zL_;@P>m+P8)a5KKR$VqAZnf^~%oAQG@)sYwCHg{|LK1$@EEpVT245*O*A8kKd@$wE z(4AD^z(~Dp?WDoKM}Z29XyPwpo^hODJRrWKt{T7j&g(LzWxZcM_S@F}Gp!%g8!~7# zKG?vrs{JEvy*-vHdJofx*_z3i51S&(2c=-Pt$gw-7Qou(S*DfmXlrlt92qV5>C_-8 zI-$k``BjhNtM7-qO`WtG%iTs|6I`I_RvxSe6KA00Y_?B4-R&+h!KUkhJV6n5;5j`v z@-<>}uuGRpZ%MaRkw+}U^vZq>e_o_G`>nEX8E(bH*-GZl zReQ=@LCRl|WJmE<9g7V?n_0>2%OBqlbWmhD_Feb_%3l+-B}%fT=v;(X)RpsITyTDs zUNDrXPb;-o?eo|(eGcEc)~O_P5?o$%iOb#LzKlIdByD_(h*o~Ob`p-8KI|?_t1+_~ zNAdhfxixE-|IxU>U3M-Bm$>}#sLkq881S5uh` zIV6nAS(}Rv&QP!^m)Dz4ekOPU<(tdQi?{=e(h$B9!@bx}dcuWvzpc5LF8ElQ6`@ip zZ{|yxAm*)m?#T1nm%i80dhpKLR%VcLYd}=chdrbLIsbK_*rzCHVs3Gx8Ar*7t3+CS zQcK2$o5EomBoDpgqWR;h0+NhgBce&{!&~9=RWiU?QGP2yMn$otuxdu)mL*M1 ziF(@z4blA^k`D9N#>GCdKtJf(WONe5GbiwNW{@WPgz3Z_Uz%04&`!mU8!Rc;a4JxV zA!cq-KLThFug~LRx<8({5Mom6&Jc%fur)7|@vPCyemBQ4dw5x#E+61=mDV@> zS#biJaJyF|%#Ty@2lw&c?4}^rP(Ykrjb-I`m@vprVw(0zyv)N`cmGUwneQ>JWhfSu zX90w~iHKrNERf@y?Ah#ohdMmVjaEMI9td#L!!~!~kW5Y2)n0y9`@2TSeDYV zD{X}Y(LP(MO$s=_D#Zdmp%+zF<*sIc+46@FA0)I53`Mx%?P z(_W%7_)XH}k3tSx#HaZy;)dY(34r4=eTPD}DB$du-!HCZk0@LGr#JPLbD?kJ-epQT zo+2x4t*{h#2*?^8oBX4USL<8O{D22d4}gg@IJ*Ax+&wI05WqPdtgzn<0avtiR+MRS zcF=F~3l8IdOqG8|U{d<1VeO3J*#odeH(*e31y-7oHvI$$^iWQ(t3|kD>_>L0XmP}i z!=8U?$sS4GU{e9tG8AF!*v8e(+Et9>(0PZqY>E3nK(6s$5c=&h@u=M_gm`_+QLsrA zS`KQ%aU$m=sV7|l^Tb~^bT!H>5%~vQf+xiv^;g2^B)La$2aE}v)0~KQ zC@Sab+ExRGynMc=f9!XXXy+uYyvZCZRia#1QRvI)Ob@w{5i;EjyOS7ieiuVOF8uPQBv%E>BKJJ2kMM`_(S;qYo}@sol_XSZ%#62AfdE`l>+l)#)%Y z$rB+)iq7obvn#q#Q6`z*sG!6t?@^*(mEn=_mrCf8?=j{q(QxD$s^iS)WArvJKfgk8U z9UnQ~$F0N&&(&hxi}#q}7k`WiEo@4!sN4zJO6TR|eX?Vb6aborsY}k7!L7#uTF_aRL zqz}G_n`m0bt#8DHnGGHkH>z6}OW#)05V}jziSWqhCepJpd4?*kn+doNl%Fq1;#G=H zh896uyS60v?$_#y^fa-s<$?d*?EcB!|0fdbKltB0PfrsU?>`Hye>MHb)ql1K0Q?_U C7$s^`1hrR6@!FfJ zt&01;_xpXGd(MaR>HGmdGeZJGH2^+<3UKD*10EzLx&~4K0KZ-X0KxzOz$MTN8UXY5 zf;xJ5h)Igeic5<7dwaZa4)O8!3wYt^2X%u5Ig7jddwV?~Bm&q20MP(|N@Aj`%wHMb z!l|)lCCZQeUNF8cU|cGQRaF2@-X>SS`|VXJ#)jaZ-;{{xkuFPq_{Q^{#L=b#(}OF+ zT-ORR@ZG!~b*N^5zh1&mzRNRT7D4%#1x*-SN~K9*1^M$_KhcLU=MneEP}9@5dI*;k z0aoeuJqUGLdwy{TC&NEk=Oo1PzbE{Azn9ytwez!M!N)72PvSyDvGWIYmJLq!HA;}G zT-%O<^78P01I0z)a0Hyff*mLo`K{v-Llw45Ot*(z(iC20k0OH;=V|gm=qPKT0?Vce zpM5>aua}7Frp%Ic0r0zbqU@XEOKnUu&Dc8WrF?Fus|5WVq|zY;l4Da8N{q-ORyiex3P;HmRlJCMdVj%jDXmhUv!LE#Na6 zXb?znFz10hf7YIsx;o)X*j;7z!`0B3`vu=s{0epOO@|1_n+=Zn;9h&_L6NQle}%M%fEm;$!cQ~RG!5!3 zoLW=?;#BnCTNbs6%j^%BF3TM6j{G&$BJJ=s@P`>g6V#BGS*vXp+AWxQVXgg=aTglo zdI($O7=RI z!tjo_vl5&%a3ekLyp@}6CVq>i$R%d+cDnr*mvBexE_hd zmTEzZiIdWN==_+t|C%ZwaAh*GY+k#ueg*b(>H~Roe0ah1ARhZ9XF;*#5oX_Cxi@@8 zklXO@HM@t$ysEJ5x5t^jmrFgtI)OJvnN>VgaTp7YH!Z=q^40wQ>KkjL6m87UpX5KozOAYG%KV`1f z)Y6@I_0zNY|H(L!0}VpqNT0%^mXOb%n?G93ZbENZ}r*bk#TU36*9+4 zpvkK)^%F+euqFSS;^&E*zqqzHiX`rYx{oc5RCKYZFxR0A_E3Uuw%5 z^Bdc&y`ma}*CE<$JWmoUQqPG7=H-b7EOAI|aB`$?>(PrISl^=xq2Rsl3&v^!x4#~s zbbh8PGOUsV;%is%9gVJ{pbEVSy)({_bc<<_f%;S4JK_fc!K}{_qTx2bwvDiw2_~@~ zeojwf@#&p_S$ecF4tDM$*=)=i!?xm#)44Z(*Aa_zLlKqJgTvZ)9IR!i^MKm7A>=8Q zpZSHvb^WpZd-%A8&CI$!HVi9&?w8})u!SU9#Ch<+vnaWh%2RY2Ss#mK#07H|BxO-U zO^(SE*7BGQ)lVRk6O!ZJ$sueTc?FVLF=Z#^9_r!Dx&LH!xCV{BjWTT3^qZE;F?!e% zj+Q0VS2Z^>+2H_8C&!%ISG(QOzpk?k0|fcy#~^?Iq`5=u^P=a`5kE8L28<=XB1Z68Xt5%{^Dt2pM-vN8 zM^dI=-{hq(Ewes9nRrV#Q8=0&WEdixyK3@;@;7H3u+jg^Cn=^jH#JdkX6~c{(cuRk zn#^78{j4a?*2|o|NpD?m_BuUAEaouR%TSwR`l&92O1({7%Up=-3@1zO!csW*1}9Cd zyAYE7Abt!NIc5%=Qd`B?A<{*WJz&om}?xG-Re>ECGPQZrpIj)V?*KUeN?XYwMDmi>0tDQ9k%XnAF za~s{W5dr%%FNs3{AKMtRy-3c-Q{r$+DDUD5(d8M;{Z(gH^k$&dXQ+AkYAw!_ecXjv zf2v(O&88eORJ=DvlS+*3qVxt?%5@XOB6qhX-n?#zloG5|`&2`I5P+Qe}WsqHAj> zo(>i%q9$94p*UX=(}6Li=fhd%9s_M`>24?mE{BTD<1niJbm$2?3Y}IB%%lJ(f)Z5q zMJU@H2!!Qb9O$n4Nt0dKygL1@VHYLhx6kLSnxcS3fdU6)X_=~IN67;Oy{=l;$3fm-Vkd?Cx|bBXOx72S^9)1mDh z{SNHzzzCzK#Jg-oS>7{c_K!$&?uT{(%E=!d@!yQwbaF>~HdYicsxi<;RQPt`1z5oV zwbqHg^3nAcZQWHXVvxxM_d?{{6SQbYjVtF6ZV?cU(Q9$5Q=YO81ZQ|2*YQ}md9plH z1j9~-9q(oS^at;`A&hU7Gr@DrcDwPOkKL(M{Q=I(BDIhMC zTi?6maKQnTIV))ppub!rJXn%#>%y07dYqo4UH#t^W$oJen_8ZZrd&p*Ku*uOoHymvHy?fOi0g;c} zOquHGfJjlTpN;e#eyM(xo>0yoiFdk9+(7%)uA85)Tqz8qxG~o{<{04Tm!=+w=HwpV zMu{9SLF3UKjaPim8Gc%P@~yO;DOyQgF5EFX>p3q02Id}N`-18RGQ0Mdhi{JrUUWS9 zqr|7Kszy-ih)=`Qr%|0R)oR)>(M#r2{u7p)$+=>o*c-6jwf%aV17TP*gCZvTEQYH0 zdSzpIJO*kXl$BW7Dk5lpRH=+R(aH#Lvd^Y@bc*kj3f5Q@7Lu7~%j8QYa-m3l+B#Df zFO!_*zm@L8+-m!|Cr0xJdBP}MVUKctW@?kD*9cX>IUHj2lR;niaYqJM-#P7{e_ct2dySpat~UViT05SB;|4*xN$Ql0g1P6NR@bDvs08!BF^69ltXq# z(IMLr!ne=&_s{F~d7dAhpPoP9Z3L&HRs&E1m;r|Y0j4i>vCkQp0f3fg0Dw3E0B{TO za}M_O_j7ji@sW^{l$Df{4D$D}cSQyGBZKW7kGLs z2mb{J77<53-Dk?}_45R^-+Z2A!mTP&eWgXNcD*~|ZKEaC;vQ2BdZgX#w)amvQaqud z(D3&kc$Rw^(DY&k#uBC;90YqY2Rc3sydkRabXMKdTUw<7vXnnZ)`<_GetkyzHO2^r)DwihB{V@~+9Q$mdeFbmE}h?#c>mo3nVKXzcmeAWqAsiLKkyG@4l| z_xB-q%98N7=;rFS$d2{I55sCh#nxmcN_@>+TT-=|v-ny_>A{%C#4Bo!@NwGKf<>S? zY1Y+;<6LUhBUYxaFxs4IFlxvlSTrw+JHmsdJa8_8@ar6-YJCpc+j^aDR2zRwj)B66 zOZmk}Zkl$CJjRPr!R}cai0W*@S%+bQrK@AzUD!0#Ms+)(!Kk`pcG8;Kn@x6K4BbvT zWhuasTljv{|I~fJX4wp*qL=Vtqygrx*Hb*+7fAi=VeUwBgn4NzwFk@L)}itQyYkaV@YLRWPK!Be9ZW0reKa z>&CswmkBGuM^Zcx^{{>W)V^VUwfAVDsfi*?Tg6eJi}~F4N4Tx{Vtex{VOh=oK6(wJ z%^I{qasP9`D#%K^I;$q@XI8X&!C^M1-7vvMmS4)E-Zt_;Q!WtEkoK8>NQh6+57v4P z$hziTe6xSQHQvW)8`WsG$o#oAf55K7n>HuTs6U<1p*#XlnFy+Ql{oY`tt<)WAPV6E zzcLf&cgxmbXyc!=H&*rssRo^!=nW+l{o3;R_%Pbbmxd|zb;#dK=Bf8u79GMS6_lai z;zfn3`$&2mPEFr2rgo|`V7v@ssQh5x?~ftmQ2%}OG@j?3lg<61L3t$dt4zf*l)9w= zB?WiF?RDQL+~7WeG$o-OKJ*8;X;0&#dxjwdv186rr=*gnn>!VVY+vX%o2%Jdyv2yA zc5jM&U1%N{v0_%cp_2H@B-UweaV#7s~5pmy}ya(K*sPKLhG6<0`m5353>+N5qSR}}szi}#n| zrfnXtyGtOl?zNW=Jh&SAckilV%00>zt2WKeasETLv>&ian6L=iHW)f`GUooQCUsZx zMP6b2Y0#tKo^wa-YK<_!aN>Y?aeBjp%RnQ+ctm;&emCdr(@}-y1~wD~%C`r?kD z?DX5TJ%@V{IlF1SE-VhsR48ud5EP1W3u7g9`YC4Am_`4aF(eT9Jckf`eD8F+rsGN< z=*P%4n|Y?~eu1TZID>4)$)VHnHK>F!nEgl^wO4Wu$;5^&#F8_uSFJUe#pzO&_5&Of z*@7ecw1Aro#&q(?@;KMp<)LOyqe?elo}~e>Lv7gncuho!vl;?dFDB=z{3e-p;c!4j zj4hd>FD?xn^^)IN9)qN30#bY3*lQEBtfedY(my;H^ZKr2nx`%6(>~q2VS&+JEZ((b z2GmFjm)4YBFJwFgeNhsxb_#V4isBaAc|`oM(*Dlb-8S;q3TTK%z@h0R@C?Vcv!n+1 z!ds%iPuCWoW>!Atpl;I$y6v_Ex&929I&_aJ6`4?}msAtIGHbkE?>IM!Vc1#^Shrgk z0l7mSJ&AdMPYb%$&9G?BQ`P<}@O^WMHKH)0-y{32rM)UIpA$Rz$AYxRtWovVKXcMG z0z`1b8`A~ctU@q$2J=f#0liDa#3mju@zgX}YKOWaXs27*1^qlpJljq}#qZpI6Zy0* zF*NOx&lkCYr7&&w%v{dQm%7~8TPA!f5Qx1(%Rp`3`&~?G|Ix~y$)GT<<(z9=U6dD% zmu$v?^4FBIyV2!$Vj&IgS$<4OtA}G8XcJyt=BW6 zmR!HGZZWwgy$2olif$7`F@v-L(P~bSp9nHlCd=nN$|I=HdIne!U{zKlU9|cPgV=g=5|EZ2nTEJb#KwV13{(VR-w$`!$OM! zzMsd|OAochd+IWocK6~-P@Z@pi%2(Ewi#n%MFnZLWzE%SGKCU)dy^*ai;oX??0PgI zuCPZvT6VQare^#w2;1M^%sUrjxWLul(=S*McDpo(2la()oGR-YPS(}~bnEz^RG&jmE6}dQ)g#rW6Yj>gNM|!VnmH{Ym5c{ z@?RV3+a*N#7O#xNjcF_NDs(G$Z2G!@0MTMT9J=?)?K>_zEHju`KUfdBTR2GRAQ19)5|1*Eh6i<@Kl`6i>2$t<{=YPC7J}| zBw%B+`)N#n&_ZcBUatg(%r)_W+J*9#l6n2 z3}inpLZ_F^%e?Uxayt+5w6JH{rtmfBWiXTS2q{9f5w-j~2PD;kwuYS3ry&Goc4~xw z69TYmSl&<-GjoL3(;LF@wN*5y`uJ2Za&4UM47YE$iObt8d)O#XPA%GdHz@cA1AjK` zCnDGB+59FH;0U`~&-;oLyKVg8f0^M2 zng-KqLLB{yBonW$-Kr*H{pAPVk>kS4Xa3?Wzg1+*MXvgw46EO=dOOw=NU!PwH3>F$ zXeZIp9L~Ld+f3lpp2nQ|{E;3bB~khn4kK?apx`DBNIkm9j=8ysFu7eh&ceR8WgIPY zl&iH&-+6hF3%(n2_bz#fZt;zr=gHUx#Z?&YVOA&O%YFpk9_0pTmYfDw94IEM!Q#Oq zpOb^`ybTp8HK(6;>7yEHdcd-wlxR(;yfSqC89T!`;})IE%5(&CuHH1!S;ygE7&z-t zq|-}Qj#aqeS(|G#x*s?CF=EGBN%>&F`yFR;1hGbpKD@6Gk8FYIDtt{*zT4cXogG1MxJ=VuzZ$z?Yo*HVAy&p4>^m2gGZYTLC+AA+U zozyKgM(fW_@DcKJct3jO*k6bLIIv5>mkju&>DWp<@R0f5L-A;5683qw+%~jNx=GQ| z!d4J!GVEAYugjd($vO$8d=gVpijrYFNfxSCNAG+uv8Q{bQ{&N@ft4}1_2m~Ak*}wH z`p5lJQ#w5oVa<7`io>~qJN8|=d`bM>Nk`A@EK2a7(g?|kBCw@SDV)*iw2#`4hDOx# zZ^C;ez2{-*YR#c5LJ9BEFBXW!RjgY?3n34+R2Cq=oDZ$T5nK>)J*$j8b8KLKMB{P9 zTGxsohuW=%_9-h)^^b-;JjetDl&N@JYHCWAOTdpaX~)geAnpt2gDWY&QP1+vPUEW! zhKp|P=rD!F@3Ru)tT0R;-t!JKh>CL#tdf(xU#?3KN<_YW5Md*kZ76R6^+Isjjo4jT zVsT+chllS#FEKl4#wzq-2dM)|4qkf+)0rN`oO=*seBOoGeNP#4;#!bz!o5-@8am!! zhqi@Uc4VNO^lM+IV5W*^88tjtzSWh7HaAB+Q*^nAE)tQuK_eE7hta3@5K34C`)b>Y zV0A@Jske{sD0L*rKxXXrcyb+sT_%ee{fTZ7cJo>vtM*Ag@QB{8^6hOL$L`5)?yAwr z;0o3yd{kZZOXjlWG)JWU%k_RY&vviOLM#NK?jr5KE`W#43oGWAB{76_=a+OkFJ3xm z9ulao`#k{0s_(-wJO;68dzpX<8ybcl$R0E7TA;LOdX=m?kE#lze>OxKo1Rwx_U;scdD#}*k zMgmnZHQp>wl|A5M&)>}v{?35)sXz?{R;q5VA6?P{BU(M73Jo6ZHh$o^X|@|R)|9V% zc&U?aTLv<^ThyZVQ}y)Fiu}fZafV_Md=j#xYVY`1u}S88?zeMjlpAp>H&3>o?&*82 zP@6=F#dKRz%Ecv-U_8{1QN1HXl*5E;CzkDfGPt-g*Vj1}xvSs!nB+G%x0YJOx~>Z&&fj1%zK{D99;v< z7+L41Ww-ayGG@#M`@%Ym77k6QXd{|@#f1v`YS^drXR2V{Q`a_-S4+H&b2+7$XV!o- zw>v2UjsU4VFVux6)M`pzKbvPA(^r9i>IXPVIc2KthpVEL0k+b|JYZmIyn?(D%n-?2 z1-{tq3UP|glRs?<(50e)eLUsqZ}(tiR)`T?iyu=puvhlwXZ1qAP<{Nk1O8j;;f@71 ze%k3-4uIf(0xo^kEla?;So^wsofd!DwMo#ul|Fh9k>|g1@&uOUW`r$Sdr>?Di*;DY zbKY1%B1b1trSh&hWd2pcDt0EW7rC6b15y!qRu$P2^}wE~PH(jtpb(f!X`}M-B;44= z`4@|MT6UJxn7e{=Odc8BZZOtg%Q&+aAwKoVG`Bjj_C%tFrbzf5IcRp5q5{5@PoKuE zBA_G<-51lg{QOhOSpoIZe+WHY*wMhQ6AMJ~4?~iEchl6z4Z4iUy;Y|V(+EZ4_auW3 zjU_gE0>KWi-iEZEMKc7&edYJsdC~Q2@UsoW+iwuBP+}vMWhO@jH149_v^ER>hjIN# z-jstq#=rZ99Kp#fm&EwcTggh^rTo=%mckk<=$)T@<%U2(JeBhG6ldARzPX7YUU$9- zdF9E-=BhRXZy`MV{W=pmd19|`spSo)dhwZwHMC0~6Y(PnA#~MfYt*w zJ#io%FtAWyN&MQ7hg1lh`>)g5Oqg7SliROL3bEo;Ax_HBe=_~)uE|>Gx5OgKdX*2t zxSXxBbyGt_ejJEevrCCr>xftgf9QNh$M{sF6@sQ~PZPehdSg~5L&l`OlsbV!L8qCe z_H*Zw2r<};9a8EjL1ns@Xlm3-MY(IdY4lhIZ_ZKP!Daz^#k#eWuJZm{tF9>OYLE6{ zG>wD^lEZ`*Czd29HR+!Sq5^2XXLp|3nVo_zT4y>5ZhECz+3t!*^aex7NgC{R9U|sN zZthwu>u9yg3+7&H4{P!`lqOqqma3NZkbR3t(Q<+lcL7Nsg$}Y2O_z4Cm{Eyp=)WNi ze;yDchJWX7zJJn~=jm>JjNnSU^gxbyK9W(jgapkq@o&*DwW(SkQe`}Du;XLx1<#ks zph9JIE!kY#4KILNAi5ob4(=4?K6pl}rg0g?HsEvE{r6;i>2aw*zB8eX)GU!FY2<1;>_BhK7fUX*)_j7=>d(5Egh(WXfbGfR}5ltk%cLR zp5`P_D2BqdZXC~dS&tbp6}P^DOYRv4tAa&ZNH8vakquoWyxanr8%7c_9=d$STf{2?^}iL-lmzXYX3elga?GSB)31Yx zO-Ye)CwgnFjl`skLOO9Tq$K!u49g;t5RbaTo)zs7C*3bSJrq{&cSAVF0p|_9=fDa5 z1)J^{m{VF02*QyT-&YHtK#%vC+Y?GP{!+h9RB5hf(JTX3fH8?M^`CHu2kqmYo0azzXl4TW zMEWGJDkn}_s4Pti@SivGCc?>818aQ=j|{u8Rr*f%CrMI;V%ZT055fHTiN2C@)_+(v z@7u3|)De-1APh-*)2-fnHcGwTGwqqEpnV1fTVtYyxat6e4pN`JsON<6#BNwBXMOJV zu4hiu2raXf9~eyAhkBhq`{MA7QXd0 zRHC}?Jmc%VA(yTtY@CTSE%XTp)WY`Oqv~DP5VHquIm;5em9B=-e^z6l#)G3DZK#QY z+O+49DTB{8pQ}k+6o1Z=i)3cQM7q&n08nR?*M@!(q)^Q_; zM~=7q4Q&cu4A8A|43{p&kKf{qKU0R*PHRaz`w{mU;#dz}C3Ku?nOy9#R`f(p*jm{Z zPm_Mi6gjHv9;3XN-Y)ILwiV9m2h$t1w>QRt=BsLWDltpHCb9=)#0SrDlffneu@7+> zMz?Av%nqVFw}L;3Ml*J7MR^w}0*3%E%b>@?{FTSAw9bN(N2&VVkvr~`ZT%W_25bYp ze%_XRVv_E!zf;Aj<=Re26G#o-8K02f^Wif%;2o`XQuDyFKZBd2O4CN8=|r}br(GA~ zVxd#_Ch3##P++!4`1RAlR@kh!43^MhsPi@qm@Y$oAY$!T?Dv+~=t7>U6I!Zh4>TimuR9lrNwUm(5_+9pBJ%hLI#Jxr zT6AefL?`r?HjhD3sDx&ROrA&y>cu+(^`)mS8(NsesUV0;Cc@nKmL4qHF@N3eukl(M ze*0yPdpV}2hDT{D9o$EDIfp)%tTR6rrhnOURhcS@n@Xsd#^3dFldyzR3Y`X1#>{FT zwVZKYc~_)cu0l`UUHb%K#;^edXQ0ONwVTSP&c-;KRf%fFIOSF^ zsR*Qh_Dbvui(R0X1XpbFCZ>76HBowl^Il`fTK8HXz~pexv}J0R{g`li^=m=;u&q3e zZ0=}NrU+L*_g5n`xEl6(&vu6&xBSRp1um;M`;b86elcn!^S~AzcH6pcssGWP=K|=E zvi`-w&)8(VF064CyY|NV?|p9B<}j%#$9ZpNh%}W*vJ6r0h{&$mn_4_r`HI>8{yLQY zf?q-*nSFtD3a*U7({PKXy>`oay7bl~BV$>_`1GHQDzj!nE->2AVWuTH&X_@4`9!O5 z^E+brD3`XYb_VR#h6zcj+|l73wPBq9RW1s77YCiK1vWf(^*S>^jdE=YtiW{Xsx}GJ!k81eBhG1@Gux+=6X@l>}Yn7MfE)f8)*0*wOg0>dwk?etWt^i zMe=Glc6jrl97uT7o0^lXM%LSuc5&?aeNdHMY`27){u`z#x%vpnH*E{ajql|E1SV4~ zg5nd(sRNF?cJ*Hx;+gh;-f?`MBe442mK}pdINKaUP|whs8sWPjsq(t?>d|kT2G<|% z-h6BhgAAtY<6l0!!PFMKDi-fuKCJfC)9~#E)g|cuMj8pj{ykfw#`_hg>Bd<__Rq&91s^P!Gqkva?1LVM{f-|Vl0$f7yU{Xa0qEQbhdo&;a`Zdk+P}{n%p3GE3DbNG;$|AxB@5Sf2y!It~5EHGSKc4^Xk+^4xk=!oC+!#_RnMe_GhMhgiKF|fKZ9(zsufV-~0ar6Z{AN YyZY(r07?F{AoyF@UmpAwNC4pf06!=0O8@`> diff --git a/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.5-compact.zip deleted file mode 100644 index 3986c44643baa4d3d677eea980a926b502a74e17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3918 zcma*q=Q|sW0tN68TO(?f7`4Tw_Nv;WMr_)mD5Xa1O;e*v?LBJm6}!Zyc5GT&v8f%@ zu65t{e!tIi&-rjZoj>3Qdk(~t2jBw802i*VhWmBrl<8yufNTT+zykmP?7UoTJRRUJ zHdanf{6Yev0%8Ila3@P!Ust%hr=^v<6FgpRu3SlajH{kF&rtr-e|9d z-6rquL#Jv63D!%n(=z>8VuH#Dyo?=kiRV80h=QQ>NwV@f*hanFQD4 z6Jcw-h5~~FYvMhe03f^P@t9$vtj)s@;5m-4B}zuTAd2#`SJQmxkcFP0GLspzOm`Dc zwzL-BH>%m!v0=7}cDx>OVV}E-cS4Q_k7=Cm(Tr+(6JyNb@(Rt3KhsA<)+u^w40cF% zB`wj0=-op^mDZh#5ShLC3%*_o3bF-eM}lfQIA1T>V^J_sCcuYtChi%HUdmhM`dpK$ z3iD$p&D9>5S}m(oK`ZgG#<2dz$DCh8kOk!J(aX19hw7_d3~YYkP}J^-L>ipbPg2e0 z%yFf|YySSuE3fwPaK48(HN`Kp1g24l_tkU(uHsbHo0F{QxmXe~`zn1)^k1cJ&);Do z*T=X?qi*r*JlnF@3p2+Uq<;=gUdo-EfWFTBCTXE zu^KwCTgB4$7Xiu9zp_(}A9XRZdUY^ua2CFdcGeou%uKAX@M5#-T7v8hB-eI|?+eU7 z?SPL*t=d-xQW5d@Yk2jw?7w_FG&LW&&|8*zSSusK!e-;~a$;S9nx})!yLmRqohGin zkfwW-wT4<4btVfIPyfCK3@zZEaMuw$5>5t`gcX)_<1jd8sfiPa)GFt%P|v6JJ5*|` z$Dw^5mnx~J3EqbmM!tTuTzQcbDWXR;+Hqif4c?`Ij?4mgw7${U?+MZgPcwpF?jY0E zo#A%_!&|%sxy!JF_|pbFW8pvIg2alq3BAqEXpzJw&b>TMpP}Vk%;UP&6h!o{k{Def z{7v+=!}lHggK3o!!zE2GH?-xg1#ifgX1l;Q_r^i()7seet7L)d-I4lE6T~v>lmu;l z^BE`c4`X&O?O;?gC@^FeIXq3KbJEA;I?n!Xf9DBur6Tfa{O`|l5}&QsTWtmA?KMHM z3B)MaRgZ222Y@b6n{T421`#Z$4V~O^EpWh`A+hW_=ExnR;C;0LPsT->%my5X2EK56 z{tq__k~BwGQ}oGVxDI}TII=P$HO7ujVdCn}OTqPNZSW>ql z@d2LP_n=0ch7?hDA(N#mje#E9DjmGT?Kq>Guvq&mU!98yysFsj@e|jk`;??^M16^r zFNGR^N|=B@9i$AWr0 zMLnq|N!UMK7KdjQ*n61sPJT=t8-woblfvMt=i6 zHkb!JXJYlvgrkyHrJ2=1NU~kgP*Ubny-Au#yhQX7zVmsHyN^CEXzSZAuIr*l`pf3o zYJ2C>8TQMqL`s6KASqIvc8h9GinE*2L*;5$fyPOqM%}RL_Duw^Z?MUlCbZY+9lQ)P zB9g)TE*lh~$S;i5Kn5wAX^4tU=w0iuDEy6++)RpebHMkuNF+yb&#R6azZ6hCWA6|2 zS-7%3p54#dlI>TxgP+%(ey>ziqbM`#EUnl;JL0)_}$tf=1Jn}oG* z-`$Itt9Kz2jhLP6K^Ck1w9Q(SxBxt>%Y{*0vadgi!*I_vmatL!$;5QzJw$PaWpE-T z+7)W8I~YIXZ%_RxGyEtHKF13f9Ey7aWJeOf-mDT6e@cs=im{sOID2-QauC z6u1&Myz;9n#;zRCTCD>^%W&oyHvJfA^Lpn^YZr+MmK3d5pJp&?Kg=Vc+QQsZEZ8)) zy^R<(KMdJDj|KC&&M5nN;_|&|{0r+L{99o4_`BgqL(=2#9#@@B_pj|kUybQ2p(vMT3a8X)B->(Bfnw{{3T;`hrE-8+lHNRga~wNP8pe5UP_WRh@UHk6`YSUMH&#A z2biqu>*n}?OwR^+mLFZ1zqsvh{!=->;>lP3W1(+$!P4t4E|S75gL2t!`gb%)VeFuM zs3}IsuMD>Z<4)<+&YOYqTJNZT|RRNn3Mi(k|HNFZaca#wNcD^ zsnShJi(89_+QIqUz!M`lL(5D|JJ61T+^%PM99#!f<>)VZK7s%rUaiuTr!qt%+Hjb5 zukpThvlkx3FY%{tAH7CoMXXdfDh^^O3+cZs zN%4Cc)Zor>eKL)oG#X~)WV7$JxNo+B18KRPH^Xenen;z%5)^4^UPwY5AB?=9zfot& zIl8sz`veAi8ObGd81jZ4X^I-Ly@+zGFkB!Cd}B=?m>ep?Fea(Rc!v<%cL1kT$MTVK zq`hGIiK$^+iz`NP1@aFklQ%F8G7p64&Jli;6|N=s9X_r9>>MB&nx;}~>YIy*pgw3b zE6QX|jLsqE+l0=cFns1eIL4|1*)QIQuOgJkQ?yhgoON+uK<&8mAT^hM*jO%Iq6+s2 zte)6PX{Sk=Pa=NS@a;STYlkGDL0>Zv~j8{)FhNBwy&{ zA)z8oMQOer*Ip!(v@qS=udI}FaGR)xSjTj8$8p-GQCv|?0zW-+O$VM@yQ_#n)z)JL z-t~Hndx4cdLxSOVu1iT-vn{<9=egBB#aUux094@)Efu$*?xqf=ii@!4-R0Y(xOSdK ztRMl?>J5k%6#m17jijN#K#e|(+h!~BW|oE+y-i=^FcHfV*Tax!q6m_lc(Q>%a;KcI zb8BfTQ8Wn(8ds9AU77x7c9!=InDVqGK5C)>NL4ca^{CyS8jsmqnVmy0JbJb8L|LF; z(+=lB`mJ&g=i(8+T6cvv;X6ryMx5oikPgF#fJCY2x>iLiFX?*1#zm#3RFj`Ys*^of z>mZtP*#ZnoyK+%V`qltzFmO2SQOlwVy-rC}FX1{k%r#?%QH(G3F+(h4`>kO#ePsCu zc>}DZQb+D*MvC1N5_@n|$lLl6x7Szc_~1)`YGFdeki`dUU$lBB2TFgy+)GPvXswrj zwfsTRk7uy*ip8UmFBWGlDK9fAzpxnto=KU?hlw_l5zSoA#O03A!o^SFCt=3G@wPik z`EI=ZkSiC|>6I>)J+u75vZw@CGIwD)`m0Iu(?$Z)`3QA&T9A5n7U8B1#DH|DohSYR zW97HpFh9giIRX!`?vgt{+J{eTq|0wb@z`;1eyRg9s#PqU%1b$A;D+C-wUvE?eT8I{ z(n@CK59rK}@{kOZ->$X2g%Z0pYoI*wn_#cj4Ww~fs&;Kmriw%agb6}(4WsA^Eghvr zd4kos33SIOBVITs#PG=`2+2ii4~RFB366~0kZ}6BfBB`JcfJ4ML^$<2Vk9NFQ#wi# z+T*iT3Ht^aF3goOO={c8b^W`V9Z$R9dIFw~c6@=+B4Tfjgz2q9$ z1#1PpM^obVB@O%;1lluM7>gN7=qXmF@MmO9q*fxec_RDnDG7txJl&r~AZY`PvG!U1 z3gcGQvqn#`zzHRI(zjd3vvgOWN3zu9qi0sFv{;DOHo*reNAT93|1siyMZs91`8|9J zT%!XWx5u>^^%lhP-0$g@&J?a6>ars%ha5OTTK}pWOF-PCZe%PKPCG|G^O^$+cst z0lA-=bH$U>c!q3`s2+6RG5RpUp5x%k1OK;h|3U75gTVQB{(tYnp5qhz`@s39rvL29 JKWYX5{sROzdWQf2 diff --git a/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.6-compact.zip deleted file mode 100644 index bfb6506193d16c1d984c99dbcef5a0c02cf71582..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3914 zcma)mX0DvqK0N@7z0IngvPQf02 zzD^F_-VYuMi3>dv3i9)|a|!qN3kvDk$(_hj%n9-7{Q&r?{YOO;A7IQpPHJy7*;gd94l4xrH{h6fMAMV zXS9$+xj;j3{cDA=7HKGWPJ+w7^8Wh~pEZ68VzvQ!-qOgh-I1feNs^Fa`*iTF+29#+ z@`^%h4z|{n?Of(2QvC-=sXmD|!)UKz`wT@V9+&4Q5Mpdz$G3Cr!PoOf?sGO79|yYH zvz23^trL>*P_LXurX_aIc@~M!He3Z;Sy2+{e#HE7qAaxBQZw7wB95bdu>(H&&ELn$ zHVP>*#z9CosvV7CNCh5$p8xWDCxP(ldx+JgzogTegKL!4c%kjW)8bn+I0k zD{;1Mi*KbA(p8R)$w0+#U)h`G!3{ZJH%e|Xv0yKyiHIXV7=*Kz9?-WjIPm{yn$&#Kb%|*%n==!woVD6TFzDndcHi4xIMMZhpI4*=jy-RacEocdzUKa6c6L>Z}|sJ zq@sb}1g2MJ4ClNo-(y?ZmXz!tR#z-K;*FmtlOsP<5}62-Ke1l?pcOl^9n!C0H!?cWxi22Njkb3EITNY9OE>0Hs^yoH5qQ`z0FvQj8Juws*RP3< z9X_O(?H4G){ocv*r0M;eJ#d=_bwaG(+8fA2f=*a-VRQWsnq#9&SV$arfBMvLLO8y5 zMz2xGTUSk4w~a#D>E#ZIOf;kZ_O?t1ph2)A_VDzBn(t8N0dYzg!_( ziyjqx9tPY;Z+gCaRx$eYu)9yHpZTlqr|qx;MHLsnvNWXgHP0XGu`JZvA`2z#lHebn z8iNRv=zy0vT#rHT?Q~_8dHD1uq%gIe0mQkwv4Ne;=(DxHMv}xoIbk$ueg5&0yRbqT zK&K94TYdV1OQSAnCO)127+N%7B{_EJ@@k=*e4a(bH`Thvmf2jZtCP|a5-b7-8SL6bnD9tc8VN| z!147u>|;5aNaxBbSh3g_zrzFiFwV*DN;rAX7E_l6eYeKxEJjdp3HaFi2t~JxiGWH? z{7@L-F@5A!yC}HGMGuzALuLAkv@r)R8>1Ye>Of~xuB6Qmb727!cA@E9cV**Qm&mvB zwc2>&+}L1gS*H6jRw9%ine}Sd`qT?o*2@bE`!52ZN0(#Hh)kl!sgPZZ$P?)G(ud~* zNs~;oO#wW+;xHhKq^i9~{JSJRThHN&>UoCH#zKp2qx-HGn49~$SAz;)m`EI6QcKnV zKWB9GlpBpyP0~FIZ;ZzX}}oQ2jGC zMea-ps*GAcdPOzKGW(F;lv(CUgdK^uCWqnch#=f8oYWX_muXnxe7gg!<@|~K6+Ze5 z#oEhNV#&#!WcWJjd)w}hG~L8Z-uqkbr!s3E#xD6jaT>7`E|dHlv2w29dvsTld*>Bh z*@QUHx-7?-rO!`X>ds@kkHA3b#d1^}GQwzTLM)m!0)VZD<(bC|Nwip&8C9v$xTDFv zDc(z{vCmidA(^C&x7mzD@!hxA6K7snQUzArW5itf#pZc}OKpa_+?St7}d z6)#71p!>gX8+?)*PX=tjY3v9#YINV(@hoL{tR92-6*Wzxo-5CuF)zLA_T8;q%xRD;vf0sd8IuOm*G8WDbuVV&{j$|>JWD6%zkNxAJvS_a8)7T-epl7=G6nMTa zvX_;Wkipa(-?20Bvvjv~W~7l_b_=h@R3^q74SQm`i>99%Z#qf!LT8>U;WbU*W#mY4W}L!%YZ1>Vkq$RaXKk@__C%C=5~){< zQ3%@G4g&@%>*w-6;mJSg2)~pLC^}YUuU+|mYig_sd#?jIF(zNgJnpVijgOJ5Fggx` z3d)jH(O+f*OOEoq3#gQy15C%Fb~^-?Mzi#tNNmafY-W@R%CSVJk=>1t8QEw#s>L=Z zPrbd3sqMGXX%$W%V;ghF5iORC)Y<)jH1AdkNo(g|%10-or+d%eQCnFRhh6J5?ZREl z?y&Vd#ic3y=zh$%s~7W%Hq!a(aGZ1Sg3mifbQ)h)=DGVfuq29bo&r5Pk`DM5?^a0N zGzW{NTQ{S!Zs~NzD{@A*e{z>n&=D|{S)zqt^q^l0wKBNS;Ac3i9Uzv7%hu1z!k;mQO z$_bY%ZOtr(G+SwK^=Y=dH8GEhh4lxVR87{L1?Yl*o|q5Ww)cnE|4l^b9VNYCDm8#R zrQD7k@qo=$T(VO)MS3}RH6Cwv^X~$`AdYi zy((~)H^D2J-##B|>aF8PF3%bnJMd8a9Tn$P#kaBLdqTd~7`Q~p1 ztiTQa`ibsnLjURDd=Y~o0`S**yUqNH)fk%;3~+f$GKJ_ZsOY!W*RT`=U6(}UAtS_Q z4)M$yd(cw1YN-&XHsfI!{+OInuL?e@A-6g3$X}vD5?^okq&iV+vpz@zf|jROnnOBe zG0BQspHPDz%>D?EN9X)?ecg!LDgS(h-kB+-*n4##;3GEWFClS-b+BGC2Q+lzh;`G8 zDB$nFEdJq{SWQxJM&^RFq4B4*e(_H!%3Q{MjEnMkh3aR=Ts5A*cQi#34lD6}C>H|U zZOYNT*HLKyqUP4(51U%wP8xM9<@aTbambfEVe_$;P)X3r|vmp9c%YR(>XUqV= F{{f*LT0Q^( diff --git a/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.7-compact.zip deleted file mode 100644 index 0048d18f2ff817ddc4d2fb84e499b4e3d63443a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4045 zcma*qA#ouIA$PPB(#9KucJn}5x}oeH-q;Aec1OE_2#Ek@06-7`AQu^F2fcy1 z=1h+_%1~tVyEt%mLc(Hn7@u-ik+n+H?DoDbXfh&LIi&~<8tv5Qa@;iEi5zRl);hS< zOtC8_)w^4G_RvSs!~I#rBIm`KE128dkm6uAljdtgxa6ZU+#MJ(t8FzyEj!Jl*7aq< z^Hep|nVpvr6z>BJOgjoG%{v!vnLir=v0=B-r(%1qx3Y-ya% zHG5R3a#14tw5k(DD3vR}zH)k47RJw4fQrK#o{mX3lT~OJXMkw~C)}qF?Z;rc=)7gy z%-oD2H+tTLLW!rLJ(~Qc5mevB_5sgFdt1vhF4S9!L5X8~KCGY>m6ju7z2F}5V-kGa zkY=J-{oBX7<5hR_l7B0%hn8-u3)_QKVkp;Qp;9BMwqNB&HSveNqML<%KgQK4+knF_ zyhF$i3a2@)4?g|aDJA)<6Te5V0jD*Y;!of4E6HpDHh<@?!H{z~*Bc-wa4cVS(Sk=(nT_}zT&S7Byh=T!hJVv zIR28Vfhsw_?5Yzr)VyTp?Z8NH#QQ(2YYG3*PZ{6-0%p3sKnenAoh|D#bbG@-i>?es zqI3*dY-N@(Uds7m{KAt-O=5273Q+{cv6TLN^1X3w+>_rzxVJ?K0wV_p6%)-d-lR+> zWY}bX-#_^>Q$)V^?ziu7BAlU664llB+@Gd~iSy8QP zldqIxAl9PhQ*@sIcUx=v2w|Ox?__V%bEXp@W>B$J0+wyp*$LsHdI_mA!NvM9BZ9aE zEeRwacYAuuz0}Kr52vXqJN1obknI~ZyoacFWDhOetm0c;_~59h^$aNiPuI-o*?QHh zma+~)L&t!#QHCxPJlAFl;sJ)@2@(mqn9exwWu^Bgz-cms|Oa*Bs7%hxXTHgWDPy3&`;8NvIj}BPd#EjQ3AT#49#`Jii21i14cz z%%^Z899xlx1L8suwerA?ZFY;pWIbR^!DDxC3+MeGpI4CffZUR#(jh6t`thUr41;p6 z(k%TSe1x4LJTz19m>dV1-v~{5yF13Mv2=rc)FMWVkJc?ywlEO65<82c*e^KuzarSJ zAn6oo^M!0zme_R<#!7Gq3;M!LLvBHVn7PzMwq6gi6o@n!FT|X!p-u=~H z522Yk;yd_j#)wc_P`R;=vy}i2n-=eW87wK?2rG4$*K=!Q{2x zwksc{Y2_#7UpQ;iSNR#FVp>;!aUmSvF%b82-@EVPq0KLPi8aK%i8VII80H>Bav#1v zACxyt$lW#RoM2E=4mWuOD}a*ufgm#ApXsYPt$L~VJ+_O#NYKcft8b#xus!ReR=={n zweUXE%9sxcnjuuX7Ij24`j)#FmwFF)i9*F<7CNh66(br$-_eGjQx?&^2$A9Gyo91K z`rHytSD8^+mgJ4bLIYUOtYo89=IaoF7Y#f0yCD_B6sLtZ3w=2mv@bt=3*b~-%f(t5 zFLs+50QNPOWo zy*Lwz$==82d6zF_>p$ra3_lgFF-Bhs`$XUR)a=FjldU&zHQf{T~Lmj_|c|6>59)^1F2{R za`L!uGjBUeP|i`q20~8Si?3VK_an*&g-^rDTC>WzCo1l#;^de{cT4h*e10l_;Ea@Z zh(*{|PWK_l==g%Kg}hc=7{Q8>(Uw{rWFjtbKxr(7@)fO5v-kej_B(8fPx3$Ug8VAF(+vG=3R2M6bHZKq z<*O1cB5(hsS-y;bH48(x{FqO)-KR0Qf^nI%-MgTsGv~^~(+h3J3=_cfsRL)*jIIO^ zXtsBoBcd#Y*Xx%|e5N8yAAuKi9;*ZWTU`duARr~!83_%g`wovuYiI;w5e-3)2Bz{< z&OJ3hl`GB-UK2EZ@$-mjm|!Ia32vf50*wdO+vtr#I~>_@`O^I*+okE|*P_uGE`h97 z&BwC=&2??(%8R~I9#m~kKCsMNU&*GaX!Hd^Dr+SXdzyd>cgwv~IOhhRbz=Zw(tsk$ zVuoJh^{7C?OjA*;pn+^Z4jgl0LF>QC)vaFD9GaN0abZ%|&^_{;nNJ-X$|qX;p_aa` zZr!cg#jRebk2n_t2bIW8Z5;qX%Rhd@$ZQ_&lSPYHN%xb3?PTzX6Z?@@PKs0=)yLFn zF8yyruksAT*euGteOF@a`e-b){6B{deCjF-&WzPywL4i6+9#=ahmn0ds=dKkbN~abU9FM4#Y1wzv|&t&f?LJULGb2s zu#4Hu*;?h~bdxQy%F>Li(ojG%d=?A_*UEAi)EU;=p4z<()sjpGeMHarJXpV3 zJ_2L=E&Q}JNdhZ{`KhZDRS4-q(8PM}c{a~Xe(IYbkCN5LYs{x+1N}nX)9slm=jYK< zM75y#YfnXntJEs{CY_DTU14Ug$w0LRk0w^CoJDs{Y98Ci4Z^o`6dWI|I*z{-f`lfW zS!;9bD_?DZ&EF}7MzbM?Jen(r^3j<{Rr*FW-}xI9)HHS>Wyp!zKC()`)lOc(edJK% z{kc=iyVz`7Mqw3rW2CeS33&`1svEjGmSxU+h6a(xrQ61v4DX55iRe25rWY|BGy8O1 z8peXxPDN-WA~r(NwlVb)FjKfsd64JQ|BGTBgby{B#GF_|19MckqeYzD4^{~wehS$v z9^0s75wB2hklH7`5vEzmx)aX-{HwL%vvuyb)c(5t$yz1(-pP53xUdexV==4Er86Qv zQGTlgucJRkk8+M^^2&mEDrc%Nr34cXi2N!Oz&xr%nGRVlce?N;eH`be5ZNo1cCQ!e zVOrUYyf)cm@P=+FEfR7f9cnN- zH2lGl|4Wz1lk{?A43rt{d%HEvw6eu|GnM|f25Sckl$-FV?EKgSwol1pwN4w-NnL}c zK;l;6B{7KsW#(>FE&Us(;F~|y?1O6TOg+h(Z_!XYWCtTJFA_G_w9E2PtJrbNwW*|_ zDl(6+gj4d_N*nF|MceJ=>)#MYl^3Nf9iyynYH_cYJ0B|caL2oSmc!m*j{C>_IS6jYb@$ElT@DT+69oYXG f`~MS!_n-OSxvi~91pLnf@825zyU2gh4gmZgk;kfd diff --git a/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.8-compact.zip deleted file mode 100644 index e92a4113f308ec53871da7af4dee716455a7ebee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4026 zcma)i7Ha zzvubRxp=S6bFSYP+E~~M089W0;L63t@Z+_mEcO!sz$6X;-~|8xaL@NP9`?@fZLFM} z1cU{j3W^K5J3GN_Ke{-(dBCjPY~I>`uoZN0cYcqL4Fo^|fFJ-sE-K1S>`u%zZ)&_j zmN={Ly*+0KQ+T`qojkabutmIjug5q4hbh+jDRF4fXonG(Bg%3&YOFq2@9wDD7& zjh|WYC;?wJ+BxP;^Wx^Y1Hv^|ZxD!x6Eg;57pFl~aOS@cj$ZR^neso}CbBAn6-)S% ztVng>He>*^TJo&jD2QgwKeV>$e#5X~>}|mF37P~{L?n`9A(>{=)mchpH!X8f>Ck=e z_7)n*PhIzmhJ_SnfaG_h;3)nJl#`nf&)%U6ptHiBGHbsx-=^JIylv50EhEV`HG&Q4 zLNWYB8~?0taeQ40sd?|szH9XM^C1qxB5Zu_i;0hBVR$noB}~52v_eAuDaVZ*-w5Lw z^79zA(?02PePIO;A&g;<9f{9T5YcJAzLyz->^L*J^Ipr+I`KG{X#vpY!H-c`HcL`3 z@p!WPuj^F4SWEkq7tIhR)M5H`R3D=>1FI1B<^C;u@Lo%wR&*}&4s>zs1GnYNw6{Sz|)+s!PqroZrj-Dkn$d!_lqG3iDTFbQvXRWCm_32w<>ONRLbahc=LJcUI>i_9N zXD~N8+D@r-u}TI``A@fXdGYEEP?&o{wF+$W)vfYV#V1%{K8hXeBqOm1lApi5PX?0F z6$ZCE@{7b3|6U$Dillw2Cj-8OS3x$Fw2MJSvf-!~cE}8FFWt-UCJWIfl6Ap>=FQm; zl5l->y4KOEz5wm)=7`$8ar{RXiInK>0=G)IJee-miRIuO=8-8SX{EYdT41SM+O0gW ze!c=f1vBQ$wh1-H|K*mH0>_qd3KX&~5xq%ftr0;h{lSiq5}@(X8{bLzAZ zf_8IE-2kEVUB*~@vCiDq9NHCW0ky%|ZnPqB~(bZAjjS#!gJU9FFi0BT0vV zp}ZM#efl-%_J$*YRKGco_y7|oPRXFdh!B41^OUb1`bNb`7m*~`^)iwnFXP`QC<(}G zzdmKheizkA#tu0ZdYo-`P_c>o`(ao5PD-a(I&=!)@RWZp#Z2(3wRtrtC2;hUEEb)A z<4ybc;Fk9Yrh}gN9bYc?5aRic?#5T@xX<%LJOYHYG1%Rgop_1>2(XY!+-(ECi)F#f z;P2IOReXXDN5LldqgOZ!E8KrPfJN2>bvQlMH{?#8c|OnQsm$vnEG0X* z%VjXtPw#X2a@h}4S9aQ6_L=8>h;RD15;Jg5WxwFoJ>fXu(t}~0>qm>{W!);?r0>MU zr~Weh;*GF242=0Ti#Pjj9qA`&_0=;TIni#&oQI1W9NYl0Bjh-#0RNC1P^~Hb29Ga0 z#4nL{Ooh%xnPk?-QH;U`VHwj_I--Lf@8Idq+>|#8G_z2-j^r2>o*xW;;Lh}yRk?ON zK$GCSp>97mds_?A7SE^w-D(NarF4I`0Y}0@3>FRe2C2;+Xq{H_rtb-4@<}4mYqJT) z?zTjARU#69^p&EGO7dxmEJ=zNPWQN!1My&rkWK4V;n;#RryRbO-^~b|$~!y5l;A#N zL}-5~@kD1ry3jWzg4SY-;-z`|>*WT;BQ#1G!Wc9#_ z`Q+_VZ^x8l{W^osI7qPcX3I$R4lM=!YjxALOpm?vu0qk$I zwQKL(R`b}Oxn|Pz%G=(Z3d2V<%IX@494i6{82~w3#7;5mIAaiXrR(h3D!wCWM5WS3 zh)S*Pi%z`oZDWkPBxz7$v7W?^{z+v#g{-jw`6n*(qYeiApw3I9-oBy-9OthhDK0(K zG@-5A=Wo}g&2qB@z!{%~sVyNej&_cn)KKjcJY1phh*y^a3{BiJsAeL+SEHSEINU&$ z-?7Zu7OJe{t!Ng_ywuRc$917LH7r=Oh@!m_O=PLJV;?In+N7q8*N}_~f$p0+@~YYl z)Sq@oXyi4R+qj{HzDAB2#Xq~pg%h^tfF`VK{lwD`7GkydNq+fSDe_@fXc7HAjak?L z*l)+-M|v+yFkP1U3iN)u=k$Ko;F}2FmcE+L3_OC5YF&^TWT385W^;_=mFCn)&coUH zrf%f3>1{m!pCANUUx8Kc)~n ziUltBTY(JPxj&TFyd&xLtdx$BsfNI6Px`oFcu0JUJLKzK2*@b!O$t|q>}wO`p7j3D z4oC|rRQhP>72PCAYrf53#+DmfFn=ZGOWe(>1T~gkIJ^ zVTR~T`GRecBuH&q7tg`S_eI}qhi%NNn3sw*JX-jH2lrcX)~RJF02t^@dCby18`|m! z*yE&Acn|ur8vSyrTJ``=lNh>Yqacz=?TLf8)!5N&K3KKdwY9WqV^-- z++vS@Z{kdK4;S;d6=a?N32f|V+@4wem`1E|+%nV5j1FJHyr0`G>1#$U;j&&lkdZ9YRxWCjd*?4?4w-!uB^s5zLKM@~ z+b1 z8e?=EEB}L-V`)NwJtGRluI*E{lE1C({w#svwi&xlf~3EUJasL!!0w8orwF8wHEW0C zWt^`+{rR=3a(paj{n@cOfyh=$}tPJ+?{y#qd+uvUkvJ- zx?2&FE*>-6+j`g|_Zz!SfTnK%iuQv(vJE$i0gy|$NNh4?c38Dc(R@3QQ_XRE#m)ZWV-yjmH z%Ber0HT_9JqN=#S5W+kEnTD%ey@T+JY|A!OK7FRvGX3A3?ctu241bUCp~T3uWG|BX z&Ec}%XsTjWAX0euH}ll@m{kcp)j?ycss0#HhVq!=in1*@u=PL_BAI%d-YTXtj<=*P zP=i%_j{u>yTZX06vK@|Gr|EU$hlWFOX<3Nx>Jp|L2Mw3+mE~h&woxRNCJjrCGq23p zOcB4hAd{88-aZuQtAf2S@#MXt6kml)z_kSJqG0Gt#icm(jB;9Yq~i~fhm+8+O_LGo ztXv-h_{&}lqfA?u4=K^QQhK%!!a}s_a}~@t#Fp-n>KpGG&`Vg!dZUo=Sz;fNB*_`M z(Y)`ts&w=RX5&n0lM5S(BwOnGXX>(%FnWaJ1U8O}Gqj7~r?sCL0H(k4kn?8x-2UA} z>6v&F3CZ#Yg@^?wn=yIJu$RAFf)gwYf>vxDD|sl?#x7zjx1zudB?1;W$}KfF_A_=UwaRrJj*xWtEpZj=|iCtL1aC0pM3x#BFTsyxEJR7Z}|+4V50jrGou z@hK!cxRkPG$1$MMzt3>N`kX03Z@i5Ol!~%mKMF#!Eq|Zfe@@QsL_x_BJUGnj`?mjE z_Nlr`fb*jKRAnDWQ}FEL2_o6{g*FDJ0@i=G>3>4~{|UnQ5B_(zexVJ-`OgC5Urql} K=bxbi0RIQOPpR_& diff --git a/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.9-compact.zip deleted file mode 100644 index 0e318afef2453a1b4298ae33990517297e409d17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3906 zcma*q=Q|q=!v*lztAcXdtArS#W{p}c605crHEPeALF^EFQ+tn8Y^sPBrEO{jwMwh@ zsL@!Z_IU5-{r+6nbIynJ>HGmdLtPS5RRA#n2srieF@2&x;FAIb0HWdm01*HH;2hxP z0C)5Da>01^ODPDpT( zzLNH>m>lbPNL&2H%T1t{J2usrT?O1s(qNpW<*Bxb z^t<5r_6)o}qRK`sj|e5?$VF*D?lT-fx?JoFmx>o3^6}dK?!Y>E*eCEk98+&bzLMx` zcQ=%(1hu}%K|6lvy*EGe59BZ3GlG3ql4WaNJ7=;Qd^^D0jVGoMq$VRBddSoLZXEqn z?6nsdvg?D^;gikE4@TXv@YpSAc*AtFSB<1VLhQ`!D*nb?1FXz^^LJH9Rt5H$-M~4* zunV{Sfux9}{;I%IT3NH?O2vx@&3_Uopg#&C>WicO-#xf5BRKV_)IFz4NZX#YlPlXe z`cDmaLPRo=X-R`)v#-&aH2&9`YK~KcptaPjLYit|-NR7?@v_;|=w(Y@MiT3?HLsE9 z)8lNBO!8CZ-QX{tiZ$JlLr+zN*i&?sPbc$Yz~R3h+wcoyKN#D0$x_3t5+iYfM#pvt z)*_{6PBpvac~5)Tm+xub9`7A17M9qgjGy;}iDGF46ghA=YG#Pzw=IdnP0A<(W@xfy z@cM!q8NpnIOP@n^_3-%nl7@WEkXd#_cfJDTt4-I#Ip(P5+N|XU@@yWd3(LRyy_tB^ zM!hG^!(B(a5a4|#D)AKM%gS^}ieO5sI^~GJ%LZxqPqUfA%iGEluokW(OrH*IO>8FMGLHI4loAX`MY8VA!pU*rV{hFOSCX#?udGmUkVl?)TxfYm&FZ4Au$nN4C&eVnM zradghnc1cpo38|LSHi|Fr27JhyyFYJ`)eZ2~jSDa-H!3%DM(K`NV?MEq*04?<-=gBeImDfI-Z@ zrd}_AoIiN*pXCsF52MD_CZ)Q_Lni}kf%ZS5vfbWJVbkUL*_u8<*JkEPaeZNJa(-{( zrSmfn?$u}xYZm^+yp@|`Ni+I<2(<|@*>+q`t4cI&T$xcYcGdoDdY@s2m**VHZIoD| zlU@`On~=L*Y3v&9Pp0h;suhk8vkn3HUu6`lV7EcZ39IvqI8;_8b`h1L$cIBNW=772 zUthm!Yjv0%(GGl;sJ%3%7C(~9y9L`8bomsMe}MyK+@Y22N*Jy0w`A&nqN;Nab@e+l z@Ez(MAnZ`*>DB3U6|fm|T6(jk?$j*BEX9&lyKIoJZw(X2*FN5-G`n98`Wh?u<2H2+ z?~an1D{LLIx+!5HAgYu;}DW_pr<7Cw>81q4S_O6POug!ov^_sr^2 z(MTh`vc;yi4qWJ?{@aeaMqcpv?n_jS?(ywuD@|X;?Et6|#Ec;i{hoC`1sWKPl4UH&`+;drlct*5J#$HrNCsxtb~1;*?LZO?QDZBB22N(!`D* zpP+0(?NFbRu8rgf=D2j-%Mmy%;ym7d%WRP7hEaG{lAypBHgN>klr>N^T@vo~@Jo6j zSzGxDoBRYy()O7C>34k5)TKk{uGVA+yH*=>v?A(j zc32l(p@zEA1sxh~$3P8$++=4$*Cv@jn!AU8b+Q`rKo7r`ux;;UrLr&8pFoH|=va;m z-pXHbI2uE)Ro#`>BQJG_-#Z(mYdhOT1-xK`vsO>vfqy}N{g}3~!g}?V%A;R4f2mNV zkj;w&dGA43Rjp|!opK&&4$%DeeZ~c?necwsTdwv}lXOs& zf6jh{DdRE=LZRZvi4CGGjPLj>I@`0%>J#iwTF#oLhkRyhXXwzQk*XHF&B(c(bY%ty z8M$fn$LS^uZ;Q!ZGk=VVYe4Fn*|BG*h#2lZM)=6 z_hk_lx*MfaI9+xf)f2Vm@ilfOs$cvCLq+wR{; z^0VN(sEoU->=v){IIU#`slt-38bEnUv6M%U6`=micJz>hYww?Dh(d=K+_Ghot;rT4 z$Rvaq_vc`q0*lN{_m5{XNRBr^laJ#iorrf@i(tl97Q#5j`~|yOMUiA<5reGOvQNu^ zM(FkE{!Bsi_AI39oe%uL!5)bW3Yk*oF2YeaHFdm1?|rAW`p8-7?z33<{YsM}of zc-}nD++KADGY!*N&%AqbsMmx6SuEJH@#yuImt%KtQa95fjj&0MQ{vMHb(PJ2--~W0 zbk2*3RiX2``-wP3-*q$ibq+&?Y=k?^)ljet4B``YHOZr0c3%57#5`{mq`_uwnda(n zQ;o;xwK|>urA*U{&`$k^Q7KvxfEd#Sc5gHvbK;X>oJ=g6slc7>C$ebDcpkijb$ENV zi^7_tzy5kvner9n@FPl%lUmh9Lw9L|_fGC3n}b+~cdtW7;o6$;qCe=lKClo2M{=f^ zYc_*t$D2-G2fJCo)*5wuob7M=i=Vg4LX8*Ihb=?c?*j>{i4;%nA2_d z@=j?zNT6Y^iMFY|JIE&zP1JS!k2KMy=9*XHgbLXedx1>af#y1@1!HdWm#@7y`7moh zN(M>zQ0Gtv97&%c<#cGwBvR-4ZCoeLk}Uwaif~0c1C2m7_ymrmuz7(Z)%UKvEZpNd zbLcZvg_VDQbhgr20$AV&-z^OqL4PM>ZTR?g;rQ@^0YSu zM>=Q4rE96o=tt-4=G)EsHCPw4K_V~&-u43bY}lk{vQ%SftG{+&1bCm7-Lwid&!QsVh&Sm*Q%|j1rfOsj1Y!oJJomT97le z2jMUKsf41340hBz4)1;Ubt%Xg9y=je4lmeu+i4!dKEItgJG8FMB4hf@qny-r0M~s1HjWl6*7+ zN8jhKGNiLhg@N5c(pu=MAdl1#Tw<;>luB(1JII57Kev*^rhKpG1*dHE>_T%5S9Z zp=3M3=+(ptBwBwKD|vn-iW@Nbg(;u1f8@`WKtY$v&Z*a_NVqA00}=*2>255>h5>7R zH}TK4KL*BmWjacl>vnrPShOSh#qs!A@>e{YRP*WYtgjX>0<2Ertx?eglc|JXlA5vO zBJSOQxWJcc&DB7YYMzdTP9)-U?L48gg@zf;<=UFl8W3;mIYvQEe)2Q?vHF`kme^1| zUIXXroLbsc?tSP^DfYDEOn@8nC+E#obS5P;&GehXZ;?`GD?MgPf}&)M{i4<4Li+6M zeR=50`vq8yMWzw+tON{u~~meiG^Als%UyC6$e1evQ(F^0OVTSE7(0CF3J7 zI~-kNKoMwV$)E`<4zbXgtcdHKlE~TN&t@Eq(JCpW4mCC$DcFiXVNPZQ2TCvVGWFA> zS#aJ{4SK;Tw9RHN_kd5P=kk(cGq~jdZ}(MQwHdZ9x)D$Br<-}ZxbK}Ql=S=KibCDo zOEAyu;EL@;8lvcmh3*v!>KZ(g`+J~unPrr6@0K6&E=<1smtl#BY3!EU&}J@*Q}8-L zX6yO;cGpo&i>B?#8(L|xpM+-SR4#tA%sq)?b8KE1S>LF$Z$;3?$2yfGjrP+i1U`K> z(Jrg!FH|J|@}77E&z@#RYm}I_;{JXH82iG0)n}giTKQmnwwomgMX!;k7f90(0^1zJ z89flf+AwsOA=*$iO{gVo1j-LIBaq?zz zQvci3%9wLaOr&Y3OGKpe- za(py|@KKXnWX|uW@9*F5^SoZq^ZfAq0dFTLCzmOJ18@wW7=nT26z_vNc>w^tDF7f3 z00090&-erdfkV(iUWf<`8XM~6gY`oOh9khJ5cEAhE^fe00DuSpK*;0({eAu5lA(_c z#zK#~?ggr~$UjWEE^TtEM&PYMEvqB4yb;bhy)G0>9B6S-zcYX92bob{e06CDniKGh zA9l#Jvyd>KCYjq>6-ZxxYOu!Y0_{g6vkmvIL5NdjrQV^>jsZk?8i!-_6?8i6-yc3m z_kRsC>`wqkPD0Ou3@Kixl!o^C#m3m(!=vF803Hw|AJ)4NbHszMmBTf|;C(c(2OR*L* zJj4dZ-d6=0k;V-kl78#VKesiD%l0~eHTS*&hUa!pFB$Vy^+L42d~o|Iiyq3=20V&i3U!ad2tD3h7bhY(ZC0;_o8#-v;L0X_Kj$-maXPEwt8x+w>TGbckow z1obGbg7&EcFPDG~e?7Qj3l-~&y&5^-5zMxTZWm7U-;u3$3oHur zqq{;fei=QO==#|}^Zcfy;K?USGF{Z!pu}e7;+84ftM2kctq$IWlYx+#g}mif3$Em4 zx3kGkMC@{3;*FwQcA<$-2q6s`i6bxG2z$*VAG_s6@UlK`H6iSmpEjFV11+<8!z+l> z$o4twf9ezI_B!R(-;ax2tc-HB&q5969xVpIFmF3AA%35F_clUDM3QdHFuKjy-qNnM z_6=*0YQ4&uK-R(cei7C7m`+K4H5{-W@IN8Qw==7d7=UW1N~Aj44&Acumt(6XmbD`w zOtWgeIt65FG-~hW${V(B48%tPvJSu3xHsP}ceWX5Z8Dd4qTHw9wzbBLllY?-nN;H1D zjEY*Y2A<1(Ui(s}GVX$65->I3vXaAxC6r=0a^WlNox1dqsHX)6kWez`r0>wZ*?_AE zj%+%uwX|-iqdC!Z-Bj<d!I_u)N3f=GwuN2JkelzDS;kf-J+P% z=0h?hm+_o7>b#c2u&K5R?;xug*?Alv*jd&*ee z4kX-`3l?Qetv&ggB1<0U5=?U-iO0wFZ;7w9F^3AjzWBoY3zQfw=zy)4f@h5~L3TVW zdGjJy97|;u1mECSs_vuUbkCI9C_Af|S&hlY)^?rE(B@eY@x+#%EWWu)?WWDo_CJ>i zh=%Jv)u`c)n*6aZ`-*4ON&;3qm<{p4){l;U3mE}{I(pIBv6~FT6Lt+ zH<#cZAZ27pRhsbj~wb^@sY!WCvlst#PiC))&%UZ&r5~|mv?=9L3(JqpdKByw_>tX8JLWc5b?fyIIJlT zf~HDg+BC*HB$Kkh)vX|7OM-8f2ruH+AP2oUfJRAD_c1mR$>f{6BMA+l3hUy=LN&F1 z9H=?KR$4`~Q#>fHoiI{yS5DD)U=M>j_^sc>Z#;VwEMGe00@14|fBK%ejg>amX%UU8 zf1^x6>eMZ+UtBm0rlynFQ*EEfL3{I#`r9#DJuf6_IA<&CS68=%?Gk)U=6BSW44*t9+mRY^u)W2AVTu!V(7 zYI}It+eYLNCq zRZ8SBGk1Ot2U;CLgw?;KMt5L+$tzc5^VWzc&A8T$$YShz4Q*1*3{b24h*i1q!}*g7 zmvR*MrmbW>Ia|;Tk+@WAfsh~#EG@-)w<{zp!oB4LW7f@ib#MJHEW=paKg9zRo^`ys zie^K;-wwyR$4jawHwneS8J`!8RnuAH&;p4o3bV8$54VGo4W+qr1x=1464C9cBO@`H zcIJ++rl8O8GbpRs{3H0XVBkw)^ap0&5@GvGg(B5&dJ2X-aA@c*Dxuo$NYG|Z3fA=U zeL*V2@G_OYlxXW1)^$Yk>7tq-8JvBgOtW}QZ+!Y3IT$qwnv%|(%9d$-ZRMsHo`ZUl zxVO^F-(V#iv5*Vn_y&Ef(%Xx{dygWd5vYEN@QdZ0&T0vEoA0|SeO2$&@!?hTy#&_< zUAC&0I79e(FqFVFy;K;1oSTi{Z~ZbpZfnihmEdT%| z000mipzVjp!y^cIEG{OD5PlQu7w#Vv9EF32L=ZxS1q1j}S(!Bdu3-_y?NKyxm)B1#gf=-wtj)N`@q4}e4%~^&^jBa#*wyTw9 ztM62b-61c>k{TFuvWO%v<9U@V)+`(glbzPd6pvyIRNyXv^f(r7gF&y@3Z4^HVbsIa zAAlJjXp{cge*a6^SUa~RZDr4vX5HRgwW6Uvl1^Lq!55r_gggMVGncs)Mn-i8TOTz-+6(M!n1;JTe$&2?T1=A%PWj@)4h#88_bF`){j}(y;T1? zn8w~)<@hV}+}%!{^QREr>w9l^Slj9Z&Ig8l!*?;MTur=jh0uwKOE=DjeRJXoi9Bzw z5x#~nY1unRUQur)(pfGb@MmY|!~G(@DHbLn_#nV_l!(|_Al1Pt-j6cOK(l} zRa|#zu`^aEBGgZ>re*;bD|WEmmPgzd~$E-`#nv;_4eOVY4Y@K+)(igh=)!=%EQou*>%?7 z@a}mcAp7{sS}5|i>b%#Dt54QxAiU;ggk0|uZ(F6Ab!T*}BnY|+V9+SRRXWfj!t0;z z+He9Do*=s`)8ZqeJ##%JUkF3QMk!Kn-&;jed*E)_??jj0PKrM{bt#MJY*h}HMePZi ziRGHXJKffn)Vnw6Ug|@)?Z!2cQcUk8wuD^fGCTMy(p(<-jS~HQAn~Z_843BmWV=uAvrI~2JeFjldd~a%WQ63tPDdXq-Qn1?!;c^d zHm&bi(^aZ*<pO&)p#aDfJ`&))hu(vvSfV>r$*)K zOUQ;cqS3HCvyy9mNH%kZxPR2lAJJ`+ZOt87)&xjeU0~@#L+dx~&~+MG(E~YGn;uk8 z>K0Vui%~$2_Myn9f6W;xJ3TulTfOz_l_Ot#za6iv6XO)i?pey8k>g-y=e4m#t9Un`? zL8cun$Mu-4=egy2kRenp3cc|imEAD-BLiccUg)dVCmvq;^oT}Auo;fsi~PmFpS?l_ z67P-M7&(J84JX^x)-5(Q(H|%y{oZj_Eo2WYvO_Uf2wS$aF%mDX%fOIj5eZIgwCAX z4IePCdAi7q0sSepxfFtsKdCg#xl)jZy^tp#-a?Fa%pQnakiUU2+r*Bb^np_v@87Aw z(%c_4mgL-BCTb3pUw{5_q^-xf!}Vp8^<;$VhUtEbH@_h)w8!z|)^WT=mNDCS5t_Dn zzjLv!zhM1iUT!62YH@uZ`SS)NGS=8ozzrp`^MdFSagU%vf7ZFpby(Dw7B%V7_9)aB zYkW2+G4QPqZHeilSp!mA3ocUKXVNcc-sUa*LeQp0z7`ea zqEb^b$*~?e2^v)=nU0*^6)_Bzw{lrXZ#wIXwg#Hj06SCtH$aLeN!H zKwfn6NX)_T2Ra^u<^x*r|8MgAR?mNv%=hp7e*j_7f`|Tn@%`@k-@EmjP5{6^$X;#$ diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/if-all.sol-0.4.10-compact.zip deleted file mode 100644 index e420651d76684b230b96117e2a61ec2d4aed0b92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2349 zcmaLZ`6JVf0|)SrZLXNCdKN;;o%<~3nxkUn$gy%PrpY}sJl4cmo*d;7a&1U%qIyE^ zn_P`hEa$#*t|AmO9#7Br_wV=p{^9-0`ww{8p}-IX00KmSGsIv=g%MTNKLr4w$OHhS z0RZszR`U!9P$%L8Zs8(=@gbqNJVU&Ee8X|-enfnbAcPli2LK8Hn8e55(b?A_6pS+J zjG*+MAYb`5>9|MNB}^4x2sP=wTJ0hizqtXP`wpd2hT5DI{6Aw>;@{Oiwf(Y-%DPi_ z#PM(D6*D+;E*5#&B3HtyRBvOohi^Y3iF2N7Z$gt8Q*KYtmb6K-HW1_z^G=r8JUitC=r>lCmE3=97dwTc#MB z$Q@Nq_~vgN+s!w;JSD$~w|*Gi+#TtdR+c&Ja7<5i(#BO~H%ON&n(!_;RL&W@3uJ~; z{6TLT9>Iqi85 zGp%67zl(^{-t!N_<|wqKucthp;rU(r2ai81c%86+&{tz8ozbHhoNDLsHfPG4e{;@$ zF0#&O|EJumd8M;^q@i%d7|T*E;sTMq-yVcn`Lnn*jBr|Y`p_U1Y@HyRB)pXRH~ktAKzb(L<01`hxqC8ZJ0C7%U$l9S^@gPT0G+}2byxxn zAsm~&@@%iTu;!Cg&{V%4;}bPuN2`8u0rMzF%%x=-X_t207GY(Xl0rQBZb{zmpmt9z z(f)^P*@})&V-Q%$Ya=aaE;ml>N7xv|H#v@I3$1O=wuN&DGwb#0^Ce1i*Wq@G+wS&t za*gNOt~X{X+YPYqcFjxlw(+yS`~G}1nl=yvUmG67cPd8C;nLIYqmtcTxV|!!zwJQ- z+1HwDL?BdxrDocYZf>}IYJwu!&>K?i(aj=>Q>(U|U0crQV<|?RN9`iqD4mag69=MxQ86?SBO2#WmLC8ZT6Jji;hdy8#PW30NFnM+xqp8w>jVIpdnLn~n-J~1fd3Ei!9g9l93?8*_8dMxF@z96`rywu5De7su2EVwwLe=MMTdYg#( za-k!P$*!pG7sbUSEQ?yy$=h2C`@P?T9;$pbC0sCz9KCUD{OVL*NdGbe>Y3~7Ux4^b zm*<1Y$iI?(&OEeQacv9*e7ec%>@TKJBR}p?YpT@9SZx0=)b@-F2Uo8m3%Ybr%iX;A zD)zhFUPs_O3NKcaryB#B@iebl&CF7H-SV2ciyO+w1efhCXRRxPSK^*Je-PQ_hQq&a z@Pa-XjU@)DIXt%_NNt!ICND#tQ%{=qdCAe8cvqvQ-b^CcA2yW~=mS_MUX$U-s)|-! zzO7*oonB6}LC>SL#n~Hw^gF;_aIoD99y$tTwGhBoxFOwwzsuj|#}*6r*yCI|EfGf( z(kxgw=&qfqkE!>V7^r6ukY1?9*1D zLY6A*daB(aifr$a!&X8_zx^$4b$-y7dN%7)FD0>j6Z%nb2i6Q0L<`yYj$cCxVktt! zauPApufZIQHAG>B3S%_K-D{wJgPF1fETDtpABmi(Gsg)oEZ4z-sr)>5_Fet!an)Wr z5ieEUb1DVoZ{3PLUUcd8@WoE9Q5&z9-PLR@X*pth*g^%Dzwq(k@AoEVuY~3xYAsmo za_hI_*98x3ezbCT9K8F61lUBSesZDl>RB08cwQ@l@iXJ)6SIo5oQC_#e0MOlCX)}B zb1F4f(if1?1o#ozK*v~`O^8$Ut=@gcu$$h4gqsMxFkbdk&jxKRd?a6w236Ob!U&{4 z+uI|htsxHyZKM6pH4b(72eD$W68HlMR88*{ve9Serz+%&W^Q20VB3!G$N>#mtR`En zaSB_)1bNqOxXAhC0Xb#g)V_6D8meU9em&6}?`#FSu;?J8crQ^yE7)>JPu*rov7;!l zMRnt#%hzeb<`Wb>0NJ}n)_#T@M?;)SPo8j8lpW~va!Y=uVvHFqKqXM!~OVI7&7v-EmbWddZ;4 z>}VQGwJgPz{&l2XiNBH60!fdL#}c0C@4ZECTcSyeq1`St2-;^67dc_o`@yKx59(=g z-qY5_A8s4ge}2m>Da!u+lK~wqo`PSLT65kxk|5eZS!Z6pcRmJi&1}6x|=!y+w)|*IYkr2MhNu&?K)0mL-)3 zl0V>B;H;UQn^pWrZHst}Ev-dN!hFmsutGZU!oa$|p*UnbX44grL}g5-g;upxhbn6{ zrs{`D|D^$9HOqi{WyAG9B;b`@8&gmW3$4HV-hZuGvsQ1PpliKAOEpb|d$SydRO_9V z2dr{k8ZUYn%BCDIg0S9Q(=lDol?i!oKFV#ss~1Kwc$ktM$3p#V?AbO79F@F@6fEj= zlSlW#m=BaCm(iLn&u+Mjj~kPJ=I?is=yoU`5CZ(aG4sna{|$xb-}(Qvu|x6l{rlqi N)vLdD@E3{z;2%wIU-6IhOL0`$&kQ zOw^d;b!6V6Bpp4KP zFA5j*`V!7`%EqT!N$bOFgxWM}7kfz5COht#HQ~6JkDb;E-Yoog@?b-;#m^n=6VFOP z+`%~Jk_39@KH9{nQ2J_x#_D1(-(FZUTZ?mDFJ`)|#3i^=1R!=~I4m-I{YzVJsn_OQ zcv=6BgKquv5iM+=Xp~TigzX!KUxoWUf?Y9AJZ&vi?KT@s^xzTf=~qj#yJ^}*0NRLq z{3tuFX@-d4caOvOmXm6wY{Uj$LfdMsG#TcXeyK{)jf*HN^Nrfccc48rSN27+BL1c? z%%6u}*eNjDf(>O#KXcn5oaZ(XRaS5Op&Z>V8nAF6A1y?*(@j#*%xhH)p`m+I6&=^Y zorZ-}A@IRUR{8g!>IVZDK`ZM)w0Em3**Llbh7y@>>Ry}N$*)bh_lUzrAtPmR%Z&^* zaz*sLD{1U4;(o8=MQU<#RBY?YO)aA3Ij5&9dTMQw_OwjH)d9Eodwry6{rGOnjLZk< z8GLa%C-H`pEB?97=dplyaMZ+9)0@fro9L>UA?=M1mO2{c)Czl-1>uM4^4i4#WG+LiLOHYi_gOC9GAx5(;0IH zNj}-ql3m$Rw$Z-FxH-SYN^XUcdU9<@pHdr2fs&O}=yvli$e{E3X$m!V^o)qR0ugAl zy#M6TuEg-wH-tr@E;Z{AbB02;kpbu$swBm*!X5hNx<+VP79blze#`y|XYLiK#f)N( zVijb%V49vPzKrrLTQ7LKtLsy`Pt}`Dq%6Lw($=&L#_eT zmK4U&4E1DuM^57!Pfd$)An~E1x~IuO%TO*=(Kp@v@jqI>KZChUB{spjpTz!|jqwSMg$u+tw$Kt!4z#%#_e;@z7+)-XY znKd;G$PxV({Wy!Dv#2iow|iAFcY<`(F=CLoXLPgd#8?sdO_VW{T-#(hoZ3S*Q(3L!OLIN_mvPR;R+GHI<^ye3^3Touz^LmbrF6@e;FIF__!bXG zZQd^Eyf#*30KKRYjcUZxjuTRHv-*3_9pS$cgC$;Ix@95{shfSDN_?#<3%+Cf z3;)q=(2LaejyT>4i5$IjN6NNcW5!*uKzRR=fYQ$-$S!5~JL}?&Hm(fD-*06h#6Hv3BTP|gEo{cqs9SAyGjv9@8%iA90 zzVELmYJTM7*8SS0*BpBVTK`k5{|$PCil0`WR$p?LyGwNh93)ALyim{-*c2-qw$^xi z0x&%*^aL&U@NPz2K0Xd;%jXm+gl4+%WIavpyj=gjW{q2=98kv z-W@R=m4uCP)k(;tjf~>pS{(^MRuRX4Ba7G3oqpj$MSq*loAqguV`&#QK3;egxeNO+ z*m32%p9TdMXUsfnbNG_)qz8oMMo_E)v&ZtaPW8#3{b08qy=ZcVt!nLiRnr&^tGZl& zjP1NdGF?viM~g`7hUqcs!TG87pbTt=4LT%z6Fcu@*sk~DZsJk-$Q@1or;6{WmnRg8 z6)K=NnbptP~D6(goMtU(4&)dj1H&Iq+Mtpp(cg})lmwrd&DWow=4fSIa z3{|pV<(!*Hn#C%qjy;0>_CZWZE!=uW#)|^u`TUnRzDhz<-q+O+&(r*3*%k?)gV9qn zo+REYVThNy8RU(ug3~VilMXi|Gwf}Uz{~McyTS^l6j<~JADYMIo3QJ%(@m|Xc*AE*a|lBDSKg>FwvszYHBlvJOa%|jY)XL)YPKJjFTdYtSuqgB zY`k#wN;FQt(|kMq;G=viNM}eobAE^-ACow{d+&>{w(oI_`>SsJ7Jn3LRtS0^ASAdZ z4&@1pDAa_HREZ_gqZf}tm;S=-t;`bZB2<-tX(ZPti@}PUpJiLTV#GxBMBsT2bWTGf zq{*t5l`k_bseE&a_Z@+c^Qu~0IH>0J+i}nyN2z<&!PbY^{B=er)5RrSkk#OX~%$PS%3<0q%aRW>b}+ zH*@%1Vvt0VC>i^t#X@jhXTeM2v)Cx&UBOb(yjdB8c<2knJt&CMtI~Tfb;=#@)-NkF z`+?H`(%GfRCz}e+Hk=h;)){ohHil@=MJ}%V84v`yDF^z-ew1^n-BoFWp zQk$G|9&hF2mp@l8r+1xKrOmrASV}p){@)gu+2^}#dDMdsIKe~bEU`c?1MdGVn?Jbu dZ(@M|&i{9gC6<@(-xu&t&HgO&kB|U>{{T!3WR(B_ diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/if-all.sol-0.4.12-compact.zip index 10932599353564b29755e10784a283e4af72d830..f58127a1c7e37f5b6a58c56bc0ddab02952c88cc 100644 GIT binary patch delta 2696 zcmV;33U~F(6z~-oP)h>@KL7#%4gl=6WL8nUorO{g002p6kr+sSAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH2HW$A1ilmLv5JAfHn%u)?L6=wd8S{c z(w2V*Th5Z#6`H+B7j8HzLbrGd?xb(D|Bo@p{e@|scmDMoJ#MRD;!04u3Uth!Qb2c7 zitA-ii~0EzZG~xnzlh5JWFKy2=Ta1$W*TZSzGJMH@-6U!Y#kWi9Q4jtrP#lF4Q=?& zi4u%nh~{ zBJ886k;Su8$01CXC6BM$=M0%rwS^Mme)mp??sgcp?3-&%XHhb|2R!? zwq-olYuJF}CI<{Fei&Ed(Bu^)v8FS}PX2R-)&{QeL`>dggJ`~9iUYg(g_ULCNTBfx zQV?*bP|X$Lk~wFb2IOf!Q*nC;^4GVUZk9~j%h-iviPUtm|Jv}ZJ)LPzI-@-Fu;OKw- z+&-sP&K4oIOjl&7g4oR5w`Yx*KV>1GT;zKlW;&pM6aa#>eT!}L7=vk69zU1**~&$S zqRUP`zvtJ_P2I)n`Yb4|gGI34&&6&!M`0zA)r-cz4+2&@$!bxfC<)D#Y;mH3huNOS zOvB77L5I>;>F$gc?3Zl0c8S)yMnu5pEPzU&$%8*qwF0-@V@z0QXQXvfAQ0$%X1lk2 zEb-NU+WN`;-ax)fg2H@3BKa(^N&Z4M(^cAy#M;QH9OxOV7Z z2%#PO$;vO9Bt_^pix0L19v<^0w-dB;`d>S?)NtakYa#LK4qU4~4WNV&D_8Npl;$et zJzBIKKPebUI&!0Azj|)Rk>ZMO)rRLwQbewQG0eRfrwMhriEO1+)KiZ28NA1I!w2G-U5u2u`*nVe1s2% z76VJ#^n)^5BSvA(9EYxIkD5VuFso-S47ZFZEl!~70tH*te(0wWNN=VMC;2=je$) zkWt8kUa%Yzql@|wo^+n!^a5|2?!NK-i}~fX#!88HI%{J zy_g}b{)C`kS*2P17|$VHN2unOY_V+dLVxD&DX@7Qs<7fdYE3^!(8je^irFE>;>1RZ z7eMvz+~Jc7ZJl*4odCBI&@*@z;NisYtpNyQk+r=JVZf!o;h3SXTl-^5a4_3{vfHWB zB}3h#S%>Kv8QK~uEv$B?Fz*SMbdM>vQZZLQD;nZ>WjU)f0Dw8ZA$W;#Aa6U}=Qdg# zteo}cytm04Cch#beU6odQ=Mc@Pv``HCTiN$^tR-a`n@uhA!y%_&@avZ1{Z~!m&n8D zyr2%Aw!rfVko{ZgmU_UyaML({HE+-S|CnVHYoimG9O%^dh)crard<$5a?LX)zNBsR zRz^5E$)R8Wt>AsSwg0(BgMl2${=8mJLKhMmW65Wr+qJoq zuy}fZaE|ZhqBiUM@U!%qM@57MFc;wjxZYW17f@m(@>Q+0I}+Jy%>b#Lh*|+?_L!uEb{(x0q-&1zo%RM=m9PHZF}5KdeoOM5Q{1XUc1d1;5Vb;04AbA=4_D%l zJMl~T%^nIhiEhMpqq%&s!&CX#^GTzGSG4&!*M1N2pC5@pL+t*SLA@H6_W{+`^k5OU z^CFA;47FJ!$oR0^u)4-`0N~jgDuqLzNiKT( z(W^F2=$DW(d(uAZfw31?rbveyyTLDnhwihxr)XsDS!BYUd3PYmcrgEZPY+n3`UH@vhJSBF2dBgz9&m#7bX+2hcLx^K^ z##V9SI`odd;Xor545B^F>(o&n7VH0&hE<`+-E2`Msp-oJnA#>t3`Fr9+S(=57f|%F z9L^HJSQnkFI?;%(v=#w=XA+cw`?^S3t^QJM^hKJoW)pe&=3adQNzk{6ewW^cBmx-k z)M^*PeBDpw z+*3rQOz=CO8sG30n8`J15tib}Bb}arXg(Ckz^ReE2tr()tl$Gy29iW2xEZ~?Llz(L zY@kRZaM%}#=;j^X!mNjtvTu*EW|9OUvCx!t0u=*)Y~SbtmFR+vpGN{%OHV$a^<)9X zpS<0RJfujR;LuiFa2ntZ)kJ=ov}fM76$MZ0>mc;GYZBiHE^?Syh;? zjRqngvK8;^jq=^Rp@Bb4cY99g0NO>ZWMepa(}UHP2&g;7c0W3@%-p4xc&-$9$QP(w z0=Xlyh{g@&lc?e=j8=v+wBV5nctwK%OeN)rO82fYUjG>v7*D+vYa|AoI4sHf#LAj~ zMtdl{O`8C1dH;5>1}IQV0Rle*KL7#%4gl=6WL8nUorO{g002p6lLHDu2962<0002e CzcLK~ delta 2530 zcmV<82_5$E70VPDP)h>@KL7#%4geu@a8y4*llQF&003EAkr+sSC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*+@bbLEnNwM?{?(NvAdN>BR>8c#HWr z`%yiB-lU>nbf^vh5C_q$<7GnT zW%Yv0@q)#%fkJP89m)2}!909;hgw6l7^>^}lJp+5Bo^6?f3hILO>0GP$dm(2C~Jio zknk!Puv_Gse=%v6sZNT)sTRoI6g6@K#zThZnp(9DXaCwj%#h7H2fzxVa3kDrZ%@{3 zou@(X*fb3v+KBpR3Knsw>5(M1CCat-Pm#Q3@Bz7wnu|7nKxy*FU6QloD@a1tvIex! z@r=76u}3}&K_Q66J1?k+DyqU4?T=e8e5FEm3MrkrNc(^AXpE`yM5!Ew*zsi87c?8dRV6tg z@(_8|U~FJv^3cBP?%kiVao0Aq1bl~wG6S@LY&td)p9_KDD$H)$3B&b-ey$cvjfb7c zO8K9$|LYSP-Ch?&dZ}z6q25v!zv`c>Jw%dWhpwPxITWR@5cun~o;dGpR<;mJR0%>* zuGBt%JxPJ!8hI{_#lEtc4Y+XbY3mbBuMSWgKy-qRI6@aE?$itzc+Puov%o)xJ3Wn| zRdnXx0A%#>OmX@a$qJEQ)orW zhs`4FNmg{}uf^1K58xS|62(O}5r?(kD{jOnX<{w_-;zhV#}n*^w1AKk$-gMeXwr2< zzPCa~G6a}TpLLn|hK)yBTv#8Ixv86!KdRo;pJx(b{|8Jt1XIVp(Q}SH&DrltsPub+ z2x5Gpv1x)NYGvY4yeE}`NsTy*`^Vvb#?HorSV!~*LknuZCMW=al9BKM$EHyo&Nn&7 z-aOYUuy+qxE>xK4n+(Hkf@`dY$q=xQ;0V(fs95{GVELA*NC--2_XH627+9L*8%6LYml%{}W z62w{#X+zL)SngFH+$YBcE{7yH)Hsp1Kulucm;E8#>?g8@snrHtmLs`;T+`RnV&9`O z5HC*bLcbLM!mTx-Z6IjqmTZUWmB6sJ_M(6)+A-`|zB?25@gu-mY<)8F)>RCj?TfS> zH}%)nZG4D+5|YQH*yL2EZ4hxvJOkQ!(@I%FXP@6$g8rpDyh}AU7PJ~9m6sfO^($vS z5L*sxt(ERq!pw_(*J>nxm_F~XY0VW1wHxzkr9OkOF9PI|a7?UrtC+wvjxpCv%ulPn zVS7QU%=1}r5|9L+z9|4#5p{zLKzDkGBtXz^S)Cy*{3Gk9OEKrwRgXnE}$^ z!HIIllPE16z@ZCGkq5Qlk2D{e-hipHAX(cyKl0a&1w*fXf=vs5TSDjQaFwgTXONpJ zIs@+6ynnG5+y#8gi^@po=7DCcbNZa0igvk zK9*%JaK(2Ln+wGm-K$Wr)3PsT?`x;iv_sIxS1dXBaMGGSr&#w{M{ln;nK=^-;BQ;f z8LPYFpeBcdbM>!(i)QBJ1v6#h8p584spfltbB`gqq~Tt>&3iN*!J`e22zxZ$x6}I7 z!o}j&4QV=*mfP4S`lh{aDyG2?tpnQBHE5(iUZaG&O4bE72$r-J@`FzAhd%{yR1%nA z8UA&Ct)0s*+m2%(Lg2-snXM4`$z!1d24^4Hm^NeY(KJ1l-o?LbTiwA0GpYQSZt@@x9rOI9_YE!3BZsX?MXr_kz zTHpGG5Tyk?9D_5*erJQuUj|An)@4(#uKsf$#?tWOyz3*dPfC9Nw`V72c-u^4s$_Hl zkjabyP^Q>_K8s+()z74kh41TQLnOeZ=e09|Ds|*( za|26TpX^KI@W0IZKyK-(x%4oP2)9m%O^T zMnJO8>NLShdgnMg zxCJehW3&5X{We!kY7h>GDDV8NbHahr5o)lX=WkU25Z>tENWvO-Kh+cV^EE~f}1ijYBf8y&-D}PL5vTmbk z6e#n5O(CjwfuHq#?+EX^K{dE+CzTtA&rHAKRUr(#nwVBoh3UJlx zf1A$LJoRm-Rz40EQ=<{90C{B9QUCw| diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/if-all.sol-0.4.2-compact.zip deleted file mode 100644 index f192e1bdfd9e562889d730e020046843122b30c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2385 zcmaLZ`6JVf0|)SrV;VA7C>}FJ9w8p|2s094iWoV9nKMUX zu0{4Z3rRWWd?;h|?fL%x{l4EnynlKB0WV7=2PXnx2Ot0}$R7pa8B?eS13(x80H6Q> zU_6vvu~?NLKdg&;sJ~xeu#0P;n-?a;UBx@d&zGAM1ULZz4glcs@t*1|^?;(W_pf#M z3VMApa-Gl^f|a=51qyGQX6((n#BC`=oTC|S6Yk?E{6aDU`fnBh)z#%o z;YsSB=Ja^&(_Gst1y#D6J9c$B_X1;)PsJ~opo^zECpg~aJcKpz*BDNAqIP!@Tk5xx zAFyid*lYu-A|6$oq-MEEp_7pKu{^xMLEw^Snn{0R+A1Dv(jt( zrC^kDo05k+6c&Z+Ia*Ea#@seadsOlae1W#HN_!7 zI(YMeCsK?SU{KeyZCj#5D39n`J`(M2B~SY7Eg-YKEuh`434B%BS10TULt6y(dm>YE z_3q)?+dhxt9Q582H_{o$6^~Bi+js1N{?|&0SjZ20wW7|29<}Y}yBf6=@g;BK<%zfY z4wihacGK6lP|vd7zjwTUT|@*oBn%13NaL(PnA8_Nb4omAL7!`gB!Fwj)sH8KsSWRv zpaxfUM4;I&v0D;r4OZC}3;1wl{Kq#GG~C z-a=G0o6IO3R2__!Q4!F6o5K56P7`wd_N_33gPD2jJDkpi^{JmTH#af|F>CyW8!GKT z4`7{r8}8!zYHUKA1V~btap;(X;9}m@^X*uXXYOw3z#`4OkIK1Rae8+m6+hxt#xnXG z)o4vt8b9YuG8OEs&!|f!AYsJd?Ee|J=P_`eo+?)N^9=0j^f%KlCl@~|hI zz)vjOi|9ZCE>w-k#XnUv+K*->{|Ejapk|elnyS$#m8K zlSF2Atvz|t?||OC;55z3E7ePwaO#8@MD^H3JTr9#SX$$lz3gXG-+~)ze2q7zrNt2e zMEcly7`-y(ab6jA|IQsZKbEqsK)IiTzH+MUZDxkmcwcbraJ7_NoPpV2dtA&{JNM)( z8qU9nQ<;(zQG@WW#AKu1!g8U(zLJ$UefzZQl%*V(U1DHHabxZ$xv>LCvxd*L0eW$6 zO&q*kuiO(0mN&p-q#6YfoKNgIwc2C=_7_6b*Oc0LF=sY7G;#A%Ct{VudVBp0lt~+L zQoZz!@N~RgzwXm>Bzqg!e``8bWM-UOUxnnQ;W*5xUh-SSAW!M}#-}gr-1L&Qj%fDa zOqPAwLlC~ktH&o6%8xxyP(OFUvBoqvb@3*pewm3i{Xx#c|5&^wZp2$VLSNpp+->Lk zG9*(+ z@(LG8GL{;6#hLdqWc^frrUr%RKt4s)e8LPps6$19o!2MC zIQ*(sYwfr!Ii5%Q%H1Ic54gHu%*!|OGR{`v#UNN!m+siD@=R6Z)u?|W3Os#|)><(F z`+;mA<*}3{9=v_Kub8q~-N=pa4!8XFTQXXYqc+yX&BTNPv0N?0`OEfC(}sIz&%h6wHCPvAe|R#!F)=-Hb@f;cn%x zjk6AStmm+tn*Q-uE`YD!8jy-B{SfjAs!=5m z>!wctenK?1^`ApV)IJ;URpUlw%)o-GsF90S&*-&H-rXiMSzlc_={cI^7sDR;%tCx$ zalBLk%lB`=k)%W_sIBJXuD;(qT#FE-wYG~n4W6%ZS2a5Q%~Aq-IzUX7c!<$K1IIH- zyRx?|g#un?>xK@eYf2&9Z-N|)&t6o3R<3Iy@h7>ZSJl7al?rFQ2C*yW_`|p3Jh}ys z7>~MD_7slu6j!q$76)hC3k3^y8`s462qXlVKQl9f+_;JT`Z60 zF0b}4URD}gMJHZ5>wNB{^0U}d7D>lhut?kHpl&B*D%4Hv#fZLrD^CLMg*D*e^_?Eg`Eezg*v{OSFf+u} zO5oGpR)2NK-@d%bCBnWUt3rE*caQO&tQrm5`?fi91B1G*%Hadj^Oy;;Q3{q{|3kQ@BDxMSRz4O|GwCM)%@3P{elw!{0HsFegFUf diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/if-all.sol-0.4.3-compact.zip deleted file mode 100644 index 79dca5f7b23e8711d24c38d71f801d00c91a041b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2380 zcmaLZ`6CmI0|xNTeN<#_SxaWgF^h#E)!e+fHH6K~HD0X4nTAN^NRHg*SWPAOK?M>S7&bRmb`}g}iKRmxYf56AVmS4aWzy~-2fLslCG3x}1zYqZcqD=t+ zFaQ7u^4G$JglJz43-KXDg@=)@`QS+Sz@Qrh?cl3ne~JnS0=xhKG5}zbni`W$Selh6T0cR4U+opzkGjv*-*Yq}&s9}muhEVGBt zc68PVXCBGR)VG^RMI93Q{;l}A@g^J7kncxIvCUG1Sz#-fos;}M`H_$oi8}ODr_0~$ zd##OIY1jAbFhDmFL&pEPK-o*^loanq>Ud$oQ8C%Jh8H=smv^i+tOTOb?{n|MPG=X> zlYTOqbLqR8SkbheJg1XgN(TjMwez&}gP6*&QIJp+4BlbaB0dQp z_;yoxQghWUad}-tV3^-0Dp?!!()ePGn5Olyk;dW-y?2`T4J%T2^H&qEt?~FGVK|ev zIAbJ8eG4CM9|z6%eB+%&sER3h9?egEnKbz4`@F&!pYYZE$=PGijLFABb(g2y{lr-2 zuj)92drh{N9<#YO^jzTb*AH`@SkZP$U5!I!iOo=RJ7|#;2XX&qb-#I~HL~5L=OWu2 zb7R5!({yr3bEv2ij#qai83&Pkgov~~ce|g?KAPHxPI&&l65@DPE52Y(lCLiUB5}C; zq{|#i9c!U+-Z*6B2ch2~Fr2$5C&3{bw2RrB(^1G&eeF}PlGi3VQs9O*8Cc&$$ z9ca78&oq1YEAuT6txN>Ss;m2g+7^n!wb`331mI$op>T9L;Ji_NM39H04xLR2Q`;ze z*8#p0sCkrFV7xnw*w=K#J~xv~&~SYqyN~HB3_of8s_05;D2!Jy{fivqW{S(vzUC#0 z=Q#2ZcGldxn-4TL$bE+00}&+sM=(NCR-8sn>s@hG0sKW(M1o4^mE8uffWr`RYtcB=tQc>kAPy4#iNrO{u zL=b_72M-)eDrWeZ#BCG4%6nVh6&V{;;b*XXz$<>NIP& zx}|5xR(~q{qiC*-AMZ+uQEp{FZ?>E>jp$#%cm`S~Q{+u<-!;+eOAYm3>X;lK%{l=B z*&qe|W>n>{cqR8QYhPJTZxsNYb=YPD!As{^6BB1mTyG` z1(9`o7beC{h`AQ*P!H|kkWw{IkNWFOCDro1<1gZuV9Du>Hv{X74@B%;uXCJ%dG(tC zbEC{{s^=FB($QGMq@sEpI@u~KGNuYnn_$F{6pbXtcQe}D^ip{zaiUwFtKD15oQk2CV&trINC{}*izKp1*0gWaJ`h)`sN{a6xbG1z;V zDAx>!AFrA{j}wHxWI8UbFKoVkyx$_5DsG!%x>zKQW*59Z6?th-Y0O0x#A2`BQmySL zE+U*|yiz)6mp@;|zMVYkyn^XHNY{MhEnT=1`y{03^3c=w!Ok5p)Z$?al42HUVb zLa*dlVJMxaADI@I<0*^rE5;x4Sl9S0Lsby=dbFfbjM)L=TGsy4jfJYw2)~wsgWY3U zw}JHz!&l4%G=TT4P}4-=;*BJ(O6dYc`JC3<(;M{pCoqW;UWt7?yrg@F(NypJizHv6 z5n7RwR$T|Q8}LRs9tY)ZP4q_u5mgZR)2Q?SjE#A`MSp(Qw2nhq(8P4Tv6i|!y%6ka zI&j$_W~o}wLtGU}R|}lZ!r9eXk2HSPO$0qR}qe4SlV+YlAJ)uBK~|}mJS=}|@fQ3-$6VDxRXg`P zk;r~*)vKv^d;jo+MUer8(*bsof@JIf%h>vI@x{u9FKp_Y1I69vpXskgI_t`gOzq*% z=WX;DqqbtA4P-WRx=^~L24wUh`lZ4|k76aknv%wFDqifdFX?o4%?qsE_~ep7o$)OY za}`0Lyh|9~qQJ!L{&K6Ns!%TKuLZ0hZ?rCOK$iAtZ+uW(Fj_&1EKjHTx19I=a{UnPers(}q^5T$iOa z^d?Vz*=La3SxflojPm>3DFiOY+KhR>vgoNq4R`efn9n_WAQ9P9j8nq5Y%uY(gfnYHb3P-lU}Cy|<%zrU<F#WQu32d|i#OoMWzXSe!hkYNtla!LJxzI7h= zernh5ost>zd6umg*(zRWBOqrL-8z4L2Ff$fOvKA(R7W^&Wx#3l9}~S!Fa`jcJ|!V& udC)`|%5ks-@|p7gZ|nT#&VNG&{yYC)J`T2mLjS&izianiS5gTN&m2Q?(_A4(zJ_uo znuX>FE2_EWe0X}kzkk1<&kyg{>+|~j0dE^iAR8RO3g81sg$6tHc|v0wKmb4#8~_jp z004d%Wlua_B{T@{;S(7g6cXm)8RCugi||pwg$4!w!Nv}72LNIL0E5(2UyWmpJ0%nE zU+MD}^auJu--st=*ohdzUUGM6HLOzZy=Zj?&TsN2#E!gil=ELkucVH)6kGq?x6Jdc zUZJ(I+Rt$unSP*iWNQ#RS5|r}tdb7^C4zhZ6NX}og`Lsu zR`#nPCV=3h05FD>XpA$w^dOWmixvowfK|Y27m?$z>e2@E(4D_ z701jmR-h>3hmcLBcHs2I1M0nfmUHMvT~$4mMF+05o=*+?1H*_l8QdhNKcC^P5a{r; zn(YQ4tS9ujXQouNU3ZGa_sP5Hb?bt>kEoT!kUtw0I&|11zpiYVa$Dw0^1;MC0ahvn z@{aj^ZQr~{q_7uflrk)+=BnAUAKnGm_k?0bCFB9=ckZ(!uUonCmq&F*i^+|w!ar?L z1moJ8v=z(v7$ISdQ`F{<+t`@~+6C)5c(PQHqbLPmAP4Ku1=`&I8_m%Y3?VX^L2G*6 z+Bb@I%P%rhM|0$PGfoO!v@~|=M0%!5w67rTYuUiLb*;vje2Xc?1oH`Lbs?x=VewRX ze_ZE6`L1r4O^e5ltuMiz*?Y$ql4j&J6sSD9hRX>0W#}evmI2CEz(s~DUhLDvIu))= z^Esc4?R8aW?x~rhuKTH0t*P>tm1r1f#?L>1hjkpD_K@Y302Lcu6$?ME8|X@N%781U)oKoEA1ayziVh>AfKmYPVBWy`Dc4if3OvKGUUTnpYtP%hvSR+BZfNk0nbix$_(#MUAZ z>_vs}XcA&(Zsa+>mGL)q1>^)~@hqv$8(e-NU=Y`VznQg5xMmMw>aw!Mb`czq`3?Nf z?9qqcK$If88iy|G&cv~*?Obz~Zn$_r^+>Uvy*j=py)jB1(U88USx8X1&I3PD+FvWW zng2(<%!^@SvMkJ2)3EX}mf~XpNVy*^zz`jeOW09Y!JU4Ifjr~fZc#e+=Q7dsZyK3p zo4>Ekh4lVhS3O3*eEt=MHY9}@>KcVmu zACQuo$*WE?u9(Yg6_KGv@AzT2m?Ma}pYCnjsnYin@{5M$gWmTsMt=>@N)pXMk~KsO zYu}MyozsXcT4cWY`qGKdK(lWBYi=ImyOzSNrJiY8zQvo^&gk*)Ovk5=v_=pxM^XAJ z`2pk@rcixsQqaj{XhMq{l~06=|H3`88cyZip#j{1Pq5J1)#RMdqF`+W2h`dwdkT7M zllz@U{gulc0@#fc1Y;v^9MU5(_UU8Om~zbKYoVK!&)FyL()n*ZTSg7zh$t&0!n(*@qWE)QLWvUju3(v^p}w-D@Kiz2Ix zi?2lb4OWSXI#k8E_tG(G1UvB^Kp-r3XRvI8nv^j+BxlCchcFl@eaJ}1p^_;Rc24S7 zneU=7qIS(QV-$7h0w!w4U@LjjA^yia{9uBr#DQ>c;^#m&HH1fRi66PYWm9e4^s1 z7t&TUA=i}5FS$Jkwc0WnSC&cdJ-(VYaO3f;5yy2OvZ(ReE)$`At|@hmy2fO5U73AqQG|<%b%yDB=18vy`~O2 zkK|}+ZihJu%zYFU%3+~!V6$WB^F@T`cGFH`GHGo5ok@d|X$@4Y=2DSOFd|SrJ*vWi zOwx4oh_sWe=wG@{&9o_BG$e2asiZ|l)jpQC0JDS(8_Y6q3!Sy$toL8OjNFqGALTuG z@a;wHkOZu`Y-n)Hcw|zT6b|u^@78cX_-cKnd%}U4iE1ykn}VM3+N<=={1QMoEHr$* z-TesMbl$&}15xtJIA!k{cV1DVX_*}=$XFI`T#L?P2Md8tr4+{-*1~=a6vfx?Hs+9i z(!iWh%Dq6Rs5=+*&y&zLN$SuJeig)8iCTgRe`P2M0ZiOa0cF+y?2?w8l>K?I`< wXL7nvaVfX4WMPE^|F`b^HlF_`mgQgkfBCVoWas$z#qzt?f0OxJn*e}+0IOMTvH$=8 diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/if-all.sol-0.4.5-compact.zip deleted file mode 100644 index 4144d9fc232350fc21e90b2c2997be632f1da68a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2383 zcmaLZ`6CmI0|xM67Mi0MxeXy^&JnAerH#3Uk!wxva^GD{sFj<>Xc}_9@rok%eZ+*e zFiNg+%aI&q`SyN)|9+q6hv%2)5BS)iIe>-$b^sqhHZ0h_a3Yweh6?~lGXMaj0RVuX zx2n6pzgk$3|241Z;God(Ywn>QzJ8HjYB$1y0=a>l05<@D008I{i9YZnct|0Axc&k! zr8m$|pI$sa571;4r9^ zZn@-}?!}6FnS9Hb+2DjcLNG$-%BOd?!u^cWEEZ+vwVo1lFFC9ZyjcP+7`)=v_)AU?IVzIH?|TU{ z@;#n3D{|^@jG5^5pJF6ww-}Jo-!4lyS+7D=z_Q$`P;$U;DnXYa{~_u?mnn!MxCgzaCq1N0JR`1f2{V7`-;%bQy~>L8-T84l z;R{XvoOQ5|;@p=HS}CaXH0(3k2{87qkT^ybe(bL$nY_kKH@{wBi zFji0kefnoW?Y{k9PIR^4XH-@!XUr8Sp?jZJ*J11^R+*PtZqTpoa!bjp@gkNa%JSC@ zYMt*K6ROW@iy_Wtn_JxvCv7rT2MNw`Qu`gAb5D5I8kP=+QtCZ(FGUnG?YO2{aq8y+ zAMgrgpNE@h%{279tZ8Trg({w(rXIVfHDt0&{IuSY*<_sE)YVJBbG-DrczQss1K30( zx=8622M}LLgD&lpFDLAxN)Y)tm~9Oh9^JB2ih)Z!U)@q7@13|Y!pkO+czq}>6UW1= zXp-&h7x#$eHW;!?R>)fR$&26=%SxSCNOijWisyA-6D!z*6|x6xB06lByk+VLLtCYz z>@3|NS1kpgS1AXI_0nk%2!D@MeGl)BGGAFDKfw#|aSa4--UyvSG!=WmcL0P5Of zyOo3%y<4$j-cG0a*4Nk{srC^uUZRnoz(#T6r@-v*UsKb|Eq+#+uSXru&G%9Os1w~7 z;O)@rd=CX*qk&Y~Ne#JqUk$Wb>*`j9Dak9qsMwZB>0jA=HGDla3$2)U&2Snmv zl~1_viuT37rrAPk9p?+o-0rBl4DbcqR?MSR2=?79{b>XYM0|s)1GqnscUpy$u{@cZ zIg*^F>&VYHWvb>(>Z%3pyBWGjw6vtONGk;*DuImL#--g&(=+_I^ba*^^uW33=8rEVx7`X)v_0<&D ztJo8xPP$9mL{*skuigU4XyMS_!imCCdm(qbF;L}+t$Jg~Uu*H?X zqoQJifLPmCBNEp7xZDw{Rp!TMqzXlx)~RKox?_4Rg7)w`A+qu}RcL$-qVljOhCzu& zF+dugGa_7#$5@f(Pv3)aD|x{#$xWj9bVT0LDk>=8<#3l#^Gx}9b*C&gxn`pr`l4Bw zrc_wmThVQ;#g%3@^pA=0mxoWgYZ@@|A)6@^i}8L|I9nst4BAkAKgch4QhH6+D$uP5 zo~4mCTuqFS-Db(MaUF`4>M!nPQ8vr6VWIalnyWiU&hY9AIGULsCUqn{Wxja6y9nFS zX|_Y1u#SB{p&39MpB!aZC3#j!ivP~P-6O&O#EniGQ~u~xBT||kSh`_e>3czS|F{J9 z6}}O_1?=ZW1-V$s7>;Pz{9_1_~}ejC;P$?Hl%E~Jldok+zFPsu@k7!o}t%c@lC~Wzwyz%@h;_w zjwk&ey1X%&Gukm_qae$+S*ViUfn#6!jp=3Uwe_v_&UFp{ILdt2#dB9ZGJdFc1ux>A z$%4(sQ@;4=2Wj)p#d5li5oJ}(JtbGVTXpQSn@i4?3;LrQKIKa+$a|_u=@Y)xjI)wQ zhEU5CyDi;(wLV*AfFScgOW$N_!TPjG9Xq!n_6%MDDR_^1I!v;Ej79Cqj&*_Gz1wgX zp*lYi5}nYQ2>EV5$zRJ-U0$&6pL7~0a>%K1r-c^#@YZl>VWq;e4jw{bhjHivrhqBp zN|Mg7KIkScL#~Dun)FSdK)`djDO?8JA>V3zVkz(6^8T}DPQNxh0w_3~`T6BOKNircmd77Kt z4Omrr=D=CseJ&7sMv-i%DE6>j{)~?Ag**Jdjo`N)1hXxbpo{I{rr%3Kg*}>9DWlfwR+6sPDB{K`)8v@(E^Z)Tmw5i0|xM6xsBq4P{gzexrN-xXiX#JPGUrjF`?lI3n45lQi#};O&qztp|iOb z5|PWCT#j3tnEQ3Z>Ac_H_jx`%U!FhUXOH9qnge(N#{r7rp-vYqoYIN}0f0<106-o9 z0H6cZQ5cLyI2PmW9~FuXi||H;`Q1h1{51l@u^~dhV*oDz01p6|rl#J};p*Hg8T`^< zELzwZf`-uK9}#ZInkoMQYSw$lYL6*vbmN;^6HUZ_ra41{=58@l`|4lWE$t$o-zgV% zI%FVVQWjGQ7FVra%38nCTV-|fbEDGt^f?Zu_(^i9Pel1~fS4c)yuHv6GoN^yp;8uW zJlz(Rw?!yp9`sIz(`)nJ+G+7#(4-tG{~$e-2$NppVyti}u;%`V9Rv7l?wX}#C-k&@ z&>>aU`r(dU@1tr&CGP9s6Iomj;V7HEA@_Lsxwwl{gdt2o(!s^{G~#lQ`-u{%_o)Ol z5sDxdR1U~JfL&;h86Us5RO~?SlFE#PO~herZQ85zBsW4;+T!J2?n!&nJhhYoL^&K# z|B#8VPrvif6dD z-92vuTzsQ#tvc)(C0JntVm!%<4%d(_TF9+6buQX4c4cA?T~+lu`s+)06vq`Xi`!+| z-u3c&I=r^QzM`NKhuBPD4VRH^MyyXq8Fq2m&LFR0vc@_=3mYMua}rj#h`FDg{Sd!( zF;`gY=nI|8$yk1qFq_)M6K6~U)B5;!`kqf-N?qZcT?I(_)6wsp!1_vciNR`rw&#-* zj49cPtuwXFw>`9jaf2&!RGs1_eJtUcz_Wx6J+imV1(wp)0pf(4_#?YZ=BWB7({B-n0MqHHOyR7Q0TiDy(bn=JuF`_A^%&-D`OZi~qd@*X>?XwjIH{16k z{Z0O3(o*G{-(fm11ZuQ$lxWCBIE4k{4AnGG7AZkHVF~L}K89ZC9upq7Nm}2a{rCq} zW$YPz>qXn%w9DbcCjNi6SKoT>tU3$w-9p}Olmdr>X2ntBq=XP*g)K*kf*w^mMA9h* zE9XkNcm8aIo3+~7V*R4ufqFW~Tsy6U( zUiis9Z+gT(tD~>^s=Fw=YzSTooNbMdtJ_Ta9ojy;Ed$n*SP9PxNF6h^Io1A^R*j*l z2{cBe?BZ?NHWpD~exK6L6r`N>DCnvo(sdB#0Vfs9c+&JN&4?9-awYi2{K+dShEE(r zIjMRxlCi64@E;>1%8$6fs|Eqoa`Y3!(%UHkH`X&cJwyCvzEpJ+aUFRAYIaIo-Nn4^ zXAG!$$|fp9so?rDmP zxRYLYTzqY5?~($j3fyDzlJ={+^9|D&sZe06V~%oj%Q7i{Y{HvY;ap6%_Xl1*bF#Ym zHn+_}pt(_2(dcgC0{zxHaY0kteVo7XkpB&bk0wd>jk~#tgoWN$LVonWp%?Ouhmgz? zuaJCT-)~_niOq;C@FH*sxH{aV4e*A4TMdhD;r2D%3g(AMpIT&Hx9lmiJ5lDSLa!QA z(bTf0P9$F0;6Wba^Qib1;LwzG;CIR471oAC?iLR`4rtOwEy*_9$PrlQeGb2g-I0BpQP!(*HphNc z8r@$o#BX6{^2vX(L2F$oXWwJ=AoujTzu60IDMIqgD{j{lm7Mu)S!1$8ch_0M8goxu zg3@t0vC&5}Ihi%~9hNcy-?W$)qs2Yp>HZR!=$UQGU(97Fx^zQ)+-0@l%#HxKZjeGN zcA&s)zlpGcA13mW5%Px)_5MBI&e=M=r{52FL0)t+XdTjim*RG~-?{!^lhEl3eT($|;V$c7La>@}MRQTM^K(i=NI2tA2bG^3m~f9+Ou0f~2-TEhJbJb4#z> zs6UC#`Ivh-BE|X(bk0M$ARDi~c`d(=l$)rVEOuDi5ZH@94Aq-A$0FI_?|=PmoxG^! zh0_Us(K>_p%}4Q?&dGG7@mx1Oc2`XudaWhw$Q8-B{!UQ#j|}Y cJkP)L|D|J(JjVa;i|1Eue(m@#BLM*a05jlnQ2+n{ diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/if-all.sol-0.4.7-compact.zip deleted file mode 100644 index 3a6700f44786acf854eb0fe40279d2849ac27ed0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2445 zcmaKuXE+-Q1BDYo?Y&9pFxrw-mr-h~-ndrHst}`Q8-fHusY`4wwM&hP*gML-TC`CO zYOh{G&DwHBYb1Q__y7CO`Ej1}Jm=^6@mjz^tU3S|03YCdpucs_=Sxp^IRF5h4gdfF z007>PRgivu&_I-*vqy+O3LWH(M7w!;V?3ZffvBgPtZV=$03Zqg(2kGyyur8;P%`?N zbcgpP`Kh=3J4kGbmDF9udhWk&HLkzMmABc0=4re!Q3LO66nvKv-{J>bi_NzV;klkf zF6+}76MZqg`R97~3=5_1SKQiLC$lp`l8)3)EVZMkuS;EmhbAFBaH5O%9<(cAIS+odRg2wPO#NhS+8VdTMZcJd%3=GH$ z(h%R%DyjR?Kg|1M8%%03BcrKO7)r|7pF8{4U~i24m8^}!|K)05@?|n#tip?vwlLY6#5SbIuTZ_@!Y%Drg<$EXqXDRRnexQ3b9y&eM-@HuLSnGD>zFiPA@#47>c6SBek*qRpW`)?W z`a{-c!jVN!^qoU-3W3}kNbHU0a2&{=u&z1$?BslcFlzGVQ|;jC1(vF*oRB2J1Jyv$ zoDC%{AkW;*Mu!erqm7~Lfqx!nu5d=Nc?PqDF;ipr`L*7TO*NFMSj?034LhOFuNKLY zpy}w!r4OunPNCoXMV#JVgpXu-MJ7*%v=J#7{^*o6CHP03OrfIw<3o|Nl#Xe>-8nTX zGVFSiY|enVA@W^mYPzl2fZlw)Du;fs=0S~cCD$nS%YykPFQ95Yo~@Rx&)*aJMXX>7 zT>*Z%Dlsfv*;(Qh-@+%5TFo=K?h*G13M7GjUvN~!< z@knK^BswB4J#Y6o=k~3zkux;aMy=OVvcU#W!s@-f;;XHGaM z16`?JMN){=95)sdukgsye4#M)$H0`X`m2ug(Tn(C-74bl#~NIe#n-(P=>}_pWLzi3 zAm~)-O&^4QtoJliP_GeH5&eS?!anREfdZ_JOr4u0O2fRdY1%ivy9LfoGc-;j2Mckb z2&7Ze(6(la-?%<_q2`6*Wo0Z0Em@w1kU_xUd2*8vvN)rYXcVKtejO5|`AZMj)e6VR z0pW$1-Pfzq)esN)w%A5p$Ep@2mp=r}+De6)T~}p)Ad60*sJO5ix|uFL%A4i2V0}+3 z!;YjiYm9BR{LA1M?Xa(gx4)NC0a2|5LZ}S62$_@GYCSIA7fsE-UxL`uwYUW23ucCa zJiaEm?Q|(SR&mVW0}@}1yK+m|S}%F0w-1Sk;bwgu5`=2ny^suE6-?3ECxfUi-skbA zF|kY1Z)EzGi!>tl?q*qTSNe40_P-EsDL;4>cNsJ$_B)x;!nCU4kD*s>Th(;|=&6@- z&0LBL@6LyI;&T#)0e+&AuAlSY*>v8s51c74bqoR->bl_w@+XQY=1oLwY9gy79T3+x+uaJDJbj%pzzmMVv>eZKXD00? zNA3;8zi#cOnwvkHl{ZLvfX_d^p+0`0di~E8CNBq>2li6OSYhIWW-~Ip;SbCd(Puf6 z$MoVqQyVQ0H6CW9;z>(s29slTqXgQk1-fUcu)MWF#4>s%;I+VoV2!ZcM&z8FzF+n6 z##pOISG@j#xgVUa{jnR1!zTo@`{fb{8*6B(z6!S zt4b+Q_KvHMMj7CZ=MGDnR7dUL-E`aohp3+4b5HkL4y%yb9Wt_<^>FHypI6+<$*@Yi zYCXFfVW>BaE4Q=a5vzpii@!}vDPC=fyi{h_07YidtY*Q3Lba_Db=U7=0_`lOyQo>U z*&opCldYj`Eg`fE-TmkKh6Aw*tv@1eUpRVJAbENis=HUTXjq>#iM08YX|sB$Y*l=K zF)2*k=f8(vt84bMfEdc6+S&df~TFqHX|TaQ}=vU z-d7b|NL(>K@-HD7W$Tc(n0Bh)X`8P^_Y=WyOZ;jJw#32&I9Gu}VSiG%%lsKrZbp$# zvzcZ=2=LzL%-jIx!Puh+&F*0@1r4S4zvE#((`)keXLeOH%u`gpy*oa5y31xK=1M-I z=UKvwZ{Au}0Yz8Ge02CVwY-Dz6!{wq2CMqQG-Y9|NyV##Dc2sYKJF{+*FtNz=Hj4< zkLfpLMKA2Yb`~ivN#J7H~H9Un}5GoBqtJoWI(C E0AGQgHvj+t diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/if-all.sol-0.4.8-compact.zip deleted file mode 100644 index 2b37f65d935f590c5286c2469bbcc0a7f1d59ce8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2437 zcmaKu`9Bj51IIU4G@&A)T+Q*FkVbA3a*W)!g&Aft!;t2TTqF59R|th=<%-Bnj%iJ< zawYfiRpwksj;HVQ`}2H0KfGU`*X#2Kye&;x*^t{002<{ z0D$q9NBa3G;BkI#USR>apkOy-5XuJ=>ZRa|$N6)yu>zSVyJ`)T~mo+7({f;K(|&btW!`-fky-chU8qr2e->7Hj*aB=pPE zw#O63dKYfa#NISAC=fOwt8A|Ja2$rE{8IgGr5!U}^4vZ6B@cj)3*HxW%De^gZCT~O zcP(JqB5S+V;w>Zp#ql;G?d)%niL?SW-c)qdMr}XS9bLJ*8;{gvr6pNV|VZm zbg*WUB=o}+w85eM#RHw{q$w#4S)*dQkBnL@PSpR)=Oir?1EY4b8+COx2Oa} zXJPVLoiSi6-{yX$^o>Q&4$GE@x4u8bF23bwew$aCO(0J}^;`x`Q}1RNApe3o@@q_iK8LJFVSp+(59S zyLUG|_jEpOphYT|OqRWh`k{V`?x%KPzr}S|288 z-mnHAr@2=3HeDJ|xWk@K?m7ZdQ<|#KQAobJH&OgVzp_QG}ZfBXSIi`MmAQl>^RGu{dAYa^N9wpGts9`gb5oyzYU#rz8g`EmPZ7q z?4nTb7Oty4z{IxN2wUBA2JNC-8>3XA9}J3jP;0mE@Xoo;nZaR>!rW~K`}>Rsmd^wG z=Egs*WGBR;iDb0#$OiO%I)@*YTh(GOdjS1vzW8yJus#Sd_#AF(AWDnt9)wHjuv%(y zzjvkGM+le6*#>bQWM?YyEN8Z4cvb>nnymN>Qbq3q7^Oo9#uw@;Kq4BmGoF>%n7Xi(Au*t3}u&O98iRp5`b;beG z$`e-ZUp?2uCLX^o`G~X{06x7)_+kHyRfH~hmP>(m_zD0qZ|Y{(PD=koqcnH&Pv%F* zTS6XxO`L9{ca0@lBYJ&@g+vsL%TUx=^&!F0$$5~4vPlRS0s+tcP)O^5 zy6#DOBV*nzzy3*1J0!PvSG>9qt}Uk6W2Gma|t+E*628o$mAn=&@Qv0l5 z_DQ>=kicK44iY0?X2}HfjN~V3>)+|xMC`Wa-Q})C%tUCKi3HXQp{^VypaZ1ph{mm&>wKsi{DgfkZaOXq@ER!rt>pbHS5%WBj zTKU^>VBThb)RoE9*!NHxAy87z#yQsM3EJQN(zm!E#iP{hGNI*=J6bO7Y{@Bh>HQmm zyJ9?U?|oxt5Fp1q#Y%mC=;Wf1Q*(uFdZSQ=;>S7hMbn7*Qsot7k$QeFr%Qy$ChIcW z>wf1;q2;i3Ww5qOPt>oCdm7&}n1s8yb1buJ6pW6bpOVzmR7Pu$7xcyLl$9)az!#?s zv%w{4q_W2iC(xJ_Fu^ie;v{{cCY2sngZq{x*9fKF1Vtn=fEmARwjWjiHu6U4!#82&vi|E2Bj zkkpx2DzDsD!-u9{Tv`O3JJ=uGw$*e$7FWKA-!e&grxgO8 z#$WeIA&0y;^2R-OOF`b{o_Je2Hhds&sD(c@!OvVa$KH|I6XA8i!h@ij5i#sDF&Knk zc$K|!<}ajXT0DSnzq$lW70PK~OnR&+=yzZK)%GLO`v{vNa4K3Wu_rpNA{aDW4DI(k z-m0*e0x}lIQLChvc<(3^cS=)me3!kIT=S{8x&#h%n!LL!tO#+j@x{h1dZQU_zF%t8aC-d{)U&PF6fajz@7n>sm2j#2joDe!e5QeZCLzI=)0@M)Lz z5L3SqqAA-e?$_)H6UP_@^{ITW1W7>S-V&COClaIXZdErCPr({b*%`vkUmJcVb3acO zQNOS6+srG+MFRR1(7D~C`ZiqXhGmOe^d%|aN0ydohlym(WwZ6ddR*$XZ4$d{?9VAD zQNABK!6oNY4wJE3E5teB^?ys!A5Z#kVu1hR|0|QFDLco%FW{e={oxg^f7gEiVk?QK diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/if-all.sol-0.4.9-compact.zip deleted file mode 100644 index f7aea0c2b171d21921aec9ad737559b08d43c29d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2346 zcmaLZ_aoE~0|)RAXT%|?6e3&XP-L9$C|My{DJw!Uk8{M~tZZjQ#<@!zl9@9vJM%bO zRyiYC*?BTDzI~tHpXdGl;r+||4|qM)12L!p^Z*AS-3008Ib z5IZ+F8E=H!Q%65f1QPYs4r%|w+1F9V#T((l!oUbv13(A>z@np_B*$d zUG6(GVRy9e5qNdq-`ZN~U^?=PJ5cPh_%<=UbOIRH);bRwGhL4(xv;;loMHP1!E z)SX7d>UBKvWXCGu+#kNl1cI_o)u(HM`W5KVtH1W&Xy4Xo10TlngMDc5*>`qjB3_`q zk+G#6`*^=IN(BEDY7;eSfDaj7(>o=aOMN^WOGcS%Ds8ELbXE@DIJ;3D>D`ZRX~E>z zFqFKFv`z50`KI;ZctLG0VjWZ$1>f_8WIJd7MrDaG)C!(ZtwoO+Mv?f z%&SB5AwKvff{BP-i-6c5!xWu3rZ#Y8E+yVmGLS}S*^87Nn#Qt{3A&fa7?ipjp1&7; zEZX{HFU8G+k$dQtr*6=$eb~8PY|440dk5mC(aYz0W{>w0b-N^`jb2icS9P_S9zEaV zVeLgpU*r4gt>M|j5zHwD^Z9U)6k7Z`$kkq&Zn89$K;nGc$^NnMwKi!Ta>SixOjecL zM<@!u=io_j|wI{aCM3x`Ota#jOITm2@@)IDpw z!-cUW%UNsTX2<(Ii=>n+8T7o;I&0+AiH4mRW5HgP#(+2rru{e#nJI~&2%Y{XvP#Oi zV#rM*#C5ZKq-yKOpjKq5xc_Ep*|0*>J+ncA2x^9)h!coHl#5A!+IHqfz(t+`J-5|z zRG9lL0ftr%U-Ru;Ze792vp1k5Md8oR4TtabbLVQ$2p4c}2EWKlng*$pxl~l=wLy81 zISQMwqJ=c;hFvmOL$Q{X(5gxas{~_4x1N9tq9T1O0ayK1B?)Ej`7HW2vwn6stdPeY z8fY(`Y`YgaDo{37BwU@3A);9fV;4Ln?2iP4y;?7OKyC8wV+^y96(u@}J zGs@GMk7sviNc0vbw#L{V1*p~UwpJ6El=T62eYq2kKv|}*X#-Z6@saq;un-aZlRRjI zhGs3QG;KoBvLTh2N^)-Dp|e!SF0RDa#`W~|3#n|{|q-gvq@MGm<(FzBaf{$5S) z!RXL*fUs{ErMp4>S8t9*!4lE;u!(PJI0mZI^*FL zJ2u&TdO4GYs8N%=iK?HbRJO~630`!3XHN9*9Z&IQM}J-~^CSGV=>Qz*d#g%n$sz=i+KHSZ#La>bIJ|^#8`b{LIIm61&)N|l9@69!qe0)#pW{;(9V9f9~6>{c}p>U znN-9G^IrP=8(BlnuF&61Bh?qJtj*BZY?nBd&I)>3=xcQ)g5HPMIP>f_?&y7JD9rX? zB2Fm0c~z@}9p|)JRlS)XR76sgBn)TAv2@EUaZsK}c}7W=$4xqU-%8Vw?>pBrOiV7+ ze4YTg4DOMKNN`(OXZOcyET5iAa=C+*xszV^xKN2!%o8#b=eNVCwZx@)buN&q$o*BFn0Bw#R9S^S$UDZcSY3vmDuNiPWs~`c>0dTyv>B; zGZuvk6RNF2hA?EVe*Xe+u@v>tX9Je_A>Q2~KQMKWx42|6e%(86;Aci*Q3i+QKqw@e!M9&U>fv3_>8_{vSJOy>3^ zxMks69Ne}EcH_zg!MXan_34472YfcH+CQ`EWCPeYZ+J1>_&(z#`I#>&7i?n?UO9KM zQe!TZU)0`ml;JB!UwNW(l7+W#@tta!R6N&W5S}a>G0^TThlT1tSx+14U*9bf?`E;& zg2hdtPAET?6QpI8LJXzmANBC6REc-j*PgB~JJ=huqDP2c&jgYBZ+qMo(6)nMEaCC@6SKluJ!|C6vGM5qJ24ipgIATt825Mr^ z$Qwefq=Vq+Y|Vr&7lmK`%E@J3E0OKGP=?OcmaXHxU8wozi~eXk1^u?Hw)vl=a0m$+ zR%wM1tWLmo)S6L#Ew9Ald6H}hx*(4`lW$jWPru5i1~467J0PXL`P`$>r{U$A{YiGy zow+jKF@pco0ix;hkEOY_HXp7`9CmsGQJffebl=IcL~qVg>PF?t`nZN!)V>ERyZJ_+ zbyf}`QP3CL(Z@14Q^&2hzzH^;^BS-qpH)WnQt(As5DTqWqS3n6SVVvXex!T}k}1`x z#xTCnqtf?Xu55X|QTifWM7lioXk!7*a}>sFAl*W9cUNFJ3N5!!Afw8mEZ%g1aWt@> zF@|%JlOhbm&cn)oykijRscGrH(2O%=|YYbpOu(cg;gRMy7vXbbqV= Lcf0?J2mt;8Q22bk diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index c3df8f1976f7a8dc87f73e2d97ffa23196522e6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmWIWW@fQxU}E57=qN4-$?!7z9>&PPAjiVM;K{(ikeOSMUsMvGnOBlpl$MyB8eg7S zk`Z5AQdF8;5}#I-pBrD2Ul5;@T9%rlYoKSMXP{S{pA(;20oIjRl$?=Sma3OkoS(vA-7nYL8zg0?zMgxx>Bg6btCwz%V7~v6 zx4GfW{!q2-Cvh)2&Td`c|K^AHjPw;;A^&cAI4>#ER+`?+s<$uVi(1a7gNI$>a&nxa zd=Mfbc2C)V2A^`sD2Y6wCm+ZjAz8o1q|#u<u+yTJ-o6;O#FLZ+$H}L^KI%j6p7t__9iJjG)1L5`I=~u z%NCzm>_0Y7pR@kcSMw$-9>(AMZmkSCILk1>CwZ2{yjg3KR$b8X{hAUl80*4RH}m%O zZjSG7H|#xsOhdlrhzP59lC)sv7v)WB?AKk``uEzTqWgKPjG3gR3Rm7-V|o1W`@2)k z5BR;A?5QSL>HXi#NN$o|lMky5|Gr*gb4P+oA5S9b!yNC zZ*#+${h?~vPvTy5oZY&>|IH8Y8R;vyLjK+Ka9&cRtu(!tRc~L!7qy&E2M@c%<>WX; z`6_OGFjZi8Xwim)ma5ZZbc8(GEv)OsegAuq-7?&4+V_3SoU3GVUPcAQD^(0hmFCY_5IgLa**DtoUhpp{7yVTmVl7G1?hzGbV z{B3U`@pIN2e{r9Ap0_y?-EXf^RWO{r=G4(F$e|?z$m3+WCnP%vVja_1j2G4y%%ge0AhOU4*&oF diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-compact.zip deleted file mode 100644 index a2c2a6858fa14df63b3ee235b5861cb476b01043..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmWIWW@fQxU}E57=qxS>iOvka8NtZFAkV_U;K{(ikeOSMUsMvGnOBlpl$MyB8eg7S zk`Z5AQdF8;5}#I-pBrD2Ul5;@T9%rlYoKSMXP{S{pA(;20oIjRl$?=Sma3OkoS(vA-7nYL8zg0?zMgxx>Bg6btCwz%V7~v6 zx4GfW{!q2-Cvh)2&Td`c|K^AHjPw;;A^&cAI4>#ER+`?+s<$uVi(1a7gNI$>a&nxa zd=Mfbc2C)V2A^`sD2Y6wCm+ZjAz8o1q|#u<Qac*)*d9>;S&JD-io+?bza+11MWJ!4l>>8<}4c(%_vaLy$re-GP>X)eqB zmMQ+t`1a4#C3br%URUpG7V`^~vipYwaDT+g#UTq$>+&0t>EZq}Nn78O?qrQHA0m6Z$u-i%E4 h%(x>E7>8ic0E|>BMrVLGD;vl_Mj$K)()+>20{~IB=wtu@ diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index e18a558f78a85bbc9a180cb3bb24cac0ec309bb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmWIWW@fQxU}E57=qfGNC zZ*#+${h?~vPvTy5oZY&>|IH8Y8R;vyLjK+Ka9&cRtu(!tRc~L!7qy&E2M@c%<>WX; z`6_OGFjZi8Xwim)ma5ZZbc8(a6BPx5ezw<}+ zD?Iouky>6qpVOztau@6V%jp@V;f~4Lvp;KXPd>ZQHKA~ltn5MWC4!qYw>5G{nWR2r zklQn5!#2jeSS|VdHJhRWkI!vdxAEkLKWmt$-7THY;&MJdKu$_{3eUSOT`#nZ_Wx2g zUM+a%_-E70dh8wdCOxov;M1& diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-compact.zip index 80f829632d17e452681a86a25357d2ea9f860cb0..0a4d7bd38c3189dcccdcf8ab7b63f8bf9008e4a7 100644 GIT binary patch delta 427 zcmV;c0aX5l1@#0NP)h>@KL7#%4gl@7WL7<8WI=%e008_2kr;D-AJ=oe7BTTh4~3dwgEWQe9G%61M?_vH2HgkOmLl)^4baL}^VYtQ{|F}8^%f;^ z?eo}Z5ti2i@O^tX^B~&xKJmy5Om@Q^zbKeoZY$t8NdB2XWz*BDTJi+TqUV1Jt7lJ9 zL@$hKWeo0!^A_-bg)ZGGVz~6bkl|sD2*S$qi%Ip`RjWf6aKdV4{LTXMFoqE_h%NF#o*1-me*; z2$%po+@uQ{wD#jbRg~dGsY$aEN#@JVO?@5>bn+ir$({NLm&F1n>yDSAa-J@lheK^) zm>Y%zp{wpPN`XIR`Ff^%cd_g`$_4)`5$XU?O928u13v%)01g1{wPaR3Wn@8t0RRB} V1poj^0001!7y@So=m7u#0087Ez&QW_ delta 438 zcmV;n0ZIP#1ce0{P)h>@KL7#%4giXCa8y;fC_<3|001xskr;D-C$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*+@gAaw{U2jRh{gSo9`r^1;JIUTkba zT1_Ff;FS=&RdTSwIVG1|EE7p#KII4bQ_4VSbXmwQA5jNb8Go!ac`%scYIb9UL*;2x zZ-v*2fh+F0tQc#50|M&+0f9}RIf<9UV{_2v?W7{EC7Fp&6f~BrWCS@z;}(pm4!X?x!|Md(<)8vFw2!y6aLC4}LKD0KI3rFEd`+i%a+Kj$A=fzfb@7(K{GWO928u13v%) g01g0(b8u7&RkNC zZ*#+${h?~vPvTy5oZY&>|IH8Y8R;vyLjK+Ka9&cRtu(!tRc~L!7qy&E2M@c%<>WX; z`6_OGFjZi8Xwim)ma5ZZbc8(olg>qqLA%b_$KHL&`NO{D-4FYZ z&uyjFt@@KBqhfYJhG}vMOLOqVbNRP>T&M5umbh}`>lfSF!`AkkU25%F$-mqc!~dA~8_eK;cngB%M3gC_$6LuPJ4eo;w$W?o5ZQCebhYJ7QS zNk)8eNl|HXNqkySer|k8enEUrYFTQIu7RG3o`GI*eolO91z1;NQF2CRS*l)Eaef{r z3oAn`149D?gKbAgy73?5!iAU4ZL{W`b2Kkgb-!F|Z;+Io`g-o&rW;=#u3ox5g8BYO z-sXlg`$N^TpTxcBIJSgWV5-3G(4q|oEmfz-=m>iz+C63e8GOniqa^Z#o_rvCgk=31lS+dbkF&~>TU>H^ z*?v4euWYxBqeAt6zyHUgNhOZ@s#o@_v+VkrYj=60Om6l2OGmF*YUtlszGjVbGEv)OsegAuq-7?&4+V_3SoU3GVUPcAQD^(0hmFCY_5IgLa**DtoUhpp{7yVTmVl7G1?hzGbV z{B3U`@pIOjc&E$@idSYSP5S=qd2g;^Du36yjGciRzaDP*RqMCSsOa_|`=ZhSZ$>72 gX58@yj6yJI0LCd5V>7^;l?`MdBM_DY>3v}10Rx)seES^PFTF`SWsL5_ui!IOc3Av3oizo;ZWGp{7IC@nELHNHHv zBqP4Kq^LBxBtESuKR3Q4zaTy*wJbG9*Feui&p@v@KPNu50<0^sC^;juELAV7I6se* zg_R+efuVtc!M39#-T04j;lfMjwpsJeIhvQLx?irfH%Q7(eLeSX(~U0=S1;Wj!F>NC zZ*#+${h?~vPvTy5oZY&>|IH8Y8R;vyLjK+Ka9&cRtu(!tRc~L!7qy&E2M@c%<>WX; z`6_OGFjZi8Xwim)ma5ZZbc8(`|tC+-{Mc3CLcPoq(`;nVgc)%Y88{i;VYl@sH|4MXYBfC_ZI%d z2bDW=JDFH_Zk)O5$e-go+Ot!$31y`EMc*KOO`!NuJ*l6h0_7HIBf zzcr7^t@_aAmEC(@ZGIWoZYt(?^>=qg{ezuia_ryVxxMW_u>FP5-T#OGDBS)O;LXTn h&x||%fKdnr4Zt|1Vr&L@v$BBT?Y{s3 diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 09a35b92172fdafd34d12a9995c5a8e68942a9e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 587 zcmWIWW@fQxU}E57=qxS>dFVFtemElogB%M3gC_$6LuPJ4eo;w$W?o5ZQCebhYJ7QS zNk)8eNl|HXNqkySer|k8enEUrYFTQIu7RG3o`GI*eolO91z1;NQF2CRS*l)Eaef{r z3oAn`149D?gKbAgy73?5!iAU4ZL{W`b2Kkgb-!F|Z;+Io`g-o&rW;=#u3ox5g8BYO z-sXlg`$N^TpTxcBIJSgWV5-3G(4q|oEmfz-=m>iz+C63e8GOniqa^Z#o_rvCgk=31lS+dbkF&~>TU_o> zs=W}rD#!EJ#O%qBwrq@7OBAon-JBFsl*KXU=6_p3@eR8Trz}`4|K&-O%N!$DXcsL^igB%M3gC_$6LuPJ4eo;w$W?o5ZQCebhYJ7QS zNk)8eNl|HXNqkySer|k8enEUrYFTQIu7RG3o`GI*eolO91z1;NQF2CRS*l)Eaef{r z3oAn`149D?gKbAgy73?5!iAU4ZL{W`b2Kkgb-!F|Z;+Io`g-o&rW;=#u3ox5g8BYO z-sXlg`$N^TpTxcBIJSgWV5-3G(4q|oEmfz-=m>iz+C63e8GOniqa^Z#o_rvCgk=31lS+dbkF&~>TU^CB zWgKEz3YaWJI@X-`NVa!8S+siouLZNe+X-+V?_qXryth{Ggxm@By@9SKVaaM5TbDk) zCRtrr>ylBU5H@p5a_gO!JibgjIu7a7*i1b1sModrV@%wOuRC=gzn1?P>ZcvP{_L|| z%VzGmwaYp2|35}4)hT&RU!2TXKK^>dS2iQfBECVT+^zTYmFtbQ9Qm7VZ~KPKJsGQ4!;<3}<9ukYizB@MK_M$jmLsFDi-8%qvMPN=r;mjW5qE z$%rp5DJo4aiBBua&y6q1FNn`cElbVOHPAEBGteu}&xud10P9LDO3uhEOV!IN&d=jy zVP%MAU}#`quxbV`sZPvVVj^<^m?w4!r4U)1`U(dbUbmPmz)l0WWFyH^k z+uU$wf2dmaleiZhXSXi!fAhn8M*0e_kbgHloR<`7D^2fZ)!P^GMJ?yk!NV?bIXO;I zzKUBPOcmH2TD0MyrRww;9bwNzyQl0wgHJhRltiA;lMiH%kgQ*0QfV;baaLJ!i>vpA zKMt`h1xywq9c#{eB-=ZlELuJP*MiyK?F6`w_b|IQ-dn48Lhgk6-auEAuw*rjtxKO? zldLYRb;+nv2%EVjx%JLV9$%&%9fx#kY$hIh)azRRF(&TC*PXhLU(0_C_0tYtfA-m~ zWi$8O+U1=1{~x22>Xf{uFHUAGAAddKE1QvK5#OLv?$&$y%Js%tj{MEGw|ztAo{U|U zc9pH?rRR?ncPE*nA&-{sI&^p2twL_E!#m}}EtTT?R;YS)Y`9b08~CScPj`SfBa=Nd f?)U>nAs93O+0XoeA)JwcL5_ui!IOc3Av3oizo;ZWGp{7IC@nELHNHHv zBqP4Kq^LBxBtESuKR3Q4zaTy*wJbG9*Feui&p@v@KPNu50<0^sC^;juELAV7I6se* zg_R+efuVtc!M39#-T04j;lfMjwpsJeIhvQLx?irfH%Q7(eLeSX(~U0=S1;Wj!F>NC zZ*#+${h?~vPvTy5oZY&>|IH8Y8R;vyLjK+Ka9&cRtu(!tRc~L!7qy&E2M@c%<>WX; z`6_OGFjZi8Xwim)ma5ZZbc8(;=&k70bK#t}mi=u&p^$FyO?3h8YpNH1 zB_3MIx7OJvcUN3hRA5B#WA~2s#RoV}UYOzkXMM&2QNsf#gxv!^&N*4m)9<;kUG`q; zj_WSJi|#tTyWrZYmv$+^Dm9?vdSz>|V{OO%M;i_@2lcPpq;uf%D(gR$3cdl}j7;{- gxZ@8Pg<#MCj8iJcW`H*<8^}OLAS?&c`@qHn0H&Ge)&Kwi diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index 9a9c5ed1c6a623d7e0e2a8eb7d5e7f2021a399d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 587 zcmWIWW@fQxU}E57=qxS>`MZK?UpONJgB%M3gC_$6LuPJ4eo;w$W?o5ZQCebhYJ7QS zNk)8eNl|HXNqkySer|k8enEUrYFTQIu7RG3o`GI*eolO91z1;NQF2CRS*l)Eaef{r z3oAn`149D?gKbAgy73?5!iAU4ZL{W`b2Kkgb-!F|Z;+Io`g-o&rW;=#u3ox5g8BYO z-sXlg`$N^TpTxcBIJSgWV5-3G(4q|oEmfz-=m>iz+C63e8GOniqa^Z#o_rvCgk=31lS+dbkF&~>TU>YX z)oKQ>%JKX)F?;f(EgR$262&WXHz$P@WpT{8`QKJhe8X;=&k70bK#t}mi=u&p^$FyO?3h8YpNH1 zB_3MIx7OJvcUN3hRA5B#WA~2s#RoV}UYOzkXMM&2QNsf#gxv!^&N*4m)9<;kUG`q; zj_WSJi|#tTyWrZYmv$+^Dm9?vdSz>|V{OO%M;i_@2lcPpq;uf%D(gR$3cdl}j7;{- gxZ@8Pg<#MCj8iJcW`H*<8^}OLAS?&c`@qHn0CYv@WB>pF diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/indexaccess-all.sol-0.4.0-compact.zip deleted file mode 100644 index dcd638901a00b16f542d08f7da8d1d94ee071422..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1208 zcmWIWW@fQxU}E57@GmY1d75M?!@{ zpIT9nUsMvGSd^TRS(d7oRh*y4$->GI%fQgUz+l_ak#79QxNza6bK9(W=N!$;RNXJv z+8ZQgr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`__l)!vTp|B%hCJ^4 zq|7T)n4>vEL$?zd% z#>V^uGdEYf+r9PV(HLz}(N9(;KFwQxX4ja>?=!w&F@Mb#1@FS2Cn}Yj&)*fX_~ToY z5!2}Z*S_GxtDS|@S9mS_(fY1I+4a*;U4Dx|n-V9M7tN<75_e5oZ>W(MIs1%U;M7M! ztL2jynys3=Bksg6yJ;G_lPg_!*U5N&nUTnwvN6l-oAQAR3z!VI2uuvmYJcIe`&7=) zQzd)OKebYeh#KY zhfkZX*!tqjZiZ|BzfZ{On|0MCc>bawnL}HxRc($~rM0vrWR=>Via0fUujrTBN$OMX z-Vv(3ZL~)~=$hB-#Orgu)~+>El{`AD_knx;+*ivd$Et`im@04Jy641nZsWX|KhhiX zUVHH^RA{JA|N2ZL?dh$}uMAJ!OTQBFdDG_&cLVk(q&P{P{?fJcd+o7%$NYTN{%%^x z>M=W7tu%U-M!~Jplxf$sZk>>qwVj)m;UzNhz=BKLUzx3bzvfHkuMG-wve)wL7puAT zHseBy`Km=zt30MT?eM&PX?=$MQT6wK1y_D})}OFmU}~`ao6A0hE#Bu@^y}=4KW5p^ zekZl--s-I?g1gQ{ZC@^6($ZFbU-@scpoQ+|d+O}%GT$}L!?iDzDd`7YoN>(3(bQo= z@p=8@Hw<(c4=@`%Q~g<}$2lu7_VLNb%}wX-KG|9Zj8f68XZ7Z@7EZ1fS^At+)d{^D5xc~0u#I5&DcU)2tREY>mj&Vtk=Ub?w zQkKatb)4z#R>Qhm$Hjj?u(vXwo=_a_DK5;UyfyEN)CM0h0mjAYC;u|LwI$w9*NQRt zV7qJ1Yfpw`Rkwun&!61iu6eRrd7fFE5AW&t>FM{*nxwlq9cL3$OYPtO=tcsY?v<#N zozh=ls(zI;tkGO=8WVf4`YOwTfz4>&H*2*iL8(VoZW9n?4Z{EnEbokPm zg_^A!XGYyg?9~6id(AIM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+Hj40+u7 zNtsu!WKYY#_xwdy`I0$VE-i__O}a2ahV0r5&?b`d#GXiwU=X zcp5uSTk4bWVAIA{a~IYxffsp?*iU=Mdd#kebx~j2>Ehk3ccz@KVy>TkAkf2P`}7mL zQe9r^N7g!)+9Z27p5(7R#op?F&FO5Tj_bqbQYWL`B~tlZ4Zo%4?D#mQ=W(#?ESyJy_weg|;D>rxSl2~zI_p7$B{F^SNv5KzC zo#yWS5}Ww{tCJ^-#8MfRXl}Kc?AK~6?wxKu*!TKI%6nEvyM-TDrYg^VKSk>A>sPC- zy00H|6Xv`7$3p6o+vCZHwk{QkXp5aUf8q= z_%|ip`RcLctr)+hWb2=)-?aKFw_X+0{UF->_G69pCWZJE7qg7F@h%4=eS3}wgc)g8 z>SuMd9A0F3^L+g*w|QL6n;AOWFFSsH_H-&kXWYitvt63vp$RMNzrAQ=%H-$~SonEY z#dRI6Z<%N3TJz9TRmgkp$jpwfEX50@%J)PP~9(PpV- zZOygvUd3^2`CfM!)>kr-mI6l~%$bq>^Zvn4cW&<$(rB#|m)dGBagAH(r10}M$Ir4q zYF+lX>YOWQWx%da$B*ag3hl4I*L2i5xDiB+C1K28%AMc042cTE5}A|AX>L;(hE@W{vrgoV@Y@UJb_>CD_(4aSgct z&uzln*%KV={x`}cFa&rrGTAfZE=+*s2^cgmf+!-3mH=;7Hjr{gAPfc4-oVm{fdK&4 CXe#yq diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/indexaccess-all.sol-0.4.10-compact.zip deleted file mode 100644 index 210565e99bd12fd10bf9009d7bc314b219b447d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1285 zcma*nYdF&j00!{CC30I=qddma%E_(5a}1*!h4ai}E@iXLa+!uPtkmgQnGot&oyeAy zR>^Ugwd1xlV`AAHmvTAEbTwM8buybBo$u#)&ij6Nzr3G+=%6+Fz5oaS1IK7o%tc!J zo-lm?7y|>qE&u??$tPn^6G^048qJAFp*Yi0DEQdZ)ReSzJTZ-wK+cSHPNbzI8|kkF zZ~(vn0AyZXysO4F^-jP14=*#0B$*6<3e71B+2*sW)}+Oqr))pVZHQbmK4+HA=y@8p z^VGZO$vl~$BKXs{pwjq<#+a26%-j5VJ2PmykhwCmKJ5jVWTfAJ58Ic~z6WddLxaxY z@~?&=hJ-eWZDw4jBb}X%Gl{#?mf&FO(iAGZGG4}v(LGY3JyX8HiWgMADl9z$Y*D*R z&E~}r387%n&aFa}M4J_L(9W266Q)V+3@tUV48_M`AjZvoz^$v}a}jv~k&Gz3auck)pDhIQ9Fr zT`m{rWGP%zn_^Q>!^88>>?e5FFz&Kz2KAWY$F=an*m5sRi;V?t>Xe~YgP!J=#ja?S zA6>yM@2#eMb+lJ5{#Xr2k}U$}s4rnaiFZ<#(!Wh}XRs>I`Y%FKh406^N*ryXJ(J^?zxbgG%Nd85&MdAo?0AP0zc!iZS!} z{6o4bcjy_bRK%R1Nbqsqjo01QV+P9cKIovEg5O$bT0u9kUcdbs$K5hJBne~dOsy5= zgHr@>Dl}0((x}ai^)^%x#y8j44}t0qdgb1Bw#Bt~yoNvP*ob)Oksh*-pJvdP)R9rg z^WjU12VO3BNDHiD2ImpNtP3pMCVg4U*a?cd`DgSOAM3t`x%na@je^pBwuG0VgY-bY iYyR7&Ri6G0L+|_iPpQyBYYo2N^;R3Ux@D`_0l+_SeP!$b diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/indexaccess-all.sol-0.4.11-compact.zip deleted file mode 100644 index 6ba988580f99b6496c37c0eafa7f4c05190f76b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1319 zcma*nYdF&j00!{C*^)4qRg&Yrl9uJHqIJU35MwlQFY{<~X*P|}=C~DRQaz%UOEH9% zlyYmX#}>&YJ6V?}6uHdpG!$oZIXd6Z^PKnn@P2te|J-qkU|RqLK!MXyk)GUD_>NdG z0IaD4fGGd~Vbt@axS-%*QdE?A5QTz_qEP}#agj87bYKuYI5aGVgba_OQI)|E;4A@0x(8Xd=U)^tN1wv}ro>u+TEW&OZ(`ps|k*AUlW?8+D;)qo3N>WejnY|aj zo||Iz))u+VuHZN!727=5KX{I1ESRY2M>kzv|4W@d2n|*Si%J6qE_GN0=$h4UAlSJ| z1SMj-&@hJl@<5Tcm}@wEf8CF~$^$x}5Pi#%=g-(Pf2!%VxQ+2t4rqAoI>u=z3vWB+ z``}Y9(@!|Rk7Woad*RWba%+Fq0w#KWmt68%}2}G z)M>_jsf_p9ShwX~aezavBys5@CrQ=$ho=~Er7N7n9_V@Hua{TGQ(qup`}>?_nr1L) ztxjQP#D=vKGp-~(75q&my7z8uv~7w~Wu#1SvjQ1WvXH6exDSJM+C>`4sp)TtTxsL; znOXw_yBx#9OR?aKHhR|^yw431mPG+Znku83zK-+VD|qK?$7*~fMpd6x!xqPpME61Q z$on^P27cs1qrSe&tP2Kp5j>fc)4zAO7UiI^Q9Mcx!kB0e(e2vPHMipT=pD!H1NzY2 zKH;6{m_j*wwuNy&5$zRVP|e%u6HTeN$nx9nVi+03AGawdy&gR#=5a)Kb}X>7ocw!S z6(AOXh-7Rh<%Wq&|8&ZngciVu!im>kLrF%yG_5@Yrvo!A}xJ$yF}7;!QZgraB1T!k4U=x8kt_A zj)B(hGG8JK2#0fmQF9x!MJQt@O#MtEGUUd=h{~4UNrYrWG22JkwDSbqsv`x4R&({m zf1H=zycJkgUzx_uz`3#Z^{A#zy%@`HzCH;Ze&82quhkQ&A%@s^{N7yH{_e?oLS`}j zjWy;wk6_`GIj3F9oR{=>(eT50&5q}n(#z0$Vk?+Or`a#O<}zG$9+-{PNHl!hh7@=X z6Cjk8VE*A66_)%m(6*@3c3vr0mip8{C($C_QTPkiPyYQO1Pcp9=!7tOmjyMCXB&<; z)a-4JMkT;~%$p%c-@ATEM-*sSj!-K1n>OHOQ?%+ShP?c)(%&iIULK#dNX)UHBw2A*N`~MRGNOaHbFgI=~u^cvccU5r4XG);zx=*p$p$2;Hrw+9~nk_P<3?tf_~x5d~~S zsWIGhf@t474v($ARR2({}L**ojjnNM`Ba%`=~IP6ZDPUON|Y0o#}tE2o(v+g}pmY0c5NA-+FBV_HU9De$M~2%pC{W R^7F2+*)yBlw8@KL7#%4gl=6WL6YPtgyTV004*-001YGyag(eMI?V8*K@rV zG4V$ag{75VSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!KflmsbGfY6Mtv<;@hQNGVF zqD^3{DPhF#(p-m4D|mQ`aU^LMEb!?t8NwQ~u;c+A`ud(oCgjL${`~iay?EmkVo@u_ zF))F5VkRRw&|@AkNp@0P`SgD~RE~0;i8f0{ZpNHFillSXWÐ@No4)RTFhPdl}Up zM2XYz*i?gsn6v3Z~;u{E%&uFD0V5l@bb&G%NRq4kL}C9Rzt+fUgKP zXkSXhBV&scSCZ?DBd(ZFM9`7V|dF#qV=WvcUZ9LU0XiHPn*0WNlc~|JBWPD@To6wLW`DnO-VlY(qr_HAeuB&*gC`cCR5YBxu+_Hok08ZQ!;Qv zX7wC5QKs_h@988@}s1W=PgU8*(G@QrS;!<`n6K4AR@Oh7NdDt zW^#0Hk!nmu>lcHR%HObWm*o_);eV}_tmxer?+{*FcJN9Y&su>1<*6ZpG<{}e_na}d zLS{%|aF(-)Ig`yn)k@i>ReFKm9iLrn!^o9a1zmp`6IV1@ZFiPlRJSS;T5^+;@+ZV1 zFX>OBt>!&&KL9&upVs`5MiFUn5hFOyh^#(9{7Q>6EtO?kQ|)Z@WVw;VFY~P?cfJ@z zq9wLlVdl|Qz2EgibmtoPP*hsLV#r;{kOG`im?(G&aq4Ik4u2A{y0_)c;^bID8zUwm zkJ5kVdr`44fpVQx#roJ_f#tfft5}#p1)|TW{_F-~kaohU_9d#ucyh7nF-cJFdI|j? zkQ5h-^r@lN_d%rw^X-og`tLg~De4lfSZ}`8QRHALW8ef!)6%H69a?D&drmOc1C|6L zCSp;dUEepRAw=ITr32cYC$sp5NL_DqgLi-Ek&Iu@-+*7ZH}WgtB!hiI3Ubt~cbO%| zm%hrOPt6)4goX_M?5bvmy=Qr#PU=|8YY_Lgp0FaPwnjNuHMWAvEYShqokXGSyOc5y zuQtUPHblofL#h>7=Y5u49s8fn@j~(v>^E^2^8ID&JY;Agg6j7s&P8yk(J1dXsP#Qh z{EgV?24!iOJNxMcB}?VnR|7H)yxC$>#2CPM%KyJ_8Hi9z0Rle*KL7#%4gl=6WL6YP WtgyTV004*-ldA@KL7#%4ggVea8$w+cS=kJ005yA001YGECwo(MI?VGuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2tRO5;ABMlyOyoCPm4|3HG zV+jP(q+HQ;!!TSMDYySCij@aa2VlX)Aa-WPEX9e(w=QhtDbD2zB%hsde&G55L+4E~ z2p=L`5NyJ*`YEEfY0}s#LLz_r1vH-{!Q-=*xDsZFG44kYC*&H;z(vhtXphADmu;S)gG|Cvb z%io~4iBi%Ca<`VDcxM#PDIUj%m?k#`_#7=3ni&jB>O^vw5Vp0_xrH?7b56bb+X?-` z!iO5YM~E5@I-cfzzGYf};)(8A;WI>Zc%h4-%K{V>Ahbl1^&DP5Xz`g$cr9zv%?Cl{vOJ*+Qru`5m@&68{wo#|r>ucq=YI^>|#VM9YmRn9JfbLjp$ zN(|~tzf0gNYOM$9Kptr+byG#0ZD}<-j{!3*pG3qsMs+lZV3@H z;jVgjMrnDL%YmX-d{7&V>Xm?h-FcOJU!rAO$KAr1q-7#9c8x<-8&w5XHYJU(2Bug) zFSR#q+_+ght@R{GNfa#7*Ia?J3)s{iEi9Xv=0C1w;Pfk(g`9+cr|JA$Nr&O`I(vV(w)a-=>@HFY=%xpzM?hMG z3GJJWoHnUlOEfMDAjGW)0>VaoK_|j-XLC4_H-D`-;19N#tZxgo@X3BCb5DO&s0#2W zWpnWQvp9JS@R|Q(?&K2KwA>*m--@~m;K0IvHz%mX?8#=-g2*XdB3!jSO8`i3^x5~_ zusGAM5)gmv}Vq z^X>E&Q$2j+cau`mlPpOfNF$je3D4O-0No~^Ej6meSBD4mq+}2-P;nCaA)lhU_~5GB zHaLI4WXr&bR)$ifzK76SPRmOYybT;=!9i zI*2_;MFT5f6&OXZqecptb05f2#WR~>x6n*zGsyb`=m6XK8Oeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJdtGCL#V@z%(t>T?u-!-!a^@lnM+_=##v(Mvlp?m7gLwy|uF<<90 zFuR`pJjt!JlYi@4DSor=>ng%(zQXLqxr<$%EJ=P8#^O^m$=!HKLM6|V*55ZDF$yIz z{Jqopcjoappa}|+4hrXRf5{gMS?;B=Yu@vT>KhsYpi|YbwTQ^eZD8QI{GgY z^R#XK)KO9zVJ23hwqjPS^wJ3q+^n79OCO%+Klt>_B|FVOGwSXw+9o6rAAj%7>HG7v zGCsza%*?M1t6P5Y-TZkUos%Xh9UuIRT?InjT{aq#>4>(PIwcttP zC2xhzD_@>@Wx&z0a>W#1%gFjYZ#gghZc96wWHmc+j{z4Wo1#{bN#eN^vl`ovtvmZ; z|B1~}9A!Gcj@rs?U*^7Rna_JhTiN})<|SOzd}28D_|b@Yo8pSQRi1Eso%|_aj?ne{ z%>{>NFmrC>Sv_;*BtO10otcHpIX%9ta=bL_`++H+XKCyA^L;;+Eq9=A+5UZ3HEO%L zybFaxuhlYmcBm)_Unn6tvd$^EZ%f&?Y^A-=vep-^ zYKxxMKO3-e3@u3bs} zC}>f`-am`CH@@wctjfoz1&_04AG0_()lViic=6V0=enjlzHVemX5>DsZ|(kjS8qVo zd--oniN_|tYz^z)@_YtU+_Dv-`T~hnp7{nxS^L-jyZA1dV>&n2etBu~#@H_$cn7 zaQ@h)MV{O37PL89`*CWRU*f6Wy^!yV?MW$ZpKJHxA6@UNnq?GTzUs8j^nRs|(AD|c z_fscq=6>-no9X{Ur&am^-i%E4%(x2_V3`624U8a)$l@iyo0ScuoDm2^fwVucgkoR- E0EYV=y#N3J diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/indexaccess-all.sol-0.4.3-compact.zip deleted file mode 100644 index 03f55060bb8fea2421d5027005d1e535fe290714..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1208 zcmWIWW@fQxU}E572q-QH>AW7P%E7|GAj`+Vpw7U+keQc~T9KHXoLXG0o0yZMSDc>{ zpIT9nUsMvGSd^TRS(d7oRh*y4$->GI%fQgUz+l_ak#79QxNza6bK9(W=N!$;RNXJv z+8ZQgr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`__l)!vTp|B%hCJ^4 zq|7TUSD3vxcd^TpCCQJ%*jq|HU)wl-`u{6Ro&WNVnUBnB znkrvLyl;{c^A0>Fk|)GE+2eW+=f;UL3ilQs&U_hn_TD8=M%xqCMIS;BKRYOrt!H}v zht$D-<-Y-KKjpeEFKpvZukl=98;^KqUw14O2 z^DLz=_??jw>M*zwK6~G#uL;#Ry``o+VcFs>V9jf-sr2*rncNb^Q}K_*<}f@taa;5< zLt_cISaAZk?q~kp=kJ!fT##pAy2EG3n=$3ggM{;JPwpH#F_mZE%gMYOLhm2ClPG%C zY|$}>xb*I}Jy{(S*6XlDH?Ihi`{v@gu4}W0h2N)r8h>vsQ+=Dwus>~q9GhsxyLtPR zZX|6@+{qnVZB=k!qCw@V12Ytkuk8%pQEsgiV&f?6xs zuk!SR@2w*ip1xPJY!^%B+`IcDYA=(3q@>5?nY|g0?XsLD8HFyFR31nTy}-96`t_vW zg}WWr8}rCaxMI%zqrRJc%H)4^Gac*RsyZfW>E^dY`m;1K{o-zEodP?@}i7R&r-Q4=@_q_wJb$#0= ze(JcU94PA%KKDxcY>Nq-Km0N`zMEAz_iik2dbY@v%W5sRL#_tzT%2(6cK>Nj9{Whc z?CH@tyo=wQvHV{uv5g_Xn~}+$8Fz64EK$Iqfe}OzS-1pvv$BDdGXh~KkoE{ zpIT9nUsMvGSd^TRS(d7oRh*y4$->GI%fQgUz+l_ak#79QxNza6bK9(W=N!$;RNXJv z+8ZQgr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`__l)!vTp|B%hCJ^4 zq|7Ts~9e-y#obLa#Yo1)t)v0m&&z(qb_j3+_#q}-d&%=>OY-zC72ZugQg&k92Q`Uv zQCt6Pn5DGs0K+5^`H09LW!ZY(Cl@WNG?hJdxN>(&>w$ea|NHhOzcioz=-9cZ>lpt} zVN97Y+qb^lE32=Mt#888xmD8(f3QyqUBB?^+=*+o-aq#}cJE0{%EbFt%sWm$^N3t8 zJ?pm|%l)*-;;%MUjX5!ayrxIy-}<_mm#_BGG24tR)8pq4M81*=y%DAOtS@LrWXcg4HR z^x>;$v9nu~Z(q20X5VFI@pH%SSu)xgRjDZUdYH6G*@PSXa{cOKC-W|`_qETOZV{!b zOJAa59xO49X}+*J#Z!2mM&!-pOY7Gpd{}>(Yii7b_ifLFru@9lZ}s>1PMg^5b7gt9 zer}wnHfHoi*c$4p^s|0F{ztfeuh|yG4a_{eD_o0@_%W$1ezHAt)3ZrDrPDZ8A6ox% zTAAP7zQ?gv34QBKcKkYm3zPp_wVmc%>ZvkCVOVw#R;%P0fPoc5JhC+65!3s22#!lgrPv%7g#IM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+Hj40+u7 zNtsu!WKYY#_xwdy`I0$VE-i__O}a2ahV0r5)ROQEP_9qmG1K zzLmuX*4@8S6t}_u>xHijrQwRx{YD@B@phulwrxt{}+ma8=$JY4~;SX7smh6Dw}?6!;)6F zqIb)!CUc}4*w0-OCipU)du~N`@Dr;vX`62M2!&1q0o7sOS``+W(@O7tS!_f%l z2?Z}IJ6#ev*QV_fEB@@)FRa1g1FZwWK7*CwM??C6p)pxfGOx|^F-i<@|4(1%+ zdGbL~#;nggGdnl}XP4&a*|26dzn&^v*DGMm5G^{%yL4TPLU9iQ|!FFM{=AiL+U z!ByQX`|hi6KbSE2n_k`KH*eubo>`|gQrGrOYyYP#mN@n7v!}VXy?mjZdvgOfWPahA z7~m+>)GwmD@$JUSuL2Xp4@UB&mtR;KtGV*+lpmkfyRFwxQT}`NrAM- z>JyUA?wq@5QVL(mx3;tyo&T-{ep^tj8tndx>Bv64!)0a*kG1!Iej%c(5cO43XzR?w zwG7TIT_)f z>zIOPahyqeeezWjug0rrWrv``+X|D_>TdpiCRG0H?`8vizxX|2s}mWeHs|F%3YFma zyKJ_ib4-MF+N?KMwym$;%TmtB-?IJ8i*NINzvxWbGxeSJoIP_V)b+FciUn@5g%Aiviw@O!myUOA}y$0tO9?Ad1McCBU1N4WyhA2t$Fi53qP*U;qFo C7$-OY diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/indexaccess-all.sol-0.4.6-compact.zip deleted file mode 100644 index 48e62121755faff62f444045aeef079bf6604f10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1207 zcmWIWW@fQxU}E572q-QHvAH#A0Xqu=gCrjVgE|8PLuOt|YDHpla%yq0ZemW3UU7a- zd}>8Oeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJY=>7l&%cm= zsx7CSe;(J`9yRCPw8y2lZ}u)%I{Ir?L&%GtHAXf96C*EI_I#CXXIZgPO-vuIT{QXp#LX+Y{e801^unD9ZF{Ug zT{1JP366cs|Fn|1V#e#!3dcp9ZC5|%Sg0s|*5pt!%XP^H@!aRtJ4@zkFH*YwYTebT zPo7`9_SLeZeCC{#*&iN+{e1G&{aEi$Z=(+Rsk48+nm4WPeWMn$i zQ4N)dZrZoM!Qzq2+lIT_lBQ^0FLig&sj8W#G&@#O0T~nG zYk#eXT-g18b3tI)QFboj(4MBl_PdgQtIbi!b6XM|{J$?M-AdY*XHBZ%&L8>n+dj`< zx<+i8TkWg(dmUGeboX_Zq(#&zPc5u@oqne4i^#KibHD7ra@y;}_o{aVp>q50w>8A= zc>OWALVxSDWp@`ITK4w5l$p-=8UHVAl4_rQ&UZ)h=}vZ0nM14XYx%TFxJ>lvJD`!9cE-GyM{ZzY4bMNbfAOC*DD2v64S#cX5&rQ(NuwAuRgky>6 z+2;1;vl)#7xC*K-x&K(!u~m}KODPA!btW?G#)ryp8b5Z(hOtMtOm`A%pTT*nX!Gfk{~aEeC+7EFh@asZ z^~g_z)%L+*sTGQo7zIOKysDnGdR|3>*W1gvrx&kfIC#DA?8WCr7S-9TzMgB9Ef?st zbV*&RTW#^=?q=6-M~}12Y5j1YlS9(1tX<-b(Xn&;v;N5P-wJHI)b6+Y_5NAT;ag{A zyxZ!(P_V`L%y##G?aulE-i%E4%(zPvV1WV#4U8a)$g(BCo0ScuoDm2^fwT{>cw%4x E04V7;NB{r; diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/indexaccess-all.sol-0.4.7-compact.zip deleted file mode 100644 index 3fee57ffa0b73934dcd184ae2ed4623660f225b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1293 zcmWIWW@fQxU}E572q-QH(e_nRk7Z$Cc+bbcpw7U+keQc~T9KHXoLXG0o0yZMSDc>{ zpIT9nUsMvGSd^TRS(d7oRh*y4$->GI%fQgUz+l_ak#79QxNza6bK9(W=N!$;RNXJv z+8ZQgr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`__l)!vTp|B%hCJ^4 zq|7TP_ z)s|DvKaXo|kDBvt+T+sOH+z>W9sM<{A>_r+8Y3HliIJBpd%nuHv#i*tCZ>|7yrql( z!jdGVwUh4uv46@Qs%u?bx|~b6e$lI1{SBV-XX`S9E*eKX5pm_JlMenJFxyJouW(i4 z)px?mQtNhH;JyE7&h2K7N=@GFW>Q+ zB~`8e)imGyon^1ZpZpA&#yvkFUPL=z#EX$>Q?5jKEXZU7DYh8HsWKTwt5$`6GlPCDuEPPwu zGry7$ZBJVG?%Cg|n~OR^yHuxLJFV-RzT4Pi>4cwAEpb}ctnMwiylla$#eKq}s={0w zcnu0-4Eo)VXjT_VRPJAqmny~r zelK`5HnU7n`MgfGFNNpZD%R_hw`!()?AhYx+p5J}`yz2#-->NzT{Uc0j0}nEl{iy3 zAKEkfg~`(>=?!bR!~bqxF8r%!m)Xzzz9A3a`dR<}>?%D&b7$pJ`}yUeKYqPa)ajAr zmRsgtpsdwAp?{*0{*z^YouB<*^>@PBM>nodEl8=n^PyGW>4id1*_+g?EqfmSba5;0 z=r#FpV~Z`*^qEG@SqdGC@0z%_WVS}Dn>>1}mwi%j;?;vKCFwd1SB^#0d~Xaq@4H~8 zvAcoU>ouo7N%~DJSzj>wL5bNtqlQD~A7_c*4sW?SQJmL)``xMw%RG!Kdpsl#=WqP) zs&; z>W0XGM9!yo6VmEe-gPMIx_4r~;cniU&*Y=E=5hNTTlj5lvfzWBm>oRTr+uy3E~H(E zYEM`C^J)L4wF03Qvg_{#ikysPSk%(7Iytm6DUP8L>%SO$g$1_s-Xj&$Qc#)S(no!e&3JLhO#rs{sV z*4`i~JN5P4yG=K~JY2nWdj#|SkG#zdXZDAxWj~2~(Q$U`0{=HZyl14Z;0pP7GvsmS zCuLr_l07Z|-t!k-|c~9+W+7G zuVXXAf%~VP-*}WJ8Te^|xLl{q`GD-k{XfON9GWC8x5M;u?#e2OZR;$&XLwEDIkmUI zV*l0$inA`2-ubD#?3Y2-ufW;aVzL=xQ|6osG_o+(f3IomTw{3Kvc|j3?}CZNtqlKG zoydu+<&MvNocZv|C&pRv0cQ?JOYKh!EmUYv{}PW@hkMgk`~9mbDf3;msM`3` zrpe+DI-F)Y+24A#Puo%U(Qnri|MphR``M+d@b32|Cq^UphifBx?^{>?@ikr7Y#_Eg zZN2BeeYsb84cE)_uPpd~q(#4^KYc=g;-(8fPtW(8aEI$a1?TJUKF&K;DDJ5;toFjLJ`mhAsNZboP$B$GqR+lRhtX zDScYT@`6ny#6Doh`kTvyGxwYg=HmI{xM!*kPvQ9)yRCB{`>d5vX8Rl=x!>I6dHP{V zuM=7)zQm?)J{+IYuHqad=hq_I9PY6-wLvYw{_WYr-@PYz&o%NmI%UzZ&{MA`9(X9D zA+PyYO?SuC3bQirOO3xQ4mj`C-kJ8%Z7z3s{hXHcHL>T~bGc8mtV`c%Fo}1w;os!N z2VX4b)c8NQMd)3$YIicnP1*UUmQJ6}ni9S~g|lV#U)Nw?DGJ z5PwP1chk8SK9_x8NID%g+kb4e(lwXg3Ntc9{Zp0B-QnRYWvcMAI-xOfAFIbTZ_n8; zk39WkVX#FqDyhG62TzKz?3JQ-j*Cq;zst#)CbIF}+FT*CmEp@)YTVer-=pDNo=%8J z|J64+9$lYywPl2^-L#ukTJX)yy=}@9%~-BF*ly}tTqHf=@86S^?rT4NJ@ciq;pmQ= zfjt{;FaEgqXy58br|XkEiwFQ=|`t{cy5qhWlptLXKlW^p{)B*{A1=sDe=eoCVlj>W2(D?e2DXn}nXZhK# ze{x{u2kvL?PvUnO?l?M|qdmzbdpX;&Z=w4RKK}Wf)!RRtXN~NhR|J zmEo!L*E!l2eVm`pqh^x*sHI{4>!edZ#k*1`ELY=Xeq39i%zo?t&)(I70p5&E_RP3T hCSc(N1`UiLipX**z?+o~q?{25LxJ=RU{S}w008^4RhR$( diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/indexaccess-all.sol-0.4.9-compact.zip deleted file mode 100644 index 1981b82f61df287e1a3b1f7897b51d64fb17c582..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1292 zcmWIWW@fQxU}E572q-QHNj;+cIEICR;Wi%wgE|8PLuOt|YDHpla%yq0ZemW3UU7a- zd}>8Oeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJ|c~9+W+7G zuVXXAf%~VP-*}WJ8Te^|xLl{q`GD-k{XfON9GWC8x5M;8(A6(_ z>9s#EzCRA%rC9cU=i~V6bwL@m-4>H?JdwQ}(^u419Nff|w7Kkq&-{<-wdEV^uPWA` z2@!sbxZmlyzl?=Zu`9xS9VOE5|jRFS@7<%XiJWp(I3ONs{d{H zo^+V0X+r0kW}v)5L!`leh?4M=;mB0s492hWN|`(*D4Uwbc^@XcJkq1AD^cpY&aZeX%JJE< z{e&VlFL@wnVWyuq;L3r^gQRQKf=d8Y$~1D@zq9i;cBlPTBnZ{9TS}KjU>vj=u_8Xrq5-@ws<5^Eh8!3JH3v*|C&O zSV8^n)Spvo=f6uRnN~V|h?E)3Q8`4J)QQZ%oZqaVq;7sdKO_NOk|j8_ad}drp}JoUz*V zKeLrBf2MER-;?Wn)2ntyMi?4>PxVmv*0CTm@E7oUjq|IlCLlK)F?eJ9XZK-*#HlOF&H^J}c3bJ}~oad<4$y*$` z**SN9Z%5x8+oTE3%M^P3=l^P6$`-%;PoG=Bf`fm=9sm7zTfSI{eY>(>o9{G>zhCFe ziW>;dm}3$8>8vC7o<=RD>|;{;d5sp%tDZLLK3fo2Y|>w|RV!~oUtrE*Hx8>KElVTv zw*I^+#d3dPk+qrD5BI4a{#%cJWV?1^PwT{tefu68d+qN|XDc*_+IXRIO4d{3S0;MO zhab2-mHX0l+o2?;Vx}kSx3K;>3k6Cu-m(-r2N!R;I@$R+6RVrl`irhlRpKlEe`@8k p2=HcPvS-F!L;*`FFlb-|QA8G40p6@^Amxle7z(5p0?RxG1^@@dTnGRF diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 90b1ca169348dc8295531deefa534e51ab83af72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmWIWW@fQxU}E57m{?R05+&$xT%U=7;Vl~jgB}9|LuOt|YDH0EUV3U`a&l^Mv95uh ziJpO8aehvGYDGbQQAvDaQF2CRS*l)Eaef{r3oAn`149D?gKbAgy73?5!iAU4ZL{W` zb2Kkgb-!F|Z;+Io`g-o&rW;=#u3ox5g8BYO-sXlg`$N^TpTxcBIJ)w=1&v=v@X)5YG+>aVOe3TXN2+a}aeD9m)| zP0w?Kvn;o*8_vi7y6R}$@k@%YtR`&VC5F9Eh1Bmvhws!q;vvDh;t}tI)i-WuEcsD; z;m*CzmhPJV@BcZcOB&t0dwlWRJ%`xe+mx?4Hru&> z!o$AO^w7;(ew{p8ihhC}yI=FK-|V~T*XuNo1;>8|9bUchOF@h7_5BywPdz?=%CPyW zP|@18zc*gg-YBavN9W`GHJ3QPhp*RKd7@9s(Z@hESweb#9-p2 zeP27gE-Xr(o)J|&`Sa`TlbKZ#ChphyHT#>c?nT{d!wvkEhp(>oeN*fv*DEZ~#^d`u zjPu?)#*KSe-fgHo@^E!RSkZMW#+RQ9Chz;iZ~vcTp?3TGWslhup8v01*T@jy&B$cW kj63lG(;pZ#FoG!3l45{2D=-N&FfamP43Mq{CTa!-086(}t^fc4 diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 9ac8d38e31ab64139588b752b1e3a0d65a514e49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmWIWW@fQxU}E57m{?R0ax`t-d_5)xhPP}C40;R<44HW;sTDX#rZk$sTBqJMJ4fxMadbNWvO~u#rb)hEUXN%3=9nn47ME|>BfJI3m0BGx6PV& z&e6O~)%|jg&08n{Ir0xO(aK2VzS`k!QM}*h2CJO*p-#KL$DRM#auLq0BU221oG#^mR=`CQv5bMNA9%cTm2Q#y_( zz>7EPY zObUL@FZNeVX2P-3)5bdv6b2l7e*fdtow>3l+n9XU2t5l}a%TOMC0Y#M`tRt5X083* zcGXjP%7Ml;+!N0mFYx)W>GtXxg*pDM&6VM1VFz;--;~|%b?<19-P)rnb`racr*eq* zPt3YzqT1?FGf(K%ni>5`irnuG6gWGV_V1r_*1nMC;`vRFE?(6*aerFN3;kWGbrP)R zyxPWJA1TJQGk*zv^X+_V{-&KUXWX8iYPePhxqc<;{bkhsPtJDsPpti7}A z?+(Tl#mmoH_I)h8^`Q8|i;B*@zP#OHD&GzA-Ab=|Jq^Y-TMHppi$?D4krj@ik~ow@q=LkrgcZ$>72X548H hnEb$?fe}QJmJ$QJS%E2-fq@YSV}NuOFikTs005q_N)!M9 diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.10-compact.zip deleted file mode 100644 index 7285eb78b15737f4967b968e64aca4bb4d884b63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 824 zcmWIWW@fQxU}E57m{e2{61penS``xm!z6YF20aD_hRnQ_)QY0Sy!6z>28IR(2HTE~bmKq9g$pm8+h)x> z=V)H0>VCP_-XJME_4VAlO*g(gT)lLA1oQomyv+?~_J^uvKZ$$Madzth|2IFpXQZ#- z3i)?4X`BW3*Sob4T-29(+DJK_(ZsU;l2avOs26MqJmg z{e4Nz*}Nj>zCM|^wI*iQq14mrr{&f@mtFfy(nex^*~%W_ejkyK1i+ zw|D5{xR3wd+E1=Oyz%>jH%p9XO8r`O$TTRhLdNUg^}_8eDBVRSw7PKVG3fsW!$n?s)5dSsxx zF{jMA!}6TwapQ9D9L*_JiP}MvHtldKUvwbaZLj>rEy98yfABQTUa{0dUGSKET#43Z z#T^Axbekhp6H-^Z2QCY6WYX9qnk28IR(2HTE~bmKq9g$pm8+h)x> z=V)H0>VCP_-XJME_4VAlO*g(gT)lLA1oQomyv+?~_J^uvKZ$$Madzth|2IFpXQZ#- z3i)?4Jb;Mfav}8XI$K0?6su?m7}rOb^vumg5)p z|DP&f+Wc2Qa31&b&21lV&-u<5^)RzP?iW<4 zAMZK5w6Vgze8O{|Mpb>*O`6Lm=A@UgvT&EH6}Z>nm$!8J(M>T+p#)=J)7tEiZPh(ciSdZr#j(8>f8Ashp;f zd?aGgg>4VqE1GPzD!ymtT)Xs;Ynx2u#r6l=I_E~r>lOaBv!$W@aj9NN#IcJjQ|}sW z4(rQs z%@>}{TA!<$z*}8&>A8~L(%OvOQA^DK?>K#_D8QSM$(|W^dIlzGFlb-|QKY5r0B=?{ RkS<0bi~-W;fcb=h0RV*bcq9M- diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.12-compact.zip index 62b2fba2004e44db6a03f45f90856a0404939c86..745e62e60163ad055f7fd9bfb266a43bc4fdd8bd 100644 GIT binary patch delta 733 zcmV<30wVqX2KELQP)h>@KL7#%4gl-5WLAVq;*q!l000z`7g>KF*K@rVG4V$ag{75V zSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!KflmsbGwn4(f!<_NYIKd#$2{1u5uD5zW zNeq|Fr;Jh+m8D^*PCWjp&Vur%JnV8?8=VI%;kcx37hGt@!VZyZJhRX`5`zZAYk0Ce zzH*|I=V@zMv<`n7Hgfb(SNqFojyEj0aJ=l0thWR8f3(av$!qIs$}{-p!RY!eoHJ2D z^5BXNBtXTVJ4#m3=fMw^e7d=Vz7k)MH_}`<|0&X(RYl6M)kWPBAGH(@)M8tZG0pg6x*}$GdVFLB}1d?5C_Av=rCJ64LFiA%A_Q3^bQ!NT66H9;OEYYKj8Mg}!CMf$U?ER+VMpi+bX6 zPDrJ%!f4t&XVl|Z=lcRy-uCCXX*1Q0tlW2NqrrnV4T0lFfG$!sI(h6_`KSojnF6^6 z(xK1>HiT!M{38V%rny->xG7W)GHtX0IRXP^#f*P`R-9TvVNGmo{UEEK-@iN3ZLX{G`;2g>RQ}T6f~b-T}An4D%P@AqJhC(f7?%M=C21~yw z=43LlD+>;iUbi_UfWxP^?%%bo6D>Wo{9nD&P)h*$PN7gi7L(xB>tG P6q6+bQw9VB00000tZ!F0 delta 749 zcmV@KL7#%4givJa8zMy!zRE2004mr001tNF9R`=OeB9NuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2tRO5;AC4gnlME2jnR|3## zbp055g|hgTs7gYY7Vesld3!QYg!N5^5{PjV0>JXc0W%Re1Ae7o-mb{CjplsY)ms10zL8U7JL{EL>*9&N( zuAeDO9XWuTS_;NT;-vqOns<(^?5<>zWj0&c?32vac>Znd;vi?BBsYIG)KR5!QcRhd zK31!k-0W4GO_@I0G^@L$c%a6V5Amt)i4A^os?Gm*Jy4vuGT}yBR$vbUBYw&3%NU7cq)Ii=FI}4;*?=sugjI%@A81&0!A|>S)3Qm-*c0^u})fD+#JE) zlR%Z_UC>g*E33w7MwLxSs#;$|eJ`=Lwm2e41d^Slt*u%##|WwR?jk!l9DPt|v_jI! zp)w=1&v=v@X)5YG+>aVOe3TXN2+a}aeD9m)= z)6smZ=`}H}&ki~6(QOJ?ed*@Kl@1GouXcD_6z})B!78VHsMD_Rap!+Fxw4qJ-jLDUuc@Hmt^W==6%1l`CffAl63Y~yC&Qe)9+NXGs=B}WLj|Ni}m5I6?1|Q?ziSH zxc%yQhMcqMHksqu;W3w7Cbm5I8#dvGU8==%Y5wJZQ}?c737>Ra!Hi|8pR<64QGd0( z&&uLSa+1%Ni@7uLo)!{%9Q|gqhI3QI!~gu(_PIwF@jlIOX!iQWojrN+HC=x9|I8_& ze>$GO;JDbeB~AR}feRPD=voRUaoC<``Ko(6nsM9T_7?@am(=(ks$aW2aE|Q4U9-#o zomh77V}7k1(=;#jW2?pAF?#SQJyr3KK4aM^yS(XSgUOHNm$nlxm-vgeKW2aWNYLc# zSEF4)(;Jz^ekRnLY$!iHW4e`T{$!I$6Ot~>U*l{QQ1^`E!T017oj0{{R3 diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index c615690da4f218e2418f1df9a1c4258d32dad5d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750 zcmWIWW@fQxU}E57m{?R067pUCvjGzW!&^2620aD_hRnQ_)QY0Sy!6z>28IR(2HTE~bmKq9g$pm8+h)x> z=V)H0>VCP_-XJME_4VAlO*g(gT)lLA1oQomyv+?~_J^uvKZ$$Madzth|2IFpXQZ#- z3i)?4VzS`k!QM}*h2CJO*p-#KL$DRM#auLq0BU221oG#^mR=`CQv5bMNA9%Q+%JrW0qs zk+tTUB601QntqZu+pepJ6Z5BD*&Fp+(}GR+rqAc7ZAT4v6+Sq<<8;HFj2%;DnO;?L zu_Oh*<`?@bCNtq!>1pE~2MPm@J-`2P>dsu*l5I>b*K7i6D*96xuN%C3d1z7Aipi{B zUp((pjEpH3JQ#9tyIVu=AGg=p%j3K|4s8AMcj_&sCAOnHBm82^>Y?#296@9+Ek zzUp4-=`-hDcYRr7fOOce7Zy_gf>f7mDq-R}VPUbWZM*ZF)HTdpJKReP`SyY+&y1+%xsH3xo=#C*(4ZG=_SJRaEXPZ&*&kNx%B=pM z-_g+fq)w@(vGdf5$3>i)nVRJ`7!qYE#-Hw$iQ zu&bAF$|=!L{oLP_ns-id&z}o!_rvtK(k}*Hv~a9=y&%)tq2O@;e=gA$h5&CyCVOVw jsSlU{!JvT=M3I&j1H4&*X_$e55eQ>|bPX_7GcW)EyTD6V diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index e156ef18af217845cac122b41458472cd8d739e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmWIWW@fQxU}E57m{?R0V))PBK%a?$;Vl~jgB}9|LuOt|YDH0EUV3U`a&l^Mv95uh ziJpO8aehvGYDGbQQAvDaQF2CRS*l)Eaef{r3oAn`149D?gKbAgy73?5!iAU4ZL{W` zb2Kkgb-!F|Z;+Io`g-o&rW;=#u3ox5g8BYO-sXlg`$N^TpTxcBIJ)w=1&v=v@X)5YG+>aVOe3TXN2+a}aeD9m)= z(=i^iiQhlG+ib+<HaV2CxRlLE)1|X&Jkx) zxO?#FwVxp>2l*Es4QC!+hkAt zzI;c=T?@|-uM(H-e%|s+ear0Y>qXd09B0)poch_;bmm{JZMJ?Eny)xyv>BhjvlGnc ztPeiCb&I@6zsnz^qu$>&4wSvme!BjV)m|O`S4aMzdG*tyb9$#5@4SOfp|(ui$KQu= zv8u}dV{kpJYRmU+50l~o#oFbqt7dSU*`+C1H$FX9b#UozKh3a7E&1Qs7JDfDNca*} zKHclmr$+7qq34$u+bW-)ypVt1##47n3%;3^_J-=d*`FKh!L`~=X3bWOn@N2Fe)7qC zS?0|x$++aVX~wH3<+Ch!f4o!VH1{a1UhTRxes*)!ZLmLDtv{$|bTu$hGcW)EKLALf diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index a3dfd4e7c709406cfe28a7bdb02f71494fc4c2fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 751 zcmWIWW@fQxU}E57m{?R0Vv}8c!jOr9;Vl~jgB}9|LuOt|YDH0EUV3U`a&l^Mv95uh ziJpO8aehvGYDGbQQAvDaQF2CRS*l)Eaef{r3oAn`149D?gKbAgy73?5!iAU4ZL{W` zb2Kkgb-!F|Z;+Io`g-o&rW;=#u3ox5g8BYO-sXlg`$N^TpTxcBIJ)w=1&v=v@X)5YG+>aVOe3TXN2+a}aeD9m)= z)3N9<^|k3T%WvEYF1*=hGXLMM=3`S%?3Vw^5PiW`>CnYY_L5&W?XJCB&AvG4c5#-% zKIH{(HgTt|zNGr0H8y++8=LfWmS+tYlZ0k{RTF;Ur6Bfimi9|aktbRi$zgA9H!WHF z_V>b1ADfo_cYGi#oRP6U{Cb+-!8KR6JT^{PlzHY<(i^$C-?k^O-1h0^ui#JWMv4|n z;rpIeJp6hhvG&>yg>L~8@tSV;@AFSsv?W_Yjloerb<=;TDbJZ-@6bJz9vqo8_d`rF zQ@*a++Bfaz3sk;ce)pcEBddJET9f)fHJc{_7QYL94+i#UM*Lr#BzZZE#d(X^y;V8u ztj>LMyLf9Mlj6T0-ILFi{^$F()8wYpj4a0hmXyUp8*JxQrtIjsnC#^~k9#f04UMd$P6pP`pRS(vtda@z9s@6?ErmgUDnlAQkR)1x+Q9#RA-!`F+LSd!@ zpN=hOY-C|SdGLVMHomGaqMuWUE-!=223vlq`Z49)#_F!Hc^k;T2} zPwZEB>FwB8t@1O_<>&WX*AoT&AC=kHdg?2(3mYX}Nb^5rbx2ht?fcGe7ANx03;VXZ zB_CGOP7Y7|@YBClZ0e28+WUAvPD%Kj{q@@(g|9b{lnCZJPkJ8Bl3BPVF8KAXr*A^8 zoo|-vnb7VKyLM@O%h7;e z#?42~&)k2OJz2B0q>IJFK_fR){AApr*>O`=9+i8!H~W~g(cS5DW}M*s+O@!~uJg9B zCG$6x9aqmKE)-2$ZeP%_ZTDe6`PBz+@9bUR{zbb@W#ak=Q`{?O7e4+}9G9z^%oN>n zt(RN+<*vMHw#!fE)ICt`XrK7xb@*og`H!MEd3D-d{^eOVLHX^mFV9~dyO6`yIp>GB z?dx079={yg!~Snc{W_ER_~NG2${Io6ZQjmCf1Z{n6h;<2{Tyde8|+gVU^Ol1fk$PM zfB0n+a diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index 41dd7ed2e305f5181e857190fa260a5598d0af82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 825 zcmWIWW@fQxU}E57m{?R0V$5;=UNsW~!+drI20aD_hRnQ_)QY0Sy!6z>28IR(2HTE~bmKq9g$pm8+h)x> z=V)H0>VCP_-XJME_4VAlO*g(gT)lLA1oQomyv+?~_J^uvKZ$$Madzth|2IFpXQZ#- z3i)?4MHomGaqMuWUE-!=223vlq`Z49)#_F!Hc^k;T2} zPwZEB>FwB8t@1O_<>&WX*AoT&AC=kHdg?2(3mYX}Nb^5rbx2ht?fcGe7W>asH1cRK zD|j5n_>a$8RKfK}rNcqLU0<&`>djdckR1Hzy}=*8>M-pPsSbbF6TU|qcN&#m4!v{j zG~1@N`#x0fiSgiOx&60sec?I7%J^S*r+(dTb5Hj6+8?^JXW6gaFzdQwi)TZ_?rWi2 zyQb1<@fysM0Vvoe%v2%-PFUO zW8&fY6MeYc9d&M8VK~RS!{uLly+xCn8m^+>FvZ|b&Nm+Gq$(|jUDX0*Jmwy&7cW**{I@?`Z? zuAjTE-0c@R@8_gj(lSrnZ|#lkl`r?*ab*3YyDKO?=HBWDE>T~4t$O;Kv#kHQI^U^n z&s*yJ=GWTE%eJrge5@$E>sw-nhbXV_EuA&|XWCV#=oA(3v3=EvFr7Ga0_WmV@tBs% z!pXcn>L*`s=sCIB^_D2_tnA!`<4Ybdc-5)w=1&v=v@X)5YG+>aVOe3TXN2+a}aeD9m)= z({bC)3hUBkmfyG)TzIq1Wd6Th&Bvyk*e(B+A^L)?(xHo)>?OZ$+Fg6MntgH7?cywj zeaZ{oY~oH^eM$90Yi#%uHa6+$EYBJ)CJD{@swVuxOF``4EbW(;B2Tn3lKleam6zSv z_$GXAxPy(fcj`**cLyeN3BA~^{KNmU=DXroi)>nU9ol#LdCi&&Yz2I>n-{Q83Ekpt zA9>ZLBux5LcEN_1r}k8L%FcG1)o}6W$A=fUt%_lFep~f8$R#qika6GU>HJ4s#3O`` zuuZ&h&}?myOKa~Ukpq@Cf4|!7aXNlVM((}LO1p#nGwtTdd+rzMS(?)BA>H-$WBufc zTc!&_U5@>8J9MOW_U-g;}tG`+p@zX2dTyOu> z7{?{&3#HY5%zWrK|8sj-W1qvpnKH?Sxl^A`S9~^Iym#&)&x@-n7ksQbzg6D5wah(f zg3_!7Vc9F^X7#>s&pgxmal6LBovxnmPKh7*;h^`8B>a5+6s=fHxzPJu~iP3{1&j(7*_yNK4cK-mGjOU5r2&1Eh}v Ivj+nM0JvmuDgXcg diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index 33e3872edc6f3939a5252051dac7ef6d7e17fdd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 824 zcmWIWW@fQxU}E57m{e2{^3yNwMimnS!$ful20aD_hRnQ_)QY0Sy!6z>28IR(2HTE~bmKq9g$pm8+h)x> z=V)H0>VCP_-XJME_4VAlO*g(gT)lLA1oQomyv+?~_J^uvKZ$$Madzth|2IFpXQZ#- z3i)?48S=uixMV@G7B-@rxyqTII z@zP?Uib5=JxcFoJEBOz@&v|ZUW7|JDRoX}T+nUBtLbrqzojGz;);C1i)cEJx^YpUq zW72MJ2{u~Oxaa=EQ~F!?r5#==!WOq{)|Nx7r?5J3wd>m+TN4{5=#myTZTXT-| zGp{_$J6~%jS$JXh+>+EFVS|`oVMmi9gBG)F+q=ShSCjpwg(*@O%o4m`Ca2H2)3R`l zXx1|~mCfoi3*r~$h6>N^Z7NU}y>q*P`6SQbqgxKUvua-bweY~2IU2sNCRLm7!brwV`%_qFeX>?@JBtbS#s6bVRpn-RouU zS87&qyqNf^?4n3~*~?fpwUS#)p8PsD=V86zaz#H6IcJ+%7B`vm&wuwWVlrjt6KxUO zcVs#LhfT3FswH36zq3s_nwPX9==!9>oAFiF$sWn2MHzSihGwyT@Ov+%;zzCv9OVt71tZX1%j6fIzq>lmf H2Ll5D>X>Hr diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 4cd5178356d62ab7bb432c6d68d0d12c9fe908fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797 zcmWIWW@fQxU}E57Ff1+z*$`_H;K{_mFp-^s!IFW2Aty7bD6yzAJ~OuXbn!b|72S@X_0nwP1%U#_(`NXkxqJ@;Ie&QJdslag=$8|PP3M)u|5`1#I<}~NqH8qk_H|mf zR=Bvo{JuNl?$1R5e0xs@7+Kuoxca5VblPsQZs5dd#qhs&LneUn`K

#MrD{p?UhL@b8O+{lbtP%dDh$5N1Z122hg!>Y2L25l+Ld+F%cSe$?jp?MdC z4!exmvUs$zMF^844#qXB(b$Ly2^Qa_nJ)n`elVS!>t7e3_zeVQ#g^iFyIMTBT}wEN7!9WZe?`lTQk{-6I{8p29HQO8~VXOZZTQ%I@5S5*~VJ* zFgbSAaarVq>=}Zz21S)!Rf_TM@WWBf8zuaC(BSZa3stifGbV+|)Nj&{(Q+l8w@}E{ zT)byoD$j|@_GNFRKB8~`8+05nM?cf>y8e!)^RU-#7T8qk7-nI`93{ae>rV^TOiSE-KT#1-7~n~sk3)%c$TVQ-`-rR)2G7Gp&;oSAlziv zqWFvMk-8mU0H77@r$Y4|DTQo_WUPy$TQ53E7$39qOhvG7qK4pk~*@AoAsg ziCU6VGi)t(gk9AaE_Pt0piHiW%T-47c!n|)5T zaryC`OvdtNTICfRNQBdF<#CXQ=uBINb!0zmnST-+Zo4W@Y}w9@nzA)s-jkSHStjB% z1TWMEfgCoM-z;@V7f5@5G=WvYNSwN8#Q-36HShUH<~V~ecs|Q+m7}dF&1a?Eg7LL( zmcgLb+^iidTAq%G9vDYMgxmG0Bk$Bq9dcftX1|ORD7yG#r?cUqm-6d!&nfH7@Om^& zvh+1C7vzJ`Nh>$S+em}$vxeA^VR?uNqG32;W&Mo%b|8*#VBt3%rMf6Nmrs^i|BPD- zp^pZWC;|bVt)OOfP7F|IU#>qnFz-8eXQcb1V=mK<@_7^@m!=}(U7f`iQ|PL{7&tTQ zkFsO#!kZU{3?iwjVwyN7apJdN5?FBCe3DxWW9WvYI-xk!Fc~LU^rF1@W8%7%F4fAD zFhyAlhu<7O#Swv3iX~gDCw$CGetu3}Y4DR=I~*7NzWxcc*BhOrHG>pls2rbceR^#T z>;Ou4q?#hMz44_8A;r-dzs7W7BRvb%qkb|6UO?6Vp0eC}_28^SgxL0Z!z$)iCo zOK?QtX|-N80FS%A1X?l5+qLse%xV;gyJn&himgc# zv6$OGAb}B5ME?$~Mq9JizI(AssC8ZnvlEeNO#K8lU)48EHIn2vfwtJ^5AsCf)Ffyr zg-vx7Bd&OH?S#O4JYhbm@tM_nU8#ckQRHhX1gZmR0EH=ORXezw7@1u&-&YM0LDInE zgIlL0;<;66E4PT3+!|_YP^HLg zrN5FwMdS3KLDCl6bnnCU>KH*ZiVdXA{@<(~$@*`i*#6A_A&W+FaQ^wR9o773Zyf;* G0RI3C9;n{{ diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/push-all.sol-0.4.10-compact.zip deleted file mode 100644 index 06097b38df7c287b0584c61a2ce6e608cd4d7c00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1581 zcmai#Ydq5n0EYkAToZDTWO0^8F69=v@B88T@_v3^G*Sk10FVYY1Bapsej1<(#VcR{n9u+K zJpcd*G0|bBArTQ~(UB3sXW|HvQKaCIsMBHLv1iQAMMvTlKw#hm03-u|V@3wf^1CIm zYLvsUS1#?xhZ{VAP;)TboM5d=J=SePCgoP=QJFcha#}L$!I53(`9Vt=?2bwwkpx+U zt5@_}=N;-7G^y5A4Cj?SUts;=IEyq(FI+kPinRtO_B*dBj=iQEW106G$kN>}yNd)R zS2GI`FUv3P4bTeTSjcpS1gbaMn5PCV-ou{u4hyo;RR|fLA61ZUp?DjuIqM&@?lsBk zyX5*s4oQZYE8^*)DoH|gmiZ2*Qt)zLqi2v#b|NluHaL%=US^TaEonMp$~YG(f<%4#Q0%F(q@mzVCzS1ZzdeSemSZxmc!7}5 zi5+P^dGZADYrXw8{7Bf@)fUNPODou!M7uQqf#SE=XXivCtz%BR2cD=c4#Ai|@_lVRZeN1)mtLX45X*+lA z?U4I%81eKFxgj>Qs^VfjiSjwKq3B949!A_$eW1vr(7=L^h_hY&sxkaAA`8F@vQaqI z+fR5^?9|u-nZr|$@MKVtRZJS!;c77BRMOZrrrXBG+4@OMDjkb@WSl?4MmR2!GI|Y{ z^wZPM%Qr zjO%T_I}a|lr3q?jT*e^3VJJC4k}>nGZRw$D4bT+_}*W(%I98%@SH+ z@*kc`8-84b>QeSL=7~A27QVr&4FUcs`%9u|Q8Y;XSRqe8kuWIE-qkPC-*V~iMVcN$ z-sSC*2ZJ8EZ0(^M7wxFZ?l_UK3mY3kaHlM=C^6zZ_^jSdFpXSb-_sA#3{X_lf!TBx>zq2i`Gu{aFiWiV9JA#Kub4y zMn$mPjcbR9;a@G4-u#$zHy=#;6Q#th?3b;}^GEYWK_<_VcFjlLQQqvX9K6atOZ+_~ z#q#avn;Qkz*GpsUR%9&VDE;bn#c(Chol^PwCbA+j@k?jy=AL7LugQ_|0V{5*N>Erw6#_UQc)vC z$I-c(hJ^+nz{|PwbMYioR_fN0!6)rs)atb|{J@_OOfOsane;(}td%`oAa+lm@ak3`imhe4s}-rzGuNpUKt=UE!uB${FiCWd-jTkp93!y?O#miM090f>0M~4+TPBe$U*uHGqhj z6!q>K6rm-R5*WX2j*hB!t*^=KDYws+G2&@Y=d2HYzl26gNgt5;ZD&MS diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/push-all.sol-0.4.11-compact.zip deleted file mode 100644 index 6cc0e405b6d8dce712f5430b9b4d2fc495ed229f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1614 zcmai#Z9LNn0LTAkldzQ>9rKi!bga8u9tvq^JF?0$!VEDQwwQS+jVxKF&BIoQJhb8@ zi@Qlvs!tw@IOJ$MJ;*%9E>9&hk6qpS``qvM;``?J`uoG<)WL252!H{e33T7W+C3+0 zAOJ9E008Cy0ML^XqU^$GG-N^?Ej02BJ&utW8pa?;MJGohV-n(GH-jNSFaWRsz?H+H zpw>|FH~OD9I73U@Vxz5^OxZa;MhC2a*M4YUr+C7wyceJ@{{X$f>TdEwP{%{2I6ac< z-qR{v5#^Sa@5U?7ws*I;RtdZKWxb=_mtBW&$cu#^iNoD1nE1AXD_SqcD!wBZf;R_Z$YuFb3Pdstje@LvJ`QuENegj7i( zG=5}4Cjd2a^q5()4_7POK9V;k%Pz5Vzz8Ipo6~Z~;Q^2T-iwaK5+KJkb9vl3!sM`t zg`waBv-br49HudX#RI*au$4zR25)fek^3f@H$zr#cFea-3&f)4u`mj(OiTEEl~Hgf z_RneY(x(Mk)+Tv5jFJ z1b#0D4`L|c^2#7K>9K}VHOJpHYWz#_h>YLrU@Eh&a6g5FXvDXmA$ewGkJ{=8CywFz zQf^x+tnsawoqe_g8s4L~nXSCT(2_5850@JHCWc5c{E+&!9~~RZ8`M!(CQpZCIcAvO z=zPZ%&lAW)XdP0KeH*)A(*&`=+pcLeXsnKV4$COnmDFjc2jS|*KjQWU`T2{}FAngR z@P}U>6lZg;=C^pYrkpg`g48-w;sCbddA_|osckgLhun>(JI=s2)(uP&D!+wXsgF4x zXAE;r{Y_h}D;+OMMHb$uc9@OI!@RnCHKO?1+2_i@BTocjW^V+~+%jtV8PaN^{tFqL zAZ15v#T}2X5P6`8GbZUTM2BeeJ}bSx+u!fMl&{xBd5$M$S9oyiFMV!Mu9my#+J)pj zG`6k|R|IBf%pd)Y4C|kGP!8&@4XDz_5ch`VxEY`nO(^gCDDvz3Vf5=o!mbQFbLCv@t6U%d;Y3@t-G^{GMw9q46)#M1wdO-Tf2O1^&7+?&$vl>E?2>Hg zhdrmc2R?0%+Og#2%`lE~GV|5@#0fx)~g;JUOFzzk~L^SRX}k0jAH$xAv2Epk%S z75NpiJZ4G#tTIZ5hGpd-RW{dJZq`+gqUPKjACR!8)*Pk#2cdO|`L*2`_X#ZXTE__| z`rdI1uL`K<9Z*!BDSST5i9)t9j$+X7_4}G2&gbxb=RJxmXb1dv9!U;Ny+32Tz_fj) zp#3`ilsoCAng-)+Z1?%4an8J1S4rN-V7IazcUxM4o0r4eJR3$*KHKvgtWOPHNQDUu z2B<2TL}HR~H_v?&65%YN_d*`RL1PLJ;i9Gm_3gc)TSIHYS4J@vV8onHN>rNNxTp9u6;IwyD-c#)WX+xHZ5y^PT5(9+ z$W{uLTl#SNt;B@(;EvKUEP9_U?T-lsHXN-t&?AdB=eRRDp-?Jd$bpqI6CTmTk^9GMo1G%aHx9h*?{@<|FzT*GPkH@KL7#%4gl=6WL7NSbq*T`00873kr+yUAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH2PXKvzYxk9L2(<8pL0YuODy8ZXXWN! z>l#eK3bp0&+j@kGbP7MGLro3>^YH$kxUzYB7vfboTT6(XNV#j$a`Vs{rzBt?E@OpJ zV);AgCovxj1rg7GbtJYqy)z?X`w)pj_knz?6eBi09n)_mu)I{gL2}_90VNJ1%=4{% z<3VQb9TxsFq%zE8D>CZ=4aOrUlM-=g*;$zBi6y@+k11E%&^^|Ldg}c4VwF{*-$dz; zW%IIMKvypN`c=c-d^#7=x+a@qi3fbPZ^bSo=@(s*htWoVM=nAoZJ(X@1Ka}Q3DY|l zFhz{I_Jz$Q*2$OzB;3>m&p#lBo&?ed1%Jpj#|d87Kat(U^VMPsu1`EbmiBcZTXs?< zp)cwJN0Yr|PLmdEDh5=0AB&~DCe3>25;4F-G-!z+iPg z%NT>`VcTM%BqAy4qKXm&DP^yiPC24lL}@hz;7Aj_Rv@eBbdkBH7LnMC;<3e>>a zebA%M3@AV6pey<%k=7IsP;YYe(zsH}g1x-hl^{KSlk##ou({4Ek_|0 zBSoTL@;eT9?s!1q32L0A3|Z!Tk^vTcytpR7R3Z7he_!($>N;sTjQHS6896daUQUO9 zgl2i=P5?}9Y-<6TZm6g0{C(kT!WWx=CI=pt zM!UY2b{7A*@bgALd9PT4Oblq-sE_jA{gt{|9I)np3!<|lmd(Wqybh_jkG{#5JrOto zb_Ffz@GeHJ+{$XK=Yaqd}%GxDf3H0o3Bz^1|48 z?mE>BlBcr!{MJN}9mya0SD+k!?ppNo4^wP{DMIMK?sV+xQr$aw)F1L*)InwC?;hnA zyqZd)zKjr&3lWj>K}32`JgYfuD4#_v!_yJVihh-@O*)c2qCSHwttK)vBP5_Bi-A8uhvYc3 zY%_)hqnz`{@*jsHvwkOKL^zal34-)^G3D4)KoP z@f;6}93i45X3d%$6VSksQHO{RoNH_Z%`5#1j2)SZ3xP=k1SH8GYFZ+DsAed}0+^!{ z%N>0~%18Htgl4SEb-mH8G6~svB6vh)%c2sXB}9EkUo@BAC#AiAO^WxI*Y?v4FglC& ziP8z=rPYQKVULI(woEc;oL)LO&mUg)(MyEVzP2u)E@lNK70DOF?-IRSzcoJn04XMx zG9EjCBC8^t7ZQcOgQju832;!9&n0`NL^xFH1LK&qIW0lKz&auuzBync>xv#gsuNbS zwb{I#@K9H)D*R&~|Jz|#zfem70zU&k00ICG0PMA7RxICj4jTsm0OTH%6$eBHSqA_B F000ajbj1Jw delta 1772 zcmV@KL7#%4gg4Va8&0BMd7^$0065Tkr+yUC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*+|9as}QH3%aNVW;>?ph-b*fqm-1TR z%=$!e#X$NB)8nHnT*JJne7(ApuJ?OZ2|WL+3QA6sspLfY9SVFEY(%JPe)PdLVCebM z+b*5>^C7SYBt6!D9(g-5rnK3K8UCM(fJ~TG8~K)7^|A9E>?ML{3=J$FNfUjBN)0i? z{skR0xHLl@^~|xZoIwr9@JDu&<>d0wD9#h<8)f<{x<5E!pVyS5A}H_qt1*!Gcp5Pm z9?w5@o^Q(Dbn}&2Sz4hX&Q=lqgv^-gJ`uN`%k|J(YMYdQ@NJ5|v}#75q`~~&nFsF? zkk5&qo%~XDmTgB6@8A+h2PK=2ic;obNYSbMNT?Lc66jXqB?W=ublMX4tBX|Li^!Bc z-}(UwG=uvRbNR@g!U+#*wzoM-74gjbW8w=^7=Yw90J{B2Kr3fbM#NBScDoPp-;ws; z%cisgp%zMiv&g9+C8MW#D)bO<8ZKFHMt4oE4STG;eirB`*k=B2c5mN__!F~eNPbda zy2RI<)D2N#vqOxykCDUtP26RlKmCy{29-a`W4`hf6%=GR+&+-F83r)h!^9-NOESxB49 zxvILJ_b?k)Jy8A`aEa^wH{$^P>}&)b5;U+7ZnJ2%e9o7Xg(j>zl;>gF>CGD{qGweq zGzEu}IT9F}|13-DbpU!{iF5GVAGHd+w#v+}#)0Yq9`fU@bcta8lk-#StlY z64~2-lPE-=kY^;6C!K;7->ng1hKdm@e(Coq7UXdqGKpyP;h)AMKogR~;KP zyLk`Pofonz84W^U`-t&mVw9#pOEdg{bPb$;PTcl!aj8AY-rDu%XRt#fozq1}CgIGJ z^N~MR@u#*+@kp{&6z9J@?j?RKcGe^*EJiO_Pd!c8dL7@t;EB2rEVVm+#8Yje@nYzZ zLUf-bm_7FtJhbFUTk=-X(c-fd4VK+02i<(|gq0RwGAZ9cdV8nGY6wGGr>S(K)(r)J zm)Lpj-w8yNBQK#$@jj#AZ~^ z{t#_*-_OV-Zq#PQ<1GF|#5aJvn`E*2-|@1a0zS0fjZI%Icfn>FuQNdu@zN6|C6LU} zyY18k!kPOd<%khZB;&1W_1EA%9bVbC- zl{|wzl6}m7C>QVC!yG33Ry}*`Gr1-K80u|fD4zi4sV<@rT-~Y_*UFcFp;bn0hRsG0 zB=sC5_-tG}6hkNkFl2RCGv(|;j3_#%A^vTDKD8(z(!JXy((a+gBdhYB(29+NUuZ=F z6%R!`Q7!m>PC701bB2_aU4GGjhupmdbK>tv>gL4icgVBrJ;tF@+%}?g3PXZWMSu|P z!=G4X(M==pa1DOV;X0m$<$PBWMh>E<%3PffxNHl=M8vad-MkQiILNDVLrskWqmJoU zn0m?XcUfBEkYp(`lic-DUS2@;NCc(wBM5uN(W)<)a{og;-E{RyIEE{K;R^$I?P$HJ z#k0CKZfwyEGv@MlBYzw?A{DgvXys5RSXK=t7u+F4u3_tF&krv#%Xr4=<+M*P>QSg% z(OKUKP_tHk3fBBmGnjq2wG35*-lB#%(fNa__MB3K<1oO_{WAz0qQVpsAFl4KlBcVc z7ZzwdjRZjzE1QxzZ@_+TPX_Wpsig#Zc5DWskbaY- zR=iE<$NWAn-08WQbBAsL|2jX6LU;ahD2-4{0Rle*KL7#%4gg4Va8&0BMd7^$0065T OlXC||2Kxp800017e`)~$ diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/push-all.sol-0.4.2-compact.zip deleted file mode 100644 index 91f9684cc084c7b26482fcb7ac6756b9192bf696..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1467 zcmajfX*|;n00;0to0})O58jn;g|00G6_b=1mA_9zR-K`X75GQ)G|SKgRd3;= z)|wbAbL_{)l#=~;1ccEjtrB_UQJF*P;y1XJ!Y5#+jT?jb557r;_V zkKqer)ABBU^K>Plq|0fIsU|tc{ul+8jZbP^wX=5~mbKwCBa347*dVM@Ik;u5+!hvD zd6XBEC2g~f6xP^xNSIG^^qM1+86QMmW4^7o-&gE3`2nw>r`!g05 zmL(xN@NWGzU1y6yw^R&Bu5s&0Qmo#nToycN9rfs@H5FphQC3OR&&J19Fa@R;QDfRLoYqUNTTw?lhIWzlnFt@F zX7t=!dHv?%w}Qq{{cAehYWk+`6NkHJ^B`MJ$}zSTX`pMi$+v_P zb!vj8!kA;#WY@P_nGFT(~=ig)1} zz&$NEwX9l~Gl+h{u8pH1BRUi_<>c~f)R{@vVOk$r4{k&@s;{H0L`aWs4=<(ib7iG~ zg1IDAO9c)om|TUbQPZG4)p~cHP#jU6VGP&M znObB|e92OH6pUn1J2E6EZHt853nA$CCFGqFbyy1GAwFQ0Ep+>-K`1rq+zMk%x%f)? zk5h-|8))>wL>kxRaGIGiUUn-{SN^)V!N~9kZsL(QsWHie&!S#2^ z7|+!(0^?|$x{g%e{3Yh5+J2r+_K#0n0D!SzV>bZ(H>@YN{+mR$pYwmrVk|f~fBx7` N`rFCkPKXA8e*h7@o?8F_ diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/push-all.sol-0.4.3-compact.zip deleted file mode 100644 index 435d68110106aaa1b4cbae19c56b8795d1bc4ca7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1464 zcmajfX*|;n00;2DGk5M-DalcW$N8il%QccI@;IhkIp$~>bIr;*LpkPnkchETIUZNW zCX}l(b0r~`wVY8SCOIBG@1M`}`@Q(R`Mv(y!FYI$0d7DHxQIqM^yin+WcdJ~Tp9or z0RTWnp#3#(Ady<=5Tu81G%6%4+~Y==w|_vSuT~&BBv_D_4{!s3cmRN;ruyma=!FtT z=*@qK7WV`PsB|1p&aekvQ2Se$YEZw}g?&hd^Dx+=N%6D}N7b7w_l4AfXJxiuwqS*R zkA)oeCaikqs>CZx`?E_1nY3KU3``4Ouy*YuZ5tZeW3nwY`l$l!+SOKLqB|5N#UzZE zru`n2%pTNga_AN5jFwRw-SleT7y9(0z@q^Rw!}?<-%6;m+|)jnhCjOT+6EP;iICcD ze2BShZNFNLE82|JQ=PB-9Czt5R!5UC$07(Sn&OL!p(1-l{YRulW z_AQvtgUbp~oWNx#Qw7t+2enTtWRT@65Y~F;)fP=dg+aa*`3!#LC-K&y4Bc{p&2=TE zh#67O8H(mW{u`zSIWQJxz(QUE$3;67U3*7NAUt;$8~$d4akX{Dc1G%rMKi}Yj@2}) zfWTt5`d?`Sfk@A|;b4x8F-OyCjJW%99H6wvCejlgyVlW6H7W2IJfzlX;~W)1S+yP) z*bB!uPFcYbvdd)14*^@-6Op;m3uM)L5;`ySUczFY#SXbl^?LdVuJ@(F2|lO0yiF)Z z5BdgiWJx7&ac4nipDD0?9$jC6g?ZPzLdIx7f78kZ-DYx8LdC%B5=3o9VLCz{icl(< zVA*W1z0A2gj{4Ark#}1&C%X+ncsjg}p^(gVV*yr!Q&@U_{e~fb`ovF)M&atBwt7qb zkzJni1B3P7zdh^zyc57|a{XY~4=pWXM@-f{QfP?4rVu6_%>ob0>NsX@bO4gblV$4D zvO7Y>X-nDVqIFl6qKb9H>JTvd*LUe}D}`$2L!(col=x~Z_k)^nesWez zqC?fHVC0t34%9EIGryGaVdGA^b%ea_Ir?HDoQqL)QON%gTW}=?Waj9|U}`t{Fg%uI z)wZzln3n44)STf4<>cu}0rl2dK9iIci-p|$AaL?)=H zpuwf`LYq;nMZ}(O^|JObu|xkm^ebM>$;=4RKIkcIGm?gl%H9yYUx_hj4N-ONu)=1( z2St~Rlx5&tPOlMoNB1BmaPB_)xHji36Ae#TC@cbL zs8_z)l}j26?=;-yCU#1XYA0?V&+>wG+eB=LZkogO=}@L4$3Pl`?}`cwZ4D>w(HJn^ zQL1%DN@d?$GUTa+cB<=GQ_j5ts#aqNjB`^*L*b_$iLzcK?o52@;epyOLaWKQQ%jL~ zZMOge@7uJbS&|&q=hbXo)fz)M4>-$?IqOf9ucKAGpG{c*Ts#QBK(K>{#jZgXOL}J=Qs>=TDTOtyXGo&*G&!Jl- zFHDlU>)=P!UOPBPu3z(i#@fO7_<#Ml4tnKa K9S(d3fPVmdZoD1< diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/push-all.sol-0.4.4-compact.zip deleted file mode 100644 index e3fc4b2dfa27cb9921ea3537fd5fd8ee6e08145b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1467 zcmajfS3KJZ00;1Y%;E?&YQ!d}id|>)V%2C+92cdeQ6n^VkQ%kqRH|yWHEP5jZSATN zXB@4d;ZRBuqgvD`rzIDs_kN%I{T_ZVzvr(#f|U&pumF63WmvG&!WJe}j2!?%@_k;;WnA5RZMU zxSg0YRs(Cb{FOz+8HHnXYSyI>2pHkfp6ep@$UJ1g_=tOAnXG!fA6W{}*~MGiVQk4` z1pSb_>*4n><)eJMCXsb4Ng<`tAN!l^%nn3~+=OS&&Gj<(k7V&l;!!>M^C?|$wkEYK zno+}gAIK)aw6|^2P(a7?m$yzUny5*C_l}#xMJRhQxXdJZ9ljH< zA#g@E1qOMIU#2@KKNUFt6BFeyg%&B-Bp}he-NxP8L(e$*g$Zk+R_l6vl;LQB7uU}{ zOy8N9anN2BI1cJBywxOOaex>^l}gCvgQoHZvB1fpoz?j&9_CijXT6<2-Dq_8)o&Ef zjZkf+lP^A%D%$CB$hr|i&0T>2VVJOkP+QwHa$>ExErSX>tGTObj=yl5W`Q* zwtQ<&x+@<}vV+Jt-6Llik0ko>T1rnzvuVY&dTVJt>{u$kNHi^*ZYh6L=yS|eiY*{M zm~`H&8;y2l$m~Z(;hxy4+_~6YEk@Ys-Y(PPP3^%yjw5pg$ZbYBGddk^4!FUVCAF%z zY{SP)f0a5O$4)PRdi*-G9c!CChrSq2W8Rx73x($3S8I>aGq`IIa$__q{+L`fk35Ci#XW`3%`JJ=FZFEonxC)%^$yRUiDh(@Ba7 zDAyDNTx4(2unO<;h0VXVf1|%aP{i=ou44K&3JE$4x_pkxWlIaNbLkj1`9Va>nyP#~ zGnQOR;xrA!snQbfaqNjp#Zr5rJ#)7Zp8SeaoT5*Za2>>Sp)+zy*LrvJ!I_MVzf+g< zbY;i3FM~R*%WxHBu=5h8g1yXY05Wk7*?Zv-S>rk$ze3E6sc4+|MSeS@$?{~8l;>BB zomE~_y>zT+{WbBGuIFoFdb{ni@756XtC~lrfW(Mhvms=JHy9<(XPTM3@H|(pIY6|| z9_7i}WV;EKyI9v}`XSfq#7&_(InGF9W$n;H)r%y|t1xEM!egjjsrtbDv2E_idurmL zXrR|i62vjbAfLwO0-N=ZZjm`7b1+*t(3@i!sbCiy^2jlCotuj8ik2v-rdQ>}X_Y|O zjK`~>ceu0Vf@ncZILJRYK|i>wL?g{CO%T^b^EkkTyybM%XMV3La88lEW^P0jtlw24 zEYZo1oR|sGZ_3VzwGY`F8t0@fHa<(;@W~{lH%D1^lB*&ocB1NV&G>MYJ`**{tTYi* zmQ_2T(TGc(7%zZ+wf%IV;pt+LnTb5%w(I1Qx|KmwJ4NbSt)S1Rrs1U38!mh38YZgb za!bjh1k(#$RU?eEu2<&589eYU79zpGK^$3aNqN=X^sE<++guhUo!q|9;P6VAMHs^D zd|4lsT$NV3&_6T;4A3xA( M?M@eYN;Clc13e3{ga7~l diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/push-all.sol-0.4.5-compact.zip deleted file mode 100644 index 8cb30537dfb1f6ab5872b93eb82ca845f916633a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1449 zcmai!X*kpg0LK3Y<4R~5%(~X&mLsH8?%R+fBu9=IHRfR$A;cI%)_paFA@|gi&A77& zA&fIB>l#O6Q0`%eiLu)6`|SHZ@ALcee*QVY*f|UV5O5x_LZh4=d6?r|oB$vrd^P|8 zP!G}f)qIgib#w^QJ0J=b5*F_58+PyhgNOii1Ue*`hl3OF0sssE=%=IvY9DKdmQ9Q{ zU*{+E1wWAQluF8Qf*L5+^0i&ATknafYH?#<*yT^e40pOH1X1s7E6pt+r=jl^m>dDXc+!u$LW}$sXOy0?_6{?;+?IeT+lUql8a(}NZ z2+DwC^aa;}BawdMp?RLxK;oi=J0uqmHCQ2`B#%KTmy0$^OXHD?1oVBS?sW)Z_4!BN zNj9UjS!DGDEpKB@jGqef%L^A`_7g(AHcHxU-L&3gcX82X>5;X1=YfY`XX+@tZdsqh z#sxhTsz>sJ6OO|KRkbIwjwst3;%{=Jo+*>EA_%Gt=44`5`8-8(_-5u&%nkSs_S2Es z6bVK>)xn{fdnF+alj`*gJv{6~Lh1FpG8_xG8x%bLPNzVeF<2KpK^-Mq8B9IRMYL)< z6_om#vF;-Aa$|t7_~CiHZm<}1$ssx&^iJt_2^f|ZwL54zB_g@K+c?lx zc&@%muj1hx4$885YwQ&vym~J4nFoy1$>Qk8qk$c}Mw6O&X)(SP_|=j^x(hRN(75eZ z7Ti+h4mR^OGQ-m=cH5#9A!*FG@GbfK6@@9UV#oD#k2&MQ70X}pX7K~@a)SjVPRiex=Bn%#-k$|uWk1|u;=&Hwxao^Q}6im9ixWwb% z`EB7e#7j^u>kxUfS`tkxuc+9X+nnyd0rO+b)R=CB=GefBh#|L<<-9Efs!ov7)=R^r z6-?92(6XM&{f&6Qzh-|npgq0$dD)phDJyoUr`x~U5 zavmf}FUN6;nymUp_T5w+dQmy)Xj87YHSA;t{uI|et-15n9 zTIAa`VJ|h-`=~LSOEJ7Kirr3Rbm`{eW|>`xXtr5gK>>G1p7(PyUatIuwY_SlcSU<} z_cuL6Iwdfva^{_^hYqNIQ!VESS*~M_zht0|>zL_-f;|rfa>*H=XHL@qbcvfN_F<{@BiX^Ni+aLI!|;017#`EC2ui diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/push-all.sol-0.4.6-compact.zip deleted file mode 100644 index fc7a48d776aa33004be32981fc0d909681d8ff69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1449 zcmai!eK^wz0LOo`=4COdmbbiAUQ$L88s_c6VOo;cj|em%N+T zak%KotSct(kuy2Zye;I0jLYf%zvsT+=lgvA`TqTJL4%K20%8CRaG;Rflpdb8k$?bz z`pLrq06?Nrf)IEjQI8T%#0Er>!XqNF_z3@?U|N7)2qipB>Iekz1pqn#ppudZhWm!( z(h)ApOs0Sx7OdH$nwaLQWTDMG+GW(V{3@oR-3!e7EOVbe(BrQ4!@}*Qq`|h5>w+)n zJVF)J?dy~Sn_qjZviNOg;n4g*Hfk2F_kgi^Yi>YfOJ-Y%pre15U-Ws^-6Uvq=F}@* z0(G*|C#}ZCbZ0@VUY^n5kv!$<}zsw z|NR@B&x3OWA`$ykBpnWer~B1U5Gpg;es)4XMMxrlyi!H$zC2dC@mRxLyj@Fcp}U4> zv4l9gOf+8Upq|TOq3Z^fH6>H{I?ph@`3u?dDKupQm?xfIN-e3ksRe^0y0<7$jY3pmGgDkk4rnl4K{AHRUUH|^UY z8l7X0%)GRnU~F)D2-#j<3(%eU4ad}KS0_WI0r8A@<1#wzb)RbP@#H5xV+*wZtNpfn*jlg<+D4)0Ee4h}rG9F=d(_#!m{|?%x|G~}z9o1h@-uxc5V*Cd zC8{YpKS&8gY;W{qunn_S?l>aIjEY(aw{7RCysRmwGr4g+Wy`W1*o&e7{t0=>_p)4F z1g8fA(zt`9vCCUmQxoyMTd{*$5uR(!L1R$}(^>&JB;PR-a6WY<->t2{Q~LMXrr|=L zr1OYXi&0#_GsjxLGamiBP>MrD+_v*ED_uK3lM2Z+usiL3^ET}GuZBiM2@hVaaP$YyeI7cCsc-Oub+W@C*JS2nk!JWTgVMEAY<_WnYrKZ3T%;_VHZ>Fc z5cS?btH5_}hej;Qke@nd@(4PPXEG9(700p`l3Y{Z=yA5LH!G!jpOCH1jF0$aVPT}a~7VU z!JPImybfM2qt5v3p6dIHb?I0pCWElVDa|o|W2Aw}QK?$;9!l*#*t^dd!wBvDK>|(c zxVr5}UptL=5i{2LXX1)>Z%{iKUv9ooZtC6L(HNbn(CYC4^K}tg1Z+XfQx@3#bO`@8 zB5UGcl5kWq+V$_Ukj6+p)@_{J=*J%7W*(@f#%y*9{fE_&^kxI^H%Ckuz3Fi}fb#_n z$XFn|VbKbM{lrqZ zThdMDA0(4z*t6DpWfCeM3B#^wftd~N9jNj-y4&**Xn~TjhNd}gEeZ%5O@PBLc(4_x{4*G`wld20EBL3|MIxOapc85X+fPVmqx~fP3 diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/push-all.sol-0.4.7-compact.zip deleted file mode 100644 index 42fea6b22e879050ae6437e0f06f4cade12e52fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1544 zcmajfX*|;n00;2@9APt+;}LQsMbEGakt392ZDkUA+~$@IbL4t@$bD{8c>&;z7y!rt z01yxo-L#u#?idrg40pi8b0si`P8!ws%)Ql#TNy5n zsI5aC($HrU{qNhSGn z+A~}n5>9&IaLxrgg8o8cMAym>UQaR_;!x-U6^NUs(i_rh|8^Eu?LI%`He+2!3@1AK z;pIYjUOyr!ynF*gZ>vfDD3`MV!ZG3Q)Mbp zrh`++I7GJH%%&o}CJt;=3{m1X4f0$;EMhL#z){FIA-5*gJix>%s1b({gStPS*4W}b zoOxEzoQLA9&~Py^0yOt~R%T81-AcI4=-vV{ph}BYxi01!v20fHs>zivHd$WTst0aq z7*VBk)=AAg|E>?qZumIF=zMHi6A22x-I-W?0h9J4}HO8N!Vv1fcKRwX1{QE!JhSx~ZSD}u^j=`%}M3Tjpo zKcg8HrNx>^sqQ#02$K%u+CE(!uzX@{nXWVq*FvN_pr`Mz`PWF)Z>dDpPp8X`9ZyZGTS6=RhW&kD%H)N7u?ug5Z%Q;R!L zDX&HRrwQv?KP^$Vwd|wn;ty!(lj~2jWUFmdY(xdQtPR0Jt}#pv?6F}`Z)=ZHj*y(YFTb@M-Yx0L_|a<@ zsh^g5!qw4;6rcdptgWlBDjoU;gcTQc26ZntVW@#Up)&fj1w`lG~Z9V;oj3=lH)30@%Xw12vTwyKl`cB z56r0FDqoOMD@;t(Vlf@1g|FMbW3Zj4&gnYWQ?Ja2t{gr;xD{UL6Eb#ZmK97-eaQdX z?M`=8*d=fkvaRb8sf0-4*OV^hWPheGn3X3PUMy3#5W#~*6MdF+^nm~*v{|rp@hj{R zrjaKMMRV{bGz8L0O!xZNf;R{8&Z@eMi7ZJ~j{0{uzV{UxRyUsBl^y&ZZ-z_zYGUB> zC>MGowLaLaxYzEKFqodRGWx_J9h{KpL^veBIY?}#?DXa8?st%vuGRj10{YVNOY@d> z1i9S0g-ZIwMz@@B{n!>RmS5cLR7M?jm%E%0x;R=BtvLK8ko?VCa)Y%Tu`8?{4Ktm< z?S7}m=_c~K3pA$GG>FHeW^mCfzNBr6lKv&r5gUbI`^jiBJZClTf`FZmq&;)YEuNe?A2lXc zpT{v)#F`_8LY^)6og*RT_UL*4e4gL$#qZ7U_16|FC}aeH0CB*Q9O5XYkfD8D7yx8X z0>F6y07Amae(GL1y{9GXBT&4RH<8}WyR6t4z9@DfeCvu{bOua1mi28F$_q# zV=hKkrEXW3mP=?)8ltBO8RXkW8A5)yXo zsJN<*Og(4&vB{TI)+>X%GFeZl~OE z<2hT4vgUbupshb}a}o7L@2gb&&nHbZ#K}P>uE%7f-kgJ?I)C120~0O2Z`vxL@2bLUiZ?7F(pYIn-4%F2mi8)iF<=|oMgT?%$u z-}#|eQisnGHRWr`1Q{-x-d)%kBB=3q&6V$YwGS3XB4`WN$+|7=Yx|+VYS6;-w*%4w z=FM&cYnsJ6EDI!Nf)MYox!dN5?+kV^MyI$Ii`@X~mu7lw@|lKoN_G&!3Sa_ z#PGCi?X&Caxf|xWK1iCOALolew<_E=Z1qH=HFO}$3YYZPamrTQ+o&hq-mul3ZElfE zZKth8(w3;xhz4PpJ{19}KX4fGcsv!DnR4xu_ zz3_P-F8|zqC;I5KvAwi2DW6)V$8JlfzR0_Jx;FH+7-1x(U{aMgjxXiVq7=2S#Vojo zwSU)h^C>K`kKNpdM!>7ND0WXd^;7P~R7OSW@z2ZS+h(T2HhwPPo6UDx#EV^KkZ-a6 zR_hvCPKy_=E2|PM5Fc+1E1z_papgopdt;Y6@^{t} zyC5@gPN}(aHq{2Rcq)cc@-+UP!g%&AaLx|Oh1bRDZL>+|^JpcQ9fw=$#($Uno(>v} zH^HB#3ws)$mGd!1HeLzrg4lIio|?0Q-H~mVH(3U7w=x&ArD96FR9lBXAoSB>^hEPB zH_Bk|lrVKSFu4=V6sCpF@sBdRFk$Zt?4XkmSJRp)9LzpJ_aHClM7J$g0AwWi-#8!o d{BQ0F{Fwiv+7>H(5)X4VnS%bBp$MIM6MP}b2U5U$W7#Esz;5499bntk{Y>I zY}y>-Dh}g~zJ|wzgnC~L@eK$JN5g`y;;_Z>Z<~pF? zHmmx~GPiFXqxcZYM;8|^QZNy9eERO#fN;a7SBAU3hLQa8KOh%vvPF6ISv^H#%BOZ7 z>dU;M(9v>hi4=;iaW#V*7~}N%hxTx)GY%OJ=PKP!1`+fPsGpB?(Quy0Qu^(R%6!Q1 zS|2KjuMW1dHZmL*ND7|eLyCXWFNM@+>7fJOL_xJ%l3tgA(+b%2Sy!n2E>zWKB6Qh zcgTD|Gg;>oyXfK)+mXBdahridS{%`4P{W~8bC*YhR+Pr(j>2+AIfP(yEn|{H3w2f| zkgEAUjq!_iWVP;@8n&`-xL)v4CriVBRGo-US3+N{1e%cv#iiJ%Vy(){K$9?(71h3vp~ zs%=x1Z8&gYl@k3cHRiz^OCO%lD)@u@uYrP$A&xBkG%vAK{Y=YkiFD_Z5o21|l}Z#i(m_uz-;lb7&_{x9pX^sXtqG2-pd<2N|l^K(0#2A9ir zQ59UL3*qmJ>{PHvYelnh?pXWkyFD^kW%I|&F0g#?kxB1C)4U>lr(AAArYye4@vdP3m z6IrW_xbTv@l`o54Boy1C4K+vwtS@cDD-aqb+6$G4lF7Yb!JV2GNk^^wRhso{IKClE zj^8vjtwN%RywB?D!pO?ypvbrJxjyaEw(5S@yNXTbpHN>agq%rUeWSc|<`vcZ#Mw(K z?fYz)YWKe#GeZni%V1qdZg);?2DPq^n(zEZytzViyo29}C;1J!Qtzu&k%f{*qg3rj zB9#(*C*8sOF~wNl#0f0I_e6y=r&KaATZ5^}odoT0*?-N*CufHJ))DcDI|8yA{2qOJ zu0Z#r(EMbdf26AU$+EwmFE%34imnX?&8wvhH(094jnGJ@&H}*83+9>}jg*vwC2^xt zb}p2mX=8P_Oh9G`BF{w5)y95QM%r%5nQ1R}(sSAJZK6((;=Rj{RKNO%S&l(XWLGdR zxTMB{=p_8{i|BxE$atTUkXE&e2yrn~PqEFc(4l-1+s7);timg1y5Tsx@7r|F__tU1 zwWV4}Z7#&}vv{KT$KMs8*7jaMUNFAkdN+<`*E+l5 zg)N!K{g5|;ef@La=^`a^dETXUY|eT3xwKlfAd!h8v;m~f*CRr=h8Hzp{F;JxgF9xi z)q+lo<6PG20%k_tkv9W#<60mV@qq|ty}L&1ouFSHd^qI&h$qv^LduWQ4Q<1SgR;(a zH2LBmS~fQsna;^3tp+wQJIH^6QYW2!8F}mz+LY_Wl38hc! z$W}nky}LU%pTybT7`FfmkDU0?RLA(_qCYV^nsYK=0Bu_Q_5c6? diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/return-all.sol-0.4.0-compact.zip deleted file mode 100644 index 0a0d2d41cc2cfa076ccdd020cfdebc526217e96f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2237 zcmajh^D|fJ>t|7si)~wY~1RPtj61tE+5gwB0lw43;V7+5fevS%guH#z!(VbmeuvV z!S>hsH>5=%(k&n^_ zmD~LVVs4KT;Hd*^vZgy@h;I{07o&ecZ0{+042(|=f(<0T_}29-c*dD0Dy zcf-65g-=)|^w0bV7nK+<#QAVoq>+h33)|ie?Gd$i8>Noqb}a5Hp`Cpk(nL=SJ*W(P_v)2R4gLK09bB)wnZK%rd%uvks68d-0b_jYUROb|kK!zA#JEmniJd`*XFzT8i2LLrmI33H`j`DO<<1S+bz+4OwSQ~% zkywjgyec1NW@4PYCU*x`nyeXXvChJBi^jX4GBwJFAyAx^sEf2zjRaHYZVTNJ-IK{K zOaC?!YOK9a4D!yG5IY@xt;1fUuA9QSmLhUK`K0(sfoanUbq+05}+{eymJkFGFS|1L_SHg$! z?P`vwqPMnA$1!t@?_TuHq>sFsNU5yp1okS8?}Nipn(^O?Cc)4|`Uvg}cZpfr*eT+SPF->8&co+vV2 z(?ZQxvQaYD8rv?zi$~-q1Uc%m?R2F~BU`a0fKLL9QRIX6P;<=bfv0Q1&H1O^nw}M3 zkAE7u_810ie&knYfpfC$hlmvOu99y4S@H%YY!wx5mRehzV;_qex)?CKbTY!~UR~SN zhcZFv3bflZE~93ya%X(|mY`*HOY9!aC>X;_)po?P#C542ss7-j9XDS)R-tELi7iY| z6@t7F`ptjlWC105W91z1%rm;JOH-Jp*Sto`rHrNmj_0%?Ad}Yo_D$g9%p$q)#r@XS zEOW0pV z;u2`Oat~DhlCir8eMRio9WWMVeD$JZXcJVm1hrH(l<`?_DOl4Bb73vXIpgXG2tVn}JW}vNWHmQL#0~p_;p3>+#@o123LOG9(KHGYamc387kojll>buNt z@KgkuVXY?Wz1=1IqLAyAp#_5qQjuM%&#KhKk#D!eVZBlP=0W$R6GZF1yV_1z4Lf$+ z?-kqCs)PSvo{KrQPaFQlJQRWLPUt$sxUAn+nQ6FU$9QiB0UHb*dtMUF3Ux=Mp(wU? z{#vNi+$pW1Q;)-ul&Dxjkod!3$pgv=j(Vy$tREUSI5*BF(Cao6<1k<2aBJ-pQfXb*2=j8=BU4@xkX`PWJ_V=6dxil1FTPv^ew8-l0+6O#kGvYxU@DmLw^X|gxB7osZ6(m#dn0~zsp z9bynNeEWYZgr90Yl*5GNS9a;}#=IUYO+%V4ZmV_a+ngJ1jXWs61)1zP~&CrQ;yqGVL8WO8~l2_adll z)nTiJ8(uxlgIiVk4JvVb0`24n2iOmIFUzvhXR#!%wnJ@~YCDgebeIfs=GJ;qLQ3>T zn<_xQo14%u4S+eA1bCnHf5YOBE&dw>$-ndenPCnlr}+0t@~7s1*5(gV0D%7h(JVJs diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/return-all.sol-0.4.1-compact.zip deleted file mode 100644 index c2bbca470b18765303528bcfce2d15befc18b764..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2231 zcmajh_dgU40|)TCGZKZ9eJESDGZGmmBxiSK_B@*-QfA0JGtS7kPF%dKta4U%I@y)I zw{UTnzSh(C`Tco4pU)4UUp{}p+XPNUtpNZ57y-RO0f+zq%_^7<0MLN~00IC20Oc0^ z1m!2?h;%sexAaeeDP>AZgtUG27+S!cF*&-Eml;Er0cQK#7=V&?=}0a#Nnn=@FSYKB&72y9dpy{fqq;#6%ge5JG=cb}$HGr= zhHO{dP9)wW=u&U1LzoB!^JYAG(Spp@7oiiMZJ{BVgPJxuJacNDM!^ZM!%D!ODz{zqkKk&V zbqm~OA9jD(IW~-(s{iP_pUjwyP1;>cx}qH}a00j_tv!ABi9~j}jTu0@53eq?{d6hb z9=+ZFiaPd6ZK(gK`@WX`ulE`>3TKZhx8EJ}RVyH(k{YHEga%ylzH0)paEQ;BzV(dG z(b1fHD0`}%)i?}kAjR>KKR!u8hMLuk7CfXEQ%|1l@cQ`jN{B+$R8zMP*=PBDE?+OLxkn^ikT2}26E~a1XkinVV>cOtPo|Q(R zQ4Rtr{GXCsbK*e2i7(Dj}=%&a_9xgKJ@Q!|A5J*_X7)e$6s7!>I}<7Lok7Q+p;JBi~;g%o04Ab*S&L z747i9^WijTf^bKTFg}n)htKgWd)+r${()q2gFMEvh@Ip0(vjo7yJS{R2)*^Dq^%F= z)CSUEnYC&IgNinTA^+Htc%wjSFC9+K|OI-VEY!~@=#lJCHqNe4wnp%Ai z0V&`2D#pNm$`7{%&qZ*Ku$fRUcMown^H>Elbfg&N&2M+6XJsldd)ipnvLW;o*t{Hxm%`v#wFrzC06s*@vRkdQ*=Q`sgCU|YOm1o+a zVzJ7rpEG|R7B3p>>9uHRza1ep8J=>exAjgm+g*Jgfbn5!kG{Gm>t+*+&@Ua9CDd*6 z5^0Bc{e?LVWy>^IZt~({j3rHL_@Abnz|(M8Bll{-5Yx1B2t1ZtHxLrsV$aZl&JXgJ z&&VCpu7}P+f!`)44+jTpG7z%HADbk=!l?PupQmIVuEoAnsJ1(sIfrM89OQX+Z zqBBfYrG^=`;_YK2-$_O=Gm~bWkWuc4Jltl$YQs_YVDwOyJ3LU^Xgv-m*y;7*GL6e3 zKH)%0E%3L|o~@>E1qp=2?p6epICF(=P2#pN(?`w7Vi!`>g4B3PzTC3LW)dBBGCkg< z3YN}ez(E<;A#Qc4P`+y$-;wbPbyHya&@@~bl){3gTDiq+jWSmBYNU@)yq3lsgOKj` z0>2oWKC2RNLMT?oS;DQC4ia;-SaRtsbeuf37wby!sBCudKoHJv0-%~KdAD@~4~wcY zKO;U+M_2a^?YHy2F{rW2++R|Wd_3x`9&`+&PNToOk=K_|{JMRC_%O^k*P|q~a=5~c za!S1=n5jIO5L>6C%gzXTo7BTIJt)Qg6@>8i*k!fQyW2H5A3ZXlw7Dx-zo5#c`3cR6 zW-rdZ??oSc^ZhBtFHB6kL2P9sO5_k{sHrG3Oz>Pe;UYd(+0u~v6+LjHX;BhowBW67 zem9&XqQ8itLkUQ`s$B=h`>+);=5!{8y_do=roGD^--Rldw|$8myNKM+8KY&^tv*oU z)<$r`n&Z}l*L7;<8$jMN__&iW5&alTwflQ|;iD=08<$H1`StPYDO&h}?zn)0^2J1!mQYDcFl-)fO*N^-|R3up4?tu=C+$`*WFn@1*yZIUFH+G-0Y)?8nH`K$d;N3 t*VBOtM-w;@q(Sw+N%2<||4lUT-}(Q*FoDz1{`&;}t;ydt{mT;o;6FAnH4p#* diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/return-all.sol-0.4.10-compact.zip deleted file mode 100644 index a2558bca765f20c1a96262c94ef0e09b9a4e7c6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2201 zcmai$_dnE+1IOQv>!ir6Tt?Pe8F$Fa$vENU&dPT79%l00aR5 z2yh7s4)B$7@b;Dt^z+8KgyH=Hf^ZH2PVOEdF4CTXe!gcJz<@0P+y?-)gakLaUvmCM zlcP)=IOF5HTIo}xFL}jIXQDfojJaQb(%^!ua07bY(6u zrybuY)l9T5tXqjEFQ?6fCW6*WB0a6v87+&-f{u9=;ipf?e9||C9b~YX1KsPa zh6rV3v8&SaMo#jx^C+%4`K*xB8LHp|`LK&F*jFK=7q-8}V8f@|!=TTwM-2osadHKPv8o|1_Bof6E z_OJi7lkn#$Z>`AC9u+UyhLp}%S&*+1zcS|u(MbUk7up|2G{JF9F(Sq%B9o5~W3M<+ z6^uFm-KbJcDhb}q9&ZY1>xp}swEJmFPpXj=qP2g+=n2RAKb-5kmX&y&9lq^ml!kA# zQc-YK2kj{B6Mj9dLc!*i8ygPN;$A`(|NF>#8dK}Tt z%Vju-$0>QD+hmRa?wCv&NUzGI-Aq`S+K8lqyc8BZFtB^c<^Z@&S2McLx{(h<91itV zOvNX+K97($I{T@e#x4DbzyxwK-)7u(Omg5n@4H8eopQy+gV>9R!i4vabP_5Iw%)$F zS0^``SH*^?Nf=kKzq&|e=$@$6euB??!8GrNzLBq@cZGJMR1jYFA_bCM7iQIIZ=TyS z#BiB-ncrIjGMFg6SLQ5p+(+D9ANvkHq^)TO#C$gCSlKaN5e)8SC1kMzKC$v!4g7o2 zfC`bK!m8!uQ6ycyAf|i<6=w=!&i;ryop{eae05on@VppLTDv@4SwUV1l6#k6oz6!# zeft11v+B2nF%AKrhsAeQzaLs-moigUmKwl+*|&^~Z#K6sNXecDC{`F;i~AaY6lHu6F44ONH$Tc4|FOk-3x*~|XZ z56?}7iD#^KV#*)}gvD(j&S)|izv-2R`GFUpeBYlfbk@JnMt^1SIDcV!Ioe@QP)Ihi z(gGGt(K;#~l+hMe1@9f4+fmnzB(Rf&9R)U$wEazqQ(HF#qeGXVuUIAMQe0!F(@F*F zpR_`Y%}TA3^W1cs?A}Cm<<9udTOG8zs+A?i#~@Y;`X&jo{qrSpk~0FEezl^J2spoa zSlf2%1P4!XPn2Byq0ojoPm9gltIHqigD910*PZyb zoLR)1ELzV8D-J5a$Dx%pzT9#}+4ChP8Zi`1YPC~;00L#+qU6q|K^cbq)ZH}sJZY$! zEm+7jiflXB6|IwOW)onsIgi(an{?$W94;N2m7RGQi9D^;*+Ioit1cuB<-ACj55sp={-}MO}sVVWd*2bRy&)g zU)Z^Xvb-B1f>+Y}Qs%nR%Bh(voBT*CQ-;)7&qGq(t-u(L*Rt6Ijy&)L!jimsU{+ai z5797_sVm@w{94Y+^-Y5d-^C_NBDN3K&x0y561Udi2N7T96Mp;PedHF`hkJIQE8IQG zxzmD16L+gt#>)LNoM*1NgCoj2^Q)7+zYvRgU}A^L(aXp&)_7f!8=7R-8e>TD{Af)? zPMWGAPLnve>2pL>RQacC^K+t_9hwg7`}B9KN>i=j zBQ5%z%@xH5-SSPwsTJFzZtiP}C#ADOTff)BI}fmEI*>a3|CWY7-tgbtr~8ZluMk)? R_{`rY-JfFrP>%8M`VSs_5d#1K diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/return-all.sol-0.4.11-compact.zip deleted file mode 100644 index 2027042cca5ca3549159615f56e102bd39da859a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2259 zcmajh_dgVj0|)S1)^j(k)2xnxRbDTYT%nM~aTxFbbL=-7H&K^Z^ zR!L`E_Ely!iO2Ts`TqWWeLtTcKEHhafH%q%4ABOF05CvTaDcVg8mm;E699m!005!@ z03Zk(5*p+u?@Ayj1p5|h8!Tx?+5H^4l0B{cg&`e6gDIY2a z77g~-t8?df`r#$o1Rs#l7qp}*p)D%3#g53520QTAP44)6eQh?9KC{k0l0MZvwOH9T z&B2xZVSPMiv@}^s1?R1N(_+k70it$b(=Y0YtYu)Vsyhh?z+B%N~P z0gYp)!nRzh9>qm1CZ^DPnej#fmSq`Ky0oOjz5{Id8Pd+ns}gLXv1xXUc6-;6rTK?jG8LXY~m`na``tV%LZkr@M|?ir$4!(JmD<6p=WnC2@Jl zxliks%X@3EM?LCI+c4*vNOeBpc3<}Rfq7c!mrpQhThxTwGf6}VL1jGcPXj_(&FAH- z_6{_It8Gy|8iLj=PcxR(JUEBOc%`*-G+Fe(C!7mqo23SiWE1}ThGkRa=RVxvKAG}y zGXPcPDS4dh?6R_wBjtdray&h^kR(mv5y^P3T7Qo#HQO^5vnr~Je{*I#`vzB6+Fqx^ z?YQlyp;-eSAzJg}X*zfwSNHOC*c&q!xJf|MDYc^*Gq=1+MH~ae+V_pP%`l@XUF;aE zq(q(GV-WEprJQ5iXZk?q)_4Gz%?&o0KZKODrEd z>NKy6c#Kz@0NaU1OqVAx{v#ra} zs-`v|croHTcYb=p^#Ks?)R~k>Y9==V4~GhP?%}R2!Ug2PWuZ&k$JPt`he^LHvtC@3bzj3+^M}XIeM2u zG4Y?vI`Y~AoVis`A57_YL_AK|Zq@$=VYx-E zxyNzJ?waO=>xyua;}-8Q)07>h4O3aRR@VHKQA}Pqroy9{g}NY#G^Cds*^1iWv{Mi6 zwKveOR9=Hqt`*mfI!p)2ApKe~@TTCgs2LHxkAkKt9BU6^lEUq#b^I=|JYNq7U>#{U zTs3RYNl2y3W^L{TSZ0~KuPEK)M!uIe{A$TVNvtArP&-JyJwoq|PU^3~Dz2*})D0D7 zp*1WeD@*BbLMBQ|)=uB#D}a0m+y?2PQM#{81k(!1)zEqcE;?x71G_ovDsx+wNG%Rw zscb&``g7x?V$^rDC({GZHY|(Z^=^#72zNeZIrbp14cD_6hEla6?{lso?=;q;|LzFn zpWs)Z{1g%5x-eryU2;Rm3n4gPNkE4W!*wMJqXc+Y9mfL@=EZi3ktGClQQ@Ochl_IU z!0|HP{P={a(L7n?{x7pm2zJkD_uSnb7yZ?6RPOtMKjgv^J!s;4{>CJll)BX7C@&v- zcu5Yid2m{?xHI7`iHpbnFD+w(C(rDL-hJS2azFHn>@#@ z4VN;`KdD|jt`F^^v`VJ)Y#tjwwsj-)z@BKarwFOW%4QGO^X2vr@vI!RZ(ua_a~f~ag1W{ zdLNvrRBJ~F);d%g+n_KpS@Xl{1e%E{={at&5sYa*y&%~YmDTnc;RguM5C3;CC%Y0)=btpd3UpX~v_zC~AzQwi` ztVh8G+9zEN)PQfQ3VrM2*Rt}9{AGu`Ygb+tGTf+Uw<6H#@N^m5#k`u@`o{6Wwkmh! zyBNgW3%R$zAQP~IzWsCk7*XrDsa%zW=q-IQy_*-(K=JA5&2j;a8}a5ZkQOZts0!8R z-1n;*F$U3*0iud!_&KMwEVb9NGp=@}jvGh25$htRl9ZMc6nCL@8W){kcst4~K_*qn zJ>j7@QC^rGpPRLTw%Se=+Nif`_q~D9HR%qEu2)~GA;lgMuL4n~K#(^0e{N#{TaU_`9gz>-(E70Kk6$2thq7 diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/return-all.sol-0.4.12-compact.zip index fc36695a22c6020360c38ec28a6feb6d35958000..05692ba986f31e3cf256eef02e782281baa282a0 100644 GIT binary patch delta 2676 zcmV-)3XAoi6yy~cP)h>@KL7#%4gl@7WL9x=gYrHK000(Fkr+&WAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH2Re72sbYW4pZsDKX@;&V+%3+twt{a>NC7sJe^TnmGBtMxx_e>_fRoyZkn$NXweQb~ z@3lUWLI4bDg|!=o{y}(CL80z6O(%8c2RS;W3sXcE$FXpKrhfHnqc^&rL6li>EI7=^ zg0DT(?hLJ>o}mmN%BLPkOD~B?WghpTfuln+ms26KDl-=*XS;=^ysw0xS*#Sr9C&Wk z`vB3zuSDG*AP@0%#!sI{UkOlqChRMF6TQ3wxZrQb>T`{cMCW9R70*}EID!e)xhF8Y z`B+7)+OX<>Vr5uVN9afun4NT03VFwFmfu?G`>yBZ<&ZfFj?G)&3~MsR-1{Aic}_0} zctb!die>3y*?rZ%`wKM3`rQL!KNNyG{9Zrte*b*yf{0n&y!^H-^2$11Qf3(4&1M%;}eP8aFVB#KJ7RmEx zIsY-W!61?7z1g{?Ze=`>qDf6o9UA)u0{h#2epkTv4)O>hTvpf9sX7!QDv3`!2Cn*_ zuiocDrp#b-d#gUmKA933ZCb{7CsA6AltQC_g;FDmFSaVgI^6OHg=b>EUQFb;wawdU z!#L5chr2;${k<_H++5ECf^Y#^$R^ZI6(+JM-!X1M!+OZ@EWvbqCFb^b&O@F2xmzKp z{5TiM98|lIyYj2}^ezGHJs^2JOtELOC;!g$VY);DWrlqWXhGT4#K}q^oMpa!KSH*D zIq==#`K`}qbM)r!A#p*-l-MuLA~NjFzM#2{iN4KZt-jzlf;fjV7uL^2gvI{Ere_l-lN z;TMC|_B*G%|Elr-pjZO;&F%+tbYyd}QlF5)YHR%`v9 zoqayuaE!pC@PsSx@mHE29S8~byyvxyzWL{ob@IOvc_wu=l&JoyF7hkQ*JBzj$f#K8 z(*#y$U&)ta9Vc}4ru!h~l7tS3Wu`jkIaPRCP7F_o3#_Szh0g zx?S^&6gPp@=Uj-%P%rCj0YOoJRZUqnDrI0>$h3Vvq*W=CdhdzL+mUrQe1D$mNoWjS za_!Vc$fcC|`i{l!(_tV;9bL}%{9+N_xACLz^9gGeALQcH_WvK=n~B$iC>~VbNc6PZ0Dk6_#{X9waq&T`9^N4b2Im+I$NRzWbqy zd|0I4!PyFOn+e!rTtTZ>*3y|XVhg_09)C~|z+`t~T*WTotAT9`qC3xjHSs*X(pMzAy1XKh zGH!ek_Kl$<{qU610OwfqKEfCD$?+11U8u$$x7_DN3%5s^p>}o5a<=EX|mP#Vs5VI z#C&ucmQZ$(fug2K;m3C!m8M`675YPMm|wnC)R|_VvJ1ey^(s$^MB7(Wf^Bk4!Zr_m zcbag;NvXA~R;)n7W%JsJT0cSx;g}=y#O}R^<2)Z8nstAFUGrtw)CM-Sk>GS1FqilyTIXsp{yb4uw`I3Jo?!pz+u2j@$0_FQ&384;Wy0&` zovvEG7^oM2lPl4`pb2ZYzbI3E=;rkbNdShCp|71jFS^kR#awC?=%p0r`4N2{#T1pH zbAeXVD{?aW0gRR!f}~RuB#oJbE<3>%yszd`ayEfO!&A}#rNzLEw|eu-;cVk6SiZ^B zX%ZbNds(>?UsS4k+(B0cn1aYC3FAR<;;b+It0A&~p1ZRs(6I5sZlo86;8d3|?J?>nqPw87X&{G$ICROWo=xQssBoc#DXvK>L9dhx zffV|GG7Dgw^e z8wP$&Gz;&mi_5DxZd?NEMuK3rx!yVt2DpggT*VIy-*awh?^$_EK6(d;i3r$|vBW*3Wr(Q{UVll#q(#SYpOG>Rwt;@QhQV5xNli4FTNPwLq#9tpkX+SXqar*k+ZjK$$m0B!+Oh}9Ca=Z)4l!^7#g5^B>HZ8)Juxo}$ zAK0L%*UvAHM8t@^KK)gi+5$lnA0=&NIfkJ=Z%X0{95=^5De}tw;OYB$t#MFG0Rle* iKL7#%4gl@7WL9x=gYrHK000(Flhg@D27U?v0000}z(4i? delta 2479 zcmV;g2~hUr6`&LtP)h>@KL7#%4gkh;a8z{#-}rh7001*akr+&WC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*+}Z#udV}|f=Xv>H{c`6Mi^@V(3zFc z8IlM(NZA%(S!hjaY0iy~0m5H@Y`$$$C`7*kF_{m+j<)+FC=6^Sj>9s^4h=hvkIy zvpE7v=`%1&d~A<5IVd83tJ9*a3kK7NyPi=0?Y%yI_~@U20BKa%dT5BoPsQ;{g<3Rn zfZLmZxT$4-6FsLN_B;JB9`~+sPnHkZ%uju3p3egVbznFS zV$6g{s`~bm)$!9$&@O*`!Pun1jD5#P2`RH3U$|C`dI^u3X1yHE8v?!Qy=8<&*ZZp? z_e}21{S7e*&Ge!$M6mcm zmi-ccRjFzMaF)D>r{gXtBEvy`7!HT|oON+fIBh{`{WK;D#tQBN>yuQ^l>{+*EXy+o zTykRQ#St3X&}pXraOB`gF;6~c-vWV5TNTgu1$6KR@TWs5l-5#h_YsiU-Q>0Cf)~}% z$xpuXvF_*fW2*o^8Wb7=hDb|K){vNwIfy=Q(3zIO!uU0~#$jwO|0gEAQ@78APbw8jCZJkn|5PLqYS)9KVk1tfmXeSpW666mfxp)|BEN^89<)uFN_o8u zdCE#(kv${un+Q@BRhKluEJ@*>%4+Nr+fA=GI;_@k6(J>dmrbsKLW$i`C7^NMg?>m1 zI2Y8yc9J2_5k${Odu!(d|I~vT8V|{TqdRrK@6DH3c7q6D7=f%Pl;77VJaqOj^Nq26 zec5*GOqoWy9^VugGnzv1hkL+DdKCsg2`vY6n5VEvwa!mc#MA8MjYVX`wFD)~je62n zo)KHBO4|22`kp};5NrcKoT4l+pB0ELWP(M~jOj z)^@f>_+J?zq6u_=AXgQbrZc5~@J&}m_|xSp*w>Bnp{|771j%7IsZ`Bv@C6K}NxHll zbjGLT7yBekWqu)mQ`z+fdI0_xG!!BN5~YA%Sc5x0hMT2}ezPrfg+it3=*gN{!fp}$ zN6Y^6ra9f&)L+ax8zHX_wh|A$jhsefp0a9gy~ zx|WiWYg)$!G~ro=9!alf=>F|L#@WL{nVf=bAhhR29?5n)XN>_P07`(`SP?*BcC-U^ z=8+UcGoFas(dV#>bPvjOwP$Ivy>4ne1U*Y_UTP8sYNbvX2n(Gz?ke5n;0W^tGGzYx z?0rN{Us(xwRJ>sBN$Z_|foeof{7U?UV-rd=yJGAS4N6&8_;XPh5C=88vx*vIlRSOL zktIegJG1P&Ncd4~W)nt3gcn}YGIsawA&tTRCwo+X4C0t&77-=AxCYM@w$+Unta=v| z6;mFVSt(hEnV==_069i}i{NpR`pK9w{_&_?dzd&R#Ao_cr+%@21;Vqztj77;=EHeC zK$R90EsRr*Q$b}$IgZt}qNFtaQMuGCd;68t@$Ij8U+lsoUP+ovc#pvMD~v~|(peXh z5cLhFLTU|79>1fqk2f?zRm)I15wJ$udoH{#s zF8F{fQo~}w@n0)t4VAO=s96IViWU=rxBa#&nXCiF?#Y@Jklc-)xm;s-5y}MQzE3dv zUOXl3wCuTlp3tYI>D+dL&SwZ9SI8y$N@PVC=9Kq&p9`aZ+#;&uT(J(lJ%R9F-~O}u z;Kmh;W*5)=Ak(xG4z;t{(;Y9zPJpoEz=}uuF#|CbMQwiv@_g=k7AL0DG+W(etzaT_ zYu`{Vc9t8bi~Kj7G}f!MMRaYl$49Az=eN|JIV+l`!cckZ+pz!+KuoQ_-6z?kHVN>f zv8HBdRb8`a0#xY5b z?__?4LkAB_J<;9Jm#tZ0DHH&6ORFJs8U5N8mcWc?Rl-8&cpwBNLPd(L;iD&=U<=+>aw7nI0^a%^*tq0_H!Jkrw=%)LL8;HxZ-8!C?QW^Fd9_JHRAZ3S~3a7@c6EtPV97c&MJPz?wQ&1O30Z_qUEk1e0rckGXar7GkeKgO7J~Br t`6yJ4P)h*NIj=5v*`>N&$)yGY) zMdjMeNNDb|Z=dh)-^cg$`r-A<>koLE8nS>jfMdWZpf@zga;;3!Q-lowbQJ(V0sw#z z_ptDgfJ@GPe)6G#eva;Uf&xRr9Gyd4y}Tpb<$Xc}1K7dG0S5qx0RZ)c1W(1^iopeA zL(NF8oZbNM3mqa@oH-PAv4-O?2pdkFU&w8(`7G39?| z3aJ%nS?Qlp^6B}6yG=>YW;~Q=lcwz6S6s7}a+fxl;&S7N^J5+Vp}$2|(ZGrm6Ck50 zEWs%tA!fJ~a2nh&z?OuaE#o!77Lm+zH1`Qru*4R$UUnsj@{5+cFQ0A;5}NHc;<$L| zb_-^hQqR6Wymz8v^HfsWbh=>$=G_ThxDPYE(AbSa4Atn8m=rV7UM;MoE4z;JYY`hu zhKiHVyMkKdHlm<6)P*j1j8TX7EJNvA; zwNig2N~G{NGpSCwfXyUYX~E%-EBV8i;r#D=ZU~-Pv#s*Ni)JzAG3=GcT27}}W>k9# z>0ne0q*Ps=JIckPNoTES9n{M!)1Bx<2V5+>AmRBZj=f553ms(kLga9Pj)|Pw&@+nD zd=q<1MYBKXhS-|z`p-Dd8}e)^nq?A~@Ahl^Uqy)es(f^s`&?x{qS5erO?{Q)%|*2G zE*F14=j{ly)T9Y^UA)0I2Co{kY)qJ1>oaee=9}8(KuOBTR{MK6eVOXw-R-p5X)kOn z9EYj@3jU`JJomU#@<47ZIoOdd9|w1YJuxrg9p;}YV6O{$RCZg$ES<%Bd1iHQ$&NRG zEGfsyTH%YzMZ#euUpqQ!bv_H(j?~_IVjxEnA1a zHGDGu{d?iHIhgDw*7ONObNmi*$?NheeidhC`2N!$e>F04Lci*av%Mo!fcUN)MvBXc zW7<>>zV&i^(Vi977XOwxe(S5%Ez)|V+OIy8P2{zICYw$=wAW2G2Gt|OT#gu8Z5Z_* zI@LDJC>QK~9Rk@s3RY^yYqhrRXsgqjGP(6hGbe62>=6bbZX7ogW+MFi4Czum=uWt} z+0gT`PW2RK(u0t6bb@}psOtjdR*|lT^Pcp@vIg2Bm&X#h@pDxn%8FZ@?QS54NX^FJ zxBSFGe$(Wh??tGeucasG(#G(a9wVjS%gqat0J*Pp-V4TIX=C73V05C`ce0r74|WIH z&Sc(2Yl{{7nbnq&#fp83ODxFUk1bU$9Y43qz>Nt{oi9*ok~LywHP>mbHk{F5XnhR0 z)Kbr2qsI(cs#FsxNG1 zM*p$$#R!hxkm;tKllR%_e)jq&Tz$H-|GGGLe7OTvf-~JbEkg+Tw#LVa8nG>Ip2PQQ z^tuRd@p|cpweizsTSO5-jO3$lK|UwVUJMZAGQgJQ+QUcqggR`b=ih2t8?_f`cBIn?c}FYdO%5$)^Nd~&)xw*|lET0=<1Hop-BqsO5F z2d^6O3XZey-K=V=TkRDibtPB#!PXd2xFwwT49Y)h2@;ktVK|X#C+G7^CPt4A7k|ZJ zk#=?LR`d_0mB#gTL@tqNip8?N0+upj&>v!KjF!ixnsVK8IOy}<@mxQBS7Pi zj_MjjQ#-%b_k3~<4*dR<58fB38Y?+^KNH`Y3lEB@gKljOY_>A&+)r0^m8y;vkpyA* z%%=pNjQUhJ*N)bN6)mJwlE;gq>=R8DE1&oLo1#J-xN%oN6_rWT^8+)qaehHHDufXB zI)|?dw_yC?o-k41b1F-g_04vZgL;OG&3&pCZsH0f)k}6B9|0(IGjq0geKqxzxlOdU zQ}c##R##`=&dj35vh(rrl~se8(#9${KBw!|)AYq(Ylhya`PK%;7?is{8HF#{^U$$@ z>546v3Z*z@lGBDrXiM7ynXixiQ-cor9S$VxYpMrc zeKAdX{ZEi0jV>LWwR%_g(O0biQ;P1+l}ih!Q@YBj zCv^7`0h}_G|%)w$X(bN!hOoQcr`{FM#{+k%kzw`gKVQP4s_1`DxZ%zL$ J=C4%%;6L<#JtF`B diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/return-all.sol-0.4.3-compact.zip deleted file mode 100644 index 92b4b9a9573aa0d9cc152a6d47d94feab21b7e00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2245 zcmai$S3KK|0*3#JR;z>`O-r3BAwtn0wu;bU)ZU{aR_qw1YL}{+5~D_>_WaDoic&Oa zZECbprL@Eh$L4D}{m%XQo%g+XZr;21<}uP^Wn>(!z2%NOsatY!L6#4G-e$fJ4X6IMf6e9Tr zA8S_nvCQ8iVZlU_0_hN8bb#d=(;DAEeb|1;BlL3Wyj*4-2i?FV-7Pv17+T74;waLElfrEF5s<^LkEA5eAFW z2fXcryTw0a085x-R47nDX(W|&=vIN>A-_II+_A{XaMgij_}DF)?=ETBIZ5a?ze>6= zbLpI^T@|dIbf36dl8xA_!(I;&6ggdQ@mn827Yz^lL^M<{NJ&=G)GFo+H?84){7I71 z?$lHjcCe>9x8v{C6G5ZsAKwgyRs~X@(;?`o&x#4x$CYv=`TT>FHXCz(-3wggv<;?P zv8`tLmz=U}X0o_ixGQ4n^`F`JPCNhZEzsnW^5XLh6dlZM43+d zYDzNSNcwQB-N2Y!PE8!8u+^8bha^jzv6pXO<9#%9>pK=GPD9UkB;u9=*5dAQo|XMx z8h<&Er&Lhgdniou@A_QFFG@A6Zcf~bew!AHTafRXWV0~3N!@ub<_8ILsAz6}4}n)vc%DH>z$}4Gy^hL8H9ari=Ss+`ID(b#d7LQr}q8L>g z&)#1p7*UyGBuyz$U!$Fho5Jd>k-JC@!isOh3)nDW za1iaLf~ctH5*3hXG;ciTD%SUETo-6_#Ot%mt>;gvFNNK?X;5DOAW5rracK~Pb@-|@ z9&%wEGIrobX)er=jqtd&d-8gD-KMTRzZa?YN(X1R2ry3Lb z1{2GfBVHbIkx>Xq-e-3$N2pnUpA}XoMQP%K7(tI61T_8yRdiGAl8ytR*LEYz=QB)9 z#S~7|OgMN08;#GYW%I~PgnntS*%jp`_yh6C?>`8)Qnf6yzmW-VOj>8D*$1{ZFZ5$V zj1Fz21YB0)fJ|QlXn1Zf5tjv`cO9XzzngWUmqSMxw#nM&JtA750+YHn=h~?n`tG8HN@=4jWe1}_pn_f?g zNnZLR;Nyu3&qcCG6xk9Lo9;N*QgO0Zw(T4a;SO}jb-lb5m$3SZgSX#(mLHBI&}%z- z?nN^3IH|Zx(a>8VuKjph{`sPEa`8eZ@sv^hq03;ogC|6}j>#`wcTx4m7)Cl>ep^8@ z6i0XSu-0UGT{%3}UiJXl)Ne?63sxx^g@!un-(*bLJh`J?YO2{SVHYp4dyL;k)HreG zssxitt(iH!;W_AM2CHA(d#>0YokbjgHzzf0_Sd7hj8l5V&2ywqz!-#p<5pTm-xJyV zUWcj=@H~YCM>>jPE|rFRxO2@=5K%^RCautT-BN75zVKE;E?V&vc+V=_=BO@zPK2Pz zW2YuY#39gkj&lKIH2LH^1_tiYkx2JiazJZ5HmqXT)Iy zjGE$SQ(QahxBfnnxlHeM9TpUPQ z(_s(YGMCDELzjUn!=2uJ>uaRPbPmbxPjY>-m3{On++hhv+}D H0s#L3?yxoU diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/return-all.sol-0.4.4-compact.zip deleted file mode 100644 index 6b4b5b77f641ec9dc3bc2456084d1d9c1ee85d38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2244 zcmajh`9IT-0|)RoCJZH&Gel;tkT$o3$k)V%l{s_FW{#YFaz)OGVNxcF>O+RKNp3lF zHccdka^F|3Tf@slblb-Td)NPVV6cm8pgZ2{4pxN_blZ;y#0fY7Kr{g86N$J>hnE7L zf9|c+<^Q#v;E#>|*oc<%o_3xmGT!A|E$<>I zxFWFa(XiR#=$kT*oEUSQkLLLKZc`C&fSLV>DVo8pV>T>w3xmH-@aiRHi5lit)NQ>> zm>yY9V+9=TCe(_}%6$sz=sYnHEl<0m*YhhWP7aAwt`7<_WRGAq2{mgq5A448wjR;1 zdMX>G@*J~@V91~e3rDf(xf?vvY|uzOHu5N&QMkbxb$Nvz=ICSKW$~~q zjG60G=5La#{v*s!Rrbrvj7gwT|Q1^I$KH`ZXG6Mz-n4 z6tB#6Ji2=KXWvctFz%Ll2Mm~J4ZtJtiZn?VJ(g}jq*w54EgpPrEE&vS+gA{}FkXE)=WjWt zoOxYMo8-X^4j%I3V35NV9yd;fE}gv5dEn53ZKWn#8N$+$rks$-TrirFe?DUK-lEFP6|{ zRctjw;tc7ymALT=o|FalEqsE~e*hxEgGV$bJEpDW;|BdAHC3ET5D&y8;%7&7m$qh5 zFafl?)5UeOlc9QTgL!pY&mxD0O{cfQ=dTOBN;cBGv~rScW}ZKUe0cu{$1*HaSHzbj z>X54>tS%rZRq*R%>*@SLC?ObqoX}AEwg8v@_)&^DRqq#QE!=Gt&^%BOnVo)V9^Ao3FT20U8qH1Q!CU}2H#OCFD%!|$j z(8^@EV_S~rgEQATv~n9)W1jqNmFjQlk+~qCX~)&+4j%j_;!}RshTn3?JR@y1)b_7g z#~~w-z{yn@g#2YZJjCb%+@dcC4G+uij4aut=_rn~MvS{~i5{MuS9VXh$mqYO3js0k z%jsNtW_fqoivIe58A`&MK8;b@4Wlk~p*!ytn5eB#{jCQle`2t_^QIYOrahsF@+&a= z=e#V6{T+eA^b$VeEpl}dw$ji(9X(WjBv*_XTYVDZTItpmf&2t>Tk#5Ol6r)NO`)0V zwCS%C!P^XajHxK{nLLlnl735*d@KE)<7Lb4^7|x+=@&#vxpog|FJ4Ecm`p(2o4N2h z=Rg~);Tvrtu3f;RQ)M6RF!L@pYAnPu8wzmBV>gitpcFPpHjO9?rg z_m$VVWjcf%ueShkxRz2@+h}y-#U#=7ka26Vtjk~*ta-0w7-wBVl8C+GwqYD8;`^ED z+Ge@VcV_)&ebu=)QWSCN5(dc#a!*R9jVtZ7=nL~BjWsbWg-YrXNsCoa2wVB0Zdng& zGb6Dvv^d^!C+ziQWq1jmy;Ac2>co)}bPpo9;&j{tbd)v@Qu9TA%oXB8y{XkS07E^Q zXA&Sig$QoC>1wjG;||6VMHtzjupC4JJf+e`y}1?1!Q2qD2BoB-b!s4u?4xGp3#;9B zy_lo0mF)6tJ8~*(`WizkAagK$q3j^jsaZt`%mbTImI1cNzrdZ0q-N{XGs z?feb`N?~tO%C-*ir{D_W)ydWlH&Fcnjwz4PfGsf&R-VUOZ9QIjl(+#nhBu#P(@K)R zz=Zp5!RrV5wH5@`p%tgQ(v)p(WI|}|GI0g{OA-X1Mb>QGrgX_`3Fi+AG@@53baa%l zsWG}^zADMeaI-G_w5@2Ern<5NWtB{8$!4QRzA~Zpe(g@G9%66-o45N2ivi2RR7&^c z$Q0{{h-JHF+Oxi^l2kWGkq#bck``<~O->`MpWH$!HQHv%Iu1#{`g$*3+uwMtjVT#4C%2-9D(g( zE9k53Hz57*!&=gr(h78&b01=hb_+R{#Va?3e?%vX+$okk9~s9dx5$=-Np-{oRYKb9 z7nU~3+cw3|n=8{<{*IIV-e297kW5{QRTbGH-bi(#O5IP_FDi*?x0GN^4G$LB&?#o) zYRUCV0=FU8!TWn%pe0s%Eq{Ez!}C>HtdVH-LIRO&CUO3DZcvQ7cr4UPS%H#o1GXZb zEq9B^CYobEV@daZ|L*0uK7~ZEu^VvwZ(sZ&#(xvd_V4_EZ6Fbx$Nqh?{VDR#I{&c> G0Q>_M@i^lE diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/return-all.sol-0.4.5-compact.zip deleted file mode 100644 index 0e3fc47d9bd3c161d3a2df97ff85d8c2a25d3f31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2205 zcmai$=Q|sU0>)$2I7C(J*n6}g(yAgxji{Aa(>HYIMYEjnYuWj*}WuG*z{$ zYVT615t~}Yu}53NZSVK{-1q(Pd*0`H|A3z*oP|{vzzhHaI)VbMgOry&kJtf#(rW;K zGynj=x(DO17_bW(tsLZ!c6JX9@W%!_yI|eCyhGfTeS-WkoUCjBM*sj10O-WUd0s!c z9{A7jry4Du+zyPlT(fv=l9ljH1?nG-H!8oiMHJQAvCQu9MC1FLZRC9yomS%pstYVO zzQZ#;DO}d4bmO%t>T8yqC=*Y#`kYL!k)SVNC@XzPD3wFgm@a^{_cHVG{*;u=ET@9v zx}}s%qJ_+pgF-8_bJE^wWWU$Zc2&gJfUBED(Mw`;ASUG@e zu`5M&Qy-Pw+x#<7-H$rk@g|oip=tn0Ztkyd_NNqu7NR`+_O}oOc@U?X}XM;Wx-HJHwDLBPPLV`J4U!*E$Oh9K>|x&;QTEcvWXf8E{r!dlFL1L5x0TkBoYwlF z)0g4hktGADa1uv0KM%WRe3<({;J5%ng>vxlPvoYyRr-fRlo(#9iY~&{kULPcNNA!W zxB^)y!aRqCYk9$=sMMIfL9D~Z-Rhz^`1^FiJ$Bv5e<_~EVOU;WlF|i?Pkr2@8({7K;+q5-*vsF$iL5Xu2~|V6J|0!euI*fCAvFh3#j$T| zd@KIDW0aTz2`8>4k zF2;_<^v@xCcrK=s-L^BxdzQxq>?=0{<-+2_`MPgN+zgPES}gsW6j&Prc?R)9@B-5& zR1|RiwJ=A2&}P_(mP8O7h8k{8Ea=k0c@dp7&)bwxi;ZxGMcqeGS(9cviyRV2k;;Q? z-G4ALCuaR_G5hC9s8brVc~2BXu4|E7l{OFomxUf|*s7k_=0ELZ@)iZ@i*8BFuo=#( zj2hM3)T9=Z3ah$8gcZ7O zmLXGw)hSg9hUQ)sSCE%~PzF^F(+L*L&@sBe$Sr9J)rn~k1hnSm|7c66_rnTBX5k$l`^6^=SX!b zwlNNCtbu)N2g>#Obb)*hh8f=A&lP$lblFY$eS6}g6kN;LH?CRA7^!2P7J|oZeTp!K0FG31-17&WC0)_>1;pWV{>qfhPyVCHn zYZ~Dq<+&hiND*y)D1j=zj8)_93$F{RmJtOAYM4_MvM{OnBmA-V7cqR}2I|kAc5PQQ zCXCO2f3k|%+@2Z6oa>Y0QDgi|go=z1`VrFcZZLh`mPpQ-H=~c@F*^d=m+gnvhecgF zlYCoCwQ*h5q7=m6_@j=}rJg1r=MKA_$e7<=Ze$VoYuD&d&2-;qVnZ3A?9SBwiujH0 z)@v`XJ6JJ2|3T@sIhrRaV^S`#uQvC)+8kXJrH$*)x963}#58Tga8fiGYQY0YdH%2~Y8unT6IOkKq79r+N6Xm;{@UAQ#C& zL=GQQM%qA#ErIc88RXc@xKY~V#)eRC0c?tWsoPG{R(&vA#JYZQg!Z#Jv9xnjvB}-! zJoGvFwcGquj_Gw(+n6ru7H+ZJs`2QMV T31>U^`^ogHmcOXZ@q7ITGU6vF diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/return-all.sol-0.4.6-compact.zip deleted file mode 100644 index d2766ae3b7819ab1838eeb9d4583d4a97bd02e71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2208 zcmai$WmMA*1I7Q7Mp}o`Eg-_EG3o9Uqy&M1#9-1LIyyH7%0tHpr6i;jM39h1dNe$M zbR*L6>ihjY@4X-Hx#!&P_h+C@KqwE~0;qsaFZZY3iL+bhBmht%0sx!<0C?Ja`*^wv z!jVWJFE^yMy}!Ggr?)lS)6NOuYcJ&N<>pF8NCZ3w02Bbo#>6;^U5a_&Mh5GpDYH6V z5j-udk!V9kIo`_KP0;F%_MoB$GlGQ!%5YSFi}3@O6|41_fx0~X?NjYE$71rQ*Haps zvy~MDnPFOvNZ2A*uiAYVU?@Fhh#{F&N@I%N#@tEQ88L{)+>**MA1G0Xc2#)W_n;c{_1QUpC=ZATB!n;&GOQiof?;i`DCeSsco-)2oApk%+qp`Vg+_y zD=a$9(d?#9pkkXa3yr6E4WX1(*7hC}XkFi_iViuxO~FsVP_$Y8)n4T(SV%U(-8zlm zOFs^=4PQ+NeZ3j+THADK+GUs0ThXSLSH|B!mX z1>Qf3C-CK?*4{MsAps><&l_>)6(@wGRJG)eSjE*0-z*Pzt?uQ?`8BIGv0{JcAScou zYjlEgR;Z(_Yr=S?B=V@30&^V)r)Oq^XJRnnR%#~3N){RmwW9>uKYt1>CTM0k&DB}#)rma!^WF2TC zk^x(GF5pc&6m6$Fp%L&pL8t5m8ZMnogMVxlVP2tQQlI(8Tqz*o1u`LhMv~+-+jJZP zZ^j>tb!t{p$!r{c_D^5E4IlW%ufo7CI$q>#VI5Jsxeb|iIDtNfi6p$xn^eD$c;=n` zudv)VpT>u0PX^pEtRW&|Jnu|}(F%4Sv3gA0 zuM45KUH#l`guo&9G&-a(1uW4@%Oi!y9lQU-$0=1K5V>|nPCcv6_y{zp^2u}^~!R)P?Lv<>qk_Pol5<@;uTKj(30*?ZG zxGXpnS^Hsnl?WH914_A`>bmBA6hjzlIEY=E*o~LibelcPmLzJG_66bVD_W8GYUO+y zrm24ZP~A?YzK={zvN6zdj)R=9DAS|>_3VtKiDIHf2wnKqtZLvsykWWWm%l4h30u9Y z-OM!WW>A`B#kufjVMu<*)!XcozO3L3bz9BzRPVi3r?w;6-7ne8<<%uEKBF589#LqN z80oWcDve$M{tkR$;J)bc^_4vWSx!dLgdOd6IB*LA(R?rsl-oUkH;AxhE|n;xp%&!) zE1N%n8y&FndfUq#ank(ch)RsRc%{#1L6eBo471r2j@tR*qGy-Y5_8;q5Yru82F#$J z^Gt`~{MZLozNcUy+ze#6rP`_p?}UkmJikavH>c;6vNk=G`JMdqVZ0ETg5mP;F}w$&@^PyF;|$@cyy4vv;YE7MF8#xSMs1tpyF!_tbyvX+l}$9J%S!;U`Rsg1|> zbfh8?SN(IS$9>sdq=_^a!JK}&$RAp;S4rcc7D6E7%lUUICUX=sa{+atc!s-V*X2YR zK~-IocJqOXmC=jPJs3>?{P0>*^npaFuqE^xS`q0du<}y9d62Y~V%l%0aJ{|oPRBYj zeHW?FIR+3>)Q+-AbYL!i)vLkf#qvz_KAaKkpHCqeGW7rdWVU z1)1WD+y|_RH|7stOaMdebu3N$hUv^8thBNqYyw*;+DEN-_3GoBG}|66^RHpt-2`HS z9ph`uW(G~3V6TwZdz#B;u`YOu2_)Snv^UlT1`zkWkVlhWtG!c1ss5 zL=c!N`p{&TC-TsjD_q`CxPq}LVMvn5EOlT{W5zQViEp#*iS(ij{?N#v;!?rG!;+jR z(@7UQhbLF;P^I$q&Y~>e^^Y^!+9$nKVg>WkF)}etMYKI&Gcw{xM@p`S_PmeKA&1Wekm%Md$4mnnd*K#YKZ_L4)&fFaaaQO1 zW6NL&e|@Zl0iS7Gsmif)0+tNRG%;qWZDM}o*T}VMpbfeuPw>Cl;SWCiS18cm`2Qqf TpiM;lcM1AqgFh)n`nUZDS_>B} diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/return-all.sol-0.4.7-compact.zip deleted file mode 100644 index 61d7e88aae6ba7d9dffb0f2c6fe1cb8faf5faca3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2281 zcmajh`9IT-0|)T8d*&)3xy2lzIZDhia!-ziNUmXQZH~S0U8J&RH;$=Qfg9v^9WF|^Z(cuA2OCQqmUe9O z0xQAJ2jkX@pK5D33K9{4_;b?={g&c5fO-Ee^F$U1W<4(Ea~WfI70XCVXLn#tDm*bs z2{y@T^IXBSB#aL<#8cDv1%0eetE$<+7=-5wLR_%~=trAqtf+u9ae#3ZIR9O*4D)YXb^^HRwG2Mqd_%>p2I zTPX|QnV%$*_O<&xyn6^|x^RC_iL?>E(sr(hWkO(`SW2+t5qG(kX~s#+bof4hOmAbE zk6|%hHvM@yd1UcBzVl~2*?o{ckus^!!!PU6)08hxH2}M7g&9Uo*-vj47`=_wy+bb! zK;|?z;$Z=Ka;ELmF5#`%WG8M_ezY3f1$Ty>=b%EejKcop0Ti^I^4{dSi(5J2i}jyi z>(C6(_AfG;XP}wSjvNeeIANEcRtCQrR1KAsl)KfnuuikWseNwf7_6j7UFOv9Y9T1m zH{Zxv##TPGzbo0Y#u7iAd9D)jx@taqU?(e2;v(*+MS}OL^mGAU~Jl3+44#yDz4jgI>)&6=^#A7AM8UI&9htzEw)GwEG{eK*c7W_e$ zed%PMsJ9L=i%D7Nmi0|Ui9Pj7Zm){{`uZnfF;vD8SiF_sJM3tgvYjqUB2?{iuR4r6 z;XIXwtf=uoAC#`g7ryXnTUmL$H)r2QMU~q`yC+yb@b;E0TV=R$!A_tDG}*EGo&GW0 zJr7LiK0($owRLxGU3vL5URMKO^o%3;jTuVVdwj54Ut}vV!d+F>wwh?$S5T&B9Tu5zb7Diw=qU{?NOM@X$^kIMg2 z$%D&DgFl+rsj?vM-Bm#7(yf=MLB z?H8*W1Dstzz{rXjMRzuNR*yc)E!!GDH!3NN~P{F$q6D!S;! z(GL)G`j(^AKv=J#t*NseeXjz;i5S8T)2r6<+pqf}ZDqBdDBZ$Ezz(US@M9{)lu}(j zMAG+e*uE`2ta+Z7S&E`$F;h?Olq}8EAz4TQdrrV^ecVWQIa3QV*8f?2#Rq4a?Mc$c zQ>f~_A`^pLhCv-Kw^=zBTG#G9|7e03rk&erCJ>`bCkgbnGO=AVd3eO-LlyI;;i^Xj zaP<_|Zc5Ag4f(fyG2p}JQ13`TaJl!0a8thH?uV^!F1&P;CDhfT73p@0&Lcump!vlQ zeb8=9o~F&-)tejh5^iNL?nuha%~q|a2Fhg4JR!~nPlR)pJEd-( zi}#%FG1_>*{-jAyl#@Xc_AP>msw(8LdCw+^(2C%m*AFm?mPODzn<|fC{UqaxigWMf z9}cNwj&qB!$$a{guF=PVJ7`=tQ4efK_7`>_LSo(4THAuv?eiH9A#O`(ms5iCoyN?olavb9OtlCe(LvOM8*@LIB+@xGkB<^dG zAml@@=aFywmy8lnc(;D;$dz^pWP#`V>?>baB7=-`YqsVPO3|(kP-e(9ESX5SIh?VA z{_T`pT=;SD}ExohYzJFd5$#>LRb;q?78TE-6$b>?|kuLYHJ zhZYSjPOg%=x*YZ%@6p?mO&H104PlUwolESPTsUY=mDYItk2%avaVG5&I*jJzG&xP!;l1Nz9J|D68Rz+PioYf;q*PwD7x9{^M87)z z1dfOQussGA;MvGEKAK@gchck`b6v}3YC|5G33}Dp4devStfC@(bh2^U_)O;a^l;gV=x_=`k|$SoWp;;k>2X+JHD{oU)ehn7)Cy#!ID@ yfZnsBhZJ=Uz|oeC9nSH;5%Sj|{|%Y#-}(O}akS;){`blDw~l}J#$V6?z<&VuA296z diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/return-all.sol-0.4.8-compact.zip deleted file mode 100644 index 68be094ba5bcc6325c3c1e059d6d97238cda3fb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2282 zcmajh`9IT-0|)T8+f4YNVHK7pBxj0{lIFgzG$v`7V~k-GIU~2_N;yByLauF&${ETL zxh8C`u&|d;Aiu#%r94u8vu$_0N^YD z0RCuvpg;Dai?_EzfUmbRn&9W_k9T(QclE#op%pv>e6b*Q4!{WjA^<=;KHgpRP!(77 zd5Ele;>CL`2Hqwfn`{NWcK$WERjrQE^`Mk;n~lDCB06HA%~slL3AGwONGdd6-!sl} zui&vcnlkt{^SXxZd6bd6_mw%Rj|fpOVE9?)uo#j1s=*ZGu7iiECuS%)h4p@B=~wds zHJ`OC@B7+quJpWrs+Z^A6*g2B!$XdNG4)S z$8P)Fw3OuS&Jq&se9?^WS<@z(y7i6*P8jFmqB_}KUhY|y%FpeMYOQ=|En77O2|9X? zi8#fgZb;v97wfuTGLLedUZkA_f?saIFxkj??^I#)t3MLtMcG6NcQ|vZuVvn8D=3>* z6ki%jMKSzWO)rgCHX$mYtudPZ^dhoHxE{Cc&t9#Gvb-;Pbgf8#C0qX-2Qes|0IOs# z1aD*OOB(I@3Zvv9AJ9#3GwgAIeYDpoz%f#MGQ)BI*zv7X z!6(6&Rd^bspS{nG_Q18GY=DEdBYPgR&hEp4&sF6v%xA)~9>?tEFxGky+`(a$6SKdZ zj9siQjSTW#_&vUEz3rgID>$p0694o~@1kAZ{=I<_VuSZ+_4w#p-aPK6>CI#CuKYpQsitp@k zp93&_zC=pu;a27^x8C^E*U|ZnoG_DK-*)Fb7CaP7*I8s{h_M{e4fv%BBa;%jW+%mF zzi-SM#Gc`hLX_6=9jljqTu4ftxa?j8DlR|$?kB9VgFPqjO!JVluJg5^po^XKsPwpz zE0rJ;R0-E7S{tge!6`iW_x06_s*#8YAAk&36erIpQqDg{z}xBlX_D!O8gTeIZ!hLG zTcmFASu^1V3$EVcevHhU&zQk+{ZKdkrtl4eUt`Eh9ybO&5`J?371+K4M^K&iWVq!h z;l5ARM1F$$g?gsPX-M1jbTM2wGegkc(}<_p1Ok~g@-HE>VNq8bndlu zv<9X78fK?_^2MRl$j!IOo7J}qWrhB!#}$>|C+;S>KEPIKtT*(eE|Ltar~yXl^JY=h zlF$sJzl82RblU&jxrP+2>%8mPj%>`0vwea~w+wH4PR`CS$qx+rcB($_Mw|@iH0G1T z3DwyyvkCuK0Qk2hyPrqS1JMY|i7_$ZROVg}$Vp|LINU_t%x50#yJ7f51rj!97GOUL z+Kz@3GEhfG?1Q9lQ3H9mQ$?y%EI5)C!@ehm>NxdGAH%HBL&bHW@%c3~&>L-M#dcKH z43$iq&Q$O$4A1m?bdzu+oW=3FR`-Gv4ISIEJ6~i;9;rhoEK~dV`_p>)@Y18!?%N#@ zvub-4@*$O#E9GXWEPd#0eY@QpbRDv^!rQ@Dn5MB?$S)n5qPdqa>^nnfwLdrX?QEv! zW5rF2&*B>;%jW1`=o&VBG{5YR8o5z9nXwYlL8-X{OAD(g@)v%#2kPRg0Yc zG9;mwwgBRtl$KDC-!i0F95@W)T5^MP57rT`;}?_hi!HLS@j*ie82|lj(Y{nuw16H9 zweqwQZmvfheC`;T)qOaoaJS&*@}on2kOW{KG$ z&RDx1X}_yX?3o{5E82~`A~)VEbkgsugh`P5GwLB)Ba9aJ-FSgvzL7nZaM5WC@YfFE zv2BkSjkx0s+1=<#mqx1{oJN5%mKxq{@m_A!>#02`*_iyE7$YZRMS0|@73+5ZdWZ!n zO^VRO`KRW0+oW^sH(b;L+cv7~sLMkQ zU+|@sRW&qRSm!ge>DU!P!^q{W@Rnrp6mO3zP2FkcqA_+H;`Z31olLo5oGM5 zN~F3aKu`fY;22jp*UZ;ae56qR%H`e<2?~^u}g8?jKnX4G4usuFXZO619Y*tZh9Q#vB w@SEFFz#hrMn1xk`?SCue4@CZ(2$p~6|C_|Zn1l1*C(EB&{Mnd4q5**a0I~i}MF0Q* diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/return-all.sol-0.4.9-compact.zip deleted file mode 100644 index 99553d7dc99e15e75910936816f49aef4138260f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2201 zcmai$X*3j$0>#I^XNjzZ7`qXZ5y_G@>!b{W?E5whBYTGUBWqd4&>OoEhOvz;WGTCN z6+>AkOqPhLEa}zz{?5Di!#($$`}LmlgPJoi>H_Ei7XZUyA@}b*NF^S!008o;0KioM z0D$xgMEY`a;RW&!Lj@EJI? zY<8;sCRfRDuphARN^+)+h>mO{N4GkWIv7($vS(O6;7UrE=(Cjxpg3=(PPUa=@BB2! z_~6;^pOa0$d~75z6epVb1Zu2EjTs9C0NxhmzZHJUs%1*PJgXZNFYan6t=>1es+FCyfW5o=?yq7)!pLzBI3)9(HhJZhqjaU z+w!?@9I+X=BtH7O$7Ex2opoK}J7Y4*q`^og`UhZ^A7j7=lBFK0@`gCY`%PV1f0yfz zOuV)71}T;!wh8$R&8Hk(Uk|+QT(_!76igo>dP7 z^yBMyUKP}Z%fz;~2v0hruW!`$*jy0b$#T;7v}ux^QY1Zt7Bvtt@ZspX(GWkS$tYED za8zNfjK^+1Ui8TmifR$p%n_t84fTLA8i7>a3kHslosP`M&gvcmlaL|HCY@?BWn-+>Y9u(!*R_ytgjq zS<*F}kLr?219sTXDQT~?ph%eauYZ5F2o31k2=18ni$5a)v|xPU!8(yD#+i&3{C33^ zrh0Er(!>6h8F6Pd1!5u+gJtef<#8yN`Eh5%ZP#-OF+X;$3C zlEP_vDs9N`K@enGy6RijsdNqU8bVap+FlcWzF4Uufl+w`wp?7z;1>Fk5N0T9?xY>Q zY=%pgGDz9VtH{b$%UYqOb-m6JXfm#2J19MuZL4^3OXZ%#RA{_}uU5&Q+a=-yc&RY5 zyI5_Gu}sRoShXK9I))P4u^p7mHFYDAW6b;J zkf8Hgy^KWeY-%SC6whEYL1AQJFI(meBAu{=bL7ehL}XZ$+m0_0^E31!qBIp}Hlg}A z6|tR5{XEn7&pEjeUcD6cd~)?!IRRmRf5t@LcWqpdFPgpFv1*%}%m0H7HIt-La+mF+ zZ|0HbJ3h9Vb*!g}R20_CHdPMP6S37T%ZV~2FxcaUmD`n!Tox+~ZKX0{E1 zy%Zqgj;!*4p?KQFtL=g^X{Ks-%bJZjQ_sDsxy4us53DtB_c2J;tWOSSC=T{pNECrW zgXQ2#)p%q@Ow;>ItAl!x?j3f~?6Hv(;jjx_&@mwGYU7*}k^6M5 zpZ&l}psrim@L>_SGtY$JJ%6jUzLS>Sx+-$7kT`j`K--3Uk7~&piA5IRKRSZ++_8>i z2ak!(nZb+z!n}l4PcQTAfZjZ&^`N7d^`C05yEIG|HHHGE8^qijd2jxGEH^jUR}9uy zitB8d+wko$$>y{izg7=|L9 zyOm_`i(7rRt0~ac%2G4BQcd?DEsszow!pg=$t{CQXgPF{fJkP*Ex}d=c!=7#hOzcq z^AC~|rcZG-`0>S@8J(vTTN6MVv74A=r zZ(gkWO(i1-3`9obmLwhvCo6YkroBbaDZH09?1}I`T@s8zU2fObA>5^w4Sw-5O5j7K zSE>u144oTo(s+O(x;+~N>{f_rbQ#T+Rt9UR=Y&xBa6!5zQJPaE(1x~a!_cR!G%#;naj2mEHJRzN%Ct|H)PgfL%jMWPKBx}6 zr2&`Gu{Qg_e22(f3i#g7swG%`S?c#hXwFlpIUT(&!~cecKiu$NCD8qi|Bnz*b0+4$ OOS(UX{z)+F-}WDr1Q_c8 diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 711b5eb9477add398675153370ac3f6d68a1cd40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1945 zcma*o`9IT-0|)T8bD1+Y%Q1_LOwK5uSaXChYve9w7|ESbt|B2CLKfvJXW6hwjvR|h zX3j{dX&)(9ORhEFKHuLzkH_cr`r-9>{RL07Js-b0zzc{0#HesAYL$<&E(icfO#pxa z01$->3&-mmK^P*AAfm!9oWoxZ4~vXG=NpL&B3!~Ff}_GN3h@g7-T;sc0Dom<1R8J* zBFY(WsmDd{4O}FscPppe!YH0N^hCJBi2SuLq57#C-^X>)YsqiAT{J=#d=@i?TOT-m z-?A?btN~-W?=W(lld49Pvu0>K_i$bN7Of0bi3kP0l-rJ4-5PI8msqv&py@u>9=j<4 zQOO+EX{zMs3F#~Pm`HiF@)Okks5kZby-EWEx_ya%@MF-Kw-G$GPLhpgK@Y@e4b8fN zYRj&}Zl%YJ(NCnRAm_rQMjoa%YPuGUL*iFjJQ0B!dRfDkC6e0CklpLrmf=&S(O~mh zRZfoagLe6pfJ9x2#Zg^aXC{j}Z($@qbx*K)$#i4vK<-kD#obxRYwF5=hHfs&PTtf> z%=edO%SQ*xDp>8C4qP?Y9`?K|9!0IlI3Q$NermUVU`RB6=EhlzxxNJ@Cd#oF`IuIB z&FjWOd_`zMarES`kWHup|BFy+vk6JlckjIoox$kqS#oBB&B6s3Z^K1gVgw4W+$H_g z>Y%8UXdnWZ;2bI9r56(n>$Y9}kUb5rbKKH?+F(s$)pq^Ojh(fY3p(H_q06}J#T10F zaX|Bq6wU9-Z>3>5R;y8}f;Ove(LIPd@#spCGLcTzx4=LB`=NjSwd#$geF|=#cBtFO z8i<2ll0~@H%%=$@H-few+H^&<1FTGm>-uI^A=aW{4FRL`ol>RT! zo(zhqp8qzp{;7W22ENWZbgw6#Ua#mquC~z(*L8Yn=H)D!y-><^>(8GTu&gNmF0RAt z_m1veCYcaZn>=Qy_&Ta7Ycje9y>s|hgkk||!*agE!7g+J8d+56ah_$v2 zn-K~Q^V=AiCMnU^y2Wvk)!q5WB6iuxOrbquxoe$0kwtqJHxm5BbD{mJiir;G;2q1f zBZPu$WC#}xZJ*tPc6>{y=0*g)JM8i^=i+%~0xk(`aZn}-PJRjhp-mL5y9xX7Smd6J z$QD_jv4Lv+uH=cKq?53Z3|c@UylEr-&~>cEa7mp}y+)sI63R+#X3#1=oXS?o>cvWg zZ+=^~uAH^k>F_wU5?7&wfQD%{@N;2CLbBL5M z5D%+oue_#E965G-N2nH|{Njg(u9m?>+2W|)Ce>9?ywd_59`{~FY9wb8VSDNOnoDt# zXlWaW^P4QmuQ#^lx|Pnc4ap&FYio=X^5BVe^O1!;eW`vu()$r5=Y>qHB&>C;avc~; zvi!_Zv7_v_iH=HMLJ*NV4C-_%Gw;mp;|}ev{e5nO4`+GyX9Vo4X!_)7_*peGdT64! z;#ADsfZ#~OFNcVS17i9&+zRHk*u-|&ERU=o>FE0!lm-1;WMI;qAG)A3GheAHJQFDs z8h1;bCD!Z1+GCoLeGS*e<*UZ*6Ua;3nyHQIanJQ)Kkf11>$KfBvjYbQIMh&&gvH7& zrx^wH{xo>LzO)IXOa_&#qtO2NL)>vYIjq-o)ct64rj|C2H+SgzS(ssD%x_hjy^3#` zXb0~fS+itK{mED$7W2gYhGGOQ&@?-+{*drpSY9xsiGO-XlG#u}I?Gy`P%C*wi0i^3 z%XtKg9M4?nH04hp-EvtsUySic?XiZ}J4JA5VB;Kod8kq+y{yaH_ zK*q&2JoALUMQo2naO}UXeNE+EM_z@^AeB#E)#G0V4VjGSWFpx|pT3e1e2!H1V0DVOO zkOcsM?B-AOIEzB6BT-1QKf%T0HqoCH;BuYhcGEk^1Boa5`w4LK0Dl8OBmn3nBzURq ztKBLXU^ZM9%IWa)mU|-|OTkI}sZb?I*Qj1-3wzdR2cB9Nx)<5==9;|Etn++AZ~asA zWez6Os}y2=FoF}`N6To`*lJsN9H`JA!X=g9BkFdp<|FfvCCnq zl=QNf?jd3~9p2SKmDd8?=DULmM_z1(%gYej92I{BtI))-awqbQG0qB;?Y|-g6LS^Y zpy|byLXeaf6<|?fM%wNnEzD*Ny$f>HbYJ%0#re#NLN#n{-^z67VLnFtrX4(-gMSNw z*vFdfyY%sQQHx{&{+;rm+~5e8x#ty$6Wwp!k{8FSmA!{f23_Z`%Q0H*i8qn|!!_4V z?;xg5zZ#|fMMsG~S$xoI?7~!iIt#kNh9o-~+J!k?)lABHb-%hqgH3ozkAkoH-o&Qx zJx-ffJ>}jwvxJ)^0{YZeKc8a!SJ$ywiNJAs>5RG=?2`y?@5WlEsjz6O-;Fy&w%IMU zfT<7{G)0BQ5|q49dhTcIri@d(wdMQV5$5n*s>1BCKZh1b&bOrYowu>!5(!1wPk6bXoBDasR=xPN!*H+JB}wgMw!u~}Ik5lx3q#fu zgL`C0^x6lKmGe0%KF>=a>W=N8Cb|3Cq(NE17;1WlEtK|@MbJR$8D`T2iUb~I@v}Z> zEnYRuQe_W*aH^(JCy9_~Sx)+B)X$E?b~WpVbkR8~FC$DijSwFQ29N!<5;DU>*@}l% z_?9{GvictHHXZs^TC%%T2ef9d4fJh>;>3R~Q7~J0--I)~-St&$Ew-4auaXvCZ}r_J zRJFlrP&3*WF5&SY;BVRc0_wGww}p|JGQmqb&6*Mf8Lry>59T^z#;@-eQ2`v@Vj_H^ z1Gnpa3OgMdb9SXqfnsWdhF-6aBkVhlqwy@%C_h@cqFz|+0dHvpTAyceWWKf|LwL7V zyb!NBEH1iG!q|kTaFz<4qYr&HshT^%c$jGLAWES8*kwD|n0gx&#%(CLER2#%Fbadqh#l_aWX&v|ZIk0%x^ z*Y0SkUVk5;jF8#VD4DGb%Xo9Xfm9IK0O{1SUTC2-GlIKTed zP;VtOJtiaVkuVW;8jz~#uu_+y?9<1&*QZ)s%3j%3y9YMac>%wT9Q3;&~v20 zQv|CEXxCiUbaiiwlZ}|HqQ#@d%bJ^`{P}7>^&zg7H@agDwW=7~&(b?v^wT2t3QW$d z!C&ZbU4)&G42g*@NXZdrzR^@_152r-AQSJ5h;BN7o}4zyQ-jV9=^z$%Qm3Vj{jOBu zy$D4*SHQ8t=Utf`IiI8-98c3J&2c`ZkxIXZ=HX`~kBgiwyX0)DW+y3fmwmR-JW<_! zDNw=ANY46;*vcC&mK7Dm`)u`M&joHePI5(6aDColVGCD{pFg(U;LJQX`28}e@JC|d zW{{z7N@BJOoc|e=gh1={PpfNBLh@)kMg^I{tFehtkogh!QvPr^r2S9kR$e(0>uO*If4Mv)gorNrzTdjw zM#QcUga!K3JQnURvjXNWAM!~@jow~4YVq#T zk}f4KXuf6CYy)u$aHM(D+N~N%4qYTqP8pZRft#A(2T6!_zQ{_3r_{-ZmV3AE zT9@!Tgos@9iZROGGV%IG+)kSo;kEVDhbCzqv}7YKFd!~n@c;JmH<|xUBcD}!#*Xumb56|oQ3*K%nAg~P}2pj~m$wbcz$cpWTFaV5b z0l+Z;0LcCXB2M2BZUQ%ilL;YMTojQ&3dj19`~!m`aPVL<0WSs?0(<}<0RXJ1)BxjM zR&v zmpcK~;+}i&-Q{=f)Jz*LAlz_!dJmrPdy4HV;Gw{5+369-%-1ccht`}fa$Y@qr-Pea z@Tem;H-2wOkJ7yFpbV~U`Wjf@c2k0rna=dMEqPvV`=YAYD;J2Ob!4l@>)*hJ;)9KQ8=W6sNX387#*@PHBy&x$C7n zEK7Odwm4;(%KL3UqPnc-dZwOpy#<-(3_aG0UTNpeM^>jw8CUpAKU1N&s2b8cuIymX z!9!h(Lo zZi)pZnFTgVSz)u5@hFY@rlW5SRr;%I6d5JfKa*#2Ggmnx?Wy}6C(OFjF0kjB5T!-T z@`A#?6|d@^=?T(@sZVIdCtlYyFD3e|Vp1bF9;?o1=3ez+QbUGtU5&jhXb!fUtu%gv zm|2m>8{41yI(2VEQ6*@{DAB0{Eoo42qPWtLAbwPk@TASVKEw$kggAi+vZo^8t*=jN z&EI2Q7TR+h(UFXKW}0H1@BIqOdv?6Z)iu!BeJkUQcJ$!IALuoSqW8&J)`yrxMR{>- zOO0=Qwu1+;Goh8Ra0EUSc42n@U9St4QnAz3K4ksY1Xb3}^KNXGJfbBgjJN4hm5cSH zGG$GioskKPJo}ltyXS00g?bF(5DIFae1zy0QD&5< zynun7jo;uuGp9Zahy*x{fvbp{$PP@ znhbw)W!|;lBj^p=NY1XAQNBKFp9AieaWr9_YtH3yl`kKvH&rn-4{@jDB$(otC$cvJ zJK1IJPeVti|0-d^pZ!icFC$q%7Q6Ft|4hY^Tk=4wp(4IxB2)be%t@DU78VoZIUFX- zC0iq3dB=)iP9;?xvn&F|hAe<;Kdhq2KHeL1%LXt5>x&tqGB z2fVAzUZQ{U%2O9nDq`9FuG{&C$2hDEuC(j)Byl$1gVcVu%KEx?Zro#L1L=8@kL)=~ zeSL??t(ew7>487#!YgMYqd{y@^XHN!+&<8?q8QkR!s1nC$Vg^13$=eJ58H2B=q-*L zztqL1DbaX#k%g_Dx_ghUv`Qt%*~HN06BZEJx01tRabA(;u|#-F+s$uj`qm5VzCl zF^?%-nAdW|m6_FASbV*I1@FJ^)v7Fv;qAe0rc27xq?D5VQv&vYn~Q*;4d~y^{Ke+~lOXWV Y{0BkZT!em+3jhMYivG1mBLBSq0rV79Q7#4TBaO)imhC*dhMUKX zuLR!T=#H)PPv*Ivsiv0bFD`E%tc`GKvgBE%OS^Y2XVf^I@E%`z{x{m*=BmMr0+)V7 zpMQVh9K6`i8C-^OxtH))nHFn!k?}@Uc6f0i#k|4n%g^MU$Zml9{E2Z(o_jg>ofOWhvZLa^U{R)WU=;2jSS!m_Wk1G&MeJoAHyIxO$KAqWFK?a?b# z$ajKK3Juyu=NH!;X4YV)4zfA{u+#c7^$yzw3*Txl{Frd5xs$4>y;nI2KSyFjVG3U5 z{nUT-S>Q*j+$BqhS4Ed@2M%t%qMRCzPfz+N3L%b5e7U4@sC03$my6JEtrM(y5{+2SMo*ULy7*BXz#VJA$ zeA8*)L1@nGV^hH3quda+cvq9pRhMHMTEr;55a;v5{e>C3 zn&j-}xocr#yA$5-!9-sX$&rO$FdwPf+4GBr^fAa z(bWbrIb&aFhEm&0^^N@b2h*qROC;)Iw?cg%eNv9|GtUu7Q^R#;ttcIM)#{5(^S)CB zRw#yQBy85-_ms2T4-rKC!*V^*&W)l!Gx>bBD~AfvQSGiCK%P*~pM?tL4v2%b;GP4* ziqx=^qvi(?QL{2mE0Vs};#=9x1tMdU#*-ztIHm~v)V;_8-HxL~VXQU3Dk1c%uRUJP zldL>`_MPA#YEq3SG05HV$Vt&uw*!B9E!>UBi&GK1{0;Ife@2@0fx6?aUo3&C91X^!9#8Y4N8sM6)1 z>aIiIKs*NBk2xz=(=Pb_mC!=R9#ceCfT8R2wf8%D++4L07u!T_jo1gPa=crVrD=g- zc8tBqW^L;ogr*^(70n(U!R^XXo7HRKwoRkU))nr0`67f~vSGI&%D*jYVH9!S#s}N;ARp4+vuKpk{~6j;Bqo?2ok& z0c}6>a@Njn?w<&-HR6x9hHl-KX5_9O$GvBC$W(nK4eVm{TG(tmopaYrE$-)<^Oh4X zDBqQvzk3{0;`J~#MWSknDQ7E`L%(*BIuzurgIu4-PAstv&`XGy$OeR57U)!m1}hpAnR69j|+w=Z&XT6?eK+Kxj8TbX>WCDnCFBN5IiOH izrFoU?tc?6@bCN|`Z}RN`~JNO{O*O{OZ<&D0Q?6sq_so< diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.12-compact.zip index ba97641b4d7dc58faa92e08a4f2b2eb66164d294..ca8bb6a1e38ea7108a29f9dd0519c53557b26f02 100644 GIT binary patch delta 2245 zcmV;$2s-z&5xNo>P)h>@KL7#%4gl@7WL9)itNM}%004M9kr+*XAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH43ee`kxwtif5Z0?VSA>nuiOjD&-Fo2 zf-+sE>IXEeiEy$Z%l63~hd4S|D0`;mVBcknQ$~OiVWq%gV19k!nC6KAyxp2Ln;jK6 zLW7Aq``Rn046EROaL@HNBcwGnR zEuN8d9 z#_R;AJL}n=KJ2>JD!GL2izx1$<@|UYwF)fZ2vgEr+BQpnpP*7CaSqWF2uJ31chmItto z=rFu9eG7K+VrN5X9bRa^v1b6K@gi$JxI{g?gHy9@-V`fK@&3AlafFMQ`2#C)@nSV> z&1e;KZrfge&@523c6$JUXsjrDN)*f}s%`H9+Z0n{(QA2d-7e$Pd6NiF9l(CL0s+s5 z0BP$F54J9&H?IVm;!`+6&KSlgB4w=0j;35czVMPzLtY)-RP9BXJ?J@0Hrsq*yaqci zK(qaHKlMkIw;x_nIvjsKDi_*+oArrWQ9f=7A0rqccN=X|e0jYiBjRhLqfWIg5AHka8`F}|Ay~>#K zV?AWza0W%kXDi|EXq(++oHHNsu(!=l{_RYFR;V_QLc487f3Vufq(Wp%XF1E zr3*mJVauMY=BXmQx+_a*rLAUTZ%a5@SWDVFZx&I_bN^bL9!SDQFzqv|Lr z-^BKYi~`^cw+;d@1c9G6{?Rk!l$5Ph=8#l>S5Ay8Y@7C?Aax37JC<#ZHGeo)_vcJ% z%fvKZcoWaVD#ZfWy-c#6it!lHoBM!FVVHYQ+C4@TBj6f^S8dCN6jS-k&v58|{IPX2 zMR|{_LKw@);-9Wg)Q^UYH{;JhM8Mh@07s+a4bc!S0i%wH;6&*%astbPfxA?}T|$O` zHe`AO?f7Tjg;{)t^{(wGik3FH?d|rwt53bVInRQ7@7T;$HqE{F*?s3Zxr-(>e1#4n z%W=?vY)xR4A~b1V0eW*$iNP;^Y7&&iWEi4}Bg|K}SQYx)aQcXE0ugT)k)maJCfcF( zJ2KQl`uEQ31U_hHMt9J@wF?o~da8wg;wPK_^r-dRSrarYb|o5%A!zPpdqH$%E$GCD zYJKITK^^Jj+%oRulsY&uMhpi{#6WUOGmPS(|1)_>#6~jy!~b7`RLH!I20Bq8yO`QW zK?A(ap#8g#0NUmxRMBM@d3hf+#OrEsd@OaXcI&l&8?(P752mG8iCJI&F0S!^_gj#R zw2KKcJ|S}}tzi^Q-!34L=`yjBDWi7+a}1tzF?BxK1dHqf&Uc5~#P_L|7Y=rNQuVRt zNl2Z88HWUk{X4T$13l?V&>Uw-9a4UG@JeT3HYbrik=4P4BOoi+RAL(xJg?Duu&RGo zx#`gQ+fK|L zp>TyeS<8J`lAwFy?(4{qab_{Ciot1I0OjhNoIm_y5k`F#bm}gfZBWmDgk0vF7(2MK zeftDsG!lwoMVRxKfn45W9C~%1j+LTF++{}?Em2wVpA=NYVg!3 zJcr^l1ezN6_8*P@g#N_{>@$EZba*i$Sl!Lhn*J&p8QnV3GAaPj^a{t7)0cNMXkN15 z*s{^dIZ~JMd&Ab*!z0ar=ih#f+od{pTQ|;@!a46}(LQG%?7EGA@}K&Wy>1a~kkOR{ zh5d#q6ayS0#Pf_wtk{bng$c+!cw9V+MfH2|@Rju`@Ob0w{N*r%~ zm8dO|Dr}x?z$MLpoeX?cu?hrJX;q`=*AciP|2qrCufhkSpRyWp&!Vq$sPXTpHH{_a!cG%y+5T;y3yPoLThb&o_eZ&ZK;Gdb=D@A{k3Cdw#(a)@ zJurtcj7jd`Xhu<@h51N{+W57H8Ho?>k`Cxff9x1JC6?4 z?vrxYjb_eG5sL;zIME|Ppm8D{1Aw4QieiYX+q5Y!b{lYK(BX2&*&dli9IP0=3*hs< zh8?;qwK0LrRg6-%Xr4!?GUfJ~s$5rNR{!>3ptMjKO928u13v%)01g1{wPaRwQmgus T2mk@KL7#%4givKa8!DMW&;Wc004J4001MC{s<=AI~TVjj2=v1PS1aJvr{%;+HGgQmo||hZ2-X~&i^?XA2JD5e21&$2hbEk z?7@4~BVXk`h&wT;WoxGG_f|g|1o&WVw#(W$X0_iu;pcATC!cDyH;eHy3( zJn@P%4+_gl&z~lt-h?ju33XbU73+q{3?ts}0FXnlYTKHwm`V!i*d~90CX`6Uu`O;u zdy1{G5WF8tWyR(Mp(MWvt$o#sTOtF6&2(V--?!F_*72!QdFQ{aI-AKeqhiR~6~Ly^ z@#0BgUeBpukU@t#Ayh)!h&C_#>s&<}g@@Dsd>luJdnYw#KKU-Lb!P0Yja!3xPvA%T z&;JixydPl^lYXXPFEW49&fMEXV-_eGOO$dzjZB^I5bv!tSk-5|D(-l7v~({oIQv* z!6YK1Y+0U42Oa*3rNco(1jS<443!_DHy@K!koi1_oArOQQ>#uF`&IS7akMBuSA)4H zskltRwW>tc4K1(Dm!mlMEz)8I8;%HHi)C~TIl`Q+DRFz;&9#J!=xfsIXV56iXZ zk>cTve68CwB+~n1eD2%|D{(>rc2QYP!sAneW(I?Xv9`lTVY&Fn`07E%3piT33*@D) zk-VDjB5{8cG5)D$yQ%e=>C|!Bmd?SH5FC!<6Xg;c((<)CHU`YQeB9#g`xJvCd$MSQoJmb@;Kz|7lNlz+| zoL0?JXlO_|SVEK;&}>E%nZ4_wY4PGEfs)PogzEMDyy`tg{{vM6a&QbwWj<>x>Qk)Z zB(=vKp3cWq#1?KJj|5_Vy<$;D63 z=2$vj=AZK;(XQ<3{*E9_x$-$WDODIW)r)BONRxGw&*MT~}v(Kafa`y~5Ve@~n zlg0BkH(CTc9jWy8n;iMM9&I>>nRtOW(cl3aB^gKxo_rH!xF}7WqoyHt30yhwhvCu} z}94pH`4H3F(xar+`D5A0T2h5hm+HA-Y$+`P!EJsBr1#(oN z+CrejYbJ`<3=AC4<(wiPTws{3H@$zk@HKXF>6K`XN?Z6dW`*$@trk+CCfs>70bV5i zBbV#?dqk?4rPcppw}ma78SK9zW2%?GEd%M|0Y*sk4MZ2?HN6uX874d&DP-AOK ze0O_DH|)Qw&TN|#|MZ^R>45AfjGA@7^Q6zIJaa>m##ofQazq_HFrGh0F`FbO)(EzX z0tX@5Ivlm!1dJC2!Cn3tVqZEi$}u3qI9T!VihKR|dcSs_2Y$^8;(WMov0CYV7%)p3 zwd%hk{~_CXY{N;bE)KQnXQF>kmVTfXg&j*Sm3;;HDeR0;wB(*b6zpD;#k?6N7@^lcD4I9;ltD4eS<)v7YL* zuME5H)@3&feNVMWEHgZ_iMVm|43Lu-%ML%{{u2FHV*C|79F33@4!nQu{dpurhI?BW zElL7qu`rb8E8QaDOs_k$qiyb4++634|F#em;153l>g^g@E4Z9~M9^41m#Jckzh+Xh z=+}^9)F`hWo1I3bnk0qNEWUvOTuecKb t?+`xcP)h* diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index e067ec86dcbb3540f3d5e5e0f90b435da4185993..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1941 zcma*o`9IT-0|)Roa^xBkt%W6H#B$A%W4UwWN?4Au@fBmn+!J#wkqjY6=16WWGS>l`*?g`uOD8I*I)2-wBy93=NOK_=e*y1xEQJf=Ho+g9ms4F94tbfYH^f0b09S zVHM-A+6_c*4G;oh-Lll{&PR=v7(!jhW@bP6PKP_s=M9k*%FFHxiuif&rK=-t>bJSm{ z){IPiPm!l?UhHcHsjNrfmWHElPu<&$SA+)ld%*uhtJX`}!(__N+IlN}disYVlu-)r z2jy2gi3sN2Yvhq2-pu3d*OOhRO*vdXI({pm9B2Hz1W3sZ3lcxx)*2V@CwFY5{m(IG z8@LPNw6?x?=ti|j9|20RwWgj)8gVGfSqGtox0@(@F4}l<}$R20&vHU35oc|Ok0dpyJ z-v`~63)#Tcz!L}ZOA0-=R$S(^E*E~CEG&N_Ng#@SU+dJR`IzK?q*)%yn=&L$w5iLC z@0M;mc(^yvHJM)J_287(KpKzrtffmBmP{UjlCmEE2>ubxaw;((-YF~^C|8Wmyc$zy z^Q-}??Gu;wPgM3J>K*;&8w{K9MXs)q^7 zoJmZ8QAR;0ywvYV6bY+a1x~W~Xyv#NM$H^$tDBm6o8$PGIM)Q8^R<%1M6_f@Woj^X zHNk>IdZ-?bgMxC)7UTAn1f$66`BuU2DmyM`7^)|&I%F@#P<#!|+OKRGMOZoeyR89p zHa$bwyYwc0M%V2r0d8{fv{F@m#$EBp9-Wg3dWwFg>kUuN`6Ws@RXPmG4WE%9%L%g# zauY;IrraOHPq|saZ@U@V`l7Q(w#7a~(t2lZipMP;MNREYE10GJ770AQBs%P1uIvm^ zkvfquhFjDp>@02POi!bq(AL5`Kp6!N`ynUvtF9Qtjk;F9<~DBY#c7{$QHTULiML3? zWgQ#WN8hdo=~eVz&h`iu{50@TW6o&U{!*XD{QCUuNs%L@xyxhuccZ8gZE@Rz`l3B zNP*=^*AaHS$eq=LS+5RxA+n^>$LjlKPE%)?&OIk|dB5Lk)L?$$Hm7<;&{@JZ6ZBE$ zqi9yYugYkhyoZU1>Ej5M?7sC}XZ9WE+IdD|E}e&FUN^s5T9Fx^_`#<04<Tu63W?Bx-&`)%OI?YS}V*ZS_cs)Ec_%f=Wv^@W6;)FXvz5Y0%-&uP{-U47UYeODBO zzl{ux$M#weM%)<6#_zWE)@BmpJ3oK5+)U*2-=f5gI8Q1C! z^$Vd$fd%DHI9Tz|%B1)$8p>u$y&D~i5EySH&L>>Gplo}5CDy+?7R&Zi4ZmqXo%*IN z!o^8W?h%-+(x@=*QB2i{UJhx1%Kz%;J#$*{{5`TCWU%EIOzwR3G%v%T`gxf>w8RYg zMw+BBKFrkzwLqk}!w04Mg_Jg0Jp0%TII4TNc1$`$>FB9|$WZ78f5E5@oshud+>5pt ztp3XC(s<{es#tXHK=1tBiI9&)9n$H@2NVyQIv?LpLY=s0Er@%Pc#F@oxix@(H1bcd zAF3)!qqzkf20E)LWOB{G(93nqWQmRRV3af|AYBI><*Yz-S>9vzTs}IKs`{(Ty@KI2P*zCg6MN1jd z3@5ST6%004kS~o|mn6R|?|S V>1fOQmsJi{StF{R3Ruh|K^1 diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index 453557a5f86dabf80dedb443dde3a7a79c8bb67c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1942 zcma)-YdF&l1IGX6OqwDx%b6i24GlSa5joRV&Y8&^GtF{(NkX1Q2gjx&r-qjGDwT3r z3KKbR62-`zBV`zm=l%X(*L&X|e%Jl!{`hlq;uo+0K)^xZHa^Dd$d0$`vJe1RX##*M z008*l=$H`Q6L16g2{=AFA|Qkq6CE2D5EL7HDU1*T$Kj)+Lz;LsB*U!wUZe@djM_Oy6wgtPtUvOYCFa$VeX zDhjO;^V(&3$nIDx8PZUv-9mPCD6cj@Jg|8Tj|67Q&h-C_G}LrMa>f2a$KV?->{72z z^{3H=bd`+t3+>Or+N*KFa}2^`*0c2_4W$UWk0vi(ha&Bwe(a%xlRs?YJug-KW~n9} zoL}WGA$I3k9sl8&!h2hLl*Dsithe|AjWCPRTOQ%;!(bS{ZoZTNDHrlFX=;a0Kt}bE z=g^iPrt9B>+6!lv`Nm(2G{fl=m4gREZ%$}5%A`p5Muo;`g}&M z?zer&o+FpI`n4S5{jtxxL)hiFL|z;om!18i?^A6r-FKv*Hle-f21!xN9y-+uIDSyj z$+tV0v(2PzEKE}`m#Sm8zI0>AD@=MGA2F@wn7WBK7kFBLG<_psY2aMar&istuomxzs09VN$L?tTGG8G zENQ^PTYO`=VCWt?Abr|-P??hqUl;%4>5~VcDi8!PAPF zS9=0l#mX;a`-~+ps+n8r_FtheteTpbu>2Xe zwM(-m!NYXD!6qp$wbnE z1G51^2}4=Zz}AD6`iJndAZ!i$Ue@$Bko#2Lt5Z(N4Vi4~8sr)+$9heO5Q-VD&^?q0HHEalABAX`-hd(hNKNC2|Iz> zBHaoIdT{4j1e{p*^?v*2o`F#CX2N&4Eax)Rq5i5NL;-bPJPVCVz9N?BifWada{0`R z%|7XiZqp?N@uTxn7fT`QP1O5tuBTgtSh6p zl}}<=H3>!&)OXVE=4rBKHu{;zS{;R#GB`eE*RXM7)j=1ny>t3K-1@nZa3Q>VGfN)99k#6d9p}4io&>V$+&E(WKCM`<`(?E9 zjhG0zj)j z8cA~odAsN_=cM|Y3r@saysnP{!mZK1@VW?tByK!fynL+reZ#^v$k=&Z~NPjuwUiwLJ?-TuSgWGpE zq<)d`c?L~-s(>8oBtw)i`O^Ga?tCo8OXjXY4AuJZHq?vFo!`qVoKzU~W!)APfHgEzEsq{x_+7|KR`7r<;@D RzHb45Z@=#Q)D!+^{S6FhocjO( diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index c2d56e7db415df253af3db66d50ba9ebed6769d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1946 zcma*o`9IT-0|)T8Tw4;KPs&kjOl5M0@^OS*V`$1sj+~p@NclL1NsjdKafOiF%p76Z zkla^d${8Pq+(xeC+`fIjzkeT(@9Xu$>+$*vo+uCcp>x_=%mvV<%TPe~g^FAI=-h!3o#`0096rV`5yC zj+K0KzYNr=^SR|Z-O#FY=smX@ z>i0Y-m?}c@3kfLcoK(#zq~BO17Q`gh@V+zdh>;vrO6O5wPH*NEf28rH6`DEfZ3W+O z`Jflr83ecV7DQZ6+H{^CCl29r)VoZD3S6mFN8g_WO!_c<;J$Lr+Y78-s~`_C;&H{~ zpszjjqTSX-O#%$!rLQs1abopNygFbgh8*ZnqGG7 zv&%zeG?4^{0l1@WXi;LSKQ{`maob?P(XE91Go8>hR3X4Nju!mJ5F4N7s_xG}l83&+ zX&81oaVo8a(0de^<;$_uaJ_gm-TI+)5PIx1oC5{gf{C1;m&6F znqbeNO*V4YYpu`pVU99vPhPGIFQ)DI@JWA^DE{s)`)NbyUThS9p6t=X>dx^q{zGR} zlEY1Bt0ZFIJV_`0$enKv%tnp((N^9r-@N(ig;qCxp%`ny zxDL(m*B7!HN7z+gvyvjC?e0e3+ft$Myqf8Gr)yX~e8WnNrV}7E6_BAF0kUQMwGYMj zW`RtGeJ^tpCQL+co$GPv>w~J><^3Ip_6<3U=}XI!+RfM81FwVls>o^(MmOn%VtSaK zicrM&tM`g!5w&s+Jmrlo8=r0CmaP4b2GGv1KcIcSE6*arWMtmvhXMb!KEQCdht?P(*Mrltv$Zmn8P5-_E6c)-)Nn`xCCdiBX!LgdY_tIKUQXv2hD|&9;DbVH@(S+n zl3MSViNspfs2X+8M=QP=r!%D%HwgvGDJX6)h`F=^QO2MbW`e|XGZ0z@h1UOIq$j1Y_sz7s?M+r6WnSkT-4*2wB77d(vG8I>k(H}N zBf=asUmBMtl6TxxY7w@wJgwRreF3rkPD@>>_7|M41LonoDQDb2wU+lfznhs1w91HB z@r%1UchT77t2*eUHj#5oz>e0u*Z!sy+!OE&!U(RcRAeT)6NSUhBgU6pd=Jg#Nj5uc z;+)5Wdetn&}3j?7jqDH zeydb|E29Z&LX#+hJ1i|{Zm69P3So$yJ8W7p)_1b;T@?r z&wAcRrm&KWDp0l9`Xi~R!S>_e08p!#R8xgZ0i(m(f%T>BQ8)_8c1nx=f1~-!&HskL a_V4^3grbm~zsv;ywqG^>wMyLozW)HambW|r diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index a52c9d706256b1c7625bac08ef0a161dc3cfb3ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1950 zcma*o`9IT-0|)T8<|r9k^=XO3lxxhb=1jSn6w1iZ44YysspR;GIV+KMU`)-ijyaS2 zn3el3DL%@5%f}hpeENKU|2`g{*XxJZDkrKkshMGm5`fcpQPD>^xAg zZ6n!g)$y&+%@(!-V>pD%+)S6A3HkQjZuWS=@UVTDv65Y8M4Gi{KT-P77%MaQ@K2{_(s7HK_ZQB{RnpJZ_n`w%c~#6KsW$|jO{uZ6hjE41 z_@i*g2MW(FKX1v>6S!QUCXNdC7#%wjlM_B=@jy({v}0bq2yXM2uF!j(tIIN!PcQZR zB2uS2z74@XDcwR5YQ}%$$Nib;as)s5MHIAM_vW_WN6k?o!kAaE{2I48JcQf2+@dGM zJ8uMQ+y|9@^MS)bA`>YWM%PV2rBP-**6)^XroXMwK9!rcxhd^pcX-0-2aj&zoiO9P zGHw@WuTt64D}mUhbXC%?)yw`0sn2YpZn78e%`al5g;t%Wg7dNv1^GqFBe|5G=rTe% z-O4PIL5-oIMI~lZy#3n|f|;DgGmCeVLGerDFoDiBav{g3pyFqlqL=eE5>HuQD>s6d z;`V)HG0Ny3TikbVg1>ne+mtJO_N$UUsuYZ7>TA5(el*#)uJh{d1Lbmf@!|ZUPth?2 zb(rM^u@vcapLZEz=scH^l}AI&_$_A?r|sF4>!>k7>N=$1z~tQX&abj>aWE5fDtWG*y>lgCu?`cW1C3IFs-*B z)UynFJY=9+KDo|?E90>2X;)^M5xcR>DO?TJ>J+-65eI4{7z!z(K>H`__dQTD*(Wsy@VtTpsSs~#oc&Pg!KKPxTG*@TH7kL2TB_0R zHxP5-?RVdt7bQfKL^dsB>?>6H7DP9GgK$2N-qVS5{2t`B->sqiVz4bkDKbx~Wy|a^ z#=$7JOvWGBnKi#Cq}S%7;Gw!9!|PH(tL;?5jV~2hV>r>n*)bHb?3z}rP!D9fOj7MR zL<#pIC?mMZyy&M&q~(qeuDt{2|B%?LN%l7A`eiqzAb4f7$KEQVX_IT#5=)tR8UsmN z{`$@gi}^Z5+51aBy^?D3S}&qx_=?nXO6{-ws--ma1Zqy0xxc_b2(oQ)BXtv!-hwg8 za4^!%a3H4`h{(>X&=8%oBkEwRYWLBR#=$3TZEr2chTBi5{W2gNT#nrKPVcnzM|ht( z4h!WOX&#eCXAQJo^7Mv=TkN8SG$|>;cfd|BP(N3X7ZkjKJUPbcf}HB#9d!PBnoE8Q{1g3Z9Z7rBOb;^nU3R3YBN z^FEuYrF(Vdp>UllGY~V#w+IO>p;lylrHi}-%%p{$kHl8_s3WB0G(q&0I-M>wwEmB^`pURNdeXJzlR$`7AYsXke! z2ydlV`P=S6H&D$RCvCueE(xDBG;FlJ|K7RPw_KI%*=@*gMl(oTZj1{Z4|Me=&>Pup zPptOjbthC!WdtTVDn5bqet#4eg7J|QXWUtrDyC`c*rk%Mzjow4W<@#J3hXff{eL)r f+xfpl3H&?%fl&urq2KNTfWYrw_`Rn@{(b)drMRnM diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index 96f88ae4b22d69e26cafc8a46daf02df3e665594..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1949 zcma*o`9Bkk0|)TsmIretN+ENMCC4a6QRmbB;0bAH&ts9d1BD|r7yXb=E=Lv7RBR68E&Ac4}PC>#vWCn znY;F-Vf9B{58gN*+ee-@X!C$Oh8}1&cJB^WSWqEX03RtACai8vcVz*;*?133(Ur4= zC*eXevVx7AmOoo{#QJ%us#d3SW(ay`)6VSN&^@C1OalzE-xJ7aY4l7*s=L-DeaN0c zCVxF34hm-o=DG8}-KLOZkeB8P6E=tRj?=5QT+&c@MF_UxO=v=!_0F3<>*Bz9ATtxR zlJ!P`_G>xtp0wHiU6}c=hdUkjmhw(xubl|b2r%^;Ft542sW9e|_mt30#^b&_5W;>a zN&ZA~7*;wr_9mF>_M7}P#=M@`+-?)wHi4`yu4Dn{r#~3h)8+Y=H__wZNVO!BJa%(QOT+D9%T^)eH2GV5 zUmWtps8Q1;qfx0I^F-8mQ;hFP$74XpYPRL zQU#4LdgXqokHL_*y@xAS?nlQ~^x%bArL~bLYngeA>y>(ou=HP*BxvsD5EMFf!kBVL zi+=gysB$G6|J3f%9_aJ;i4bz4hAq(ran-OYDi{qaA=mO(7Sc-H^-rK&5bLU8U zR5J|>ikbVdKTz}S4orcR9o=L)@Nn+tQi zD*hyFy@^b%HVl}=wfI%^p8l-%jNKYuV@rf79Vy{>$!D2{A2w?JY!sU2cG`h}8#B49 zz=RqwA&gHkxh_-Er-aZkfe0X}S41Bl`&l@IWiR)j;ErutaTrl_eRwqZgKQypEBL1{ zI-hG}cNBcS8frVB{|;x(s+SUyN=`c~rF%IcL`<`=7LEGNgpVP}bSwtkz$gf;>69%=QEebK=&IETbfY#=YfWjwd^im7k(e zhq3UE6s4h%5wuC!{%vOWePl*@V1W+VNCg;KApNmtO0yuw)@Wq&-2Eg0=-%0Np-rC< zkE}-Et^Ol-d_E zCFK>f5%aaFb`VH%wDLWyC44|7fIy*_h7cD3!w-aSAE99Cl_|#Q9wTmLIehXif?$g9iLhFZk zh8_8V@6FwZ3!>HV5Ll=pru(MxAs6kNT^fTPwyZecugVh&OXvPUEniKTv8EO;W(O9j z)BpB6zC8a`464?~BrmrXIe?qGtFtgSw>xwfrAyIvX>pf49p0^#MmG_iXAyM}?ZUI_ zIA8Pf_Lr6~s}D}LL3(%45}K9SpuRqBm#SpV%+F2_!iJ>Qqn7onCGe1;W|7$!Un~t* zB@Fmdl@AL}v=v*_TRq}Fl^1wSop(Y^Ijhp>cP_!i@q^!!$2-yckMTR1Mtnt{7mAj0 z+)gjd(#SZ$GPy_WlR|OkHu@+JH=-9;367~tOlYNDhP8GcM>-UrfRC;bMls9?3kZo2hbl%H%M3JE& zcgw{=ccl#6>OXpi+69}FnWH3v#Z6w@S3HTDJ|q$DZg=i)ZHaTMEc`=BVZo}ta(n5P zNBwlv_MeZ;1CP?fJr_(?@0NgOU>(DTt+qw7DiW67<0dUln|3zN7dMxX#kF5LW7LeE zW7ed)Cw$#OZ5l3im?sttX-K2BWf;|<_ifgeaf&1}ZWWEVLT<;#Da?2*kTAdwk$71N zWiy`*TZA_!HfWR@%lSdnO_DhIW(`pN=J^8GJ%SwlgHaA@@X=0P=MiEF-(D$5LVJ#$@Qo+Kl8dn6V_gB*{AVYp1a^cE(bYWhgP4L&|nB zq^o2p8N=8P*=wwg8d>Ue?)UpV_kExD`F(l6|FCEp^gD|pj;#m04S>c z8UO$hKDba{EjUaU28Tu9g1mfVLUG}dUf$t8xBa7iVF3}i5ME9$zyknM0Kk|)@IxFU z!bs!q+6)CA4utqad*#z}?SC^-Y2xeBd-my7{Nr|K@WP%zYRX9ORpr1H&ke$8Yc*!` z0Da%D{*>d7X?w|I)LFfjYerb#ADZOOgV&X2wXk4dm1OzBJa?iaLwLu+b%55b-Bh?| z1QD0uA%AVkdIlH#54aX;ewIK_M`$N0vEy_=(3ff&%IHIGd=uF@5vA%_7rSzoj*4gg zAin0s^W->zXTOokLQ!s0g;8JLAf&si_Z^aKQsrT|hG}jXNTj?a$1Ov3H(nZC}F(9ObvAr+lRt*eUbY2>~2`Bl{b6Xbh(jNNjX#7oqf z<=4zWIRC0;>k9liiF$hMLLy40lh2bCTU`QFr+z0)%zSg;tiVnU$6iXjDA_JN)Ae$; zjnBtuAWQz5fzj|S_49r?hM{sQ3B4I0p(?7Lt#`TRlaK??H!4fi^57CMv4SZ23HLR; zILG-e81NjEE|^%$IOn_;Re*nS^nPK}$fbi-K*;|pC#)EuBo!nzBk3}cFLgAcjg(KX z3;kp5GwfC@`iQ_|LHh*ljONocZakJDs;(bZk#An?7n(iP<;?SZE@8<_ zxnw$Gt;+Y5U{N2`MoUuU(>}a&4^X+Y(F1Pi(+A4Lw@q=(f?z>1M?CckD`-xN!JQ=A z*cRgI&a%Pf9m#vrrY?75tdr#=ES~xe=-ck@&?+EDRQnVXCw8Y-Vb$H^%^w(3n+Nhd znh(B9(x1jV*d=way_1=gcc)7U)FqO8)%F+GsYBewA7?l1$em$`JR6Vi-^4601cv=o zXtlD86i+EmK0SA^HDX_kH;#8?JNCBDn`l#JFMAkDWRnj9Vq*+j)s+n(4f4i6E#h}g zFHwAWv`)=NXF~z7uhc{(}6+5Sx9OY5{d=1Izt!w2on zB8t-`KbNO7FXf8E&+^>*y)vWO=RQ3C=yI9zK#0`{`sJMoj@<4xu@PnNwcG}cwV`0Q zIT2)OuL7<{J90Mq1jsq*DFHiyoUCq%)Nn55>)Y@9&(tpya z;10{%*c7PLh<3jY@}DttEA{rXC1hy{Js9i3(#LB@?$x=>@z0KrW(O722b`PGx5aPe zL7U_Z`e`7m*|~ zVf-%q0!A(|tX*?U&fU#$zvrT5)*aAr?G!0-rjx%1@$$FnsrsvHXG+p;+uWG{6IJb+ z1tASC?Fd1&vE)JMo#>~_LJf_*H$=o|%jJ1OVq^us)Un>sqm>_`Zvm|0QTPuZeBo4y zpi$)Zs*zse3DQH>?-8Ft9zdwP*X&Kv_0;%@Sl_BnKA zQxL;+$p$T_K*qvgQJhwV$v6Xcjn=;ZJeq;AMo=cHegB@_bQX1{R6*KL=`mu&64|8# z^fw#(yEo8g#)?+o>E{vW6pT*tQ{(D@<+E?C#^h=!Q*TpEVinj|1QLw*UVO}Jq!%U6 zT;S56d^#*)F}7Xpm@`L;B@Z~=-mef>Q^(h~z~)-3jC#>v{=DSE3-_l%+n#DUZaiB? zw2;az5vbB{MoO5u=}DzPwx*qIfaZah#l4f&rq=Ga&5yW5d$eC2)5kRFs#2Mi90PJU zvhkZU)&1(y#qH|<62*MG8yYW5ReYsUCDvfCmsgkUPN?`uT*At@e^hc9Of?xaim6!8 z!#%vbq#hVmR&^)$G=8N(J zYGn)Zq-Z5V`ggCm&$bS(%?35l7>4FPb4H=E^6+}?BVOUp99G`GmR%}euCGrpob4wM zqWN0NxxZ2ZPnIR{STu;k6#Ty({7b|CO$z8A{2xZfqPe*Lxq^Px?icaDgbo0I14{S9 Az5oCK diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index dfda1dc05536fd4855c24f4e34dad770ffe799a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2018 zcma)-c{~#g1IITv%{@8a9@KKg5>k$lm8&^stXQEOk7$^CvSB$pMuw-vnrns89yckp zIYQoYL@ZY!VMj?h!rSxy|9(F2@AvtAzW@CG{~{5>A~paafDC{Vjq_BTHBPb+2LKN1 z{T=`Shz^Lr1sNJaO`%56=m@M|5FQs172|g`D&Sg3To5!gIwD+BL=@ly0Hgo_u&k_L zlV2v0r6d1twv;aJ2@ipE9!e*p)U0)w2ii~8ePJikTfBs4ze=a3yzWFFy}sbPoHf)` z;NIRe9&62z<2zt_MxVpL zxq)NnOhdabFZkoi!V{ifqDv9{O;f&7OTs~xiIL1*bsjDBJ2C!Fh2Q06uVYRQ@@@A9 zk8Z5XPk@|#9SrfwX0BpGdkMiZumX=4BW1V{Lnc49PuY3*N%zE9(lpy;WBohVdvL~W zHDp4lk^G`iT<@hInS5!=UgayKxDWqEmEZAf2!6j<#8HiS+10k3vARBdqdmKl7rP?x zuLy1H4-~g?C0ZX+mbsH|!6fB`oZvLX?~H#@2qztYkAf;ApnEmqy3VRc?IjrqY|zi^ z8G`tY+<9wRRG``d$!b&9SRIs2g(_r)g$i9%>NYbEmB8S+1#hb3rfvwFD8UI%F%|r! zB%%c@RmKn9=elGiy!dh_tPspue|FRrK*5at4eg3sIVVmA3p&8ZSEUzxe|GU8CEY!7 z5Bm(ivq&@n+q`PaBc?Z)x||dvHOIc*n>+WK{E>H()DB$ep=iU4{){~8DWnXpU%ORS zfPq6RMNi)*{i~2jN~q>^&mozN{nm|zPSH7Clg#>($m3AQBe8rjDL4(T^UJ+{YK8ssg%ZQ))PG6(hF$X1(Y1RSy`}R-DX<^eP5gx>a zoKs=&3tLOYwJybZ)!oOoe*)!W=I-R^Z|Og7Tz1dEzDys=p{gZ7+v#FctSpL29a|GJ zkcQ~)C7X#?vJE?C5RUN!jw+i*z^C(@50bC!tMFdyJl>E(yz|20G$fY>Y@0Zr)u>^* zN@1AMht&3ogJ_(cT}hY4Twgm60IEOQkeCeeoGqH3n8Yntvry%Jxd>?1vUlGZ7Qh=bNvvjvAv;`!;=qL?vs7PgzcX~#$GvMS$|YS?59L!PA` zD0_AskWn<#BVqi|o-{Sz@5?zSG?k5Nx_qHn&5oKgbzpMZiR;0Et zn**7UO1Vo1P_tyAG^Z7<{*pwazoFdL`+LJ5CtvCE!Fqc)_nri6Csw378F+6b^E?CG z8+o!GnKWRdR#@(^h&t6Fl(p4OlfyF^&uc=e0b1yiuA+nHT7w~+bSuG*m53xSrDMXo zyv3Z&(Usot{Z-3+b2`yvnQso*b|6$U^*1jn6#TJzQX?btFc{O-WuB3pSu~qp1xFQpaSq5D@Bu6xK1)_v;D5OQF;W#P+r)QGq^*+GQ z*w6IGzV1jux?-)Y95xy{{AWYc^t{vsNd-HfyY=8tSUmd2yP_uZks?1luy7hi){PG0 zBx_{*G1NPZ;H%*|9v%%ffggKy;M*P4Siy~}*=$x@<5Rn|kX!C9)`z$*PAFzGwlZ=U zvi2sXMO#Tug4m~iO7BTgEaCeNxEoNhA-pL=;N9{5YxtV@DU~CycC>7H`?c>HUfDyk z%e|f^Wm0r}8MAcmmvKVT;UlH)FKBUS6GA(v>xyZ?s)GyoZCa{xc0Anh-8!=~pKA@8 zVodrPt9_1=_ScG$xV6c2sk@-tm}~N4KF9o4v^HDl1^%x4ZzldWIRNko0g(nR0UJ0UUq;kQU%?m$?-DWrGI*1{DB6 z765<%PqIH=1&Po^AQ1s%KR0}^KbaEf=0WkiYL4&1n zr{Gh69hyIxBRwm znnfr(Wp_MbBg!(6LeX#NTH%kCD;oFT=Uyp7+y)j4jEAtvBMotoO+&}7;bxN;_>PgQ zn#4}$g`56`q>yH(l2hR~HKUl+d=eiz>`wL3xs5#HkBEDT#cs|k4ob#`(8kmr`Q07p z7@wJ|p-S+5EeoE$;}C+trKh$np9=kbRH`?lKZu$gy*LgZqQ6(?t`CfQ8Dsigv)VDX zeeG*&Va=m#11f#y!$g%NZoG>Yir#aSAb&^jm)UkjY?_u6mgCWx)(6aN`Iy0Fk7QFh zA8oq}tX~VnAeDS}?GmFMj<1WqJzSL*WO}*7;1hyjzK+WUe2H#qHz&ECzxjGio6q_r z(5tP=9k{hKKe?Cm#nl_GwV!s_R&nPr;k|+=b|cAhnnnvpPi}I_(S#Aw8*%rC^B6kQ zedyv&as0w{jG}aM(|KL72&$z_zn9~Zq#YFM{&3{&1ZlJK&E7Ml@7Oy_aMR47On0~N z^n$c!M&#C^;D}p*Gq-tV{KVoNHYu4iV<#2 zPNBkcJ<=Ql9sIz+On{`_9y~UQdFu2ysj+F`zPQE0&< zIxMu{sssd@DOt2QFB(dw2hky?^}k33|ELj35Aolvo^iE@V;M>!WudgD?uK7OKaZB$ zmEM9Km0l6EyKPquShgTJHBJ+)fs#t;xNah7L?=%>qX5fVhcaD65`<8}*9!QVys1g0 z<*hWIij!*e#7EX)e>R-|m=c!}{nMF1hKpH8)Mty#n|lpj2z`!?-+Suo^3eGyq*BYJ zXzj+I@k!i=2}72Kp@8yxVFRm`9Ss^D1VbpdC?j7dA$iMPvHUS%a~B=0Xa z>xtvsmy-ew=hByxM}5_Ptlomh?Ph?Z#yL4Yh#ph*4~5=`2p4hImWS)`)z#KhXcd>{ zz7-*G4zP+DgJ%&%wM;8m!uJJ+Uv0Kc?`7X^uDaSEa&`Uw>3M_(mzLv=CxYbI8{@6J zJ%MURz>E~t6>88ROuEfj7U(>uOz`$VJ(UETa$GC9erE}Y?dFLF>%T(Pj*V-E- zWv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&16?(x z{z_lP>p$GeS`F9i3bAwZcTF~YdG_9^f`aA81)b!QFYWwZGi_3B*;_eV?NzMLFHXD@ zzkGxJ+|@BWeCg9}hjpyE@$A_AWf8L7DS4B#7T9fj_4Q8X`<#D&`&p*!?tgl^@7?9t z#T{)qY|cp*J!@Vq7r9yJ!6F&*t+bl0qH>z7&VHdO>st=h=bkR;X17pU$uL#Hz~*N9 z=jxMPKW8qk>nlC8idV^*!%yCDfA`@O)vUP}KcD(9!c*y_ts(c%D<>j%`|o@~bK6vx z|BtR~uGA<^Gf-NRua~~C!q0MLvD@vv9jx4{FMsp=a1si^uBd^#QuO3%F{C>j|ZIR`tTO^xKIaX)4&RB7g=lDbIs&o8nx-}2-o@x`(ls_|R zv)hrUw#z$j{1LzM{yvA@i|yO57w)LqWB>1qSK#%{hov9R*`94#sJm87sAERX5(mGW z2Nnt2r_Zgvv0z5E=LUmk+%^6OGTbyhD>$d}UJ$q6P;a`fIxDRB(3;oB;$GFq{uFrq z_Hq40i~g#0k*ag}9yn}jVX#{8Vb*HpMGXylm-AxoLov?=`5e$u6uEZ!|bhI z^WQ!V-*;5!{av|rJ2PHvjk~h$Te`5&c1^nm{k@_($L8-XKb;|YLg+)L$;IbNn;QR@ sC46BB@MdJPXU3iRfcXy$8W=$oFEh3a*fUH-nTfEZh3$ zjr^LRt6WThhkmtlIJj?0ymYPPi~Gmq)Qr%@3w&0yyYAZmVo9xzp10$PdEwhDGV_z( zue`dar_Nj1GU(P#VQ){iYT?`;4lM^iPfQm-#C=5Pdefzz&(_{4cg1DCWbbEHOYw}9 zu`bb&U(2{!Kcc?)vH(wT?THmTXG~uebGk$8@{AWPYTqtB`Fz%1$#z+Ns;6!GF~t%c zLD|KVFE^@ObJDK~`eT+|UvV;2(1vaP`xj^4NiN{H`FwV}XOXP%gty7TIaOQudpVN! zUiLcTdX81hd8R;Wu&3p|z9kPzjPA>b?a<=c{Bp%#<-7Uq6MiJT)@@wvb>#=M^6ej2 zT8>8lxjlEg?wcuFmw#{gxZzs9^7Egq(Gz#M1s#-s$g*aOBj@dV+oe-uVxD(Pu8+R? zRAz(dk@R-KTZIYRyf^cl@LK1cDP3o7R;~Rs$n)IkJf@?TPyLs^3IFzRo6ns!wl|r1 zqI|wam+UyTK(@)F*YR6$AdgF`?DL6pd@7oLIHa&GuUM0?`$x6n%I@<(ecna$43t@< z&J@0sm?;pHAU|3Ck?8)L455j=zYFeOXz4k*Xp#E!xSr>!bF{Uuh#kFAD$Oaey!p;= z8{B6cs=Xl ziunGt(3ryV_p^@KUTwJiZk3iJ+s((<+E$$9z1%XNRl#SivyAubj_O!NtFmQHyB0sb zxc}mBr`-HFt(})w9=do_Zt=t(MzwrX_sa!~^)xvCSNJZj>G{TC&U{m;b|z`Uid*tUdzWwH)~)hgb;hLg-N)6Rj#zHn+Bmc1)Yac@ zYxio%PYUa3Xmk#~Gt=za$L$s?vu%wf^i`H*3ruV4^Wj%l+&o2rrRx6qmQ}`wHlE)g zclQroS>BPh`2-PDBNhAPvx*8TsU7Q8ON nn~}+$8F$_TWVp}3@|G`U3AK+iX5sasLi6|1^UL{9d{3yW{Few_7aid0a$ z{2^C)Wq8NF$5scH7j2ZAe}BDP9fL#f{C&(i{g=3%Q?qvbmJfPkR`<}W>Hdm>RLvU# z^=h8e%S&EVFTP)3SLwKuBmA&iu6~&9v$TN2A$ypgJ>Mk2948iaw1zESRp3g zFCCxq3!Al?f-j}ms1yi4_>C&EouGX9p}K2c0{~_ zWog7|<9R2dYCZnnHfXMxbz)i8bknmdAKLz4`mEV#&JDWpYzr z6=%(9Gl|`5+|m2tsen~j(G_h)*VAD(+g+HZy`R3P_|4LYKZg7^Oyy=-*8lFEysYZ* zc81o?T)Knl^cOkXUQAr#S1sd~e__AdwFy&fFGsN6+4ar&^RcR5Rp%D>WnK+l z{^j;6t@kH337=orp)Po$u}7)2%T)Jm%Q7jw1*|ucH=0Mj+MaZ>{lW8%p4)xxZoRHH zxlSKmuwR)F+YSy&Xjz( zWV4xSWAr}H)D49%CWIu5-rT@{P(QnMssAtA{Sz;pc+#|7$Kn(ZD_`T=I<_KtpG)1` z3)cUyKcoKro4TFQgtA$SBn>^8zHI$)YgxcO<>;H6TbFD+!5qGz_xGALiJx@@Kh+d) zt7k2r)Xgs28mMo0rOV(vPyAQ02L8kPtoF6KoSTFH2dukvl4(j7uep`DV#LfDvI3WT ztk*L6yEvq`MPAVs@VLdlvV-i%E4 j%(!zZFtdU|10#qcCf^2lv$BEIG6G=`kX`}I_Y4dGH<`;D diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index 9d9b261f5f7b37c8235742e40f3cd2e597513020..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1095 zcmWIWW@fQxU}E57=qoG;x%0tUXD%}XLmD3gg9-x!Lvcw_X>y6Kfu4z;fnITbPJC)b zL4Hw5d}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=yBVZ>VcFI{ zZ{*hmUFBj5JoKxb!@+%1;-zaPU)({Y|~U?JNJj{vaUth4<%8fm?^YJIfzkO;(L)o{)A@ zPbX{7Hy6qHF6K9jn5w)CO8sMM#jAuT%!zl}xqg#<WV#snK^uXMTN0S7ZItiII+qkN2_)N9!&!HhKD&Pp6Fg z+&Geja_3LzOMk5({i`ZiVo7viz1E|bmV1=H?05KlS(3f*XNae#zlzsW*VPl{e^~fl zD!O*KtLK$8UzPb0ot{5K?so8zW|@ex?%OMTEPDI3m+8yZv1T2dj7RTd4SKApcf`n&t6+_e}=_9H}y+3+k2H(lyK^8 zYPFyJVcL7C{AJz|R+9IQpLLR39vpT#SbkUJn$l&bLwrP2&89akt-hMTv0XgM+{RKO zTGu9S+49$o`|c%vKkL~Q#KIB8arDW9`md$Mwa2#ZTWikt;&_u*;!KUBZrL}Z4xRIi zD$1@r+|S$p@l)+DmzGJ)+fPc>aYVdp-&}jst8Ge@&`OcjN{>GVAMWW~{h%mada?h5 zdmsJzmhhcqT5T%7dee6M>^|qT)A|++AD8S}m7Hud(@i#V&ujhI*w2cUG1lsn+0=yd z7uFpzPANCMz2iKi)5*W>I&&2NedE{TJKk~nLh>(jhWp$zq;{}x{2wC1Fyle%o4od` zMaSOQJkxsmqxQ4p`mKf>oh3O(|MF_CY}~7u;4)9tU3>PC!>?3#*c`j}`i#GjTu0tC zi?%+|!rfYT7?LJ@x%;8yK=~Q7R{?Cbj=WY@izm&rwRlwf=JO=q=r-Kw0%vx>J{ z?32|q=knglTGhQ^9p~Z$A5NT56MU2P-Y5FL+pjC~hR&HBZ{wuXFZ}u7_cK9wgxL{xa02grf$^ZZW diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.12-compact.zip index ecf4061f5af4ebd3c1589e173c1fdf31299a15e6..edf72c2508eaa45a9ea6e1b63a0888ccd186c7f7 100644 GIT binary patch delta 1168 zcmV;B1aJGt36KgHP)h>@KL7#%4gl-5WL7VA#X)8S006iWkr+;YAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH440MhNq)3f$(<8{rPF~E+nko-eF{Ch zYZUumX;N3kTa1-oZV!pW&X&` zA%x2EOA~^Rf}6D>^`^A(MraR5GFPdH_0c6 zvDgL++jIKICPb@m+lv6?w*>AedEoOEw`$SN)wBJKQRL%Iw_u`USPtf^VilK zcONbZ>}Crgdrjq5OYQ7YSdd7-0q#7cZg{6a7-Db}BgZ;LffBeC^VG@nbSinZL-(Y(z6zZkg>+bjcxF z$VL`i)@weX5Y!@JH|TZ)mP+=4pl;~_yUOUkhDCk@!|-sMk0Mz5hW)`;oB)xUrHo~I zD!AzUtK(>u!D`)Z9+-drm%Swc-A$3S@}c>|^YDXzFQtJPWxeBdcfU~+E)N@T=OeXl z4Kq$yIpuQST~lHFypj>pD>k<1vAd!mGO>?42i-ut$S#wTq9{ciGmnoyv9oD?+>_s} zb1L24z3Y*g&4nOfdKk3;!GnGyoV0|yg@$*S{Jv0?&5I5i%v`Q^N!#)U&`kJ4`bOh&~DVeaa&|l2uJk6tYInS2S?}y?2p! zrnU{YSk|06hZmKt=hV&wMd+@&79QYwb;pDO!o@0zt|Atk$ZH^_OddirjwQ=_ z<<(RW{?QemPO6oQyDo5RQOw>5v%#VSlMf+I1_N~Z)j}%k{qz&xghSB(6@m7)W0LJY zf}X7*CbNao$KV>I!@g=|m4>h$*kYerPi>@+qu!5bMsur)A=W{#NqQ#|!FQK0I9eKi z;RY&(CM2l_5 zV2tBR@S|a9?ZVF%v9#b~@}JK-$jYiENnbnaoC5s7=HC-QsO%c+!XV*J1^Y+rNx5&- zT`2BbCU*h}WmBSLH4+z&AfLB)2OGF#HQ>5*a%!0F9ZJxSEocY2e6XJf{{^==6@KL7#%4gijEa8&FmC(j)O0027?kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*-|6WrnUU+AFNW<3Ib8W`iBTWN3vnk z)^zko@ndCZRimIxs|Q88zvk4Z2RjJedX|@Bq5~CZ<}+a+_-UdW08fOa#nj}ZrZ<#d zFeFGbrM$DdBmn(?u3*)V1qCVwPZt?Mk9utxfInnZilizMWx{M_gT|EeGr3<$hhN*Y zJa$|M%-`e7)<02QtS??6$9 z0dBi9bx{EmRG0h$^}?|qDtEmh9;A{v@s@8kms+;JkY?q7eMM7xpe90ht{!F_#cv7` z#|}0{ANVc%X(_CvXpgR6x;Ugbw?%OMrA#Zw5?2`{+0D(65Ki`WuFN>pXB7XkW(Xvv zT9hMX&KjXR^OAKhN6Q({trTFkaVue&BpgQmj-V6MOsy@W!1*ek>pW9TY@wXu4Nzz0 zkAf&p>3dOs3CXAR^7RW+hY+^P(Q2Qrcn9-IqFmW7cqK=Qz5LmdXKUs5NM$##N?lM$ z3e)%JW#y!3e~DD51z`2*@KUk7uaBq3{svg4XuKR=Ev-a%uKjFWDhga7>0k7$3%RnE zDVHkMUsn8bpbn}m4tg5UEcIWu8&851wB;f9_Tb{R`|0>8f++hg6FYo z+M|Rzv>s^Ik`26DeM(`h(Ot618m6nHLnBppG89M8{G7rHc4!LbPCA+dc9>7D%JI|5 zzxJHyC;K+bRLZZXKU<(sG}$d4{QOS+NHDVq zeQ396;FIG<=I5t2>aRgrTQGIqUyhU9Ky-ovWiS-vhG}XH(||Fu$&-3lUJvia;b(=~ zW-Dbd@$p68Y@f$CJ+kgeUI)tV6+KQzX$Q%FTe|FvpLXl}Pf5!p=&;otgfj59s?3wM z+rJ*H*nz@rK~Y326ahkOoIn(BcLtw2wDGrdVoD##s%kzWka` zNvvT!%~%>9w6%50b8*aQ67YL4|>Vp}3@|G`U3AK+irIz>K3jXI+!dGklD(f*EyXiZ z#=1m9el6o_{fPSF%K|*XwI^2WoH2b>%;^rDmIt#wu4nN&rr8?0qLeS*vDB+C@%DP}#epEXCJZi~Idr|?709qh)txS|Uj%>|iXs4+|J$%>I= zHM{*U^cBbC3n#^Qw(_dGxOG_`WQZ}HlzgDY6_9DLXCa_!!hS#6z{vqtpc6pQPT zlh??9*U>$AdoBB%i-KpadN2j7D)9>~3p<+WA*1!twfFYF54KyFOZUB%K6FUDeAC1p zWgdqfZb_xQ#$4G&&5pTOZ~8jlI2C488+NB-RmhgjMjUxcwuS4TUE25d^<;kc1ClkxYx~50B`%Yi zmP^^}i0`adHhYsQ@Q!Oo3`FIH!pS}1Gn*7|e%Zp_;Y zS3?gRRyg&_;nugcS2%?YU#%7oiaB9;!&o({|wHu7}I{&#iR*x8X$k37I*oxUCJ=TYQziGj*2LR`qkm{ns~c`RAS) z${aVh&f(9+K;FA7Y(HG`*XJOr+8vYk?sQPT2%U&$@2 o0B=SnduH5u519SHpn(xY5t9=Gyjj^mY8inr2uN1}b20-10BUu$82|tP diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index 7373558daa66a575515a46aa44677a97ab4f5801..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 995 zcmWIWW@fQxU}E57=q)S=5u7k#mL)R-g9Hx)g9-x!Lvcw_X>y6Kfu4z;fnITbPJC)b zL4Hw5d}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=yBVZ>VcFI{ zZ{*hmUFBj5JoKxb!@+%1;-zaPU)(HU%nRRMk(rpS1G$H=zth>DaivTA#0*G4Glx zw6))-XrdnTvY#1ey)S5-Uty;Cv&Mdr^lpd9D!-iuje90NG&n2roJnWP-@V()rIq&m z*3IA(+jZgCkJ&F5oqWtZ`JTy|lTS|<`uJ{3ob<2mi-^Lz-n08w*NUI?HLm0D(Rg)X zkJ%xkD#a=ukNI!;__XugOSZkfg#3iX7|MPE7Weu8ac#heT$kiHCy7_i(Of75B-T)JJ*cudTlCNUsD?Vx6%y@BUM30_ow!xk@ySb2Zu2}%^(T>vF>EJg zx1P~C;?t*ka`)A!tJ_UtM48MAKIinWF1E^Am?&h}D^zweYtmGcC3DYbZQ6O_^nIDQ zuZuUQeY{=Z@biYkF&@Ev;j`EA+v${XeR&kVBVav;-EzOeA3LIZJAKM0I&|JNzkcY; zLB?afxA-*|PuR$KTzOX5*@`#kkMi;FDK6P4_;`)l|MR~^PgiG1eUQDia^DBhha1xb zIg96;zq-4m-S*{F&dV$tE?zU49lli2TP6R~d65JBzTa0pUe$BqgkP^k*97)#^#knN z-T%MZeSe+Jrv_Q=#H(zZ`EKlsPW?S?!z3vO5A})rJQsZH-}b7U`<~#ANA;-*95wvE rUdSm0cr!BDGvm&D!2AaW4U8a)n5-D!&B_K+%Ls%)K)M>3l^GZS?4iA& diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index 481c5f6c30446f95769fb9f6120f905f11c67ef4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 993 zcmWIWW@fQxU}E57=q)S=;pAd6G-qaDklh3a*fUH-nTfEZh3$ zjr^LRt6WThhkmtlIJj?0ymYPPi~Gmq)Qr%@3w&0yyYAZmwKS+vt7nJijE@XoO+13V z43{WmciT8`Ep^KXmpU!5QQ~Ra9llq3E1q$mmwa))fa~`a9w7lX&2qbpO(MxFSAJH% z=n>`~GLL=3;wp6;Gw~+|sb#A*C;r^-?5A#Ecww3K2jAx#`>_du zeU9hcADvrc%04|Se!(Ywm8Wy=$Jl-f{4Y_@t8rdd=hV~|dB67cCZ+dE4PtIg`4J+o zb5GYZW?ozWOg4u9Q)U^9*+?*5m9SZM`SY$9qOGnb3~JB5D=cUdJHoBd_4b-QH@6nc zgAI9$3j3Y}AJ&MMU8lAG`N<9WJEmQ{uk-en<=u}Q?0*+Vx4%yRwld53l_J;6Tj7xz zQ??$|S;%TjQ`Lh+pOnn2PfzXQ42fU4%Kn$D>id7c-Dc@C{Q7(Q+UI8PlP_mJ zea*Z|&&ifMX^Y^7D5w5|=Ck)Mia*^}F^T^L!!}jLW}mcYHw7JR^qp24eika+A6M=8 zea{Z=MGYNyUS9w7Da2&?wZ)wtiW5~<r0DQi3NfUUS)8zP`xo@ZJ9x1LIBpFRb=Iyf0>YT(^R#Y}%>s+{dErUaWSD?6$6G zyB{;-UbboBzOHB5A9FGee*S8ZQ`52Ol0Qq+-a{%6^~@D#o{i3Wn;TJSt96~-e$Ou1 zP^k@T?7aiOuuGV~*pxr}mHF*k{bp^kr_4HRBEmit#XR1^|63_AIm$A5PEQGC{m4|DhV?hOI{PT+p5!*+X-TbX z&I$TP%&NARmO9_)FLLIKo5riHa&Lqa&g2CC__09eGtVCH?9~36G~*4jZJU4B{wN6W nW@NHw#+~(mxep8)7(o;<88N_{l?|kp5eS2TbR{q&GcW)ETNksL diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 6f32958822797cd373cf37d5646c77ecd74f799f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 996 zcmWIWW@fQxU}E57=q)S=S?N*w&x)CWL4t>YL4|>Vp}3@|G`U3AK+i-ES(^)KAsKAAN6+4o12 zUcY`UZ+^);CUL7n=d?*huuxtGpT3O=e_yJo>;P{?~HTV(S*+ldp_pBSt_6t7;xf9^nWquv!{Ff zw5wejzN^RNEb!aY`AfrkroO+|)`@O+1?PU2TypyCGj4|8-U5ebopZS=xXbB5U#|AY z1Dk?3Zrl<8hkTc zu}!4v@Pak6vm$k#ax%=E$GW4$d3}W7?sH}J2R8kvyFcr4{`3mXEeRigaapTA+)~Y6 zy(gyAc-1@Z^OF1T?R4>os@}Qk3cJ3J=nthkHP2^yZ8+PvogrENLAqG;-wF@b&=U1+ zKL3^~pF5i|uYUWzHoKOHKPCPvLhhc9ujXu-yTUSe<2IG6)jjG$R;tt6PXsd9ED`<{ zaf(+?&(GM~Ve>q{Sp1{DSdhT@W<(&Q3d13eQx1HIz>ocPp= zg8ZVA_{5^*jLfoBy{zK=JWdu?hFAuM1_lP(j*fKWKgNX%FP+jM8bKfGt8uiy&#cQZ)&!m_P@ z-pH>By2`~Ac<5I7x;034Xe^wPswKV?jU+8W+TeZO{AzuBcnA?J+o}a<05AJN%cpNvuzFvCD zg5*0V7+k%|15UW!^uFr2{o$2ho8-oCF0)TbrY_mEWznI#ugd+V-3Uo;HxpXI$kyF( zUuQ|zvIWZ`TL1r=e?#SmMNP-gxxY3XD-o?U{U6C@?|0jI;l_=ft?}6fQ^a<9JBUok zxnMqfjnhpgI|CcH+Wa?8XSJ7Hc3%C`Nw79JeBYd3{ZouX1E0(}G9z%xf#0X3|MPXO z*Ym7e`oxWMMZS6K%72HqZPj&FE^<0*^2hq2q(@Z4ysTH-zMp0BH^X$U> zq6Z;jk6zmKE`724o7%0z+cQiKE4u4O{Zn<--L1x>rXXj3R!LabONOs&E zA;mkQT>E29djc*UGki8Tx>3sVhWMXHW*CY4zylq^1 zLOQ|o^)vs;yv~iE1$@*l@yjXZ?EJUCXu+9!V}k=tYx1JbRbQNZbE`u14!K2qFE5#@ zJih06s%k~^AxX}J)&Dj|dxjjmB3Za-&5^PMW=5NYfR7acx)Zw3_)g{SDf8nx)qQo} z)rZUL*d5F^*zDozGynO1(!tada<;9inQ?D=0)8g9-x!Lvcw_X>y6Kfu4z;fnITbPJC)b zL4Hw5d}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=yBVZ>VcFI{ zZ{*hmUFBj5JoKxb!@+%1;-zaPU)(*plz5}En1ME~d?2{{w#V&?rVQ>r6RoSw8#!F)}9!*b7e z3s=uMWX`$Z1jB3I)LHh@x4pM4xy_JRqh9>&)#akB6}{dIHSgE^i2RxT|Iovgh8B0$ zcH3UGvasEJ>im~$yIYT(J$pIy_ueIU?JS}nnTNQ&Tr0|Oc-EFebH~z}?ZHNtA%z+X zH?mp3|9e7YhDN^Si{-KBsy zqwv3wG%_zIY-!!LF$Ohii-N#OS5gC8re6$yy)v=Xt^O*#6P84VkOH7<+pc zItcUp)_$PyuTlTOvq>)Jky)ZAi0Q7?QqiT-8Wj~y*O3xv9D;opES!e zSLJX;;qULaB3gS-Pbjo>61v{`&thA!arbw-ZnOC7PwVC$yB(dsJ5cOT>f@7L;_DB# z-eS6cwK26r`p3fM=fApt`V)|>zPgFEe@9#RXBT&aSXJoFioIG75u^__u(2}hGT%BE^{X*LRg?EY<2T!+io61_~XWm?+<;@u- zkm}qmxm?>TLP~SlUHdG7bKYz>@3b&%XZrr;V4Sy$*7W61_|EXh{=K*=z3XYIZL{D) zpEPBi{@PG+nP}r(|KfQ6*e^-xKihGpP;`}B=uXWqf&v%cMXEgB{`crl|4ZiUoXn;u zroR67Nk&n2`<(rz4{db11s(J*z0&Wv%;pm%X*yQ+nQ~ diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index 599ccc56b401fcc1133a01b4064323cb424b9664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1062 zcmWIWW@fQxU}E57=q)S=X+Cj%LJczm!zmsH1{DSdhT@W<(&Q3d13eQx1HIz>ocPp= zg8ZVA_{5^*jLfoBy{zK=JWdu?hFAuM1_lP(j*fKWKgNX%FP+jM8bKfGt8uiy&#cQZ)&!m_P@ z-pH>By2`~Ac<5IaZ_aE#y7%T6( zWR>mO_F$GpO>>u2d+ zW-8^^BUEoQz0Xp)nrXF0lkKSZnvZ6DH)M`}ORDw1`>E=~(r%g1Y1?OSEB+&TZ$|g* z(&%UMIsSLV=3L__-u`XwjE*x3CEfR~ELs?&81qVKqmIeTSmE~q#S+u3la_~HH43o~8_ z+`6^HdTzMc_a$5Ntsf_TRK0bBA77szUi*X&Z&8uG`Pgqo>f+b2(;AYC*$*qJ zoP6xGTJRl5*$YqJAO4NAx2=l$o6h>Z--`dx%!0X*h5`5VYhGtg`=5C=?ueki@cqka z*)~@DON_bZGgRH3YLk5~_5bI^%f1D8GcwsTj3A1b+#KM|$_7%)2!ugE LdLOVfU|;|MYM$jz diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index 72408f10eee854682433e78cd51bfca3c6923dbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1041 zcmWIWW@fQxU}E57=qoG;3HW#MMLIJBLoN>kg9-x!Lvcw_X>y6Kfu4z;fnITbPJC)b zL4Hw5d}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=yBVZ>VcFI{ zZ{*hmUFBj5JoKxb!@+%1;-zaPU)(Pk2_`PeO8xGCJFOrhbI-Rah+w(kx<<`WdO`xjoxX*jz{H0k(5 z+3S*ei{p~#e@!x$`PO#P)uZ5bQ0ZAupSOxDf{Z>E#;oc;`S!hh(+n$JM&DHFu0)n- zVI7kz1sn9_8BUdL3%v4t{*#Nn&(p55%wEcWlUdFF+tnCeuc#dv87ugf9M7va_1U7o z?eqS$$;yAebNB^6%acF)$a|j2vXHBRGo~v&>hzOg4v~7$@_9>ko^RLm*N)yvyZOwb z4$eB5biD1?Ay6N`O?}Ab z?7aAe;FnFA&cZJ^qkaaodRTa{s>Ftty*)WY#m;+{lf=6v zpI4vT#xzZ_PnaI^iTUxZ&nuko3zr_Viss6Wy=ltBIaNd6c=-;C^GhRUf04Q1ax=64 z>~j@`HTSJouPBf6U-j@v@Xq&Ti;kv6W&M+wJB51*XKO~o&kOR;XLs3EJr`q~X18tr z+8qb~?-D=lqO|#K?VCrFUnj-=%W62ZDf65R)82KHnB{VB@9?czZFEV-;GoXLrAG4g z?UL+ya$C0>wf3A5mtS>K_}meG$JT3c6LgO22yDxGvvyKue$>h{y&m^Xlhxy;tV%z) z-BWk|T%~^?Vp{8k>jC%AIJZO#%nzJoAHb3F@xeyFV*Zj}5Y(juH mBa=Nd?yL&Ttzgi=2%?C|xB=d*Y#_CaKo|t1R{}FW0|Nl1+tbVd diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 5094554a284f1aeeb48bb7f6cbcbd5e45b945934..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1206 zcmWIWW@fQxU}E57NGd7_c^^47iI0VW;Vmx%gE9jHLrF$aez~rJo{64;UU7a-d}>8O zeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJG&LmGz!gb*p<5?}j`3bdKomP!V&| zw^5J$KVQAD=1Wgef6@Ab+HcbW_5G!m)}HjaWmf!bU-hfo zN&+t(EPE#fE_@nu;AbcAC+q&NG9MJ4I==iSxMla5PsdmA=KRcE8qmJ_$4$B2YhGq9 zxn6%`uF3_kB%be_L0*}BJ+u5A)~;IPE&j>3%xC$fi5qOPIsORjdCg{&5xCRN%JA_8 zzLL4E_tZDvD$X%b(5z28aAcnO?v-~wKUSXM&?a%iZo{jSTceW?wwbTFD)vy-MSi-= z+=r{u<)&S@GjZ;Qtiv1)x1-80FsJKZv@urm(5YnNnB{fuO?+=+)Y>p@!RSW<_qS-A zue@X7#P-G1cXf8^2F?(Ud3-t!Za>XdY!9nUGF|(sG`-y1(Ag(3ius%3?-y;i?d4OX zXIopamprcd>lP+k_9t|5yifnviS5FoTh+E+wiEsSb&mZ5^JC|_U3dO(dHUPG_=NPhlyp43{^@Qx<#c#f;WmceEiYtCw{YiGQjn7t_=f47h+`{A?8ZXc4{q0aIoQ^xNTQ}l-X5FOT!k%sKsw*TinH$E(_IkDG( zHRfqR>h{~Mp>3iu|L@I6=u=*+S}4;;G#hU$wq(%+;&BW)(k4QvUqIuoupX z|6*r(d2r{gdZO*llBLT74kdjLtj#@iuEg=+Pcz9Qk%^x>r(TG@ma1~B zZ~t_jRiC^Z%wDy;I4Jr4f9Fy6IJXUDXC8iw*t1>oB*!+TIe!jp>Jj^rEA09F_4&{7 z)(>VR9$(tV==dsvC+eOSD}9+h+la4jf5T(5W$LamIwvp4GfbG9 zZkTVTy6nMcvzWB~^J71E79DP|K5##Ks?imD?#d4n1FktvvkTuT^oW^bpVM)NH3D^N z4|v~RTlc7Bb7R!|u*XMYqZ;R_A6vEK{4uq>(z%aB4pg`0$LgPotG6{_7M4B|eIdf; zb;d@A_}G)nWh`VCit!lqH-raA|C*xxXIHn|Im4YVuS}?AaCxE`=~-&kUv}5t`jp*? z(%4Bs`JXQtuqywb%B1ET;LXTn&y2f30hTFX(7*_yh$vnHyjj^mN*RGL5J>w2OD6^f E0QZU^`~Uy| diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 5db3f34d14f52cf90cd13fd971cd06e8687f6c1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1207 zcmWIWW@fQxU}E57NGd7_c_h!-#?QjQ@RpZ>L79Ppp(LXyzg*Wq&qU8auQ)#^KDDAC zzo;ZWu_!qsvn*9Ft2jT8lZBNbmVu#xfx)(;Bi;CqapA&C=eAk%&N-Twsk&dTwKqu0 zPJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+HDUUo3@^o6U1 zzHQ%~E3?GBD|dt+<(tX*lOt;VltqcLP3c<7n^HU*cjmD(`HLK6TIRiT-+!w~YWIUO zy`yWQe%rsbpE2Q}Sx`yBq6QxSNn%A+|Cb#tR|;IbwzbUEZ|)7thzDV_x9E%5eYtvY zuivw0q6THh16d6E%Vw^7qgwWFdU*V+qJ`3}eBDbN`Ij$R$@TZ(2^YQ#||$$3JJI&Q=KUvx%6zHlI~qCK4;eGp*+GyzN?t%WsA2uevsU+jM8{Stirh2wYqI zexLQ5C7P$0DFF1O3^?=u#Z`iSE#OPA%nM!~A@9gyxKIiiXW&cdr^KS3fikF{UxEtSV zuJ<*VCc^kenMYFcNnnuv*3G>iXGC3=x6sYE-@&EMEjnk@@#pC1wu@Cdi zzT7&dwNa=yv8l$YRSKYR$R*FVeJCFdYK8os`KPEb8F>I zmM+h7>B-_dW29m(%45UYcv+>$^EhML2Ufe%vz`B5I>l+6TD@jdg5Koa8^c11wmfw4 zaM|!lyJYp@&Gqjkx~_QeHJ@}=?RS6O_g^gV7oUB3(m$(NtcppcC-&yrJ#PKuc5!B; z$f^|yTE6P#XPM{k`RO-Z!u!a?EvG^n62q3(&6=>>&hFQ8yFa#iMdsNLRl=07tWXsB z7o=jRJ6m$A`_H{wn`)9Gnw`ouj%}E}Lh?*XNKVvEPobSMUbQbbyKrx6-_~O9tbKag zWy{lT;jgP#uUD!*|Nq4q=aK+#Mkae^+$9RIPyvGmMi50r`4ZsG$_7%(2!w$^IsjNa HF)#oCUy30m diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.10-compact.zip deleted file mode 100644 index 6fac016b75f2108ab8c69bb45b3227ca7e9b0fde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1272 zcmWIWW@fQxU}E57NG>V}iJW9C9>BuDP|3%@pv=I)P?AxUU#@GQXQF4ISDc>{pIT9n zUsMvGSd^TRS(d7oRh*y4$->GI%fQgUz+l_ak#79QxNza6bK9(W=N!$;RNXJv+8ZQg zr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`__l)!vTp|BnFFP1{`oh&h z-?s10m04oml{>ylvgj^T?9f|J>=;vX&eChHRTB zd))XNu%P(;g{k51I?l@T#dt0i`B3}*#FzH#$2T=8G;yzAy`=EXxo0hs-#(TEckB;c z=kq)=s^+F_Vy(hKy$)xT3osYhb|Frktch9?X zuSrxLJeMEpUOZQSd-kL|o!pVPg1&Ekmj1f#poQ=6C2{j!Z+jmgrmxhc`|y8_-hrfN zQ+(J|uiGib$;{-h`*QDH()E)?%kJb}app}8zx*yKd)fQ6Om;R=gMz^4CH@`8)mxQi zxKCs)p6pwASK+!dqv3pqJ*jW6q?AgRFP-C=U(cnoL4WFw_WCdLWo>Ksl=oEo3I$C5 zryzbbSJv+TEsq-8Z_#r9E&tg1mqiv`Sr*gwWWLMWspaVhC-NRNb-coy%=cc{!<|*5 zwb|^@G&P3I$kQ`+z1#M6rQ0++@3(k+bxiJ+cr%m9ucRR7 zaC^X$bGDA_RH9hF91p5SEt=lS*(LY55Q#Kupuer86Aw}VnCC|P7?X$HvRPe>y$hbXI6c(S)boz8{ zX>y6FF2~zF4?pgTm)I5hf2Ze)%|%YXC(6vSZF~AL#4zb{rTeq;=!B%6gxEy(?Z;-P zd~t}nzVTj$P*=?zBbM0=OOjsAco=liKdr@WZO`-cLr0&q&51ZN$s}dp>tl>7Ommek zzZ3d&NQT==Ma@G!FNn9}_5B=)?#S0Fx9yMqStnd~Y>5fK)bsX2mGgxYq@1IfKdbcV z>|IsfwZ+O&+wJ{+8}*#aDrY*PJ}zgFI94>Hc-QsUL3@uVC9Y*UTz^x}x9v(uQ0R_} zBKrlWJm*Lb)zmfY{$8?KMVjl(C&NQg3hq97fHhUfuNBuz&07 z5~F!$X0;n8Xo_tXi{spQ@G4P$GM-V{jYl)>lWb6$YjrqyGR0-N?_2y2%?B6 WpaQ&E*+5DefiMtAPXv~43=9CV^+<>S diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index 8577a2098094b4033c058b365368caed7a23610a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1282 zcma*neK^wz00;2jY!+$sJRRXoCwI3tmsVaz$c>`Bv}tr>=-5`q&dVs4vd$c`+XlF z51wTWh{|z_&z_tMRXcsR7VdQT_YaN6cxSG;GQ$l#naw{*bc?jtwF2t$`5{4R7f|Mn zlvAl1rIA;!{f6SCyw*2>k{p5a_3^NABA6 zWR$Yp^t#O<(s{o~?Ty3HOP!SpY*VOs3{frz)iftKB4vhU7e~%i#tp~OY*{h%GVa4! zVsN0ZYFSz&y=U=m;dW>eZQtsd%Quet+_1a3=FAziecUjv2aS|X>sd^lh7S|K&+A9K zv_5b8S9~~RW?xvv))0#9?VdE+tD07P7OZ7&N922oElPd~I6H3^R0a91*enD2V1K3C z6*pRT`|RR1S10-sDFWlsz9!nkyXaS|79w0JVd!0`A=6YL$cOkMw8RuVmWL{Fb(jrG z$-8{44TDq7arWllV;sdT#~(%+mGQYRb31cX@=s%i1&Xm?ptPgkM!QtXW)e^2Q?&=a zO;YuEOh`zCS})0dTZQQ^a1+>fbT2tyP4H({==O)eay#|;WQjCWge=;KrYOE*L^!;J z_HvAIz}W}^Uo*Xn;<@jYGOOCBjKL>QY&9XncQb&B=L4^b1>=d`H4V%tZnDO7*bjj! z$jdn^_JqRkHT_!D0U+Ipdh=zO5AiEy5ZNuHgd+i)2aD;de2`C zIJ3L-pmF?cpOse1>K3d26?C*(c!nzwUWXzMiTskJ{p zUWQsku+0$Nx^d?D*V_8M)VZ;>>AhTXtAE_&fh7}o-Z<3#;MRGU2^Z1(_1nIQRj$@o z&|;_HiXwqyAB^dmXIe-utWyuYfYzjg-fxcFDfE`aKB0fqCn{&KlKWDjC}D6fv}5-N zYfGQ>>-pGa{}c10Y)g>7eJ@xmIIH<&9~_}KL?TI3vWgE}8GN{ro5uZGp9q1^JX zaee+{D#*EG!&cvcrX<9j$GuQP8d3bx=Gfm2f6e8*o>eNRl4r;2)-YtGQK?_XA~N5R zB+97e+%iu3lY4b)PV;jJ2h)05Ssd0|X5u9`FxztBRT;6UIW*ixT~0=&dR6W?h4%z$ jID`Kir){79O$zAC{12+|o|@1vSI~BSwzp(kIso_w5rtY1 diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.12-compact.zip index 1718066d667285d12073dfcfc9b312d6ceb8e4b5..23deb1c3949f634f8663b2b225d64941024430be 100644 GIT binary patch delta 1451 zcmV;c1yuUa3#SYiP)h>@KL7#%4gl-5WL7SU*E4?w000COkr+*XAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH3YR0b#}fKmh)|aS{>nzPC`{7j2o zG0^$9rv6x!eUw1>y~+CMRz8yG{+`CN*#9l@RsWTx#>lpqBm z-69LLys6i@4!u#UVwX=qRbb7+uz@FA5D zn{`Z;6!dT37hC{7Iihu>`EwajZ*KDrCfTdurA?Ekl{{a{bcXZ6GmNP1SXlRBl8eez zkfTWhjXiapsBdh$#BQS94>FHZTZO7OQzie*R8(Ob9gr2|W?$j&4;E_5O}@8bkE>(A zo-1CRh-i_2qfc4V$MEYJVYH>T{9-O}H<%ZXWc=$&*}bn8j&aK)nnW1hisT+%^fPKA#s%R_E+*Y^MN{@LwDR(RqgZ2|lV`*XJN$D^lqip6d!5^`_d z+tqLDs01REE_;;nthy7kKP%F|skR!k_7W}`N7rkAK9Y3?6{$aoi0+@WAn={j)k%Me z-%f<<)vsZ5u4_*2d8Zlj?WEG;BPk#SUk5S|my(t*FzCegL3cZF#=l-YuOr|^+rBLK z(LHc~LE#yaE6LOQDC-$c6p~wrOxCUOQV%7iEXx3Qy+Q^XW{LQ=q!G9!LkocCqJe3xqh29_{a7oZN^XklqY9NB=*P8*L13{Ny0o zeI_)A-GPylQX@stRbHkaiTH5mc)OiKsaQjQW*eE`hhsbR=+lGzB$OH+AFWjwU>m$s zVaIF|oL;Poe9~B=II53|Aibm@Bj0go!_c_#)Te(yM(|N_k%TI*QP5XB*MtWYT;hEv znn2+SAM|2dApL)86)@Wanb{W;CXD+R#~i9w_Ed(WoG{keo0)FyNetoqI6k|=1(jld zxfY0hm>L&Ub}Nnue!Q-!07~;jSQI=XE*Hi$?5`w0q0b8-; z?xmd8x;Y!)6#(!H)CJivSlwCZsga(4%4F1blnhg+IPKDUTAqguA&3x78m4=>C?Ve7 zH#80W1X|Cie7&~q0vKaqj8&8?8{9teEjrpe>5&;RNP;^7sMI8o&xidV=15tNW}th| zWlzTzbuRV+<5UD4#-Ag$r^6$yo<6|;SaMp2XO2Bgo>hYSh?G>=VwfO=VrOKFI`?i~Z$b!f`p`P%I z?s~4Z8ky$v5aX)vO>i1hWrKVd!xVp>5Vlkwe=*S=`|z?(Ctbr>8d`JPomNvEPu`R# z@W5k1b8n?M)tiqF-#7px&|#K;G&7Nr;wtG5QTEe5zG^nJ_QJPJ%Dw|_L23dBectn3jx@X zH2mP)^SGxw!i*wT|MO~o8Bj|B0zU&k00ICG0PD46RxXOyGk*mD00b11f(1tgzy$yR F0012TyDb0! delta 1363 zcmV-Z1+4m~49^P~P)h>@KL7#%4gh0va8zDiF}f!O0052?kr+*XC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!!h3%h1(vO@{YFd1@9*dAL`_4w(u0 z2wJa{qG4TvXDTDIWJ!U!M?!&@g-DU!aYx6&KeeJ7-6@l|G&Za{ zM&d`LAPDfQ3NJ=~L)-3CdgOHW)+My*hrU`Lfs9)p1m2R~k<(+)g=kWs@{p9s&w3yZ zG7Yy^*2VDa1OA`3V^r@JMc)RpkYbt#mgwgggX0nn6_vj5@(PW#O}AU{zhr786fZiF zqb^81dVm52nffvtdd)wW%@sb%mE!2Bsim$A8OK-cj-pwA{ezE**8sQlCgy&pO=h-M zf&^T@nkf~lt-0|^(1eeq4tOH5Ueqt|M zqx}hk@kYph95a%*U!JBuC!DUjU$C7jh=iEbMUw(x2j!ch0IbNY%Cu7|kv4heiL0@V z=kExLs;{xW1GsIR)xx<4_w6r^!E3-cV!34$9`y>xwC^x5g|IZ-EOM0a++I_exFiou zE=Dl(=*eA+1|c{PbQhOf!`p`F^1@oA=dRRx{%s$BTeDGBPew`%dBs{F@mHP=+#u8t zu$SOd?Vx`cm%BT~Xybb)q8W0l(Q;&0x^If?(iV>{>)GzdTbxIxXMh#MGzUm8>y7vN z$W`Wo?B4({!-0<)6A;$LIXXHT1pbMZJl~W2bSj8oZnfryqXEOQ>;fD2@J{$4y()^~ z!3!aOEHj$bEI(#eAFM&zU3_E6-fw_azZ>K>$Coe7^EzPzm9=OD$Qx>1FXd2a_NS}O zqE`vZUQ66cK53%n!^eWQhXWH>EeCFr;ehYXtL3>trpQ1ine&43azYWmIZKtHakiN@ z9Y4?}`g;6UD>@PNA(^QVfzZGjoCRJ2n2T3`BIT2P&d0aO*$Zvzq!a_jrM@}i`6^49 z7wO1N)J^ww^SPxB8E_2Wde~%YKaFFE;bL9+7+fRX?ZZ9ou)Pz@qGCuxbtb4hQn7bP zNkrTl6#(L}UOnD}hX?ll&*xkH7jB!ji*QT48%Q3oc@6>y8;9$)OND!#?w|1R_=B0|_UeV%5eDQx zgf?Vt=CpbQ-1=r2^ST9HWe+r{dDVoWKly>Dh(Hz9yP{uksMGQFTZ4R{U}8 zu_$sYeHFT*3Eag~uj!%P==<*{+aKlrpj~jQ|JGSML{Lis0zU&k00ICG0Aq4+R9;>& Vx+ety0FD!r+66}jXaxWO003cCnKu9c diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 065212f4c0e6fa7cd6e3e56ee56cfa8dee5b3682..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1206 zcmWIWW@fQxU}E57NGd7_xpi03i;snY;Vmx%gE9jHLrF$aez~rJo{64;UU7a-d}>8O zeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJG$s?mSt^EZFO3Zf2g3P0fX_+H@Nh^vvyG9;2e++10;)T@~F zPRMZ;twq_cr8lP-xUP1&`2G6q)z&Pz8`RJB?)dD~?0a8aPs{n5$i?M3`#af#{On%F zmjndbX?-*1_4)Pagm2=vS-okOvtIoFp!NB+Wt54(v+}l&5}a1I)66AW=E`P>E}OpY zoS+5cvx>5~S;>b_xGpT+E-o7aRK zzZsKqf2GBeMHy>Oyk3(1_+B{or-T2#ztCFP&73_qJO1Td$K4fEw}yn;v$^xyD$e}t zxAw-5J%{5>3eR+$*ndy$>$9`IzK`5)SA2-cb3bo5|6c!f|D#K-O7`^mDn=}SUE%3< zSnOY)@8$#ZQyCPFcdpt$cNgO{p+$OcUdNmJce8bvuI@reiNyZrwK-~M@?$9eL#MgKDFIUlXq7}xn~so|-2O4qnwhloDCyJze3 z^*)vjzh<;}upUT}ZJTr7m~ZLJPj2<5N0iKemYk5-p|zj+)a2+11+TC0SxwOYbpG_q zd7{PdqxUnk$+tUKvYATPmKHLlzuVoA_-?+&vbTHK><{1Xn&4FJ9k={kUtDvV!_~Ea zM3)+7-?Ve+sZ8Nq^_x?6>(4a#7kj^ROi?~-Gxg%Zmg!T?FJ#U6(aKP~#wS=q_UOS+ z>t@`N_TSX@Zhzmwpt$wBf@YWm-t)|!ti4??&}M3lS8K+;@P3OjGTs3CnXiTDIih4hfzG zy{9jQE1pPK();f6z~}6$iE5pbITbFfly0_^XX0$G=+TncvF)Uex_8aoH~AVeb&Mys ze!cbiXwt-OmD7&1SBv;bZ`-NUKgVPd!z&y6Kd0kf|EUP-o-i$V%B<-V)L#TfoM_@b zHf^8X4|$_Q-|l2^ofWPBUwtCjC%~JL$(|W^fdVX3z@UKH5@2Cqc+1Pcpv=I)P?AxUU#@GQXQF4ISDc>{pIT9n zUsMvGSd^TRS(d7oRh*y4$->GI%fQgUz+l_ak#79QxNza6bK9(W=N!$;RNXJv+8ZQg zr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`__l)!vTp|BnFFP1{`oh&h z-?s10m04oml{>Eqo&F;O=s3 zC;x=HWnUg!-F>^!;K0iu;T0+JHSPY_78u$dE0mfYa&4QT;Qvo=ci-67QDIgyF@$mI zQvQ=oPEU6p_PakZqFOaEzQ_1{wpdrK*xPdoN5$$taOE7asGjRtWaZ>tGq*x-qv9H+ zYun?0x5(b!D;9c9#9r-J`nhd2ugX@wvW#p!-1h!niE-=Fxu*?k>J7U2>vx>$SM{F6 zu_pL(S+t;+Y%lANmtmKuT+W#E%=JRjqt8=}BqDoPee}AXr{wbQ!Ul=*2kf44dsQDj zc=nfdZdFz7yc?eF_P3SNMen9H-o7g?!=kaPAaJuxer{W}JSX?d{YQ@&zvAYx>?*hP z*!(Q}=J!n}j~{c@-zqJe9Q~>#IG~2B(Q$TSw($3I*Uw*eO%Kh#F-@r_`<$9Ho8&Uy ziMy`NU2*Y=@tNTEV}BY~1PDEOx&Pj>3+eNY{?S-u!{ua|yKMRLV@K<3*2blGJDvKv zHK*j0rpx?o9cP74+H~yxs~Xc1SpHY|$nIDA%9G7EN;6Gzt$XEnNr!cMU(cpV!AFj} zI4nAEkm_*cyhrZ?KF!RC8`th`D1Q6EWPwcX-Hj(Kw z7KmQn5ORAj%fgDfxBF71--}wR&D*ZQ5^ci?Z3%nzR8xvZZ$ z?p}Ylp#InH<(9@#iXywsPH#BBN#bbX8aA`%nN#;vrd<77A^WaMiTRnB{@%q;_HAq9 z=~)t?!D@A2ndr8}bnEn~7c2M|xhmhfDaf4kMoeYp7) zL79Ppp(LXyzg*Wq&qU8auQ)#^KDDAC zzo;ZWu_!qsvn*9Ft2jT8lZBNbmVu#xfx)(;Bi;CqapA&C=eAk%&N-Twsk&dTwKqu0 zPJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+HDUUo3@^o6U1 zzHQ%~E3?GBD|dt+<(tX*lOt;VltqcLP3c<7n^HU*cQvoz*>i1jpiTS#7sqe^m+A3Y zTerr4Uh{@&EpZ9QHCC;Qc6-meMs4GL+$6DO{2 z3Er!G`epW>D>)ynetL*#z7PJR8MZ55u&BuWUBaxt&Ni%utGDdB^X1968P6{`XUa;v z)T};Ut0qy(Ub81oX|YsBh;>J7YSNW0-7`vv;bE z%c8mr;VaXtU$U{r^w);C{8#EfVb-wx=YksxD>pt}&{etXWW|fgyOyzW|jYk++Z9muSGCuNjbzcF~ zee>L=%+ua8YPlt*PwuWNUe%V6nYe8BrA=?Q{f^hT+V^YztGisYSl%`${#|hIjIU1r zVJ0!#$U=`2A>-%A|NEzLxh`IO*e||rwxdwvHYUEC8vNWhgDnLMl@>hqt&3_*%)TKf z`asv}@0<0DFYUQtvcG)i)%t(iUOwXFTI=*!>Fw-NqZ#+!?(Ozbc+NRn|Jl@OWsi!j z&3!8kgRa$X-LJB8%gYTOAq&j{ zFP~Z5r&U|LwqRY^(+T(H_>HCg0&G7gLalLu;EA>Nd48M-HKv725g#WiS|2=NJ+W9l1xbD=t?>D}$ zac|}-DV1m5^R+Vh*=*s;Bfo7Hiq|ZN7OtLhX_i>*MwRB$j4OU0?`6$6o;**``=)4; zot(COpvZ=oV*gaWPY>{BWU^<*U7!HV6fkID1W`m3F9F`HY#^nKKo|(5{eh(u0|Nj* CP#OLJ diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 092670d17662be4ad08d3958ac2b7796235a0e44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1205 zcmWIWW@fQxU}E57NGd7_@%wb+11}2$!%JQU24w~YhLVh;{Bm6bJrg|xz2f|w_|%Gm z{GyWh#G>Sk%(7Iytm6DUP8L>%SO$g$1_s-Xj&$Qc#)S(no!e&3JLhO#rs{sV*4`i~ zJN5P4yG=K~JY2nWdj#|SkG#zdXZDAxWj~2~(Q$U`0{=HZyl14Z;0pQodfCCq(-*E5 z`nG*{uFMkiuG|rRly4^IPmZYdQx+x0Hl=GRZ%XlO-1Tq*J5SNn=4Hx-)$Fm=Wy$eH zZ4-|KyK4V`{O7v8o-Z?R<*~WHmMq^Dus34%ier&+8*5*g`pvyz8Sx-&_7;5+yDwJ{ z?)7{2Ow^$4cp!^Gf7#4+Z&b_vO%IQMReXBU{+$bIEL1ZL&-rYzp0ciak*t0F?DJFB zuiUyPBrwD4G2;iz`Rl)S^?&%LRbH}LC+lQMwqVvh!-|!jd--(sZ!HZl&y`%$eMh}&%xt533+#CGtHyBP?Q`frS3ln$vg99)2nuory?0Cic$+zoj(uayQ+ofAd zU#oVm>+E^(maUkxsod3KN#HT=)jX&Ev#;^1{j~V+I*2dvfZzyO5#yX2UAa_3~(F!G#QlFMoY&yt`Nrs4RZ` zF=_GF@DrORK76Vzess%{nHZGClX)vHfc6n5!#-G<#OucU|?)s<)lb zXt`LD-O~HNzF+5$y_)zom~P4gMA+?y_f^Fv>B zvOh16-nV^*yw=ydjgMI#ZwU{tb+P_+Z{2pmI-wuurZ}$ZxV%%lTRpU}&&-7TM@#f0 zJO84lufesUeP3mEPP)LtaNt{hu=lo`pS5p_?3?A5cV%V&UvHlU$0EWW`t6*Oo7^+a z#Lr{;=lip+e63vnwpb^z;n2-p) zwf=>TX(H_*$6IfNPW-(tSpJo<&ygQ}Z2ya*bkpl3I@WMYuhM?YZ^+&BCFj$cdtHl9 zoqch8&c^S%TAFSueP6l0Ncn}{+(}#Q6ca-3>@F}*ihHcvAHT${+TyCem+J@KQZ}s* z&s=oQ{>uuNvOB#r{6ojL=R5d&3zxb4YMjfim-%(ow-U$ImH)C$uKiUGcw6x-JE<+| zLP=@ud*=JQqeK4xP?Oyh;LXTn&y2e~0TwA>(7*_yh$vkGyjj^mN*RGL5J>w03nvB! E0Fj6Sk%(7Iytm6DUP8L>%SO$g$1_s-Xj&$Qc#)S(no!e&3JLhO#rs{sV*4`i~ zJN5P4yG=K~JY2nWdj#|SkG#zdXZDAxWj~2~(Q$U`0{=HZyl14Z;0pQodfCCq(-*E5 z`nG*{uFMkiuG|rRly4^IPmZYdQx+x0Hl=GRZ%XlO+-)6YTlIYT-FX*hyjGqsxMX+C zno{5JqO|3mr){q8*<$4$(sAR{RKtUhf7;FEb)V(%&HMH|IhS_Pi^g$m4BAUN1NJbf zR;`X*Y%gB?xy4XQZ2#va$tT>ONgt5?Z2#?yR@Hlc#UFwzY|ij%$5zxO-Fw#m!0W@> zkVDQ)oDqYs#VUS6-B{rh~O z@807Nm(}Sy-!!xpF7b@xusiI{^iC~Xe0K$7Q0?be$4pMIi*yZ^Z_ByrCTVrpKC0V( zlLL3&^~s;kI=_-xH|@z6cb(eeS<>&O#Pn!CSU;C-gHKZR52I^qc5afK^V3}1$XPow zf9Bt!=Ne~qr$5j)H3^xNURUTEbp6$gyE?ZT#3o(4tNq89NA|L8q+M)ITK_zE<%1LN z*RP+!wST!vXoh!nn9ZU1ZL3#DXa87l^g&>e)r=d9`&K)>c#URm5^OGCwbI<(U1rQ+HCvuDJ)MM%Z>g_5UQ? z`F-cs2P^h`wBt#rJZo(A@43x#HQAG5g#{&I(z~{bMX}4BZJ#U~tFu{=|NE_<_m?%9 zy>-9lnC(&diD}(D-rEj>4^C|_o@pPP?K5fTJR!dcSsQL96}cq*Ih&^OYu`!#?pQHB zk2?#$Wh7qz_3zj$*J}4EGmH6VuC2eZ)PSLpXA5gqz{g8QlKq#tRm;Dpq;~8&v`@nM z=ZULoll7xq_C7tf(css;Z;?*}I_LX)D5V;ntGnE`!q?~E)?*iA{7g;<*GC0k<(UyF z(Hb-9%Il^XKNR(@M7>&kIQ`J2X%@2#8DAei?sG$|)|t=g#MFa}lIP4lvTAZ|na!R( z`5T^cyROzfu)9>?@Eq3gC20?4?%r>^b^C$Eb==&`+t>Zs>Z|(b*^%BW3(LNlHdqHv zie3J9Pl}4}MW1}8TetRij;7P}dpGGn@ zQR`>l;`R!v)>$3+!$Q=~?8l7@%8qWITb?t;oM=t%zojJj`M>Vdwv+Q)epmHREc9Qq z_(b^Y#l4r_PW6!Ej&VI?Egn>GcFylKYYSiQhSaAs^!ya6W_{7qdfv2Z+rpMJ)2!EL zD8;cyzcg~z3@qVW`2X#T$KM0I8JX;vahE5+A_WW@7(o;frAvS}D;r2DBM=4xX+L1$ H#J~Um)QT=) diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index 990d316a8de7d2c427e019a9fa429fb996c0562f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1279 zcmWIWW@fQxU}E57NGd7_xtL?j9nQkQu$Pa4L79Ppp(LXyzg*Wq&qU8auQ)#^KDDAC zzo;ZWu_!qsvn*9Ft2jT8lZBNbmVu#xfx)(;Bi;CqapA&C=eAk%&N-Twsk&dTwKqu0 zPJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+HDUUo3@^o6U1 zzHQ%~E3?GBD|dt+<(tX*lOt;VltqcLP3c<7n^HU*cTfJbw(9xvyYnv2c&$8NaLMkN zHKo4cMQO`BPupDGv&G6iq~pe?sfGt1|FoOS>psijoA>Q`axU$n7mefC7_^sk2JB%{ zty&$s*j~K&bBm#r*#6H;l25ollRhB(+4fL*$&daD)i&PHnQKCL%pXV=JKvN)de33r zmkYBXx{4qC5RW%sP$dgy$|z~4>n(@F)OA6w3Nm#18IMf8-NXI?#)c`opzqVz70+B0kG zyHWG%KQ9w_Kq_e=a$y|s_B@@r&71w zS){_PY6eF_@D61=b>`e9GbOI}G_$rlMqX8NXOi?5%F*jR=a&>8IdAU&l~b49H9ooM z^r2@5qMRd)rr9nRKDEnh0%KtDo+Ufjr`lZ*^O*i;;tqz(lk0`5zV6%b(JZs4W(DicsI{d%{Qjb8rQ7|?mfV2jiEp?5T`TS&86srUS+n)N*XARKOM5cs{%cZv z_0426i`Ji+Gyk01tzxmcDm#F|Pb)%g;ans4?)FV#D%Xz&gr+;V9Xo$+$8yyu^={KG zT3g;lOCA=OwroMo&#syNUAIEd_MIqMy{-R~QbKq&L;IuIw!voIk~0jVFWsI|U82jN zBqX@%L-S|Plckb5`!?>3F3Dz6n!B}K>yTUN>Q7v4%r~wHNP9(?@>? zxlmO;sd3h^1#v%qcGy{+@R>C)BdIH6g#nY-v@1Whtt~mts9@@z|ABMyCyl*_1H5i- zj+1Y4WWDzQkIb-#nWt(Ich6vUk$j zgr-TR6KhyrsZNrKGFf_F(f-+|hOg&ib{u=gQ?)xyyYgP}b6-E%Tb!2tYkx0n=hR+& zf!ptI<-~6}{_GvD9QTzhcL(U7O0@Y^ZdzZE9c5>4C?0m{MbK%#Gr#)!h4hRnGG@j< z)&DkY>Wbsxza+REq7`&k{QM&M;k#XDsMOUdCud}Za(*k1_6c5}+u44Q@6@w;8Qu9? z0?zGRyr=Z?CI9S zgw3)Ix$upY@3=AVMf5py!H#rR00g~(8 z0>2pr`ffzIcHruCsSqo9-ADGhyx>MB8KLP5Uz8P{&DR z0Asd#>`k!)=aVAF9yG45&&7g6w?}n)w&C5N0<8(fXEZWovf*(;)ZJpnv9Uzx$G}7+ zIqze4ZMiqciWd`(!ME+2H?^4@qo!9>g7S~T4F}%c%Wp{5`I_5@4VN*;`?{)_74&Ua z4>pworV>OEXE|@{Cb)+zsPlG$d_U`OkISIh3lpUblr%v9!I>^_$EEIR(qS$!8D^?F z6|dF#60MMCC8=O)Vc(|$yWO7YXO!1wQbf9B<5xyqdQE?S6sHRH-7;=gy>-kInnoT^Zpsx%!nG zw&};7fR33yR!n_xQyS5!@6d7w+;IH||BF_F_kXBEoaOydQ5v`QiaTqzw9Bam;Fn)| zyjN?0OA89b^==I<+~Rx3#scQql&;Y%f8ka0lF^p(5gV4IzABZ0T#p zkUp{lb<=Gge3rDWa?L<=pori^xoeJC(FqWBu^aKz*OlFK_v~s-VdRhy{yqeoeodaY zbjJ{X=1E)quf0>zFN>F6e+GrC=WC7pQFUV647!1sGic%TLl7cr4T9a4+KnQUZrJ*5_U6qL>nvo8Snta{ z2b1Qkxlm5@xbe3h-5$KXmUCp_{Xa7`#mz@Hp)eQup`HF>2=>YI4h?XBpLLo3yrq0= zOZfb_4==G{yKI5@DFqsUOfN+ diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index 7e0720e1ed3e38224a66c261978fae294c01a124..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1269 zcmWIWW@fQxU}E57NG>V}`MrE$p)U&qLp~n^gE9jHLrF$aez~rJo{64;UU7a-d}>8O zeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJG$s?(rV{Po)>h{^XQY{* zS@K?F*2+C*8FE`hcW>D+n_VKy`0Dqdk45i2ZrpfsNbLpZfz{c3{aWITi$qtc#Z(vC zbuyQG_WWdhDYhXd`Qiq~UUoGVMTvvFdiO=Q*%GRlQ-lDq?9i(QP$6T}OjSVZ1Qu%?-9&su69PeT~QZXG*xttex0-rGcq`Q~tk$4AXZmT)pkXo{clb zHmo*_%C76=?TKaox&K{n=~ugiO9u)+-|Mwe{ap67MdH_kxraV+nN2t4E1hX#A-K}t z!AgX^>+Q+fi!SUF+tX_uCU>>z)Xrjl8N*cT@peU5l;q{ZD};`-XlOC-^ElygMRZN} zq0Y<{gZMo!I8&0UnEET<7JdylK5aI;*YYQ?j~=mFI4@c-;QvF*t&6T1^weoBV_1Gk z>5F~u)g%c{r`p_^>_!(qY_~Wrb8l*s+JmU2(|^s>mtifOyzr__|F$Rbi%+Q8-b@pl zs9UJo(x~2RVjU_X&ZYKyx_nQ`<~tKlMckUgy72g{wYN8H+4w4KhxYB2?xG5=RhmhU zr=*^gv=1nh=6HUpgTr)N_0+1)tv*)w_~-dPh^vT0Y%;|IU1I zz7MyncGU5HV^Oay$P44$wDQdjR_-jWg$p&C9n}N>Zk}l6_?G}K)o8Oeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJ`9}0SwH(wYJw( zS)^+>y$_WZ(#IQioLwTgs3>aNzE`U! z$(_7*CQm)1{(-Q@^7CPT^H;xWST^CCeqxWyiFXD$PPH|ld#O4-KVS1ergCe48{$+P=tM?}jf$!j0tH!HvH z+QrwttZ~nz*D@ZAJ9ZxzH?PwZ;MleC^<8su#1g>L7jntp(MXRHz&0$HAmM#&qU8auQ)#^ zKDDACzo;ZWu_!qsvn*9Ft2jT8lZBNbmVu#xfx)(;Bi;CqapA&C=eAk%&N-Twsk&dT zwKqu0PJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+HDUZ2;z zW&08KCG#>Ceo|FB6rJ(@ko-QbOM*w^OVpZd)RuD0dhOwubAA>3=fEfIF6Z8guShKQ zYnD#-EjzVCw@3E4>){!Hym^kQ_I*gHDOF5NSH5-qfSYmtp<}taKl1WeF<@5kD$a#f{1l`i6u9H$@fSMyxmsB=5kc$--Z|B(qPs)r}mE}iZ-W7*189M!tE zb^ngd?C)7!gTRr`c|l^6GH<_}U{ zJU@B;PZ22@9iU24h;Oy3 zci;O7XBq$Pv4f5YNuQpw7U+P?BGuo0D3Wnxku=XQF4ISDc>{ zpIT9nUsMvGSd^TRS(d7oRh*y4$->GI%fQgUz+l_ak#79QxNza6bK9(W=N!$;RNXJv z+8ZQgr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`__l)!vTp|Bnug`1V zvi%7Al6e^mKdCAmiq3d{NPZvJCBdWdC2CDJYD+n0z4ma-IlqeiGw)(4YdaI+_y27( zgD*alatye#eCG9fySG6T%1RFLef)RiNx3ZJtUG3&?1t*ns*)`#DwE~d)qkz7_YW@F>yDcW%-1y|pXO2&MD_$Qk&N`;IY=RyG z_q};Bk_Qu#OOM7&Kf5ERzbSCl?(a;WQl~96T6pq^p)Y${gVs4G))yPc~{71 zv03EeO$*1GT88M|f+sE3?Of8eD5mU&k>M%-BZp?KzhZ2)R#0T-E9Sf0Ih;C*U)dJi z3~q3jyq=-Pzkff+xs019W>55po!-*Bt@%KI-OG#ivSL3y9R8+$D}8g>c*BNIrusg& zCm(z?{m1KHk0#zMPJ7uOczS&z@4h5&X^VJ9VdTFu$X0|)_DwbSN-_pFxHC8u&nxaZOSIlXzLLS9; zitl=kJrfa@jg4_&w_fIM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+HDUZ2;z zW&08KCG#>Ceo|FB6rJ(@ko-QbOM*w^OVpZd)RuD0dhOwubAA>3XFfgGDK8E0`)sl~ zf690&-0r=b}M2Uec#yLGr7D+aT~IcQ_u??e03 z&P|rKnxfKh|KY{Pyi+sT&d+z@`LwU;x^AqDb*%4WscX@1j~07eS$k0@xXXD?EOA(_D5?o&cF2D2)6<*=B#mQ-Hs7fLG zaltnt4|$3Xbme|qmt&@;wMTWrbp1Qu7o97tJhQKV&jbTgj}wMQe38o=kM2{vdh6fi zw)8ItCdzX!%sy4mWm#3}|9Pu=b3v8gBlVakmg-L18bTI+wq(6Ji+zXu_qCVX4IGpW zJoo%r@nk{k*7`Tx%zd(JTpc3sg>s0_4`>cl+x*POLR9Ee@5EJ?n(w9EaeStKV1d=- z%lkA#%a}{eJAe8oJ^DJc@KL7#%4gl=6WLD|jheyu>0071akr+{bAJ=oe7BTTh4~3dwgEWQe9G%61M?_vOkUB!RTG-}kA61D|q^k+MOaFf!g&t4_ zdcK3r@$a^GoM*q7xCrh6hBC7Hme@hUHs+l1M$v>lnD`%VGt;So<7eb;@Vj&*azUKL z9mx&QwfZBc(Tux)AF!_i>ve?)H}+Rl_;W<)d6~#XtbA`W5*zktV{?AQ`*Ud;2t(mc z9)1*wD;gRu@jpKK*x;~--2x|}s&XpJ+#Ugfgho39<>Vz{1$;ba*`(gueEEgpLc<7C z@A4|TS_5pfBiSsMSWeRQ{s8r#J#8q8>dp$#&4rCwj?_kf+z9~!wnPYTjK!3TguW!7ejA2FLN%x8r%=IjDsVC zHdO77#?XDJjahbBx7)e(5y$oN!{A=Hr>Da^D1T~K>}J1U5^_W3;{=*e4Z}vrXN?!q z(miC~%9IO#%(4{l*z@bgAF2b(eIqN)6mZV1a(FVlmb&u2E5~MT0~Xtd@q3F*I<8A; zB*qZH&!P9{&-yn;%MmGD@Ir`AxQTiDSBvG4@pGvHoC^^WC=oW6RVBR|zvZjX+tbUP z5Mv|c8)kJY6*#Q1rnESDYQL17(=~ZzePI=Q!nWgoRH=GXyn5AVVMJSN0}c~Bs} z7zF7@~g#CNcey%O&BD3$i-1x^^X_YPL8IDWsfND6E7H43%t(8u9U7^PI&3kY-r zmlH7&2{Q!?eD`A%&jJ7d#t4%)14{-J0{{R30GrTeKmY&$ delta 774 zcmV+h1Nr>_28ah6P)h>@KL7#%4ghv@a8xO93{Kbr001lr001YGKLaX}MI?VGuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2e2lEcIS-Xxi1?DNV6=X$J$apO7VF*&vPE)}n zLz6I^A4bm}d?C`DkdPPI+GT$p>jdg32(w=3^M}=oCn@^3)s8$dA}ZMW%hkh>dSPHz z^k>#6Pa&9m*%N({_mec#eHqEIsdEP+5#?Y>5sBqTI!y7iQk9NjHS=Wk2`MSnJDIg)r(g#gJ<=$|DYk@EYg0R#2cWN7{WhQ^N_E+RhkX#kd zFOn2NQ!skhhGfQshW|R*hK5q&&Z5y-$}Z$r0JQ0*Yw9?*0&Rie^O7P zXQ!I$V@aoFHm`MOdEbANwr0Jv+t6pc*>0nVCgH20ICUuQrACRMb;lx@nt`rw&atbB zzZiAS6pEN@8l4Y0oq-fnfO;D}YujZ_Ux9jy>aaL(S7^;*Fucl|tNd_Omea0}l7uOY z&QUHmW~w~M3_2Uv1SGHFBd`ub@l#J-;W|G~)UJ=VhP~t1{)2x_4rx0s7j)gFa&H0# zw6RdEvycshJsYaoo1`if>R=)SDJ2z)kP0BAG2UA4*1O-#-yscS80j@yQtyURxrWLu zCjCFq*AZuwPFi;SCgHnNp(ukcP@8Oeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJ>i)>fW0iM&mbA-# zMa;(IEmvl3$#~axJK^RZ387DI@0EUB4127zU1C{Wj8$!(am6EfTnl0sRQ|>>p zaN=Bv%Ups15@AQ}zZsmKedE)tph?Q|OPDge*EW@@JU#3jZ>)5d1+Vvy{i7m z^z05!rLhvWAVE^Y!}B+Mrt1$F6~iVZ#Iz_) zKOevKQQVe`J?tg<6J}-Y0-_nvdB-u_dUJ;|$|cWm=p{(M<;rU!?3|9yO4 v|9@G6hgX0%Ba=Nd?t}L7jntp(MXRHz&0$HAmM#&qU8auQ)#^ zKDDACzo;ZWu_!qsvn*9Ft2jT8lZBNbmVu#xfx)(;Bi;CqapA&C=eAk%&N-Twsk&dT zwKqu0PJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+HDUZ2;z zW&08KCG#>Ceo|FB6rJ(@ko-QbOM*w^OVpZd)RuD0dhOwubAA>3mp%)2mve8$S0tAD zHA^S^mYv$6+ar72_3(^8-aJQD`#z-9lqx2sE8n_)z|A=S(6L|GpR`JPc}%+U)W%5*44gVT3)xmLH>`ck_~Kof;`+I*7kdA-A6d0`Vb3-PvnPTR z*`o|4)N-7=_httdsbn74oN4Y{{^BZwT%cKA_Le1G4_w9fABb`iuzEB9xH0!Xi*uXT z#KxU9JKykRTluT`7jAR%-ii|DD*ns%!0q?h49)8q5=ZatJ7O-ux#OCQbibMJ+@m$z ziLt7h`N0KOX8&T@J?VL?LSc@3`MWTF)nhfE*B_5R&zoGoV39qam|SOI+I!(PY4c^V zVmE*Nnj6s^z3P;GXllUPeRAFR7k@i;zCL}`q{Ss)TPE}Kmt5bWxNuh1=UrZDk?lP9 z4wmunZEd`s@*_0j6=zN+qurjXd(!PUDl6oN^?o_Bqj*}3^Vc{g6`xkeKPkS3ZtAC8 zu0=J^IBR)rZ{zekv8rcpFPgnlH(J&9yQa*}TR*R=JAF8!7L_Ft`*rPkO`hZXJJ|oN sRjLf|W@NHw#+?p<{9 diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index 3631892cef9e6f00b924b43b6a2580f611f43773..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 754 zcmWIWW@fQxU}E57C@n4s(V4%;(20qGVHX<%gE|8PLrH#tZcb`hYL2dfo{64;UU7a- zd}>8Oeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJAH*K6&v1*-dUmT%}cEhNi-rIy{B6n3m5eP$pbUQF*GcW)E3`;}^ diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index bc6cd7653982a5d152804122d8e034913a15bb7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 zcmWIWW@fQxU}E57C@n4sX^l15<-)|ku#1g>L7jntp(MXRHz&0$HAmM#&qU8auQ)#^ zKDDACzo;ZWu_!qsvn*9Ft2jT8lZBNbmVu#xfx)(;Bi;CqapA&C=eAk%&N-Twsk&dT zwKqu0PJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+HDUZ2;z zW&08KCG#>Ceo|FB6rJ(@ko-QbOM*w^OVpZd)RuD0dhOwubAA>3*DLkv72fw0!|WJd z9b0=YZfEG$>v|_`rj~nWNnhAKQ>G#1d&`EEYp)pBKNa2Xmo-u1M|;JO#G|WbALQ`= zDjLZ!-KpJ6{_u^J=|Ub1p`Jw*38ma6J2$`D@BeAB3Y+KGcO2HC6`xn{eRGVj=j&|# z4ci`gR!=^@qsNW$-I7Aia-C~DUvo=YoH%|>da-6@3*Y6u3yRj}${HsWb(-!r@{L7uD}UuN2FoFI8z@=*Mq|D~S)I=4KD6bU=nVRKxo=)Tr7v*H^P3nJNN zi&rtGym6~s*7EiB4I@5||3+4if4@~p>^*+FOU5)KuXk~*_8rwfH*=iUw)rp8_c|@j z6XvaS{R*S1^qXJm0-RbOrhZH=E&Kkln!Vd*&c}}d%lEh*{CU6ixH-d*iK)BS@}CP( zU7Y=y{lJCIXMXYWpZGSXS^S*-G3Bs1V*QebWHn>su8Ed}URyi;M#o|s)0Jv}^>%hB z9Eh%xX!>xnU(l&xNo>xwcK4fmTuhi2^{xwwF+RoM6s;dMv-XW-;oDQ|db5V(r44189cT9MKd>e7*RF}TZZU0La)Y}= x@5TQcLUsZH-i%E4%(#;xFg1cf10#qcGGPXIvjS5x0|O%vh63qMVA^J2003d?MOFX+ diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index 9d4e632367a73bd311894055d681f7562df23194..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 zcmWIWW@fQxU}E57C@n4sFSk%(7Iytm6DUP8L>%SO$g$1_s-Xj&$Qc#)S(no!e&3JLhO#rs{sV z*4`i~JN5P4yG=K~JY2nWdj#|SkG#zdXZDAxWj~2~(Q$U`0{=HZyl14Z;0pQodVOB= zmhDH_m(0sp_(@giP;|!oL-PB$E(souFHvi$Qht&iPgB-||npYyGp9`I;K2 z_Vej8->HrA`MMoOzt^-0s!jf$FKZk8%=@VKZ4c}CskgZK&4XVXJ^$qVUYKhJzvI(8 zijjsUFM>H9AF;F2;+)rHY!s`yi96hml%k_z;>MGXG z*?hUkAvNIp{YB=-?yDZVTeRiFt$;GOiO%KE%(<#Gr||k6w=oy{c-l@oc;1o9@83<| z>964ZkfQr`&(!a_-;{25F*EoDe_XUz^j7eii1QCkbKWc!TBQ&Z6U27IK+bL>XTnuk zrZ|S9VPT(w`L;~rT9=^{v*p<*pEEZtdShZlOdjo%_9&fnD2T!3W1;S8)l-w_iHjcC z`sB|15

$y+VK|qsTt$=Xt@t=WHM9-5MpuW(TNDQM>)R;dJS8*J-}Zb(j8y zE|Tha_iI(bTGJO(bUI8Vrzjr~c;(#ITocCsI@;O%73-D7)vsnKO{(K&-Xsz!dEwcj w=l?fy1v3SBGcwsT<4%ge)CdL*j3A20gc;z?3QWli42(b+3Zy%MX`6uo05$_caR2}S diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index 14df7ee1dcd8a099519fd293126af7b3503ac4fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 825 zcmWIWW@fQxU}E57C@n4s;qKzT*vZ7eki*Wvpw7U+P?BGuo0D3Wnxku=XQF4ISDc>{ zpIT9nUsMvGSd^TRS(d7oRh*y4$->GI%fQgUz+l_ak#79QxNza6bK9(W=N!$;RNXJv z+8ZQgr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`__l)!vTp|Bnug`1V zvi%7Al6e^mKdCAmiq3d{NPZvJCBdWdC2CDJYD+n0z4ma-IlqeiJ0}ZY+COWVuc?7* zKc7DHo!Tg$uiIhtdrh05+T`!~vbMp`ypMX{_OOnhdW)OiJovTI^H0w2g}G+%J3hUm z7-?woBADax5j!g_&UsD7MzN|(9)vJk=k*otm=fr_ZSJLyPP@cc9O-Zf+0Y^UV$x!+ zmpYLWjq{k7ue@2$^Rjb6o`;8>m>G0mq%y#r1{0TLhl;Y+~4!g)wyi)munrtrjM#_JSupc zn-#nG&56>-ApxQsJsX3{3lD0}_g-wLBp8`%XSN}#{9t)t=DSZedreC&cYX=_S+`=% z?7}x(mZg%8x8nrlSrlGtZ?Bs0eThx&)MsaP&X;9meBJuAkac~<$2U_SHb~u^a##aDln@7}&&{BOL`(jK#~8w8#DSF;@r<=y_bYhLm5`#u7R^6}~ZAFgT% zxc@FYcs(~%r z^G;JuEG6?WyWU^<*ot}Y78Vnj3K@^dxJHVTj4WyhA O2t$GNIba51U;qF!mu6-F diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index 8798c70904f1e6d5e4f12d554b95ae56d4f3b52d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 827 zcmWIWW@fQxU}E57C@n4saZ>!|-p$0oki*Wvpw7U+P?BGuo0D3Wnxku=XQF4ISDc>{ zpIT9nUsMvGSd^TRS(d7oRh*y4$->GI%fQgUz+l_ak#79QxNza6bK9(W=N!$;RNXJv z+8ZQgr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`__l)!vTp|Bnug`1V zvi%7Al6e^mKdCAmiq3d{NPZvJCBdWdC2CDJYD+n0z4ma-Ilqei`;yNB%HM@n$n8iA zDr=H%m?m@eu>Bl1d(kDymNzF&`nmJ@++TqcuNN+!yp!2*Pu4_rVDv6gnAZLB$RTO?A-inzyGJjDk^OM*(R-RvERbtyp?VL0q=_4 z_rJMpmf^6F&+p+*@i9GpcbDqd#>=dqo-8wr`1wNm@#6-gxtt$O+RuOe+)(gR)s|uT z#TPQOG9yY_d8Xu8O7Gqr_ib@(boLbH0``ON)i)l=4PANfV0`VaZ~9?>4^|&!Fzv8& zIyLRdDs@FqgB;i2oAUH$t?ycU?Ug{?1kE-2LWL4)XHz&9ABza*XTIInR=W1RvZ}?i zwcKY{d~=*4((o(n^*Nn>rR`6b#ZOsq>E`@heT=5J%YR1KNDKb>oLuwCzit*si)Vp1 z*A=(-Y)*mg!eO)azbehIt+$x^{%z4VmZ+u& z2i>1Fo>2K^;Bt;>?iWu@8Kb$fYi#@iUfw^{e0a|0ngiRIX0Lwp=k^tamiexWY%E@| z@3^kq5NPlFm#Mh!d(?+@m47c(+__XH)1>`_b<083DC@3vc~>4qC2#fP3%3f+Y`WW) zn&kTBM0jyx8`I@^9M3*Kh!gNnpS%30aQ?rtB{~7#j7;{-xKlJRQG-DPBZwk0eFu26 SvVoK{0%0hSz5vW33=9A@&uTyb diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index 18ba4c719453b7d43500acf25e6841a897dfd933..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmWIWW@fQxU}E57C@U@qIWn`~vWA&#AaL7jntp(MXRHz&0$HAmM#&qU8auQ)#^ zKDDACzo;ZWu_!qsvn*9Ft2jT8lZBNbmVu#xfx)(;Bi;CqapA&C=eAk%&N-Twsk&dT zwKqu0PJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+HDUZ2;z zW&08KCG#>Ceo|FB6rJ(@ko-QbOM*w^OVpZd)RuD0dhOwubAA>352r6#&qd}ahS@Q^ zI=1#)+|JOg*Y!@?OfC1$lD@Eerc6W1_m&MS*IqHMe=54&FKeR2kM@cmiAPt>KFHz! zRWy=ex>LKC{NWob(}g@3LOqKr5=yyCc5Z&P-~ZEMiT0nI*5A}8t#T{z`>-_5N@(x0 zxm!6@N}DFHW(g^KDfjzN)%Ka1XG6AJlKJp|9#`@f-t^l^FC|hx-6?Z_B9`7zwCl?1 zD{MPAoqK*zr@r~siiBzxi`T)7eD_xG>%XqzbGSa$CZGY$6oE3x8i26@S}yLXKe~} zuKztDuedE&H~CRbNRoa28*wXdaaUx%iwSC@9CCR8abL8}YMJMj6 z^)d=rxt~o@!2Ipa?-fCPo6a|HagdF^_xtvddj`>Y%NNeH{hXWac_UQ5$7a>}`2OdX zn_jlq6`C3w?`dkd{>t}CxpsxX`>J~dapum?uA9_k_i~xeTglyRf9+47y|wcSg)2`# zs~7ETJbl-*Mk8y=B_&VI_@}{~cbjT?`{&Oudcfws*P2ap@7EK&lh_zSeu}-+Th1`| z>z4`I<_D)gwM+cIyTQe5zvX9n#!tKNr_87n-tVw)T~fz}sKV6QJghrIOJ|E;-68So zbIw$|iPul1#+prD;um@9(giCm!GA^5k^{UMne3TyCuU%J27?Ah5JhCt4)A7W11V<& N!cZW68kjp67yx_gYzF`U diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 63e40eb53fba8cd2c77a655ef14acc003bf171f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 773 zcmWIWW@fQxU}E57sLC%0S)d=c)}4ugfsdVmL63ofp(MXRHz&0$HAgoyw;;c$MAtyi zM9)C4I6o&owE`p%pIDTfky)0imsOmf$H~IV5X->Oz`$VJ(UETa$GC9erE}Y?dFLF> z%T(Pj*V-E-Wv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&16Ng%l@+EIl`E?(y=-J>gwlr3a3RuX~X+p=#Eb zeFe#Ok2OLC%f8QEwM;0bqTqIn%C0Kc?5_VmI1+9ZcRc!D=B}|)F8;)gFWN`Aatc(w ztO)p|g6lqB`z?+o~q>B*Oz`$VJ(UETa$GC9erE}Y?dFLF> z%T(Pj*V-E-Wv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&16K<<=o9RJ2u2u-hRDvU*?93ZyZm=1it${Z)(NUYpoxI zzL~`d2pAuEIg|BZ>=^J=9m+|{POow)ZP*QHkL+ijjbc`M|btt1nEt@*#?xY_?1 zEo@sjpA@eN{B>jTq~B6`_f8)-pZa)F<}A5@?DnSHP0@>`LvH-$o5q&LwBy6l>F<`l zs%frr5)BBsxg+NCo0jzEg|CZ!lwR+;>1b{0R9tyhD*lGu3j5jzxsx6xrwX~U1t&dU zq43P@*woc&6{%bYl#Z9!8n)joTDa;>!u3~)k`r1gPwo=wW%K+0B&rFJ-V~;tD6FPv)PK z8lw#-AOE6Z^1}Ge#D0h4dm>#ljTKXT>I$cC(6YTacPoEusEjFp=30Td-MpryY>w}P z4eA$7SW*_ZPA>dq{Z+B92lWx&oD5!jPK5cb_3LWv@z|9Z{>tlj-p%8Mlh;o(w7D{8 z|Kz*jB{>BPuW_CKVy^Rrf7hzk)B8K-O@ts+YPAwemN1uyw@&c8 zwXU~e&&!Z>?VeKO->)?j0=yZS?3r;VN?^JKg9b(rMOqRK@MdKL>0$)J7$7|vnAjN@ E07x-ZQ~&?~ diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.10-compact.zip deleted file mode 100644 index dbb065a1cab08a85c1fa5a6275b4cf054fe1eb15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 844 zcmWIWW@fQxU}E57sLn44Y2W-%zK@B4VKX}egB}9|LrH#tZcb`hYL0GZZb5!giLQa3 ziJpO8aehvGY6VCjKCvh{BeN`3FRM5|kCTO!A(nxmfq}ucqa)q;k8$C`OXs#(^UgV% zm#Mm6uC+Hv%1(Vf_iodTFArBQ-5$Yw|08d6!|MP z|V#0xy^H)A_{V7;5|5qiyrAX+# z5R>qTZ@;=aTKg5)8MYs}YCor`&MeQ9d-}#(H#}DOTg;!xv-43mchcIl$6R-oSl^J? z|MMr)q}T-0iS1$s@|9#3#Q#|4C1i55=%$;k`iW|xnFpsn&s(LM$j2t;&&;^=aME?8Yg+TU!H>=e0~csKKN>%F=9uI5|TxGj`gs~J(# z#(k%EyU1VD=P?s6+kG-ovaX)ko3q&L`jdl&cW(0p|H~13cDvWg_3?x!hC!32R2^a4 z_{Vvc?o@kq{X+LHW#`*UwzWz>PG~%P)R(u+b>Y#AF{yd)}pjIPg8U*tlj^xAw(_m z+lpD+Z4%9-9tb^FT`}9_Gtc6X-Sbx^KR+czVKfBWNxs?v9AlIx`bF~T?|6eP;^lZXX75DtmJNIzX z5+9|g^;37Su2(s1+gvNpvGrKxh;OEZ2MF-^UBl^mv4dloORA#GS8dl zW-{}1#RR6s5tmaX=RdL&pSkbsa#t0t?%Jrvnb*GwrXGtkYaoLq%ZmP)Qxy>s4S@zS_U`J33+MZCIJYV~|md(Q7K>~j?5E>Fpta`?QaboT#) r-bdvFycwD7nQ2a*RDP)h>@KL7#%4gl)4WL8Eq`?1sl001_T7g>KF*K@rVG4V$ag{75V zSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!hCIzqTw*yd>;|A|(4#7!%bN@mHPs`#rY zhka_WV^7_e(?*>aT08?MeQp3gll9(hdQJdaiZVTw#Lm)LK6jw=-nBH*$90u_A3`IR zDtaF)5Hd(ZCNqD86?dp!@_D7#eA*rJho+oOkaiQ_T=*kgcBWc?K7G%*>xC#pii9-@ zCnHOc-k7DFj4@6N39~6n2t3!)Db7sqFR2!?pq9esk0Rv(f6O`}qw*yB2?$Si!(R;C z{NY%Lc6G-yDp>FciY>&`!M@lZt_!!|{}GEX&==IdUEP12!#98*6()c}*Ey#s{F1*( z{Jb9Y2_s{>qM8$5zZpVTX=s-EQu_a-lJ0^o7SK+Yd^>u~P$6K~#r9N}qK-LUe!@=t zPj(W|VRRKq&HXOR((k+Im&;q_gh=t^r55Q z^@EL_mzUgGFT$Ne-ZJU%)D&aM@?v22Q&EI9pF_utuR&lot(Ah5$7R%|qD>N_hxS=+h79)}H}T&D$oq9J#A2#m20%6a}E6Ml<`d)B*qiHj_aEQwAUd00000c`sxz delta 769 zcmV+c1OEJy2bu>LP)h>@KL7#%4gh>_a8%j+caz)#005(r7g>KNuM4|1vFXEmrMFlE z-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2+VO2{Cp{I zTzokNVf01p@~(dYAsbx_p)N5E^VnTiF3mP>n&k)xo{dxV{lsKvNyi^Yp(f*BHPi*4 zzhsI`*4k)ebx9AeXr%OTap_$`a8IR13$r`m%c+OU{`~BgUGVM9*_L_ZNGf4`y{)H; z9l%LT_mA$7%x^Of6=6gFOjVHs%<}W=v<*(o=t^E>fM0+2CzrSV3MkIk&UylMFRI|$ zx-Twg%@i7j8kDp;u}7j^sTU*N9QL9XlM(t^;Z$n8nvq}rHtBaVS~ck-V(;l9HJ346 zx6W%|oa|K}UO$Vc;bL9lhIZYX1)^Hm^@qD202rOk;5DKVOB_)gm6n%7pDtRH zig+6N)MfP$X|!e_?<2Ysfn!TMiKcq?+{{EkxmJIFubY!=VBY=2LFW1a1RNg?^9Qb`25&hwSioj&LlG*F&$8Inx=x8e=Az+_SUK z5pdGAz;%To$KxvG#RYPT8*k4iZgf6M_LTbe0V@a{vTOnWnCgx5hbz-SyJs>MR|}Qn zuEtE)1Cl$%G4$A0PHd~gb*v7tLkjvh1w8_4hQq-L(Jfds@v)JItDtUr_% z(Z5t_R}!de{s?Eb!jp-CfsdVmL63ofp(MXRHz&0$HAgoyw;;c$MAtyi zM9)C4I6o&owE`p%pIDTfky)0imsOmf$H~IV5X->Oz`$VJ(UETa$GC9erE}Y?dFLF> z%T(Pj*V-E-Wv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&16(#P&SX6pxxeq}yjm#>ceSZ+C+=-vx#{pJJ={xL$Y6;tX1ICj)sn`gDV`_#$} zrdEMpKF>TAr_VAYA^x`hOm!8>7wxP6#Vc_O2n*jjFJ=F>JhUXxL3l?|n6)g|L&rvT zo{nP^C1WjBSLpl?dsXK3{fgw84PA{{mTOARnO!TG!GCq#8AZ3|rc5L6_imp!|5pn; zI;VW7WZB$OvV8SQ#oMc9-Jh^Kzcu;Cs*DW_-=-9LYW=GB*opH3vZurS^8fj_;?rRnv{f1^RxW(xhm%bnO~T}Kf7C;HPueQ*JZQt zN27@ee#dq#)V2;{`p>Prhate5k;$GJcd`VgOfYC*1W}|V(g1H(HjpkxAdCUhQ-R5y GfdK%dg-wG1 diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index 35b745cd3090b7ac31e7b3d08652937f410b15f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 775 zcmWIWW@fQxU}E57sLn44nX&Vvv?mh-10OpBgB}9|LrH#tZcb`hYL0GZZb5!giLQa3 ziJpO8aehvGY6VCjKCvh{BeN`3FRM5|kCTO!A(nxmfq}ucqa)q;k8$C`OXs#(^UgV% zm#Mm6uC+Hv%1(Vf_iodTFArBQ-5$Yw|08d6!r$)r?KaPzycP1zR+0(7?yZ>P>G4Tk zw&o0r>B4R>jP;;(g)MG^SnGUZU5a6>B~RYUCB*| zEG+BgU{_vhxR+(O^QJ{LFXGQEYyaFduZA(Jmy2~O_w$|d%l>|Sdq?GTjEJ7mpZ8~0UHLA)aqgl$%MT?kX_jb`k27FB5YWC|>yc+zprX31)G-wX$LO;uiw-WU=t=Z*zkD)u>GsrKZcD|3 zroE5vw0=_kcVW#IMmy(O#az6d;-)F9)*2tLcHEGwHotD$bmPY2M{ECvH(uBIpLc?R z?~~!Ag+d}f0!x0_epm5Yx-L<9!^Gv%EVWmqEDjc>Z&=o>W~dQAE#%eLurwdd9}l8^ zO4v+Aj@;Cr?6EQG=>DjU2CL@%*ibNS@%mM^@sUnjG?aa=FvMk6vwW1gC3M9(0M_$)uRTC_le`*;{eji=BepzULsqo}^ zVY9!Rm%e{| z!M>Bn?lfF3Ut0ZI-@5Tacwye>`lu7#p9EI^bhTVGYYE5W>CdtzSMFfYjW;nk!*pg= z{!>rBt8$su4O`3p&HsKSz?+fDo*8$l1SU){XkY|Uq@~dSZ&o&tE=C}X0n$@|shxoV E0BrS3!vFvP diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 6d4a5e7d9f34356efe95a9bb435db99be86b1e2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmWIWW@fQxU}E57sLn44nc^TX?Zw2vz{k$OpvS<#P?BGuo0D3WnxmVUTaaH=qHCaM zqGzC2oSze)S^*M>Pb^B#$Sh0M%PP*#<78oFh-F}CU|_KA=twvIV_dlK(z$KcymOA` zWvcF%YwZn^vQuBrz1wu-%fr=6w?{DF|H#|iaAtp~TK1E;7aeD}F7SWz!+S>h3a*fU zuh-`_Z`po?eaQh^&!s8LINvV29P?i6*E6+K)1_xD*rE3{GxGZM7x_mD#H_O&4I1ZM z-SZ&Qyy5)@aT&kdM}4afu0GPeLD53o`FnWa>4g_oUYoipAzsF5Uw-MHo3SPt>Qi~- zR9o{WIJZnXA^PlE!RGI?e=oO_eR6kJm@zYh3eUGt%>_Rh^MwA3h89dc%FQYIBI($j zj_vl##pBm5`oDIm%Vm!($2=X*wl&|@+V*_yhnASj%2ztH*yNRNSlAyl()Qz>^0wkp ziqy21D_yELn{08&tCiN_~nBhmG*ZzcyADVwm5)k%BHP;Y27|?8I=e1 zKW%H{my=(7M`k0f8cb>VjN<-|(;kNi~Ia?!L7g)&N zNbuo$_{DAW$uQY%9VyJA7SH)6?hwA=yEN*Xcpb;j=#PKggkqYWi24Zs&d>kBYQOPt zK&nUmFB#ie+${17zUo;NS8wWIm{q&HLorKo-NId2iXU?~AH4OTeaUR?kH2rvR{tE; zSl!B^sK6uq;(~_I&B~oy{(s!8Gh1Co*dXoPmJ2@`F8DBne0d$5ddfC%=MBkc^-~TO z?!R+1EhuZXuJ{?z#;gAdkDm?jW@NHw#+@#KNfQhj7(o|^fX|4 HXJ7yTK)6l$ diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index 4be173d5cc10526d0f00eb12adfd09b430973136..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmWIWW@fQxU}E57sLn4436is9^qF)mzq>D)GJ-Z@9} zGFA7>we|){*{QGR-fg<^<>Bh3+as9of8=d$II}-gE&EB_i;lBf7x=&V;XNaL1y{(w z*X#3|w`@PczT|+d=hBpAoNt$1j(IQk>zUfA>C!V6?9h9f8F_vBi~J)6V%FJ?290yB zJ+C~yO6%O#>FF;8b7y#(P5GU0a>BcbcAuN26y%g179A3BwAwr)VS;sX)aqju6VIRI zS=&5k#({#oPugzp&n0)-E;RBq4?ehYeGvPKS^m#>%3YYZ_Z3Z&F5vx`EHih8h;f5# z(xDJj!>AXo5gjt;7U&9YUA5Eyqe!M-l)r{@#LDfL?reNn{C@Az+&6C?x(D<2Ze4Y- zBk#ZLnTC%H3I$BRL^Hc5Wr`kMzfMaie-Wc#`cyX^g_^q;4y;}EOJK^3C|<_@ErzL~ z=`1-dY`?e8u`pPs8fJcMF1JSkzoOIwnf?7LPZR|HvLCzsdf%@GDf4!DW%e68X0J^W ze5U_sI;&!dc+mxo&l_4LtB+p)-f+Ef;|1^CMXV?IGB@`(bM*=?6ipTR9H>2EltU2v;2xv*j#dtSk_ZRa?A0(5(B=Nu89vDD3U z%ZtU!4m!G>Y;Id;CKB?kb;-*)YAs)ru1>o=?f)J7e+!#;JPdc%lM1~vL)1a_Vu^nn<~0R)GcwsT<4%{rqzMKMj3A1%R2tyT$_CQK2!t^}dKxgj HGcW)Er87!6 diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index a78fa82693adb135e261110f1f31edc485e5136b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 849 zcmWIWW@fQxU}E57sLn44vG1P{IGKro;Q%`WgB}9|LrH#tZcb`hYL0GZZb5!giLQa3 ziJpO8aehvGY6VCjKCvh{BeN`3FRM5|kCTO!A(nxmfq}ucqa)q;k8$C`OXs#(^UgV% zm#Mm6uC+Hv%1(Vf_iodTFArBQ-5$Yw|08d6!FF;8b7y#(P5GU0a>BcbcAuN26y%g179A3BwAwr)VS;sX)aqju6VIRI zS=&5k#({#oPugzp&n0)-E;RBq4?ehYeGvPKS^m#>%3YYZ_Z3Z&F5vxW{CLMJ{*w)xrPZmF%(^z2<4N=Z z@%zgZ4p&XF+$Cq{6e+4{IdSi#YX${R9+!$N{cmXOBX+aNAknvfvzvDRq-4)&4?;wZ zPQ|7CED>53^H1|w^wd)_*3A={&;Jq9v9>S{&=BHhl&P_C;QW2G&HcX0lZ;(DLf_se zweIKbc#=K+(9+HNF&CC^JfHo$V&7Snsfs+GYIHqkrn?w&d_VTsZ#$R3-3N(}EuQ(O z`=7scORCo6OvEm$j>$ZWpU-_Y|H($)e-Y0z3q^QqBz8Zj+~xEA?d$}xGJ-(=hV(M0{+ zKd-g+xhr{$b_pb0I=jb<>Cb|dwhSs6cD?^PPRtJdmdfWczwpJApPC|Pl%g-%?mZFh zyjwH+6YtG=70+jUEf$%%;~YQtf8T}c*0d{Wx)z29Sh}V}9r?okZ)elA0B=SnduH4T g9GJ$zpn(xYk(S&8yjj^mx)^~l21wrrW*i0v0DI4MuK)l5 diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index c2f2d45b71df285765670cc05ff55864ae80f369..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 849 zcmWIWW@fQxU}E57sLn44IbN6ZbTShI!vS^%20aD_hLZdO-JI02)EwQ++=Bd~5?up5 z6FmdH;{2TW)C!P5d}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo=ACmi zFH?2DTx)NTl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>= zd%ZrddCT@A>`M;VdM-^_#`$*H<(T(kzn-a`nl3$K!4AErnUUA0zsNsQAZDHIXwW$4 zrj?Z{-^mWm#9mgh$bekKjg!NJmzX?V?mT^yz6!_3ZNHcOw_3t?R>Sn`&GjA6mi#?Y zwJUSqJLy$_%vQB}8a!WrCO$1UZ5LnE)t4?MZc8^diW;P;39Gx#_QLjN-~vSk129eH*(YKzpp!s>gUb7&F^}?!oOCBaa`1Yf=bjNw4o%N3zXCCrD+@&-{ z=<%Fwd3mvXZ+3t3R5?8}`$yl!mAju^=KT?OoA1-FT{g#0)kQ2lbN8RQZxu(yrM0`y zecWQP&jbpODv8vO;F$UJjCCDPqm7DEw3b> z;9bE7xA`|;>E}9h^p|ZyTGcF(gtG$P_Vey(PCEWxJKEXjq@@tcdES|e_+qcUGmZIo zry*bbxp(8M7?-V4G4KAfwAAOtI`c)x-T3@Da*ERXFL_rtCK%27KH-*A`NHR{+kI+W zRKGcTnTx&aKhV+lE70xJ$+*37Uvg_wd_ObWu3*jV+I4-8Urf&b*L{0j0=yZS?3r;V ga9|n-g9b(rMOtzX@MdKL>0$)J7$AKgm~j{w01{PwKmY&$ diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index 0f500e3ff383c1d9b91cf6a4de96a48717fd3042..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 847 zcmWIWW@fQxU}E57sLn44dFZ0xI+2NiVG}z8gB}9|LrH#tZcb`hYL0GZZb5!giLQa3 ziJpO8aehvGY6VCjKCvh{BeN`3FRM5|kCTO!A(nxmfq}ucqa)q;k8$C`OXs#(^UgV% zm#Mm6uC+Hv%1(Vf_iodTFArBQ-5$Yw|08d6!Sn`&GjA6mi#?Y zwJUSqJLy$_%vQB}8a!WrCO$1UZ5LnE)t4?MZc8^df^_{Yy5kY)44}_QI9yD;4(INN-}|%-MCIwU-$AcJX_8wGvVy(k2gQvU%lkT{FQ+-_pd$La@Ws9@DkdL*>b8UQD@pD?iPAm@alZ zx+9Q%lE;@RY-hw0{|4)AU(@wInRA2VuFF>{bAkf)^#1*K+AsOS*-4Ws7+EfsTNF7Z zI==a{Cb*W?avDx^A?P%Vz zeW4HM_1~9RJKs9_+{>G#8oWubO_DV&k6TSzBbq4Ox#UdYO1_YZEMmon5?#3SXQ$UZ zJZ1X$kH64y?dhKsYmNo2FuF1~SJmxAf5Oa1Tq|U%RUVXXym3dM<#=&SzzplOIqO5L z=S;p+9NT|{>)jOH}Wj7;{-xRW<9 eg@Zu@BZwj`u?KjwvVn9l0$~i0z6;DY3=9BFvvM#1 diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 220cdd77396e0be765c4eaa98fdf6873bc6e5087..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 786 zcmWIWW@fQxU}E57FexYq(fabR(T9nF!H%7Q!H9u@p(MXRHz&0$HAgoyw;;c$L^mn3 zSl2+$M9)C4I6o&owE`pOz`$VJ(UETa$GC9erE}Y? zdFLF>%T(Pj*V-E-Wv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&1 z6T9?j#yt1Zy(P=!y3O-utLAPBdo<}PyZf6xIaccgcHN#5TJ#|?)BUz-;itWNL5t-t zuasYLcl80Y&D)w-@*@_7o-YqP7qeT!>3*KvpINaD-1FRi|L&NWC~350i;_a|R<_kz z{YML8pKzGod-Y)NqSrQSSsf?dIg_*V(UV&HV^vN6XY1PB zj~Da>w%2WPoSpVT*P81|dx=SsWt8QP!o0p1_j@Pz>xt;h<7(eoyjVB(|F`td(z`Ra zpLwz9(I3s(hmJjpYTL6k%fIP`)X(kQug||Wk#AYt8#Z@#`MO!trW>vGzNB<2v9;rp zvboCr>)xId)Z462_PhD#Sl`v_J?H*aEdJNt(6GMdo*bAKUZK4DK&Z zDdo3w?`d1`Nu!o`g1XwP6V+OrD-`^tGUhC;Wivl+VBb08BkqrvLx| diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 4eed7c4df664336825fc238cad68ae8be8e8159e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 785 zcmWIWW@fQxU}E57FexYqIpXzA(3^>Y!H%7Q!H9u@p(MXRHz&0$HAgoyw;;c$L^mn3 zSl2+$M9)C4I6o&owE`pOz`$VJ(UETa$GC9erE}Y? zdFLF>%T(Pj*V-E-Wv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&1 z6bSeG^ zM{jyM`AodPXskM4?DCScbNBI|yLRKOxRCZ*k&F2;B?7js%XUZz7a!Q^%3!+j#~i)= z^S-xl%U^#iSm)jS_j1xx>sQ=%R#+x}%k*;5zj)zeTZ1Ky4mUmIS#mpI+HdC?p_66t z3F6-_ZivtRRFdX7QDF+tQ?)vkW~c8qGEoygn|G8h)79A|_~6&XMaK)j@6EP5`yhM$ zkNIVansNb89<;Y9?JUf0`gkqV?MH5d`<<>?S0h^fwM=`w@${PPi2h4!{3Vnc_H1|g z7-AK+X1$V--b(F`bz6SNUk={>`2CvFSzWu_zbxQzar!agihQx+;hiV8O<$MJw1abU zkc8Cvoh|!c3%q#Wz*%``VrdWG`$;R_O-(V_b1Q)1l4+yxWC!{CcgxcKHgwcmJd=

$S3A;ZKfp<$BTLy=vlJ-v*fzGin_tP6_6!)!+DaVz>zx>bRh^t19;Q=~q7kycwD7nQlyhI<$;Jx*Dz9>1dHcWJU!^tP zzP6eYz4m;ogN|9j4*mMW@0Na-UlI1(@^@WTu&dy<0uk}=rT3og6_&q$g(c1CrRHlX z&%R?G_YOb1%$)D?FY0sVk$bgwS!ZPRuRHK%OX0hFt4%vJ_S=MICd_$h`u6j;vr!36 zZ^N3K_#_vqy($rM?DCtrFgWosPo?<+$MYU)vXy ^nyGEp&FnDeyWk$ju5sV#oD z*|+ch>uo66EH+c*W7nenJ&!l#L`Sp9)?A!eKIhVo8Lo%l8LWtRemZ5_|7{f-&eEHT zG#_m^R;6QWw@d8t(;KeqyJIV*zw8!Tw^+&8&%0U2O2?uqcJYO8uJZPgN!~IITj%o$ z-Pdfs7+)un%+71dflZ9t1QhG>fa<8 z+{{V(d&b+D!>D5ehjGT73BT{h@14`c9mQ~=>uhcw*XZGrUTh&^$m#tcBS^t3+ zQ6{$4XBQtRIZ>DE)y+D!_KxI{Q~K@R#%7-mXtHzOoA&O;tCfpZv>RKV{@`?Yu5InB zdBHYDuhI(Kv>Eb548qqmn6n*Rxc~LX)r?zj7o9n(T79LtM9F_irLgC}9{&#k-i%E4 j%(zoIFrkA%10#qcJm(Fdo z=ACmiFH?2DTx)NTl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4 zS8#>=d%ZrddCT@A>`M;VdM-^_meP5dl}pHNV^^)%Dd)bzlZ_SrRbJ)3^7enbze;Po zeQh-*dhPkv;3A288?4;F6>d$fUn-#g?{9Qq$J}V!+@k*nA{2iFttnhJH|coYK9+^E zOz-{Z4az&W?Z&c`tqe6&Hb!`z+Ou^rW6Go;|S3&3~+wkFzaKLZ^a4sTR$d9 zbnN)rZy#7F#m{4v@Z-pe$ys)*8-yJ;u-n*{KMeb9a5QzsZe0uAyG?RCb6D~sf=|DUF5|MisD)tEd@eBO1p2(2add&t!N`(uX5IXA%IY&$oi1iB*4%U8 u>c8z5mIZh-GTAfZPVT@I4+ag4Ad2+FAK=Z(2GYq0gb6_UEifxFFaQ8##(jMN diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.12-compact.zip index 76d37562ece88901e9e7775f7323dd4139762fc1..a45121c5d0baeaff505ce56d16b4fe45142d98bf 100644 GIT binary patch delta 765 zcmV@KL7#%4gl)4WLB4m=5yEr004H87hQiJ*K@rVG4V$ag{75V zSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!hCIzqTw*yd>;|A|(4#8la2>~~IA8&*cA z+jE|U>2otnpE8$l#-q8N21Uo&kvOaEabPqjB6X}prcaD);<_<Z@uK02ZBTBDR}xiceqDvDY-c~W6M)-VJQ7k#e`6^L9aWi(FN z)`EuZa{km+y+JZ844JSwd9INu`^OrYjfW&&K@mr|_9iCS@VzGl)rM_PITJC!v|`bf zKZ_DfVHLuds5gWM26I26edxXy7fLTdTaHRm&Dk@w7=C|T5~d`I@8f|oojgnr$ItQF zrjCg^J;B8W;$~b`e>TL~QO6~~&@Ve;#sK|Nq566U`9B7~Jefz|G49vO@Rj&ink=<| zKRZk-kvaz#Opmi@Nr$3lfeDZBOflGuzrp{Ypv^*gMQU=%@?a~oktw5WAH?|!@Q$U1c8yDG-rZuwBjlEp-8FNx zse$iiQI$ec0jPJ-9PMJvCcR=VWvguxLBuMVzH);9g#tXC0i)BkZWMo+4B1YmcV0uNa{E1MK-@Skc_m%7 zQC9+``vFbaqiqzeOSkG}ikPIJY3``pW%2XnQrd4x33O3xcB-AhZ@vcrH1CVB4R941 z#S&6~NyG%-JujH*LM0F7)1)63Fbh%Grgbju3a}E6mx$(b*a83mc9TZ~R|Y5p000007rI%E delta 771 zcmV+e1N{7+2c!oVP)h>@KL7#%4gfW9a8%={sR!Ny008Ha7hQiRuM4|1vFXEmrMFlE z-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2q~i}f2Q?dv*}TdmK9W!^0C|> zM8_tv*n(f$QR;tfZyRLF?yK$h$B_y%f|p$K06KimVwbOT? zM6dX%&l|sd;E^1l)yfLm+RbscDYNwSh8xXEPT4gUoh^U$Vg09`)D$(yVrQXU(*ZN> z4=8t0p{bMJ2gy!WsY49Ax~yj^na@#0{pKkyNwSMP5TMx{JY3a8WADuI2}nUtSPWpF z`3RD4MEbHZ?O|*D2>(KXSKwxSz8hkqrU$z=!+Ik#LuNS!D}Vt}(1@GgId)GpCBdlh(!x8vAs1fN%C-EBjo z>_nk(7d~*vH}%2@+pX0KB|Lg~iroX(GOon*Lex%}z`j;JJ&?Uie6} z>8w9`f@=ffK{11OKizm~dTYNU3(qJg2eq(cRUwf@SpPV7!PE~ccVK3e6GC)nK^IKQ z@n%>NfZs*c*%|8pX=KyT<}mst$>33C!YrYVXA|hoPx3Qp;I-#N>E^<-k6_)_JSoZI zdz@*FYI9i2$SeJp$Y@YY0Rle*KL7#%4gfW9a8%={sR!Ny008HcK?7F?E&~7n008{! BZ*Bkp diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 7b2a84f3753b5238df083a8919d8d0dafaac41bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787 zcmWIWW@fQxU}E57FexYqk$LxKnJ*IqgB?2qgAoG*LrH#tZcb`hYL0GZZb5!giEdJ6 zv95uhiJpO8aehvGY6VCzKCvh{BeN`3FRM5|kCTO!A(nxmfq}ucqa)q;k8$C`OXs#( z^UgV%m#Mm6uC+Hv%1(Vf_iodTFArBQ-5$Yw|08d6!lyhI<$;Jx*Dz9>1dHcWJU!^tP zzP6eYz4rVP53bK=_l7;(6rH%!spq8c3PU6BhguR6t-4Yw^KITpbRGV^{Y1f%=~Da; zj^6Zi@|k#n(O7l9*ySZ>=kDV_ckRYmaUt!sA{X;xN(5|Mm+g=cEe+@TX$St@IPFz+*KYdjpDcdg?p&7MaQBet>|(t{u}}_;4EC2= zlA@nVC9a)YoX}By_4xc-TNSxldG1|oN>L23jceJ!WOmg+Ii*N?*WDWJikiqqOGAO0 zDpsOwAvLckw_qDW7y0p6@^Af1dr Nm;j{b0+T)i0{|RGQZfJl diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index c11b97a2ee2717d04c8dc0f518f67920b39ca98a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787 zcmWIWW@fQxU}E57FexYqF$s(Ph z3a*fUuh-`_Z`po?eaQh^&!s8LQaUfQatXO@?5Y(z<=j_zva!Oy%B$R0-u`d*S80v6 zudSv;uRXu>e%I%-d&3@XicZ|=)N|5zg`tu6LoEr3R$VET`8IDPx(@%|exhK>bSeG^ zM{jyM`AodPXskM4?DCScbNBI|yLRKOxRCZ*k&F2;B?7js%XUZz7a!Q^%3!+j#~h;y z>t_pE+4tx~l)u#tjClIvOz@xSVOg6}1T6lp%PmcNuXTHSfAZa=%JM9KRn|74=N(D)~>+*)o&oyu9h^?|da8QGBsRu%^NDAcy>fO5q=IVIS&_x!TLy3e1w2AYbgHJN8Q^EV&l)jk&g)qb*wbq?FYYx-B`@##0)ow4uxvFpH|6DC&|$31aA7i_XYDy20^E@**B?b&r}pBW~y zI&Qu8M7L`1A7=K8ft$J|IG;NFp0=4mibd(qMsvHMs*M^8io@b(Xl(XYeOz`$VJ(UETa$GC9erE}Y? zdFLF>%T(Pj*V-E-Wv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&1 z6;yc@jALdnulv@6^ORp$&bh$L~jQaXGzqi-ps~p&t`t@tSovl&8 zXBItKF-GHfdt{4Ko%m+IITFw2VIcnIWHdoZ}N>zxLM9d-wJkI_#y+hcsU9 zw~W1a`N6IVmlra--xuc{6DYgtzhJ*g{oA+{3)Q^&Ic8H%RkJ!cx1=aUPj)uGWVfvC zsfykvz6UD~KbX(3_Jg1C#ez2p`<%;H-8oq76eBDVuJx5CDWf#FIa$Lx?KR8m@RKi= zBuZtMe^%DwtWH_;I4hKAx>uruosMJRp@UmW%_`biJd5M^^WL9ic(1td=GQg3tS)NP zj!kn*mpuOT+6vBVf2JJPW}IlO$;hyXiQ6*vK=aK)>pyE2!}xaHqYI)=&t;ish^Iw{jk~;CvZsP-s_2y$s4@3(K* zsSxK;Ao1RW>vyiF=M9k^^LJGK-xRS*CBU1J$(|W^@&u+(Flb-|QKTo<0B=?{kWNM* NOaRhzfk~f%0RU*|PvHOn diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 7face0ad2e71b54cf0f9c91d072f7567023d9628..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 789 zcmWIWW@fQxU}E57FexYq`5tjO%%6#Y!H%7Q!H9u@p(MXRHz&0$HAgoyw;;c$L^mn3 zSl2+$M9)C4I6o&owE`pOz`$VJ(UETa$GC9erE}Y? zdFLF>%T(Pj*V-E-Wv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&1 z6&Xw2tNyvcjx*1Vgn0yDOW zKR0Ug-MEW?&UDl5C!}6Zxa;4cF{4kW zkDjv23H+K7RNLGg!7^dhg;%~d+nCh7HmYBlk~`=2I_tZxjcQANPTO2=R$=44xHTgF zr;wk)_LH_{DgpOz`Tk|GoOZp+WTlvJDAV@NjuSeD*Ec;8f4lpf%j+TGgn(G7e4 zoY=p6O1871_r96kO>fL+DMu>ZXgJu>*Cn25)a+1oCTU-O=5o<_(p9VWD%AwCuvM{G z%vySQ)!#*bm*qOovp+rIVlvOpve)nCxb%CxYKzF!2=Uf9@L=^Xi~DYIFP^}(bkidHkGoszbZX2uR=S=3Jo$5{yWXZ72X50xBm`1^%fe}QJo?HXGS=m53 P8G$eXNY4i*eg*~rAzxIw diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index f2ce788ad022bcd54c67ec6c6d7a8f1adf1f0947..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 789 zcmWIWW@fQxU}E57FexYq;S7_p^k-sVuw!RnFk)a}D9JC-%}Fgw&C$)wEyyn_(M`%M z)-}*G(KFC1&d-TYtpEweCl)1VWR|7sWfkY=ak8*7#4<26FfiD5bfg>qF)mzq>D)GJ z-Z@9}GFA7>we|){*{QGR-fg<^<>Bh3+as9of8=d$II}-gE&EB_i;lBf7x=&V;XNaL z1y{(w*X#3|w`@PczT|+d=hBpADV>*DxrE#{cGZfVa_%cU*;wIUvWc7pDi|grTF62mjhN|`!4+Ip0)Pq|2Glrcc_bSg>i*I~ksebr*Z$<~^0z=VrXE>cW}Fb1XKu&-3HHw|rKA z^OaIV@iV!c7qo=Ml{Q)ZtDVg9L-2_JOZYAMFFSuWJ)9l1U+H@*i@fc|)}M0Mx#}Vh zS6X^&74#iyU1ofwZ(;Ga%pHH`@A)oqRA$;!`9k$4M`8o}r<{AI{V-^TfR&rdeQnkvjpJRYMe_VdB2 zsn0Jm6bBcU&wPH<<;lNq&tE*z_;I56NZ^CK=&tRdXa22kW=g7%k}l)CBvhvOP}@@Z zY^|g_QlN%0p5&E_RP2wC@_tJK?5U*B0aeVc(byB QbTR^A0+5~$O#BQC0LeyJ9RL6T diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index a0e32eeb47c512bfcdc1cf1474acd56a9510b6de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 860 zcmWIWW@fQxU}E57FexYqc^+cIJB^8f;R8DZgAoG*LrH#tZcb`hYL0GZZb5!giEdJ6 zv95uhiJpO8aehvGY6VCzKCvh{BeN`3FRM5|kCTO!A(nxmfq}ucqa)q;k8$C`OXs#( z^UgV%m#Mm6uC+Hv%1(Vf_iodTFArBQ-5$Yw|08d6!lyhI<$;Jx*Dz9>1dHcWJU!^tP zzP6eYz4n4Y+kc}n#lmk>K0WEEuG3kTeYV)}mEwz6Uk+G>?Yr=+d)C_b3#~3bKIhNi z=5v|hp4aWilP+gIn?7l$V!@_K?__u?)?Mt0oA*>=pPTWvstacx&#~CtKF^Q)-tt+~ zdb@YByCIb21*$v_PMn$h^Zt^v2Tm1z{N?{b;M;=JoxJA@uCT0s(#&&i&&%q?heB2@ zd)0sW3HJ`8W1EZ&Y_Hx`R?C^XNOI-Z36D7qm;a%WqzH{-{@|NHt$bRPkkr zSr2u;t50218NF<_b!nNki>u|n8qwccoHK)G{{8y!S=0F)iACzsm1W!mJnsHlHe z0BhR?1FQaCHEoVY?Z0~$|8e)_jPTj|bHz~=kC2?S##*CuOO343uP*Y4XS=qZ-#SWL zGS+}2EKu*-(GNlIrr%t5<y_NkPv1`U|F_R$ pPk=WglRY!;bPi1FV9>w_qDW8m0p6@^Af1drm;j`o0rL<80|0}ogBt(< diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index 618acd6b9450c33400cbf126f6933c1c72741051..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 860 zcmWIWW@fQxU}E57FfAwunUKGdZyFN=!v}T-1|tRrhLZdO-JI02)EwQ++=Bd~65XWC zVqF706FmdH;{2TW)C!Pbd}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo z=ACmiFH?2DTx)NTl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4 zS8#>=d%ZrddCT@A>`M;VdM-^_meP5dl}pHNV^^)%Dd)bzlZ_SrRbJ)3^7enbze;Po zeQh-*dhG?(OIGI$jI``_ZCJ_7db(+{^}F>a^xiG~66tR8qcNX9@h0z$Tk~$R3e4Ch z{@kd|cjGSpInzzIpOAVv;jVv&#*AVm9z{lVnEzwXjCp-t5asq1}XOgs)Q)Dp8_Xt$BW zMeE&htD~#iCI~u~D(an;m}R@z>DAYxLi$A;ZcQ;OpC0(|LtpG3uc$7!>=T*JOuU6` znHL+?QtwV-u*ZjRJc2*uSUv%s8{^cDjV@ej)T$pY3a#Gx?{UT1v zSLBsMKCygyDkRNvWs6bQsrE%5FY6!uWAIkx)itRu)l}OnPqN~Rw(>IUV9_+t^!(Es zWD?14t>jja!gJ&Gk?e_kOdNJR5&I(W$z+@8t%bd7Ki1~&+IG=p{g!8kGH1;EDIoR# z?I$+@uAdurcc%AD@M#Kr;4zQ+r_q_cc}o*({xETRKkhJiHSc58amyEV>(Z0$`4*h` zc=Mb=vDl)BmP`NEb{vbnQOEq@z`Lo*#~x^xPCm26yovdjz2dQ)RolEKh^$`hbGGpD zstc{ka|PA(y&FETeBxSFczw}j=bsESf;GKXdajrGs37oL=gs<6EuVBW47C3Ll3JJ* o;LXTn&x|{r1Cu%!G%$iF(o=naH!B-RCnFFh0O@DIJjB2N0MT80uK)l5 diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index a43bea74c0bc53c594e1070ec7aadeda33ebca5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 859 zcmWIWW@fQxU}E57FfAwu=`COVV=5B^!y|SE1|tRrhLZdO-JI02)EwQ++=Bd~65XWC zVqF706FmdH;{2TW)C!Pbd}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo z=ACmiFH?2DTx)NTl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4 zS8#>=d%ZrddCT@A>`M;VdM-^_meP5dl}pHNV^^)%Dd)bzlZ_SrRbJ)3^7enbze;Po zeQh-*dhG@4l*@{14YcfbZCJ_7db(+{^}F>a^xiG~66tR8qcNX9@h0z$Tk~$R3e4Ch z{@kd|cjGSpInzzIpOAVv;jVv&#*AVm9%dfjGy!a?{reNkjnG?41 zKGGk0Bi?c>j`FL$migq;g`G>*@8*qa2~86dXA6_(ec;j8!(wJ-9oW-UEBT`)$0CI> z^G}VJW%Atq7b<%HC%;@YN7?&$($-C~@t?J=vrKXu;y(Ve`dK)|X14bNr-tkLe4Tf; zK3bKTx^TtrE!n<&zS?X}nTM`5+_Ss)it{+L$I4e??t4~EP2J2W*t;gx;;mkM@J|Qn z#BimH2J9!2pMUzw#nCIjooh1VT8X_CEG647nw${)wp()6CiMmO>Dn0%Hj_E0{K~w1 zUC`se@e7(}L3OGN?GEt<+Iv={9DK!O*gtz`+RlY5BG0n_d^oj~Ymx5k$q&}4i8vhG zXna#xC2O_vkM=8D^wuo*`}_G3_RCsJvy!TIa`N1y%L;QlWSIK@q4j;vFGI%fQgUz+l_ak#79QxNza6 zbK9(W=N!$;RNXJv+8ZQgr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`_ z_l)!vTp|Bnug`1Vvi%7Ak|UQqIuuG5-HPF0bf|iuv25wLDLQ-K^m}uy=BSOor`+M< zkSO~4F_$$%*kWxH-_-SX4=!EF><_ET(UiN+!If1utvw^9qCB{5GrJ>2}+>AffR6!HC$jDE5;*Ux3uX^&%# zMhCto@_R4SEv#I6sW`gBt>;xmC$xpXDHeWv=dfwe5z~j>X&3*B{0pjlbI65tJFmM({Bq7_jw6h>-j>bU z=-#N%mM8brh9&!Y=CzyVQghZSOGv~nZ0ww;82mQh=|$NMH`ypH^JDR<$i=h3u)!y>VGd|3zl) zQQpNNsHyJZqOkHU<6TQrPly&RyL4k PMj%WE(hGnYfPn!3Aj(cu diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 47751c8f1719015b80e5b1ab31186820971ee2e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 793 zcmWIWW@fQxU}E57NGvP}SyeT2kuMViLlQd!gDC?8LrH#tZcb`hYL0GRYH>+wif(3Z zL4Hw*u7RG3o`GI*eolO91xO%1u_!qsvn*9Ft2jT8lZBNbmVu#xfx)(;Bi;CqapA&C z=eAk%&N-Twsk&dTwKqu0PJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it; z?-}VUxI+HDUZ2;zW&08KB}XoKbSRWAx)sC0=uq`QW7*PgQ*`#e>G$SZ%~2bFPr1Xz zAyM@8V=ilkum!W$M>Nknw{P3h%ct0;1Wr6y(IBpKZo?y~29rrU{+;krG&FDJ<(X`4 zaxdL*VxQ{fnMZ=ZH1fu{&upuxHe6rFyV(4o#S!-#nuizUwiGN_7iig7pD*R%(I=vq zw=(lW^R^3mz02~1&P|@Os?K1F?es4(B1;7_mk31pKhv7A<7`3hts}a&yk}Ew+xIN9 zIe$96+(L9Ur>|*2Ms50KCMEH!O52V`$8@M#@7U8f^@2(s>$V?K`Ql5x>TW*DC|i44 z`h}8#cXGv&RJ({%OE{S=Hu3EHow>~A!u=%-ez~$|6MsHPnX_@xi4(ugA3N>~>9OSy z{c~eqVC2KxbD#Kbu9Ntlr=-Q@Ya!`-g&}O4I@bzQ-TV#lj^EikELY3O`}7#Ncf_=w zl*l=CJzQjU`PQf-D;z~Crd?biw5IbGo5Q)~B}y|iCp~%n+VN<`&aB@jrv4PN;k|H! zIkf6@HM6>P<~j{t!`g<+*Th6;1?C>u-D;$*mleg>@3Lyk&-CT#$>nD}eco!;NSc|v zx~Z7*PUhIcySKl{XSMiWSfUx!nGs@cPT)$3j0$U*+!q7uE1Bz?+fDo*8!v1twB3XkY|UWTn>tZ&o&t QW=0@P2GR?F8GwNS0PeI>4*&oF diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.10-compact.zip deleted file mode 100644 index 8e8f8731ad7f6a8be8c16b7b159bd1507da144d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 866 zcmWIWW@fQxU}E57NGdD{`LNFM@iZm|26hex22%zGhLZdO-JI02)EwQs)Z&uV6y40+ zg8ZTqT?0K6Jp;Ys{G9mI3Xnj2Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJ%b3I$=(Thz=s#y#qM=hM7}%4e&O3eXf&BGnXUYj? zt$3OtYWyU+b5iVnvjctM44*C6YpZqSzxZ?Ia+ZciMQw9(L*;|t2T%Wawa{WiW5FaY z*4+E2*-y`V+`2I>nD2$9)Jo&Io$XIPE?Lj!<~na>yWG3;MjdB&nsF&A+ubXlbnwQS zgp~P;=`kn&7jIYPQk*4w@ap-a+r(t{togS7Mu+42`?Zq6#l`tqM!)W#?%-o&ufD$_ zhdbnL{Lf1=4HB0c<2ZLcZGSpZ?@&yA(CPiv+alDrl<_@tO5&M6RsHb9<7c-p_g?kc zR`=0-chBLvSsy~hUW>=sl%!=b6?UX4TSyeAM)0rMpL3aaqGV%I^o%Lqzz^4xLi^tfw)-+S680D}9EIgsauj6wy0-#ns&(Ons@U5gHzL z-g!&)E$x-bhQ4A}&L4#h;}|m8iw}!?t^IX;v6y$Um&Ps2xDCn+9si&CtoQM%68Dbj zorha5_8k_=T>Q`|D&4f6Vcop5mjv^-JU;ER@5}L(_t+m#%9bz@{?}sBx;}LE$&_1e zML zudjS{>dlUwGv{y}RJdxfY2qYb)p@0=&OiJ)3yhPiIC5-XTb$i^_vJjZyFU+a{x8gb qfFZz}k;$GJcTxwYb}(pQ1W{xq`~YuOHjrjUAWR0*FM&CUfdK$6r*^pj diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index e639e843be5306f4e7e8a92a77cac7b7d8280425..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 878 zcmWIWW@fQxU}E57NGdD{DKF9dyNHQ_fsd1c!IXi4p(MXRHz&0$HAgouwYVfTMK?3I zAitGI%fQgUz+l_ak#79QxNza6 zbK9(W=N!$;RNXJv+8ZQgr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`_ z_l)!vTp|Bnug`1Vvi%7Ak|UQqIuuG5-HPF0bf|iuv25wLDLQ-K^m}uy=BSOor`+M< zkSO~4F_$$%*n(N>HHGBgJ&l&H?y*TZQU5zuDKeJRv(o#2#Hq^sP;RHxCBIH4)$c#D zsC>(=CA#a36ffWQU24Lg*3qygJZQ5*O`Wy!-@*xpV=D~4%r1%E(`VgxaP7UtFD``H zZPIVMtISzlw_SAixnta2Ld7@O;zXtg*i3sh~# z$mPjijUFbO?^lbvpRqQ()1H&ABYNb>TaV|OCtLK6Y?3_Z{@iSJz{gsF`dSk8TJksTYqz}e}_s+-m|S_hbU ztCUC^$1Dk#{oulCtu?F7bal>sV_D&8ZA(s=CFb1PT>2{h`2LEFpO+0kUD>Lwnrm~t zX3d2I8(x*921$Mr%Urj8GJ9`Ng4AKXewN#_7x}P623+1gE8F#q^~`mg3x&e-LgyaY z^qKd`^qbG_O-lUMHUFpvTYJ`=7!8}PMslH?dk-9Xo}$3W{bjad%{9Ir&G$0xQ|CN# z=ik)B+?8VYy>%(m3U>KJ<{O@}N`yXp6w<%>WhSSfX6AAO$G8{weUGOy&s(u+g-bCL z=li6}#l^D}nQp5m)ID`dGUvRW_clysX5YS>zPGYE9X`7=2}`X%anwB1`OZI+OL|vM zWGt&N*w3RRuXgI8`{^$%$KPsJ{@vrPP^%_*q5pYksCKKr`^%FWH@Qu2MX@WK{KPG} zws-r!koEfix4c|5FTk6T$(|W^vInMoFlb-|QDkL;0B=?{kY+|8Oa{_lfw_u-0RZX8 BdM5w? diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.12-compact.zip index 8af568ab27e1c89f15f41ec14551b5ee2195bee2..fd1b2a7613809e6d84e850b6460d6edab5361239 100644 GIT binary patch delta 768 zcmV+b1ONQ62c-uXP)h>@KL7#%4gl)4WLBo=fkoK@005>5kr-cpAJ=oe7BTTh4~3dwgEWQe9G%61M?_vOkUB!RTG-}kAQXw_&qbYJ3&bfGXTmpN zuf9GsPUveKsA)%~ky(gHB4|JSAje_4+`}=wcF-kbdY_kJ))93M)n5mTQC?IILMon| z-mX?A`7>>Y?G}lDK1MZywh2{6XTn$9e^weo2Uhn8;52;s$#s@+q2g@?oTd44A!Z8WD%_ca{&~=VgN}`|Y zC)FQe=;?TW6}YTN8PC>E`PSJDQ{NAXQ*>kC`p$X%PI`^Jyhs_c%-{cpY!0e$6fNLPfG(HZmzIUU+JH-#b=ehiklwle2X|rIP}|vZhKDF~CJ6Y)uc% z;FzoPg%IbAGwZOYbc0^L0b40%O|AJt@rEM^8ckMz4-Vl-nYz30bet3bqCrD#Yqh`o zC27)=A|-zA4kpLr36&}*QFFK<;sqn6+%^XIhnjLhna)nmbEIa@-lK`8kD5H#KkXuz zL4K85281qGUQ9X*ko$`j9;W0rjRr26tgP3E2am`gj;~YJ#$0Q34MnXlT>`|_5lTia%1}p;r0001AtY^~z delta 779 zcmV+m1N8i*2e1biP)h>@KL7#%4gh0ua8yW*5GUjU000^akr-cpC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>#uHuw70|uq{Pxlh#+;M+FS?$KziUP zrlt0jEWPZHOA4z9eP7-qh(thP73<>)I{;Rony)Eoq8R^4)DWy~zNx2jg!BjFdg%Y> z5;8KwuyjM#WeCN8I|BGi4GV}#mwNb4| zt-T~9hQdsb#gGTB35;ibML1i!{0OF&ffv*S2kPY3Q4Cu28J#JN*8jx^X`N{_9Ay)c zo{rA6z?JDMBxI$Aj%JLKU^KlxUe?s-Kxq4LkC{_JQ*6=vu@0Xi$YelihqAJ*IHliV z4e_#TBzK*E9K-q>hi?cN)H5g>(4>zB?5Z(D@6W$5xQ`nMinr&*NI@|fa4{BCc1PinTnw zpiQK=z|)2<9e+$PF5-g*6(bRgsST$P$bUq6N$@on(hBEDI`H&^7K#MtW_LJD=MyER!|Me?wYJi_edXYm_VdbKu-ShCm@c#IMTeC__v(x?M%gW*@0bMNF7v>cU?Phr4&R%{gXYJdkY<^LUSDn`!J}UR7xA69> zS2G{()AZnLxH4bnVD*{WAE)+5_I@m%@Py&fi3dHUq4^UyEN?HpEwU+OkNv|ur`fiz z>KEO+6}jxjzR$Joosr>l?q59ausBeX}MXy-|J6n zhI7X4pv=`b{6sh&T{4-j_ee_VzER=je@+KCaAwFZOJ3u4X6cOEojDKI9Gp@un3Q$% z(*M57le2y&-`s2)b$a^glO1I`ikhzWhASq#)1O(o(4BGP(^A&Clb1igwC_dz(XBJx z(^?NWKH*u) z$S*3+_noY(K)jd7N&YgTD#cDlcOSy?*~>5GtbO~G%`b}as`Hw|N9Er17T$jK zYUabPSG$zzH)T0~O*B99r1%zB$@ZnTX^VA(53v20j6X8hPk=>LI;68yKKz{NEn77K zE~i~0ueLLLs~%g`&9dQSRA`T{v%%9hUyId$uU9@Rk7j|9oV6<%t zUfCboq$jk?V8UnVr^WzL?Rvcl(MIjSclU4a# z&fQqQ?a_PTgOeDtrAt)0)&|(fjw zf$4VGqWr$S%53(%UkWCBKl{VN>2c%w|1O`1(g1HpCVOVwX%v`D!JvT=M3I$Z1H4(; RK$;nWFd0ZM0%idQ1_0pwQF;IX diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index e269a7776d52789c14a2780c4f73a2844844bb49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 zcmWIWW@fQxU}E57NGdD{N!|WV&!35bA&H%V!IXi4p(MXRHz&0$HAgouwYVfTMK?3I zAitGI%fQgUz+l_ak#79QxNza6 zbK9(W=N!$;RNXJv+8ZQgr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`_ z_l)!vTp|Bnug`1Vvi%7Ak|UQqIuuG5-HPF0bf|iuv25wLDLQ-K^m}uy=BSOor`+M< zkSO~4F_$$%*n(Lb`fYb#<=(@{Z|}_Qc-AXpSJ5oLYi2qgJ)Vn$=Uy%gtx^p(n^3QG z>+><`8rR3yl2%B|%L%_cDq1j!`H~>_^~u-ICr(}6D)hki?Wb8r{w*%|dE1vvc;=U_ z^76?Eo+FngoLSPb;mUCzi@h?X`3*}pMb!yes9tek-MrIq?$4Vc_ZFBp9`(Ju=p3Kr zS)(dHQ|0-08oqyhRDVF`%nj#7ELs_&!V_-YI(Kk;(iZ=9s*|q?^mzYUTfd;D`K9)? z(CSM<@22ld$xM+dZBgC-k16%tPiKkNUe#?L&(?1BUd+lq!zZCb{f(lPCr_oFyX?Q& z0a3>eH9h-q+-=f?XN8sj_hv5PU-j$PC7*8_PMklz%A#kC0DjK;nVRf`E`ol zo_VQG?ub{hUa!`|IZK~u?{+Qc^?!1g9y5Eig^_voyMW79ydh?%dJk)@R$1a`xBT^# z3nnJ|Ow9%1E7h8=7;e=(r;vX-&E)%xrTn%3H8-m=1b8zt*)!u#qrhYe1`UiLimVhH V;LXYg(#!~i$v}D$Fbgm+008_{TlW9} diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 864c33f69121a5465a9799e2d7f9f207921f4507..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797 zcmWIWW@fQxU}E57NGdD{DRWYL5Xi*9ki^cwV9LP2P?BGuo0D3WnxmVST3nKvqMMmp zkY7}yYoKSMXP{S{pA(;20TPH$EK1JEEKAkPD$dX2WMO59WngGvV6g4zNH_jtT)6Pk zxoy_GbB^X^s_vI-?G2K$Q(w=$+jQg0!_`Z-M=;<2$lKg-W`C$!_LI059cQ;L@PG5e zdq(;Su8@DP*XK2F*?xq5$&pJQ9SWt3ZpCmgI#fN-Shn=r6rH_q`n|bUbJWJ)Q|@qa zNEChjn9G_WY{9GzKNwYPV}4)BUb$h{hfOM(k8a24ovPcHDYZXyC*!Y6-YRQrmbGtr z=VKS-JRy{0ia<0=iCldBlGS#d+y~orH&~ZMI_RxGoV*~nrC`CjK+DGZd?^o)J`u&d zm6_)+E=@Wtw%;g4N=(FgDdw4!C>s)50%yVyZz&cjZ$p!1&PqVChuIF31 z!c60Rvtay_=vBO-Aze%3uOD4M^O8})e{FG&@>%;Up1hbntEx>-q|#WRFtK3ja)rNj zz7G~YkKptCDYIz3!D4>Ns?B0ds~&v$)AJ)J^z6sD+xgDzGl~y(doJU3+OfuuH%z>0 z`sN33E={<)bDmSql&c00-fyUBesXkA`vl|QuYcy0UAi2{OM!T6ah6MRpL&Do=~R2|L@I+%NeZKiO=O-8nNM zVqf!Wqr($2XP&pO(&4;4L1f?J4>3&cMt%RQmaXjx@MdJPXU3gMfe9518W=$oS!p)F Uo0ScunGpz+f%Fn!CSYIy06zRy@&Et; diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index 4c44f3ea8196bf81e825e7f0d46a16582d4dd727..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797 zcmWIWW@fQxU}E57NGdD{`MH>}B9MuJA&H%V!IXi4p(MXRHz&0$HAgouwYVfTMK?3I zAitGI%fQgUz+l_ak#79QxNza6 zbK9(W=N!$;RNXJv+8ZQgr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`_ z_l)!vTp|Bnug`1Vvi%7Ak|UQqIuuG5-HPF0bf|iuv25wLDLQ-K^m}uy=BSOor`+M< zkSO~4F_$$%*n(LbW4z;pWF}>+%6d6w{Z3ZX^S|1g`&~Eoy=yUF zdXetCE21YP59z7uyVR}R5ji(|vC!ey%xffcH|Pla7y#{BGh>(5UQG?pJ!KhO8ZNIzG7@rlMg z+t#oAAy>v`|J&*Iaf=CO_e`7gG^Fu((VuUr@(x87u38@xTxa+$ZJ##b$(v56?uyhz z<)sO$zHpT;KcchvuYmSS zd)c(k`TDDwUd4ew1Fl4WWmGqKx25k)i}Y76*}y*mXRnrt-=1@zs^ZM_7C*tVqz!8W z6l%{awER0Wd%pF)OUC*s#~&JgNMCndhGsXL}iaZe@Od+U)->JMSd{-i%E4%(zo2Frk7$10#qcE6oOY Tv$BCSGXh~UkX{1J1PlxSn*vpc diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index 0aa99a85741b01e9f3ad9b1f47275344bc1d4f43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 869 zcmWIWW@fQxU}E57NGdD{(TjY#VI~s;g9rx$gDC?8LrH#tZcb`hYL0GRYH>+wif(3Z zL4Hw*u7RG3o`GI*eolO91xO%1u_!qsvn*9Ft2jT8lZBNbmVu#xfx)(;Bi;CqapA&C z=eAk%&N-Twsk&dTwKqu0PJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it; z?-}VUxI+HDUZ2;zW&08KB}XoKbSRWAx)sC0=uq`QW7*PgQ*`#e>G$SZ%~2bFPr1Xz zAyM@8V=ilkum!U=?vJ$-l9`mPD(mH#`OnsEfq|W0cOT1CtK8`W_Zn9Zz#SEja#6sgLTk&i`s}?swhT_pZf! z8H-F|k4IZI)~va-op+((l(PxC7iKh=Ha@fNmXO_h|3cgBDQ+v?3td||nJuvB?COHa zk-t`0&DP$NrQ;%aV`tyRJ13R58rNSv{aQUh;KnS*;^Z@TR`qXrd*`?M>N$S%{)@0b zxgI;e;q#=x1>Xhl?Ec~X>fb^8O+g1^4?Ya~UemI^<@Ua8o;UikGNqmq4&;1v^LzjE z?Z>2r`;1O2z4dN-%UmGy;>^xW@qmL1B2s7HN<8LZEqbPh--z!+t-bi;3oYDzI(w69 zRh6?8c+WMf22`-w_)oHzItLu_tNcnT%gt3y-$p~_-0m!9z6BK;LIP-O&m`$7PnS!eY`2{_FK&(TQ1Ceoy3z; zxbbmx(U~OUOs>5S_gq^t9L#RGr{0Zee0A{)R{(d1k#CaJ^sTW|ALOOXwMt3vtNZuh z<6cwC#-m&MCHDVqC~>j*P-~ea{Gr$7`pnwi@aHxW!IXi4p(MXRHz&0$HAgouwYVfTMK?3I zAitGI%fQgUz+l_ak#79QxNza6 zbK9(W=N!$;RNXJv+8ZQgr@o$hx9P^0hpU%vk6^z4k+-?w%>Gcd>?d(AI?irg;Q!`_ z_l)!vTp|Bnug`1Vvi%7Ak|UQqIuuG5-HPF0bf|iuv25wLDLQ-K^m}uy=BSOor`+M< zkSO~4F_$$%*n(M`RQw&&V}4)BUb$h{hfOM(k8a24ovPcHDYZXyC*!Y6-YRQrmbGtr z=VKS-JRy{0ia<0=iCldBlGS#d+y~orH&~ZMI_RxGoV*~nrC`CjK+DGZd?^o)J`u&d zm6;cAoyzz&B}>!md>p%<{r4>jialI!)zWn*?*1RZxZ%(p@z4J_TrRKwSzX;;Ebro+ zE-bu&E2i+k@6UUjZFTjQcl19A%jDa}`SHm*=@yUG{Goqc%e%~+Vzyl{PcV~WTe7q1*|9Ivr>7jgvO+Nb(Yb9I+m;m6pEwm; z;dE$$X+dmV%|rQW&8V1dYx%<$f9g|t($fEI?}MhUn8P_Ws zt+LbnXJhj8>6b(;u3w6F*Ch_LKF+wif(3Z zL4Hw*u7RG3o`GI*eolO91xO%1u_!qsvn*9Ft2jT8lZBNbmVu#xfx)(;Bi;CqapA&C z=eAk%&N-Twsk&dTwKqu0PJKQ1Zqtn~4_7bU9>IM7BX4uVnf;+^*-zqLbe!F~!2it; z?-}VUxI+HDUZ2;zW&08KB}XoKbSRWAx)sC0=uq`QW7*PgQ*`#e>G$SZ%~2bFPr1Xz zAyM@8V=ilkum!U=byZGGkNJHid*y~*A2z9EKDr&FcdBk*rquq-os7ROd8@3gS=PSg zosV6R^Mp{2DFV?fC35lgOIF);avyBh-C$i3>7cj%aPorOmVyQA0xcWs^QAmI`a~4- zR%R}=ySPCvt$8Ioxe%_wzm9%0nO9{hKUC(Tf8#8^AW|VU_p0Cl4*Zg^Esgv`v z89Zh;G_CHaD{rxMjrknXHP2q^)*F$kovtSw6*xD(nLTMmMbn2KricbchxfmaSgg_& z)Ol5SAhG)+Q(S|)_1C5dt=ct(SO0NM>}q;oSan8GQS9BaZEC02m>rh4_B|1`Y*DX0 zn_=a}q-Fn|>Q?lw`P5~n6L$Hc*V^;7Tc*nXP(Cx&eD)3HIalNh=j+Up`|xg3_VMJn z>8JSp=X&TZ5oxTrecT*=HqSj~@hH_I#P+pd$)lLe(|KWM4(Wcl z;Qh9>^1zno{7=8+l(5V`TV|$tpm4|cReDmTmJ?0AbEjW^WiBG-qRNUU-#*CeRRPIt~t*WoQ>`jt-d6DMtVB$^2Wy|v*b_m zF_e~msamt7R`4&s+W(l>56XWwuic`!>dqI2yB7MlzV<4qc&ocPp=g8ZVA_{5^*jLfoBy{zK=JWdu?hFAuM1_lP(j*fKWKgNX%FP+jM8bKfGt8 zuiy&#_j-N4+)2Ahcc%yZ2t8)zCNFaKS?lDZZ)85K>b>7@aQNHC^6tAF3-&CyXglS# zk!a-JjfXVNSG?GLtooW8=kex`(fd7A&OBhNuu4B}aGLpyLs@gF+WE*&xs&1r>dWSS zHgevR@vlEN@Osw-+5Cc~`C*(-mC77GGTAPE@OgRJ`Yn0+vyP|kOX<+N;;|v#o5B0r z>9oN6!db;ZHS_;1dAs(@>nj?rC6VrLlQRxfc18ru)gxb&N&KtNWi{P@BZ)sNSGFf*BFW*}v^{BDROgZb`b zt~-2YhiI>_pLloCO^&iB#j#%>1aK{#aIOCH#Mr}6eU4RL$h^|>kSF8Ese=8RQcaHA z6_Xh>n|-ELKAnE{Ue52|zIM?8-i%E4%(zn}Fkym010#qcHH`*%v$BEoF#=&6ke&ie H?+gq8rEpqe diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 20720dc1655ab597cf6ba287891b0128184f2f51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmWIWW@fQxU}E57cvoByB3}8G*^P;TL5ZD#!GM8*p(MW`J}0#-H7C9-u_!Y!DJNCe zK+i_G zBpSJQ$us?|Yk%b@7AZgazw{6!)>QrU9GO>Uzdz0^NN&Eca?g~8bM}ij&KK92vRjeyY8s2F)Ur>;QI>rY zhl`DqUfX{1^pW^0QqKNR^52WxUp#l^3T)%6Glke!?>T3ByWFh)i0#1E7R(emo5rQPQGqt$DjClg?2#nEg`3} z2ZevQqHl3(-l^JEdzj^=wZpdxBjbC&IT}nFH=Np0EX`N#(?^x%_4Oe$ zA8#~Rb>i3m=`7DTrAW#wP0=y#dB1qVr9L&u#I)nJIoZ6cPMW8z{J87-gJod{?`y>_ ze;g%vQf%hS;(zQ9l=)&V@y&1l6;hQgxyd*0_v!u+y8}yVZ+_j?p<#IYT41+NvYLGz-_svPg^Ol{AFVzoa?3v7o7*u~h5rLrH!?d`@avYEFDvVo_#dQckL_ zfu4z;fnITbPJC)bL4Hw5d}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo z=ACmiFH?2DTx)NTl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4 zS8#>=d%Zqi?xfwMyVC=HgdQ_eq_1^C{IQ(s6dG}q81$!1;w4L(W zNHlWql4p9|Kc1Gv-*)*d5Z)WuG;xBl_O6;~dt_dTe-AqUvGDnX-l+~#>pvT`nmo>p z_%JP8%dv0E^OL*1vc5ePwtmv$Q|D}up4hWarv8`Q_NJpBor*IAKLjh>Ds-G`&$iV+ zk|$;Li-)V@SR8#?Qh&X?6#B#Y`I&rP7ULzd|Cl1(AFld(ipgqD^Yr8-Ft@%`eFDK_j znc0={ck^_-IeBSS;s!mYGB4VJu#=gi~POY>$2OV zXL9Uq6V@xA`f?;^o=*9rHA!-2sGy{6!%~yhRfoTs8?p=9B$pQVZawp9$G5}x{7P4e z?hCwoY2~(@yqc%YO1s$DIat_(C%lm_d+fZk{HE~B3yaMj&F!4@%J|@nT~TlN*7ogp z;B9l!?OAB|H2e9CB|VP}H!OJ&sroB&_K%*td#$ftw>*5)q%Ggq{(D*YcCCe?ZNf+P zwv~u8{9V0#09wvp4+YR z<&<3JZmZ0#2VcZSztu^(wC{>n#)NAj`f}5|Q&Tv+<^HB0jr@P_Q{S}!Z$>72X57ge fn8LxJfe}QJn%D!pS=m7P7=bVjNZ$o!90mpekYIiw diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index 5466f7c4e734b58d65e603eef36a001f3d715100..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 859 zcmWIWW@fQxU}E57cwbx)vRG=J!b~OxhFu&C3oa;?2VQg-U=xp$jxe0jKf>GlZb`yY9m8_w(xRm*-7_oCzM)&>4=et6GF zU%?gf@Adk8xs!I2?oJQ*5qiwbOwoTUHqGDN1^*`Ri zEeb)lYw!I__GdH-lwFtl>(5TMQiI-QbDw=oZ(k^Fmg@8M2ivv%9kExhZIrj!Bl&WM zVOmm@e2dm>yXj$P7c94!(c}91%wbn8eYqDs^P1k9*r#e*TXmPpu-!6Dao){*jW_T` zz}u_38{6!1e~Fq#PG3;Nl59Cee{+}KB|9spcD7Eg-*cbLuTzk7Lh zY-p-lz>xW2@kU$4+$Zx+3(mTF)$Wq><%ynLp?tDQM~gy_SRCOoJO9ifz)dss;5PGR zao_lsUFA~IW>r6GnqShe)KW~NGHWf<3oEUFmPub&rH^$cy-fBJm-^(I|3oeN&!*K) zS8Zgwj(s^Lz`r$hwqIzB45wh?ud?pNXBa*k?7lC_RJ*w)_SQMJ8?v%oAL8fcy9@od zc=Y%0>Oa4ioqDS%d92{tujUA=6A3z|TQ|*psAM>&?pMgM_A6HYEs;u7=8G-468hW5 zG{nQRJGbEV*1Gfe*R!+)YViKsUci@8Y$09rsBeO9o~PE!?vHaa87|&XI=FXjl$YuK z=MJIeWs7utKRy1xcW(NFD4rv=b>~(;6K?JaTrD;EeD9%K%!%u(tqzu0?Q*Sa{deec pNq{#alRY!;gbqyWV9>w_qDW2l0p6@^AbpHL7zd=E1G5kV0|1wVd9DBe diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.12-compact.zip index fa901344cd3f08c5ef8393546f10675225e91b68..7aa97ee46e816ba0175467efba1bfb29d415665d 100644 GIT binary patch delta 760 zcmV@KL7#%4gl`8WLCvlY)#Vw002>u7h8WH*K@rVG4V$ag{75V zSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!hCIz(0B*<8d*)h_qOyWBt8(vuU#EGe>Z zNVieRk3>7d8Q{{KLn#O$#>jrbW~!n%NnSA;@;k$rlQN5M3jMUk@$Dd2$Og>y~&bN3HUsVt;#wv;d6!U zJ(0(=KJ)_}JCR%E&8GfMXKOsUdXpD+)v!BT^_#~Mu0?Qz)oYlA=ALSZ zL{E`vVURJGlMYZlOa;9~2aX@n(%WNCyaacVP56f-F>17W=^QjZ+IV`fca=P*UsI+$ zLM4KFB#eI);IJ)q|-xi*rS4{WH>f)=zY!B1nwr{;g~Y`n0g2C08OL!{y?eK z22}l-Fq~C%E|^2hiqYj_O-7*~-2P&Git5s?{a?=J(wdue`w{V7t-=2HGpSP?p2$e& z;o7-i$Q2Ut7u4FI$N>ul-fQdK_G0IpDk~=uWCCv|`%&NFNU`^D>^)Pn z!f)c@QCKSf=k!hs=cIeG!0xz#{Z)u~20?%`GJoz^7?0?W{f;w;{H}1>X0C)L+|8#$ zM3L@q$)fu8E=PXwIUvTd55bePLLC?&JQUz48fVzSZld(}5*eOfd0PEwM2cBq$Jmffb7cSG q2af@KL7#%4gl|Sa8$fxM~~hD006)V001zPOan8KP9%RPuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2{TXkR9iZq98iA>LlHPT>Tcpc#&hqBNoAM<0n&2|xvqZs zIB6Mdulf95jy*Xuj_vnbhQlTgF=a`mJ-trccfyo}4aT|nJORqJ(o^xp=k!9rX>4If z-YDts+hB>i^jdiMU`ELtbpR=a< zyzI+Hgg@+LoC zTF=Z$p*z7)KXxeyB|?7vhUa43Aov>|OgE4bRtQ3|-y( zJ*2(ti3a*IIe_Y&RnT&!??sFd`boOpXzE)h{An(?_48sR(`J7F{?;{(I1>*Z2L|Rx zIRSY%L4M*bu1o_`>elRfcaDxrSN$nVB`D(y8S7+h`UX;c%g}}|*z_1TVb{OG-{8)B z*k(Saie1iIy~AYTS=n+6ZasfZG1)33AdX!~L|0%aBQbTdnd({2pFi4yI}Ok&=`5WO zP5kd{oBQfo8{Sx{PrRt}f|JAMp`#Sx*=^URqs=Z#P(+-%1&{B_{dMVmLFQ2ESBu+& z4ay-(307FSS90Rle*KL7#%4gl|Sa8$fxM~~hD006*~Is;V( JECT=l00269aG?MI diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 4be2cc6f23bb4a45c19bcb6fda4c93f29c712b74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 777 zcmWIWW@fQxU}E57cvoBylI?Ij)}4ugL5ZD#!GM8*p(MW`J}0#-H7C9-u_!Y!DJNCe zK+i_G zBpSJQ$uq;oOMm1i7AZgazw{6!)>QrU9GO>Uzdz0^NN&Eca?g~8bM}ij&KK92vRjeyY8s2F)Ur>;QD**P zA*Pqj1^yrG;#z6z!ILKOebJ-^a$e2X^V($Nk4t4OG}f`%pX&4Rj9Av2V>Sh5pTw>H z*`TN&~tNM9p8CD4tyX$^La)a(Ri{{K5u%?h~4aGplBX z9NW`qyVZ8uN2z&Qn-AL=P7iHf)Rl5^rKpbZ_8WF?3O=@nv-Wvj*0^*;?0eqHr6!W! zvldmC4igPU7V~U+r0Cr^T`5@m1lMB~A=Q3S#eM zuP8gb%a@w&Z~FI4PUwfK&~};WsjSBm_b%_xj}tXuEA0|fh^T(Ny-01L+im|hCnb+6 z?UwcReD(LE7msR)(Z5Q4y8v%SCVOVw$r6|{!JvT=M3I_E1H4(;K>8SgFb+sh1txd~ F1^~Q9N_+qS diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index 185637bcb79f3fb9aabfbf2d22ef72112ce44e0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 777 zcmWIWW@fQxU}E57cvoByVxU(0(4C2aL5ZD#!GM8*p(MW`J}0#-H7C9-u_!Y!DJNCe zK+i_G zBpSJQ$ur{_m;TC6EK+{-f9Xxe^p8O=j|4dyE=X@uzBs39Pmjg4yHBLn@39t_%Wcbg z8~yJM%i7Metf~6xIWn)zet(=-klcJ><(?@G=j<16oG-33Ww#>Z)if4Usb!yxqs&u} zN2gcHt$c3j)%x!(W8&ot8gC~)cRIdd&Y#FjqDOZGexJTI)uut&a^d`!UkqMeJ$7E~ z{M%{OdJ`;?Omsy|bA?{rYBF!x%x}AQo3&DmB;Ptkt`JH81wzYfFZ-AHB&}U4vXc4C z`|b8?f0;erYCHG;jp!e%rPcYudCk)Pxow{8qr+ch``CHQR+TsNSGrui>l?$6I9tGY zzhP*p?~R$Bvn;QvFD{+CZvX!qa2gR z8B>?NNI4T1`?9-WgX3rDy+s&ud$`c!jra`qIK)AM18* zvbum#*XvbR9A*ZXtm3Q>i8@=|xud*}SF7KMwC0=L$9hQ8~zKy$_G zBpSJQ$urYK<#~cG=JEPxE_C_1fuW#ngWNt8@M=ImK1EOf!1bZIP|_UEbvw z3v*m7WBRn1bIS5~@0-S*wz8)g7H>WxRtA})DqdU;auO@jqiPK zP4=l>eeBGwlb*d&*Op)YUgi5vUuN0OX2$Q1=dTHycOPs|EZ~b`eOez7=DMw2Mp93} z&XrkIDE8{FBNMdVd`rAxBDZjkgNewB^`5)y&btTL+Nr)yfL_K9&HYzDE|Mlcb=GRp` zMiP3-JKeS%Z2o#>^DB=jPkhcF+WKbyf=~)1Z$6lS}&0=%9(KFu5-TT?+9(_iuKz!aN91i zbBwjzme#OTDR}Gq=WX^!{(n*oj}P!>WU^<*oh*SV6AT&{K@_QpG{Bpc4Wy3|2;+eC KRA7QMGL5ZD#!GM8*p(MW`J}0#-H7C9-u_!Y!DJNCe zK+i_G zBpSJQ$usj8RbEr>v`k~1xg%UCOzDw{_>Wb-oGaNmxBg$n?Y?8xl-h5%kt4oia==Zr9Qpi4OujAa^`q{g48Mmh%js4gIZ)n++%IyYjO*-t(bYQp%LgZjC=z}t{4^KtgUc{aA|9fOyh3b|3Of9h>Qs7Vj&@_mX= zW^8NwTX#ymWA%~qZOZA0>8by->s$k|9+wE{3DLjOiS-n9Y{IU@%&ik;iRw3esSd-k^3edIdkBZ z;{9!RXFRoY-x4ILtMS->hqujAyU-h*+OpFZwKv|I^-A#Tqs()`kq-KgVrMtaQJ$Hj zxW3~@^r@S-d0cFZ`9!T2c>Ui{C*c#|&B$cWj5}ch(FK~E&%gixMZs6Y diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index a0e77f003314bc567ddfbb5ef6619912778c9a45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 779 zcmWIWW@fQxU}E57cvoBy!Wp?$*prEYL5ZD#!GM8*p(MW`J}0#-H7C9-u_!Y!DJNCe zK+i_G zBpSJQ$urAuJo=Act)6*)WsKC3NqyQM`W}?m@Ai?>f5s52yL5kXhE$--qAGsg?~jw) z_xn3vo3it}+d+Xzi)UN?ep;OHE~+pwMx^_%(}cbUzHiwk9WP}M@Y!c4I(q2Pk#27 zk=OD6Wp$HUzq4{N+RJ3y`#Rs9_|@}YY1fk}(xzH+zibM%gL*ssTswj{o|;(88rEhg zw6y6%uVb^sI`LmeckF$-IWA|~q1zb~A4gB?s&rqW>s{Xeu++*rsqT5Bbw&v1frhOg zExA=D*?Yul`|>dGdC%*69O;lMF?DWG{KnwLpG@863s)){{M0xZ^F^pkMS=wx}Npo3-F>%J-c`cbVM-%`(4S@etDBS+e_*B)iY?1=nM` ztLESAezzr6@jCOl1%G3tUIxY;o_3^sdRE*mIr;Nt3zse4yt93sq1ShzdCR7YuVRq! z%Vw-vU-d#oV!!N^=ktp5{wH}GpYeO%y_oyrPlp3Ww*($){#TsD@Gqjt;L}4(>;D$g zjK0F9=L_0ge#qvk%Ba=Nd?t}?Un_$qu2%<<$rUBlpY#@D%Ko|$4 KrvsBb0|Nm65>fmB diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index ad69a33c6eb2bf0dbc42cd2c4a5962b78ffd6635..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmWIWW@fQxU}E57cwbx)@@>tm{gas(7_P80Fc>f}FqGsM#OI`zrRKz!B^G5SCgr5+ z8t9qm8R!+~=ftO06yz6`#3vRdXJnS8>SYz@=W(*IGQ=`4G%zsOc66j0|1mCHc4I0TNn7h`Qbey zeFay@zt`*Y&srxReIxT>Rqy?NgTvo8mUrLfSg>coMcXN_ zjYK2&E_r7CC&b|KtJO2luZ)p8GO17dL*Ik)`rSTK`p+0*b(iih&X5XpSyaW(`~7ip z`+k4tYg2Z9cRMIBY4L2U-%pDZ-bEEA#)x$Pb(+xk!1pcNq~oRR0Y3YT%}$BM`P_?a zRoM4QR_bw!gP2M2m#O_1<<4#~s#M#4`HXn;_Q%^&rcK+C$9?LE>5W#u_xEL92mRZ& zW6ukQa@&Mcy%TaD#uX{sJe5h;INhD69K^w1J%__d;%&UbtM@@QOZq&R-z=Sxn&z#) z>84i2#4ANVHlMRt{WkK}k{)5B_~KSp!2<_QCE4(JO}&hD&qW_3g0W2r~mC&s;X*8BWECR?O`zL$-oNyZf4Cr4b4 zd1z#RT9h9ccv{b4IaiwZm7L$_IlYQF=Kjwq;FezDV9Ypi*`%XS{#IVuRAZPNv$6d7 z8qp73!MjW{w^ZdBe|yYuY?Ai8)4316PEfS)vi*LKZ~jU38KSWYyLDc(D{qQ$cZy%S zw{Ci(Y`>1Z{5eZ8^%wiMbBkm*N8hat*)L{U`Z4_V7j>_X#c$uIN19e$)Tq4go^H1B z;V~zndkocPp=g8ZVA_{5^*jLfoBy{zK=JWdu?hFAuM1_lP(j*fKWKgNX%FP+jM8bKfGt8 zuiy&#_j-N4+)2Ahcc%yZ2t8)zCNFaKS?lDZZ)85K>b>7@aQNHC^6tAF3-&CyXglS# zk!a-JCC}`*YgSIV(=v^5=8kZoFr`N(;y+gTa;{|O-1>hNxBHG&Q)<86maj-u?VX{} zelgJh`|0M7!yKDNn$#+Zst=C-r#E;=n z9K!-xo(bwTx6&Px!VdiunC+$0TXg>TzlnkSpD)&)`%?T=%+{=X2TJs3_BUNWx>Rv* z{FBWG2j0fet;p<=5U#&Pa^?ZKT{G`658HdfdXBquDxkD>IsYPY?uWde#XN#s=A8s^Z z6gw7Ko^UqGM~Q3hvfnOKxHWl%*BaWhcDNMCKabDg?FLNlfv_|jmU2__X7T&QoH<|gw z;Iqc(+OUL4k8a*yCa5rPhwqamvkvlpb^FMx%l*)=D7NC;}lFKd6Iyx< zHg)mrxja?xB(3!X7(|wLsXWb&Ik7*6%YSqCy=c$1%l3co-SFb%k?seAf9&H;0=yZS k?3r;Va9|n-g9b(rMQU;n@MdKL>0<=KI3Rr=m~|K!0A6N(xc~qF diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index f525e557131dee8d02fb81e9372e6777624834ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 850 zcmWIWW@fQxU}E57cwbx)!nyEC+5{#BhGXmu3oa;?2VQg-U=xp$jxe0jKf>GlZb`yY9m8_w(xRm*-7_oCzM)&>4=et6GF zU%?gf@Adk8xs!I2?oJQ*5qiwbOepxl;PRlgLnLEOT!jvAFi2qpS%ej)BbL; z`^AXU`_7$P^q!}6wtxoTtMI(-m-(l!TC1~emDZw)n=iIKT6kFLZ%-1Nj(k6xcT7lw zCAX#Y;tzM5WlsL_Snx%2bBbZy^KP}?Z^~JA){AZ&Y4$i7|G4<;#p;c&+oyzbJ^Wo3 zS{YOH|A4z#s%ID5yX9tgUeqx>`pfNCv~osG@NOORU61E$qiRN$Td38nEHC{bh$#1yT-`hbF{YiXA?8>fcur5x=18>mM3ytkdEO z{&nDouGRKj{$~O42X@R}>t4TR=}LvIyVjg{c#Q;!kvkML64n*!H|K0p(MW`J}0#-H7C9-u_!Y!DJRuP z*Feui&p@v@KPNu5q9DJhBtEeyIU}Xbn!b|72 zS@X_0nwP1%U#_(`NXkxqJ@;o{7%Gx6K)O#nz8&s9bKl(6BWxS6PIcRjeqWQh%pKDIc1}CP@6LmiP$v;c7(sq;d z{auD@D}Gq)I=OhU{nH0KHEZS=MSRLRtM-_S`<~?^M(^?yZr80}Tb#;sJ@f98E4#&- z>=&y(_aE=7{;wwHr=6#I-=nRfH~Gq^j`Zyb`yO}o6bs65n_oWM&!p=kCJ=NZX}yQT zwA7Ew?V{h6`aaRSStR;lZRzda&$Ibi)-RQ+b}SG0ujtL<^U5Q>p1q*P62ED` zn6uN|8>Sa+*p%MyyuxV1s?{r@M21dIZ_8JX;vai>dQ(gcGBMi51EDh=>vWdmts1j2YAJq?)T G85jUpL`WXbn!b|72 zS@X_0nwP1%U#_(`NXkxqJ@;@4d6%e#*SvQZJ^V_5CDf5q z$5V@`^&gK#>0L1ivqGtlf{I>C4*f4XxnSi+?w}ppy0`0h80c-`TQ|$$o^0WoDf<*c zP9E8^P-VNLYwL|A>PkGn<}~Zd-mhMmow%II#8qrI;BY`l*I%i)=y-emTC=%4;t zuFs08Fk6#R<&XHI_f2Nc=grC&vyJX7|2&0<{iNh>UKjD%l|N1dK4a{hQ&G+1BqeYr zlvO``Yvr_>kH1*DzP3dkE;SIVee+NCT7c1ugNHtf8ypq!;bPrg_oi)`;LbaakMAdX z zMD1rQTNz)`8t3g5JBnv|HNWF(f4$P+S6lhSopuMBH_5)Z_v7YCe%+q?70T-_nr@I3 z%Hfi3w&aP73$;`aeDE)SX%pMUyKbA}*0=T^`COl-a8j7T`tlp*{H+xp7^Zk#!%?)SvhpJ^iiF?s;cIyKFH$S{* zq_5x#`S*H#zT8Q>Nq46Q{0Kc}<|eO{YQOUT{F5ITqT<7DT3g;*WL2`$F^EAj;$8pI z$tk6iRJ*wne0g-87u@`{Jh@6o`~Qjk+u076pLnvoDmCl#i=|2hJMUY)7V=2jBW^rr z@rDn~TLM~H-u`Bvv?}n!Phqnwv8y;zjW$L7@YmiSa&Ex~kA~dZpHuIg+i4pdByx!V z({Y_ex0Tj-9Chv!w%&ejQkajLRh7w~n5l=~H9z@SC4Db=Wn;!u&kFV(hvrSmyxUfv z{f_-nM|sdmnKZ2rX`5N+?GoIavLW!kbZFPnEe5`m?=vR!NKYtbxpQ&xYa!M%3}OoI z_kZm8&U}KU&)?Q+lG4($sm%L68nvsjb4=vAzBewl?ez~w{<@3OA^)2P*G*SiE{7Ovov%96^q}eJ;>qY07XobDz^8TM-s~Ey^LPxFnz^cxRW=Gfdy$!KEZhU#Tdg=BE=KCLcn;XvT4^_*468ECx?A8VTZ+>{s zNMFGf^6&Nfe7Tc$lkQFr_z`-{%uQY?)qdsw`6oXxM8${Qw6?sr$f{(gV-SO6#Jm2Z zlT%73sdjTE`14=5Kc!MWvRgEJi>=4vtrw;=a+QXtMCZq+nZI}bc(me3!u!?>x6iL} z*f6{F#FxlZzN!MfHO6z&7kRw-!&CC$!~Cf_J2-b+awqota@>4l`&{Fx<)x+@pC5OJ zEdB8zctV@QP5G1%#hs1%H*abQ{I0ni_c}kr==)cFvx(~WR_IDh?P#~TczBOquEN&` zpE$BUPrAf;=qS%u)61ntIPdcN=RS<&{1EW$Z|L7|Nr{Xc*MqMsAJ&*{G+)TaxbC6Q zY881Wqwd^wH~m-skl#||!SRi_;ECX{OIiX-)9(nw>7a;q_;UBBK262LIQ&J`C*==+onrmFKl!-NeLjWB=ub}ek$c}Kgt~dA*D9P6 u{NK1cfFZz}k;$GJcVY*ocQ9yR1W_a>{Qz%PHjqX}AdCmnuYvi9fdK&aVSzjV diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.12-compact.zip index d620db4720c3634f24343b984a89f582fb640cfc..22cc7d3f44c517e32c760243103df7909b35a671 100644 GIT binary patch delta 768 zcmV+b1ONP{2bTvMP)h>@KL7#%4gl-5WLD;^1`^W(003bL001$QTmv+bPb7aI*K@rV zG4V$ag{75VSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!hCIz(0B*<8d*)h_qOyWBz~ z7OBro>g@=&{v6wm{(w+a12TLOR+EM5stUC?{uNp!MN%=s%s<=|Q`nUM{m{P0Nw^`v z*_cItFU6GYAKNL4rhtEpw6cFzw}~cU?(nBaFvuCmWFF)h%V7`Gg2iTY16XY5fHf(X z^`Va~%Zt<7l8f#Z))t)jmChILy=CC?w#?WN206dHLm|cjzRJST_gpaRt?6TmdM`$+ z22I>SbfVhZ2d8g2-4Cv*%fe57DJJ?it;B~s_X(J0c+(K#=(T}3)-itv{U=4JLYUP( z=yRH;%MLXYrH>qawG$#%qxWO!9Qc@$)jGHqO|mU!U3jGND4mfaUM}epouS1 zoi2(oG^WS?iZ4{7b42a=#i*W$Cl=Y|BPeCL5l%QQbm*(2w7FT-Dl1$?C|@0TEFL## zz~EslBzQk<5`K4zqRW4^`8~87VNL3p-*}R#ZUn!Iv=Eq5Zrjrp*%1FyJ{0PN%XEG~ z1K>R_IYXe6gS=%i6qGBMYN18!h08!xB0Dw-W){tkqZds)Hd1g+IfsO&=YY|Qdoey0 zg&4*kqD+h^hU#h<#plKf^A)pDf0Rt{OTrXXDDBZHZy3b9FGhdITEjgvx3^h@KIFu} z;-Q&{qThIq)G6c-WO)?<11pQR2sjhqQRa=H(d(UeLl;=zOl082=4u=DqEg!gPZDG{ z$i5G!bnT}JGPSPOd;S7VyftN%%OSI2XWD?#8CNF{I;Uk{o~nkQibmn*o0)9CWzW>F zU8w_=UKYVf=I~93IZ>g|b(A`N*9akPu0n<7z{nRK`cmC{brY+mQqA!5W%M;n>>W(F y1z*N*($MbywwJw7O928u13v%)01g1_wPaT2tOgR(0ssJElS%_t1|kCh0001bc4@!> delta 783 zcmV+q1MvKp2c`!bP)h>@KL7#%4ghO%a8$wPgsI&`@~QUDoP?vKTjWOb4yiwa;+{TdM}hmUE&aE*mRf}o?) zjW)o+zI&ndsYpx-9Up97tr35}s@PIIu|Dedp8)R%LH@|xMEswS9jsugbK-$LdGM15 zGwy^3o!TRsn)%Kvr1^g;-L(X+{ucH^gE!d`)OYxas<=)6KNn)m_V8nL9-P^P$W79j zC}a~-a?fWrTb?Q3LkDuv8jqtaq6qMx)neP~L%O3J!T4HkmL2&%6WD*pmJMFsG3AoS zV5j=(>%;R!{0V(6xfyPqh8!vUpI1b*&&zpC2kTe`Cs!nX#W;_3@A8n`R3=28BrXjB z7Un41Z)QTSb@Qitf*QZRVq*Qbkhxz0#df~eTt-GYT>gn(Dw8OtfTVy{QnhoVYNs@`mcXpdr>zw>VL^O<<9-5+ zz>y9$FkPOYVw3R-%wNa8X6lam{?eaJcWtPMxa$a;+QqEyJ?)|daYq0^xu)v88~AwL zJ$nujWy*qT=JfFpA4UIg*icp5c{iaj9|;Lukj?9R5`lh=h&zAZ#2X+~F-xfGA&L5{u(^ZpEX=$puG4FN(O_7dUz_ET7>*z{;bWPv0y zJgdDpY?Xbn!b|72 zS@X_0nwP1%U#_(`NXkxqJ@;sTi-wy`w+Ak{2yi3%=Yu>wy9)2aj66(mQ z7Ees0utd`-fl1sisHXdC@eljgsYCLht(lSn0+rSj@q}xHy zK6*EcN?VKkTU^~(xJ~`o9G=N}6Fr4j{cKfY<8!!~Ip_463-jN}uw+fR^z;7Y^Q8!uz7je6;_1@QA7?FKz5d41Na?)Fj#jgO zg>wxYj(Sx;@u|O=Bf9_MhgGTSPrFW3vTas-;$VHDRpqp`Hc!N%^2g_n9OtQha>w&Z z-i+`q*Fx8;D5OyjL_{~wiHiVW~(WU^<*oiKrE6AT&{K@`c!G{Bpc4Wy9~2;+hD KbYPliU;qGYPf&pX diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index 7f58dbaa610bf8e0fc6020a8ac49960e883398d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcmWIWW@fQxU}E57$SNubX_&8@?ZL#rpvTU@V93D0P?BE|pOadaniF4^Sd^KVl#^zWF)G^AEC$0+~k!~?N|PvfARxERD9S?Ys-6!tV(t|1~EuRyz4(Y zIi+-xYByJE>n!Pq%wc;oODBGJP`_+(R>sTi-wy`w+Ak{2yi3%=Yu>wy9)2aj66(mQ zL)#vs|Q@$jZ`RmkaS5E|L792hF zpD*i3@e~E&Ip4eu{@7oW5p+mW+ibZ>QDfcn&?N`h*6ghi`0g-0g_o%G2d|r2suOcjb;%WDe@2SPR6C9)FOpxY&rZ~yvN9^J(i_)u0 zXWcvBlDBGm%>CCcD|I_}N7jk&pSp0Rf@IS4%XW#9KJ#9Ac<}juR@>iK{bYK$UfBmW z<`-9`@^j2QdFRP> zMgJ>jj4Si72X50xAm^Q(nfe}QJoJ<3}S=m4u8G$e!NKXf* Hc?Jdm^us|T diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index c1b7f044b18253d3ed448bcadee1fe9cb0d3aa06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcmWIWW@fQxU}E57$SNubdEG0$&Vz}8L64n*!H|K0p(MW`J}0#-H7C9-u_!Y!DJRuP z*Feui&p@v@KPNu5q9DJhBtEeyIU}Xbn!b|72 zS@X_0nwP1%U#_(`NXkxqJ@;TT(n!2=B)KiE$7GFy4OlQU!E^xsagN6@>;^_3!8)3 zYi~1OojXZhJ?WZNQ{-PchoeICZ5oSx-Zr^iWMgCK<8fHbBL0`jlKDyF>h0{C>L+ef zunOF@T;N}@vC8p+gZtGqFCE#)#Myab>yJOCS3Ns?t@o=Q;#0}Ws#}@J=ObKwLeEXU zBk2B(|JUw631&aCu;au>{>IA1mFgQ$6}#JTcZeki8@1iLow^`XvQ&3sqx;oMt}GvC zAML%@Hnra5w~gP#);pj4+>fU%df0JZAa3iMeK)L2?Ao|J4Vflp2>Y(@+VU@WUcKT3 z)~C;}9$3tHJ@X#VV{X6RN3mrm_gwVqGuvVKb!~Dn!)>oNd4)UoD`RS99V=h@9FP0m z@+CScvsHepu0nFTYW=V9=g!TiFGqA(?#TNr9#;3@g8xJJ_X`x9j&8dgG&Aw?A?MjF z{JtW`Px8yL&&ist+p~Z6pA*_Y_pfUH|Jw6FQ;__ZYl;>@y=}Hdy9AYbZ+V^bi}z(I zj=J(=a_hh3`5bINCwl9%+g*`3!s*Owy=0GlVv8EvnMbX)|Fa#8_*htUjy$@d`{hy0 zB$c~A_?N!tw3@|SeewUn=*?^a-i%E4%(xRKFl~ZC10#qcIhh7{v$BCSG6G>dke&`q H^9&3CoP0`n diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 6d7a51edadf29c4b0e35332480287ba29b5e1ab6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 782 zcmWIWW@fQxU}E57$SNubQM{gB@5RKxpvTU@V93D0P?BE|pOadaniF4^Sd^KVl#^zWF)G^AEC$0+~k!~?N|PvfARxERD9S?Ys-6!tV(t|1~EuRyz4(Y zIi+-xYByKrm+R-&N~YIqpI^6G{ia{fjLlP~+-Qkaeeg_5EUbe4Oc>AJ8R8ED`=-u( z{ans-{WY=4Z{K%b`Z|wQXp&5+&B;u$dG``~nt9gpOU}HZx?AL8&rPnBrCz}d1&^YG zlAgU`{K3ld_Tf}TSB9!}dv3^X;S1=Slx!39ggL}3{CcDMq|(;23z_}DTxAzzH$J8E z{`wl07{;$NtXAB~ZOmL_#8}g;V^H$r$Fp+I1LtzIUZ%{lUi*^OYtowu3zqQov~4`W zEq^>sL42k_U2*y2eX6>%Hto}^_&;?^{I{7CoIdcJI-B=x#pW2VwzMUJDQ}HVhJFt? zcf$AP@6s(jkK%;)ALJEJbC2lOXg`1cP~x7ljr#uu&dis7p%xq=zmhvCN8H_qPj~Uc zq*Lwk2mP%c2CwywearRJd5a=vMV+s*QQ71*T9=<5z7rTs^W!cgpjgmq)|acxBi-9cj4NvgPvb)e8j*7x4N!_fB|qM9EHQ-_ry79_(&x zXKG$93hf9w>{F(-X;cvvQSo6ntu5~@vMSl>7{nkM@vi^q zEt8+-JXQO)`i`7&wouo%-Br>H79Yy=DXZMN|1je< z#jq*=qk7MBFW!0inCF}gY}+2bDR`Q5O!QJn#*MviS>x1rWM${`u0QS`f8WGMf8%k@ zCm;0|et&r>CP(t)<{NU32i5LYly~;ue|D>Sa+mJ;*Db!QDtl@J^Ao(@>i1STKWV+V zMAJg&tLCvN?TKcl&Xd&;<4B;5VgC9A~=^2@)4%KnZCoxMME8P{(1TcU@H zIK;Z5UL10ou{5$G`Ogzxrr!@~VF;`)$p~ZK@|M`un8( z5A&W26RM?b@(=H~s<{00MdmE7D2t-#6(g=0RLnT(lpDOnm%5>j*nTfHxzPJu~j42~3?}(7*_yNKU8$-mGjOjf_AT M52R-TQ#}I%0Afa0g8%>k diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index e1dddc3ad2ae14cc4c0507c2b3869bafbd18c46d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 854 zcmWIWW@fQxU}E57$Sx`fncgqpIf;pZ;Q>1XgCPS0LrH!?d`@avYEFDvVo_#dQckLo zu7RG3o`GI*eolO9ML~X1Nqk~aazcvvQSo6ntu5~@vMSl>7{nkM@vi^q zPiJf`uy*G^{0GE2tE+Oe|H-|t`k*<;Fl#~?XeiQ$A0*UyJRUl-U3-j_aHCwFGHoz@QR6+y3R zb~E3;qQZQ2fsmT|r8^3t3e}Z`TQ=^jswt2N^vq}f_ioLk+3X=N{`^bJnam;b@O87m zZmF7P4qyE+Y2WO~sUjbrtGh)QI^9_=bR>u86dV7xNsUr=k8<1NpEZ8h`gy79si?iz z!mPE+mdS*@ZmX7NPH)dtyPoG*b?$~%WNq}J)p8MPrB3yw9Ad2X`KP+hzIM-Gz4g&H z%XOQOLvyy!zio`lmmAJy-w|ee`f%bZ&Bz(+SBuZRTbz1H<{0ZO2`0CUL)$!G^{`vk zChyKSiYQvN_Cnj#h6(p2Pd{5``}2XpR$nc%FWLLui{?a5bksGH%9{3Li@+`ObXoON zaUYl;-RfVPaO3A@#|g1<%YMY!-?(+&gVjK%(5YKV!ljX~__ol*ik$n`-$*?=Fa34P z!OilU+U0-k-Ke{0X;0UTJ98!XuQI-G8vh`-Vba<;Cw|WPVWlFOnJb~*;FXnMHF4A8 zl_sy?eIy@&61Rb%p?MMkae^ i+({gm%E6$45k!%k-~+r_*+3c@fiNCOKLq9;1_l6{WO6(J diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index 5e9cefc705a27c5ad9c46c2257b6091b348dce67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmWIWW@fQxU}E57$Sx`f$va`EIgyEh;Q>1XgCPS0LrH!?d`@avYEFDvVo_#dQckLo zu7RG3o`GI*eolO9ML~X1Nqk~aazcvvQSo6ntu5~@vMSl>7{nkM@vi^q z^mQJq&?K2so0FMh^X?_~H1n+Gmz;S+b+^dHo|{}LOTB^_3LZs$ zl|Ih;uzy1YOGb!%d(LUCt*JNNH`Zy3Cd#x`_(7jn+mTm#Y zWx@+5JmwO&Cv8@};m2}L$mn>*iR#7I zvjR;56>F9E?pe$8JM(It6W59l@7{Ffm$$b(c-^(|{YFKnU83e1I(Cnjthg1v?a{If z;}VZM370-|E1&VBf)m&$%m6IR{nbZ_Cz|@qh{}Sch8<*IWuyt6Z@U@)Az_S z3b1ts?Jr-(>L!!^n(1qx$UlaJnC!PNLpQ%FcVPbc)1x)KXnFd9Gm^a54$sk@Cv?AF z<<;})TXVN&JMyobZPi+P=GcGMoGk*orWXISsn@T1D}BkZ>EP{Pox8PLU&e0m3QQ4n zjgy$XD^a9mn)KHF%}Sx49zFPcti{0T=Y^KeN!d?k-6~;OcI-jl|6^HKL;}1Sne3Ty hr*L2*2ZIJi5Jhr&5AbGX18HOg!gwJ40GN3g7yt@ya*O}~ diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index 1a9e076d1ce3aadd2b9ad6eca3b706b4f257b0c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 854 zcmWIWW@fQxU}E57$Sx`f34fg(F^P$R;SxIogCPS0LrH!?d`@avYEFDvVo_#dQckLo zu7RG3o`GI*eolO9ML~X1Nqk~aazcvvQSo6ntu5~@vMSl>7{nkM@vi^q z^mQJq&?K2so0FMh^X?_~H1n+Gmz;S+b+^dHo|{}LOTB^_3LZtx z-`sj$=w#kTxfd$Us-2rsAG=Jcu2sD7Rr3VPv#VLJkMrKUYvKNE@rgO?J6%uCN-%3} zKhC}&x7PGVvcSQQQZ>c+;P?9`W@d(4xZKUF5mDe>QemOWP|ga7Os!0?;e`> zMW^RVbpdm;{>KQ(}P$g^qwrMUt7g6E5ESg;sv!s^RvpF7C%q_>dxe_e=~d9qSGsG zUfIgC{&eoC^YuM1SpNRHcVkBMyFb-3D`X>I%>TAt{d!PL`0C&C+b6Ex=-B3W_R*nN zo9Dpt{sP^!WPDGXIa!8@Yd{-0ped__N!mX$9k+ z1^dKof1T25yA-^>WmoR+&>7R1`kPJ^{m7g8{I1^&*?+UoKMp==85P7W72X52{}n99MRfe}QJoZthzS=m4u8G$e!NIwMT9tH*gNYIKa diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 78a08584d5fe2cb6dcb59b43fdaf9dec4180a6fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcmWIWW@fQxU}E57*jQW;lK94eOO1(vp_h$;L5+cdp`@rXIk6-;L)SphM9)C4I6o&o zwW1)us3bnIC^;juELAV7I6se*g_R+efuVtc!M39#-T04j;lfMjwpsJeIhvQLx?irf zH%Q7(eLeSX(~U0=S1;Wj!F>NCZ*#+${h?~vPvTy5oZY&>|IH8Y8R;vyLjJv8_J0f4 zx`HR`cbxsLbb8)@uG}l{z0W*NDP<139Mh}G8^mAMkXT}yGG$% z4R?wcYUXlXp?|q6wdE#%dhVXJToYTWKDMl}zcW=i@|4lTpt`I5UXvSgPm7BQtjbWC znfCO$!Iv%bZ$I4Qw_zJC=bv-^D@3+`rx&1--XQf4$#$Ayp_JlQ8+ND8a({f}>{+^>PPuDjebwBRL$G))VL6$v>Veq-jhmuw#NGY%R%>PX!JA2*q z+3%y(vX|HV^}17Om~)Vich35kce-`G6&4>6mfF!RC* zr52ZKEDzz0&1l=O^Y+6Jug^X!i8yfa`=9oimaX4v4FX@;v+KRT{^5h}ytO-4`6sS< zTEPEAL`8m&%>3s&EB~Lh`XlvHb?2spw&PVL=a#TYe0uojPnpn__dKQtj@TOKOkxx6 z+!%kS;Kwe$%Qs^`t!e!_*H_4Y%Zj&Z*H#yQ;LV>vk$jpz62L6P;pCK zIagScoxy+N#`l`K_gqijeX16jc>esau8180-i%E4%(&AUFu8$210#qcF69MyvjS5p R0|O%vh5+d-VA^G1008vIIxheK diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 12593638b2abeb1dd9b9b50fedf0521f85686333..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcmWIWW@fQxU}E57*i>8)61^jJwi*)yLoXWxgBk+^LrGC(a$-qxhOU90iJpO8aehvG zYDGbQQAvDaQF2CRS*l)Eaef{r3oAn`149D?gKbAgy73?5!iAU4ZL{W`b2Kkgb-!F| zZ;+Io`g-o&rW;=#u3ox5g8BYO-sXlg`$N^TpTxcBIJ?>PHg>GZt+T)9`?d!KolQpy~5Ii^>WH;BKiA+f|ZrHy+6*QqIgiaO;M883TW zzidU9%C>}war>3?%3my)T6>hYV^&{#FhkOXf6>KX4ElZ;{^hPS^S=M!_JjZ1|8kx6 z>rYtQv1-N1&cce|>(>qM95P*ZGPLr2e%O>1S2h&MedYIMs8ti!w%A%TXJP(IUCpB{ z#=EC>|5Zwji#(&-`StMEj>UmekpZg;=VtD3yXVGw$?MGI4ntwp?QBoiZtS`Gq~^xF z^lIk|Q;mBJ)@wgHs*rZ{aJ66kKX;7-Iewq7`kf8w5qr*|&(8lRBbTG<`O!5x)7b4# z{#mB7?TUBJs{qEb6_yqULtirfHGS5xVeL0oJD%t>9OZ9aS0x2$$9l&~&G8f4n|{K| zXXUkrYi>wRn19|*`0?YTC*#skSowMwq#Al`3 z^DnEvjoQBBc698aS?!MY@r*umE6W~Cctva{btsD)ayFjuW3U z&XsL5nUTAlQR!-=hkS1LyAJ|kcWu`#PMQ`y-zYORXYrwuHP2hFIvWRap54@$!xGS3 z&{Ep=v2pUrOxEC&EWuHq*Z*8+;q?FFeG7&FZ$>72X548FnB2gife}Ozm+}Iq diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.10-compact.zip deleted file mode 100644 index 3e68895e345f18bb57ea4bcbfb159cc43f322f84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 zcmWIWW@fQxU}E57*j!u?(%-*2A(x4P!HAuKL5+cdp`@rXIk6-;L)SphM9)C4I6o&o zwW1)us3bnIC^;juELAV7I6se*g_R+efuVtc!M39#-T04j;lfMjwpsJeIhvQLx?irf zH%Q7(eLeSX(~U0=S1;Wj!F>NCZ*#+${h?~vPvTy5oZY&>|IH8Y8R;vyLjJv8_J0f4 zx`HR`cbxsLbb8)@uG}l{z0W*NDP<139Mh}G8^mAMkXT}y(#G8{RP$2v$fC;lEt(%X zJk#wPBbOc7c$@XA{b#wS83H_Pa?4bz8WmSO6Vwr2p~LemQ$0z3?o^?+FWD>4X3tkt zP1;uFBbOq@>ND+p=9V1wM0LIIn;z_Yr&NAjpGW0*yy)7*+?QF0^cR}>%1A%n>~}n{ zY(dh_xh$KaWB=vtUa@0CT=Ghdc60Vs0(SZjtUAxXFkblkZC=)lpn2Ebs#(mB$4mXz z)~aiCyR-D-f0J+iTOLj{DG&G)Ca_^02jkk!Zb?-?Vi;LgsGf0KvdblYrj}~3x>Se+ z$BwAq8s7`1FK#{6sl_{E-(KSd{?pX=KbmY;`qC$2U3*Q_ldN@N`Xy&FKRGdMopSNJ zNS9pGgkFYYfkFDkt+Ee~>=x1}W|rG2yl(rgn-yiI-zu6N4VrV43|6Z!h8eD&+M;?r zk-Mqqk-by4Ov*{AuiCYWpPt^42t60%w53U~Y)*y5x$NINUDsQ+*4FlKUbf}rSLYOk z-3CWbe>BjH6F=C-TTpKF^?6p&603LKGqRRD)!4dhb6yd?UC2nDt2akIIOXc?)jNZl z{x3ANv$^;6M7k5xvFfXv9!WJU)lp+P%`w67-)q<94drFxtZSCtbvQone|g-yUY?*u z9U&b%)I%InSAFbbvN`CdX7g0f&1}+&uO6+YZ(L&E^CcZAy786gy8k~?>PHg>GZt+T)9`?d!KolQpy~5Ii^>WH;BKiA+f|ZrH#8^q-9BE^x=YtbFTc3 z%a%$U%}LtvtTpz_(y2QZdrna9nAEY{@>$=h0v_eS`M&(a8$amnh>+=4keV&~>gw&=yUd&7o7c~)-cWwt;Z^JVG?_^+8!kk+P8F+X zFw8i+Y)jFU?K~zz5p8PvSB@zph_6@3s1@`3Vx_1cJmDncFFON$GrO7E0s2afOXe!+ z@jvXIW!-k*H1C2l2d~CXoDsSGU)`7fvX9D>zS}7kJ;@Rhx>lpg{wZSD*H<1}UOj(% zgtcEspy<}j_+7VdTzK{5pyRI24L@T$4m!1!?lOJ1<6!L)>p=D=&*tAs<_p#4+~(pk zvGhe&*7K$v-lqfaoZPfe_wU<<0ZSbhy;%IRS@}oHwlCdDu8y@fcJ+sJ&2Q|q)yy~L zIl;94EY}IY&7aDbI_)vEIA%AMeL+S=Uch1f#7DfPk{2d3W-oC5RXs_)6V!I`+%Qq{?flK=Tl wzG_VWXH_#fz?+fDo*8%I1*TsxXkY|U#3khbZ&o&tYDORo0n)pHnSp@;0PMhHH~;_u diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.12-compact.zip index caf1e250b3fbfde591c3b410794115777c23f317..e16147f510ff08c4680725ed34f46add438484a2 100644 GIT binary patch delta 725 zcmV;`0xJFK2Hpl2P)h>@KL7#%4gl@7WLAU?oZzqm005Mc7g2v7*K@rVG4V$ag{75V zSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!gn9JyK4{h-*OzUr_Yc&Tc(hPC6h34#Mna5&f)LUB+W2@OgiyGgS{irS&C_dC02Q0?YuB zvt@{TnV9QPqf>v05`zke7Yp)s0@S{jUth3x?_~6ZegG2Un^z$OM?6V;QIkDFgX8)2Si7P1WXCi^3_W zh=+)b%oINcN@T$EJtlgk;p6M;YJ)IbHV3t{)6>+mLW9l6nVAfHpvfxP! z%EIbrd${fyYRIi(=Pn!}@xzuHjdGQ8h2q#3FVUd*VRhN4ece-HtH&^`ovJmdi)1$# z6}^_6%{7tlP!{0gV-^0AmjTBaYb6F!-`s^rGX{6;!DIOK>|HPjHx-atU51FEplshshmht$EIAE;AompiJ9^Lq92(6P)h*_(O9u1; H00000hsRfh delta 744 zcmV2I&SHP)h>@KL7#%4gj-ra8&9(=QXqjVTRM4|afIbUkE-3y&6ca{ro**wl1bSO~>l$eSdqbt)yv&L1@| zyu~c0T9M!h0~g6;`-{m_$&!DW1g(FjmKz;NZhGO9q|g?lA}NNC|8ARYUiMB6(yAUH zNRn;iGjPF;*gJY|n+L^cGC*UvF|2=;5?t)YIkrN> z-PJTI9!<6ABR3q$n5i10kI#cQYPH0;VCwzqbvX*<8<3C}V`^GP^J)VWV9)}`BuNin ztBB608-Olnj{lY6=k-5{GV%2q1_+|w@6v*)q5jZf(y{J!M@1=`?O>E{WDRcaJ&>$X z4|#saoKwii+Rkr~RxW=%QOu$P7%u~70d?!KNjdqRnTnA|^Uh2i2cZI>g`Ij8+Qfe( z*}tCcH92+Y$P2Gq>F{Cpw*(0LQ)H<2&d(&K+Z;Vs+z`;_Vv(GvsD2CnJ>gz5AGv?Qnr*Ow0|QDl(XPV^ ztXVzxYBu~@UpLdc?HYzpYwiqpeD*Nk$mfqsRoB)f;fhDM{`9PH0+W1^3WqO2hw6N1 zb3A(}ZQpmJy%u)vX_r4&2V9#t6qaiJMRo9xHPi+vrgmXEYKxdl#(@A7mK;mRrXJO? zAcZznTQk5#bcHqf!da(_I?j!^+t{WZ&ce*O928u13v%)01g1N ab8uAZKIb*N0ssK{lMMq)2LA#80000-4`bf| diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 6ff7d20799867c4545e0993fc6a7ad16f309fd49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmWIWW@fQxU}E57*i>8)GSO?Rf;tleLoXWxgBk+^LrGC(a$-qxhOU90iJpO8aehvG zYDGbQQAvDaQF2CRS*l)Eaef{r3oAn`149D?gKbAgy73?5!iAU4ZL{W`b2Kkgb-!F| zZ;+Io`g-o&rW;=#u3ox5g8BYO-sXlg`$N^TpTxcBIJ?>PHg>GZt+T)9`?d!KolQpy~5Ii^>WH;BKiA+f|ZrHy-%YtocIMV)esjF&yG zU$&x4Wn03;xc$m`3 z^(U+j76u9F)U*V3EE*kujdduAIDTX>FbpRy&vbE zWUk{)FT5qh@$;m2#joo&w+G@5}EZzrOmosc(C+_8)qIpC^N1cg*p_h$;L5+cdp`@rXIk6-;L)SphM9)C4I6o&o zwW1)us3bnIC^;juELAV7I6se*g_R+efuVtc!M39#-T04j;lfMjwpsJeIhvQLx?irf zH%Q7(eLeSX(~U0=S1;Wj!F>NCZ*#+${h?~vPvTy5oZY&>|IH8Y8R;vyLjJv8_J0f4 zx`HR`cbxsLbb8)@uG}l{z0W*NDP<139Mh}G8^mAMkXT}y(#Acd{@0X0MV)esjF&yG zU$&x4Wn03;xc$m`3 z^(U((0VqIuGjnnVt_pJ{Z4_%PYDC(1(yr$}px9*cA>QU2D z(s?{DAC&y})LLhzapvFTCF@&!jD3#1wXc3%Vk+-^==2uFqMFIxdp8NFOGT^ZJ}J~| zy~ugjbXonTov*^B>r?~Y_9i5y#5hYU_A;K^Jc)Pj+on~G+rBtw-%XWiZ{fJI<;91` zjbGaYcPfAH&Ra8=>+!jDZ`G}ACcav*OYB&^^G?Tw(T^+V&Rbr;#OTT9i}9-;7xCBr zi_;Li%DL~^<--rt_C%|mjeINc$2DY&K+&5;g?)i)TXux*lX=cthy2|t zkiU5M+e4vij~{=s-luun6wNI+rxpkN{}>duBfy)H$(|W^Vgsf(Flb-|QN$&^0B=@c SQe|LZ1i}y?oefO93=9AeRzv9k diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index 573d112093fc3a39ab7b871c1eaf029d14a1a007..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmWIWW@fQxU}E57*i>8)axI?ompT&zLoXWxgBk+^LrGC(a$-qxhOU90iJpO8aehvG zYDGbQQAvDaQF2CRS*l)Eaef{r3oAn`149D?gKbAgy73?5!iAU4ZL{W`b2Kkgb-!F| zZ;+Io`g-o&rW;=#u3ox5g8BYO-sXlg`$N^TpTxcBIJ?>PHg>GZt+T)9`?d!KolQpy~5Ii^>WH;BKiA+f|ZrHy;q`HZ+^MY|93&gVoo z_Z(s`jp}KzpL5Wx>Efv`4p#3LcpGfUWWDw&w{+4}+g`PEOwac{c8fb}uuru9%VFtj zmAZGg9zC3S=6blA;qA=j0WI?H_hndZWZ=0t>uTVRrAB{+B38f9@7oY4f9?E|kYDCy zGwnL-KW|HpU`pEgQrDg#{;0>I=m~A7eXM91pJ{I%ry4J7kCk+-YN21S8`_{42Xu*@&O=i0;@Ul8E zCAa53ziIj8kf7FW%cO~2$Cj_Gt&aKo)q2sL0B=SnduH5;4Vd1*pn(xY5tsA=yjg)s Sm4Sf~2t$B$HZburFaQ9ujXw4O diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 54f03fd985db68a59071bd2bfaf15d7b4e5f8ee3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 zcmWIWW@fQxU}E57*i>8)Vm&2XN|T9!p_h$;L5+cdp`@rXIk6-;L)SphM9)C4I6o&o zwW1)us3bnIC^;juELAV7I6se*g_R+efuVtc!M39#-T04j;lfMjwpsJeIhvQLx?irf zH%Q7(eLeSX(~U0=S1;Wj!F>NCZ*#+${h?~vPvTy5oZY&>|IH8Y8R;vyLjJv8_J0f4 zx`HR`cbxsLbb8)@uG}l{z0W*NDP<139Mh}G8^mAMkXT}y(#Abgl0UEa#kBddE;h3a zHqEHqsLCvV^{@QXu=yR|UPsM2x@JR6JFmwXH;Lvqdv?xy6}Gc+<5}aE;v$B*ZzVem zHFC~!-1Tet=zEuK`|hoq6yG|t%Qvp-(KBl4-B85wes7<}#&eBVr%sAG5`5(L&T}hr z($4HG*HzkD^@lmc{^;|c9w%B_9Bpzkjk+EO=p0#8|3358w<|vj|GDh`SIE2Y+19AZ zn*BFK3;2Kif4Qagmt?onp9mF)rH}qL6dVvQeY%9}%^`;WJ1QB|SKr-v^ppJgZC}+t zKT&eLeDHehd&|nVrZHlXt$$P=*>Jw7pD12v$F+#-TR!L2OMYjP%>Tc&^k;i%&i4KA zqti=eJarfF?YKErSVvYQ%H>hsM8g@37w2>3IN81E+w8d8X}X>BuHC;Ic8b{lShx7B z>v}8Wd~3#iqHFXQn@;7g_%Y#)g8bD7hkd3`czY=B^=#hVdsb}M?tQ+gOONTidswqZ ze2u16x1>2=*DB%GWAEdx3)g9{(E7>v`*RrI=etc_?G+b}ONZVNvpxUNf!}>fzs~C| zcg{a4Kl?sb{bSa(2iH|n+Qe!LYNHY)-T(6*>0}7-W@NHw#+}@NDGm%87(o8)vN-+F2@NI&hF&%X1~mo-hLWPn28IR(2HTE~bmKq9g$pm8+h)x>=V)H0>VCP_ z-XJME_4VAlO*g(gT)lLA1oQomyv+?~_J^uvKZ$$Madzth|2IFpXQZ#-3ik6K%-*NW0(&>5sxpJ?(_dfG9rIb1Ba!ju#ZxDZ3Lt=?-N*niVPqn|L%RcwN`Snmw z@MgQxJ|7N!1Fe5itM|{`&;MoW<%>(U6+Ak5hi9q#Ulr~{tu7sVAIL=tCm!0*lTj6Y zIep=>V^<&V3Y@e;uIk$7;0TTqInLUo-Pw$cc`POU5vu*A?B}@J1xfO)oG?%nF$H{JhU;0v(~w)D4+x22Ek2HWZH zlPY`3bM`~IYL@Ps=XqIg7P(Gaci>z_*eyX0MInRd8#5OkV>nfQfA77}mtCy;j6B0C zH%whCZ8Y)tUd7KG!lz9oE4SS{rd;HG+FR}%L)zcec~2K*_+AlK*_N`@^2O%$4QG$+ ze6N{(qd4a06Pr~j$)TIwEj0sW1l4{%blLu9YvoC{yDKa^nFr?wC>*b~ z(0gI5aXc{4kD+TOpPtd|7(t74tGQ3iCmwgZlYZya(>D8QBHyol_><-}ZRJvyC-%qU zoz5|xV)bG8{=F#2mv{I1hhpkXb58n-aEIyjzq};)CpJkx`Qu~HYb!HVCoVJNjPG1! z6Sv3CFU@fNMdyfA;X7gbby>Ymuexgf{9jr0qyTS5CVOVwsSTLmz@UK8);@vmrUl9`ngFQO~gBk+^LrGC(a$-qxhOU90iJpO8aehvG zYDGbQQAvDaQF2CRS*l)Eaef{r3oAn`149D?gKbAgy73?5!iAU4ZL{W`b2Kkgb-!F| zZ;+Io`g-o&rW;=#u3ox5g8BYO-sXlg`$N^TpTxcBIJ?>PHg>GZt+T)9`?d!KolQpy~5Ii^>WH;BKiA+f|ZrHy-T;j_P`%RcwN`Snmw z@MgQxJ|7N!1Fe5itM|{`&;MoW<%>(U6+Ak5hi9q#Ulr~{tu7sVAIL=tCm!0*lTj6Y zIep=>V^<&V3Y@e;uIk$7;0TTqInLUo-Pw$cc`POUEE@ugcRYRAl)cVzvOv(3zJocl ztTh{&>mIP&`4(Q8ec_hYezlA1v(~3?I2*mW?ZEc9T0WP~Qa z-umuCVpCmr&%J}&r0#v%%B)*h-+9X51xqKgKM|j__4>lLnxK=b^WV50~XHDQfsPAAn_EI8|ESLz}Y zGHHF<9p?)dBI2#*Bz*0;o)$WN^6tyL8N4ie@BO%8F>^=r=UPsEw+XA-BBwp$Qc9T4 zzVzqH=LMZvjuD2z!b00pGB%%HB{Mbi!V_WL3s;S=l%)%MJwEGfxp1m$aO1DMll^6z zB>Jpt{C~`~QC_+DgEYst55GiXIKAuzR=Nwx88c-R${vi}EyKE3;S;e!>{d=Z+VN3S5!V8lh*a}!o)m5@uc+M*zK(!^~#F^K*Ka~H! sJ^lGgfHxzPJu~if3rxCT(7*_yh)cx*-mGjO)r>$G0;IPA^8o_`0GE_zy8r+H diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index 6e82dc4ac03a4bc00ca0905c7844544d0927bb0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 799 zcmWIWW@fQxU}E57*i>8)a`$PdM?>PHg>GZt+T)9`?d!KolQpy~5Ii^>WH;BKiA+f|ZrHy<3k_CLdFQ(0xb+MUc zuxUo+Mpb6{tAFL6hRyHz_Bv|L(KQ=l+Ic*|T%rtFWDo8_ycQ6c;hfeJj~n zsF8D)r1;jEUA}QukDgIW?}j3|YoR9}Su?b+op`w_{r3C{@x+GZhao z997McNIP~*tod+A*|Pubo24r!nR#pr`#5E$^u^WLk@j&fH}q^s;frG5yq2?RZh`zB zTW7y^hL6daTkc+(_55yWVz=Jfh}4Il1>dwzUljN9(e3Z0U-WV&U2{(FT$rh4=_}2$ zW=c<|(@{}Q`|u+@MQXc`s!Tfje4=t#Jfr9ar;oX>-lcq4y7pP!@q5;B1)n&i-z3lc z|4iPpN%Zh9>z_9@7o3@)ntHY1=Fhf`Cv=J)ezwR>zG;3y@{#DZ;0aroZ|j<3b?+s^ z2jSD)@`ZVQ_m@qd60zUTX03_v`7ig6e38myirz0K*J-?;>-w6%iXQ_1*Sww9w?64% z;+E8)@@MsX#rZk$ zsTBqJMJ4fxMadbNWvO~u#rb)hEUXN%3=9nn47ME|>BfJI3m0BGx6PV&&e6O~)%|j< zy+KlT>g&08n{Ir0xO(aK2Ki)18^O*)ow?o8z#>ci#T+yFYb} zZ^Z<>`F+XHYx^v(6Fc)~H5!&1$$z*uujO6vqr9>;^NYGq{(t^(OJ8;QE-BMJ-v52Y zm8ZX`{bioq`f#5FvOY{?tv+v{5;wuQC_HRiU#N)OEiuid@8cgB>UUgSAo&a;$G#W^g{W}eY?Kkn17V}FA=&uc_}4M}=qb>n!=o^{N2 zCGREwJgu)iw>Nm!tAp1{RL^U#iamL%ZKA}3ywn)uoY>$we;kWGd&kE1sOIJ!j=mGw zSgTmVw$%H_(Yoa?OL$+qo1D0Pb+_@Bmyb?vy7)F>hsEqXk$+N~EY-~U|11;}5AbGW lvS-GfWPzy`3>p|g6mbbSz?+o~q?!>3LxA)~U>0Ct004F7VE6z4 diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 90f578719c13a1348565f87d9decc87f25a09d35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1237 zcmWIWW@fQxU}E57U??gG*?TffRFZ{(K~#`|L6?Dnp`^4RCpERApeVJtI5R&_*Feui z&p@v@KPMh2m|s*9pIDTfky)0imsOmf$H~IV5X->Oz`$VJ(UETa$GC9erE}Y?dFLF> z%T(Pj*V-E-Wv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&16ufLH zFw398(%+{1!Rp?c&@Vf$*lhl@=tYf$P4b)989nxMHZX;6JozPl65sN5d(NH_{`x$= zb&`CBwaxeSYKBtbdKyAMzgqAg{2kgad-D4A=>hxfZ^Wm3(%XaD>qfAyuOUfZ%J@7lBK zerGJw`ok@0|FYL+miY0jc5Z2NkuP)Yb~N2k`TaEC{&gQt{A*8tXfYwl zt^dXY-bd?NLWz%0C!EYyb}L_$NN&xgx`E zwl$MaoHo$kW_~odPUpF=M24wmRrE#vea5F>UZ3R4`}XUpN&CL>>E7#@o>et@^2HVQ zLPw-sgw5pZ9=0syvbbkZe)0GuQOW2n-cLU*tk%i+w>l?P{;T~iz4Dtzho|4Suy&~F z{Tj8*O67Q#R@gPRr$?mcb-a^V8~(}3yhHH4=-ze4f6dr~rGmu2sc8P5@=U9GCluDoeMz@g>st_~br7VQ>)_i&w3u|BoMVcDM#kM`X@F4fC%G~<2rz0Z1y z%Iyu7MGI#?>3{Tb-Hk&x`M%C(nDjFsujvby1n2hcpTApwT;A4kca5Zvxbj8*wu{d% z&TLP#3N^`Gekak7d68_OUB{lQk(>EtxaMt6-CzC5>2&;qrqsG>J@m1|YWq(XXVXa50^$GD?(`-Ecr!BDGvh90fCUX0 cG%$iFlFFO_Z&o&tCPpBP2GS|O!i#|c0AW@$5C8xG diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 840f1acc5ce269b783d469239632f8c143995f3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1235 zcmWIWW@fQxU}E57U??gGiCx)#OPqy)K~#`|L6?Dnp`^4RCpERApeVJtI5R&_*Feui z&p@v@KPMh2m|s*9pIDTfky)0imsOmf$H~IV5X->Oz`$VJ(UETa$GC9erE}Y?dFLF> z%T(Pj*V-E-Wv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&16EXzN;y7Sy+DMaho&u z^ZjdUo#VZ7@2z3Hck&sl_2Nr&<|?M#n5nL$y-YapTF=M1b?lss0$sxW20y+if0|({ z{B_ndryr_rQ~tWl?3o^Sw6;C;oyIX$&#IVQi{R=%krEm0b?dKw6Rz5{f4WWhKcyPK zQycEPR35w3_257-*Hq)QS7CwkdrZ3{9$(~Ykg_1t@=6}~6`!!j-}=bUqw|5!M= zNvu45!Br)CuK9~E`*+^y<+Y44KKf~g;moOPOzUD44p?x;m+^a4TE4pf(d(wxCgwYb zPYBl5&9W?7(e+U@|K;bG9ZwFvV%uuI?ezaWOUw#fF7B5L5x;wYy~}1vd0T>w=j~5f zy~q7For?LiJ3r*#6spDI3YbkqKsTaev0$0O5U{7ZcIK`2i>_50!F2Q?>5>^{!B zdg9CbosNr7gxDNA`F^YPnesWF7Q8j9+*h@)d~oJx)n4fbt;@pqy|`ptSQ@x9t?p`= z`_DJqF8lAc-+RcwY}<_I+a?6v4gURB`UrbEgUa`5myKi^9wz)Kd3MLksqj@}`iuFV ztv7cvN!69eewt=~gZ2MwX7QyGhuuXEe5^mqnY>+j!^4SY1)Ge8-c7js=T&sVd2556XP#7MUt%s7yltb* zEqg;q!up|C*wU@<4mF>d+Kuh9iMNG3WKZ1gu_>QpbHiKOm8EF2aYSe6mIrh8-xqut-F*K+ ze9OZwHVvmh{mss=-@fRWaqmL+?>7v6heRGnE}Q!*f1XOv+^6#&DyK(VR?PanJFAC- zDW+ta=2^Ctf0AmRd`-w}zSkY^@P}oR_&&dg=e7@d{wFW}VG|>*CVimPI``vj^WB2y zg)X0Zn^d<+F|zmU;e>*{n(76XOZPsI{;YU8eyy%fkG}JX^|EiKNR?`9b_BKlIsEu< zXOmjSjKeIkIbSFG+;-o}YT;EL`tH2oWa%>}9QYfr{l9vF?M#3-Ba=Nd?lJ~g%z!}y aBZwlY#0l_bWdmtq1j1+_odhhp7#IMJQA0-n diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.10-compact.zip deleted file mode 100644 index 83d5157ef28abc108e161fc39b5422cf996ace80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1275 zcmWIWW@fQxU}E57U@R&KS>olcXV1dGU?<4Hpv%C(P*PfulbTvlP?TC+oSC1eYoKSM zXP{S{pA!!h%r7d5Pb^B#$Sh0M%PP*#<78oFh-F}CU|_KA=twvIV_dlK(z$KcymOA` zWvcF%YwZn^vQuBrz1wu-%fr=6w?{DF|H#|iaAtp~TK1E;7aeD}F7SWz!+S>h3a*fU zua}Gan#x@kmI)N=oc!e6)N2psAMs^55aC_FaRP&z>4pDd6YV?&4XbY*(B|(dG~U*h zC-h9^a>U`c#&>jlR|_Vkz0rKPJbvwm2k#F}-2KDzwMC}7%@&H; zG4G?vjq?$I)7SC^WJ^>%{_$X9p~J7hwO-dGWIykgpI35Fph@bGu1LiD^o>~!)gId& zCWqLSCAz-;#cF?%^W)p&mj#8y8kqeynEYGfyYwBOV@T0P!TAfn?o(eoKY9K;R+Wz% zvnq??|7^($crwjI;Q9sQ*V`rfboKh%H?zF9lt&;o!|K7rVYPp-3ND0o0BOYbsw0nv$gP$d{=aq zS-6z@xO(ueM=s3g#g%hU&HJfwd9~2ayry$CM#o!NClofO?L5pMD8{@pVHol2z z8?Q-CNS%6)qi1*N<`BcEw}<9->&Xb-sg+&J%H7ZMEidM?r=8IhsTaSrW=&5tEcd_H zA?Sp_g9eobA(+Ln?k=eU^0Q z=Xt9{Ck3@i2D2ZV&#kmEOnZ>nA8_*g!OHgE)hZJitRDo-ZR!2GI^`eKv#FORczih z-m>SOmd2~}gw$ND6U>)B7rVYw`2Rbro%;g38JX;vahFBF;s^{H7(oOz`$VJ(UETa$GC9erE}Y?dFLF> z%T(Pj*V-E-Wv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&16YEyc^c?h5Oyt1s(|R&)GmOHG>O!}@U2^V1VV`!g1` zbbn}1%8f`6(d~nZ7jIwE0^{ZatM``YWo-WXU6)Jy`K#`Jx7~($!GUdyb2;8$ zQ@eJr|9HW{M#Hr{|MS;`*7!46`N`}$a%-CLu9p*H6BJp0@u|rY6OI zeQ;|dQ;tmpGgA=n)&&Ml=&DFnOn2;v2@!z+3EBz{GSnR75h?Pp$E|QBk8dXW`e<$5lHd?)m&RP1zpLR?8pXw2#L{;c?XI zMJaj<9*a)=ecNR({&RYoiQPki#{owW?mWNGqOziJHPUH)I v`u~WssZ4-3Ba=Nd?xG4@KL7#%4gl-5WL5?K#Co0u0034Rkr-EhAJ=oe7BTTh4~3dwgEWQe9G%61M?_vOU>yoGunWcpv~-S0K&87L?qJ)`!h08y ztXyePyZ;{@2G)J&$alkZ^<@ORb6skk&b(_o6*h*C<4tR0&~c@dAO4ZF)#5Javn`v_ zT~^FEtNy}b@n_0^)bU0g2}`&=IhxeV@KdMiJoJ1Pi6HQ24N3UC9D8Ez2AY15jrqRe zva(vO{Q{|QIi5fPu+aEU^u|t@*4Y>I6yX_rDqTOg34)ZYm!7ai5YhG^bm3N67!M0* zGkQ>uqU0#t8r@6(#t#a^!7v&GLlIJcqtxp@BUG0xy?7;mb%d;?fNwLELi%I3mX#=4@1Qz6dPciA{NBvGXJ$m8ViK@sJjc3RHwgNe$A8-!=?1M1A! zQqjY9ms(_hdN#3g(HG*dkkgR#K;uP_Adj!pA5&?>>u`nSj zAm?e{w7}5H>i+oX1T^@*th7fEJAijji_Qtf=kOeVzH~}3OS2Pc)<7v!zs4U)$5SU> zQ9o=>OtSudZ@~8Crx5(L`onZ83xa!H|HSR9{Hy{I0eMMo`*q7pC`Be3W1PqNk46yruBefKO#XS)UaLvY93S!`w)jzzB??Lkh z+uhc#T<&vLogj*h&xEX<07oWO@Bm4Mo%E(=v+V^m_j`J}4uxZ3?s{4w*)s~xcyanu ztIyBk3}3KKy%^KYJ943M$k~O|M@4D|CKAJ4t&F|}m9MG|aN^9zy;!e zj9M^<_?8F+pi8dCIUX?+=9m95i0Ke4nY(nk?`33m{7qMnZ6=gR{79pmnc*Uw?tL$VFP8>pmkG5$$lkFWUG{)$9Z6%!vq3=)n%W3{9}cMNy%{Vbk}Z z25a9~Dk~a}tdUSBFJ~SgB^7C4R8;DJwatMp<&c2Fw4(D7X4`2KY*)!IKVm~g@*m1R zKs5|Vu46T&WrV$!b}=_I zqwC)Gil-g=-=(U$gP+@mo3ip39S~ygZt6}t-Y7+uzD0+ro3^mI{err0UB7vM7}4@! ze|;(566Q!y*ArgYwxge8J5$|9!|f=%zfjzcFKodC$3@yF5H35nlB_nZI1l)K{`PdQ zpr@mj4dF4nCYd=&GOKa0I+ zAp&}86;7SbHemFW4mh{e!G!!&6YE>7P!f}D)I-4)0059m*;xPp delta 1403 zcmV->1%&$A42ujHP)h>@KL7#%4gdjia8%+2t`|=Q007q*kr-EhC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!%k@H6GIw98ngDljP2o*5IGSO$5ML zOMkJD07f;?{}z!xNf9x7+Q2Ihig7cyG^UfypIxcJ+Po9^f+;Ym2@-u|0*G@)j>fWk z2tg5#{~gWnjqI6!7`mpw99sufQnXf3JCr=$S><)u9Q*uVNg7U z!Pzgb(bIjKbcGOj6t==K7NZ-PLOx^DR^M1g5Ppgb6R8(jU<9ILXP`9*Q*M}7iJQO$ zVt~Y8Y#RByT@U7zm_K|LG5Uv2GSs!}tm5hF-%S`^lAT_EiX&qNoCc*N|G!@VFViHE z^D9vYZd5+z0uMYni9O~tQPJce30M|miqTT_MM03lMe@zNJ9m8r*=Ty(@R`%VYCYTK zPRRGdV$5v|BJWKzb`O6I9sy0bLACKy5um&9~7LT4)LRu3H=A-;c^aeL} znz4@#IHZApDI#JZ>h+DLnhhOZ89f6zF3j{x;8*w>(LYFIM`Q>+10`O!f}jhUWlc`_ zJcNL8j@=eb@|*(IJ|8b%Vu3TQh??cCYmNqZZXkO+~!cY>i$a4N2bQVoF^ zNi?%#q`V zqv%`&+fH_-To@6)Lfe`uj{C8qkrM`Zo?Pq0%YDA&sxkg4&EKK%?wRALz&~8)^dmz6 zn!(r;)2W5@>l<-4`e#|B>ltX=g!&H%kC`8a4BM3~HiFpVu|k|~ZDt?$UB-Q=R|Tr> zz{=l$5uPy~n=((*p_341mCQZCA$M_u?^w5A1{ofB8mBrSoEn?3JYC3Mp*h*I#Znz4 zjAS|J@_McqIJTbkfa7Um=QjaCcJ9_a9>OYVUY8xcoUMqbXFQnT*nWVa2nH}>c*C7# zxBZRleWRx^!`qqrdy_eP;w!BCgcuDk%hTb1uYgHGDHGj?Cs02sjuKE2J|Xohdm-*i z%iZ_(J=+6YwL!I{o6P~h-pRS^prpSP$7leH<=|XN7MXI}MNaVMJIfNwqV212)rt z{ZYi|x=|qVwrGmmNpUf=@T`QC;T$blk4%9`8ZFBN#K6{vN0$6S6fP&Rr^vPfKYlZr z;n?U;M0`~Wg0#QUmbkrl#s17iN!@DcBL}G=Xasb}knc&m=G_5qMHVe8R@%DtC%tF~ zrn4&RH~x9I777|cRcp;g&zKVdp#rjh-&Gtf(7zGVM97jXU2nrSs3hndn^X7kf|;dIxMwJvEWCC?p3lkL-&#rgM1M`xypbzhsq<`ROTT@R={4 zBGf==p_)!WEvJmsZBIJ$g-XIE*y{Rxn>>n?Mq4WAf#rmw6C z0q$Ura3;q)g$hA4P6<&0v)Ut1ez@XU6O5|%-cwsCLKB#KF&OhAZe+7+J-tRR^mXrW zNElJHw^ZXG)(qnO^!`S+tWH4A1< zv1M72GWBnJqnyQodFLi2Po6COctgmoiBZ$5%*FrsycAZ<;a57to%ZP5(d6Che$2Y9 zw*F|^VO_7&b6#zHWVg^+kVtb5Y@qpFxEG)xN)7D-Rhx zdVA$n?1B>pIr7X}Q}*e)EW8$%WPfJ&#$QYFEi{Dvwf}CN`rw{j{

-9IK>^7hK~$ z#N7A!=H7STvg4+5zL9vLY5vd5*?C#ZgGmW@`4xGjRdUVcq`S8M7wt{44`H8uul|kJ z4*5I%`u9@#b<`(Dtk}Kw)8&)|y}9#BIHo9`=pNK_IJr^p35g$hG>dL)lQcZ zn)Ubnp(opRO>mrY?R)UtyJEq6mOORe9;Lg_x~6SakyvCOcW zhfiX`OZmRZ>)GV}s~6uA-p!Gql5HOrSy9pZ;O6c;Cbp}8+?!AO7x2o2KYcKDZp^&H z+vj_KTmMLV!yGrCeNRu#FFdmJ-@PdhzsYKx@?}k(liQnd?%9Fe8zP)^J#+(h$LXdV zFg8k8SKsh?UX}XsmwPo+RrJy?o_=byY)QissU32+zP)YpX)g9vTXyZtF!S$|t4H}dqWP_uQ`=-PvXXf=?CT>K9sjXjAh%t@9`;K;S=Yw9B^tq{H=F|aL%ix*TqV2 z?sb*b^)z)4V0pA^ull-mZE?4cJMqnK*|9V%tP;+x6J zxWgf@rTF)yP+P^VD|d-!KVx9=mPoQG7h?a#De_3_d-W-8)xV3h*7dJ`Vvx%^{bSX` zBgKtxPW{+D!CYAF=tk{NVv9t!B|TrbWED$Z%+Bk3l)L}^jt`Lt@MdJPXU1L3081J$ cXkY|UBo#UV-mGjOO^iSo4Wv_nr56JO0A<=VLI3~& diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index 6079a1a29e25196a75504d3317d73adee1d87918..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1235 zcmWIWW@fQxU}E57U??gGdH#`^MVy6!K~#`|L6?Dnp`^4RCpERApeVJtI5R&_*Feui z&p@v@KPMh2m|s*9pIDTfky)0imsOmf$H~IV5X->Oz`$VJ(UETa$GC9erE}Y?dFLF> z%T(Pj*V-E-Wv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&16XEyyh@FzM@}GD*M-j$IP-;PXzcD%(d@g5@2?#SUssG z{B7-NwWk&mktJeQQ`h~UeqZvqWAE=Y6Z0LZYR5Os7SlQ{+nxMmcgDv&qqP#e$5j~5 zisk4e3S5}~%}#mm%gqf!bvJhQ#4Cq*%1tnMp~1Ym>}a5jt3S#&sn!-eRdIM&Cpe0R<1kt zzjx8rlw$k)*Ta1#RI`d0FgIFf=YA?)q~5#!=&UBCj~mo2r-VMp@pL!6y8EY9$ebIW zA9Ss|@BUJb<4Q?u2D|wC{43UrpJeCprfxRnZ}gNsv_9d@)>hR^Yt?6Vd1&ms_-FFs zKDGIQhWqvjm29X~otOLh=#-;=vr7)l|5PZ=cjU~>T{eoDf^FLBq6$AImwf+of62`& zu@4hNCbs19eZTzlRzlau349MEmQ0!Z{GqOH-;Vt*>v~*n8>j2?HmK?2;7>J7vPJU-mr1s2KkG&pzY-MUP%Fe!8vj z?X<8@(Gg+OrH6J+xWIL|Tw`lmB%6c!wuyUc*B?!o5pjU$IYZ(<-Ua{NbnjcNUU~5C zgW~8NOskr;7(W}@+4P+<4HC(Z<8|}xs&otLtP-1|aDscSYn95TH&at8zoytE_a-QR zT7If`+tT`JOIy^VuX;^iDrd`+darw3mSglXA7+^?25Y-57ny{49^X@V{risX3!K{$ zUyI6H8C>G2ux~0pnwqix`P%5J*7cbWRi)pgp4-?YVWE07SH)GkM{h%$MfvuxX)P96 z4co#N-n%2s!8J?uqr~&Cmlj2HKIszp;r^q%C7)5>bfW7AX<^SBM%FX-ss%b*%!++_ zfz!hv!SL65zsYW0y)i5jT&d;q7nUXYZx!Oh3a*fU zua}Gan#x@kmI)N=oc!e6)N2psAMs^55aC_FaRP&z>4pDd6YV?&4XbY*(B|(dG-Wnl zo~PCQ$u{o&&6!44MyQTb~@*9^G3sJ6Du( zk-^gPDo*V=QzJPUHdl%nZQJ8!d}T}1!t6Oe8-KGc(lN?#-QZ%llyUu2nJ+DBY~Q}8 zY&$N&@x*!cAHTU0-`zIiuX|(vR-j;jKy9+PY zg-#K!l6vP75vF{MG34N>ipJ#p4dy{}#7k$#?u%NmM3SeH;qcwN-#2ykdCTm(a^e51 zrp+eZOE;OE=!=?}8m)kaI zTC^KH;duQcd_KdBO)iPE=Kh-4HSwIPf9t_c&R$m&9_J-#PKCZdXFc23SMKmk(m1eb zS>%dUdFI}3dU@<$U+ul}(=EEilyPlx>*Ta&c`ZS*IO=?%WRN-H6^8m!B6)>RL_yd?U{cz z(u`4YyOC@!7Ok~bkA()`Z zl795+6oV%-S1@Q@TXMsBtEBO_`P(y_!^7U3cxE$l4veo{#lo8PFM&2RAz+nu*>*$MsKx41s~mYte1_o+h6yH!~e zH}9TznC02$cJtXP=8k!KyUdP1dc^9)!Fx(8Zd%yeD2;oIcc_TytKC@9E)eza+BaK= zdB?Td&K+mwd--bGm%Mq*v#o7BQswQNUamc=?~s+bWZ|;3#*#G$z0U34JiQ~Mc0rl- zbJ2INgLCd}yBGJ%cke~hCxzc`w;yI)o377&RKa`FOiuyHrL%oDOiO;e`{84TTir<# zi`_mtmmYrFrn17{b(X(U{=dSVbw4k>|6uG=;%ix6^6KK+&NnIiDTiMt^euX~;%m(O z>gjq05wDh1D7>$qTk5*t!+QPmr(d?MUhF<~(#NC&tN0ukf_@)RVtaJ%c_z!=vfF*} zo>Q(e-h83+-$AHmSLus$a{GRG3)MW>{9q*ge(x zrJb9)RL|(Mg=n1ba`501JS+Q?E$HBtBTetqqh_!@`hV5QcVB=vBa=Nd?lJ~g%z!}y aBZwlY#0l_bWdmtq1j1+_odhhp7#IL{?KH>$ diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 4bd1f117b18a14a8b5eeacde3353e0520a0909fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1220 zcmWIWW@fQxU}E57U??gGX}b}0i-U!M;j;h(gDwLDLrG~tPHJjJK~ZXPab|v=u7RG3 zo`GI*eoj14Fu$lIKCvh{BeN`3FRM5|kCTO!A(nxmfq}ucqa)q;k8$C`OXs#(^UgV% zm#Mm6uC+Hv%1(Vf_iodTFArBQ-5$Yw|08d6!?G*X@13)?gY z^)%V~m8z$gb;S6dtl~^|V~R22NV+h)@wh_l#!vC=EL`cPU!AYEDNbdXo%`d3*8L;h zB_gsl_E%Z`o~*gNZeNzjv^9@!SwB{kQ)h^ndZTWOSLvymvN%3pLsrczY3tLSPpuK} zm{d3Srtzt~zqu}+sUG)D=kXtUyR}Sk!q1>rjkjY>79FyAU_3=I?Xst0wsP`s!%SY= zjZc@|WdFpk_3D?*nibD(FEe^n8?SQvS)HBzuf7jc@3c(b!y&ttVa1=REXh9ZLN}KQ z{BJSY8NT!a!^va6x;ixXoqk>yXErTv{( z_eeWG+_5L^{Z73Zsy$bp|5RX)d-hFm-8`EWPD;8`kw(i7c>ij=d$e)k29_7|Kg>9F zGV;J7jWttjmdBfA?VpvxlEGKF(x79?_TTG&v8OnDZ@K^YQCHcs=5*dS57pn9+80a` zdHi<4@h2HO`hpEsMEXQFrZ?<DJV!-DYTbZpNmh*VOJ;J@`XL0hmiSjC;jQk}h zSgO99`p_Tvah|}Z{`G;M_I%TLe*RWS=Z!7;vwk(*QMF&1dBHz$!(82qy^qWtbKfWY zX0My~O5l*d)vdz+bsOF*?zENAN>Asg(PI*~5-pzcC2jdHcC`SNG|qR;%Od;o^CU8+ zneg|lJNYu^#hhI?mU{WUHoo|^?dd7mVtpl7qX{3odya3>D=%Efl=9(RNc#k-H=Ny7 z)+Nmsbj`C9zGmC{Y*~`5|NUCpodaiA8HXzNTu{Gomg#R?T{6?jTa}^_#}C$bO*(Z^ zcK%$;n3FSFejIYE%sZ}7@pOUj?xV#LZdS{T1J6GDxTT?H+N*O(`x2(OGjDjXZvA`b zI;VEud*2OvuTQ$Wt-OCh3a*fU zua}Gan#x@kmI)N=oc!e6)N2psAMs^55aC_FaRP&z>4pDd6YV?&4XbY*(B|(dG(Gfu z9nYMk-=+)>;ccI}?;W)C2sohVxX6^zD#Y)!j9|U;i~GxdY8)+@^x;@v6hpzqBMr`f zO6%Fx(l(x}+IsKB9U-|rl}p^&0xBkNH}cwU(-}MK;g-5G1E#NqqU$|F*`0p=KA0e4 zWRYGVo|LELA8-9++hlpxIR^i&!oEkcHt8_hTy%YAR($-snx(o=&x(JVF`N1t9%;@@ zc*0rTwb!72l|=EjFH6GO*Hte*ndWj`HbTp7fp}I%;tXS*S^LYm@7|BpJ90MfQ=u!* zc>|~V#ENgXE}Z@Kp)KG|bywHQYpcqCn*2S&G`Y!{G4O?M(DZ#R|3c=UQi|7EbY`YG z%QD-@k0B9hU(`&d{qtIxY8U!q#celLZ&Mrhm5P&Dcl1=dt4p^mvzN2!@0ib{u*FKr z$oa6kQQ57=CAWJ7iZ^Fo_D-Fj%yrD^hR(U&rrX&KZ5OVdt1(@Bl3L0C`-OR3mR!fS z`AshB-2bKU+CDjd(vO~FX~`u5|cp>GP{BKl8J& z{QgYObqcobd!EwtPpuqV) z*B$}&Q)fPgHU%{F&th+S`9M)xMDnrvj)^PgnaAuoB`dd|`S*&Bo>{LR zI>&xji%D_D3;htUJng$1|GbDX4)A7VvS-F!tN=?EFlb-|Q6v>I0p6@^AWe)w7!9OD Jfu$7#0|0tpA~^s6 diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index d352808e2f6236b523bc0f3170e37d6febc4281d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1306 zcmWIWW@fQxU}E57U??gGd06m1AdZEB;iMn~gDwLDLrG~tPHJjJK~ZXPab|v=u7RG3 zo`GI*eoj14Fu$lIKCvh{BeN`3FRM5|kCTO!A(nxmfq}ucqa)q;k8$C`OXs#(^UgV% zm#Mm6uC+Hv%1(Vf_iodTFArBQ-5$Yw|08d6!0Tq+C8+mQF>5QHAa7$g80n^t)$#)6jor*6u_k6p+ z{j=w3NFaxYjPbb-PMfcvzIR)B+0)w}kDoHzA?TCI+hVGrUR|{Lwc@|*Bl{xGb?xgr zd#p`r7OSMe_l$Vab=_C1(lsx=+4^VE!AF^kH7-2g5+~JqZ~Dz%fp;6ir^N6|a<|1c zUG-ls^5UW^Tf+sREBzZyg&i(0FF5jz?Y-^x1@?xgttBf3K3r?icisNz-jo7`yTPuE z^EEfzKHp?$6B3rDd+_wkxx7aOZCHA`?oOX@PuI`kU-3~hW#6`#`33Dar@KBX=vKJa zzR_dd{}&spj2-sRt5w>!a|zS4dA4&nR+@auWY#~S9)IcH;^ni9qD!q-KD4c_J^1-g zM()QP(PxvSUpLk%tKPnQp~YF5nD9#Cuklx*tH&4GJAJ*NGvkP=S;&Rh zyU}WjHru9$6nL92O~`AjDu_N%TA>thdt0X5-Jn3blKm;dnz|wRoHN|@6uaL4>s#XZ z*C6hJnc-!FbN4K?)C>&TWA{$t+L#`dc|%&>|GdB9LJuaZ1DbQaB&MyBbJT78-Z3k! zcnK%7;>{1DZ1snq*2z~~&3(-Mey58EhiazEDwl8pi)p`R@CW- z_Y(!K-xIHUoNBgA%|ybfj2P)uQa>Mr++jTo~!@dV2P973X|g>1^Ka+#wbL3(ci3{_nM0g+uLIzn@`TzKO8HB|0S(or>w?i7FU$#=sNt5c7zNgF#)uD|8__|=5{Q*X`+ zG+J7g^eusP%l_=wfs-2KS4^H>W~w6=^GimDPk;4>ZAJcv1wOc+)4uxikbTqdUn;jl zrhUFI$$C%qOy`*y*V;B5YGhA(*mftj@XvBx#ZBJqmoAkXB}|xJW!o;evO1zVvd)zu u^WUa>ApzcuO!myUiz;Ag1qKa_Ac~}dE5MtT4Wx+?2%~}YN?-}dzyJUyu~L@+ diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index 5e832d19a57b76611bf1421f3d49ba0cc1d2c0a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1300 zcmb7^eK^wz0LOo9Eo;gmPnQ zS>A@0Vs6H2vXsSiDUv$laHRYH{ z*e0r?-_!r#bAl%4QAPM_y^!UPRi=lL7BZua!6rG^Rg&N2$}-VmaCyoz5!Se}pk8yD}OQ#Z3h`Cw$lP-~^QlBmoY*P04&Ka7ovO}&KKFndxWuvolimD|E0Yd>rZ<^eq_0~% z7t!-md@c4sy2i+YStTO%R+QC+xM(-&WeS!#M5byS3@5NK9ab|%9j&n@kT96_UYjM( zqkDnksiawnDS7vZQPZ9dU!yLqVtQ__6^PW`g?!_Gk~UW#ygsx{|0d6)qT!IoOVa+s zyR?O58^nR@NJ&{cU0hk-=pf`vHbK0vY?j`SVLa~U6+HFFDRZl~6;zf?`nPtOzVNF4 z0J}86*vX9bT8k!(%v%fEV=_4HXn^%0Gg6rI{7zbsVJ`EkIu zEI>&~yW)7{jvmNVHU=&Xo{!h_Fv-*9-=)cY(->{;+v{|_F)5CDtr=gzqs=Shn(DTl zjer{qW?xTK4u8%TXY0r&N=%fqE&M!4OnlheC$OUlhPGcltWS-XLtF&;Xhq@Gi>LQ} zVZtJ(SKPd;f~*RPlpz&XTc@rdzyW0#6=9nk$xLI@6G*W3N2)>S9YNAB4$#Ec9V`M>k&52Oh~CkondH3NvF6g*zB z{LqPmKEdMQyBLS21x^z6tou`W$Ga>rh|Ln2Q9EA+fz2z>X@H?fTskSY1lx|eCK{x5 z6dITkAGP*KgOG9gWY z?LAIZv2orFXGG;tru@Spa?`Zsmj*>D4Zr`$pvBzApln5aM6pc|Ks%>Y@?2@CHlN<;;n zK6SVY7vTff(%%pkOLdYg;sAYdFxxNA=uh^X_S^ay^9Q>7(X`*aoOv;e&oSl2b&i!_ zX-$00P*gg#S^C~wPic?s;yUNbt{ESfH`G+Xb8Z-$<=ed`WDu-dN%Jc126mW5MB00Z z_5^tx))!e{zHYLmN3uJPNx9|U=My!zO%ZtqN7zSdcl&(oFSJfd=_NL-ICN;3ae_U* zoj>v#!+idj)+nZ{HW)J)P~;A^xKVAKy`syk$@1J}3*+NPc|C%)e*B#ynh#Lbb<4}# oVKhoZ(+l+9l3MlDzsc12j{l`BG)hbR`$=Q9M^|}!)qMc)4Z`JC*Z=?k diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index 1e839e566f919321f49783c86304fd5458bd2df9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1275 zcmWIWW@fQxU}E57U@R&K@jsB}Z_mQOU@OSLpv%C(P*PfulbTvlP?TC+oSC1eYoKSM zXP{S{pA!!h%r7d5Pb^B#$Sh0M%PP*#<78oFh-F}C0BY~(NH_jtT)6Pkxoy_GbB^X^ zs_vI-?G2K$Q(w=$+jQg0!_`Z-M=;<2$lKg-W`C$!_LI059cQ;L@PG5edq(;Su8@DP zmy7$F%3T(g2^8y`{N&u!YY*lh@nty>;a$IR0)w0Bh5up`?K}kyt8X39=I<&ryQ>g= zdYA4u_D+@7XJ;taA49lZWHV2=lNIeFE_4u|4Z}I`4iqV4fQ!MmP{*HS7$V- zC~ra1X~V?zg1gt1zg9o4;{N?)bXA*^~y~U*E8D zk&SmoQknTOqaQyOXioFCxpzv4`N+L54lb9ZywX~}``U-hYn61{*TZLiC-FN&zQUqo z^^djhZ4&M|KcRfv#oc#Vo7h(#{IXI-gwMdaa>x3#)%Whs$n95U_igg$Dw=)O%`0N_ zv?#rM7n;_rQT=h^;whnpac=4oE1Y!q^2@n@zQJbnW(RZD*9p(c7O|N+F8TXi)cE99 z{-nK{X0OjExT-8Y?o=nBANyEF{bpI7v7O1m4}Y{c*)>=5&xmn1F&4Tk;>%j|X8pZ{ z3k-b;l`(Zmmkv)2+pqrLc-9&Tg}6A88!r#co&C}=*{(3|xSZUBJ38iKsdJk2`O298 zM~D1$Ts51ww>8~uMJeCjz;M@PqJBK0x+A?&b=?9n*1~Dl)4A?1dh|nU zM(GmKOERHZk`w%zf^@6Dg>KR|E|7`6vTM_$UZw00QRxrz742Kj#aNGW}(^WGoxMcH3uugXQ(z_V?ATUGBDbY?vFHJZbR?`MANwxyDd@C#}3Y+sbtJy72HP@j4ebTL&~R;F#gO`s~{?PPUIT{JuUo z`z9s3KAg++(i*pi>n3?->^dZ0`~1ecz*5hKQ`TXJK1|wkjK#I3=ziRsry6(HZIOyg zp8RyD)XT<~HUgLU(ivlB?F)~4rk?O|W$H3r0soMd|MhOZ-J@<-@zhqqn$d;dc~=I_19eHSFUdT8u`%a9nX?Uld|^Y zZoSCkxgdG7vnFdpUTMp{T6vVz?+fDo*8#p1T2ogpn(xYkyJ7Tc(byBG%*5U MG?4BB7I6#=0Ha_(H2?qr diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index ec96c376cf3a72e539628ff9ace016bab8f8ff0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1790 zcmb7__dnYS1INE2iBolGjjK~yqohS`wMVQYMv1dpp+=}!F=NG{MvbOPs`jW+qT0rY zR(YsZwTe=uf|}7dyQJFadG7b;hv)P8;r;r2{(-lh6(`sL00F-OhhZT|)zYiH#!vwG zco6^;004*x^2FkNqC>DgVPXEkK?+KWYKlsVVZj*G$r+3dM|ons{QM(*6mN$G2XTWT zz)b*11OUDCbhPRZ)zI?s5t!^8&hR=FDy6-; zNs7%4l9uU9+lf|-(ABv33bWC3VLOv}DkqeW?MxK0XHH`FW5P(qj0C!x2N={Gp(Pt_QalJ9C2EAimS^tP?M=Id(skpBCOw)SFGP%!`E$7a^x&n zoszi3nER-fJU5)L*+B5x-_{MxKR+r5wBlT83!laM7{#AVEe;&1W$9?*ibw8Bhu_1$ zBpRc|v<_iYcf!+!8@ljCPzYqJ7vx6rLVxR@$O;m2w!dvTb>DqNsfa#Ed?6KkT!Mhw zf-N>s{?Tuu_dTR;NvJ%*!M1oh7ghz+AA0u6B=8b@3u?PLi@-OuwF7Wf4p6`nbRGGGjTD z*M;4Avac}Rf=$$|1EX8>kGei}WaYu?%)6(+!eXh>S4e^*RkOxVEYdccz!lZQaJ4}7 zZhPm;FpqxE##+>b(KVrvo_vYAz=HR#4k{d!c#zKLZ=Z5g1#^#iO)GHVkubRcyGWZD z>2qzQ7{r_TvBxSOsfb*2<1ad7MCwl=)jO2Z%><9-3P$GV&PRa~Hl*Ii7#G#=Sx4nd zQr6c%kx$ntGY|c3(9XQi@(>>{(fvk3j=LE&uBFh|bi2aJ0pmm|6U-(p9M~nB z*k~tQd+fHgJE46klD2RdVE?sg0P)q24GG|`UJgMw5Cn3TCpf*I&vr>w!Q$(ix=y2R z7Ps8p_)pRVKOqD8#8w*vUwxljttKJ&yYH4nw3)Pp&OF(3vH#K!t-Rxxf$I^KSd-kc zEu}`j!W;VH>#MbGqanD!>Km5tsNb93j%}c-@Ba~Zz-~|gbEZ~CwXmnOD($~VvkJZm z&Czs3FPH5oiuZMhlA*nG2&|;(8F>h9A;1`l>)>Jx-gO3$Nfij~q&OXIG=g&B4TUiU+&9X*-L&wlGR9=hDS@EVXROyyM%eINK7a3Em%9 zZIeHp9T7cLJ7n%AsKq!N7%ozfwA3Gh-kP3&E`P5JSNOq#&jz*SIjm`+l7=@ z_KLE>49l2>nYa4C2!JY-n2+jsx9~MAPCa@t1+}2e(pIWb2vFDv&}V55Qk~1Mx)XY2 zqh!fkl{`t9Lx+Rq^v&OzvY#94If)AbOVq1avh@SY3aK|gxLxB~g|GM$_`J@G@j{c# zgLgRyXqzGD%Fd}0B%A{rAZy#~(#+-+f9g(lI;1nQ_M?j6dZrDufho4sgo=s@z9tL< z4N;f*ja9q-sL4V1-spB#*K8ur!|^8f5^G^aqOXR!>2vAdqxgFtKsG zTitB)-85dvB5oJOw?ljskGlLce^elM8>YdryPi77M-n#8GsY&*{CSL@X8O0+?dM-a zPN!{UwhSNhalVdP#B6<8{9(KH>_aBOf+KZot{P(RQ|v4RVdI?M8Jl>U{H_p^u$|~5 zaL?u;R=d03YTlEE0e82sF>0WR diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 8b12a2088f39ed883c87a88cf2f13ecebcc3236e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1789 zcmb7_={wtr0)>ABZK$O}37r@;V!6>|!cZEeS|e2>cD0lsmLSo@5{!M{Tf11w*u~mv zF&U*&wJVAe)2eMMd6cX5plZ49e7_&=IUnBVoPXfOn}Gyw0Q`U$uuluL!5H9bjf4PT zUJ(G0000D&3DhtmJ&;PI(R?XnBuZ0D6QxO`_`9B+6l#zwf$HJo8$#41(I{lFfFR%k z05Jf7O-b>_9AO?*PES177cCti`@(x+iJ4Y%28dP>mUcUr9Z}Qi09x7+jgJ}YwN>$3 zyT6e#{;a}c^T4dgyI$DlWC5q46r*#D1^oq6t!RvB%^P?mzWmfkW>~7-B%Qf8BI2%w zLUwr_m`G^vAy!YV^j>W9=F?Ztt-NvC!Ws^ZJz>0-J3#xlVS-X#HgNo^Ns4s1X(eh1 zym_m-JmEHPwI9DJ&xzUlUQX7OMi9Y!_SwJW1FVqfXAdL$8}c{ZDsm*m6AW_;%B4dG znNWENtB;058iPBQerxp&WpQ#2S4tF1eR`s+SYTwG_|C&e$$mXsvSC+E>;4vuWO z^gD|~Z<9^W`_~2iKx*5xi;XZTsVR8ejX#Ya*Hu7bwP*X5?*-ioowF7i7J`vFh+jQ< zG4yL4xW;-deaAa%cT^vW4kMJ}$2w7-Q8pUuqDJs;mUi>+l1+3sKEwP#m}xNtD|r`my=y>3p=f3LSMh1#O-G__AkAMq21%{!;;@b z#QGYSy0#vX6l7YONrO$Adv*qoIXRwJ^Mu8ksyTF*iLlfa#EQ6?bRwh-%Esj4W2Z(u z?8853)&2NZS5LOlpj2{PmBvpJYuH9#W)s5pZ>IVTK=LZ0r21DcLM;t{E9YU2hl}^Qad-}))KJ&2@NDtZXrdoy-vk9@vIlGP23tmhXzzcLshfaW9=j$J3`#aD0O z>UG**#kTJS$~^g5Gwffz_iK{_7CRe98Pm6=17tBJQwIH(wOvy<6$_=FX_C2x7HCIw zF};oyad$)i!BKhu3#`y_J)2r0T5wax$$ut)?y<;wb=9rRBdcFMgV&nfhGI1J!!EFq zI^bs)J>D%wRu1{kn3^(bcjhmsDVOOU?RkCrrGxz-@ z)4X98Y2GK7wwqw#)8Y@V$lKZdS*0W|PARtiHaA)L@zI2Xk7$`WPb~OnbV@#vChh?y zkdK%BsC4i{A-tI7Hw^1bWtP%RZ@_-obNjpjbx7ve}tm zrC+08ud@UGm@&pHnw~q*UTEPvk^BS7LxOTxo_~y<55)GB&Pr^grlE?QInf`BTVYIR zd+3c*$MuRp>P{ZPo|wUu0t6W-MKr#G-a9mdQ?8{RX*&zR@dHBoC`roEx#G6kBBxB}VY_vM$+c`8>5-P3g;MW4r` zu0pY0qx65{v;?m`s&Z}jN;o-SXzP)Gl}K_NkgND|XsV`5jhnT~u-toM>>4?`($ot9 zbt(g)DaXsa-DoCl7$W(l{4ezON+8pC@@2x5zgDg4u@c9(H$1C&BWlbs)`_}l?w%{H zCzgt%F;zZz9Ui&0$Xzxygc5X>bCOe!6OW*8*`#*3=k&6(_R4qrDf6AR(dDy8|XwnRt<=)*&?}Knv z+7`|&rmn1Ca4=DDnm0!$+aDMc%4@9MJx@)`i_3gb9nhX&J!A0+r(CgsOYJ?(Q?zi> za?OQHphkWuB8%`shp`zR&}%Yd-Cewvu}1NX8`&ae{oV&*oAiHR;9W#Y=2rh^QFt2J zqD|&s$xjV_ND}$11WR2sI)^!3DSJ?hH{;{K0s7xIIup`AiQ)S%{x3J-%>>W11^|3# Kbvk3lKkGjj13HZW diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.10-compact.zip deleted file mode 100644 index b82c5ca677ab22dda1a859802bdc5e5f79f63e26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1772 zcmb7_`9IT-1IOR9Nh~A!@X65}WsWv8)pF0Z_zXF=;^Q`&bJ*NRMk7Lq3T1AV6eS~9 zj`)zHkh4C85AuoO^T9%`zP_K|KR zTmgUq00yb46zy-?p`~LZ96izdy;Q$bFHR(9+RGRs>Y%M>pZwVqTiN6Y{`i;ZHO9~j zl1jj$+e+$iW68y}T|z#EEkgW0W2vFU!14{i?@y?f)Wp{1_2!7pHyBF~9D9OKf5>|U z^-@D4o3HHR#n18(fBdlf^qy<;*74~%JSv{`l#EJ^`4;2L>AAFkZ-0gYmBLU*FWckm zo#weKJ7~%=>d^iX|AL;@cq?-JG?+yS?#$y-2@C}?JWHftC{XBvYR?2^PCjV*{)QA^ zvRZtw?66kaChgsH>1T){z4Ovw0m-#-0imy>!S4@zT;o^izKY&C2D#ytJY3~MQ#Q_M z*cEC{!*m$y6hcyQX)RZa^pXtQn1dFTk@Vg;i<)|om^#+iCWX&oluf8x<7i;4?|Z39 zUKf($Z1%!jiWe!UYO+|eWGz|q$}CqAE0NOMB^@W1HQI&T9z33`d zIuA|l49m!~@|EJ>D9dVj4VeEeTG^_vxagyG%m2H(%+BL8Tii!u{N&}k-YI9qxSS}v zT@(KdF&W)=gSub1(Aq%wvhTy2#ZjVl?{vI#g?@|JjxE2^|)3mD2kDK2H&(*!PkmS4FFG!XpYQZD~DN!JkjSArrorFw=utngsA5%gv zXgwfTvgotlJ90dItUSQWl+|X!?i?g$toZ9Yh6OkKc7(NiC$kkVN!K*Y*t=-X2A^X^ z=s-iu7{HrhovLd4;zv#QDay{RrDK0?R%f;L!})5ZZ^tXypyz9QKZDd5`5tUxEWAP{ z-(WUKfZ1)MJ`uvR7n4Z>QdRVsH(!?>abJ0j{3&foqs^mNKOc9Jw0C>2s5*UfCQjc| zU}t)yt2R4wnY!zg_5335tP=8?MpU&NN2cGgtDt4$xVoe<3St?>5F@@D&LbN(xEu0r zm1Ch&x*gx9Fh%vN{Y&enaSqnhHr)sFtQ$4#;Oj+f4~k6+&Y$g;)CwJ08BarQMPAnY z+H+m2>PM)FI_Z4A-sP)N4`K*7QzJU5x!S{f*WEYxO`(mBrab8`HrA?q6%&!w?G=Y^&_9VDH<~X-Ud2(0|JfVg4v2)Ej z#(FCpT?@saW`C8qk@nNq?lN`9Wo#+uVaP3oa(%8c?bGe$m@d5b(X}h*#tz>UiP5Fq zexCPT%tCqOXVVqlF5#JZE(&6<-#gIjfu&BD zY@rpNkPQ!_%Oft_6F~7a+Wk^AGxuvp!(Jq^FJ9>y^1Sf=M0-xW&Si}9`D!}fmz*| zKo!Z=`Pe8WM+7|RFXlB)dCDsHk18ZOgAg+b8NcMIAtg>ryK_-PNJ?;h`JUtgTu(%eez z0}ml_wNGN=^zg!SPIl%=R)f200-lgsLB(j3_#HtiQd`DXek!Z`C2c%C+;n~aLle)d zj_hI4l-zy_^G4Gaff!U_Z1f7bs1=`S#4 diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index 34a12a2c6bc6f76462406fb8a4ff52793e3c8476..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1812 zcmb7__dnYS1INEfXvC<}kXq$p#-3GIYE(p|#syJTdxYAf8ar3Jl%`EpwPGDbTv40W zh@Q4;)hK5kQjr>cQBtk-c<%S-hv)P8;r;r2{(-k04#H&&fPvG%kH|2Gk_VH{*G>Td zN)`ar006iZ;u#U+OA3qdjf@Nk4N=on*Hzb4j|>fRKRH7qqTD?ry!`{BebsM9hK9hn zxB*uHAOnC=Mg~#mKqtIpbg21~z_Y(X0_3~Sr{2ShUskN;>(Hxb_r{gCT!SoZ2_%yT zx*Qb(nQp5YgH6S@>wCC-VkNJ`(cf4VBw7E^2r_$Kskl0>miiY(aIwJ@@g81pkwxe9 z^Le2()mr`bEY9e06qk>GTg@;GquIP43#bRES%3IXBLNAC%)qy-Ke>2PQy^_= zSD~iq=&py4vbIaq8M;}%{Z7DD<_vBjON6y3bkB=bbK@~_{u4C@oQbzAeR4=;-&2W^ zZV4KNg52KT?3TkI_xcg0%6bsq~ao1!Ibgxtf=7!H%}9E7zm$13>HTVfTj}@p+hm#~rX+ zoxNIBrpUvai`f`jkWgt~eEjwfp%fWbSN80o3f^Tvs-?nKBKNbzuP8lZt8Ub3O>t}R zF-i>MJ<@eU=%?1!F5;zmN$f+Z8+H40o^(RY%*2A|2r-cvz}Z;t-L7blA8%JyRk63N zrO!CM!x*r=-*1LTAM`Lt_qkwU{8KC9@Ku*>na7=m9=#p)1i@duzm$EIJx0&#h-U3#hVpZR`lZFZh^|ZU zpAMQY{tF(a@m`o9bgq{^z|G6Mi6e(N-FV9)YEf*PjUUbyUs; zkb2|X{RWVsX`-;tme9@f|o7-3oj`WLuf@$4db3I{6SwxG(%K)#~PY+@xa|UJXgtLtZx}5f|Pm$vAPf_gjpQPmj z0RmdmgrvavDqJ+=`DRjiwkRdZl%*59ADk5Twh$>AgWh4bC@#>N1eE1%V z(4f_jTI%x+W`jf6t!2_UtR3e4*acy)XjKKLq2Yn~Whx`y1=h_w>R<+-i%u^j&a za-onXS~4_L;%yfecGhU;xhL%`1EnQW3n4n`R19oMB`uA`I9nv@tEhMlEq!9FSA18j zGMm4DKF6nzvHvHJU6UaZyv*8<>(n^sb)JIrN{775)HAv?_YwnLuymZ~zMgi9h11S} z8^uhdA68UDm@IR4zTAm)&wBlL zyyyf9F96C-_{c98DYj`VrJe;r)0?9LHXlip=iJ8EGf&M%4NSET>41)@KL7#%4gl`8WL7rh>SE>x003t;kr-EhAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH2V+ota1kNI7|)PWxV5}>6{8rq+JJ3L zj#Jg6!V!*gt}~@67)V8dCLihde}>3(gZ7>6gAswBf7-RLSw^MoyS5MwY@%}vBLHD1yMyVeV|#}Bs|epPhyme+J?RUvpumX)&-WN&D@AmRCT{x`MJqL#G2{vs7HZRIjC0UsBb+ z6rT}wCEIO@hQ+O6W5(qDh(fgyXUCssDt};am+EGY^sC^a3qqS`QAkwysX|&)xu4(u zq&HD)v!d63#IW=KQ;>$Df&5(&;Vdj<%?ugNwiAbtl@fW^0u`pMG9Zkqxrr+6d!xTu z)a4Ds!^b0~lg=@#%LVHK!dkwgQ(DFx|5Z&HFY%aAOe}i7u z6Rpumx3~%suY0LDgwRjK=)DfL{DU*Y?9oC%`6PrprsC=NM}4!D`0ye$SRF;Nrm?Vc z#B@4|QWm}(;jdXqFQUmigCbPSs^BA*33UC5J>?nkcBnEtLrfPkavM#x%Mq_@oG5AX zS3JCb@Yv^*o>;D_1zS*EZL!X%SGUv4iX=_>PlSh|UjK|Ek_KNQ7J!$LTczuMduvjY zw45YC+<(0BH)fpI$L>BEx$^5OfrtAOh7v8*L-B}c;L4rJda<7!GX$=JuuAI*tV%kN zf*b1KKE9n-wv}e3)9FKb;Qq9k*0TWuZJDTlE|&X%g@cRdHgzpSTdI2kd{m>1_36E9 z__`&ZufmWr!-4fG5I*rt;?Y!j(ByR)$+5-(lmMj(S$=qzL}>;lPT9+Yxc5Z5b~f>5 z;PD&r<_&=`(5W`}NY$1UJ25^|(|XWBYs};)S9yJRwN^*4qNq(uC}g={O8KG!yiJLJ zX4L8Gbhy{(bUsvAGlxykYB-wCU0MN|R3wt;W$x+{3Lfe7%p*67I7|zWrlfSu!F**3 zfPHxi)y8z1!!)wsxA6nZSrK_`<3RbhFJS)6o#TF}13^=XP9UV+@ybTE6P_;P(& z>Mw^|nYNMW7)xc_oqH5x&x{>^a7jnBhJN0{I!){-w-D$eIIALSF6RzDH1ouN8UhoO zpgp*AG<(AE{ZMo#Tcku-Q3u;fE)9XR$DQlwzeo^(Q{4+El#McWVi%C0kJj+pLb0_b zfXhmYh?-D~vE8};1|^_+Ayye-MlIdB;e);5OxYk4q(B|~g2-0kBoY3@t+(@a_Lk*L z;3ASsGs4C5<1!vH$F3q9GOT5Pe;}@!q_zL7aRLE%+ffBarg%EOWR&fwiDe|ot2%wO zzl*b|sNWN+h_-k)Dz=&+N{!qf5Rwdg$z7SlPw_W(;iC#xraB#72ZH{Qkz zcyNi%q(jZ@%EeMg9X1x0&>POcuQ*pVDSa&?EWOFmLRrY6i-^P#CiLLeNGe912m~K& zm&?n;SGFnt`3YozcC*CKzR<8e-$dl)gKuq$=|YU)=dW+rQAu56dR3l-@RdV0MNSMS zYA>%v0*blQ#zs=z^}~&SA^5SpLK0EK!3du3WQX6MOl3Kv>HG^|#uj!~bNJJ+{_yen z<_$&27xji}@>${^VG-){`OUPz`T?eUQrVNHqCU@okd@R<&j0!B z@W5UlfN8#9@j6cO7}GvXeHT-bpRFF8aLd#6oyK=FDB;8>vd*!%}d^8J_Yf48J0{WWQT zWSZJ@G^!xawJ-30*|+4QG^-f$fx|ojAU}&b-<`-;1y`X2L*QbgPj|@sx`oCaGE<=HlZ@XD;rB?PKX&H zyW&5zk$WFa?=$p1C7hAw3nz*rcw&`KwKJyc?Yly7%0n#~+*4L${H15PTo%``O7m)M z9LA?wX^Z=)|Mh^U#!yQE0zU&k00ICG0PeM9RyO47V&(?`0B1Inp$Ab0F$e$v007RB B4LJY+ delta 1907 zcmV-(2aNcl5%>=qP)h>@KL7#%4gmRca8!JcK6*R{001p8001qMTnI3cOC*0MuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2tNh>0NH~l>W+#V>Ps(Y`L z#gPx;vq2Zh6tPB&tM(o!Y)7wFRA#?E?49^EAq&SpS_d`xb>T>O544Ce0=^B|m?HM@?~SVblr~ zxFSkHWLpZPt+4`PMbr#?voR9n-%n(gt|IlM)n49|E?sPlK=KE{Lzx_1Cz7Y9_)eo^ zn@?4&52H`SQq}@_%dhTGzB2`A*^XV0Vu|!^fe(L+=96{^zJ^Bbh~Kxev!JeCR4ie8hc3B%=zX|DgT$777FDYF z=z`;p1@7hkR`9)BY~yX!j1;K7l#0e}NRE|PT*l1wiW}5(fOzhFuiCd>F*ABFsHMxcUA7FmP zEJIlb=G(AoKNrVA3vG$1^3dBOvC1%h>JW}rpHfiMmXLbVi@q`w0n(1Z&H+%W2d z<`-l#GXfBWOW1#EDsd;e@@a3xS2rFZ_Gn(?b(5+@+e8R;6#%y$Vxmm$JlQdqe&|Fd zNSc(UaN32i7#GjNM|L@)tobTPveJ5j-bE_ukrh)3BGU^}e{wZ^9Q|*u+zZ3huD0N8 z&>|9&u*NyXxG@vU{)R0t*dGvYtLKhKXNW*hCF3maV)%b?b4@8@oT1VdOKo>7Aky!N zAqD04SS;l#rP3=_EC5bI-$Cyw9pD@to>|G#>LG#m$UDeSzjKml+{Bs;SZbjX2=^)h z9;(f+t?rre!i?mxc%a#C$Qfy;)zG7W{WrWA%2W|o8*B2>$6KvvYxdBnO#3Tpn%z3Y zxV+W)hsA%h0}aDji3@d5k1H=YOa$8pFZTebZ7?$FTHXbaff{uW{shWHZK7~QRO64@ zpI|HaC*w}6H?O%MO4h(pj$w@arfySWi>NuRlW>ES+$XUj<(`e zm|uV03l-L*&bzecS6*AmU+ZDNhH0KK(R$jJ^L%COy19hx1In;aZ-bP?;;)y<${9>1 z@6@%;MO2A*gTl{LsMOigB*y36#YsEB(pnV?Tu7!D73p{sOr)H%uwTmaYvpqjl0Iyy zg5xO8q5ZD_WK-D4utc)3%G-WG9w@gL?sdJ+yCh<&N3FSrh~zketao^XdC{kx@ZNvV4F1 zbd*2F*O7pbtBN;WvJF96Z1#7`pw`ICBZuIH z1x;A-yW&~;6}_2YE#Pj(==<`NDHj&{`WfB<$s$01ZZMQV;2@ohd$rtZQd4pwqZ!eg zrM+UbeCZlzgtkz$tJY^RS-$M(wi$m>{{m$bxr%i=`cO%DfjuYI4rx_)KOaPW5Ot zu5f({7+h-4Z>YC^!$2tj?U-pwzqeO28n}2z`l7T}W2oFE~`NN@^pcJ~N&Rq-VI`Eqk`0`>q9 z1ps=9iEiqL>i$Jz!;QN9k9&MQ;GI(ODVDIS7oYLcHEWi;!%CZM*yq0U$3_iyTFH4a z9hMS@8VW5~yO?)pYvzHHS_HSS$t1@($D23I`Gnz^zB2*Zj z=DaK7P7sdUIKh1FvcYro`9G29d=-#8F>Lmt5b5|(4XSClAk4L@l31;uPz&Z7ddIDt zi!!{1Ww^ck=&3}X9#Ie(=CCgvkQ-W2&GqpC;D{8soei#E4o z%`+68lOG#B)bkD}xQD|67@}Mp?J|>Ed9U~nj(Y0Pt2tXT$o_)Dz28pWf6VZD7JZj_ zPQG0{15Y=B@A`Sy3eUNhd|Dbu35J^#Jx}2(Jh36CG|jvBB>2Ap&}TG}Z;i_XD3U$s z8Cmx**2iVrRic!uY+9q69=3HO#;7&@%Jdf3G$!G-Iyo$Q$1dUO=5)|h}gP07RW85hz2?aqTp?@9RkNyHSPomt1DC!&O$*60Xt6yP@%144L zekL3AN-O#IIj805D|P9>zI0~SsaH2xV2m_XNh2@EsCDxs)|0UzHC27wm=#mXJQszJ zh(9w&ovaE#@qzh-@bwbJ1c^L0?gbN55+z5vM{@JI>T#QW&!~=WzKF?V;8Qfm$4cm= zASDGKo^{D^L{K;}=hLNmAAdHT&0nN4`00q!@~K+Ssd#F^w^*F#*=-4?^P=3%S=WQ< zFT%33bluN&Bx0ih(ZaRjR|uLv)HU7gRvsvvhlat;J!~ghJ*ar&L28>9QOF>k=dc|iD6yrZdl}%_vS_jaO?5|MgDiX-dT&tyqFnxlk`mu%{hF) z!NI3z@rUi%q!KA)Q@soyerFa@Ob#wSv}4difR=EDe8l0(cljNO)Fy(Lr={*cZ&R&5 z$U0Jun^C#~UEowBV~v_7w6Q$*3e^poo!qTxFjcBt1AF>u!0Z8f^}}ccEr!oy3&Ft$ z$T}E;VvW`Vu-{x4W37<9uf%~C{=jRB{*09D-K{^j1zt-M%IT{ds{n14oG*)m)s=Lxc) zvE!$sPDh#6^sBg`aAJ)L^=b2zDlw?|T$R1AJ>_U=#vcCuY8bc1Hhu2NX4~H(Qm7U2 zy2&U3XURmdX3oke;jP$ljQvd5^GKc1H?;%aYrG)lRCVOBd&-KW^XMq#x?lUqI%81C zIlj#jX50y?+ zZgf+{6kL&BR^3qKvbQv{PRR{bG}`Gc-OrN#ytL1jj#vo_z$~~HLtebLVhGt|Wc9t1y$Pu~5ohvuhQf5WQ zog;TfnlSEmMKzz+NZ9O8oP^?Iii&A0$yQU(B^ z002D1+zAf%4GRkP#o| zFo=u0r}16mLGjoSqa<9kUZ(_O}y=vBein9B6e=3|RE| zCvLEz=;rF7b@si=Gxk3}TV9eSYX2|*O-U&gRpVb}bf@yqy*3f=6R9&xtl979y{im| zHu@c!325#^7EbJH3pQ3J6BoGWhh5hVjC%*_bKjpoR15q|BP6c9iXKpkmI+g^D2Dff zSFe{AkZ!CjbRbtH>BN0j0R|=t@dfYy_SBpVG=~xzQX)F4$g5sOX#)HtEcZs#E1agI)S8n;;_>t{8a33s`!ec$X_u_WawwL5Fs!Z+IB5>m_;P>W2 z{)FfMv9eO&KzR{DjQ(O9^{E>BtD;9>3;ipWF-7o1!{1UJu~*e<7f)9F1eQ1v-{&YG z*q=Ho-VlmK)AjEM$v(7EW*q4WMCkcpHpE;}p(k3BVMz!$k<5IK;J5bGbzgtqM7<&? zYCC(j&=hQf8}Di*D%7lszC5gnlB{5M);$VH7TcxbQ=3S_8J^AbBdPe}>6tm9eU3c> zW1*Q(T5A?*>hZ8QRNWQ11Qiq6v*(iI$VaH8=VeH}(HSE#^{VRO)@v@yBf3{3>+%P$ zSr)gY3V{z6QY!GQ_Hq11iU~+d5JP>PW|X!CxY~!?{BqrmyqTGtB#4sVa`XZcss^HB z!579E?_AX-zAaz0+}4X?`B_10jG)KMDDQ)dayMPvo?UzG7X%G~Z%$sI4jC^3z0R!L zi_~_N7W;goV_|%jA~}uJVr8-`Ei=QTFDo6CqBHre=6yyA#fLOozr->rzNU z56a^oeFmxJOvSqQevnN(cA6h~YEaK7{V~0u?&b?e7N_!!=~%Xkx~=xiK!L$E3ncJT zlT}LF<34htyjBU zi7Az25yHak`6H))MyO}XTHV0zIxJ|D1YPRA1p7bm-DYT!jv1R6FHhJQ~cIo8uN4eiG`a*%}QZGMz~(k?vjP zynULL^h%6DOkx>g#ijsw(lQWPKKMc{Z{HTB6h5yG9-cUt>Zb_g`F{_KWT%WVcK6-9 zW{Te(2xgUC4jPZJ{>JR_iT9oz*1ffwNeR>m`CZkyAyJ;ns8fa)*eWp}yZ8n@m-d^u zn=rA#9^bWAINX&kBqRPcCH>h~P-89!%#$fDf`;|x^4P>DRTS}iwJ?-Mz*w%%U-2KL z=e3cJs-^YOD6IrTCAE1WbgmGM!5bFKcht#+=!}8orPSGoQA`~gw^{SoBD)jNx27?4 zWCmz4m&X{gQ(AtTn_#NN-9X!Buq^vaV&sH*RDGYxw4MDnw7UGjX6wh&+7S20%+2?e zM=;LM68Dtx@lD)wTz5YqOP8dfU+Ia#QskA^Ce59of7}+jtE2^g=ySB9)?hEN?8!P+ zqO8CkSn-$!`bmpR66Lzp;}3z=j31B+9MYPN-3au*m2_&Qe?w&ZFa9qc8thYC=(c diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index aa19c491df7bac79365e08f131212702111cd7e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1793 zcmb7_`9IT-1IOQU=2k7_K61^OWMMufV$x^iELR^nGLide z&W#*twa6682gS!wl$`VN{rvv@;q!X^@O->p|G?7)&dYZm-~q&et*~IEtTAf9MgRcV zDgdAd06;|G)zBE9=-^PFurNYUpq`<=vA&^xSWp1=@C*tK$6gJ^`4J+0^!>wv0)_ba z0So{T0l*?P6@O;$OvoeFs}^&y!u~*ldbeV7#&5E}Xx525KU=>Ml5-g7Z^w7Jxovjxw`R|zAzllD5QMCiT+@06leX?1K}c7LYCY@?<05V-zQI(2hc z#9P}?ug!PslH}P<&A9_)KwN&$fL+tvDwzomH92yvT4_H=$=gJd=tKt;JIR`KN$8Ui zjh^tWoW5HEWnFfZ1}2*y>V_ykUd`zjttrX9Xx_j7M51OSy63g3;WHY^=rT7^?NfDp zMSLxaB3pgXQy-__ac1TZjV;cr=2TTLn*2e_exrIfL$Dpu;|P=U|K^HzQkQkNEa^$! z#O2Nq=w6A*!w!5NQ;#L6Mo`r_of`*i)BrLDF=cb%HExjSdsO3x`pZEx_r-OO zHBN%r#>hFo@q@JRnEGQ!olq8Jni%$ie>L^aUDLkt{fI5;RRX+F8PiLm{YhDHd=EP> zHEW``3HlJ)(Ry>Dqgn36*Y5P707g8ewEcD;l$_Ad*IYhM#5fbDNn+F(Z`(H61TW_c zUg}YV59r|&RUzRC0qo;OMm9%dGrh-Jkq+dto`Y_85c}m>a8qy3_TbnYdQLp?RR8={ z4ck*u{lj#w{WPzsFdKuPG=H3~Z`4I%pIf|r=>S(j*ShI2U12%)yKUn*ehM1{)NEHY zhTU-3IBK|K?>t*8-TTR1W#@(1O=Kxo{CwLV(FQtBSGMi!xe{uBtw{3Ty8UgNaeHAP z?V{K_>*b%*kzi{XjmK10?kjSUxXtf@ox{|LY@z%E6J@awEdA87tHaP(CU`s#G{*lz zZ!UD<^w$D&eC@tXSjzR8O86p33=QV8z`E^|4JU__Cbl86JSMEMC1dZTtn4yO70Swf z2i+pba!Kp|`WkAznu;pcDH>=4wRbj%HZHk0Y#JnjDiv&t@l}+#HT~I&pG!qTqTAKz znG~fB2AW0xsi%U@dNY!l_9=MA=SCh9n)tc>T5pU9O6BzI-^Xk`?aCDt$k3M8rd#8^ zA0e)=RpB4^1{Jeid|Z@ac7IaVQi%QrJA+t-kX8(PV6=NfTCi_%F)_6=`gu^vGu>># zc8-Hz=GBmzcM#k;xI*N|V84KPkFyy>tI-$$F^YWXx>rA@=AGo>OX8f1_z|ds(N{W= zP(r(9d%qFkCX*rOl(n1bn^B77&0SUBcXRG7?1f9hWR7hZFYO=HNIyuA;l1n<2B?xSoOdmxa*i~9p;yI`SRnU zcrZJ35ylV}b+!pt6inPz2rKbA`Is_YVh zEd$zhyiiy|0ha<_xZy&@fmxQ>y!rk<}? zgtu7Umx?s@?0mXLJ3xQu_EB?o4Sa1MJtpL7+9e9rt-lko(4$91qAa73>o9NFQ0Nev zq7`kzXkKx9#4ib!q-I{R*qt$>jgthdq!>z@V)(a3f{<35wxqHeV=wDWib~2kd}~2E zwzSyE&Szfj?Y-W(JC@w!MWwd8qC+ju%9Lq)8efW+X?s!}`3;KHT3=3U`oounR@%l# z78~eL6^3rvi&W8SfgZO?xYM_wCwz+_+YV(@zoK^;_x~H|P)h%X2>KuXlb>AR R{D*1-0MKF4hot8Zk>~Q`I!BS}}_>Rm9{E*`tmXU8*4m}l zZ1E&-!t`~TZtvKEjkmPkAA9_8VO7@dg)3vSyHMNo+7gSooq2KEApT}~_JB~<@Rzlc zxi0$~5X@o}n6h|?7r{LYMS!rOJmgVTmpF93qK$2|X0$F|)Vyg^@a@7md0G z=O8Ueg6}st>Ejjy?B&@j6sAI49b}^R7nF_>MUHL1NnkE~PT_j~tY;-Ab^K)X^nECQ`_vTqf3UkO6v%Jg69U8-vOoKq?&HT}lh?^OF$SPn5ra z)Mi1`!zS80ekV?x&e5j!gUGrtU!vriXhN9@##Y`p;~{Xp5mZpSpm!@F;T2!SN9MVt z>(A@SPX(>%O9&^EC%d}|4f~2@rU&8b(|ITXKZYj>}^Y}5o^rRPr^>RwddnuBy{y@%_ zIlXjG)qHQ=YCP9Kx+ENxC1qqNJ!0|Rk}DSNk8D?Tcj?B>Ca?PWzqoFkQdLC{yr6s`!h6QH z!(Y009GeNn6DfJI=b&yih`2egODe^}aWUQXS$(+WN0r9xW73`G_}2JLPzty!Jtqnt z$vC5u!8sm)6}2$4qrWVcdqF?G^O&oplDy@-n~)VB6l$E`y)k8J&?iQmiP-@aOJfxdZN$@TW4LwVI&_=0m^c8{mL zjOcl7y;@jcMg24VM&Asj(^m!k&Daoy1!qRfv+zUV=eu?@^r&{yzQylOmC)TXximfE1N-5Fq(gBnz``?I+0ErdO%o-(?vmcwyun&42Vg^7^|AqM0=_;d{RX()-O} z_8*;ci^n*TNI2?s{?0BiU-y1?fJq0ZewUie#MZDQv{jUnMO&zIky!jO+Y{`;_Po{( zCa6tz#ld*byx-=uQc?4O_+)84%IsEyAdyrAuI9lMHwv>}py=e+2VPa(PjwvBDwjA; z1%KbLw(tlM%pzyt^5b_8*k=C78XaHEfuulmV{CFtpo{%xY{@}RK~JlVRH)r3~5AXB*@clf`Kk#)$^9x)9@Bt(M$HX{{!8$zB8Uz58 zd<_8T0sw$Sd>|nuG&znCN+d?c;&t^Ah6sHGF*e%&{EQ_e_y-b#BO;SR5mCfgyoi7x zz!w0>0st&2lyHMHgZS#%>4)ax6{Gk__#iarp1a~z^;R&`sC{dMRM+jr|8ifPoHaFw zRlCjhdrx`BsB+mpMwf-(7sY&eaZ_6*>&j*q;4*NM%~Q^-!cW8liY)+9^<&l5SdvgKb;Yjh9cwD{~j&!XQ?%vzai#;BvlcVA3@ zM92FXCz$_T)fzqVQsO2KUBAf}+*%tyHOQc(Gdz?Ulu^Ty7WoL&1aGc>MYZ3X(4Q*T z!Bt`6)O1~DDHo}gK%vA0>#J_EW$jq*w|9PuyDgOf3G#aQPj?PSWSZicm%iTBzWn2$ z=uV`2>J&l^#z`vKJY0-z8O}PL`=Jeyn5u3Kw-4}~I@p~l`^7E3NWFfJ3#;LOv{IhS z$azy@I%N1>i4VQkoU;tlR0cOK7%KO=_?;$lYg_R)r#R*DpY7$`-V}U#j&9knZu98N ze(lCenfnCPt|FK|p|dN3O1)>kaCH;|W)+o5USlndb1P?tEvK!&AOx-Cn&Y5%JyF#|I9|HzYmEK`6b@q>gx-FnCsV{yOdHnxZr()^MjPoISGtCR6q3=?czYD(q*t zGhR(f>wF8Hp^ka$#F?qx_QPojJ1AKM?m9n68wRt&(~W#ErQ_b_9y!d78)1CXc7}J< zjHhk;fWs!Y&4V4SV?iX8>dwu9s$5R9P|7DHw>o@4Pe*$nS8j6i)|hS>%7r$S&#AXy z6I6LpXZoZhA*wMk|0zQTg)v9g^y>b4u_FbYq8s%guwASw6>nNwxZw3`DwzuDGR>r| zG<+CzHnYuGSpUIv`Uu6q23Z}?;aA3zCxRpFuXajYF@4Q2@65Z)cum^jaog1r*qSp1B!Z}eKZaI`cE9v5e#+%4bd$*wDk!g&+@Yo5?8 zF(YfH&u($sF7L%h{@|w~CD=geZ%76`PN2yS{|}B_a4B!OPJvOY`)7H_a9r_;6=r}X zXltcWd-bj#Lg}|j-q4@N4W-b$d8HoErBDD_erIszRDla3=%V$ilLaJIALV>W;s33SlQcS1@&R!GO`oC*3tjQU(SuJZUu@Z zWBVap`VVb-EOq;QyH}&aRWeJfWB7Dzxd-%SrMqa--sWSW5R#ePGHxK9-P(V7n;IgQ zdqJK@2Gi`~RtpOpw+Nr1KINJlO(}>k^=PW1c9|eKkz-es4V_tkIBo<6vT3EyEw@R* z;LtVD4Uyxo>YaP_V0*3_jME7u7dW)H&00|FKa03Ag%ex}OIeIM-Q)YCt3k6O{+_k+ zK5o*6i{6y1P%#*qw}m;-wDleRjTh09n(Vfg{7ay=WvD}SV+Mw9S9w;lvQiT{428Rm z7-i5Ta1zsFK^eacoanYDm4vXGqHjHgD@5nMo@zku5i^?`3HjrK;jh|fsr;^O;7!;V z^pTb)5f#~wy;xr)*ptUsEwymB;x(4--RDYGcCD84LkUoGYcnFyL%=-EVhhf*Q+A0* z2Md4o&gC)9$D%U(h9d!L-%p)tUJ*FCA=koo(}H9hLS57U8lb#;Dxc_pUjBHYbWsQt zMHAM*2DH^N5Z6DyMO&=B7%i7{QaW(f*{Kk7dI$4?_iQ6;W>t?)4_WRd@v13NF?wu@ z6H>bD5jT8d%Y7)7Sox1DVUkAw&2Bk%GPB-~GVPnA@IvL;XdC?Zv3=v1jqkKQc%$@Y zk5wBSw1giPC{ujMKE;X)_wbfFJC|J1K)!4I|Jz3ALi#sZ!2ja^a+51s@LX#E0Pws% J=Pdkp{RarHI$!_* diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index 4b2910459b7158d096b89474be78f401be685505..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1845 zcmb7_=R4aA1BQQg&_rugaYXH)#-Xul*LLjD8nuF2O+rwlC1QnRrg{i!TqvS6w(7B} zp-5xYXpPcRtJOnVL}|U=^ZotsKF^2ydY*sacCcY%Hw0J#2*AXkT^97_4&pcgKt~Dy zlmP&UM*2m@1;(Ny12LEo6jE7D<*JIB3I-MKb9SO4qkQ}#5y2rbfhwUG6q1{r1GohM zH~`Qm5N>OnXhc*_(L1hzOR2~Z**<7$wv(uV{8QfN@aC;SY)$7)w&gu=GLF{gDi^lq zy-9f8USa=*X;XB&j>qNKJ1ZqAoYqf$wnZqcf{cAyK+Wg-&}u9^BG_#HXT!lLufKwt za#s-3{5WPn1;u3;FFj_mdb?aa6tEEFG zub?v1MN;l1X*lc~Hh{3a(-=mT0O^g>i5AOhf`Id?+;qwZ16M;Z{XpU z(L8U(SiZ%(H6d?VE{oru^mB%;5q9#|UFS2Ts&ZbL!4y-KET{E4SK#}>0fF&;6VQv4 zBN=Lu=n9Qq({Tq>2LoPtypp`gTQN$!@Xfi^86h98KMO6M4@kuKdklOoM-+YuZ_8C_ z{Snh75vO}HjGR8-BY69E3Y)lD@JH@a0|>}mV~cDADjx1AdHX@=EByNCKYH#P(p*i> zd)vy4Km}Du*@9w%P4bjX$S7>SLlggL`dJ85r1h@0G#J$;D0_u3+(I&ikw7t2&k?kC ztsHtObClHKeQ0```6wf~cw9^#J#;gIKQUJ*J4C!qopb2)V33^hIIK`R?7Jck%3?8Xwyv@KUT zH%tuHs>Ii=N&&Lxl39d)MjA`-={C{to0}sP=mz_uWetrYE1nGXdeYAO^jlOsHc0+fjy7ZdAbq|{=cKlw z_s>hE4wlW&VPqQfQ1MP_8MYq70Tc6z@^#T>=1Dr1jM|G)1a}yyLBaMiysTKy>mS;p z_YL!wHJFW#X=dimq5*^7Mh|LIDH7J{e_9=IeZ$XOT}XrDMH*d*4T0W!>8xrB@Rvk3 zqWrPt_a07j$o%Hiq23)>v?Eb{!w?q)_SZ>%Es%irZA!I<2l)zoE2Xghq%{Vo%TU-) zb!H%?SFlO5G45IU&~1_lm>9WukhAx)?UvKCy~5(sj!AGr6ar5*k7LKDxu}yob_dkI zvpz3&z514m^AaCp;~=7dLuFD7$I`O2K>aQy+A{RwK|?9MK5sByb9_vf+h2Q-P?uyJ z+}I`tF{dzv`-17eLJ|ZY<#cyRE&CkGN@N_dq(2G_04v`7bH!f9w<*zmaGmXgKC5x! z8?TeBB;hAvKEjIAl6}5wNh?*b8P$C$QkZ``t#%Sak|W*~bnWdi(6(WpgcX!a+EyXU zrzUz0`ci_ig;hdk)XGf0opLJ9nWnA2$yhiYS=$Qg`Mb-hx9ptGd`~mplILhpE8VE6 z&KDm*PklU6lQ+*kWN!Ds{vt zJSspAmHSYpMqZ`eSev-y0uzYMW0*S53Z^Z8CtFZd=4QtN>e95LiAkTE3&>tx&;{}2 zR%vSXyUw$!Gc&X z${%305V1>vXc#Y-@*Epvz0qp2=ldih#_PVibZu$!oYJ&c0dc-D8ZSYKdurSmTF!6L zgc%Zkc;My2d7aE(e|ZAA^=S#_Hmu*vxx&{UHZA>?YxBKEe0GT)+|^s-u5^!uQ9*_hyYwtq!WVhtS^xt0M01` zfHnXC(Gfnx*nmGGi2)>12q8ini9jQe2ofRO>*yp9$zDE0zu=IV07NK>5Fx|yk`jd4Lq(O23^f}H)7TLqs+|hS=?*d%)N2LX^q5O5N=1tsc>23=V*Eg-vs&1k z=VHoWQ;FRQ7grEedCcix+zPH7ufJ~uo>b5%c}%IzWoI9sZ7`MUlVDohsoLrn^o1d{ zp9XR*MD@1RKOMSSA+o|P8t{+DdWy94-9Oh>Z)Ye?=umy{XAkgX4S!u>OtGxJr7zFM zh-S|2hwuf(MH=z?ME3u7@Q?-7m@aFtL$9E}L20e)n8F`&l2RacOmOvpR@+|c74VL1 zy0~POD|c;pKXQcbT@o?z1y;$vGOUwlf_CMae2Zt3yVWAnmvdGE)ShDy70I~2e(%e? z!@F`qUG?z&L+c4amG6$2r-4?MUFV1Q8Jtx66!G(^lTfm16W-Nryp7$a;L$3M@MMUn zi*}9E{Vkm9vt_CG1`Tx}F=h#gD2|n-{62Be9(ao}R!P6~C|H2|tlAzf<%ZMcd9x(1 zn;=^e9LT)aKbUV1l}0_{0IYo#EHP!25m-MA(qdfQS*4jSo z_K9Vx<{|EeyWLzf9^~`V4|dY*wO(GwXbr|sdgE>6zD7}H)%z$H!83hvsLH_`c=G#` zzpTxB3r`QjjSVtBMGtOXCZCPAOkCGPh4g$FrhV^>jq(RK1-XBwu+417aYzefe-tFF z6np>GZd;FDtB-;u5(HJFzgm1i{I;g}B_P>Q%w8y^Hk^8)6!}G`x&p{i+oi?v+v>8RrH?vJ>t**w{xEOSLf9g)QM&k)6AzXa zp7ea2lQPI@_QLmUTps`1#SyYp!GEaZg7Ij5zOC==_@?E@GAo3)R|88kMw| zeizo>HYS)W>RQBHr@*W>H_8eoP?NNa?ZD_w4&{$Md&XMv{0#9A9;=2t=xIuG+{6x#6gm&UYY^Z_b)a}2# zJSX7xdHxrHHb3->vfL(K;T-zNE#5*_z?c}{Aru~01<0b0-=&bBID2hBFitE`@P|j4 zv2~-s?PV$&FYnw6v{NoIr3}nGtLZin9pR&S!x`bcqw~H5&P2VV7jLUaQ_82cEv!sN zA-7fe#q=)MlqD8UghPH)WdmF@>gN-f^~H4u_Z&N*;vNz1taFr z%|m2T8op?@@%BrLa;f-s$b?IdM;AFs_&}Q^g(;rg8B-E(R_}hQ`e!|f{^D?2u^5y2 zT!e3aDd?*>Jsg_m>q#zMJ-Fu4!pw8%Vb|FCN$V`i_alNj@<#j*3_WR40Ex-%e=1Ia}D_^ zTXt4Nd_%KDm37Pcmjco*x3|WwlLjLqFYEZd%Z07Y>o13ED#{ErRbTrX3O zxX-mX5fvW99ImTBjB4DC2#vdi1!=Yvg7N7Ehodukc1M+d>39S1qrQFZ4;$2y&u zq#5nzt7TT#$;TbEQ#JD$=K&?m$uI@-v#v}L#Z=WE!dH*Iau|;5`**iFOXDsM0%?6!s%i*kz+2?8>pdG7)SN3T01AW1iN-jz^qY zCx*1AX&&NEiJw4QlDkVA@@}?#2yFYF$Vu{pB*Xf-^7Fd Xi~q}R_Bg&HF#-VSs2)cg`gi>U*_>EV diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index b9b7f02c6455825f1b6737e804eb5fbafd2ba8a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1772 zcmb7_{Xf$Q0LQ=Bb_&rh4?|7~?L6dRLkVd(HZnrWQ=YAdk$E_VXw**5GvP=glZSb1 z=IM}(iRC%0hCIZD8OkaT=kE9W;Xa=q-mlN+A9!OiLLd`B5I6$x2|*5=5{SJP1OR?G z0RS2R0EFT_gCl%@4GQ)p5O9Hb4J}QCrj{ll@RrBH85kVm;Th~5fD7~0yg>-W9|C~^ zHvotQ03$NlUw23MPSG%nW+;~5jmIgsDl#^qSl+m%ne%2U_Bx=>xYovb*e9p&{jtzR(p&DzT2_g(1g zGOn{>5-GF0II#cSAR~}xP@m-$KY8^c8zq*88?2|VekcQhW$JW9M= z8t_Q8Wo-96)J1W&YV@%(iBucS$ng#zExjQ(c44P6M&{%q`Mc==pvA8Rf;U)pPk(;q zFqfYWmPfSCWE;6`RVg~f(|+Y-sn+%PsX)4hzEK%1tA0~58;~rcXS%JqWkJC!lst&J zP@5mJ9ZNq4>-^2;#f$3rACCtn^~fz3?^G@P!6GX0-NIj?NMK947JJvMM*YP1mii0I zzCJ26<3J25S=Xn8{@3&|335H`rXpPhK}jZ(OR) zbGt2Ly~|lW#by>;&@`}on@5!kLlizBO^mBa6^IyVqxC@PDG7-(xdCprn@r7=<8z7- z=4Yr%8pQQ1C!?u<&!O2Ao)N`mi{xjAwAu`$GDeZt{Y&TnigM)9V94bUgC-ws(t?Wf z6=_)EmphQWZRtb@wOdOmLvaZ5A~Z*Q=uRZxu&!+K3*!2xsb19%6@H)<)MizzsB%73 ziP2fBWAcV~EZ!LHnY^3u3$24NDSt(Ca`ORoli{Awu}1P_xb$Q+n*}`NrbW$k20gOG0n?TkucKBD+zF$e6SpZCq&MgpILnEE=0b zrOpUALCz!PM-1b}&PWxdFvQ`y`7i6&4C{HhTjf1J zFy$`U?B2K6Fq=8!%Di%D(_J_vY{$hAPS8+8G7VEBy=u%eW7=!V7B@Hf6Rwi7hd}_5;8Wbb=9)z5{p%lrb&cE zj(>s-VNj)&M^LyTdrt2|yoLU@?$e^6+_PLb33z|6#5ym!R=iHN1${w5H(yY(aG~TQ=J1mKQ`#4(K-}WB!s0Fpir!xXZZ@TM8 zIitpgq8IcU=1YUSPi4eiWKU8C#adDq^o1_zUzLi_YAF~=H`+6_3-B%Ptz$|m!H7;o zcwE&&PZM&K_MIZ>iYl1Xv&=6Hkl_!m1&TeoY}>(q>aF~--80&*Vl>N7cU&~mc+FIq zPT-H3Kk}p96;~f-84!}qMA-vdzdNCDQ(Qb2E`P5DZOnQj>{tO>m;ZVh{qADtbW?wo zPT^}DwZ!&eA$*DZE&@7any(AVo zb=>9Z-buU}yO-tlvSIz@SPV#oWaaCY=$?n4dk|uBYBl&lvs#25iQ3Z_>L=u8@cIgu zXszHIZ(wf^-AXKpL8U2&7x@}ETh-5yY$B`I{`?vfRYY-j?=F~G8F8xPdyi<}A8%lj toi6Nu?HxD8Vgv+Dg#KGT2mbjtu>$|#f2jzI0UuZl00a)|azNt0>u+mlO*sGn diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 8519eae271b48c3866dcd6d7691f2111aee101f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 855 zcmWIWW@fQxU}E57*jZc<(!u9%zMP4H;Tt;xgE|8PLup=eMrv|)YKpFbo{64;UU7a- zd}>8Oeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJ8Y*4 z@SM}QOi5dE$1=9Yxkc0(tNq0DP`i$G)`CMi)ycacb(&UyRswk!qs=Tw#?Kx z(R=jGPkt`8yFYBA@+0}?wsTva_e$9Akv&(}K1Fk*{c)o$Dy!BX`L`reXXb-#a*N7i zCaXOfT{HdLPQRlObIw&9eVQ6M({sM< zp-0oN{J2{nXu8qy}LvsTcX&cKOiO6VwBYF15naf=Q?e-qWnoe?hm}d80-y^zd z@e`>gh3x@zerJB1`oPrh@Sc^;Y%`9CcEuUay`uYd%S55d6^3m(JIr)foHzY@xZ`NK z-4i#fg$0kxw|}%N;N@Zz&Uv!kdtrUYcR92Eoah}kTNbQdxNzEH!T70cG0W54^#qI@-`;fdfty0 zI3D^)q`7ntS8muXWs?(?Df1t_%bD?Xa!Z{f$G^{(+Rgb_r%s-}+x=vI%f4A3=gnZK z&T&7-Qnpvp&FshFEgxOpGwQ9{#r#5Kw_qKHiU0p6@^Amxle7z(7{0J9GR0|4E_eQ5vy diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index d6310faf15f1ee80d062976003875adddf01476c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 855 zcmWIWW@fQxU}E57*jZc<5@Fx(y_|`G;Tt;xgE|8PLup=eMrv|)YKpFbo{64;UU7a- zd}>8Oeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJ8Y*4 z@SM}QOi5dE$1=9Yxkc0(tNq0DP`i$G)`CMi)ycacb)ye^tbLqi}y_jCLa*| z70r3|lC-V$BMz4MtaQFZca`EyB>J{Ll@T^tZ~CKZkD`}O{EMyb)@rqr7z6m)ZfQ!b zR&Q%Od8E)sL}gJD@Ar>#Gq?f*HZVw)dDhBroAtP|`1T8i!s zlKDt(`lSe~Gg%YNB71BZ?(_MsUt#3jbUr!VVXJ&bb8^#S*R`d)oaL`rx%33^pZm^! z_k2~F*=8ZHuCL$j^FR6Tn#*~BuETj`(#V|2^=Rt)jqr)qPjzUa*S#Q5mj)@aLwwY@Jcd~a)D?V7)qY1XBD z=SLUVIDTa8U_ZCH?@F}wr5D17g+D9ypZxvKG41WP8@m_D&G@@xpFOwzy4l&)3r+7l zob3GWTCiiUW8cpeqCQ`2HEP!wHn<9Bd7JplK6@Bcv53<{#SuYP>(8^M*Rk38Oeo;w$Vo`ENW?8CUR&jnFCkrb>ECWLW1A}cxN4oJJ8Y*4 z@SM}QOi5dE$1=9Yxkc0(tNq0DP`i$G)`CMi)ycacb)ye^j9G-&$j1P0?jS# zi(vHRQ;ou=P8L=3Kiqy_L+p>i?GMV&weH5uw36&ub2R^ecT(Yu9v)q}AJ(k)vx9Tg ze(8Q*b@c2r!vi^&GP0)Ly{yJ*!pmhnp;;k-;nTsl8M@Q$6O0ie}8`d|ASvo zADH~(t{mU0d+!V;NEUW%lAM%qe(pZsJ94Q7YuJn!S#LkWTWxlRH=Os63 zYusTwpHFX`QvW>HP|SEYUqIMpn#jqI@kU}7j(BB>Zt6+M*gos0+X1QHw@cOrX2`A( zbh-Z|DRNi(GM_KmWv5m+^h|BF_#ODWVE2Em_+M?sZOj*LPFg&xD#U#9M|2|sCzHVaWmVXmhR~5Wx z`~NE<=-4K;**%ZMK5UkEofR9@lowdJ!Ry10P3r%Cez_wN;LXTn&x||Y0J9DlG%$iF WB6CrIH!B-RIU^8;0%IM7BX4uVnf;+^*-zqLbe!F~!2it;?-}VUxI+Hj^wd^i zc+P2Drlc*oV;S4_&fsE`wR_KgX};XhlrnK=8mBAsMYUJIyUzY!`m1PyZKX%`*H@M2 z_P>0(S22BiRQapIIop#&rMlHQ`(xBze*JQyqe$KEhDV*pqj!sMO%L7Ymsnz@>CLg? zPEbzFTvxu2%<=i9Z`fyjSg*07{bm1`|58O3&YO>2;*+|zz%}UbtZBPG z?mRbH*sQfoaGl0eE32t%H|V?HjmnwuSy{?CN@Dl#R++ZHA+rOf%ki=^`D}V|ZO=cA zvVWzMc2_cf=Re55e*X8o1r{?MQ_qP7&Dt3G@YVcep_touGwbF`KDRz!p*-vOf&83_ zYNbkIEK5ZMUVJuO<*R*@y(q=!>J>#kKAnrE2h;8dy3JcHU6IdrZNHNv_w0X0{ST+` z9a?1O)NsDNCE@LX-L`>D&b`%gVc#}hR{0@Yo9kykVX1tOQC8s=bMMUCTGV`YLA|>}r3U@!M7R4y7DPgQHH(H>E2|7IwwI3z=MT*kr28Czbzq z?wmN*eYKx^pQa<}1h&l0e=aZs_`d=sZ33}uQ)wy{t`mC;fQuo}0 zyYKjZJ8eI`Z4>JZ3;(BP^LzS_-8x^<_UwV_E{pYgFP2wtefaNbu6D*tw(#o3ZO@E8 zKYt(pWA2w7`6n5gBlw@BMqJx>SMg!Fj@ps-h4YMcx5_w*U$zo=yY#&2?M9uZ4?&UJ zV`p8OE%co0?Blwyh9}2jKQk}hKjpV$?^NS|pW^>4e`LL;dsX$ diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.12-compact.zip index ddebde55feaf5c66e9de7b703baa22281fcaa312..e44cab126e303a69fa5feac6533bdf7d152f9168 100644 GIT binary patch delta 866 zcmV-o1D*Wt2jmAEP)h>@KL7#%4gl@7WL8_G>3TE+0006C001YGt^+EOMI?V8*K@rV zG4V$ag{75VSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!KcV^O7j%Q8|Cn9LgFKX-S5zb(MfSbL*2O_xWlP-E?x1jgQPOKp)ax z^)k3SfyJodO?3X?D?{fTz=z`HHt%Ze#**VCUM8hHqK-IxO)%hhFsiXQYoZqO)_9mH z#}z|T95w6VDsi4@FSY3eQmBbiBUp)E^MZR6&2i2sF6Czw3oT zwV)o*Ql(n%%XT=B1L0Gcw|C&07nv@h!N>D)2Hl;z3ReuL#9uUsV%TUN!>^F26osxAB}30;`=K2N|As@RXwtmM*Xvp$kX35w4b$ZM9P`S@%*`U|Bx}qTd25c(1k)j zlT6fNRZkKsh4p|nP80XL^_H1M4a|sl5I6rA6D!5gcTj)YrAS;BakA{{9#M}_Dm4R+ z)`HYqOUL!GI$S6UygX$;fAO*`_4)gtP3S1*k7!LpqW2qyj;r=^Q?*R%$5PcJTnlpP^no6 zsk8o}HBk~!4^H`#ahB~WRihuBz{)OKVkh37>N%^1oL;0)HK^NN*JIDT#r|Db(aw8c zzko+XjccP>!9ITt*!w~!K(o;j!bH@>zw_x0@}##>#@V1n+_?iMsa9dUItq{k0kGep z6+J6br-+W_JIY5->5W0akpk=A_^@HgW2|a%2SsMr zfSU#dYR<%G(7pySd3ubM%4S}KiL<)BCb)&ZE1$Q8FV-)wWpP~ydhO{jALACeLm*Nq sQ2pO@KL7#%4gkAza8%MeIK4gt003x_7gB#GuM4|1vFXEmrMFlE z-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2tNh>4(=Ls`*A}blVrUti(Q*$(}z0LH4 z(}03xk-26GMFY_$>ide#|E2nL0)#nNt2@vyo(t{NDq3v)HWslYq0_>X&$)RQ=IxYZ zh}$iev>_Y15^#StXYv=}#^A-k>g?dP#4*`Vtx&71<8w}skUTFKa#GL_qGBdA=96hK zp5?b{X#ZfTGU!JUM5P<$?#(sMJG^eLnUV0{yFt))+b1{w8?x97(#h%G2)W9Udd>RK zr`qUB-bXWjD{q4N!9UAMa{3{C+f&ux2i*4)xzhDOZm55|s-1Kv z9QcAn4%8W5vPEL6FHg>K4o`O&WsMvRiHt~NUY==(=4$fNnsfp zYhNG`ZpDlC(4a}V23-3bD0Qk;Uk0HzOtzs&nJJ@Np01R?p;Q(M>~{-Y4l4@U6bsGm zO^|ay}&ep*a1Q&AD4$ zyGdyxS^@1vZ?(^%<^;x=0ej=|bChDlb}{GbJlJTmR~LWu5;{LRPp+}7%mx81dt$!| zLE;6f!kT?~?xItASdJD(6+w(Bl2yBm#2PtUGvdty-e#*u2vhb$CsRXZyyR9O<06%N uh!_95*{Wd#!h!#8#Y26YAohSI#`jMU`p)D&FSk%(7Iytm6DUP8L>%SO$g$1_s-Xj&$Qc#)S(no!e&3JLhO#rs{sV z*4`i~JN5P4yG=K~JY2nWdj#|SkG#zdXZDAxWj~2~(Q$U`0{=HZyl14Z;0pP7(^Ff8 z;W?*qnUc2Tj%94yJA;c&*6uy~rTKD0Q_94hX`HUi7u8<7S=RE#5aBn0!F+ zS2X9r4Obd#aJp<88vcLu9FDx~};P v;s2kPd^{B3&B$cWj61mlQ#=?nFoGx|6Muj=D;r2TBM^oH>9@fA!@vLlQv`J3 diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index 4b663a52c3089a84b6e6e9261f39637629de90e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 856 zcmWIWW@fQxU}E57*i~E*V!OM)Vg(Ze!#8#Y26YAohSI#`jMU`p)D&FSk%(7Iytm6DUP8L>%SO$g$1_s-Xj&$Qc#)S(no!e&3JLhO#rs{sV z*4`i~JN5P4yG=K~JY2nWdj#|SkG#zdXZDAxWj~2~(Q$U`0{=HZyl14Z;0pP7(^Ff8 z;W?*qnUc2Tj%94yJA;c&*6uy~rTKD0Q_94hX`HUi7u8<A!h`OIK}vR%Rnr z?;PjLwerI<-C1Jili~z)s#43ECHl5Ml@T^tZ~CKZkD`}O{EMyb)@rqr7z6m)ZfQ!b zR&Q%Od8E)sL}gJD@Ar>#Gq?f*HZVw)dDhBroAtP|No=L_jq;us)-%=}Z#Zo?aovnM z@r5F%6a`wYg`C*%`qk3<2KR{L$#(7=9sh1nEp03Pzhmmv*&EuQZ9RV~>1M_Hq+2`* z*^^%+G)_{zu-raV{nyICPNnHw0S9lM_Ys&T)>#=4ygMi|bakiJ-d#HsZ2x_VbRg25VK7o_fqEi{5Bf82ZkAwNmtxPmh-h{%6_#KIO)M@Sru8`7lRm2P<(+XitM~3*uNSr}x76>CRBqhv;b!T7-Hsz+ z(?X@fSl9oHLbtt)KD)h@_g(U_3ctv9R#z!zCdny0kB|7{p@++eAQPMn-1H| zi|<~@H+lWHk_DNIl;i$CwzErxE~~rEvJMF6H@h#r!!znj(#F*;Z;p0P(sBIzWKAqzz0%sO zlMk3BZf7`63~1hRsUg-SY?ki}eP*A%rC*+}+M6Nu@#SHjgHOMn;`{zEEN+I3)#bOD zrv&~~I=b|{uz8;^Gjj{WjX6_2`95|Yf3LUB@V&6?`R>#0kNxd4gqd$gm!DyN)Tq&%s&ha03_~rf&c&j diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index fc48c2ee559f97eb503612df4dcef484f4295207..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 856 zcmWIWW@fQxU}E57*i~E*a&~o!!wMz_hHvZ)4C)LF45fL=8L7$HsVTY!dM0`Xdd2xU z@u?LB`9&r1iABj7nPsVZS;hHzoGh#iu?!3i3=Fm%9qGn@j0+cDI=9W5ch1qgOx68z zt-V1~cIxZ7cbjf}dANG%_6X+tA96W%YG8~qT}q=1^#b-c+W^*!4>lFrl+Pt3FRH!z-F5c=GKSQTSt`q3?UiIb z&f@uL*>{cw?2DJE7|sw0R?0Mzk+WkFS8e+GnQ!M)CmpVofJ(C!H7)bjESe|hA|&xD zCf1@rUT{&G^%k~078TOBH|3>1IHYbVxHssHwT6o`@0a%>Yl6If|1Ea-HOW6eg5y%< zyv;Rp+kd{zn2>kXOYFn53yum$I$2k}X`PyI$yg<-OrSse<>vYycNPB1vR?nkpa0^k z_KzlUmF&|OpIUF1c^kTLW{R?aXw zbFi2)a^RJWZTxa|AX-AH6r$Jc%M4_H{3O$%lK96ck{@L zu2&9Bn-(%bQpO`IJNU$6`Q{sOp$_NH`y}o?ara2O?S>A9_yoVyC((N~B&KYat9F;H zyM9w=zdOs*F9tnqFPcw_{>n1i{J$n-@7m>)87nWYlT$7^dPL3LXZwa{%53Y-HO9m_ zRh(o0y)t3P^&hJ}tIKY`eehh)rTUgsZSm<2QE~CY2&H##UhV$B;r_A^UY^_qzbp^e z2T!~m#_;D-t2;%h3nI7At9aQ^mSLGck^Thw`=*m&kvpy8Fi^@o$2(A-}ZUUDi_)_`B~ZWT~cYE zd-=AceMy^~wkT0-xu0K-?dpz|3@z?+fDo*8#?2c~#1XkY|UL?-?KZ&o&taz-Ew1=4SU`GSk%(7Iytm6DUP8L>%SO$g$1_s-Xj&$Qc#)S(no!e&3JLhO#rs{sV z*4`i~JN5P4yG=K~JY2nWdj#|SkG#zdXZDAxWj~2~(Q$U`0{=HZyl14Z;0pP7(^Ff8 z;W?*qnUc2Tj%94yJA;c&*6uy~rTKD0Q_94hX`HUi7u8<`$?#tvdDeEnFC#aWvHw)GG`^l`d`*2{;0>Rkjr|iG(t`T1!G*wuoN&WsV z{_v_zEn7UU_Aa>Lzf9uQp5%HBvFSJVTc<@|&aM_Zb+2rh=S{ZV)!icPmA^_Q%JqUh2UJ~e zJ#v}S-&M7HMJ-omFP~^F{}sWn`>nm5_JsXVtY6cU+8mP77@_(&^osLy z;!`UM@{3C16N{2FGRso+vWoNbI9XU3Vi_137#M6jI?|2*7#A+QbZ(n9@0_D~nX3Ec zT6=?}?9|tD?>61|@^JOi?GeoPKk_y=oY^0$mi;8|MaS8#3;f^w@Sc&rf-B_TO;2qV zhUc8dWlGwTJC?C+?+h+BS-bb_m*&e2O(_$1rg6G5UsQYbyX)-#Wz4sv;>FGgioQDY z_rX(6;iZN9Kr%V(7HvgTc^Ad^;-Px{9=ij@*Xs_`x)z5o(oc-RR5W#V$l zjkBE3U45;$OYhS3kc>-PuC$b1*7WOKqxbCKReSaD6(UFD7r#39DxuKbFsVwJOYx;< ze!1>qp6$`gr)Sp}ZB$qIc{S`M+jDl-AXU*BZe0?OtL*+)%zs+h^{r@Y$J9i|uFk)_ z8TGrCvkRPbir%}L<-x=FN#>FU#w=yF6L+XK&+?9z+`;ZK<)p)%2y^2){TJnYZt@Ze zi5APRN7lTw%bu9FT65-d0ruDXqW^jReCg`@J!QpN4bDEnp2XIPVY6i;j=nkA@}#`? z!>XUW6W;y$crIaGjzqY}!y5|opa0k-d5&$(h7WJNr(awxt-Z-)u^+=K;d4(_YF*{q zN^b^mN|-yanmyRM#-@yS7ysI-6v6c$)1!~t#hNVIdrGSR^sX~eBKJhIY+Z8H0s_BJ y{{Bl=?*Hr9`||?48JX;vaVL0Sng@dhMi510@(=K4WdkW^1j0}t{T`Tu7#ILSk%(7Iytm6DUP8L>%SO$g$1_s-Xj&$Qc#)S(no!e&3JLhO#rs{sV z*4`i~JN5P4yG=K~JY2nWdj#|SkG#zdXZDAxWj~2~(Q$U`0{=HZyl14Z;0pP7(^Ff8 z;W?*qnUc2Tj%94yJA;c&*6uy~rTKD0Q_94hX`HUi7u8<){Rh*P>}~X}F7jz?`?T)Hg$pwR=9N19J*4G(A)}*Y@dv%5Ueo<9m+#Ym z_VA6FcQU*F>)VUN_r9~gC$j74tboH7E3)6n%b)BD?^qRb<&4Fi*Kcml zY#xE#7G3LP_wxR358L!*erko&JGH#l-zxpRpSnVs<+n;_Nbf3paiFvHSo3Cu%cX++ zYA;J3*}K0zTo-yEN{+Hu~$HTR>qFDV*MQtzD^{Mca96#fR8n@Po77s9Rv{VWP#yt&|_n)|Kk zQ=GewX)|3_J~&+~O*s9qqscelc#{a*j&nD@DYx?}sCG`cTJRSbn zrJVNJZ=qN*ch+ZYVV%r;raXG$*7d?n|D-qf&b;?S@stQV zTWxWJcM-Rc<9f%||GSKnPQT*{J=|Qzey4eN-}zOyvQPgre(Vz9&B$cWj63T9a}O9a ZFoGx|Gg5#zD;r2TBM^oHX-j4h4*>sRr{w?u diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index b31a176d2b22b6a7b7fb30dc8623ff650b07ca75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 928 zcmWIWW@fQxU}E57*i~E*^0ax%=?_c{3@bPo7}OaU7)tY!Gg6bYQ&V&e^i1>&^osLy z;!`UM@{3C16N{2FGRso+vWoNbI9XU3Vi_137#M6jI?|2*7#A+QbZ(n9@0_D~nX3Ec zT6=?}?9|tD?>61|@^JOi?GeoPKk_y=oY^0$mi;8|MaS8#3;f^w@Sc&rf-B_TO;2qV zhUc8dWlGwTJC?C+?+h+BS-bb_m*&e2O(_$1rg6G5UsQYbyX)-#W$b2wpQ9ZOGX0az z7sy>dC3{=hDD{+=)vky8@}!h!mOou#eQsy-?q8LM^QY)Mvwi(V%5GgyRC|61x3Qah zL9XHRDM$7{j+)sr@upnVf@2fi^8U>F?XCQnDeUl~MU4SVj*HsNGTUHKU=es);=_Up zwWi#O>6@+!J^gOf)^M<;*h}KRL`_ml`J95|3vT_M=WtA3#^d4(X?q8$*oo7>O}>*^ z>iNnq;umw3+O%`-hp*0@#@)E-``;IuGd;L9<9Dn{QkTj1TfcmBBg5GnJA_@EpC)`d zW1C)l-i%Wp7d=To_KQNfG+4y!oH%YU@b5O9w*U-hFvy zkJh%_h7X+|56-Bwndm9~ilz7Wk{eYk6x@XcchC5;SN=%bOD(lSadna5D#481a@Tds zbwr=Odt=Y6w8ccL$KPXn={t_kt6$_Etzg-Bmh*;qy4<$OCLJEe@;qw%&F5JCeBb=I z{+el?RPg+LCE;_*CI`-BG-UW1dU(m@>x*{;uXxL27;!=S_#{cw-;0zN1_^6CXXmhV zNhvDt$T`(kpKyNpH<4J5{oCAh?*$w?qE#Z-6r5Umq-bs4g2)|ly_~rVH8kbIm0#uX z^js(|G_EMB`Ofo3Vsdu*^_thgJ^%N<`>eF^`m1^Y5nj!z&M5WRdy6eC^nQzdTKX|M z`}~oWZrxm7jEel94A^~T+;?638(ir&>3MSIPt$t2;-3@UWWN7#d0pJ||DE;v!mAx*NiRezNOaOvHz*4X0MgV&7kz9?&Wd4ML!yA_FkD0a8Ler zjL(hj8xAju4OcFjb;UjPoRelMuhad=h)Je@-$woq@MdJPXU3gvfH?;Y8W=$ok(nsK So0ScuoDm2^fwU6W%YG8~qT}q=1^#b-c+W^*!4>lFrl+Pt3FRH!z-F5c=GLE;uYyun&GX0az z7sy>dC3{=hDD{+=)vky8@}!h!mOou#eQsy-?q8LM^QY)Mvwi(V%5GgyRC|61x3Qah zL9XHRDM$7{j+)sr@upnVf@2fi^8U>F?XCQnDeUl~MXA>>u1gT=u32Fu?#V8(TvFc7 zEO{j(pTv`Ow#S z%~Oo+);goIs~;QsuVf}3`JwG4d6vy3aks{gRsL@yTb1K?Z29$a&76zJ1%+=`?0bGJ zdd_ZnEz`%xUxaxWUv+bBzr8Y-U+il0>4{r|51&5z^3uHtn;(CDpqh1hqVP`3OcQ~F z9aF5+G%tRP>XvK$^1I=1*DZd1p$`88IX9hHeU1Dcvd3@vp}X%>S@7;h$Hc5uGX8}H zIbK^Jq~-g)E_=~st#98iT-EgV4%@eZz3*YPMOqP_g?LD9o8t<%pms_?ycyzh0YT%5D~R>98e zA42a<5L_F5ooD6o-1tR%i)UOf@GZ15;5xYLvy1rFAE!!QhPerUWY>6n?@{sVJMJ6i zZG0^F)cnt;Z{OEFJ}STB_X0j;!^v-wR%V->IMV(9wRYUm0B=SnduH7E2AFlgpn(xY W5t)kuyjj^m${B$$6iAyfgLnWF&Z9yA diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 0d73329700300ded0074e193e8730575dce0dad6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3632 zcmbW4S0EbM2b~;An@5 zpyMWdH*%~#$Kc=sl4ggeg57*GkVF8#aya+6W_6~h6C@LdrUol-l5>v=AoD+&hpWq) z8RR-wqzY2(h@*J+Y5|JgeFE9JkFt67zvNyv&_MNWQ$j+%Q!IxrZH<#dY#-O^cQ!s= zzp1Hzm1Plzg%a)KzYVXcM%Uz#NC{`_yiTM;R~pYg%;n^SSP0?RiWrt-T0fHQuEGt) z*>E*=>N;00HkCxT51U>FP8TO*H2ccJarq6UN4xqaFRV_w>R23~^jBmn3nHODsCaYF ze4n}Bd*^rMJqGo3ai{Eb=Y&_>QoCP&$Mc8Pvvsx#TRMJN(7DOc{3!&r{G8nSz#&w0 z1jHPtcH`B~L*6OL(D$%nHF_oD>=-;SkSSXcI4wi{i9C`f+P+e<0lyw06H7^8#fhEg zwG@<8D>ggn;0|nqTYrx8We$yrWdxo5s%xT#$GjKYdlLmBoW%^Oi%A6~-C~KlG2`b@ z`N$=WlOWb6i3fy0Gixs8e1&-M8AKmw48x{kAt zD_I3W;!bNL`>w6AVG-FMNNseYO~AIE1TAv}-Vmu?5hkbVJ?*$+nxgA3qICG9kjPXj z4}4^wF-fL|mXVXV9zS0(c1ly(U7i!KVi75wWHNe13UpW*Zk_v4QB5nN`_0>5X*&Wm zEL<1xHrM}G)bnVKAuV+n71p_)OSU&Kkw>*pV(yr6z#Dg8!xxiY*$qg@+G@9O82+jB zbnxGP`JmMlr}&wx(OxSNg}Ml60jb&_NrQKKD}4!bNN z2LWio48%ZhpSOOdxl6C-57p)UAZ4fC5{10^rWs3EUJPH7VYkI2awe*n@ji z?{XJL@sug!sz%jdgY({DOQPk7Sr5<`5jUA`sppg^@%wXHgCnLt7}TtH%{wx$k``Z5 zKlzRE;WIUhS75hvYGrLRDFdIHa+I(!%^at}KEw_+qydSa&*YaHfa9a2MNJV9`!+Av zHhUYtpv=mWH62j#n^D2p=EQX2%O)xYfZc*sO{?q7E=~SIYv5TQ^A4ALneab+YvPNx zcx;?f+IKtqmzhnU4&#dkZ-`IUs#O${bsd)Nsn!UsBu>Vj5V}QZYzMPBL)!c!X`Xw( za?JR8!#C2fl-H5$VHRQbE?a=>WjVFPhrn{q*__EBofm@I`Q0A#MTy*)WBDxRzRXSf z@x0j3Zu9-)0x0bxe68MFMRGF@4E9(ib*SNy7NE~JiV-VA--@e!x7uM<7wFtOzCf+U z7z+$)b4lI_TXcwgb}FCDw_>$-%Vrt3Ipu%iXCf9K?g*?06k zWQ%0hPSNGllP9)G$9Lb*RM5HJxf=+2z7(mE;V9ZB4DDY6HErD zl-)PbPNHprX5AT|NaL<2-+B@cWG{>veBVX$m*Cb&eZU7|L{jXH){n^%XGvbUW688& zIqYz9V~2R_!S>;!JrjJQ9?OO72apSuWGOe5U%Oh@EL*|N#Rwso#lTWRBUcOdl>^LL zGKc9FBfM(UTnx?N!SEO4mnnkOxH=ly&%24DxXr*q6C(k~4cQxg{Azn93PnBkI=944 zS^mV8cIErWJ!NSxvPs)%TIcm4mtT^@P&6$cNvQsS_)Ewq>>tkwn!WV@Mh6kF_7qQ( zFbcF113o3|DU|n4JlRR8+~_Xk+ST?__5&)Wiuw#!8cL(Ix-Z|rp z34tt)S6>JKZX@l=`q`=$?;MYdnBe%%>weoZ+xeCr%=NiJCG`sn#p*pGeWQ?$F52Cj zCQE-s`QQeFtfTaqWIe1f|DE+CfjOp7TET`le>M&8dW{l0nyNxh512I~aP0ZNQ_lAB zeKXaLfKuW`XcMcwv53x0PMWnmeTB8;I{}#}?8j$GuLz-0Pmz6ai-0LV+ujFxeuLI9 zj^Cb>IO&WW|NRd(@Q#kI%*>)t7hYok4DXq9H;|HB{tm~L*qd?Y&f|A5f4UDd>hQ0G zIwa|S(ZO0AJ^uFjW^n!u5Nz5$aT^;9dq7t2jI$KGTrkip))W=r-U{GG_Gt-0D+})r zktR#g7q_iK5>QnFZoW{R2Ou7_I`KUJ@Q;aQWG!#ewNMD;3y}bg6Igeff+P^4y|0Q% z*j%*g61nDU78kaq^W{sHE?CHNQX^J5UQ(F&*n6tNTF7MfdMncLSni(xF=)KmlK+8l z$Um*##QXhi{-J~&8dN&oqeP6IUK3&kePZv>8=HtAc-9nouh{~xTH5_ZDOnayV6$J6 z{yo_cr|Zveey*`q(`7VXytLD@A*1DURMZ@-Dx1Or3O<%srdZw&5{TJdiY|=lA(v{c zE0VZpfAh%$sV+t%4Hm)#r*dvgwZ~b{Q*0*x`6la&mr<##Ot8i=ZfZmrJdS9L&&`XJ zE|;q2YC?8{D#ML_Wg}O!H@-PSkFH#i+@98NR1UW*pV$g&u@}0;G%B8Ej7IG0OFGNT z#yB->$6vB;G^A^CotG~_>O%i04$3D`1+3-E_DP^7gn{oRCz~GW-FdRyBTv+Kn)N{ zV--)TM)jvoM&5g`+bIbxpl9zEkwehPhO&p{YkDA43E&Lh8D;$2-I^}II;NK4%zuik~u_13a{0RP4f0;Us0R9aBcw z39lrM| z3BCAo;U{N)rsC+%a%L{@ZQw9VBGb{byf}z!h7pc-My@83e0MWu?w2kp;O1$3{en9( zT%OsS)rH53?-gI%oCzsT^fA3I9fgMoU;@GPn?`S`O%tT3{~g|q`e#|^DW*21FeJcQ zZ`+Ak`RBXV=)|qvIg#}NFmIo9SZB9}548>1;80w4_(Sq)^ELH)jySPd%6}`u*C@p9 zZ)jh29R;BdIHoOp?d&Y|d}?_1d|PTL;gErybvqi-dj1lRO4_Iaztj-jAMe#?fj$a@ zzo1#f19YGO=EP2CA`J+960RrF^5Jl%lmao+G|xQsMl{};=wxopbJ$3e7JI>Oa8)%BRAKFf@ zNr?0M=6UaYY3Povbq~`Ixa>W5601cBIDTj|g2Bi+OO%mZNjw2>PyM)M(GL}a6ZTeU zK7?`IQ4|oKOs+}a|1oo_5as$~ZkS_{MiI>E=X0YS?TMGgscQ+I7K`tvASVj*9R>64 zljA|Jtvp|pT~2>7*c8iMZO|KvzS`Nqr#;Cgr6w10$YXl| zK<68+^fOH4a*5xDU4dL)A5I@gF?WV&hnhOekduq8Ie6nM`Xz<#`M+Nq9RBQ8>GDjw zXG(qE&z!4C>_S`m?Q=`u=^Uc{nzWi^KA7;cA9mtmZBxIV{zheC*mRe}HA+Wv~$|0j^>KlooA4hkV9 S`_G=}Z*Bkb(_b$H0R9gd0Kz%| diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 2e64d022be75e3c735a9405f2e55e32343fa1da9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3626 zcmbW4S2!CC!-gYhQL9Gmz4zXG?@i4j6eT1`>@6v&Rhx=YYS(OOjM^_%dv9t~tLZgV4i0yO{-Kn_rZ`&);y7i8Lz0RR+W06-o900cq35pWkU z^qGs7FU$?>>kMd2`C7mrYXSRld$9O(YsJJ>_i2M&W06A%KP z0syf9fC?JzC3PbeP&za5QHiW@5bDj-!}=oCl2Mhf@lmHt^T9ww1=bG#>nRyBcC5#S z7xK+{A3fgs#tiq{DBr7^#QJX8OdO2A#Oyy1SlpYdaVwtrWqP>bE~oUQ+-UI}G}830 zgG#1%L!vy_3;2@b;5|Sge2}N4RHWgDJYm@Px!i+UyIt#<`gyZ_$ltx1!ik5}YYLv@ znyvL!5?rglO6pWBuYJ$0X;hqraUx}-g!bL)RMiYjW;LR794}R;SMENsQ$2*62?o;# zu?CMUI8IKBb%i5sQ)_I)J_JEjx1&uJF%1SEhCs)d8Lt~THFBBJ7IIp3m+7|$cmkAP zv+jO|3Yk>{h^h>?2!=flokjW*l(gQbQ^)UwoIk~~??PF&dUW@i`}OWM;~B$w$Z8lm zLT^tvax^WSfYLD8BbEvxEbIu}Q{@t+O)A zh}TC6ufBhikrL?_8q_~9BvSpZ;e&Q%r7rarc5;>FaORLxeNbsBPi4_VH<}RxgjijW zc0B&Tb6!#@k=^IySZLID>ay1@)>MDi<}Z6V?pbrFBkx=oM3xrQg%wU_pZT;W`;eo~ z^zYwqOec1j2unCFf7&5R*4sBX@$HWpS_tIqpHMRd6Dg?HnVU!5M8F?MmTr;N*Os3~ z>nXc>x)kD2wE(&#C#wl#4oy&rMjT}MKJn&fce2u&m>J#RZ`?#qWyi}A6^A|CJMFZu zV!oeh{U?Ox!jzw5rhaq%vyCSWSBHMpuZ!1Ekg)bJqD!;wujX6VFQAjM)4V@kpzfPT z)6wGzwQQ52#@Soa<#(TTZRvu?NC5|ABb1kRgDS~J5aK|Oi3D1vT4Fp#o{)gW1T#c> z-hnxfJ0W-6ZsME%A5qR9kd8>hrH}OnLNsd`y3h7*ox5hZSpqOXWng^8VDT z$5A6$q>?tOadp(Z7j$0hCUhvJXmYRDFIFD@J_twJb8m1rCRvVl?ZvEdn$GcwC6fAU zItoGWjAgW-iCy(M^a@HYvhuMqwC0UB3$dT&k&%OI3h3e-@`lJ&Bgf(huJ)I>!xo-p z*!F{+I!HT}jk7@tDa94H-End2XV$6yvLVZ#LwV=4F*Du!j}A?MZDt@0>oK zE&K8PJv&b3J%3>^pP!?+-@KC)*nwI#C!=Kt1jU(Bfibu7_EdMgD zw2)F;r3aN`TfA;G zsji&Tl6{A10Hwk^D@C?DGmEs}BX1uocK(jE)o0nz%+f=BpBI8$BqsDauhl{@Ey4qRL~8vb@e~( zYv7E@dB<#GxoftjIY-*q!l+R;`rjne+z}ZrgtLXScFUpST)Y+Te-)0Cb0=J*BqS4V zol5_F^)9)vh2`ndlne6To#e`!OA|(-TCsvGdz3vXixgP8XXafnAO@M~zC(q^reTg{ zWS9!`ag#K(Ne2s#1!lOnKlP0?I^r3@1KOfY;Y&P)j611i@9$zblo}(dvvo;NWG_P; z`-;+#tg{bW5%px`s6Ep6k&R) zZyj1Hh{s&JzJkd#sQM#x)(_X4jt`LgUS1VX-&#KpugyCh zbX^2zPN#G$FwrnaACiNcYrfNa(hXR-Pek`w@3VWk%G}>Yrf=ogOG}m{&^Q(wd*HN6 zdRe$ky(?Qk|LU^bXe&2NS~fE2voRBhEFhXtexO;#E>Etx`D?5$f;I@?+W7tftF=M~ zCry1r<+I+FuF*{jh3ynVOu9{4&2s+>SAjWqwokGuSfa#niXbN8hH#<1vBaN8c)@Ut z4>3n9zlTLn$quSv&xD{7y9ch^5-)=;G8s;?qV6WvND^e@d1x`RhdY;o;3xfcjmkB~ z4Zy&YeqPXuk2alp6yFEtB`0d)iTF&D6!2=pe9CZ12mj{@V`#Bb2bY4@95B%2I%^E{ z!=X`g3d2ne`@v53l@C>=mG#%nxXQ7{2w&BjhVy85wji0f)A{tz(9`WOzpVSUJK{H7 zp*;ipYPY9JWYT9l#eimnl}UCzb5@dW=hdIDhh+qBI0ox@$cGLE~Xn@ zSf)%Q6g?*-HMMSCjUy$$UOf%)qgg%ojQ56W>tVTW#gwwTC*uhlAt=R6hJ~hhM~O8?FpGmK$i2eKWCQRTCpmD#NKgNYmFJ~vK|GO=05!56w~P2$=e+XIKBoxjFc<_k9} z-4@%5ViR*BM@R14W4zT*Fg6fr_c-R}!uZ#?OsEEoSOrCDk4rA~l^UbtVUYAj6J2%; zXb8C_+56%#sxho7Q4zbc0N@9b zb{LD^g$#x5h|5q)-{&8kTuUezUjwdFy*|>G3qLFpB>sH4ucvdt(Wz&pL;(Kk`Kvi^ z@XcA%&yb&4Iv;2WkLa&}TxeDTEdap^hMSAWui9${lt*>r(BuZVWx!5ETAk9iyblo3u8 zS8&0mSpG4HvA-G0uuPf1vl`UFW12#WZ}iF+>~I#$qn`)frrgMo0art9zWc6JPpxg$ z$M@?3ssEVj6Y(V_A-La%P_+rdhviIx-JytRYZWAlN~_>c`qGC}Y+Rtijot(*aMMs` z7gz3oIumd?_T|gz+|u21zd@n-NH^AIlh9u*XU{LA%Y;MW($vAlS+8ecve;7775@mb zdhN=!&Rb=4O}e?Xm`>SCZ9k>Ln#7nBEbs3)>)pejm>ag}E-Y_eSu%v}(Hh9cUK*8j z!sI&a$+8Ohbh(VaQ8#v9pzh}-G^oD6Cj1S2AcB?86MSl*z=ocaVTnVS=xX3Ldatr( zCpFAlE70HTaEYns$05|K6=QC3SWBiKOo%CE4Dh;yLU__;(ISB&p!)-i9J4C> zM1UYYe)PzY)YK)VDrb{%Z zM&!*qbFZtZfZS>3h6s-Utio!xX`PzktHLm2x|}x&o9EeW9KjOEZYUqKARWneX&UR+ z3PR2>@BB?dW}OLl!rlzE!7_-~Su&BN<1|8q6;Mg#z|vUU)J5QPi(M+Y=e>Xq z3@86VL3C(+^Kqe&-|^&kiTzr&1E8x-@3%kW80H9)%zK-FG=#t;IilNfnV|9?%e=#$ zBLd$_;pZsx$k8@;Px@x2Z=?*q22DCssT9r20o=Q~Zi?uCpG=}w=t!!IRiE1M($4_m z*No6P#@f0n`uVI*d`ta7B>*wMfFI%Lzhg@v>x>6esjpomlrWXi?`}i*XifZ{R* z1$gfkhL`s_XjtGmu4=mMFNAY$xG&%wKMk5#8<@qbQ(t1vWqmcH9&6>`FMhi#&Uz;O z(Ll&g7maM$xw6 zlBiO0_v2Dl;_QwLxup#|$3YPy_xrGU7|PrT52%L!-+k?0W&8ic;{6BztG$^U5kC0O Q9`E0J{>z4cjSv9%Kb#rE!Tu@V}i#7Nzk6)UQ0?@~%@t5sX* zRh8IkQ?y2ni~8>U-oKacoQLyt{(zqagoaiVKn-98sGlWqr^A z{*1JA0A~Oo8URqo;}LR~azRCt<4vkJ^ZNb0#kz!^rC8q4_^pn)UE%F^Uqo569nI3g z&A8~XE^Be$HJ2?s>3yO3?inNpQOWe^*Ni#HorWS1*oVsR&epyHr4Ro#^yXJq(S9j} zd~|!H{&gFtLighDrP&DT1mJc9Ksmf$te{Bd&3E>kr@SvlUlQXj`)3g%xFb)oSkJ40 zl2!qWJW(ak#i(C|eRX$?%;9Y?K&X6Sm)4O>%c&BJe9JPH{X`fXNcD$UY23RE0?cZp z2j{R>mQr|~r=<3cbLWWznB%#YM|a}^afG#f)T8#A_+tKe2a*tzA$M`mac)MdSrQD` zecw)uR{TQf@K*~}>c9SFPU80NnK_&%+tQ)x`(%=Y8<9=J(n!h?WW95u$nCMlLGOTV zM??QO*C1+pjxg)%upd~sNE~tkc?1zu%caW|KiWYi)-G*6SCOjD zkG*oi!GSk(+~oHeDnC3t4iWUGJ++H3-sC@$j>TVWyih0d(G~wO#DfTs113mb<>&Ow zadaMU@WV=<`ucu6t{2Jhp03Ya+cburVO_PU-dh+uD%M>0Ws5griVAOg_tZ1bWJLgn zNDpyF#|9EP6{#{7h=EUBVtHSz2M+kTqDc_RsR`b@TqG|()>7;9@~NnppSqs6>D~{B#c$16y01ufc;LlM_}`#7c|Kp zH>mr#kW}Hd4K5Fyc^=04W8mD<7j`KWWtyID67`2M++M(R#BAQW9Knku4b0CK8y|C( ztLriZ-4kE4ECvR;3wIs}M1<1}uj=>f$8b}&pyB21Cr&M)1et(~4LtXGt2sEM!EKfG+*k#qu2!Ow7skBbg|FsHck^d`R@&$*i@QODTa+p4kB zAv@WHe_&j}1C`seIoGeOuFEfuYCp<9Fgy%1pW*F6!~xNpNs)3EuBM7tJMXBqdr@7{8D@b@eV>NUB*4jp9G6SP!;*D8tnOR(hdoTW+M3RGR=} zmGFOuG0IaJ(F;e!0@deKQW$Tnn#pC}w{>yoxY?}yhFzORdXm8ZYw_gcTIhhnK;MAE z#4@e9FL5Ka^0dl4Kl3Z@7Vash)ff5W~L9o{5oY?Lhl_`RzSMA`BZwI<1^nR zdj}dUcuNKKEtl{pF=HO+bV0=8`R9(Ag6{FF1?866X#(5oRIK+k=RXU-JZqSpyCe4X zO2k3We_e7%QAFc?#eV+i1HjDYnr351p<8{3jBKgbRrIEwX6-@@D zM|VNfIPif)l#*_hsOeL;?nfhCUqhGL_GhxZTi%`)W^^wybJA;+h5)=71l_j-3TxA1eLuu$)Wo()V?|_McQuzet| zL7x^J(3+tREy^eNFZs**uGDGLs+hVlLW36>^kE7PG+X&>Rm9)Sw2l1qE2RmF8EQqP z{7#Im(^u|-i7`6*@St-BL(mv5o`@^!E%l<4KQL~uhD*uvHZay{7x;7kWc;GAz{b<- zAs4(3_U+l$gZ$WMTxL_DdG|CtLV*!3G`u`=El>)FPas zDOwc3Af9jyqarc1hWUm9f3J=#`~4U8as73+pM@$sZS^I@?o#u(l4q~YZE?Y4aV=@8Fbp}i^9*)=II@U|6PpMI8*qkql5-a{X*-F>7-i9Eg)L%+nTskCm!!E zf&($2p$s0CqX6LwV(cw6>dy!o%=E!mU&moFzFDWchkwT6PKT*~YNokLq=)1A$Oc6Q z+t7?>ETSW9o>~L&mxn3!R*Z><&-WvBkuneJ8f_5Fa7)cK`bIKN%f+)U9@@x+MGS>>4yjn`o1hket+ z$d^ju*HlY;-!6v6nKDsj>iXJ-qq`SN@OMzZ@5z-HOTu^LDRs@kvehoxEv%s$W}!v* zCa2?SR2f(Ig(N$zc?%vacQOyI7FLO-_)4k_?hb{n#!fFeDK%*^liVKBf8dyZhFHgN zcj}6(Nu^W-;=0Y-4h@JukIfT)s`a=8{6zien!Mbq>*chZEYw&yH~e6+fek-ni0f`FY^2SwJ1b&aYLDR@8B@ZQ3rr21Y9bJoh?JzeS&^B{+;ByxktC*$KHpy#)m5cCz)OBh>7{-lI# z2o`L0+6al6+Kvm4LW?LxArHy~k|wk|R}6plc-W=9Twg6~Pln0(pKF?YxoNA(jI5>| zSHDTQ!|vK{7Z#7+xIv(>r0n)%v(`paLLRcr6dUN8INkb+d*frOor&U>;KesXYNenL zuQi0FSiZ6*TsVd91Km$H7tijQmc(^tc+`iN8PyBtmh^wM_-ew#;8P1abrP>;71vjl z3Hx?y92@N@k>PUVSYnDCT~kAxtc=jxuaGWCcig)e@7Jp_KymS4ki%y?UGBnX>`B3@ zUFKs}Gt5FcK?R_slk1f>!h!{aidvKAe}m&6bNn~aRR7NZ%MS|(-Hm_$RR8qxKO685 IX#jx#00lof*8l(j diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index ae5e685ec7a7cee902537f16ef5a1b54f142671d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3329 zcmbW)_ahXJ;|B2Kjxw`Ova-)UvNN;y*<{=~>)d6pxO7fNWUmMbZ`nH}JJ;Ew>{(X0 zWJE|@-}mSH`{$R>^ZfAq^!x!Y3lktn6F>=I1gHiF*gTVq9DvdT09|kZKp6l4g!-XF zf)PkR4+P4`-wo-52tx*;k#0Vo!BR5P^3pQW!Tvr7&+q{Mpb!Ky$lV(q<|&N{_V=R! zQ2|^406YMoo{)f&yOawo`TVg>m7$R6hZgSTjZ3lO)POY5bt*LN5+1#N>j3<6#1MlY z>$MemunFHu7;i0x?VX$Cp(<%@$O|wTBygTPfDlyF_x#?KOy=;Xp?Y#o$$pv1+%fw| zV@(H(Lf@)v*>ef51e_w0Wi(IHQ+~rb9?MyX#P#J zFcG&adGbu9+!B2xn_{!`<=r~0_?Me{lc`a*8t7fzHA%=g#hb-mBqubpF(l^vkTxJ4 z-o6!0FsqWrOu5o%CCRUOKv~``Bj4T@6xH-BL@q;L?|xvt$2yCJvQEunV`;AU6-9Z$ zwr;K5zqlRGXrFC(i#NJ>)~5o70iPWoyhnXk(0h)!pU^1Lap1{bs?}F}L8xQS`vGrw zEnP^-&*ObXZC`bn7drN9Qmj=Q@=kX@%MMEPPEpdsykLY!7DtS+1M7bIRav;1O?Ye; zPEPXo-oK&>YnSadQcWne8V-;MKrKK%@70M8(~)} zkUv0XV9ti#glF5Zms|@&MO^cj(T9ENE$bQgTfYwT{`O&Na(_Q)`1R~FX$s|viJPHn z_TBK;$e7U33z+M6=)#AJr8*~w<$iFEVc9vKT9k-!e$W~A06UEK!ATZ!^I1A6WSd9t z&df%n#EdnVFq5+$4=&&gGYjOMs!uj;_GvJKMW^+z@IOum{Fssb$FO0CN z+-r-cVIyID0#ilO(Z)YZH97u?&k1dSL75{4=(P3{?F?@7`|LQ0<&LyGF1tB@x~#Dz zD}CA^DCN4St$yr%$(Oj5^(OXGwas<|0eKopH^`x!^?dmyjqm#}F6t$lOYI`$#|-jo z6tBh+q`M z%mAS$q?b|DX`bG1`io!wItyYQOGyjl{^SY11vuN15o0Q#gAh3g{RQ4bC{$7pv z^F63hFK=)8n_ulO>bBEbpIOWKi6os5nQq%ZOblBcsJjGkM{85?nrjVUA+1hyBxtmC z-9nlFnm#^<`)oeL6cH%!*vP?)T(tQN`9xnnK<(xYtA2KYar5JZAt0YHrN54D>y``6xQi#0$sBrw z*Ztfg1{E|%a7IRdVLnR@9aP72QR(RN?<|&9++|YMjn8O1=8uBsCB4#gygnU$4bOtL z=u($=8H8JCu4qY8cFZYz0}sGzAr0Olz8wy+t%s2#u57aQ=LIN7C30XGdg2nNViK@-SgfRHbZwB5ID9*S5qzed zOnpDZU{4JpdZCQle!G+q+Tl*($+AEOeAY$TZpi5Uh8;g%7eMRxikKQhCH zBz&AN)s4DwDp=tr?XsGd86t@t-PJ8AeV!VjG;76%Y=8FF-#jfJ!)wgEz4TtwiDB+- zNHX44WBI4dU`&1WFD*yP4@V-9< z7XHCelQd49J1#mEYgsvNXcA47ea!qmkt2TkJyC46Dwlsw*N5;A=K(vXkT4fv%>d(= z5Ol9?Sh!YbYV}c-NE5Be>l7>%0pOlAqKpdBFKK6sToR`6ziBA-uv>%q#kNhiJ=fgL zM6o}KE4qR$lG7#L?Cx2FU1D5-4yc6!#?0SV)oK@h(&ZQ4=;EHBpir{V_R=(~D77`S z&QNBeyaYVl=PHOyW&AF?zNlF9)aB%%K&VkJuUAm$-2$&biun9Jb&sP!udIpXp6{!# zIwvx97cXn8QaoAlm(-3bpzbgE@!A%OH<+Vcv2SlP_l^?xP=~q3V zK5h`}DvwB{%QHm_i|9@mxxD_ET3sgq4!PB+HtN!ZpOQt!6A35@)o(vekpB5BhLL;` zH!Ai)ANka2dR?Ld#lok|&Ze!nsV+%2ppfi~9y)qm*(t}vrxrJS>}#%b1^FZ|O6F~5 zHcbMUEe?u86Rewcdo1Gv>0F@kUjqNiE#LXa7+D?od%GH3>2!6dLA7p`{wbV5_a^yB zFY(CCz?@*-y(KQu9BGz8Ghh}n(yFP`xj7FziP}*xCGAto!MLIom_>!<)xx8D7MPbg-4$Dbp(>W?XI6x_Qams+i``PS@ELo zZ;IpxRR^=kzgx-EW=2y7I?4LRm9a@T%!WoRlG1!R(bc!R6u-KE)j16=-(ZsgC@?+M zfo$)(j}cxb^Jc=AIvEmW?NT#9loW{$kn45i1S#8yV_>JBybyXD99&3*D+h4t=)baM}AsKX|#ofrtw zmli$aY8|`zo#3BNv`j5A9opi1;{otx&9+gEcc#|a>wU{$$2#z|Av=Z)kiuMN!vFn2 zsM}B%dKm^^S4+665vUm1vtX9|d?3XZptv6@e37c56RusyCk3+K@yN6N0$sR(k2zKD z(9`|Uw#M*4S9C*ae0euzo^9#2k!3b_bE!)9Vt&!2WYqWLfX+FYz~;r|ROhgt!|fpa zqtaE1$BKCmvv|BR8oMvf;vf(a7+r<~xojclkE>63=?k7VCFFitnkQjESaw6(|NYj}3Nyx~Ol zOn@MLjQg0@p|Lpp*84QoiqDfWF*l_Y|ept_cQQ` z1QlUv;(jqF3VZDj%Z8%1K2P)FNG#AhZB#8efl~0v;Hb~11+LNqA2kHv30kDu0cc`f zj3`Wvt2`Gsm9Wj1*)Ai$Tt399Xq9I{@S3^ORajip=uNErCdsZ!TCiP@b+bhIpJS}W zs$&{&gr@1G1Sa}@_Mtgyu<52**flKu2uax^n6%^<-3c@Ww3?P8hU`!(koke-pCo1A zA1jYc$6I=dp4#oK!0VM7_{di`<+qK8EfNfaa!8qn z3BAy+`$=C zg)m58I)v`gDTDf7#Y1AMye6am&Ky4U6Pw{JE5yt`Qj1_Nbuq_Lk8#Nn#Ne}`1|GXx zmDV_0leeeSy_%KJv|9(qbzRA2)#tJ`V_W$2qk`3BmQ5x@wE}_r=PRz|Kc?)x_)uvb z$9fIE;0u-H{9Vey)@V`SVDpRL9qblpn19)K_MmX9$+Ku8`O@*k!i0iS6Zqd5@~=ex eKX{7&%>RlK3ll2p|NJTbt=GRB_b+q+fd2#37c|oV diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.12-compact.zip index ec40cd79b59df5ed3dc351c0e3dac8abdd3f3f60..4e6681f7f4486280a5adfc6e6a1d97c912824e80 100644 GIT binary patch delta 3976 zcmV;34|ni@9+My&P)h>@KL7#%4gl=6WLB-Cv2;NX000l20020XuMRtrRwREP*K@rV zG4V$ag{75VSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!Kf`_c@~#E}`>{mm+9mVk)8 zWg_y^TaP+z=d*R+O1A5qkuGxd9}#6OS1CUOs9#M>B0M!-N^#G!x8w%qyg($C zlz3sC*G{|5qPCV|*AoU~V_knTcFB?cElF1f6>2X0Xa>Ke)lDYJ4=~2+P|!|7?@VKd zhoh*URE|mhg!U3v#PP8yey4E3w4aN-^t_w$B=4mBd!)F0?t~IW4l_2g=c65=8L($5 z1YD*UKCw5LiX-{om!i$Sgxkc~zXH)HZ!JC?w3+)mcO)eNG4MC+?XZ6qmJc;+ZWChn z$r?mh<^#Q>;*5kA@%el$GEHP@TK=zUa`!j_lIBtiTw-nA={N9*iG3PVxpM>NAX)WU zowjaJ+FW{Dwdc}HcUqUjao1&JtWEiB`R}|E_Jw^%biNUJxqX0X$lOs7KrSiDK71B= z$kId*_1leAu)OMOt8jnwPgdymC@BjP`ubOY5Zv1DY0jrG&1ipe=m>^2ewFONT5gro zt!s6M2qI_>HHa!F(7)h}s0AJt8y{;BbRtenU`p|NVf~cD%~9VjOeUtlM)D;rc7Ch9 zW^4arrz@byN`4~mJg3?Q+XQjHyTH#FFJ97GS_e6Bw=UxHW`23XQOsEnrmOi^Bba? zc}(^7i(rO*JWSeQhthMa671eNY(ai)us*k(sfUPLI+tl)>!hWw)07s)Yu-_om!NPI zypUj3XB~1iDiD7I1>l?$9TK!|5%)lSU8JVZV2yZXN1Ue|Jzrh1Rp7D5wLPteb@XA! zd*4sjLYY2pOU4O_QBY9d+vfg-X-#fq?*apUWh@N;t;Nw9B01%r<{K`IFNuW0rIvC$14*66Ptx zYB7(90>T+!je|}m1~C3Nj*643!Mi^3^fglHW0g~$<% z_+FXj1txz1XY~|^I`_Tl`?z%O?%~d+NDxxUPcnN&%lY%W?@S5m2FpSV7V)-iEku#< zpZkq`Vo&NttF)R^cUI}D8xI)TzLVdRBs050k&Hx#E>hfB?4s|$Z_a99{@W2r9iQ{Q zFM*X*OkMhGC>b+>?p;gf60Bu;JzhX65aZQT+gN`=4Gz)4#D<~7nBx>xgvhD38M$&( zt7JGCHOnTx9n%IlGAQM06>6`qz(Q-0V0!C3yL*8c6cH9HYxVj90s9c)}Q1f}VgLN)K`XhK#m`Ki>(+XC$r89;ar8rZ%168ai z20nti(dy|ajxiu2`cO^QRRoo!Um-CG5TAc9tK(Wo27xkQknX3>BhCR0>%BaMlKn<_ z(U08@$511Oi^QQKs3?>Ew$hTXIW^H4!^Vj+6+GIuPcu{J&~i>zQU$^@B4((ZN}IvT zi|ktj2I&zqRbep|Rq?11{d2fG<(_}^A@8nDc*VYz_j&5Jg{y^w3VJwHZF%pZB0Yb; ziw}b#K}{>uvLHbJW};y~{Psn?J_2El9A511q&kg&Nsvg4BrpH1u^Fv~EMvPt%nfvu za3kM#jf%(2^cH@i+`ZzeC zpB`Bi(V#1Mf9tlz3basEh7y@vh;G~$IbbbxcRtr^$q`m@R-rs)y*;q6b zL}Oiw{LtAJ;8x%JuZdG3>7nK}W(@3lbBC{6n=t42cE}@Bl>l3%EyiTD4$ID{$g1LK z^&e8&wj>wStvjzQo&#o9y-$HnUgfW#dzup(vxUPaDFdf(tU9E%0NW-#b7Ox(H(?qM zv$VOsY9^~a@q@dy?S*M|B}u)&)~wwgSxvGEX|etINE~txKe3eyCXiS4djmd2=jKGh z1dhK|l|^)KqCSvmL=%1S4g*{!r|M^)6G7$?O(&WGcS;BH*3r`ymTO7*RrRE%YPblQ z9T)~g1*g|V)_f2zL=0~7^5C)*$y>`pq?mQq62o-6!cwXWszLs{T)KY?V8MA+IOsk`4tpxD- z4z0~YIh~g<(3}jD_DLSniY5wKF^>C1A5bJI zrl)E2yrG(h7bW=)@^OE>VsApJcYZUrHwc-C1;DZ=fcDNE4BPTrZ2v}Ck{<~kiCmr`E+TAPWW zZVz`D(2`w-5FL{qB8wXqZkXvcp=zl#>$a3^DvoL|Q@+A{H@$x^R&|T`y%)5*)u}yZMDaC zVG1k}6?w;)8PWDrte=V&P0sq{rr6+6f>6GS-VQc_4inba9Xev#!j+xK!S;Vhkwn8K z^IYJQ3=>jd+4z6hFNNFp1~#^X&#@_wjJ+PnVeXvTvU;MU`*zyK*zRD#sMxYAu- z?eN%b$DcZ&ha(x7>1nR0$rAI)P#yE?^lb@FL|!E3a$64e*Y24qnlVs`8+QG2)Cn3SQz$#txk|ixd?)ij=>zjt;%U4n{Y#O8G?^rymOayS~P9!O- zT53^LBKVByYRhKVj2t_|46oGs(?C?s6>k1j`m=Y}Gesn9BY0c%2K5We}mW z(k&w99r!w2fyvGGkI78i=ZCLe!t+a6pKoyme z?%;nXs)40~SV%eI$V`wtZhGVK4-8eSrC4n>?*P!C(d35#k;tm&r>A;t-)EV}A?b>< z5n<|+<1J(;;xCV`bV*JC#Wx@g3HXd~#c1;d4I?ypWy#%vF+EJ*ZOiYgXEfRk&5PO? z=3)pw@X|GSfr9<7PYH(GxwroQZ8ATkbPSQ=qB1u`L^@7RKbR42+kqyQH#CMl7edxFsf&t z>cUx8z237{!%kySXa4iXUh?FtiY)rmD_8U_NwtMsS5nkNvj%_h zWpsQm-ELg70fWd5FH8ebdui-*7$(UBH%D23+ds`ejSpJsv8}l6Z?GcmdiF4JT}`>X zTD7*^!_joFZZOg%MGPKFzcyxcY*|udxJ2ren-#p$3L8r$?ldA^7#o7#{P!d6!X~uf zI11#e;XCq{XHN^1ob4l;>v%>hQrCZG7S4P_L)PuvFJMSiNHLGdeQm&mYo-lkPWcIx zIqW%y-mrDL47Tr|k`Fbi7picw`YuI&d{Y+_YJ10`tAGHMd1$@>c)1njF-B{9v@I_$ zn8`p!nrFY@Yd~CIyTvG%cU204{L-M3Iv_?$x=3k$wY**<@}*beBU z5nX4coHm=}aVR_ZnXN~qFOk`iVlHc>TRCOtd6LV2B`*pY;4jqEFoP`?U9>fOLdB9` z!4Q5{Dc>prdGJCaz1>RyZmY**4PP`)Ndk4`AeqfD^GHN;rwr_pN#-#!=CHwn2{BlH>sg?SmOSkBO@_ zXhiQzd%=XE4q_7ozYS;D=N`F9I!u7dMdZ*4+*8?8#X7GQEecMQ$Yxub2 zmF0R=73Yl+8g0H_1X1yGU(lut$x)AT=GGsf8*e|(GWg~w5*?ysN?O$`^~Ki?-HVMr z6=(1#{-p>A$twT{+zN5Er25XO)fX8T;mftO8?kZQ?QZbZ$CR-mlFBHKbT&G3dFp$o zbUD_@K$F~RRyFF+nInG$vyAbRMq^6N6%ngxGWtr2o;Y!=Py3fPpL@$-iG3kjGFfp< z;9|71_tJRo&6rhdTCL{QK^V+46j&P;8nKL7Ed&n|)~lWk%-U-ZBalR)+f}$FMWy+z zosSzCV(1wW`XN-wlapDL25OwtOC=P4V;U+gz#psF+myWv|No@y^?guF0Rle* iKL7#%4gl=6WLB-Cv2;NX000l2lb#M-2A2;20000EeU(=L delta 3692 zcmV-y4wLbdAb=hiP)h>@KL7#%4gfoIa8#HMHn=Vh003c(kr-lsC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*-tQG1K1pJ!*ZU$mO=e6lF8A?uKtyw z?xaiC^A^gmtGW_3z}_*WmS+NqA?dOJIeNtL?v_G#DEMuDhW3=>{W=8uvT`Gs>rXcv34maIXRK6zQl?0!=WRg}sf2$Vo;TzghDib0 zdgLVeCNk1!k*T@g^z1i{RAeU)}P(8G# zQ^0tyL);u?mX{WlUN7j;MV&K%541tTQQ0{zzALJ$^)i0Kx zD}OkD5Kngac-@>}lAhotiEU)GFoeuZd(!wWnGS>Y)OWU)S#NvDVhZJ3&iAC*7+P;n zyybf|Ll53pu+_=k(X{|QW1KJZT@o^B?vKaf@Q+e@2t&TI<%AadR zPm((nI1KrP;utLCUxu3z1Av5hcvzD!2iffbMN*RC+4?Bzn=0wdZH~9w1?<#^a;z%7 zuJMCq@^ppX^Q4cvT)h}a0PzO2EAVlDvgQ>nfQ8O=ktmn-zQd#w?MGAh{%9boX1AG?INxmZlpU#W)i!?<+t%FDQ#R~5s=eZghOvbBDOyn&u&O3?m z(Ms4#`+I&8W6Mf7q&@{2#WwG-nJv3*c|DDNifCQ;wdjMXw~XJim_Nw+nIckuC@#t$ zLjk|7b)!X^^-CJlv!UT0fEie$+nQ_FR~hgSu$jEV(rX@or$j2g43zzMs7-gfiw0oz zJ{)`1aqwe+5lZjNeW-q+U%s!msWDy2; z(<#OCzhcEzqe^*!Qq$ir8Np3|{6g2SOfrg`&eee4`3K5{{_dcSNp7Wim595f@!|Vx zIoiJ4rJ!rQ1Xys%{G6U&gWD3vnfC_))~>A27a?c}SL6g*^u2Lv{4JOI6en-3Pc#b@)g{D*)Be_>u&77bTH;JfZk*4ZchlLpfUTZqK#~!kv-k~4%8Qp*XV&SI1E8T%K@~s zkj-C})h<+3dgWr#fj@l8kzkGS?X^d1ZXUghWW&*`E`ss5H*4X4eN{R^{~=ne*Z0B* z9*bszUBaKN*~#yN!Tt2=1Lf%*|ADv8k5aiN^_`>~Vm4Qem?$_3JchOG$xFGSB~Gnn zEfqXk6}LC8C)+kJmgl$RQ~}ZPWFoVitZj^VIa#}6`6Wt8+$f)jMg zSlf>UTM=}dw0XdqX7__8l@;k@;ADL=Y=G}q1j~FB;qbipUTRS;w9K^3iV)EHl?@Sd zmmx(ID-CMlSW0?BE=q~{j#@C5Bc=v{-hB+lN!Izc7dVeGAr8JZAqfs2rHNOLRj zWC$Z;>28c>Qtt&^vuj4;h&&>Vym13X^fmgT*f6J6k9GLdktqqkWUuZS;yhRn&lu0e zc$2L45qrRYf0INcomlL9PgfL@s|=1j98XmkeL;0(Va-89w8YtkjF{JX0U7Y8@I`wA z1DZ&WEG2KMB*lLLwTl$aF)?W!@~P~jet3)WY2v@90%XQ<&P`Qg>7CsDCBud9I5NeD z{F~rOiF~J_-rg@>@ioNWMnTER1M#xU}5BX~%`OZS+VpVSj`eQI(qt}|OZd;gNR zGWaonfh15*$~2&Iy5Pau(8GUx&&Jbv%98<@Nf>`xz@2k%rEQ6w{^n({3|*5;IO6$O zN~6!=bvUSTKO-V>z&1GpORb#5Y`AOgrwZei+~+F8e!W8N&YVo96hC?zm&}J*vh}Ph ziOfni`@9AYvr6LWM)pbPKCm$^A7TD{b*7JhD311CkFz%}xNIP~u_F#vQ0<{1(+ z-NSH~uzi`N5iNmfc0DtZgn+_tnjJ!a$i$ioE=Fdv9jP|)&tKq{BrlTT7&lomdVff_ zB|wf`^%(u$R7_Nat!OSk{5hLboRlMGp5+$YMs0!pf^rtfPFR4MMyv{&S}&S z;+;5)KV-5(5<7}6sabfHN*me_ov|f>UYD6o=(S7r`C2NsoE>N^L1V%7GrGZl{p8&T zA+6$`e6eo8HfAIdp!LJw0x%A7{7lyor|P!i)?hVbgD3_E7+&lWjo5pR{qm9Kr+ z?Q9K^|6dKSS7ZIRNh-6}1$eYW^jf7P$)EP6Esoy=g&c~MLS*o}CqcmAFXBhv&lM7n zU^RsmTiF^;g-`UIRK2aU#!%6J(mhM1$8thBU`sDBE;dj|P037v(G>%a6)R_}-vXbAlmI+788s-Wa zPv!xL+uy(m2J7g_a6Bb6^QP`ZEoU^oW9I)VVHG!g(qzN~Fa=Iv$}w(LqXc(E7bED> z=06AX1lY4%0TS4By=lpR5S!_?QOkInVXP2Ml(4>u@Ph)?_=*HiNt_ww zxipP8g>0{>@3UK-Q%ZIG8`oaf6CKz2b#^aW!7>DlSiOHhvLelzi;lT$#3Fozs*Q$O zhEPFwMRuaj9SWpv?BUBx%bEV~r|VEl0Rle*KL7#%4gfoIa8#HMHn=Vh003c(ld%t6 K280d(0000tX+N?6 diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 978de5038f81d0029d6f859445c7200b8184d1bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3639 zcmbW4S3DaGqsC*8##S^`#f%Z7W@&7yqMuN^ir9OLsPR%&o1#X|dS670+N;!VYR_6R zTQk-hTPQvK&i%PL&vWs=daj?}9|5PJR0EI$7y-%wz9#Qj6Iq-X0Dxp90H6c_0D`>T z0t0N3-j22|o<8sLHA)~v#i|JB<~sEaoy*%+iMQgf$WzK+lrTH0bkv3kT1 z9XZlvD(tagvlBPk^wDtt5}xByPH%F%U?`2GnCJ2B^Dpeq(zuaMADkTcbemaxSOT9r z;TWo|{LCufy&_YRU;%__nSZM+b z#ZX*9yr`ks7vqysUtYx<-VeILVW1d)eE&`{dNFT)$23r;4n$reu}IN^zlvL3Ck4+) z_t@+xeyS3}8-Io9Hl0>8HTyEX=gYsjPTAre(~j&@ckz{#N7RHIM6l3Yh*_T6Serf& zYO+Fs>(a*zqfE>1_WMsjx6N*OaMf-?z9;LT$K0Oh0LuZgQn$M{{+qpx9UR zy(B(qp{etpL-8LKCidUm$<)A29{o0|X$)^<0Nm8@=yxP{60*Owx##>1I3pws@|z^?!>%QDxho9pKhNx;7gsTvp*$>imD_oVm*`68bh6f(p#!I?$#H%* zHP!FIKi!!*&INPhYN2A;)uI6^GN|nkiU=!4O&EgL6W#uI>(kcaFOHNT_K^y_+X3(& z+m9k4{<}^d{1{^{=_COa4v1k&1A-$A8Rey?lIj+(Y&{&`$EqK*Kt(-!JyHiWi-^Hx z|4t$*QtF#x&lh>GP~SYB*?!Z`8@5#c)nmmjSV)$)_+8k_?!F?&G|iT2DRPy)3aZqN zj6eGvb+~(XebDj%X*!pgVGc>sJoX34U@jpemRQ=_Z%~7Yuf;cI>Fc4=vOhB)Zf2bQ z`expr0Nt_@d0{|)^tPS-QcHv!(yXh@vTFqnuANQ4r|@a}Osy7e`36se48vIAH3=^L zU&P#j4nqbT@sH{Cwz!M@9O5VArp5g*Od?SpH$fmd!2{soH?!)txjGrgfjsvV&I5~H z$8aKzC|iFnk2tj?`-xIBxbNBTQ~wM#<|E(MNVi4U-0&S;c8?4tTRUo)Di`=4ev^)B zZb;cqj@wVfwbm*SXu_C&IW+(a1F^?Q; z3W=~9y`*n4ND}%f^aCu~+XVm6t{Ks-K_M#B-8dq39fN}%xeq=svzI~P(KM|ElhD|o zK~wk-Wb21!&^ZZUsorDtKJ_3US&I&hWrx%Ij_9{26tZirC()!3lv{I~CNu1GbWE-m z+aGe1_Jn#BK7Ui0n$JduVrH96i4_Kr5390jL#haRhH;^ROa)Yq7V`T%# zhLD|opMzV(IIsoktvAlK4KXhU#Ox;gqm7b9SH?bmF{#3}e|}SD>UUoi0(37iuR|XH z^+>dFPPd)*NV1G4Wv8&ZO{}POS^uium4;vb-N6}W z6L(@ktbq!yM|Z#ylxCf)b3}hL+EX z^#RY~{di!}?8iK*#2`!8)6@ZPNOD(-;ZEeDNhGH# zWQvTazjdcQf5Uq}BbccYHJO$gA?m@>Y~TbL43*vL8jrd+a@l;nZJYntKr(`bGmn{L zW}0}0lk#{}pc{+XB6lQ;fGnHyqSW% zn4H%KRH7*u%yX37)wfr(s?t>WG~AvsW*;b;!9i1$KVkSr@=(*pOYEJG4drfXXAVc{ zyw{gXJo+plUg$JL+FKww`w2s@MWXy2a4JDh?7$V8K$%H_L-|phIEg8YwBD~3j`U@O zlHP>J7SscyryCg@du}!B5{l_IEX>5cZ7!a*7lV40_)?%;A(MB|W&&RvUs3yS0;^ZY z;rGOt1Rk)*T4#<-k!8XzFsnO^FxF>?&U!YAA|?;UdprTzn;nsD`AFI$R~XHrFA;GBv;BFgkv;M^NF{3 zGATIfK73h=uMm_tnHHn#^B$f_%kwbY&0-v-b2tlrHawdu92F_akAazeiTPkNqdpF` zYBfrZ_TXQjtfSM$pJJ)uCR^yh>cWi$KaMnG8`h{jDaOru%a*ng$AWuzCkH&f$1iEA z;F;L_hMqs6tsBvlT^|Z1*v?ESU@`0FQWY~c!MUa608;)jhsKf{Vu{d^YG~Y_J6jzBtd91uC}7%zLf?h0D9* zLY+8-t8@k&)X=)Wc8Cp{JmN*Xd9TuFvl*;)-aLRHP;-CT9k}yi&H76LCmTltzq$zO z5X$4r$M^vaz(nfOmpRF*wh{@(>5xeHLg6IMD9?`jl%@5yPM?2zc*Xl@=S2Sw^;4_v zP33x=f>Q_5iDmdw=yQyWcHk_PB_1LDM^a5QaU#3tGU$o zrE27As-mdncvygzAg*2ZSV#EK_Yk0--eR#;ZARgOq3&snKJq0dFcFwB!W z!EtstHp{=-&gSWPmeu_p-~?R70<9x;x{?cBPn z;HG2=!oZcJ%audaa&whA6j|&wg!?3!C0dlFz)&88>k{|ULQC)mdg6{BiLS0+s`>#q_bhnSSDklc zKp7y7S2_xRI8b}8QNyjQp1Aj!7_mHlAGF#0RZPGH5MjF9E7eZ1-+5 zn?F^JWl^W!A3h+ap~PT**7o8sv!EJyklF3qi0E{R%WU2D#E`<>O}kDdV}GZ-_|0g3 z%!ryoqG-$Cn>>@wT1`Py0)rn2pTnic7a7{<1Kdbb;coRkHFn}G4z44(q>T*DC&M3O zBMn=A$}Jcq%6nFmTZ8u>%+6a?@$olM7d{pO=xX0~7-rJ`Hmv${2Uj3&3dkzmJ3Eqm z>%X6lcPTvx?g97BSSD3pN>v89V8Q=#yB;m`fL-TKdy^N~dG@(8+o>gL-Xz2=Yk!z@ z*$RQTrSFy9XI9_sa;bs4nDgohw_619r@g#-3(AFqooXS7A5bUYS5t8bca`nscI8X2 zfyFa4ZDs z8ZV-0?R~f4SuuCZIWbC-dtj+259cs0)W}{Qv!aIBgU_n94ea*qX=Q@3Q`PCCRqxgq z>g=#R^{){zfhiuj6SPd%$q3)mC=>c~+5gC}Y3c~HO2+Uz7(s|#h!&vLt@}Rn2SQYF zY`gqdb*#OQ9PY4zPQnIsc8S)U$JaV_zjwRZb8bj>SeCSuYD-yv3?X#&68SC+`0kx7 zMpNOcp3jwcmGY6fvB6Wx#`9>2p~62vk)?B7t9r{9zq@Or1rTsDay5$oTi*Wo+y5q# b?7#T`svH7NMg8AB*`GT9Vf!CF1OWaA)JfP{ diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index 015da39d806aa7f0739eac705191201978b776bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3640 zcmbW4XCM>~1IEuK+3RG5bCt~{qbPes&R+4)&J1VV*&`z&8D-Ct%n;5lI^vXZLgv|f zT^vW&;qCu^f4{uX^WpdD`S^VJ8N#kmDg%H3M!*Avw`oAGHrAN|07$e40OSAwfFIlq ziLkYYJKDND@B7Tv&EE<79N`70 zp}Y#P1^^-e0L8dC7iqGz&-;ZJSThNiAdM^2{clgJri}d$9#jpty zdtYtkXI9ycxx2*~F2H!mCK@0gj1@q=m-w_xC`9EoZj!<*R!v8$#|*OE&(T&iZ|Gx33KZozMhk7cCV1aZ-O51?=!Dir`!itmlw8oC0mxNH zRDKr2?6URGNW~d;FRiobge9c?7!G@;<9C;7CGuGKpt?mSTbIj$$Hggi<9UU;2r@iU zi4>3xSRpT8KuF?_-gm61?5m*W3V)hElQU^CTC^U#qM3FdHTM@rRP`WEtMeO|s!5(G zUbVsjkH+zmuq?L0jCyZY5)g$>{;_UmxY}v<=t1w6pqf?enFErXS)e?-lpB-ZoKs-H z)3%g{(DL9ZZ|ixUYpI&7U!xu+7MXGNaj}2H@>Ev*w0|%h{Ge`@p&u7JIB1R2zH#=( zjQMF`xJ@@raYl-sMPA*L1f2Pc+P6{0LRgYo(o&elYh<_pzF~Ze{u*DS2aTSTv5gF> zq%m7S?+(fgM}y7Ouw$2d$hi(jQSC(es4LX|bahZ5G75I>=Y^Qnqk&lc8Wtw0se2px zjJ_oo;<5PJIK7|aYgNX*B95c{sb20nu4$vrZB5e;F|c#uZT_fVmq^ZGms3bRRdE)u#)=H#S9@;O-frYc+ z@ZGbQ?vDJ|44DJdJSCg<`Q8d|$2wnXu=DNk9hVIWG~H0R!bU;xY=xN z;<~=2PO1NSoTTIP+SPTHSl{hymYy$?lyPBk^Sks3Mqyd%#zuqP4GXR7eI&A-h_uVW zTQg@h`xy1m76$_rN<5>SKjFG!{$>0iHxOqW;tOTYgyJbq+S2|A zQl-M{6A*$M)~Ki|F)|JjH~q&lhXI8#tXB-XNMwGp$-y$Kn&!uvn5kELM>%Z-v*DLh zj5u^X{HT}e6_igqLfIb9D^k8tz86O@II{g{HStxbx4@#|D{SK^Axg^AswJsa)w^T& z-uus}s-mT2bH;`xDM4EA$e};K^e9rbpwkfs_#Dq*-?aSA-|Wv`sXt7CWDzSK&&oRx zxzT`Ik!J-=RW7Z`2xdtrC?wk{sU+ib4nL`@WAt{s(_;$lC_M<>meD;-?pgBOt)lbI zw()=#sHK`Id*dI0x_3qWt#@ z*#U3*QL314w9*--7> zb|dCf|0r#XS@vh7GU!!lrSZQGniySI(S`#>qeH_8TlA{xuvGELwH6;g{CDDBv+K}AsZxl>je^P#;zrgO`Iq3-f&#Im5)qsh{QEPdxFE@?3 ziHqZwp^eVB7stTU!&%i12f}!+;4|W<`?EHkt?N0{n+rbVZ`1`dQ}O3(`n(-qC#}O+ zEMme~10?m6U;Y;0lPb_~|MF_5dP;2b{RFkk=~<4=mQa73Pii=%@Vi^*hF6iDsc7>~ z%tmD?|7!Zut!N_+Rssr zWRc`H`5){LvmOw5ypA}Et(NoyDKC%YwGh39J4R^&`DkifE>T*DTqcw(0{l!Fz6>AY zVHSe4%&Y3v~zQ)<&LnSU^yTChNvlOXZg+6;*YPk zaxICEavTH%WMND;gtf6S1$A<2ps-l49EYt^1mM7^C>g+RG*t5r{(c<``8vCZ4`wfh zud(>`ICa~*PUMRV(1kw+^V~%vb5b6_w5`D#mpZ$+&?^oj_vm#iqI79xe(QQTKNgBW zS#~yN_-}+ZXhy!)5?Yd9z6j-ZTXbI@)XwNA$ZLo>3pNJcXI6~%nm44|U1)&Ws^6>8 zl>0>%;HxCWKD5{Q$7i(kJ96cWe2{jtO>oY4<$@|oJI=|_kbP*t^HEGqwnSmww(Pam zffcb0gC}O0wBs|ppu$C=$b<^$!EMOFT4FAqgy@#%T95VZJ+P3>$hy0DQrKx`XW3_x zu_tN~bSDW!aWP~hqi|7n-?AuufSzwbYiPYGBhH{s-qDYYM-eWJWj8u`JQW;bQ3lmY z@k+6!nYYZ%PbMrcCBkWR0)(1jv1_+-nQ>asghG(?Qz$;riVd1Q-CzA}JMdZv=tayl zDQHy|jXHwu?dC*tvx$L;vlQ=E1v5q73<#fKa;G81RB8ez(k&K@m_N256Sg^D{4vOA zB|lV*^(Bq%l9}Gu z>M_R6p4%%6?fIe|HrI#QiOEU*ZG&u2vcFSnGjEp}_4|T)M7i-+{N^v55&%rLwA{Nh z^4J8ZE`8+5b3_9TmjF}OXkl{rTgFdDCc5T$k7D{rj5WK@ z{fME7^a)xa6#K(}E85|(8(sIdx67Uzlaip(^)l8>=L%Fa#+Cu1+EK)J(XGmd*qou2 z?kY7m(Nm**GpO*XO`=M?>OhD!-R8N|C42|CmEH|;k|Ry2G#bycq!rMR zCYQRiY-r`&7@lxKuGxq(F^HN*rh{+^)jGH_UcSsA7oY zffvW28czBqjdfBVcwSB>=EdG+@KIoO`usU=f$clAOtakJ8x&k2))SO2Z@$&{A&x4F zv(@(M)3@kkmSA6YZr*m4;2NfZy$Jhy!qfV>)!|GrOjoE49JMce!h~MF@b)H)cdvuGTbLc)jhT>RFwXe1*4G6 z$$7F_dvK>wV4`F8nZ8)Cb(EbVazVVhC^WA!?vLHB^{b&b7{|})Eee|N7VG?*Ctz&S zz#0zOH0ECOUU(b#Q*Y_NH+)8 zmAn@Pq_r#$u#rXw8)ozqGO;W$e&#qnW$Gh4E?^pt1MOwu(Dw1;v-$dEY20!FB1YjB zJLcMt=wU&d^+B0SjwWG^jA=(Ic@tW3RocOEg?q#!i9r3JwlcveGDp|qKiN`RqeH2IXh`D&eMuOZ5>jnW|;DPmc&^2vC^;% zq$gD#n7bt`gDf%aRsD*}w-(ddbE=D0#glr*CRN*V5^gmWv@x~cR^)u8ei2^fXS6qm ze(Un}PtMf|43#S-9&!{s_n7wPjD(c-he~Pov}=`_nQe@cjT)DeY8(7k#J(T2EE+qE zkb2e3>37{O&h=#tu5yv!3a2g9!LkLD8Fhs$N%@VTjo{@zmFKA;i~^{9<$v4TUxE8? cA}IdF|Lbywu&Y%6?kWD(`7hi4`XK=DA5oI~;s5{u diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index ca890d83ff930cbe760af2efde9c93d2ad9edfb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3634 zcmbW4XCM>+P4<k#Qt4I%n_5NSs4t zuk7*f{eOSIywCID_v!im{0w!-$l(A|06jn+md3bMk{&wydv@yGqU=6TEruGl+c}bH6*}@(uDq^tR zOyJ3~?OOa0w$NbnL?_#|jMnsO#y}iNHqGga^Uv?dRJjyS?HlW@zRD=tF4mbkxYhru z@(Z&}$Gk*wrYmUzYd_;zyO%?GJ? zcH#F#Q(`FRwYt?>kNL(Mp}*UV5m=o2fHsz*`7-LD=a>D_DBOWpAZ`lGWp#g0G~>65 zZ0aPCIh=lbhWe<7J+pm)D)x_(f8q3PCw;-`<}2w->}bU_NqK2FzUQ8mR6+(x;oxoJ zTk|S8`XfB2NgbDIwDBj-ZGF87Ni$Yr?p$(B*%;k7wE)o-^K+~YJ&XBs6s|rPV4A_!vM=u7 z_{yWF9-)%wbBFf3D}M!Dv%&UXE6QBZ}KbP6ZD6JdShg z6NIZ>$}%O-H?DzXv62lh!AAl1p}4*E46#&9g>CGqsHtyM3f5La#YXDmL;VaP*sjJ) z*1k{`2@27-wo-GFed(i zfYML8Y~$RGMFRWqx12+T5~F}^)rk7W zb4G@aDYoXIuQSox8%3iO1D>sI6>E9Z(Sc8|2>fYfs#cNXfj8)A2sdG@opm_B0rIzs zS_7p$lb4*$)b=&0>-BwjYb4q=bRfwrcPnk<3Kcw(#qpSntEx)CEs;{5WmwIDaPN4d zk&d@T*w_=5P}wg9hCIPog#MT*eL=h~(g={!0ul-}Kc24_i+8vVv#M+YZaUR6VUM${ z0=GMTo8Eup4njU$&i1)InqBqQu+oY{C0TM>K)4!8CsaLv@jDcQimInB#^>-@7jqhz zS7+xMu#_0me`r4TzQE;uoM1w&AOY180hCE5z?JAIw>@#Xd^?{Ih<%;>^!onkNne=a z5R^N!$fjA2uSRF~Ds7~@ptI@dYXJZ^PL(V*+~{b@fQJ?YFQ~NAM|asVXQJkE znDUuo+{D9YY$@zTu`i}BK$l*13Gypbe(`)ajp)L89= zg+Azk5SJ#E)a{78G~C5}36nx&xLIzbQ%_^dH4R)p(_MJ0Hr0Khqo6mkI-Of*)wYcz z(p7}Q5Ohvixb$>P0rL(01-!N|zz)Q25@r4%I<5UuaxQyU1$oulM%3xN%*9hGNu&>Y zOLPZu&H1v^-Y0bvjuSX)DcRrEp^2|7hfj0fHzphQh}-B*G=`>#dY)oDUivIVr?ZO$ zbyd$XP7Pq_*MOR?RGn+$GHmKP-jkgpTx!k?iGYbt25NF>aeuA;f%G{AGlG9Vyg)MKZG7Q|3Trp`w)0GtMHY8BLIf7|R<~u}b$w#Xyh13>F!SzFIW^im*xt9da+Bc!L?7*Nh6&R>nDiznrHwJXWUBW&d^|LFb5=&b7p z=rdI{K*rfT@wG2yW*-unCjAf$T<=BO&_csP9y)5jlsx2N&aI)?g;{RpyxBwnuUn7& zmfxOYcrWFWVL$Vi4`#Ko_fH=kQRICrgIRyK6!=;$zBfv{05*W@TYM zVN=*el}YQ&^U~I4k)MsPF~dfrZD7Jzfoc1GI_4|pm#Jp*U5QGu&KdF{F;PSUWm`}J zfMhogk=sq0y@oS|!{}snyO>s_O#V)^Fn*arKqQO=*T3q{MhoqugY4p$=$liXh3N|$ zcvG%v{r<8guwmRI&Y9gnMfc4f!MZeBd$(i8G_!ZZh?ywvr zGU=s!!}G!4{lc+P?4l=Q5?>i-b58qR%9-f(swi!!SPCu0q>XB;Nb{}Qyz-tOLC|fV zH0qaA^PgdhU=044Z_HPUxYm1zuos^XkR~~z<;k-CU0+OK8EK2-#KB|p7mb%M^CBn{ zZw#$IhOCAaqwBZMAD~r-mPl+r0*5N4}zlK8!q zeX))8XLIrhRVyv@lR-9r851EX6QZ_8R(%A^J6Xf`tT2zN`uo34pEBMmBSqZ!NCg&S z6*0e>5)t-qACmuABFn`g26Q54r?6}Q=fmw2t##*V5PLhEmC^fi@UG_E$xS!EITMjj z7_=VqcZPJv?6m>oWZI|7eY(B0Fpr%@kKF?lTH<6li(!pkS{jXY_)^xu0fjP0vCE%g zF>HURZml`)4T25x=#{jYvw?;7=@n0ynG<)jO;u}Gg{?lV1l@mC54N3ijxFYGOkIW# z`UmX3+Uea$Lax(yTm>fOe%{v@cV^@Bx{h-`Cqj+G+;E8ryep{ZrL`R~H5z18b`sVn zlKT=#ARWC3?zh2yXKOP*@-D$aP0FVb<>Cv-aF0nu_eP&5jTiZ>=2o6tg$rz3n&G9C zOIDSaN00R9i)gGQ$=LT!Jky=dyR^mW%1X0td`v^_+(OCH_=l@0ZQdUQ<8C-UeyXECPv3x9e6ohrd2Q9ALjI1u^ci zjM{c_J`Tn1w4(A#XUs!M2FGcnDz+laP%V6~jwi?Xsyt3B25IwTzt`gdNxuvBMJC`n zV6A~N$a8_FzOHX#9yNu)vo1~z7m)bDhvS^^nd@ST;88;z5>hzXfA_Y3>h}MMAo&me YSBo>$p`iTFp5$L${;~0&83F+R2MqwwBLDyZ diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 4fc156e0b6ce6b7d13ebb57dbf09d7bfc5863c1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3536 zcmbW4_dgU41IKaprm~Vv=8-LX7IJ5lmCbR)*}_q-&WMt|SGF9I8L}^uE%U51PjonY zKi}{3`}525`TX#HeSY}-0dHeN0I50=2@yS!vcJ#M-J}eXYg!^AHU}aiMIs`iK$v@g zzr7>O#oo=++sV<>KFHC}-OY8%j-&4P*P|!NH#(5Xt^3R zH@-1b%igIswqfpzJk%7PiLB?H>SD`Z_G%xToSDpz_B!K-j!&K*NqcAd?pd+iv`%=|w4u-0XE>No8hoUI|>6Z4yhSm?jJ z#-l6&F$#VRofbw@bQRU??`0-cBkhxLauJ}a-R$=EZ;pndPusrRb%#IcBJ0n8>YeqFocl=ia3=?}sU!ari)nndQp70C95Xt08e5&J z7ccy!sD3jXwxIpX<26J_+K4K=T~^J?5;{_tx8bRyth^19kFNMgKaZM+$>)oNZzVl?tc}yQ}+m-pXB8FK%2f7 zQZ`4e-}#25^uC=xQ|)DgMe)?$OXhm1lg+1cF@5Aj2Fp^YE@99X+ z7&1MK4o0ge%aydYv(TL5+w+)jVDXWq{JSPY=V*H%scG`wF>748Ine!~S%mogV%wY- z=EbJ+ryhkUhX|7UL$@To?)XySHJ@Rh21@y7!xnJ|6`h!D6aqlQK)%mnOJAGVd0vU^@+U4jn{#7yN(VzRyw6X!6hYwm--Y-&qg1E zbyAURt)~L@fmPop~xqh*q;>8Cdg=CS76 zxZmKJkjUMOhM2a)+&w%;-E)fkP65@)?}D2EtHCZ6H? z233%s6XZ9L0LLqI2zxX}W}O!<9gu+0(TW2NX4M9b@Xp%x*&BV7}2pCu#nCp{Sb86aSQN zn+UE(5-6~q)cOqUpI=!=%@*}mG*GL3;`xe*ooLGM4rxx|!9>{G)x)pW)i{R~BGQ-|Aj2#MO57Rp| zlwBv)lQh4ZPA2;~;_Eb|chT44H$rcCvZpl;ZakXNqd`JL83w>%^abKGWq4(<%u)pn zppN0uVVS)nfi~gsJ3EkPTthAPXLG@2m}AP-xhW^r2dY{h@2t72vIuF@+!IpqyfX}F z<~#8am=4z-a(X%b?qk0^q~|pLm?9{nLjk=O${XDfxvh~H;}rj^&FUQ39`Z?VJi9LF=|XXHS`UW*iL^wicM90xi03>tWB5X^Qfb9V(7@b z(%*AuD3Y|IhlX>p#ROrY8Ke7B zrDAeWjQsF`Do$0gXlXMoA1~_kHICQ3j+l`0FyRjiAOew<`@yZ=B3|3Cgc7sOXnJag z$!GcDF)S>4*%t2Mg8JHO^a3;%o3>q{Lmi%sei6^N9nCQ>l##atYTcav!5t*|Ji)?j zcHdZSHvl>YW+F}_gty2SQ-wV+y&p5Zi+#Cl)1c5@Rs!mcudk6kiil&=x_8Ol05|m9 z=PFoG;uQWoz5%<^a0crH3|O-EB~Kn|C46d?LbOU9N+|z*?ayg#dWkY6I8=`?wec^R z3Rw83z`+_dUQCw-Iq5JVw^GcHmN9dXHx}92Ohu0RqlKj}bT78ow+=xYz~8S_8pC%* ze}`{&nw*HcD3w*W&pc;oIbMttyE_zPCWtS%dvgBRyZ(+jzjU@Dc5b$?o&E<+McVCY z>?oA`Yku-fIKshBBJlhH#<`b7?j z<$y#7vj}k29y?{(i2~9VyHsK~wr0BeL~d}F$MUN`NZc%0$nH36E40?t;d#r+uBse_ z+%Lg2AHlY#qL_k<+yq{GI*2GVa%qtRp6_=&NC>Iq=xXZ3xzUiwnwIysV6jVQY}UCm zrR$GV1{oJRGuicoO{U~UN~i9~-oqA7xY$~=u8@koPM)QVEU+-*1b)&itK^oGbG*z= zhESwX2wd1pzM1vJ8C<1^8w|=ueTwS|ua2{6ygK+I9W=4BO<1c_>)l??j&xc5+;=Qb zJRAAq6ev+jy8eo~=H5HvxFw}ZX;X4}X}b>++F0^_ZOTH2a7AS7pM*vNgX52w(_gRX z%<>qz8gYR2dHXlnRjU*a`T8u4dVlWR&C5(_e^xcFj+zXpCqa_u%ux8GS&;>6ut~!G%Tj7ND}kW$`YOuuQ9j<*fE8}OCIV5^ZTlovUW{NgkF1BJYFz?*|EWlo4`d+ZZ#^@C|C zXwd-k)|3AB=C)QVVBSf|cPgGH-yhd_4{wx=3nBmP=AMy&DmxUBuh33qMC=_~)Ou^5 z{Bp19laPXLS2t+hZ;N51{<^zjY2)e&neEw8`uRCfw`#m@5Le~Kezd?tspA@uTuPnm zvi_FG&Ea-erC)Gtx-aH$AtPlX?Q7n{L%Bm`wq@RQUV|?oGPRnwPk+*$U);c1NVal$ zrVc|QO|BR9BJ>5N+h^;ZzA-TSMpW(r=y;oak!Y}<=XDKKCn&LssO%&qcbaRmS|urn zCJrf@H$!PT8E;cky51<$fs%q5_@!q8fv==2n|?8K{Lrs$D0vT-J`*D`)fJ;@?@Qhj zmOeK$I~TDbsL;A}bldp*_#uQqRdLy>E6eC4RD367pT^I0lrvcK9&yKg|Yt@RNyVfgUsT5^3_xa2W><)!)+b!@0g zgKx~~SAf0oz6|}l%iE;WdN9Ch4zO5V?o<}z^&!4%^PV!ADt%(|9FjQC-GHfWztxdD5KRrs zy_m?c`|e?euWg=N2WDiPn(=u7njfK+=>+=5GK!#LJjVu>BiFbzg0Ueni8|naTh%{e d_1{Dg|BL_Ev5XDL$p8Hl|5Mk0_>}J7^&eMb!~XyP diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index fa54d472fc15730b011bfa7f010974b1fa47298a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3532 zcmbW4XFL>u|HtpLXNibNwv3~=6B4pB&&tS-vkym{O=Oq7a(DLLLTAg0L`Qe_-dmx} z^Y8b6{(JKKd>(vWp9i0(-`Dr8r%6I854ZuK2go8k4BtXta-Gux0C%kcfF}R|z{lOm z8)0SR{@M!W3b(a!wR&UY)YL5^V2T6j&K?u03mA#(_+{@d_#>>vp>5Va8k$yc-BwRPQL_oj!Y{hF zp~Ia<{4T4Oo6+AJb9Hx5H8WwQ)P}?_!aNRy{!4zmE@-Ct7`Y9qVjn{QfQxUHJxgUg$3iUU^501XdIv z?XH!1atYqIo?#&>f{MLOlsa&xqM7l0{JkejvvCzkccogg9vt%7Ki{;u_xLM)QFvWb zoWdZ5sCj`5_SP}gkE=fWgSEs&b-x26!Y;E>3dD_RVZg>uKyr?XPF_)de=?gXOmpluMSqhYQZ-GjfZb&)Uywl`~HYoSC^r7 z1En}S1fg+4kPvVd^LVlRAj=%<(8OXvSX=spo!0dY{=A=%dVwPrM*ns$TU;ysZ}g!Q z$(>~1pB;>>SEyB4y=iU%_HX`G!eZbGrNYTkVZlzny zv-p?6ON%Sh_XJ~jJ_tAV?1C$N{r9FO-E@oRf6md=@|;`7mjur;4P`u6KDWolL3Ou_ zzUK;pkxWZZcS!e8Pm}oZQnsa93jzu2q_da#Vb|eb=5G6$i{@3&r!#G{gvLc0vjWdo zUJU}Ozr*aLgcCjK#VvA1ro) z$p1R@l707Sxqr52;{$T_^PaNowQmSYn*IKJ%mqO%B-w{&aA)G!*MXw!BcJvzQ;EkW zdipQ7n43i041eOV%EGHR#bbbtFt16Ku6>Y$b>xfeiw1vUAWe%}RfA8awiDj&_@r5+ z8a!;FZ$~}r#8i?5`}tC$giBa;QNW_+(hNqfE74^zBi3q}q#lrgkdEJEOx_)r;mzfz zYNH!9lodb6c8wf#0ove(fAR}|Hz}}kt_*is{{7+ng;hu7H1*V?4xH$cWP6QgZ7=|d zvNa1s1{6`fp_Ga==Bf36+M8y$bLvatFLDNJG5cjBg#IyQE@lsj_Nh8~4>q9~mFuTP zemt=`_nJx{~~nt8v0KBm~#`0Qn7Acx%;kv8$f z9zv8_EC>|WTFF+Md=6tq8k@k@PbW!&v5Oc;1J+HQbiBq!;$3bnQ!xm64uK^T*qby4 zy@puI=aw_u+>&Q~)-X;GQ|1>fDs;|ygo_Xdr+}%B&B8(gEy$MThlqNvX1I^?eq5+_ z77~D$jnRN4@hw0eunCqdyJQ8wW?Y=bp-`FE^?qQ@-@I!f6 zk3i_h2ny*uQK&?ehb3B}%J^a|HjdEPYn=KR?=uy&q|Wql65;ro=fs0REiD2_|Ircb zABLzQN_hp?As_G6d9PcQyr5Kq-uXuKDYh`sQr8&h{aR!CZJY+jMX{{67&TBmGjDmD zPV^(*7Q5vpIWFd#mByU^xn4KHf5my-t$+j^g!=5B>v|XtS2Fp~2gPLKgl`HlE@;BN za!;0VG8w9GrqjO1Zhz4Btywxei#vTNoLaA~k<;=D(&;}mVxebk$xqZFm)S|G=pHKl z-DikOS(Qltt6dr(`V{r7Y<(czpSN}~y~rq3%=Z!9h_)b~QTas=SW++jItx z`D+|f1vtD{v!;v5u8xW_LExru8F(sJjqQ2VBe#Y2HoWOvRu*e0Flm?@R64um`dkN_ z^uHCeXnx5~uPV2s?&r0)r$6A^sbKd|-8ykdk$IRX4)M z2V$4A>J^>+rN?pDSE3~QUNrj zr2~RiYD=r{kk#xmj8(7-xvuuesSN>>9UwWNiX)MOrz951jI zQ}4V~4egBQs?G04vwlJjkpwoI`aP6QO%75hfsrr|>BNIItG^D)L1-{d>JV}f*~KTw zZ{7^YaiU8Tf>|?lbBx0F&rwW5(@REld3Cy>p*_DTPi&#jLU09F=~z3q#~Oc7&h#q0 zX`1o{bvCu*6N^I><$G?fAq?QuxJBX^29knt&X_V@~ zNI2j5Wch{F?%s%iS7k3xz~H+5`0u`WHCo+^?wWc@EO37A!9?3K#>Atw=#Y+ON_o^v zt=U~gBI@av_0h>=Xm+F=^iVJ*Kq)rwSH=oEK9T}p>j>3|zg~S;1M{n-zxh6l2JO#1 zoroeqJE$+FO9#x=nD1kix7e`RRCnJT=a^j%z2EF7meKv%smD4B z-RNTNl8CYt-Sonj>GaQH-~tQofsFviYR}z(Gq!N`UrTPuylQ1$JIygQJROC8E8(`L)ySmzB~DW*pl{Fa zNm>>|4~#luSLm~C%(o%oNRZ4 zL}~;&6n>n|h&Frj0RKgn`f<`)c}J%|CW6;}L2EFsS4PR|(S5~Pkm|_q9V;g;V2p=o zfBXxcWQMW&kQa~RWI2R_bqltd(@*nBzgX&VD+eCNH6@pH*S;ONVdJ} zZjt%w0ODQaoAM;);bhAZqHf6L5`1~AE-RanFz2Lbvfue2u`qv zJp_|ht7cL@tWs31ZDi0Ak2YYthAR9uS&KZIYAz?!-}x#y&~OJvL!6+UeP%zp%RW{D zy-63)bi@v0H6x^ z%Rryd5I7>x1CI1Zxgq@F;Rv)3!p+|^L`Gg#Syo;)1mzF+j0{4dL*WRtySGocr>t)X zDv*u_1aJlb;sF57)KsL>xl%B0cB)H*;l)UxkLUn@(o+bx)~)8Ny|-I;@G({0cEB|< z116p@02TAwaM@1%(D~Bh$EnG4WG%hTpG6CK1n@I&5FTARn6G;w|LpzD_^Us8xcy3# zg@12Mv^2b7xjne5P??XUP7~T`1E@uhh?e1GUXfv7dIwu9=bzHX@R_s9XpP&X z4HZ%Dm-;tf&WAE;}wKP{w$c@9s>&n9kmZYm-21_ z?>>a`zkA^wv~f;8wz8D-8f*geT~FF3wU>-`V(Q3^q66FP(Ra_w;A;F8_TP1yv6h&} zLoPgXp^0Jp#{*x7Z^ID1uscS5U=ts0Cugm$4wVj-w*`{(*$3?QVMTkU#W&oz@oU&Eo z2_E*-ZMLb1070eZvs0Uc+w4iujxn%Gu?+f473K03%FAUa^`F^gxRJI>qod4PX`YVj zwxBhK%N>uq{UTDs-^5N>AkChQ{T-7B${F++qCsW-2%k3^zBdJBWx#yMw8 zHMJli9cJ5#c%gPZ2&yyCl?JUl8xo-Ga#H8OE@R_SWN4wds7Zanxa8Wecx+5G*vfXR)lBWwW|=w_)oIhlXdlU2UhZ_}xrY zh$m&QHf52{C8r~_+11@EeqQ+M{uy3jXMyb(_@we2=EX!?ymqj>Wn)V#K zle~%)&MiojxGGq8T6jCDH{7>lDy8r9OQU$IlE^-e9Qdw5Ur$fR$BmPS8s&itb3F*% zW*so0i$D$iKuC*3J>E1;-o@Dkf6Bvob~@NTMuknT&~DHUd)st6Gkb!(8Ksc$9$RS` zjasj65xi0!xtE=Et0JyY)1IO2mJ-3@(%j2{WUWW&;fIjCZJ}j<_{OI+{g`wtsQRM2 z(_V`vcDn;SF0eHc9 zE}{Rlqm1?%;M;lyL8jz7rIO@#7bS||e9~T;_~3pT=ywIgt{YbToprHGJXwq+Ie{UZ z2w1ln<2KCK_u80P-|;skn2=*1EG5v`ID53E?M#iT#v(Kt4E*ialyl#esqD*1{yKpY zk0F{lg2OTNAFTTt=bHTWddFjRm9&0z#?KZ%D2t)J(}G+QZ1!_#VSgw>C|C*TIMOn#n-Yshpg*cIN*iMjc(g7;S0C`jL$c$cUwYOZNWd-NV`bTZ?CZc0Wbb z9JAGf^&|FLS7ESl35L9UN3zqH-E0kOhrUK;K|$QcEkpkK8+nNq>DF>QO3O80C$I@I zPm06dydPcew#S_@KQ&NV>t5PU7zHzwl}E%tK+lN2zfNE88|=eoRa1{R;Vyn_hFp*N z-fH#15GHDzY0VKyKW~%-)&6vM3`BPMG|0<2D1Y#?@!YHEsrhB$&d>`t4T0p6&-^Wi zS>ZF{Q^l6TzPz-;55^QN9g_$`-xWUjuZg=_Y_K3lRG{e-imdpAUT6t5zYZmb@5YY4 zguB@`=h2kIRUu=RnoMz}{+DESY>NR0u~7gpFV^#zH|G>`wPtZ^FCoeK^U48V8@I}{ zhxPtLPL^eb6P6*+-QUL-&mq0De6IrdrbW_}bq~f;T|&}p62mf!V`zs3m`w{i6iDno zJW+?ZUncn>4K2x5UOo@bV_4CTW3{EOTZ?~|WZ|a8Ob?!atl1p`nBUub4l+c37n(Y| zYQ{h?npPULeG&fsOVB{Sm1=q+_|fK8hAyq1={9s}^(&Qcm?IsFC<7&Nvwap4O45ekjSo^1lg$hY2^y}+iGADR6Ma{MBoj`is8r=gkyTvKI`^Qiy zI5%ZL%ky_US_LclLa^fbw}nHGd)XuHM%OLs3>Y-{Z4q zk9n`~;Bqst=9^CDI4h`{rTj7}4OAnh{XJ6iOQaT6r4FsokEw(0amG z2bboi2Q9O%4pP&0uKBTHeA2n-PgM`Tu3gjfUQAy&^SvE6(b!a^;^4H%b8n$nl*1%B zqGXdw7pE~Q5}{(v(@YaSV&<3JD#%v~+$^c66`_1^G|LYpAHuJ?X0+i=yLptr z##Diqo|mft8osC9H{Fr?kDzqlYz|84e_G|?H0)Jd5d;6W*Yh++E6=wQ{xoj?QlRXT z&Q!#3wp_M8@ae^jsH4n5lN=4%&K-bgV!9YZhTcaq34opf>cNaOR=inCt+7WIHoIXi z!-_X>S&zAKcVy<>^q(`TzN3IKaXVITj<8JEYcg{jAG!sDO=fE|b4-ay{nhzs-94u= zLF(M!TQzMtOLx1z`d*O_F*~FQ%=kz)W_u>y4!Uz^orRbY~i`yzZbF6cPC1T2(RkV%2WzW6?z=0@$&>giXk$2A-O zHejBKeXV*t&l&emhm6G^--|p6s#YC-qpu1DH%Ww!D&pl(9sZQQAThZi;(9>_i&34d zSO~uPr_P$UY@uRbikK8c#9q+w-z4HL3a>uc3TmT%QkPhesxVrOhU6xXbniv+(yll~ z6Ep1)?_=77d*gyu0-GagZ7~xGB!18VPwu;8gGtJM)Z6-oLB?ts&)`jcPJikmz&hm_ zIG@rXy#nma^KmfLkBE{^v}`f}{u@dYR-N-MChx7HbhM97p8G-D{vjxjhE$TTr7;rq?H zjMgJQ;d{VmTcY4kAI4w?53ZHy*2#!^MTog$`(0PI#eQLcNvLulyTO%IA@QHjD*fSq0ESH_R5}DoY6`4 z%t#{HbXMW{exKi;U!KqBhxhCA!{-lpn<9Y>8UT6#2jG^Er}^u95Mm7o0C;E%0Nelo z0Dc}gUmrV+hm#%Fo#23RxAVt%<1h~H&OQoos1g(o^&z<1IR|opo{X;t9~7&4wh4-F ze4p)7aEjsyCTA%Gj8t~X>|&%}DUEWw%vWQy#(=-k@balpeI~6p*+_p1tcVf8zY_}{ z#sgy#Vcmz20QgRAO3|PE9t-1%^6375CP=%}H5{}jb>05wY zz8&=M)MO+d2VP0xFg_f$|5cPPyQ-D&XlK+l`{F9C(=x=`i5LZ`UZD887GiF9P#KC(zaKOx zt9gfOH0Z_dx7IVT#xWm!vS@p$r#RS=w+pe%wtmEV@~S4cSK|*;_t4VWRBz!KWw5=Y z{$jbzWJfP8em|y!l*j+{o?|Ch2*rLpNsg*11{3zZ;#JRO3n>$M+2T{`vObRCm}WQW zH=E&JlV%%Au(-e1No^g(K1c{&bay@Zj4^Eax|9s^GkW|1wnjN# zGy{C_Vf~N9$K&{$bL0ZwJKnh* ziz6vDZ*?aPsLW^h_0GL_L6ZmM?{>lzcLxaQxm*?886p?hN8yHdm!xj%&)Zb$uzIe_ zcgl@7Jt=Jca>!jSeS?TlGAzuI-cs&cz7*OZ>FX%cQn44*Rmkqwn^#_(YtI4766V1F z#C{Oe$?5kH7UIBVCoDEEfFeM0TS3!JXa!{lcvloq1)I~FavUjUp1DG6axBl(UmLzI zAEvB!$~$0nc;~Xw8$sa&M@AL7t4_-gAlxYT7msLV%V87&@Ez)JK z&$c%k&fTOvN15Ijuv)}H*YZ;ENo^c*;h!&OWqZ5d?Y?j|yr@IhUJo)dzVjRZQjX9K zQVSx`+3#}I)-pD8Hg^~JD9{g85ldq<4m|Q(Cl@MLu2;5@x6d+)E(G*|+hFLo(o)mU zcoWdeG?i!LUM35<&DRJ$ndh$w7Gi~cavR~?d-;n8C$7-^A`5s`guet@srISMyu|FTUR>`6VXb% z*5{vc1L?p9h6s>iPy7* zSq=BBK@`813zaaBA?sSMh-K6^PA|E9aFLfAV!m<#J+dKz=?wR=z5@7UF z`P3$Iehg_neBGUHB-1wqcciFyJE!hI>YW+PCvhB`g4M9MkDVS}x(nexqqGFYkgVK( zzQDvIT;>NQ#gd?U^5um*%xv$=N{U0XS&p@>$d*q-mRZ&d}?BDC$gpl3D>zb zG-M=r#f%PVa;VwnnO)SU&W#xbS<5W{QjAD#ssJ;- zQ1#y6KXkKz*{L)SezLsdIiKZC=}IF;>ESWe}VgmJpwnrz!`}|I}h8I4)D&>a}DM22}(q zH1s|sw75Gm5g+-eec^>%W8925a{VCYpCG%QUtQm`MK)o>s5b)~ss^j?2DYwQ>E;>S zLODEiCfs!9N>g}w_a)evu2sN=y+UNcSF0jm8ko3bP5O-b=k0>&&S38!(`*U71H!xhU%o2|0cWpvb(#a6!?`g?BuKVJU}Ev z+f6NdVk1_^-poGco_HI!fA7ZoMsER+I$Wj-VjVly_%`@$lv$8I30uqIZ$Pyk3reet z6VN;#@9kpgVm2Kr?&&gvv>JS2*YJrREQszxI?V1B@S zL&{FnZT9)(RN^Xt$gho$Q!02N{Z#5#+!co{1tnrdMU#qy9bI9F=+6(pt0$`bYY@^C z`+zGf#T}{tp#REy9Qn#Z4z5$w3Hwnid7V*(l`KUKas z+4EOI;FM6TMNoR48g*UH@JHkZ!>34RKNA=IPCqrCx~H-aRSueivFfv=M~yHqLFSt( zoSVCh8F+6*TBhzYe?P zzfR~L^VN;8*cB(uxw!+(pqW-_p@Kc6U8buBapccb8=82jL<`|q9=IvWZ%u@@bqz`G zSnfz6$5jbyan0&$Rs@@GDcmL#^+FFFly7?;p00*y%PhI9Zdd|)<%aiehnrLjo&?N} z;9XN|@0njRT8syBrF!PTdJ+-cqXhzi#xWpnuY5_4(C$%=W5mlS%fGQ!Ut6$Eb3{Lp zmjINRCclV*qODnCfCVy1t>ahI`-~^aZLW1eHTj(!r8yTSY6OKP3fhMU(9NO@>Wky3 zTsA;CX>W?x=6jX*zS60FN|fH0nKFZQjYIy)G6b=P(eEDTA??m63gMRwbL9 zm56@d@9+KZ&F^_$Jg=TV;PY6Ij9eW+3IGA1{=TLn^%nM=bN~R#1^`e5004nL9s&L^ zxQ{c;4e`_wj(`QhksfeIgp0ov1S|)Jfc>8$U@jrPPmuvIIMT`8Bgh5p>HpM+hMWRm z2LMC?0IKovZnA%5{Ys`MnxORg13n%?UEFa=#_Vb$HMDK=wcCBq%9<_7R*CenQDa?Z z!d~n4Tk+$K#YTJQdf9H3K-235BM6-A3#V@%vambz-W4QmWNH|Dol$a7s)s*j`Gmu? z-jMHJxl@|yMvCU!t^+8A4G0yLNMVnFx`sshOxEXDst!x;#OP#Z1I{Y=@Ac+o*!z-n~_ zG-tAN)8dv6AwqkfX{jfrc1*i$UEs8V8OoqG2#qUIWVE($_Bx%T+vnBjbC<6Z?Y3&3YdILr7i~pfHs;JN&Tmh^%beB=qe?jD*e1y*zo1q*F)5Wqb5iV16fR| zcX%0jpgU65F1KBqqb{9eP+UpBkvP>S`0mot#r~1|ZWpCkPPzD8@+s~^I|99Ly#k2p zz`qaVOW+Fo-p$)hO(rIgsDZh+r!6|IRh{{~h9{dLo)}ukNG8+PT)(pmR%A^0OLX_3 zp{#i`j@Djtm;TyCX(UtE9eB}x`~oZtFONV={$4m1FRM^4x@ZOv^=JNWPp0ey-+|Br zjYa)AGLy5uFLc!iz|k71{B+`ixizvRQOO1EcD$c8gN>Lxv)!`Z z7ljx8KFMQ(Pkrp01=sF38(&-CuQu}f9VzBbeR1*;+P8KaAdBm3`6exdoXya*Ofe`e z0H;0H=XoNTbe7sr(G3-NSX)CLLjeU9g^G|Aqz{Y%N^{W0ILjy2>YP77Zny%74hJ5w zIsd?9%Xyfbu5XoBp&>^lk*I5LJv^b#OkKQo8+=M}6v+2n)@nl1FwB z6}Vj6C>5!e2%KH74k;#f6krT*>txmE1nAkrs3Pn$=vUuDj?=%MtC!OpRM%vRYI?iu zhU+JsjyJmn8f23_pG>n!C)C4>%0e15*%G;5R!Cdi%$3Ga%H3oR!MYu(oA(JAifd<@~>$>ct(EMNcSDHLy}dty|O;V9msArfr4O+(K- zN%cN$iK{Wy?>4FTw*s>Xh48&3%4O*QF*gn`t;0F4?X>)(7#@V9u-f|R2iN?_+ZYw( z0{}UvMu)*_ZTi4Fzu*zhRcx9>Q0E9&65XKStcx=DNOjGlYbjKzi^PB z*4U7?jFajDTaDLul~bdxb)7>64Vnn4h4#`o79*)Op|7hPr@Xotdfi+jPMU)%*Jl`02PmHGMVU2%QKiYLVYJoG+a^ z=Zp7$+1Kk&B|ZpiwjF{t><>$~)YkLa9oIklsRV7OjoJ9#az{i)IHSp0-6RKaL|%$N z(GNk~OsEmJn9(zJN=xS#E4Ou6l!HjpRG7cn$>UDv6`0|{+dCQQI5*El%)dOUySm*K zZTdt}PjE@Fk-vgZZ6I_9qRh>x*c&7t9d_}NES_eL*fM<=vM6w2{?fU;hG5_-lzTOU}Ln(+us_L&ey%t_n5c5 z1S8t`0?^A&5*o7N?1o|<+y&l|EMH!)vlFrQ=9P)7f+(c&RBFT^?@r}Z%!W3X*PFHB zOjxM$?-|Fa;Lv0|Q?G8lDK{gjsu*wnAEf6`lJ^Z-jwcJXeGD&SG6_3VXQJfA=OL19 zvs+ij4vT&XTIDr&_<6HQU#oA^daKPoe3JUg6drWu)5V@vG(jf!YR zk(=~Wij2Gu@PJB5yP46OW7h1>SrvGkWnNN6F|1 z-DfXe?QxZrhH@8<>+IZ9Bhmf&xTjT|+@h7esl4&x7m*`&y=;L&fR^}ef*=a{Rz}ai z13D@GAT21b0`P{+sC`tnsd-sTF9NhIqS(LmttjHGvt8}&^k=!VnaB-R7}YY!*PB>( zSbJs&1>~11M>o0-$q1UNnC@bA-@ghDYfvY@85#G2(DdWYRrX|-$=`9=UkcgL)XYfE zQlk+gg0DT+B)p^6y`BQ^A6h(UxokczRx!0wk;@lrl?4)BYYUd-A@nYhaULk?h25ff zh8cRqHU^A|u4t#l^dm^p4CP?=*h1^-2k~Fcvzy`)bvEg6-L0kB2j-`a&K4z!?Iuhr zJ>jacsjh8jYQ!CWlp7RRsr`j)cExjG51EJLOwon#dT81>2N=lqxLyW;e-GPzj=O*H zCv2j?Kv=Pue=#Dxv`l*Q5BdKYuUy^_&Pc|31lW%Fy^gz;u4gW~LJ zI4InkMaGnd9LH%q3=5~%dd@}95=#)N;=*7B-P|?txF-Ds+w-#H6XhXPDM6?+0fW-- zvlXyDP07Xl@qH@5ihlhPC%cKXtwBvo07rhCgtJ^ggodW%<+$Ix6O1faG!kAerpIKC z77fd^M*5Hcpq~*#f2t$FMjM(5*+Xy~igOnIQXT_GdH2D6&ca?XL6L8#*@{rc-w+M$L!iUQOvaV-M8oT(iy6AMhAt!#HZI6`NR?Liu9nNP}-Kx zm~X|sae`UO4?VN7qBqgo6J>Zc+5!8zU^#$ zXfi6^r40Ig<(#Jc5@ZmjsUX|DymO=Q&*+HE2e(s)01t@v3&i!r!0;hd{T9t~yJAIp z%_)1%Zo?bzqT%T*O-83r-rp3ZK;rPDhYXSPI$oS}q|UD`Eo-V$6VEd$W26QO?-|&g z(<-;`uP|^Q{9Mu0U5?&MiAoXt#1h2NrgmkgDATy@JOuk}EGg5F%_R=txer>c!G0jD;B9G$juFlaR_}+dASVbb0Z*W;lZaM0s zea|G|(UIXm#6~F4AtB~)gYm4nRCFlK~jPxhz-XDZ9D(l~GlIHP;fL z!C~2TgB+?>EfF9ZZ?2WkEj(B#OmnDlh)3099bG_4#FqZg6Ky;whR=|eK!3-!rJGco zkED?af=&4G+_{G{>Pnthr`u&bkM&4M)ye+1IsReCe-lOW@BF_4d8|i4`R||PpSu3D K$bVD=0Q?7mf-jx` diff --git a/tests/ast-parsing/compile/using-for-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/using-for-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index abe209825a4fdac9900ca05119a02e66aec4a7be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 769 zcmWIWW@fQxU}E57SesW6lBM?ML?9Cb!%a2@26YAohSK89ymZ~P{32ZgJrg|xz2f|w z_|%Gm{GyWh#G>Sk%(7Iytm6DUP8L>%SO$g$1_s-Xj&$Qc#)S(no!e&3JLhO#rs{sV z*4`i~JN5P4yG=K~JY2nWdj#|SkG#zdXZDAxWj~2~(Q$U`0{=HZyl14Z;0pP7)6?K~ zM8%@ts%#Uu9;`q2^%65(Z-QXkFOFD`%V5I^(ctVQb@`MWk?CMl@(c(v`Yj>rFtz9fNdG@Ik(`WgTcN+do;)^|h^zLuA6s9R5OsAjd9qHaK z_HpltLy{|27jAy)^VDu{ae|TO-^Tb)kF7m;E@jN9K6$0(>YSkMv1hl&lz%F;InI}J zdxFk}Q?oi5c{66V@pMGBZ@jlsY*(rluP$S+RQcK?@eH%h7$$F*;)&x5P}2Ovof;l&-u$2Al9KPgJ<+*JWZ=cw$u-M>;-SbVSeqEZx zXRoMmlvA^EZpB1P6L&L=lA#Qh{PC2Ib zd|mzy5mDh_#i?GaYTj$i7m|L^l;^&1LAi+a&YnAIOq|c{9w;3A#qd?g;m*^A+nI!u zmu-_i(0J3ZGsS0?$f4E`$_f7uNXktL@MdJPXU3f_fk_h#8W=$ok*PGmn-!R>85kIW NFce5n1159^1^}z!P%Z!f diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.1-compact.zip deleted file mode 100644 index 21c7a5ffef8f21f7de15ae52e13e9360c7e07535..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1513 zcma*nZ9LNn00;2@9?ZyG(SxWdj697zPp3siGI@wN7h2had76jFt;UGPCQ-&53q_u4 z9wLtsd0w6lVG2c|%~5is<8<%u^SR&e#qZ7U_1Do30>uJgKo)o$NOdX9Ki`9q005PP z0H6T?z|~OSK$0#oC`4BuZG=9G4h{16CS0Qig@k$IL#~j0!wG0gXi%UOR08k>fM@`) zU@}RD-wlIv2YaiJA+p*6eNj!wxFl!A;~M-O^~UA%t+f1S?vTl4L~OL6$yMEN#%qrG zsw&4pv}Tt@1i3{i{PX<+y9S_1et+-A)1Andu_8FJZ(2ActM3cRn?cv20JAoEe zv3KrHzm6^S>)R=-$RolVoqag#cK7v|3Bsp1+b)%oUn81aC&ow*S=E>K$Yhw*(_Ehi?#h~4!%V^TsMPij)XJm>0k>W!jmu3JEO5%YgU{lI;JVC4 z>#TQzc1qw&K4H*#Ryql>!Ap86GjTxdFck-O+QWZK;Vbo*jEzwYCPnOsEN%gUNvX=H z{uFCor8K42DK`oV*kl|!_;^7lk|C0zy_SlSbkTTU%NZ}{dx3~WMb$Zk57SPYh!L>; za;3s0f0HxCy=lIwD{n?`HL31ea-8!^KPpv*NkWlt{Pq#-1Q{M08$mt4s_6dSP5tEL zM56lwBi>k$aCU~k}QI_Z-=&6b9L{1XUrU|dFAVMm5^20b`bag8*#OHwr+}KQi57hl>9>J zTls|dl~4yCobHA@xGd*z@>#<3QmTKuCX`{?<91|*LEtaQmLV6k(%3EEMP5D~v^=|9 z>ggi^rP_4+qMS^Ha5yA2F^YT^zr&8x+?mhN{fNwz`ErscSkyG9R8rZavr>akkQb0< zhHl#B(&-lC!G*R2cmP`QO5_)Cpog&diAP!>D6Eux|7zo+>mb5L^!7?{QC>NF>qNT% ztAse*@Qi-ep^D;Urrh|T>Zx{JR;}Tv4c$dj(K-whqivXJ8qN&pIJ2_5V*rm< z1??hyK25ZMbmm}2GP26#>QjbFBwO7|(F-&kCEwtkK3t>KYrJD!Yf~_=7IPdAis2MB zWTB~vH17&=o7HXyH~93oY<3X-F=s$Zgji_e@%TkL- zU43m6x_>W?m%X)dGx>(29SDqt{I|c`1pk|8(2x0_8avuaz<%68+jZSu`ZnkQ@DDnl BzNi2I diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.10-compact.zip deleted file mode 100644 index 308daf50f9ada79a51d58f0f54ae84478ae64143..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1642 zcma)-Z9LNn0LTCTh6_z~QY<9W67z6{b8N(97iyQM5u-dmw6UF;$K>G}k)oqbO~`Ys zc5VwXkLPJ)c{;9=xd$7Phdd>7?%v<$bHCq<@0;K6^%v_1k+BB$07?Lh5a}vCQD4(2 z3joQQ000L7AetOX2u1`ENeE-ZvxX*yWMYJGAT^Rm`rh{{$v-5N5@;AkCKBXjWC5Su z7XTn>wBR$J&qNgu4R9=>54#AVx;)MF?8`6|oTb=g`drcxU&h5j-Yr2>lleTili`2h z#Wcask1x${I6erjRB)9}d~5s~M=jaXmAk7j1-DkLTtd6Hf<7|e?MprE(L|#QPqFJT zp4~aisI=D;WiK~2PuBztlN6ZTJNYED-s3l)#|ju7oG;66oS=YBi0%Ff_k3A|>Uexz zrfb2bEjgv|SMW~_%u&m+0>r$@K;#)=lvIZ2lm!zoO1L%N<%Ly=k*ROIQtj6L8L5hff(9Cm0V8=(mejmd$4>W<~hG z*80_4t3c=^cA@fS)9~c9YwLUcTC>IKiuaUB=emvVqxv<{@R;%I=U$edqSm@Q)Y`|j z`%T-KJsaZd{nZ;@{9bJ-)4X!B(ZI5JThUG2_qE)YOiyA-gatV4Cs2pvr#F>sL+{B3 zN0Sd2SERXgm=ocNZNKCy?5yiy@``9$wHP>Ig0lPlI!eeo^ zp$Tw-cxsXI>S9l@>(wemQfI;%hdo|Y-tWH3RT1V7*1jw%*hr5xy!A2SRnPC{3&@7o z%>8gti14QdV^1-jLnq+%JS4(|;XG%0z&Uj1{v)&MazYJ^)|J#Xi?}hDcp|V)8$C-4 zBCEZjv(ZZ*n1NnnfB<2b`%2l^aqV_DcMS>ML=GGzS$so?IS)tj9?l}rC#X614=UL+ zLX6)uvODo1K}suelDAa!lVSsAJTjz%Yuh01R1Jn|*GXj4G+ccv435iR&;gM;9!6ix z4TPH3e3ut7ijv-5Wtw+H%1a>xwwecZ;cQ8Xou8j=EqM>(U zVwlNQVDEkAxntfBHPQIVne}7pj(%28`1dEgT7EIg{>n+u-BYK(vxjqi?8H5lQvdqj zU~jAJZe@>EXG2~n4f$Du%?TgJ1Fp@p3H?vYyUndvKx`KUYA3O8h^;26_f*RyHY^#e zFX$pwVJ&(e{O$pPttJoR&Xw2Mhu;;n?>N~g)2-&Za=yZ_Hb1FHrkjK%A+z`7sA!K+ z!`|hcEJ-OGYyN0Ny(VIw4s^CFjob&15xgVBWQeJ>tQiA*2HgiY_BvWz;d4Y)&3ouZ zSXmYBHqXm8gLB)a{psn#7a!!x zJV$i$YVf7OzA`A5SZn0BM6k`~rwQ@RPJWmRE;CUC&?f9B4V~B(v~eYJo42*J*gxUg zkjta?qx;Fv4mqFv!qldJI!X!`ZYRqBXfRatILMED#Y$F%m&`rPfLwCo^K%ceKU>AN zS?; zxENK}x0RBHddxfGt$W)QLfA=by3#jWAQHHfxWwO6{@g-kI7k;;U?A2J++z*-ZvpH& d;NK*J|KNY>0P83#_s<;Mt=lelc8vl6e**?{4{HDb diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.11-compact.zip deleted file mode 100644 index fec427a8b7413c8ca9633d2527c2adc205c2a22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1668 zcma)-eLT~N1INGHY{_F0%hN)~mZv<;xr~XC9k-U-kRs(_aWzB9Qz}o*Q*w6+O|0|G zwn&zz=osoc4>1~f9$~IL)9m1IblaPo|>V7FG z-~#}+0l=0{r&vfV!kF)R>TTp1JZi9BD&CPbv|*`} z>g1VLPJH*cxK^({>1n`8Sj$qQcjc?z9Ha9QPaZy7|J5s8gW%v0nGsI`v6>ogrdF<+ zl+t(BP!%!bX_63!jE+TtZZU0r<#Wg5)C#}D38*vY=DrU)$(q#Rr*0~XodBU>@6q@U zd5m_B+%Yr$w4ndJ-$tBFjB-`P&UpWE-m6q%|LF7x?kZeUu07Aa_0oam1@up-`=(cS z6R{$sbkDZYDhDIYewof3%MDIOqT7}uu(djjDfB~9mEJ@}uS2=Aw*JA;yL0OEH11rd z^+8%*0SoDXka`+jtxLw{lYgPjTCQ6;H0zKsqL8P70pDe|BbP&9(^1^bOHm!cFPUy5 zx{9%yu>_Fa(Nf-N(ag2U0MD`|7tVln%wv|X_fVMMwfs)7c7PUy{(Z3N6~P-pT6bZ- z{CtfImb#$AXDLn#jnO~g`!huKdkL~y^%f~jrR5=|mu*5mOwmVfe6vHAU3@29GSn7( zYJxEAx`cPh#A{cbl5O|t>M5^#XCUPyLC@Y2GfH8HQ{I{tg(nwQ2o`}qhihEjiiciI zFnFp(!Q}0h6ooBt*6(#3iV>_?qw^#Cx)5D}24-+3y4k2RK9bM~^ljQ7&UV&tviuW{>FRNd`;{~~ElF)j6DtbdeD zMbb5itVfHlV{m*QY$9P*tv=n7rq*#{@_xMeGDJPOZxTb;dhi_MHhTWZ@zdvEy*zxg z)wT)sXPXIk|B{oBP$cgAsypmMGz8$TBNwe_0$V)xB<(fPKy2;g-shHrDK9Fua=zH( z3%X;m(HjkJr@uXZL;1b$TEvGS&7IlS$`$-u+mY^U9pv zW@?L$(>U^MOUvvwv4Ef&!5tM!tDJD}b>hm{hVZQ}ETwgImOKjz7w9Ktr9pCfsVYYqd*f2#szi z$(CLzL_U65ZZj!Lm;E;J1JonSeyb#yHT1$u>*#gmIKNYsG%%9bO zapnRf?U=cX_jC{HISO+jp1BJ1o|1cea;(~B!r^8yiTMdCy9w)6TJwHXc(0ns@xb|? zbtHQm>a|k7g+I&`Ys}_NB0(*moJHxc^?jVqw-FkL7^YooRa(9SQ%N7i2HQ?i=Y#N2 z_fiU?kELx{$jht(?G{uYtlQ6=bsJfd4Bvyx^GPE(cr6;_HUl#1wq>s-)LRoM6wB+vQ{95hFLYj2^hH(rVmd@chmqXZO2=HBdb7+A0oIc1Cd1vSqD5)gzr++Uws2Fza6 zZx0|9KFpl{=-*^9-?dlxKov!F1%a`U|F4FxcKA29LI2=Cih}40h5d5}eJ%Mb)&5=o E0}~euwg3PC diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.12-compact.zip index 07414eeaaca8dc52a62e7e42bff870b417cc1220..0a20ecfc4c16dcca9ae2c3e34ac7df791e85ad88 100644 GIT binary patch delta 1820 zcmV+%2jlq94weraP)h>@KL7#%4gl)4WLC~Xt;*&G008SJ001YG4+kodMI?V8*K@rV zG4V$ag{75VSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!KcX9nUCDR}^F%P)#(=6y^8 z-q|$UM?j=$N1t?MQ&y#;_dv;^0sxJ9oA;X@6()jhb{(4BgPX8-F(UPgZX?5v}tr1@>_Xj0+F&Z-9`w z3h({z@l(!jZcV8FRSgP4DKaRt?{oiIlN z;Dn*BsNe~8a1!Q~Tww@If~lXMi-R8B=DP7J#B$|?Yog**MY;7WmiSyEno_G=5rGS( z`H(zsFl*$cM=I~s3MC<2w@$oWfeW{l?1o}hE6O7|^ii~t>R4NjKZl~6!Og=Zh;njP zn^!x)qyoUh+xl2xQtN+twP$U2AZdUdp60_`PQfx+ zlUN!P!<5J?qzR0Vv6no$HVbMShSt}{&KpUv3p^y@(^}pdr6zw)oNM7LinOKSJX!lx zdfV1d6XVjqb18s|qK#O`1zAHf&H<9dGRo9J1c} zBNQOZ0=yghVWlpwx@G$%sO*;6U)K2@faThE^T|CsROcQr+2HE1V7Y8Ue>y3oHc~yd z6uG+XR^d4sStNgthyKUe)U{E})0|e?suXf)-xre-64M4Krn+~5$W-lnEv_2?_SH{o zUu;NaLYc@a@gPn3=yc+G4+d^j+^tTm2vj(LiRW)gbYr})AK1I%*#Ih&F3Xsq4TA%x z^!bFs%0m!J>1GOoc9cL>lj1ko@uEdGWmhS9{px1=5QKm9Y9eRPj31s*fDXF%j8do1 z?)V9X<|I8w;&7Kl5n)=jB2yBr)d@uvU?0bR=5GiPw&HrHqDJeo=R^FAQ}u{@Xg|v> zANzSvJY4azf+_q&dUzvXu@7xu9=xFK_`#%zyhnX5JD7O9M_B<|59NELQ=&!h&ECQW|8tr+c?R!HLjdW8Nx@5Y+H>AF7$V;uK=l$8GsGC=?*ktH! zL{{Z0$36o#tSpyV_nj}r=$Y)=*%}3iBs6=K?Vxe0ybB^6^KBkDYyClR@8*yCv0+gW z_RD|T87x+tY&YDN3Ou6}WDX=h`-u>U`j$j^51f6CuM+jr&D?)9Hl8OhDbG=ymQ!y? z@!h^Z-%)WYXiw(}Ob527?2GrSSCO6F?t)_vFvvkUeFic>)Ps51ruj(}h$;D*C(tQ} zms2xZ%G!L+8u~!((9$j{@LG1g^_M!X7BGL}<-Fv{bQm2vL9jYnHDraDttz7brk}p4 zd!x-oHGgW8Pj`tNh%=@nZbg1y#AL}B%k*r8XgQ}l%2e*%nzrdJqw`()h_ax^fL=AX{GkWHmIDnuNBYV^2K)$x8i>; zl{6|Kh#xfziqP4FxU=&Xx9}$CAc<@dCOU#PqxvwyT=>C-ynQj;Ftxvy5%q^HjrzZ| z6;L^Atcgw6lb%BYW9GO3amS>Pif5`|RPlU!mfTupkZ_Qaed7okw5zwVLvwUZ9`pGe}7T{1S9!Cj!0hpN@|_0Zy3Mt zrR;e?rN!fKd)st2jnFJ+W*&ieW9@5Ss6m7yfo+eq2%ydf0d+Gj=9lMY0c>fwKM&D# znWu10-kN~-x5*c8@KL7#%4gjxia8yNm2`HZi008ABkr+{bC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*-0?lSa_oQB?gcR;3q!|sPRNpzyVzZ zQ4E6?SG$Or&?vI5NLj~^@;-$H@ADjdD8Kl)<{8>^AR@GPIT+8M$ME4Vg6w&4kxSdqtt#=uK z)c>F{2g*XNfO`H7JJGJ$1E0T}4f&|?Q<^i)D=OwOgyJ8(nR+x%+nInY*{zx7UzD~r zb@Ah-LU9rlJrx_}9nZq^6(K8wf=^dypo(}h>9pPyiykt6tEsss;U*Wsc~&$$FioN+ zepP^}4`~lFbcV&yLZxBQjwvJLK0Qdda^w`nQ?0He0?bN5{Vx$TSBba6-kwK(EHhbBfmEsRgw~K;&0XFql z#@@^3pNX=6Vnj}dk0lb^YOgY5E0`@w;g-{e+g4gJ>;ckrVU>C-qCjn=s&~Lck{+Yt zb(y>`*PQa=j-^mx3p74P9_DulDG63`uvS=PITS=ifd`w#yM1Efg$!U8klK556z)%x zO(+DnCv~<;WTh}0JC7DninAqk=V0*_6-g&_6dzcBKmB+Vr;n>&ZCrw467@jFrtwxg zO%xcX#g6VNp+5^8G%4YSsa`KYKSQUBOh3rtQkFXlS6G=PCEnMxPcN7!DoBr#7>R(J zCB;ie@1P==AYr8S2^<^OH+bKvP>^Scd0dn!edtH=)*ICqY&SvFH8S9!l$^!o0!cKR zNd~@u;4QhVxLX?sWw<0HCzA(vt zFvRglIL|0#+Hl!>F3JQ!6F1*mZ1EP4%6g}N>u`805Hf$VY~_?aEfr^OlL{xL(_u-N zE%8^+kEAi~+4TOX47VEZ|IaCIAFnY3Tns9B?!tV414RavB! z?diPHLnR;u+F&n|-I48?iK)sRXn%y{^?9GKl5mq{;|lS6BDJ~EUDUDfwGzwxOyN*} zqyXID!E9$n`+p@CBgd>5Zi}A5&v?Je<)iHm+aB@Boy-!(fyWe)`{0jM6%g6-2b0CxOhULJI7IpJH z(7@Ys(@vszx9Gv33LX=FTO((%wqho!6jckn5)m?4d+i2}-u>E3g!Zn7LXk*+ioj6> zW0-SohPfq3`E)By??&mz2e!>LVDQLwSsl`FmutOi1o4z13d%I5k*#G)2z?8!~ zM)rsxryV7Y-w@lfei|(s<3LOfv70mF2*yZ`1=XBu->JULlW70>(D3YkGv|NzR9_?a zHx}wyeg1QRJ|x8G^V7Q`#`Q8+RG#(-%RAv$5>H5>oCH&TYlm}@(F8;AL&A$Fez3|Z zbGD5{u*^j&XM8y!e;bEeR7zgoU$v^YtCFa^^y&LiRgg}$TUWEw86-e!JCr^akKv)R=QL@LC^Y9v9171_I&*h zY57lNK_imCtko#}?8-kYR#1d0L#0*`_-~l`5bvNl6E$wTCRLQE>%q0CzkyTrwY=RU zDCKaRi_v#R&xCizCw&OC~~0jGeXWbv4hKDW}s5f1g!!&@Kg%B zP7z^km-vGdFg$VP;t?wS(!4OcGA-^=Q8rbbwa526PF9>_(Lh*TgX<ufN-cwRNL8>q;tb9yCdL-rP={{OUM9e#~ z$S<8G*iOeWK`p`D{N8#rz2*1!MI%mSsF0qOvLmkueINMvqOm7ER-95SwIAyE5xN=C zNvfWmd_!mHa>tY#AADxs*`Mp;T{{+{)a*P8;{ZlVM4Aq7=lgG;X0}$mVQcgHrmj1u zBhM0OS<)3lC%ZMa)pYjhQlLa$RBc0Yw!K5Kd@RqS(yDuTyGbe6?zsp3? zW;zbAU(+}x>hxs_?{@AmQ*_G1A7bQ-*H_+>kQsyfyP;x&X=*i+a{Tj-%Q%NQ+t?RiA&XVcGUnVJ*V%i1ze%_B;*u|?P%J=OG4$aOeyNTDbD6*$9()D`8YTzmQG zE~eC0sipDa=#5JqGd+#VJ{0JTYp&rH3sxSZgv4nJl{SpdgfZpa?&>!#ekIy$Xgp1FQ?~lX?f0 z>iM2F76Mnnu`U-8u44L9#*}7Y^{_q9hg~lAr&JJ=$tX|O?T^>6y)?;1)Fs+uG`v)=~mDJ{7C9m^$~$%CaDq?)ZdBTPo;pzOgeTSo1Bjd!L5gK*g71?M&YI z&pFofV66t(Z_n)Sl3S6~tGPjPt|u&Zn^!*LhN_A4bf~^juJS$wFk`5?al}>m`r>jm zVU&h?r5{*#EZ|Iy>;86)*YILLuxmj#vZy^)ok7 zP%o!$IJio+i5j`Im0-1w=CV)|VY$_blu|L5b})xh zkwQwR$t7Fsf{+su#SkOq)cJm%=e+NS_sjeFhx3+@bOyu$FwjVe57=_Mp=Bin0GrwX zUr?m8%z_fVpsox0hD2Q;0G|CDdHX`X$YR&x(8F)mch%IND1G>Z8^_{i+P zQ-Pfqd0!^8K>8x*1>GPloV`q7`&^@3_EJV^zAxrIGJG1PC$*soyhyFSz ze7JfEIt7_nwW-OHx2`{FLHx=AeTYrxq3n~R-qaqJ*3S!j(gpWpM7q62$SA7XK9^;L ztLmcFZYqXvF7PAqqvVUXPd<3(W^irK%{vg7nH0}TjIezr@L{Q|AW!tZIE>W{@e`Jpcwb7Y=D zcmby>`KOAouFm`TR4^7I?XE`OC)cV6tbV5 zjlfWcrZU!yp>sCK=2>}`swBskvq5nX;EN?8t~(lianV-LrI&^)BB`QX@vm45Fs%*Q ztC#ZO+eyA>BHd3@cJ@oP4QKSuhn@f^bd^wm@_E}Ue`-f|Im`t%f+1~ z%mvLH@B2Pa`bt}XnciW^Y0(~AiBDh6?o}K7 zKAJmcQ;Iqo430*7E4cAc^-xkbWuU)bKTa>9c6#iLS7sE}iwk?O? z$dw*JBy~M*TEM)^@6ZR;HfG8QfTTv`nY)>;lSc~SV)udMVHh} zL-c7&xu@FKEk$yS)NXgsT(&r3F2C9%@gr&wX;ncjjH6#nymulRDT_p_!a!jQgc z*{2rL`XlrY4*C;D_}gi#+AO0id)l(`EFQlOXH0E&M^sopb2wqrgasEbIplPd4KEVf zdjf`P4B)7c?RAhDkFxxYM^UKr?ZOWN)i_*Rq^F(^StZXuZD&Stq0OnDsO47|%w$zF z?~=01(X7ro-ubL$AII*afEX{iXt*g&`Od2*8F>C+;m(iK;3Fhr_@#F-9olkc56-mf zTSs=?EMt(#sLHDPQi5QQRLn`Q(3D{eVgg^nW!$iAOG8!$2-Q$oZ>w zky=dQvB-VDEt%>ztb4yU^GP`d;8%%Acmf>ra~9y6^TWBJOHc-pHn9%<4WWp;Rgrli-7g zFFMjLR|^X(@QGgB+HLat<_{~QMFlRle!ETEhW*;Cy!j5pqn~{e-7}SDWuY|=#POP< tt%2YyOPsfuxUxmEr+W{iL9-tf>;iI9bUw?2H0BoxP zfB^sigeVL))Hno(H-?#5nwXhH;Vz#KCPv`!SI?vIL1CEaV3SKxIP7llE+7B^5&+;h zogQkjZ4p^G*!#>{D(@8*qt~pSn0i{p)}TU?YgM(_7RRYYiB7LeQ4_kGef7it3S6M~ z)UZ63wh;G2iy=Ncqb{&<6p{T+Pb?iWV_+v)ybkwi0R@1)pj5>(TzXEwVRgB)U;FL# zMq$}tGZ91Doqr$PC8lGqP0WDg#|C}Bt!-fFZ2mGH(wZKo%3`a_^X&M7m=P#g9_^!` zhI5I_jle?nM>MUkr!f|s*2m&q*II38%CO!m55{RqZn2${wcGMZ^W<0E-g6PB#IQ>5 z!>(854}D#mWF0WMO$~Q~vRVo>K+&LbkH)PvrR+#~ZO)Qbi-Vm4RBL6=yA@n`Trcg` zMvT4gHiCibBTCy|Yz)ox7UE=adhy_E#LnM89_LY)MAXx~+$7S)adC%=2df(&h4y^= zil&PoWw)5f_BLwd1({FQ#jm^EVMqzJ+{@1H$q(qEU zRxM=d^&W?t{THo=Hb*jMWi2sy`Dx!ui^0@g-Tabou&0Iu`hMOjxHqLk13Pa>aVdf# z=qD$;ED7^D)WEHY`Zavh$a&T%xWWtZt62B&g*$y>BQ%VYFH%f;Nux8FIFbuim8 zztp&*Fu^TmVMk4nxEr!=d61-4UO|3Cft!`n2CgkP*xz}{kC3v^y`cxAys>)Xr#z_Q zc+s7m%D+8CK&SW*XN6c$XyYJ;{*g^J3`D4Tkffw2JtMgOD9Z3(zF$wBLnhao3@>F z|Gv}bQ0Hd-`9k)*0w${?O^)`5cbJ?7kk1BQL-$4gJs3F9sU2V#obqlZ_srR{%K8r& zsrc2dNM6=)BunC5(RTzZnYrj^HJeouqiaGXy%vz|+eP6|^g7s6GYaNypYcN8g>(tO z-F=8m7Y*BjnK$?of>=*IyuIow?Gta*{8o`_0b~lto3uF_sBE-CPI8^C)=bMG(w$t5 zbh_lybgG@jlEzouwW;1Yqs#$<;Vu7^xW?>+z|*IMo=PwF-q10b3@gCC^4sX0W+z@H zk4R>4_lAIyPJB_7r1Cx*GyJ@`Mk_;ikpo}yV58>i84`2)Iw{%{GK}G`!{s(R7@Y1D zU!rOnY06hNw+!|#C)edd)%Wfdtr$+M;SMwSFUJCztRP1l_$N6bn5;f3Ch**;KI!O* m0EyU%{x`Wl)%`aKpkMPp0ro`f68m)r{jBfLjr?gi0Q>`whPgBV diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.5-compact.zip deleted file mode 100644 index 0c372a833d55c6e6f0ab6d89a65f838c9e2fe06a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1502 zcma*nZ9LNn00;2@7-ft!d0gcoF>D?xgYjP=bow09l}c5bZs$`MeP&0RVds z0)P$x0P(Tmgiz$gC?e7bbsS}kijBI23rUQQBF5p)6Y*i;2_dM6*eHS&SON$F05Skr zWo3mP6CI18|JmPa0WEt)2-kjoDC4H5>S>)u>Gl&%3!O>#9{Gz;3ZN7+=ef_($oD^e z$m(mUbYI$VEeWlGcyGUTHX8F!yt}C_c?zvu+RQvKr6< zUHO8i>m691guOO1`jA&%sj}akl1trOn^QIrBs0z(nFGJ;ZMD!eani=FN=rSnBf&H- zJmk?0D-Gy5KhoZ*gm#{In%st2)`j~4l|1Kw&%dG|9s3v~oU;aEXC|bf1Bb?AUQoCS zd}}sUF2}d+i+8IUOz|07FdwHZ4V@bfuZYLFr(FgNU(Oc{oqJm~+xrNiZwK5P)=xLu zGlA}8#ep$|;v94olkRv5N8RF?Qp4dn5BSF#Gfy)>>Z-ksjP@=y+bQdDy>$zVt>~>+ zzts-qjj`@N@Or$wvvVmAPtZ}hZq@Pf4>#tEiQCE^I+YhXUz>lr5~Xm9LDHwen4cyG z3n$Sus2Ci!%HQ}z1(iK|7}U5OT^%-9XU@8QvS?Jg!P1#)yU;vrtG#X4&k=ay5<2d{ zh~@6?sDy?QOv%1yL4x zXqhte*2=@htUDWz)>fLXy&=welPsf8(?x{r?|wN_(HbihbRxl<5wiA%@Jd=S?YL*@ zx|+9{(xj*S)CEPls)GtTvz=+MZlSv>5c`5=LfX}I(x(Z%^`@cp+^J=!!>quFYT5oW zlNDuymiaX=lF8kt7&AZhkn6BncZmVi34#tLtc3GZp^Tdv(bJKZDj2)TTpLuA zO5F~7u7_dHqd(B^n7hora66~DzIjUsCPv_7IzcYW;>ZB9iE2YFHPCPWwQLP_QAM=e z@eBkm7+zHbKsLqd1^al-KHm(ABI3e1E!w&AGZN4A5@lR*V}s%xd&nW;!;$jdhU&DA zAA@0hrS;Q<8-e=0+hKogmezRGJC*@Op-tCP(fbx1W=|!>9eEa#Pcmk0bg_q2StXEi zRBFokw$X3r3x|JhdzKkf#d(v_mt^d5Q3R8E5;LLp1fiQvHpMEbw~NhvUJMp?wIB&@ zj`Ud`dOw+sSA(~?3?*nym~y|I4wsu(KI$to@wg|b?en189DZhtywP} zP*d*M%;ofaGeIe7lDe%Md?|h0WL1 zL%ca#p&oC(Ags<`A~H32IM@iJG%D4Ov=j;#-|+%p-H*{Am2@AJ*PqW#rfVZC-`ZAZ zuicU5FXK5ZAlKM~mR%^@>#4;q;qsHtl1s`l`>;EEO$Qtc8z-C680 ojK{iy#H_{t8{J)Z{|y=Ref}rGSXT+j?|0B{eRel?S8)LN2fY8fumAu6 diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.6-compact.zip deleted file mode 100644 index 4d1e16cf73258e01e12b8bc0d6a7fd5045b96a61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1504 zcma*nc|6k%90%~GwJChPfygzFjVo9Y|sM}!2Cd}BjH!XruE;b$rS(Z2ct5h1}_q`&|X01^Pe zHZ6^8vThPqHZs&`EpwwM*k7|_4~>r7X{TMYwZ-hwyY35jnmi<5EXiC>80c`*3Y_(N zn>N@`>hj?`x`12(b=`RGWH{*&TQ1hzlnZ^SZNIf*>4+-_M3g!yeOU?Ll2*vyS67W9 z^yVzJt&GmkSzb8BYx~Z;KC&UKz`g(npNjX8J!ncj);!V4?$+$0d;lPQ+=8%LX{<+S zWsNpHwB0?{lC3ihDB?e_=h)}&6KzBj?GlB&MHY3M%EUp(%)Ltc1v?Ad7t@o-_W28^ z?q*oFNa>Kvsz;2^?^xP<2qonD-)P#kpgOetO!5*{C2ZfC*z;5I`Ao+~s9o!j19vW* za1q4T=qo#S%!tqMDQG)7f7Zej_i%G}7p|Ce+O|bb{7H_lGkEd-df7bNYPrVzI*HV{ zy{bNg6&8G|3hfuGzAGP0zautdS&t{(k%J34OZ=LoS{yUwBbjp3^>A&!pDoR^_9lUz&5YGYpc$*!Zh@V|3@*pY z8Z`cK$|$%F#`p5Pb$oK*30D9@ul0X~8Z^HfJF|D)A@*(w@ zHUR4n?f98ph-z5(u!qibzCuT=i*R1NavvTKSsEXC4W?cIO#6)+J_Xi3e*9yjs;?H*ASs;CI+gZ@lZ zNB`~4ip%J=JGvD-|Ik2dI6FBK%!J)3$-8N))-`tIUM8rMcl}zJC9y(8kS0_znd9WQ zW&o*ZO?1Eq-qtTy**~u27|&?tOC(Q7K0SB@A$6?3bx<%pKEO-x;^WZ`85bd!p3os7 z+c1^G_KZcD+RdwGZ~7vO(vd$dRv23&h$Abh_iZrq8oU}O`DPqU=EKx}+u@rZX~**g zaZi!Y!tq~S9`n>_z6Y6IRW2*e@d^(Lgv~>7hqLndzM~c;X4FZc>|3}B_mT?`}qh&26v5a4@o?+T~l`SHW7+dGwUcgD`Z%01@1_Q4&UY)8N*xN7%7PEF+D0 ze7|Of5AQx1-K)6&0&CZl$|Tl-5_cIjGbqF9nGlayoG#B)&ax<|vsA?&2)w=C$3$wV zX3EUP_;35hdwF9IBrlh15~(qf=UJx~Zz@)~w{co{ZLYpP>(e_E=n7U5)qhbf1G>?kg?4H8R~Ie~bPOM2zB`%j&R@XHa)JoFE%6tO1DIT!cUg=VLXpru-lv2k99{8BTYy z@_Q5DW?c=rs`et{p}a6D-@^7gZR`YcVh&O4Ty0368cN+UQH*A?;p@)X3y0;|w8GR? tSNM-|(Q7OkBw;W4-|YU9_uoqZ{eJ%wVJsTF>31FUD{jAMzZ?gEe*n%Cw?6;? diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.7-compact.zip deleted file mode 100644 index c0d84035fdcd35a314077b7f70dcd1eb3ca236e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1685 zcma)-dpOez1IK@iTqBnwbzGL$D6-6*thsbLG_n$N8wqV#Tdv#idZ(2}*e35#sU@@} zB#m&!VUlZZy+t9W#4)$SnvNab&iVg+p7;CxxG*4gf$(QY-;$b%~g0Wev51!k|e+d_)ZS3NbM`A~G=w7n>RbjY}dDR1_2e z3;<9808Xc4ZDqCz4@O@%9^ZTSB_S5lZgf5W+`$v(b!x5l^^3yv%BCRD$MwB5>Ogyd zS^TH)1^OVL<0sximSDN6=XWN&tv>{j%eNtWn5r}82sQ5d$@9O;VHD1))AZ1-^wQzO z&uYDbUoqANU%$9^I;V$r3$`8>kM6wZqCP4TLjM({;buqqxn;bgSqSOGi2>!lu9AeO z>Zl+Nug*OGN?Rb=x%tQxpp9OWF%Znd(>tk{6It)OS6@)3C=bu6zHtcW^e;QN9Jg&8 zwh$vnx##1{ZsuJ-*deSMp0{B@!*F5^+UwjRP2G|C(_U>QtkT%b+ZmuPyoG;5^0dF% zVB*#yX*JTO@FRGCVA$Ci>{Op7PUp^1)rXI?3yal8dzUgjZbfqDR_Y$qSKCTDs_BqE zG<qlw|Q#rDgjn5u9={VxCBKRRxjyr&Y+!2A*MFMHDx)1#bd1VortTWHWhjK_#Xw z(%SKulgUm+(uE6yZ)7tC%0Uw52tg1i!kRV0HGEWY6A#*9q5(&q^xTX{KbB$e>MF5Z zC&!~^&|hfm=#Yvj%z}$vwwnjw@;@cbR!lGa;l8M&iQKh)S=A(Vx1;8^8P zmS{_kmapW9pzB9d1L-rSp;04tEZ@-nHcfY#`O^)4tW0_H9kDI|>oP9=Htt#PniqFb zZm|@vTv?&+QNzu+FIi*Z@X?9wPR(gCHG&IbgK-jp!xyf_W(r*;hHL5b$r>!##1A5b z-iD&Oqa8bXh-jQx21c9BDU}&LgHFeg`*{C(>~8%Vc|;uft|H#?N6riP$&IB9d1!gB zBmO95A03CUI+Uhh=`ytq-z1ehIPhfM8uC{7OvP@2f3%hN&Z`GRTOOpZZ0+pQ?w$D% zKQu=4jsGTE8rg(|riHUnTAxW0m;EY7T>SH{Wq6pZN313XugSD~VS1g^jq9WXR?21U zC}hh!`3x8$&C>{b4eubU{26``ebcLwjoicAWIy8SF#LL4d}eAo%Rjo=vQwONM|aR4 z{;93wBm}aJ!S)mkclyJLoLcB=ZOTMbgI^45W9&A+cmC?5KR_T@4~w%BK#fBGa`-I* z+{)PFw4cu|RYJu1iZ!@S?QXUbC~w0$&l)UL)jN2_r~2_JALvWNu)rwOs;f^A9eN(o z@cZ4Nsau^^H|YCt(}behCvy3nu+KS7!CD^0d>@OIJ}nDELLerq8&1wf;nSx)_l7hL zzej3?&`xR27cZUlg@0859VEsL2R3iwGmm-E1d#m6op$?~nt!}TZcxpBvqeVxee;Tx zCcw-cObuM;bh#Tw2y*+0$BC>jDG-x}*-&P#*+7GcBkL^S`$v=vC6j|4zeeV@p7D(~ z795D-fIHBx`uC6<|V5ZLo? z2Kw%=yS?m6wd1!!u>IhuzE6E7;X_BQcwO1mY5iTGlKPzT+;01AreI{0OJqcbU+yj* zN)2b5ZndO`)lU|fnCkZ2!Z@D}&)MD1E;g#m7fahRe|O(ESdG6|(k_*YIz6&guDmTc zsdNTL`Lnor)TW5MV&M!&O*ifOOgukOmPI9o3SHztEXgF#|6bo4-NvWG%peEj9PuUd zgy2(E`hh@VUWO4Z*C)s(eTR4Gm3m75qv$7$zAVif$&wqK$I|C>ap+!O@T#Q>PBz!m ztkfCmlIr0=9wP;Q4ID2V^Re{fc=s5t61{Kj=DN+kK_TVj5upF=itoDkJ5;&9@PC>E Sg;d=0*In*=1HRMZ@AY3_j~uZ8 diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.8-compact.zip deleted file mode 100644 index 7b4f16ca76e672b8924575a215d527f23f51af2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1686 zcma)-X;c!30);_^azPQbMjc!OF@bUS6}e_ z#kIt=myQdAnW*J%Y9u;jInNS8OPyx^zjNNbKkm8b+#mPf=ZTkBa0JK!Q~?}Pf=^F* zKWha90J!J_044wcAT>Fb6pe`@Ct=L7)>sQ{GC4jtGChHuloA}86dn_s7K!~SnM_ht z009C4fNTK3K0iO&>Z?^EYkcG}4sv&Z6pMJKm;1Aqj)O^)a+ghuxG(cThoAi71|%nY z_}N)x+;Y$#`7a*bBfgj6%cJX*e0FC}na}y9SARi(=}Jo`j>>f#u0B1$K!r0ZIR|{Z z@)@J3R*t(r@7Bgs>9%+Z>=pdhOliRT->TbgS1NwQw^3xKSC0%=s%Ui{-g#7I6s&B4 zKlq+6nuw?pd>`3y)7}sg;(K-fo3yS;d8(T1NPbwY|Gmjm{*pUbr5-4IVmJUT=dxgH zHOWXtSrRV}T;=(<}V;am0uewpO{dlR!r>EOQOey%98X`@I8yuo&4ddAG(E&>UmdsY2|1JK1) z3V#IMkQcrx8EGIjNt&-9gCrl!ufr#<`44lcT7;H1#7jaDSF^q#T?2BN+TXfk6t+3W z1Fh{%BX12B5}s(bKHagtx74#Ok(=ZVMXeMo*8hC4goY0Svu|ct;o-NG=4rh== z#4(VKli)>-a#oBrJ5~&8g@=45oz3n>%qEaL<}_&!JWbW3f8{^4&=Rd}RKDnSk6f?I zD3bd*b}Zg?`oSGuy9*Bob1=)MGuDx;)>GG)-zbmSR-8~lyFPhjW8V36mkE00WgTb% zH~Wer*lMX=s@GOtJ}}R@RDqk~U&D5KfFhl3OH#zB5|B~|T=u2*S7-S&29MQF2fzXh z((w-roedvuzstpRI@n59h!ZfPY+l^_a_U5g$Ci|!(Z6LSs*QKn6(jp~j-2495|!C0 zZi)hB0z=l2aj5zxr`F=Qy@!&up=W2Jwy;3{esMtDxdpRENUx)s)+@Tcz4*#z-YxjP z!gNP2gEU-p#^QD9ZDCt8MV+|xq4>g7M-JGr{35t-w|V(xMid}qh-Ut;DdSb(XYMcE zjUvgl!t(R~EgT+9{jL0Y%n-+>UcITK!Q3g#;0C>?JB+*9E{Q|?OCvg^J?w@}c=P@G zWVwAAvv!r9c8srvMhkhRdOFz&c2R2oIcF4Tc~CXwKCgmS4M|{;b<+-yznYxx)wkjw zN_2UH=^MQOt1=C3tMP>_M$7l)LN|r3oVGfe?4|>nl}SEdyk1M_rq%FmSLQN}}l}<_lg;riwGc%VVXTF2^`)bU`UXb_|^P z6LQO$NuKRZ_zsV_WoC7Ws-su@?0J1CP-|>hibOByJ@Z-GlRSca{J6}c8Qn$_`B7m-UX=Dcz;@6tntMh5%==rCBFKZ3B^;% zHPT56;`P3o3w+vLoHq8l@Ast{xem~Rr{}bvm&CeFo2a2qx;aRF*OWL?m9#xSUGM5o zL8W)s5FhV{t;O9?45g?#ooA&^!It}WBj%d}TJ(*Q>dXJ8W zJf{t7OBD7C<`l|KBZNAvy>-;lQm;H8w9hKc1j$9Qzmh&uJ@G&}NBRE^i*LO6N7=x? W-thkD6s~V$X1U<276{&e<(o`>XYLwbnsYB?6 z_NbDgQffq`%}0#}QL{(l5TnK!*ZaT!e?Ip-FP=Bg`>(Tun79of3P6DRh$u`jd|vDI z5dcVo0)Q3(0I|_w5g~fPk$3bA^-c7R^rIugeS;FBBJafb`rQc#4T}rXzZo4F0TMp~ z+yDRq09cdBA;x>g_@{&KUs=kQbw`A0bU@P|UROeDJ(q61@W*0TQdP63*k_?Ei7?RN zrg>}b#|1LGiQ=@h?NAg_1I8S1?G4906Dt1JkjMc~Y1v5E2<j{k zc0>IYY;U%(eG9@JmALLZ3j=q%5+S>nlS|MJjj7u@Y32i^GAHP|`%UGlzS2exr!64>STstL0yP5+Pto(Q4C|9`AH=6eZ z57?Q-Eys>)tklKT+f^Y9PTxMqFx!*$muIg2HIz#>*Z7G}m*Z^^O_k+M<-yxU=Whq& zZ=h0Oqx4_+!gDO26;%9Tw9Ps!D-A;6*sE}O&zjuMyzJ5K{xDkzPr_j)+!5=km|dqn z@5H0y>2G9oj|;92{@S{-tuAO=NYTSyy!5n=)8IeP%H-EOpFfQp@sd#wG{}*z(g00} zuaew0Nran;zsrmCENOBbDf*S{A;z+s6#K`QQ$}Eu=UR^rY|5@Bo*cez@o@O$4{es! z6nNV#zv^Pm8p4R>z_#qy6W9LXer&ca?cnJ-&}U z*tGN|^9`>c)D(?vl59+|?|fZ!do+dE3BR~((!L&Cq?Vt>3{y0#_&7ZiJAkBYW#)d8 z!>vhi9Bgv#@}NUumt=20!fv2kEzJa;pd?;`a8IrB_dLKr^PUF{NyLRZ`~Y>gVZ3Fm>R9W6QT$=DhU zX@iqAr7Fq7!32Io;t&*wsSP=yrJYdw!aP%gO&#qqm?O8?Q|mtY>ddYwx?5XlcK)WO z0Qu6;b?oyd@FjsZW+8M}z)$+6%J{aTRnm?oKDO|Ii5&%@O<8cPJ-v%M?k726FeZgq zkN2oVpP5_;ra>7qzZ|S0t2=7`%1ZYcIBtpT<=J2}&-&Fe7S)ekYx2KSuKUB+;+4(V z3PMLt3xmeu`k)Sk#c801fSsD!_iqz^hESaQiPVA&thSTD7222@eqt-s@r0rUs_?S@ z(vx_btcy3R*D>UYte$b+%5zI{v-1hiBGE_}Ul^ZqoOwjGqDrBIO2DSbp<& z%UkVhpV=?pJ(WdztVYZBDm9*2QH8o|Z(H3r5ro^J(_iQ7inaiurAk7)Y(Bq)JE+8 h1Mtm&|Aip(@BBv&oE?rx{CgMqR=00^_)Qc5_y^iL0%-sM diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index cb98f4432e93b1f843f3640cec96ff560e90105d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2247 zcma*p`9IT-0|)T;HrHqr$04GosfXD4{#e5fF0|0py0FVR# zAjCPq)7izxO+iT!rKqGB=;!0;7KZl=2y%1|aP{yEaZ~gP^z(%>F#`?&5DNfTQd8Yk zk5&DjOpmu}!XEYcdP;N%C1qj-wWaDgsA>&=_e4IW+=9@)!4hIeJ1ix=>9;ph$6CtF zz8;_-x<6ybF&1v>-;-?0i8F3fua%raR%4>Q7ET}h-8XJgJcABKWCx#@H?*vUKv?I- z7%&ffMYnRglQ)pD(j-M$y0Z?dJ0G}Qt`AKoeQZsB_AxMa<;FcLAe!5^fK#Yx=n_w5?t; z^ZHjcbC}8Y(IPx`^K&|1I|ATgep)e=c8D}2Hx*K@vQ+kIpptSeha#8o{^0ZaVG%#~ zVLTu_%nH27*7$KM^AUk5C7ORqgcl|_p-OJOoAza%f@fm$FMY5`Bn=f6l;V?t-80-a z8kPEa)7IUDwMxu^QMu7_O(d7&t(;R7ZXyGfW|7;qqsNys@mBXC*UW1Fc&%93J|z+w zyi$Bo#tPg|d>MwwI4b*3WbE4X?`urS6=rJ-ELA*77XoGVs2(RH2g*M7_XkbSg{fqe zkf`qoH747Dk&vcTB(>4}I{{@_f%2%u$PHh>yIU7NSbdn^q|;+_#q}z@O`^jXIU|Gq ziHNn}`Z2f88-cl4t7B>KLjaQ;f;gWbLeu8=Gws;$)S0WF-XT;M*k~TUCZ5UdjTM8> zE%c|7Z`xFgrz89euXsI4SStRm1=&~eBh7c|xN7&iAN2*~>U|I@I`i(@JD-VnZGtSi z_u?#T?Q-Jg$J{qQKL+p8YEH2}%3E*-6ht)>>!(<@*a#C!at1MW7U11w(R}(c^TLYD zC+ydAa$BfiqR(*tO zC9n#E>;v zHKDbjxfi(L(D5JUO4qV8-pAP;MwMkI>Q-(pB3M5TItcI5=MaNxTS`UbniXpd>rNf2OWQMh5Q;5G3K~|w0ykdbFc`TUd)+oV4vY1;u~ zn%}o?&$mU$$Z}ahi0hm)ExatNGh*FY$9lotYBwAzOy&MCtis`>WJ*pCzt1A25^-Hd zG-<(Mi6XdNx#&UsxnkF}`Q3LJti>}}6Sx$&Dk10X2FVlLKWeTMPK=@UxyB-u^5|Od zx##T_(=J>Ke3zWZ6>JH`u#kE&hx4Bb^CGw|K*w!O6nYMR=?qJK?ip zZ()c!S}jVo!dl2GWTY)L%x_FQ)hk_XP5K~Ca1UAfirD-QZMkvM(xungror*^@GgBPVg zaiEt?(^ytn#N9$_0SzbY%%4nnP*_stQH-%IPg_5W(oKGfo;%)T>5hrvb98Cat*Xb3 zg6c{6?Sd1dn5@WWdl;u?dk52EvXL46u6u=k)$>!6-p|uwzR573nHO6x?`?#(hwB!* z7oAok{fs9$+m;%<3y)}d;02*su6%3dcf5A1(?Yut z*4H2%XK#`1RnkqMU-Unxp|Cx43{EtD2^TeYg?Zmc1Y!_W%}c+L(XtTfs=ma}ONMq(7nrT{-f3 z_F$Ah!jkv+XmISLo7>txUz3pR@|9TbX6d) z+rPQ+vyW%!2Nv+Ss(f@_m*iFiP%^2Bp&Dl~Z7G$ZxW5@Bcb1loLX&7$7$+vN3bHe( zJwc%;k|yiT0{avBuNvtls)N4OPBY_=xu(w55cS$p)_t7=vT=oP9t0<07uDudSe5FI zsU+@Wcm&hxhE;Oh)Jhlgtn8sLyHAnKuDId!&e_XPEa2p3Xppagblren>o3y%?-WjK zGXId69*W=_7QK|dYOnn=l+7$f*eZxqs>3hM4th4KDm72hJW$;#>WKkJq<_syq3x)H zdWpubTI6@iT!xVoeq<-@U3YSb#A=(PL0}!o|K`OXVf;6-pnvE8!-hGUndRR%=udHf K*5MCV0N@`XbR0?m diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 841d9e7dd0dbf71464ee7badeac0279e74002f46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2247 zcma);Sv=GW1BU<1nK;%#S(6$&lWa+{6q9X+u}s!%(-FxQgOPm;*|(T%gA`e(><%Vt zLRse6qZlz_Y?W<{uk+o1zu))17thUm@m@Y=2+$uo05iY^;Qf5jS3Y$Rg;)UqrVId5 z000EK_&spJc)DIzR8Un=RPgulbaKV{`uJg;T>S32KL~VH@bLHX{__to-~a%T0HBqS z;HE-Xc~mm~vFQe9L7(>n$*v1=DHg)o(sk_ZSBcb~kn(05(BckfOyqFa9jS*D$F+o! zMgnT%0Fmcb!G>nc80mRQz0Hh5wyM=gjfq#9hk49E4yb(}EuWJS0iqcJA~3@{H6Rd6 z(LqIqa>ZQVklHLzR2gR~a!jV?GM`Y1JlkK@T~-~3;lE}q>C@QH`~^Wx>HsTy`n4!ncWGQh zJg$TIT~u%PI`7skf?#V1oN-n&KVNJe^`VFtFLhW>hlF2Vk}_`%R_RS>w^8$Qpxevt zpxqp%jw$uf6dE&QW~WQFN@M1S2RWXJ#Mx<|WgR{a9t?*4(lo_C*G&tbkrPu$M=AV)cFbbUvck-{=!@!=>}cI*$Ag^2*M zyySw5C)V#{Gs0>YeJI&d3Se@lf6oV0TUC}f0#wmxXG?oB_-2E~x|=n8JsZO{jP=i( zLBCF4;)&$wsv){+15V5e zb96KVzWsUD&>Z>L{KME%O}uoma$tDnyU?N4HU4Q`D-iq;y`qh*OQk)MjVpn!Qrlux zzBZ-VDvc?Lue>QW5dGC2Gi{Tb5zsLoRtJ}z{#tEm)%)Teh9OK)wJUYrvwK@SiVM{f z2D67ziLdVE$t^S()l~x)M<>}luy2ia+PZ-c=~Dwn9m^l9K(;wUED@hky?(Vur+Yw+ z!a(n2bZcmB6E?&Vr6!`D1g?dxQh6p}_2C|hm-L$oAAeSxOE54s zgap!`2FDE%Yg9b@e;QxJ+qHWpK@tXMVd#Jq9>dRrk{;lmHy0|tl}&!#mzUMWAfI%~ zF;!&1Y*;Rd$4<79D~e^YHvfpv*Q7$$zX+_Y!$+|qwjpY7j!qVtr^{J|h5H}>eNDpA zmtljCyk9Ki15yt6A<6Ry6NmoNil?|28kxu$WIr@mO%9_5&a7w!62ORt`ubWq*`)R) zQxtYO=9-H6(FLndMVngxF zc`7fO_IFBf?Wa_S;URAEDpDsa8}n#?s#Bj&PRw59+~3JLWnL6^Z}9+BNPzn8##FPD zRJ5choy(L$KfAhryh5^&?Q*G2H;%ts z;CNG_3Q*?}qDf~uCj|^Cb!*=*py7%Nwo^RPp|oUk0=kYh$!bZ;G7NQo7WFaLa#i_? zNb%`hBi|I8zL+a_oPgefG3cg-i2YTKeP1FSd%tj|1FUfg+#)$1q4;A75luDR>sm{h z+>hX1SMajp^fA%~x}zauSdI!dCcUvi0%dtY{Tqs(HdC88H=uj7;6RQ~eyPiXeaA5g zeuSMylxksxRWjVQ=v9l_8Rv6LVeh@F`9pLZMut|UHZ5*xeb{o>y`X=Q?^s=bCh|oC zo2|jihRLTt?^{2vcYRhoQZ_cb4HLS=NkuisbaXVNE^L{L~=D!NSK7%*Abz zR&2YZX~pAcL}`p^();|%Tc5YST;OpOf9PDcLJvnt*m*aI(e}#_-S;AEtM5ph8VSc=G(i2yLx6k1OOfEm6=*gpk9wb@o7*h5ni|Wjyz;U-?6JlK0%Vk51n;f(+B2M7Sr)3FnGAhv=c= zk%Z-;C7LE47TA+jVmqGT#SPJP(d#oO*nFFA=Q+7Z_h@b}V=SM8^;p59wk_SrYnmH< zhlbVi|3G9WiTwE-U&QfVr~M1uS803#5{4&5CNya?ulNe^6QS&#pJo&x@3vLUO9u8T6OYsS6HNtjp1fa#>zT| zk6OyU2)3%0#~n?`yfrNUL~at|J z#OkEaZuN|1aolF_DLirCwC293SQI=ctfLuZ)q3s<$=hW;2-jyY$vP4#C)uJHRe7x) z4!a>2%B#zDd!|l8ByBEK2CjH_f-{3-aFRTIm3-c64QRj1od2{BKFFY$jBjTjDrIC+ z`XZie{1S2Osee|syWI;jQ$ueKKRD!`_=`J!Y!^~lVsPq!vzPmNp>Cvf?N;znSV&7+ zA_kf$S HR{-EY8nifc diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.10-compact.zip deleted file mode 100644 index ce9feff43c60122ba9a441b0fed56ba87c965082..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2268 zcma*p_dgU40|)T4%5hf58KHAl$V$k*BAii&iz_Rf;*2{-$R34LM%l7=&ORfY9a&jX zcV%@UtFKi?il^`M`}2A|pU)4UUp{}p8)?eKtOsBOa00Rkc+`T8S(^eY0C4^?03Zbb z0Q{W@?oQ60uJTF>R}_>Kd~u$Ru7P+Q!Ozi&;Ns@)@2Y_H#d!mnSpfC`Km-7w6BqYD z<+qAY;nY~O7DrCMx4UGQ=#vCXAzkTO_IB0!wZ7oe7Bths4o7svXxD8ik0poIxOYtj zw>A$=Gapp2p-yNBeJ?5Ui%7FpwQ8wJ@mCh1SQ_`?TK||;_O$6kk>?N3UoyU3&BSyz z@33S}=T{vuXtfcZZZ7E=7}gic?9iZrsZRU?&6E?0Ik7l9y7^`=ZOILs_*OcPJFjeT zZ46=>K{85jXojE#Hq}2rWf#g;W)@DOKz*dy8_x_=%WrGoWiCb_-p!qsT4P%Ic~l1U zF^;`vSF3}ee7?2_7RRJ1i0%BaVF!aPSA(-2k9v^pcs>idAvyjJH?X_KgI9RHh9UnV z_C(c$N)RwNa_#bNjiWkr(Q+eq-+|h|QTN?^EelAVw+xwqHm!L@9{}-IX$b$9Go?=? z3Mivv{(D;G(Pc+NxS&b7r&qtE0wr8NVxQ(h*9o0v9pnQbhIeL#v5E|W<)4cY8b-JH zy`$T#)=M;Kn?0BQoGdB2eM=?=UM+>fN}6au{F-jy(&WZNaoip;mwSB@$IOl(y`F4>;m=e@enPn~ z*SS%6CD9sWqv-k+#{0JToL}6?T}k28SzqVMYHzLswmaB~0m1J*$Mr_32^mFe#2Q2O zepK^eEn6{5AQdyBh~iOAWWxHg&flS9TzVIGbza#qlUiO6cJHW(EMKmz0mqlX4ibce zUFb8Xg;>t-Mn%^J?yu1SnT%rmOh=1mvA-b-*XqI~&d`kOgqDi86)sRG6b(ZYQMNZY z0(g3lbi~g+%{B%L_MLwep$y`xxlef+U8w;xckwxaU<?m_c@1Yaa6F+~ z6)XFpbba!x?U)*3eaJS*>v$J zrNo%f{-Zng_|a)g`vE}>_u#>R(Z)(x5flavbPa;8hv#tm!D z3;K*NS6dtWuo-_D^b~0jmW5!t1P38s`pr!63+ey(Oc8OMH9 zQZq$9a)AJi`M#`bb5i|5L&Y3y6ndmciV|Zi!#V3(vx|560q0AXjDL-Uiir#Cmzrf0 zje``{_dOrdAYz#O+?iD5-Ge|cVWCHM4qG9k@Fw|@8uq$Rz~x*Ad9sf@u-(MAIBi(MQ|gJ)TO zQ2mvCHRrIWryuv0w(@Kb=7rm^UO?IVYtv*-pnBrB;IO;^zSZmAUbz7-J@(`Fdb2DZ zyn{p!bl6gk^I}j=YEK46_0L8T=~(@;juhPP{IRcQC9Dq45fp_b-M_NF~%fyScEuwd5#b2f;{0 zsRF;_Svu&Ed)e*Aqo8o^zQJGmA(oM2?qofE)VF}XO3yF;u=fpQko^N53!1s{J&0ya5GhM`P7IAknbs6nus@~@ zqi4457sS4*Yz{Jg+t`-e)8ey8t`(n#VH>4K=mSC{>%zb9toENAL z>0sH<5yW(Fo-lTkJ-mKVWSXLa=x*p1LWZmoS(_euWi2Yvr62_d7e7_gxCJH0L`!Zl znnyKLSTAj0I5xf{b!d05Tltj+i8UGJ>97HtLRK%!bjOD!D>TlYXQe7SBXT5Ihvt&j zHH*udx?vKVLj0{GnH8O)xd(2MHv>9|^zZJ0jOV&#%fibC)fH`t8dM0(W?&Hmk*4ZFYrnU&P@l~EHS@hGX5;EM(U%_ryWl6*_ z(2{y7*g)4XPZ{oRfg&GC@0-CvT^}wLZuZkFf5`1elqy9H(0QfMXVnw_3RCKIw+alp&A8+mbFPOvV&Z*M%4ET38Tas7M{LqbNpq; de-pv*@BDuPL7K9h`S;E6x2V5M_-hyd;6D`1C}RKs diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index a93390e05ed4e7978281308cb51325628c8c9128..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2342 zcma*p`9Bj50|)RSGv+7?S;-a4F*1@dRv}ETIp!)7GK`FwBh8W{N0J=5Msg;(Z$rr~ z466vq7IO1-B|Uwg-=Ej(`Fwu({POt&-sWhIW4Zu#06*Y`zn_&I5n)XN0RS7C0Dvq2 z03f>fd%E2Ac2iP;slilW1Yhr4ZX`cn|A1RA{;qdDiEc0)!57bcj1%Al0FVIyWK4_) z{1ARGZ*-_mi!ZAS?|Ggk{wTpxOh>K)+^k-?_%8HSJ(go;gYO}EfMzZ0HGgvy8V7^>5mIbx6K}9!~YHIT3Z3^a%r@)0T-R2DZx! z{Sw0!e;tSsX!_d2bj@>KEX}iQf6Z$7mhjLF(EGN*osBBk8i( zOi6q0&7Ba1&Ow)FvBQkn3brjHa1?T=HeLbaT75!eYK2GR{-RcK92k6dMQ3Ixywb(W zYkUp^4oQ>ToG~b)0G(xVhAB7`JrGD-DcjK`tdTJ3hb@IW{hqf^v|4JaOP$;cJhXl5 z%oU;_LZ*uRQW$xXE5Q#+6xz&)S}R3DA;I1)VcWAKUWV-)Zf7Du7FpS&0RMf1(Ng*X zOG;+u)Fkm_Q<2@9j^>!w=}5}x!4538$&hW(X^A4U-Zz`{yr_jWCaTDJq0*WbaT(B7 zZzKe?{Dojl`IwLBpj_=w8>R+Hzev3OyEjy;2s3=87puI`pux*9<%QPA>xtALpExVB zfNt$@L5;C=CC~o460UBS*GApc``@bkT^A zLb}mpUR0~?1sv?T>?8NW#R26r2+Y;HG;A5Pv=bRt?)fE_ubtB6pf2gF;Eynf98v;` z%EqVSBzn2&XroWO+^6maD{M&R1r=-X0XqwN_;fU8D{JsFz_zA(XuJ9C=%+c8k>N3bGsj`l6Qbl*QizxxN4PWEKx zZ#ozLmxSkHkU==pUDh(-C7Z)u`0(~ zYjdRXk?GUjtcmV@VN^HIx#NYjS^)^${BWBtsii0M`F+Ar>AUMXmo+&z5eI5jMY=0K z)M}-lG7jmcinH@d6a0?@uD3!mPfLu0)r4@m$?{#_ALOm2)QNCrZN6M4(`QFSev57C zkCZ1C+&0~vSw(D~dsGU&{i8F2TDw~I;(%3~oOm+&o{V^*1$mnqP@U3~ePlmH!=6U; zM&-?yp9^MZ!*%qvT{V$Pq6kc}4lvNGpt<>*7o4nr`HRVmAB$+Bebrk_QVNz00L@``&9_M5{x0Rj7CPujeLrnUb4Oe5jcb2;(DRg_Y zm=@u_BpHNF6)LpAGnK3+_>j*gBTRb9tKls*pUt&NrHPUMBBYCa`7j|bl*hTHqo6@< zFtCi8fpwme_tK_eR29FaWf10+%V~=j@COn(2B;Ucn8BrhJ!x_5nO9Kq1=&BjO0gE@ zqyfyg(&_SxI4YBm;PLt(IDF`L%8OqyWs{JuSf2& zcJWdQV?XD=ywp1n`+feC@B)>&{fbb@snC8y!+d)qnsdQY-efg~YGSU>8n+OHlM95sG}M(^28QkyvJ2I$9yl%o;&LMIdX=B$c}kV|F` z`o-RA5xGt_(#c7uz-Yfl_qQf=0_y>fI*CVKu8>;2&W@PxCz)O{0-nqMXO(cKv!qD8*PJD;ex6f-Ntb2<67_A30! z1oCiKcgnM@ta{q(&ogF}*(JQ3U!K#^+Rhb43*xY6pyCnpWE;r(oE|r^yIo;D z@9K_7LQ|DMqm#wM?~p#qON41FWUz!0t{hRCP-9uF{1aC?=o_BQ1b3ECPu}T{3#$r- zQdbBQKlcmBji?)ptG%(kXxk5BqPwWqHP3vt(=)GmdFO?T0dHL0_ey!6wa&S_^AG?~ z!z>U{Y41wemVY0Vw3&LoF^`Kka_sVOtT|T~6TA6z>dV@4dBM?|@N2XAW8Cr5eH>ORd6Md$HL&5qS1V&*h+!^TT#n*!xCRJrHqtF@$|OD8r}08uaEM zXd1y3Cn(VJ&7$9~nmu{BCdS7OiTyFBXk?hmi0!Bj#`jkZa@nwuG1uziGy(YN8iWPs zYRL?Lc4$5+v~iTXQ{sYF8s)R{po%c@^p#E=-?ItcsaVmJo$JHd(by{jDl!;;F3*p5 zC&$YG0gONOqg-9)Xf}3Tj{mKfzkvB~$ZY@4|7RI@KL7#%4gl-5WLBL2n0#{z003)K001VF>t(Brm3Q~!i%5TSn{=4FllzZ5(A|1{WO`@pico=FzKRL#(bQ>VV`F?EyB zOpHYrB}y#tKmSsZ48i3XcUM@*)Z`!9j+K|Z81Qsr=Tc7q;0y!q;d|WsSih#WNvyst z879H4_cDw}WMH~24C{;pK;84+RT6keu)b2dSq_bF3~CRURwY-Lh-`mjhQvt!VKAvJ zNhC33s1?;H+ZQBS&eh!%$Z`d11yVZ}DHm-X&a%Dda)3Xf!^8BXCVw*Urw1QYJS0idNl+P)~%k{q8<}EuuoUSXtocZjAJLy2rv_ zzYE~$kLjot4`+G~tmI+mq#e5MIG-d{QfcEx&)OZ!P>eLr15&?EaCVd$qWQ`_%}i*A zE3#5e>S`16crAY>e`acH23a1rB{^kdna+m{M33qVc=JiPs#2P1*r32{Uq@1!MN#<@ zZ=vgmr3uO=yc~~t*-Wt%?XfwG>80RxfDR|A>j@Aqa$P^3O2PJlyAfHC!Wp@xlT?wE z52vEC?1yB5R5ouQc8f$#m5c}y$s%VXWPI`N2x(*v$mD;E3Q@iv`VGG^q9mEf(96^3 z7NQ`UYy&@-If|#S_^r=cF-p8Pv%QFU;uS0@{Y)I{FV`n^U7vRNuZFxvCZE~_U!F{w zIcuuX7%rkyyxew#9j{Jy`6Qj156dxF7WFWrWk>nN(a~MJH%{r0F4zEKVJhUPH|7JN z`NZt^O&fpNQ|1yph05eYAd^r+-5sOp=@2fS0z#g8WKV5HNwwwgjmvtm8qC2vXK)Y{ z^K^;uEy5z+j!C!_pm@5l1n9b*Knn6TEzt^}mmKYu}%s}=)gV)!-1d5xc(OVU* zP{nDHReCr?Spns!VqnVt=QB&!u5>kH^zeQ~f{06FPXh23*z3S*j`x-Rs z?`k(#nzI!w!Yx z{Lg=uFl%Op9`PRbGmMxNetv4m5pIubmx&;|mH0I(DDslry3SUac$pxc|hP zvtR(U><2&#I}zZtRTWo=X1k+)fjQRO$kK|BV)x>&IPtiz&oZ{`Pv~WBDdV};3>V=B z{@me@H#%Wodw1$XQ*nA=h%bdhb~LJf@VkH9Y0r;_@3LGrbjLYd>ji8=^-|Ae<`jj``kxP%9`*#}MLR z3~P-%KFNd}!Lf&`G)A&1bH7<11bkrDb&LL3f=aG2@?A+=73e zifMPyeqWDo`mp>#0Y6oj_QEyN9c&Z9)f*D4u1(fl&K;s}w@cR+xZVt(2PNo!G?h%+qey9*G7O zH&P0%siyZDYdQ7d@w&bep_YGaK8JFu%-3rPcUMLe7jb1gbD4qwW*dntx6X(HXX-s0 zv(S1*S{IA9fjyHxd?hBoMMWW>O+QHGP(cLNc0e8fIt+JOBXS?Fl~K);lGV5T zapYU@*-t2LY6?Zv72>FAep}=fiDiH9`xAlv%*Fvj^>>?efq=%fbe-)#_PL zfd&eWI8n$|=d8T*fn|TKGYf)tvg1N#`IY^{Bqy6|vnH7!Txd?p;aQJsXCQ8!ALx8v zfQZMhXYVh_H110Ir=4M@K2{$uj7w`S1t4yPsG1Y+sI$g}K@w(KVIJXBid1;2V*V4T z@b2$=yL@AXMiIuO`vd;+4bV|wsTwQ6F+^qD`LBSUPgx&mHh+KbiBPNu+EPv1&^pACv}r!twLI}9i_k&f$s@%WP&^w?lnu%0xN+0qoXFJh z?MbVgZ(W=*OS*rO(q6iOUZCXPP+lPXeB@Am7LkwX3VpWqacZ9bRn|59A=}D=<55*B zEgRXx^Ab%u=?joaA-;9*lwF73f^NJi67DIqT`SI>mo?%AIRg;9@0t^Two^&iqF*zz zTcP;r(XMrr?^)dxc)SQ)Y7-$MQ52Vo6`~AHsmx0N<~x5Obtb!=(=7{Dda3PlY8i74 zi`!H_YjEY`@cw#-hPOEhjddm_?Z}Ia--*>OcQ6O?_D7}gN8r~=XzsYb1#+oNXzqagP|U{(8aaDmS{2j6d{yM(r0eEDQfFuR^22cmp_75XX2nF1kv4AZBYyZgZ s9cEBV0Rle*KL7#%4gl-5WLBL2n0#{z003)K005KS2}lOF3IG5A0Mgt}_W%F@ delta 2482 zcmV;j2~GB)7ONB(P)h>@KL7#%4gi{Ra8&U>;aPnN008|-kr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*-1lfCbN=(Ou06#Ceb6QQGIIJ5cuiE z&QqGyOLZNQbsH>5RjmU92cGz(?FydRT4j!SysRGP->YcRdik$SXd+YoU(G!sTjK%F zGqb1=1;DUy0t5Abvs05=U2=uGQbsx2II|00*?>1qp#JQnY5C$)c8hXJ4HDux0CkMp zS68rj&bDFoTk__grxACMZb}sjx`B#{5oRe9iakr>o&=co<9I=6*+=y+7u|KOTf*Tn z9oB-8U4dNOxYca&qSGt$A19-Vbix-10esPa8(0ghOEf@#O>o*UgC9bMYbc2BuVjg0 zi?T#pvb|-e(d)WA<$J7wq9_rru9tLYTeM7r1)~4U;yTBCqX_^yGudm_R}g>g}I*8B}JrKS6#H49x=SP8>D0k=Q=WC`vk0xN?(FJJ`^YMt|JmFOO&AX zw{k7nU*k@HEHYH~S0GJ9^FN7dKA`&WZmUb~OA9wFdTPCcfat8I$Ty_{j;VRdB!JH2 zv9Bex@ZbFkc#7o!$tP`M?Cn5#y&6i#AyWVh+`)Gtk)S&9U{kLIzi~w%tRvy^OoyE)Opy~i@rB8aC-w3PQQKOIs@Lu>gQk=?pt6^*UT$IBT30W+z$4k7N?mnD~*OY@W z5FKEwlpVM7rs7@sa=o*B8Sz&tjP1ElSRhK>=%MgoVGr&01%Wp39D-~6BvuovJv-HQ0@#@mE~kjJq->v7DTxpg6{l(!(0-u z$2{Bx0UO6AmGNF9*03uSf!2U=^-_#xYDC*wg_DHM%q+FNd$j)~xEO%|p{G&U=WdGL zQDKrhE?Sma$=r2Acc{l22LGJic~M5@6Dn=J8N$_YIrJ-uu)8yu_JM2fCnKKBT9b!C zJNz6fZ?r7kaF`;kvumUH(}S%tS+9Ab4&)9~bJOX2rFOKj z|D7;~eBfE|m@jdH-9 zj!Eeoqy?$)n_KYb?$WiOZ%s?GZ7FPBghZ$V^Tp{}w7J1JPCn0{ckCBfoEm~-?A;~W>?e=`5<6fW*4y!E#?Isick&JM80yKm3L3IDeC z5TVBiknz%|dgsj{=pF8V7Oc~KiOG{@|3P~Zv{Hf@R2hM#?z0ysF6feUy% zl{d0HPl4G%y4Dtdk7sXX3sb1}HgLD_2>#U^T#NA}ybt~FglL2yq9{>cgB$QT3m!Q? zdb}pGw_S=ac)I=olQT-_F>82{#kMb(stSlqX9`Y%agnb8HxpvxaPenx<~6X zd^U}5Me((LWh>Mh3J6X1xbM0YFa=$}+#n^C@?g;5OwHGSOM)UQ;!ktm-e1b?j@qrV z_M=ai2Ll2SV;-cBG5}q0s&2(zkwX{|6LqImNS*?LZVmw$ZbM!Gzfw`5{7(nMeWyT3&ij)q2MusRe zL`{=}-!}$-w!tL=+_{3q>HGdvf+ffhyNdkYUA+_#if}S7uu&H4W1@M$eyRsEdMzXI zFu->DXqTuX=XaS;#qLiwLPZAWHG68dI3r_0W8;2om@50N%WIVS4UA#-=}nfat-^4^ zDWu!vc4(+7N$_#@ci`ZQ$+W5?`4|V-Rn7HzKnSFNX_EaZC-t@7=z65zv zQ4gvN(wB)n(`u!~@47+u2C92UzW6inx$?SU#*{Tx?mkD8I)o1nibHTpALSG{Ax6Fw z?_deL$O3AG=kx*K!iObKm}R2?v|Ymf07FRx=8l*^N3svp`8y;Z^L?S$+q{|&W{2Q# z#xNj%Dh?92gLoDY&}EuH2E-8)!G~B~it{AqH?%_u>fXkLn{YjJ23Q7jS2><{90Q8r_RsaA1 diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 889a809fb4070444cf1ec6f7222c9eda176d602e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2261 zcma*p`9Bj50|)SF&F0LphRu=ORwc=qzW3Gx6<-R6zWNE{*B_vWAT@*QT&D_4l z*N`JeScNFcoHIfp+D*Xk*UHT_{xiwmBHISPLIf6+0~RXueSJIgZgK_id2n+V(-A9&c>A(N|BFw;gIO z-4GvZAwB8w9WyaA=C!A3eM2_UICXIIS*4U(EUef!GS~La0H~mu2?r1LqBk=B?O~ee zxs%f4oAa%g+6O3QxId&ha3|_O-7RqW-y~Y*kffXhg$Yf_P|nj%TzkpaN!VY|NjDS8 z{<7O$YLoTX`-WY0+WnY)P927fkjtpuQI_Vfu@CsTp?X3Cx=!9Yy|veOu#lPK{*kGb z$B045zmQ15NPGTz^f&*6H?=5ZlapE%@fm*gP;;l6y+TA%r>=sx+4Z&;<;hIHWF&T- z(b2+g=vmQ^gIp)#~6FfPaXzq63L^bb05JMK-WVr?X2$iUX zQ#5yq?3xAj@0_~8T}t@yQhmhL?$BfDG>~-XV`WWTYxL~9A0^Pov&ELK^@O8&Kq;V5^IR7iDavDy36`$|2;5i&vXp6T zC5|b2oYXD@Vb3WM2UJi?4j~{(VF&=ipq&=Fi)Oq*K9W2Ei|vKNUKZqnSv^g46!oN}5#-uC9bQth5~St!z%kz@Q4);vy|+N>36cZ>15 zjO|el84@C&>K{``C2z}|!blmgUe(uDXD0^5M6@GRqa=}g_POF^VSP-lc!(S*Txgia zrFSU2Sm6378l2B_zA}+lULzMA;l_L4rz+UMfW5viPKER7ML(VdV8pr~qHS#i9S?J} zqhcnte?pfl^S%_x!iZ*-p^YV)siUr^={BcV%C9t{&j#kSyK#8Llv%DibJFVe(nVLR zI3As?BGUADJr$OBb)_cK6FBXF{r%?lmHr0x9&_{c5Dc$ip)bv(0}gjw9n5!}E2%|C z*MZE|qG{{Psm>c89~c643Y1wl`-3R`(Dp8jOXLoxfM3T^8XiT0tYUPiN<@tdqBoC! zi*k0!tzjNtCDs|Y64o z?YConYri#4u#Uwd9((Np5q#Qij}Y`L2|bgY$85*WMa8LRzB ze_GPT)f@V0wmn4m(33LnRQiyrM}w0dj74XsFxc@$n=@+{XF;p1wMpnVA*NE;BJM=8 zt|baK&0b&fN>9kdn;aw)s-$b+t0x6^*-l5uNAKFcy9F~#l#+Cbb8RDrBF!JD%{(ue zq5AS&e<|Kr*^bYwMu^e{wd1FDZaE|K93*j9cw(bzkdiYBITZt1%|+@8VxRco3r85* zKe)6NP+yg_p6|-T>bH+j>Lz6f%!sj!mI6il=ZvbU({jbVkK(8F1v47l$Bpm6Arf4@ zz>_$i;;Indw)Kib&0)Hsu{V+B2Btb&8%FYy@Tz#8+Xxx^2JqZTgi{*G>lK#!+msPh zpVUp?3pXBoQt@lsS(Gohs@cDM(B@;~EqOgL+Bj_gn33vQ)N-tF4OJ{+-|orF2)2p@3kVl#BPGym$DM`c!d&TZ%Jl{Q1R!o(a8P1pgG)u55w05 zX5)6`5i->RS9Y^#uS^zsb59(A$ckINx{Sb4>qTbz=xs*eJX5hVi{q3EJ zQXX#kD5K@TE@31d6~n?UMiDoY+PSsL>>tf;aWEb6-KKu`H4}Ow((FluOT$j`ylBzW z;PX8#d5^h5|5=5pqSQQKHS(UWMO3KBE^YhR&yoSiZ)xye?6cJL)(q{FciGwxq9o1y zCQ-e0YTfSrUsO{1!fmZ*PCLQ^lilgKC)4oOSvbNaX4?&yh3d)txTI`wsTH$QY_1%g+Wk(9zL&=OX#i3yv)dv0 zLB}oSsqN3<9t?wWqSp!3w&s!%t(iIgNoN0%O$Wa?wI8q?%pv4nImO?I$2iSznh(D(3gLL)R{kbW2xM|AX_fKQnExSQoH` zR;<_OOOzG}eJd|o`(5byv~fX@(q*Bnn6YX51t(AJqqlRxmCu+mK|~B76H^J!;*0OH zgKtKZHi4L<#L^O4{GTS})WOrBOBz)*cDHodxlLeu*;V1k!#%0qSS5c+G$<<+)Lx`F zTq7KHTbaL&7zuwhFS9KuRzJT(A1+kZGvMl^XnWWO);zQz3#9Im(_96RMo07dbJ^Y0WAXFHFh?RRE zU*N?evy7C2^uq|=a6T6WPbBLGXf-KlYy8rh1?01bnb5zUo3aASFXo3Ag_4IVPxo>i z(tk}`C7YL3?^A^i{dOacmCR3%l%nG`C`Lwk=yHipyhx%OJ&8r*5ypVO@+ybyb2Iw6 zuQ(ANtej2cL9ST|X(vcroi6^)oqmKBtIh;hc*h4PBIWuD{SOXMJvw$=k;Kjvo{(3?2v zjiw{AU#(o?PI}_yhzJz8moG3ifv-PPd}@tD+CaQi$s7u&l+19l7gPRRL@vK6LMdfsLMi8_EP5AAaS618rstAW&t0$Jxzm~bFc zAxpEq=7nW(0n{#w1)*1Zk%KUGdYOyrlZLMe`rfde4k9Vh5M-Emiw(n+=uMt4})EJmUvzoasb`K1XEExoZK7fayu?ud0RQma@acDP_aw5dz*5v8`BL=Lmz@VWk9N z%VaM*f zjBEU`XRm1Fm00F@%=y{Z0&e*D9R}F5L^$!|no@ZeWc%YAt{$$sUc2YlYHMZA#<#W6 z6v}>A%gg1~&lnEBmkEMQZHFgB=#2`1`aoNEb9#2@_tbphNroeA0P2*fV_cV-tG-Mz zKyfN6)mVnv3JU1-9hTxjHEvcY7Su(unPWRFN~fbu8PzJhEC;U!`XHGOz#i`>_Org) z$%Qy#V`eOWtwJPd(Pxv<8E0>oRZFqp)e!18swO3hF(Q!huXRM)`t8n_Q=jwLe4pxPMp0m&slLwGR`<;mXR59mnh2WT)HSu z5h7bSL`KHBjBlUs@88Gc`+EKG`sMWpJT0M2%=!Q$zzIA;h1kZ58MBL@1^_u_0Du4h z5aEXMb8`>yl2=ktRZvn03l2bfMTG>T&`39whp%6Rmx6y-a1bjq2yg~~djO!DlH#Ls zs1jN}G|-~WQA`fuGYBH9aH_CH440jYeHfZGKexHrxho zG3KiGw6?aAr)^l+1AnR4=Ec)f4wjJ95wAPzx=nVL4`D94`6UuM%8AJ$UjprJKJ%EZ zB%YBiaDc#)ublNv&hQA{(*125O%Qun0_j-8H1nu3t4hyq1$Hwf%5fh7g3g1(jM zaqQBaSCL$vV4l)w?n;nTVz_kXs4+QQkQ6gRvJrW9W^VuPrJW|yJhA2)_x>k1gmmwrUM5h}dRtd{MT5&WMV zLc(KQskjwA#KDx%R@t9(O}6_2;mP|*1}%~6iObK6U8eI2(gjWjyVq^FD+wteuHzbG z){Rpjilr2h?)h(^7a5!{(ptOg6XKX2;097`Ied-<`8E#}2bNk*#e!EcQol@kHuETb z>^)y8? z_g>ux*TvGauabgneFH9UCp6BXXBh93;Uh*Y>Hxwin0rppSL_XK;YiJ*@d;w}0$iq3 zXt9YW!(feIF=yuz3LO{}r+w%=Um)t;>2Smx)^2NkqPn1)=8O!Ol)7=wPJj9`T`}{B z+&htMNK?|h_+I~~TC^{`^-~AvGq->MXnYq=>@Wj+{FCiNUPWWGe(p6*ooTOZjeO!G zoub{}zSo>zUF)u3OPO{RJnZUU&O!6?#c(3F%yA7=_l9Q9vmrEX7a=^W6xh#etm)Kf z6z|glbvu7GuVit0(c*(2BRNZe%B1@@yNrD;BZHyw=uHWGx6F)j`y`nZdhUZwgg2%E zd@+voxe$Ny?3($RjeC{_3Dx_zRnZg1rLDc5%*$5PO(~K$1YR=hqwNRFVcv$Od8Bte zyCxqhhY=iWSO^uC9({9-&I`v>*xkw0NR*!g_l+)RwPM+a_uuY-paz{g*i(T!4tn)$ zj49K_lY?n7+_7g~M0kIXB^HR~Q4IOX_!->6_?o3+by3ZskxZTqFVE#7Tpb7LuOlyFZ){-#r8{YO;g>G)Mn>;PYUC&+a5nKvZ{ z-b`7%9qEE+fe~T;^C))5y_2$7yz9pe6vEe`H~uV?{Sou=*ut;@^j?b+)p{;DmVC@_>m9n ztr-QI^bHXc0Fk;1_$9m9&y4@v$+YP)x^+wob9@s7!Sl#dsMYUnEE@f3tNZ#wXju;% z(HM|XaYJOAwezBU^(r8}CXTw0O*u5Hw4^H@-sej)u}-NpQNH?>=5dR!7{~zFR=~t_ zL;o1RS^J^8IIQmWbJ7HTOO^R3GSAzLl+bc7K9jiKvpBtgmDu_~RIqIV= z$EyPTWFHm9C}##V9l0hN>IaQPg$0jgb5X0r?mh{se6*g%lACCb*ZZhbNHs{X{?i4C z^Ss)VCGn1J3(H(C+(2X)&XH>R{VIC4Dz&HvWz=4}SFdxCMv}f$%6T^GgZ2~Ds=fM; z*7XTx`wN3GN>lERn?ygWzhnbZy2LnPaU#A;{1uEKL)QU)Q=g>s8{`q%s|~&DoYZ(58V9Zt+37Zu({{#*&n(kQKC)Ea{ z;KJeW*424S9h!f7rFFFcv&&TiQx4A=rYPwI!jYDQ=NSQ+G`VLI8i#y(EgQOSd~&s^ zc#HN!!=?$5qF0t-SI8%w$2#m%UD8WQ4qh#5e>STkA_Yw5w@wLt5$J#2r7l`NKFF^p zPgJV>h^;p(|9CP2%g*x>fshM%s@OW+B1Q8&#asHgzl@KsID9TTMV#dM4u1kax0asR zvmA>HOW@0oA1(xU#NCRTDO6IN??q>!AUY|PcsH9evH{6og-dcS>%B^wpVnaFfzeQ_ zXSFIGC4@~#nYb+2kvNfU?h`% z@yg(e&uVMXTX%IZz1DdGZ>60M2Et-Z65S<()wE?y~SjCx}y$d4K z3})n-U2kU!9xn|Z^g>F(QFsV1GTxg zmYGKB&M&zzM-w;oJmjjA!i*c#%jHI7sOVtV34SJ{bI>gFvk^fekszjEfGr1sIJ233 zh^5Jz`NTIBuA63O(iNZS#e5S7DX1WYK1buONs2v{DOcStCrRABBf}UxV;Dvn{}c9E zqJyg~(1B+cY!15Mo2@UGIs5LnNASli)+OG?ScxBSa3O={^8_(%=eNDcb}zTzq$1B? z>AM--hsYug=)qtE(()%4ll08anKQM3#z`0vMJ?Mv#}CAbs(S~s_(kB zw}^Fm^ZG0_;#N?>ku1@f;SGX&?vzUgostC!i*6;V^(`PaEbiW6cUUO&-2wHNZ}%i= zww=66rCflMt%v6<4|fRwoxY**YBz${QzUq_5}a|~_TyK%88q#=Vkg;5T0VqDNE^zf zLexh5v%z8JIg?3T0^OyT#;rE5`b+B76CQ&tB@tPu(g%7GC}pOwAePK;I$^bt5nsQj zZeIZ-?TCY$Og8gl=}ogLr`(`R*p#l-(PpWH<&jhu#vaY1D6r}ysV<}T={VpY@BWl; zZCx+fyP?Cz%nH7Bj4hR&lsck?D)^2q|LqPfA{ z7D2Xv_Kn+^Cd{|(+u4K%9-FKDmLE2qK;g#J&A%HsA8|j^dQjtL&5v5U>ox)<-&Vz1-tVq?NL8`fVsDmrEDzWLGl! zN1kBG%n?HD_zYx3OJtCdhCSK&g@NqyHTS1A$Z;*+)(cbIzo_=^s6eM9Ayi$I{6H|l znu)mkK}EM^wP#2_Y0aDM*plsOeBGHRRhs_a%)iDsqca@2WyrBL&B{?}bXR^$*@ku% zCN8yH1Rri;@pe9UzU!Wpi=ZF34^~Q05mv}=a9M>lB2Iu{xIJ;EB+D=uH90Ly?dM?A z$MCv5`o1g(9%zN!B&X{R`yp(Uw_~Dd&lVICO>w<}Egvt5gtNQU^J+i-1IrSv*+H{A zQgwu?I+L%OW?}P_8a(m>GsRzyc�HhxI9MBJK)-b@#oEMZ%VzM?Y_7-L_ILZuhkS}rV9(3#47xIQnYip$ zJDkH?lUhoKe0px1WV)5B{yFHjJSQY5Ac$A9nr^qGw}#A0=sq~1w)%8WLp_A!OL)`M zY_BTG78ll%aoDi7_&f@b7bR6XPEPmWw6GHZ(cOnAL{PVzQuXsHq7VtA5|_efr@UbM zIenezQ@Ot&YTs?RX4Fqpy;e9*jLlg%X=T8sQrO|MvdTML&w3`Ql!=Sh%vi*%4ADAf zjAxBC8J{r5TMxDP4oMApB(|J#auH@+v32eeyc+G=0|dBjMrUz+@7?WJk@#%Ft?0CI zxPFJ8K7uk6T_3%V%Rp24>ydGfq|e%w_$lanZa+s~gEz`-$(pPWt^YxcMlC9Ied5!C zz8Y}S%0o;G=S_3?2=E^iiL`UU0>1tvcpaFVjA&2BKdZe4%k!44W|alB9)5pQZ?>Yv z$!+f?|FBB9jt2eqhT9A4k=|W;_Dstr=TF9-RX!@N!1YVK{@FVTrtG=<`?Y8S>l=FL zpZ$T-QpQ^tYLVPRqfB_Z^C*inx)}P0;jhF-)|sNw$2<&KIkTuDfRh za4&wt+uJts;#7qpl`n**oMp!~Ji@j%V1>Qe!F>-8Qxi>23LWIgE zu{q|hPmUZP<-W@C>GS>l`*?g`uOD8&y#9cv1suc%16ToGfQSpQ7V50(lRX6hqEG;U z000n*#Cajzd{IiO%IeCh%0d3VE~u~oe_XH&66cQb3PmY<2l->U*w}&l01yiRw^CBj zYKLlpq@jT(O`d1HSTET(7ZVAV=e6bPPQSkTV!1owd9yv}%LY$EZ2ub@h|fG?DdkgR zsrl+YJRe=jZGAjpqVETJl^u7d^%@1j09W0M@}A(|U+x{SDj0!>NMwavP&BrofIytZ z`@_#hnn%|{)jz3~0-ATq?)|ykEW6C}A0wF2ZIr3(6Hh%`Z-ndqOVM|I&WS+kSTNkH zh}D?Ovs_hp!2`TBINm2kfJ(8OVlEf3%x>Ee=i4wnk`9dWkB z1$0)eZlgci5(Oj2e=-6xq>AxOV5k3eR4@|pD!%g#a7v4z47yZ6n8X~~1coK$rqvc3s(kd;lo=usAe-^bx}z@SHFs#%FaWyfvf z^`~Z&e=^^uK!vEzuJ=IUDL&cv?CAYczkr&a5{_JkkOpi3G=p*bF(=3Uh8}gH z^;3Ab)gSLdQ-d;w^f4S+KARHppO@JL2fmHDiJO~*v?+mRldUdxKL;NC&iC+x6 z!z#LEsArdx%JONpZV6hFU!%D$X2xh?dUC{M_k`3d)WitbuG8E@a#tJVs-F= zTUFv>SxmZi`aD5$BRM7Q+bacgwHv*6#VwM-zjzjBct7RMD)b&c^C^;H@Tu0qYiWT( zV_gPhHBBctzLCXebl&N@lb!T@<6cmvYj0mQKnr(S z6!E-T?K#?Y_uSUM7(pEpb@EzRq~n}wZTwTQ)ngFq1%`XR^M1%ho%)C{R;jX?w6-<> zOFyTHOZ?hX;-XRg2&{|ZWpVUDMWWENbBzKGlLi3>8<&7Zv07JN?`JXYh69{Rp=3$w zDYa34QVWB>%8v92F^lH^!r?ux{X<43c$NbL0+ znsUt+AwXzxD#6fpCK7v2T>oKw(6?xiHD0)~5tb%>WQ}{nt6$KwQqVpJF%{&7%v%_?E<#+ugEPM0 znz4C)`F7aGbJgo~sJOYXUtTZ0&$pM#(1r;Vm>}N} z@vf}guftB^Lfy;!PoyoZX(+FA;JjM}Y~Z3@2V5yX!GFD|G#i3d^2-p;^RsHQAelmy?Z*L}C8CC) z9y`V{dUL`I%M_dnX?S6J<@H*F2Y<`RXhq}T5^&ra}K7y%mx8RfqmlJ{3%oSC& z6a7T9B<`&)=6ywO;Y55$h~SCfqNDSu^7d0SUXT-QUwYE61!}IRK&eoZFZ2)gCxPY1 zu+LOd+xMQN8{Lgr21*6dW241aH`T}*jc1k{qi(O?pY*~FoDEE-g2pD>im~0D?`)j< z;OXnsU`Rk(A4Puu7|pWFoV&zP(zSokxnzZM(>A`OCgk{OJc+X9#oS(wQ8TU{+OcnT z5%uX%k^ttuhJL4`Isy+7y9qOwYvztt-p}al$4wE8Etkq&9_qDA>2p&Y#Z1|;9E(l9~n|6d*?M{ zTOAcE@&wGHNMkk$8#K*SGPpv1W?PX9jA5Mgp=E?E;4G{#(Ep~!Z*BZHu`K`2{|65X UI6KF`Zh=%0C_Y#HUIzs diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index 46cf40ca09c2593c579546a04163c051452fb71d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2329 zcma*p`9IT-0|)T8Ynd{$lp{lyi7#^|xb7buRq{vf#u-T1=s-ykn8Vj6{7z3i6=Jz94Z3< z5&(c;XMeJ@ix*K|5v7V!L!w2m5hxxU*XNCd6T8O#NtwJi0DYyoNT{Tx7zbZS<5Ys`Ay!~sNpVar0253O2SA} zvH3a^o8$JJ$Le_6*x(MbAwAlpO|1&~9`V95!ebiBT&0cP%$>jn!5;;klS5lqad4a{ zWPY9wZ29mrSan3D7`S3mYB{*tBDKm(HPSV@PQ*xMk@Rgm9GsZ-Li7RqI3RH{5KAs# zM}tYv6a~JxBEHMSb=lCACwg4R;+5}=U2Wcu6)9vH<9~8K26!gai;q%@h6=CyUl~CHB@jQA`*Al;ujXPohv}q7am) zl!ck>iZ~`%5_=jWfp$hTjGEw{ucYS;md|OQ*Do4{(=|Swd)hH*_vu+mA3CB zbBug%%55~v9PajGOohE~)?JSjHk+NY*;bUuq(0vFixGOM*}PzH9qygQH_82irfXe} z=C|APu_1X2hM-ogR2&T?!j}d?MA<@p{Zgfc{SAugR1YTIroc3PeZYIbGQjt2T=>@p zy1D`Jx!vtjzjq1_0(gDhZ?Hy_HYzAx*xff2v4&|$jM*Y8*P1P#KW5G(>+c~KP_spK zJINu!1Iw{ym$GQqA~(YZ-B%9GuClF=7Gs>dC5-FudpQ%?E1lSR(TT?2)Ulhd=@FZZ z!G^|y8~5B}Cx|hh@1)AFhM^7g%e@)lW2sz^`hc2k0H1FrASV#QMxw<%l6UDbWghht zx?4B;^Sbs`zs!wRzUc^-Zaei^V!IX7#hf*^3V)C2uC;VNS zD3;pCYdIG>;TIpU_iJqt2xgRSzn3?7PSLNQMvp1I-I5ZIdW5K{p5ktQ=y{o4>{+O} z5jc|P+N`i`2}jPJ4qZJ`rBmJ}Hi?vBa&fJ)`X<#of5#*Wzx7u92qtKUsZ4xST^Czq z?pw56B7Jr8Y#gVrgq6Zm2I&tIwEdR{;f}*N`PJt=^)c}06=2*F(0qN|_~E$ZHfAW| zMwR)|JHI6F3^rD-_=vA|=^!Vx-E^RbRmlHy9EY$^1cMD7K(dj4pBCoD`RNJq)q#)S zb_|PAVFQnA5Y!>Yj3+K0c-Jt=OMU`ZCvX}{rQ=@aF276Y=@6P#V^lLmLPN|%e;?xbx?`=%EUAy7qW&BFf>`$fyclb`+7Ui!Tgb$Rok6-e-B)3fkL4ZxUJI*fKb!z)(6 zzPhTpM|Bf-cZR%Xc-p=Mh@6K|XLx%J1jgyyeRjY(t zX=QR(S46geb-ro`T=%%rXUK%i4O0&W=dmC-@bqt6pFWBbdDqG)14@H^(qf)O!YUTw z|G60S7ld7`!s!|-*h+6&PW$G1%(6jss;^I=;3ea{>3Y|# zi|GTj?)F>X#O$lKU3OzsDHAPrQ%_4ln2=1ZS7`=Gpjqg;K6%L5f9|vlzpK>O{`t6| zW%7yl4Ytlg#|Y0AwFc0#;1Bhh^+pBE2N%a$EoI;1yYEhH&z@<0g9E+YGN%1KGSyWb z@dVM=FnQwe3>Pm84%mPHeU?PPW);d|=+c3p>(18>4Ta7s0+(*|K~jX~n;Zj2x(Gjs=` zJkF=Io&3<_bM%jW1AbHLMldJ(f)sNz2wK6qimZw|RpAkQUouCPXUN_geZIJscHv^9 zDx#+9s_x1eM$?AFK?H;HqkweoLBImQ^jpmxnR;^~JIF&#L{I6No?N-Q7=gOUa^z&E zf)(cB{=vrayXk^`v?}pg#kPKR(e+#J_}mJihXo-iNG|trh@gK+ctAW4J|roe*iHT^ z;D`x7BAyLhDtV*NH51K!#dVGRFj-~|#ufbl-P*+h1N-spI%O#x)jbJk-QQH239p)y ztB`a1duLFv7mk{)9;vvRMZ$23{1&6{F5Lz<_^S9+lv!9|tECo~Z9-)lRtPD|=c+ve z;mN#xn4)D5OWor)k!&RrcP=#YC;yZ`9@PuXgGLRB{PKGv(HZrr zTSFqlO^Yt`CG=Ahp@vU86Y{0b_Cl-ziyY5)UvgTWQ>WD?qkT;JqhYVp$IFCQ?)7De zDto^p33Z=R%?cswvrSbB8%B0rQG}9?)uO2#8pkhFeIY0=&;2u+p75y?Z-=w zVGDFOL&Go-v&qr&O@FYQNgCZ9t2ljEaber0Uv_{$;+3}b{aP|SSuIcc^R-v^(&Hcn za!{`=&8WnsZ0Rsnkm-->s%>HSr3%a4+?qhRm-s9Abb4 nmW^GP<9~zYw^{z1D7Js+|Kp1VmJ9Uno9%b4es9fh00F>1A@fJZ diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index 676e8547dc98853093bf7f165aaf67f7152e9993..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2319 zcma*p`9Bkk0|)T2xvxkPZLUlhmfPccSd>KbIGbY)Gso~W$5uKVg|?6*R}?V~IiER) zl{0F4Ts^LkqTC`GM!r4Y-@mWd_w)JT^ULQCcq8qBAWHx*Kpc=y_|xTcs@G|ZAOJ9; z3jja?06;W`5QOo?W3}Mg`r2^qh;Td_OZqdM5Q)YR`~ribvD(2A;bB4`K7cm>5DNg9 zCnw|d4)m@U53?Ih#R_`Df>fE1`ze3OS*X>BFbwLJx?-qJ9>Cd6v4q%nOjl^gyw74X ztD)%1>aKk*jwbB#bHWZ03jHf1?sAJ^6?90Y-061k#IfC_9=3D-sC^VTJxU&S(X|Q) z6nMHjZ{8qC|CC-=9lYhNn5&(McrbYy2-CBb9!{1 z(ltFhJF5}YuW#igSVJMU@h7o^^*coewqvI{9?u(5)!&VeE|Jco3E^*@uO;-F*a1&1 zDmteBOo(Bhj%_v*S*9PoG}_hRH?=CoBNe9pMj^+HO>5$)Ist-0Nv=a3edW95kKsX} zOYnKeiyX8aMb;{R5E1gsc<0=2rA8@$CjNa*`fP-XKzn!YSqs7~+qgnwp}LP8-uXuL z=JsMILb6=II1+d6EQ+LyTQ}ckVUZ0p1^V}wH!IA=1a7t`J=s9un5j)NcQe=>H3~xb zyi04oGFb8o{k+YgGuom0q=uAYk>BiEV9kINif(-zo#j-2aq{|NnH_H!yMF9hGHACB zhYsmo7549qDYkZ;aoKnBei@Q=*J?kG5*)AXeRmEpLKg^6E2=%voZ%vupNB@e#^+VY zMpBBhI<<=q_YqMJ3lVM&_>&7q5LELk$IcX;TKpd}4=c_{Y~-3<>7!)$&&g&cNGqG_ zorAr4*!}~0X>T&mQtDY_^GyWMY}x{%CC^#7`QhG|fmdno503oI2 z+tSwzqZg!k?$$mYlUktm`m{3DfrGQv7>q`0rJ|UJEJ@CNcBimD0&T_OYcgNkPm*S8 zcCJ^2mGoK?mz%}Cf^wW$<0H>mASac+5&2;ns{i_{yGL&mKXVUo()~^|GSRD`f~pHY z3V+@!olvobzs@d;l9!urED7A{)vR5AGe&mu_MaD1s+`lEU0RY`Eg8(xXdq438hTB% zVm+I7e1`IGIfH0Nyn*E;L5bAoP}N0S3o~OVmfLTr^zDoK@RNJI)%a3<9S^ci{+{aD z_#=O=s?sLk{=oQp`NVd!St3Lxgwo-gDulsv9>i=%V8c&a(Awu+KJB2>_~~L zvD`*m^g_5Shrdne$r53XT05*jakp|Xu}gU4LEjDBcmHQ|Tk07d^cFAMx~Gnx9ceP- z=WKQO1wfw5@Q2AyWp&cOM%K`BE`uC!dQ{)X(tGBwi0qKQXAhnSY84V7*Fp@fLKcd4 z;0DuP>%|;kF}hS~cznGc2ON5nQRve_WOTujEF!_MBr<*CMNk73fn_;p(BlX+WR^P8>)m5;tmZiHKnAJ(qi42QR zVUn<}h=;9EK>KEVCzO2iEk3m}+1WQwz0C5BQ9@{tLsL z+sn|uviJ=to+S!VkBq>4FDI(Le59DG)OF;Jv(&pbhWN;O?y|(3eOiMa;wVDJ$FxOA z^?}`ly}}lbMT$!uP~`pE7CF!(HJzv&mm6-B(&a3Xtx3teFXZZ(9o$f-I`bZa+*59q zQyOhC_@Kbaf6j^4qN($6iz7Q%3(kD>@QH+Xe$qxcTx+eElrD^HzItf9!m=o{+P`gw znGTfpEf!94R%4uMVrcy1XB46Bvd9;2_eiJdTPZ&vXbXW>fKQ^N&R_%uqEhUvthYQ& z$kv06ca0fdzFK?kTR&0O-k7Y$SZifX%Ir!>N_AJP_lFtq(LRI9MB4N4S_1z!Q+`S1 dzlr7fcm6-LAnp11|9$iPs>`pX{$dXR@E?u^S9SmZ diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index 525bda581dbe3b5d9222ac0d9680f21021b7380d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2268 zcma*p`9Bj50|)Tg98p3-lFBhxjGV0;-@?c;wA^3E$bH|EJ#D#0-?^Dw5qdD&$lN2> zN{)$S&gP0ptZ%umr|&kvtpK7YX55)R@t0004J0r{c94`|&PHjq;Qz(sWc zKn?%^M501{P;UMnDryi-h#Dj;$lt{yIyfja+yxct?(Gxl0r3qB3gqSF0yqHx7yv*I zhx5`n)CegZWi;O6FQfmCBsU^cWrg;g6x>~O6?BpqyJRvA~#uyGS7 z*fGgozOF}Z{5!lhAf>Qk6S@4k_JaWQ`vTzF+16*0UvBf3uP%kAnDoicPj!N44k+xN zh2jG0B}-w|*(eFpsWmBH0ZVJQ5O|*5HonQGqN?#ao4Z9X^M~LEfio^gUMR6HX-C?P z^JXBSvi!FCDp70JjjieO(ZUMN(Bw3H+V%^&lOEa7g3ARQxH%~~(|~`q9rv=kA1Ab+ z!lKiz3HIF3uKr%tBKopPy??RD6r`O}Twwk&(}nB|FIk;kfdy%#S)3s^-*%{(@wruX zM0?*zALkU;Loy1J#+N;_L^3n{;wqPF9?;-qZTIYB?nw$22A%Qg6R>|er)WC<^W!@u zLYb^nw>Tx9*D=0!19F?kGwm=Rf~)l`fL{3~3GM9InZ3t~S(_&aX4=DepuS$`eJ;Il zWUq@2iOT(3U4MehizF4I?v#-TZ770nX7zi){0=^!xV|kb<>Fd-2`D03inKDOvMRj) zRA&Tx`>S6;$7k!$_nnz>#-lIi9usoRSIG&hWE}IOVwl|r=e&2gEA;0`tqZ<=!lVW>J`@Qm!1gl zWr>B8$3t-nK-btqHAl4k?Jl5^xSv|oUMw(i=vR&Zn)HJ5((c`NSDEJg2Tfi2_I*Mp z?v#*NiF_AxzRpLHF#-c}N^-sK62|J*+rO~k>53K$BsWO|0x|nnZ2O>^CNpMVn@N{E zhfSzEH-byzcwJ5n^ERMF#0M+Lv<`9f?6Jh39-ZE6-`T`V6L&s47g?+U8OAJu){m`eA71^jh4)k1Xk@@4%^eq!D8|c+}<8T6R^5aHe$2^y=pIJ0F z8&1LQA*uJ`+9>UB*{QjgsO{DS?4hj4dFA0Uho^HUD~_&j@;M^Z=M#5m6w$f@EN&U)4>+_4=I(CF}U|9ikryW9Mog3=TCIbI|aH{?~jgusrC z$?_CmtHYM{7b5?#IMBT2P!?;4?a6#ylsxy>&ba5#vFIl^b+S5NVZjw$L~ZFLq!Ml4 zy=I3^2Y*c$9hgg~Ol0-i?-D;@iz_Cb-z4f{;qI3M}-VtxR(ZxmboJQ3#T8`0-Dvmt>$<^37^)xEQ@*~43=iV{J3oIWNpi?RDaO|D)`SQELljNH9N zb@)X}&L+^wrBg9Tnaa<`OvV}~fZ9I_jUs0b>@dEcgb`eN{{rZn8@!= zq)#dJ-Lm1a27g)-V7$g0ZvPJLAkZi#3bPD z(&ynTV#Hb1WRS3$5>8J#r_Nnfn!-bKnAECv^PlROX?A&AS)9|P#El}#b@*jV_c_rf zCfH?Ua4sJUjyY+XG{_YlcoPYJ>2DPp!%29UYm-e)Vz97pC|K8cj))5W=CV1)_|MJQ z^zVY<%rnsqhCCq*lxjx{@NA%iiNb;SmuDGVEzY_EpdB`?dZTLd=H*`X6noLrI^wa; zCC(->6AE_h@B0$KI!D88gj%4ru;gjvlB})1fnEPk=HhP1K(HY~Dqwmz&kf?Sruf0u zI-*HTWlbb7R1>@yPxH@eSbvHXvMZpWXoA%bF9HVVs@WKDwY&KKNoaa!SIA}^=fZI# z$8f(ec*}%@fCL;v>))~a{L;&5Ai(M>->H8Hluh6_2j15EfHffMj3 z&;m#Boob0A(HYC##m{TWBLX9XGgep;u2L00g*a;dt$93C%R-|b1%F`{Y(4sL z3-h`ZKE%+B2N^Y7R$r1g0)%mIbfxYT<`gqOQn=I-Z_G=jD1X@pe_!?%9zL4h%cJ5T z9vItajqmlJ(XZkA;zIUmucKaz^2h_bR!Wl`hCfFF~g2bR&fut+E)~T^K;Ib3lQkx4~UThA^xxWvV7bbKPp+ry~L!QJ#tf z)wVs~X(Y@wXlIgL#b~hz)KN}hcws`OV*g+Rc2>)EsxcWYl(&;S&r7N+XMYD2Q=+3O zstb*a$!?##P9+tEMJ@7EIZoa+q1pDh->y5^+YUIj26f=9Joq2z+fR4K8~eKOG}hj- z!~pg+s%twcD=kKQNPPz7W2PSCw(F%qT=SpNHZjeiXdJH;ivFq3`uYJ<7cb>HU8f2! z6KF}7PqtOiJfZuPa4f}WUhu((1!sIL;DKL?uH)R#S5>@>U)Vv8vBjBhs!6k}@!Jgo z`b;Q}*ewj;=nf@rx|-@XyuxSsULY)(RewRWg=oWW-j;LbIM>j&S`1svE$B2RNYl8q zBL*DvIqnSeU7N}blHI5oetCd^V0+nxPfuPuFOMi+VUXChLDrJ$F6_=T2FO`SL&vWd z#&CF%)jPtxl)gEkaS@Rm3C0Ox*t34vOv@K>A&77Y`&UN86Br*JH^6t$=>O{m%H$hs zX>;_bsSLqibYviJf||cYHYlFEycrz?PN4=YLEjmla~`^CBzkYEY0rRDdN!|!w%n~b zpS|MQnLQGd7}E7%_J~neCv#x`mvA`hCyldZ*2Y@)UU85#ZsdC9u$oPNkp=SjP3WD( zJRtw@bjB#cW^91;+Cir$=v?LPr9zhqwordw`K1MeZ^L=s6qg}i&d?YeXFnAeXqp>X zvt4cP&AE5*e90QRXNcj4moKDF-U)OFXqLXR(9^rJwA07|y1?8lAEL2>rTraT zMz>R$DjUqc_({oOXSGING3_SaKb*m_FjTecB4~Eb=`>L(GYps`s?%B`7q!r9#@3a2 z$uE&@-6(0&S;7+=@-;yjVhHk}|KVCzW`gGt0F;dxY}xcX#^J&W-|B;9sl90CZOSPY zZZHWEFM)$5gma4onVdED!<{dA6Lv>^B1S~KALTI$n9~>Ar^q^Z9%>G%l+ZouiHGuL zAB3ET5jbLc>lls&(zN^sq5W}twA}sjhp#N%(U)+u@IWJEpUD$JbvE(NzqZmEMb)g<3Agk9J^f$X8hHs)fWu^4C`3V%l?@{PN-2b zV{y%JXcG&4QPIH6ypw*kI%S3^5EPa~ zSIq9T1tmUV3|LgUwRftOyc|U{Fh01SewnYSDE8O&4yP3l|Lp}uqDWm-J>8p1y^aro zbnfL<@828i^I1EOzpUFUawoBVZ3^Ie8@9f1x%%MY7d1U8HGXx3q-0K0ug*dNkWbgV zlLgg_9a3W=miZ*YQ@6YO1-)vM4@UPCO?7{?Mjo%nzdJwii+R)WYcWAX>KPN6wP07x zuJs8LYd>IzzujEW5?i{<;Oh!YyGisEU(MX7SPFa=88i`J(LA^q{~jx-V;AqzO*YgK z`Ld3gNDos`Jg{mue*mQj9kL_V^ZXW@TjNKamepyqbQubk>&z;esSQqVI272EDw8F; z8Ab&rgZK0Pu-gDPgNl|)DHZZ9!S-Tas_ljw+izn*g-?qxN=iV8s&M@#q)Ude!6LAx z-;raGf_wT9nAz`|uDaC2S+BHV#pWpy91VSAYGaj?{V)ub*E7ezF5Z=I6)v#a88u+@ zB-9q{c*^VvI8mSc+gDk3%DWDEFH0q|f5#!x)MF&z9EIFIPq8I!3)i@Wiz}P7hH!H+ z*kuJIVU@(Yf6<;UPpABx4GO=?9{ws%_qrqBT-%((T>WA+Dvj0iel}G)yFp=#-U5Bs zWk8W@VdIt+VHPgqZj-PsADcB$fRy+2snA~)`SwnfR8u6t&47}oh^?+wQ16P2`OKBRb8G>@IXD}?Z;x8#7<4MsM4?dcUhP4~_cs!OrH3uQkX~!H!kg0`= zs-%?}pUvXrD${hGyK<4OUL)NcNdy*mAzi3W<cYplZUzOTi$P5+lw(mR zYvG)0V7Wr)Dqle}hi!G&kSQSVeb{n@cEND#DOq4kZW>8%ByxP_cEAsJHG3zX1Uzld z&t4HsJ5Np3IHm&`<`U#|pQ?!qDN7h7)du|$34;wj$~OMk^)RH>@g6Ougz~A^nI3YKuvRG_OjOmW=FdcJ)81$qChPcr zYhCNU0K{6Rx~=pey@^U{(gvYdy>R@xPrNM%rX(xc4C=jmK+w5yWLRKPp(*yl==sCF z@6>~gq;aEaNO#44PQoM9a9 z71*`NFv6MOH}VXonL>}gHeRPVRN-)M+49Pmi+nl|H{%iqjc(B@N9SFUvn*Gr5%m2b zTYb%zKl<_7>l&EY&P>fM*!J}5E`|Y>?CYt8o`Tr<~fCCx+ebfA|#qVwZjX?n5KWGo*r~m)} diff --git a/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.11-compact.zip deleted file mode 100644 index b31b81d54c9953dbb6c559a7983d95d3bdd05a34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2657 zcma*p`9IT-0|)Ron`5pLN(u=>3K3fFaxZ6_vLac|Tw~0Y40A_(+>%_2$t`C#x3EQW zm1`7Ak^45^KHuNJkH`1*`r-A<>koLE!$DvzfEnNc9Q?cx_*t4|4FmuVi~#@&0D#{k zZT^=ry6cNI6OCe3E3eINbs-GP}MfLYUGi%)8p;QVI`sBOqk7(Mv*Ji(W z;TcZF90U#MwK!sHU6hsx59~zDpwhq8k(lm?d#{5#H`jl$xr2;7R6gi zwaC0+XGu6*+#9sYlwVMPYFqFyt2~#i*Q3A4!0v>UC_b6(=8P>c9NJsbXF=qmzcfDf zK~7R!;d$u3u4`k&h2ERyF-%rxX;m3;%W$U?b&+DW^Coma~_pcV?oAxzrHX(Mx4b3_aY%p&| zqk>Flq;|3Ih&r2M?p(vWwm6|g0f0FgjAeWkl_hY4XyguZVaK#STCr(yrBz-tSZ3kp z9hLkTb8Jsm%X?Zf$7dNCv&qRpt+@&?ZwCv-jJ?X#4Ps_+lm02MIbA_}{ZDEZ#4Jx~px?=PX?~n%F&}JgS2tnZBQW^Ryu0nK6XI z>yWrp5i=&lY%@#@Pi-5)9D(+GYw6l|pTrfRrj<+5FUdEf?v zb))wC+q>Vqr&jbj3dOLTi++@XlRa@dwN4&cll)Q+v4U*kiQihLTy9?Cv^Yvt*!u~g zOIpX5G;T{Iq;~0z zS#2t9foGrrA3E?}`95g5f83+Ovk4d**0AO$eUg=?L<&Yk>a~m|p0-9QAE$g`=9Z7X zh;o~jCO-93Dbf}f>W9*5N8?WxkAgBof805Yf!T+})C4>!n;*JI^$ELdzi3{{R)U`R z$FEo6rp&sa{Ow^9<_}NXFb<#d`U4&Z$P(m;=;yAZRPTY3N*BcI@+~r^O7!jITu2iz zh-2iAt%X4&jC|6LkE}=FsZwFphm~@jt_2gC9@;ECDMtjCMAzQyQ>P=@U6(hVd{g$F zFad!wK}Ho;7}=Lqw~UU+cBbX6dKG(D8~25ukh&dgIqqE65IwBU6C`Q*bTjiA=VMhzslpR1SUkBMby4Wk@yqMIa2W;nqG;|AC->4J&sr7>ktt?JxsJWJU?$XC;LEl11iMGW?##)uta zrQ^Ysx?S^$8IN2;zL8K4#x-?;@jbe9fA(_mGK7NGy%QCZW*(Z=M|lvFF*~2xr$ofl zFNk#b@KWMy+p=KXpCnHEB_1Us!B?An!vr~6qF3=^6lUGGNj|0q;3V;d*;5$W$^B?Y zEvu6Qa)BF&q8BTEFEUeD96<%SCDnDqw- z2UDR~10-?4RU}{}nZDi`u3C1rTczNiqf zMN@hX5{^(Xe9ZLxgH1iXblsD$m(b&gisCD1IcbyCZrSUFL@icoSFoq#{EqVq133+n zp(hwB8b?0NhLDGD^Te0Q_v8WMlK!t})!A}k7j)uaj#s5y4Mr<~Mbdq`H0Ac%;NTql;bU-q zA@6xa#`F>(2(6(f5oqysGV|}js*O39&TO%{b?|wWoviZzxEk01h zcwKzDqgu5Pdl&a!vu^5W-UC$||BH2o+-uee-Svwkz{K-Qg{uWn=o$8HB@Hui%V0Cn zZIiQ-jQ$jUfB8plhIt`wHpAS!R7;VrV3kwvq?Nxw9@(9)tG`i_nq(hu>k-Ebghg=9 ztP$2F>JSsh`r6QU5aTkq;o0*>i-HO7!hJh z&pBI!tI7gB;);c?*;MT3P0{#J9{h>u2U!)?-L_GAr8L|U*2F5%TQC2-Lf_jUltR20 zvHe^o>W|gO0@Z{LdX77URmeqhCIY3x z)x>(S9B(sgiqsf%@~<^3CxH{LjfZ%R(5~go{B#C3O8bnGYe20L=pYD_o9uCm3H8!L zAtcwfXCuBby*;2X%b>hWPAa`xTdF7@KL7#%4gl-5WLAqnRmTYo002I1001VFJqsz3L?nM7*K@rV zG4V$ag{75VSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!KcZF2jK-Ardl2%^~p;;7|Z*8n>h)R|O4%_k2#=id@dGXgf>38=S!$fj38$v5B*HEL zc&OXhfr*eb*X5)qg6D3Bs3O!_^t4`VE1Rp2e#P#T9ZO~L_6l%{>~p^Yeu3L3I;J7NK>rIg zDGjOMlR2^}!0ourCWxndW3U6+5GR+S#9Wr@lxLMQg9TwDuOaUGF649@&;SSdJd6_G zu=?m5DUKAtdCKjduA2&=-;>xo#dH~1t1~XP65BNQVhouXyIy~MU~EYWJpPw)SSSh@ z*Vtz-JsQFYiA-D}bzKrNKhIm&8DNJ_$w)tc%xA5;6dJ08^rNE}Zsq0?HE@o$?tp(Shb+S@T$jlb>!|SoaqKqg@J}Cf$Dpt#a;f1*P=i;)Jyn8#DrRd{2TJ=4 z!~8OU9y-=ZTv~XQf#Nt(shP~Bk8&2@W&S(K{N4waE_;7iEQHBhTk6Vt()`B7uz0~U zB?%8lruO+F&-NIIHmKH-J;+s+4#xl$VLd_R)hO2& z_ussat)+jc2tX(jC8VYCg-omXS}qK%<@o(T9V{?!D>l%rR3Fw>qRXvOW6|rmlwNkj z?scv8;pDX}0(XL}vPtt6?0yp09PDS*npz#)de@+G?@vFr)7OGc%E_okxp$^vB}L}F z(kC8Wq(}j<+$PNaE5vUO&uZ;FP1szqpj&jK2&;dDbm%NdtaUJ6iGVt}oAh6#ZVSY|Jd(?1T0 z`7jfHn_SxSCtWr1pHDz}g7H<`(_jLX`N^bsvC=4V+^q>OK!3D^`gKjiP&NpdmzHp< z!Cimm^u708`Hg+E=2)Hr(N&fG=HM48MzD2VFCJ+t-0I~J)6dQ-2W@{a98U*MPlx&8tmQeAS}(1?(+fnFt%{PA|8-ncj@NOtA2=|vix3224DM?ONi5&F) zwXh)XXjevtts!64WJNl65Q)t8$Jrgv;YS~9BtLT`q)TwwNh=3i08T!5EzWdq!!zUZfNR6`^+Jp}mP0yP z_Xyc{-2^sMJe)8ElIJKKfpwDyW;1{0;2xy}La-CSYh;J*6>PZ%&)F?Pe)OFU;OuZV z5brsu9Rkp#MD4`k#-B99WVsE%+Hl*pU@o~Zi?Hu?#t3nft;R{bZJw%ua&)ADqJ>QO0=1GM0>@JtLww z<^FEzLc~7={2sJb(Eyim#*qEqK1IObm?52Qq(OFw(^u@J(=0cx2u#Rg%pdu+r7kfe zn|jr%+~P{>$owN~fu{dn`;LFM-*Uo8E37~w^BBm-C{~5s1$7+;=5%FXzuCtkbe)Rb z;Oy!wRWP8-#N);%){TlZId?(t;Y_^s8Aw5De*G+-a=cQLdx&3&vk$2^omXd-B|q`S zYrl7nnM(Lo%S^PZJJ<7M)}hBa@C@QYU0FQ=W`C^WiabV76(IwFNe+LB7$)JUcGJhe zLkSyap9d`e@hw3F9E0*@Ml3u6g!=z`btjzNz_H1nJUXAgdlw}>S9T*o07PeTVXpBi$bSUva0UUQHHUdEn|(DvC`nkQJ>P{kwa^?@Zh+JIj{ zRv_L90jp*nLCb|Gi}^5yi*@g4@EHKRORKm&0rQ>6S zWetop7D^U-C}b`Si1!7=vVAy8QECJv*rLu&H$fQs9V!X>UHFSd^qb+|P=-JU^$e!n`U0YHz{Uv^eePbjHVHy4hf%Z;uc{bH?rNxaJPLF<3Iwo50h>~5q(3B4H8pAb)5 zNrY%cfjjR4a|@pN;vX@ydsM7oe-#fLd1Vx}j71xOAr=9fPVydpKyYD3wSq~Ner$#t zn3{nw>H&o=n53_W#_K*Z*j6Bg2OtOtq|aRugZS5#2Nl2sh_jbMC{<2C61|HLRQ6jJ z3%tMS(RqI|r|*acQ)|xRF>{|-v_oE4{q!`0gmla`ZL1iT9HA~eHtJJwXH62wkcMuNDE?$%!_UB7O&ON~Z=la727tX)h z0ddz2UD640r@Rh8zY}Gt?45hVgp#jPh(aqcZD)U903J_oLhX`f8CElm(Z7lUp#(xM zALe-PB7O07FI^{1Ike~iTZyL5Rn-4od-*08gj>ud$WA4Nnv_z_X zxLiSj;Yhr2Ehd3I5x{)ui3TSMZ9T{F3 z75d=kiuf3I(&5G5D2;6`$#6x=TT*-TlI;1f4iBpr`9>*Gns(P2^^3 zKKhq5dlB&Bvjcl!uX^-_hIexgje0HD?7g@Rw=(6m%DUQGNbP>`=ZrN}SsqsZr?{z2 zW74OM^n4A9lc6u9ROQWwtUC{}9+&|ZV*Hi(#N>{=YGbXyy=R29xfV43-VLZwO92-G kKLbAi0ssyG>$PN7i$GP!2@C)LK5dgM3rYq}3;+NC02jOedjJ3c delta 2821 zcmV+g3;Oi88T=L)P)h>@KL7#%4gh6#a8yD0b{ftK002~9kr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*-1lfCbN=(Ou06#Cd`cKJH{{%!?9{9 zDYMN!CrmgS0U=iLZ@zsleWi?2D7t>d;pUYxfmEyOsOor%DpvopQmGN9B-pek)1Vdx z+}!cOuNLn|&C)J^DGh>TGXFBR`bVx1q_w&gq}n5kjy}R!#N|_}4rH0`)Bk(pC2hxE zNex0y*Z)STQR<6`BP3?<9+t#)JCHE<55%mN|}Ee#)svhb-Px|vy72}$>i66^IEG{{l#9&U^yMRa}*Y= zVw5CO9_Ga$xjOqCgfgS-3PBe!{r4_|7c1d|qDb!kXhry%3XkP0N;4G>vcbkOSmZ4( zJ4}8jC-o`>@L0Zq7gt0rp6)OnOJVILujL>v6s5K6A_qMF%VuTcQe9g5vfZ=n)UN)h z&@XJ0Ez>T4A#F#^OS?- z!{mAHVKFJ#C#use!B%zpKvfv^^om?++QIrGw@VMT@oy(jM0i)$C{_z?8H|Al+dFFJ zRTeQlun2WyNr>f%_{H|TN64pT8M3B+UoMeIc};_VgGDAw0A5WFk0Cd1oBeX9psLm% z)lcV5hW#}F13d7>q?p863H*#Jzqf>=zF)uMNHVP&81?eZuv`3a$yv%pU#%zMv(_*V zp`oJZ6pbk7prscOI&L{;@9 zP!dmnV??7wPY6pRhqeAIrH5D7VQG}amL{_LVx$D5hE=UnDIm7zXLrjA~LBg0oNi~AJ3_C@$~MHBA9za zHP^Qj8mLc>tg@tC7{Xz5d-&%nA|G4SC!a}wo?$r$AgwZlDvwKdY)Se|0L50*I)_W3 zaF|)v|K(FMl!Fr1-^h3LtA!;#(rO0@`i2Zq(JfzUV{x6v(@U8tl5r# zWbUvJgFf$G0WseP@fjPb-#TJQY$KHIF5qQoq>dxtB%j<6RWO;gV_4ivQr$k#%lpaM3ZDM?bLz_` z8c5})DiMkK(QREWT77ODAa9Q!ImZ%z`esygmv00)w6Lr@w&-agiWIR4wr_+jmuL5! zcQ!F@K*S-Z3V`Ow=}PXL`OA>BOOM7IE85b@HemX;tgB97r^oT?dQW#xl@+K{fmtR- z?d%5+!s?uf^TXuqhreX}(+(GWM|cH1z*-zGv5IcBcZsrl8kI`4DTCtWZ+2#Xh$eFU z(1kcSF#*&-ykQ$mzRyRi^(<6wMfk#Vq&$BWU}H4SKLIAYDLC6?wQIrC+BHYsxyXhk zShT&JMJ7F1@m7{jYdD+7c&he{JAE1Odf-N1Lu}KOCQ4tN0^So$Ev`cf7IbenVJJ+7 zw)WNG9f--C?4vKO3~6;$m{&4?s59HMQLoH%_!i<25g1fvRTDHpd0&Iotqcl_v(8{K z5V3_IF?lz>{N(i2&t37JK8#`{ta7CfnUM;U{CSa1Dl%Cn>6&_h$Hddo zsF?)|f1kYj*R>CZeNb?$U)EzZ{o(s<8m0Fh{J=))ey0bHz{G9qz9Ghc@T48?@Hp}< zouNaZX1_SOehngWAK$6*E_lz9EuR9oy11T`^b?j4d%x)uW{_N~u2F-CvWqDI8dMBD zN?)4oHcemV?`;IWEz+$2nC@Q;UJI{=wLmbkw+D&4uD1J6SMqGnxDN@z>fI>!vfdHD z(ozv>&ap0qWqsW;3P?16n_yC^8KN!dO&8hbsBG0M)+xn@DcYqoxXG-^)4Ev5DR#&m zaF^4{`8!r=+Rm>A4P+~t^i*|rcli!*>nyl2@|I-EavY`9{<2JMP~`R;M*zHsktZst zC+yQ<5)Sq%CZ7)0@J}}y^FuYpNbD7EL667ynC$Yk_awOjc4az$pnw!STg`Dp4ej_t zD`==L7;?bZ3R5Pg8I8o6-!bMbZL&|G9wW7bLoh zWb#bXe+)PC+^1WX3L9!Q)E-{W2!$nXDp*jgKt#r9VKWrP;Q!HgvVKp1&N{%BZY0#63`Z|h z--e)#Ux}fAh`17I)>+0$-qG(WSr~wD(Z2G}LGOMRkMPTXjjt02^}3@r;UyAJIYIgN zOC0Rc@nA}_Cq{={u8V&9`siPFy2&5)&%MlApTcAwD_j3g!iZbJWI(Q2uZi?N0 z=or1@Ni+lHr0(Ynw!3S*Fw6-0c~E_)T9o%R%D_Kb2BtNYTgFB>2Ax4$Ai>vxa=t}4@m#*KMU{NP9k+vj zf=!V0Y;eZea*qC@ z!N(ha?svyhsNVPF(GWVq(qUm}y5C|5*+iSy87(OB%_w?glO>zMJiKN_(->zh{u}ER_tg~fzjRx zEYqd@y6MI2W1VLr4Ji@&Zxw4qM&h?s`tO1%WOs4#hEa7<{ri6b1m)|xoQfyDTn*}<^jgk*c-7m50Q{A87Gq=i( z3LbKl{9p-ac_+{m(T@9uD2pm5v}XXZA99A5l9*KccXpM5QUXOve1@yxlU0;J zhm5`?*VNGW*i%HpXW-mAR>!&xy1?hqMbWxky*f7vr`q;fs60^88W`%zOWb?DNQkLJ z39cz4X!i{f5g@cWf5DJ=cqA?g*oR9GIl?!iG={jVAx)IrDl^;uk|Y{*XF-A?Y-luv zSv~dbYEiu+Sd%MHFI>#jQ%g6C8yHC76*_3syo&l|3`^hF?5KOWAls;W(%?eC7#0?& z9GF?QB!Q=Ej|h2-GIl*9tXrDe12l5k?9}QXypOkf^(d8LLz#miP^v((-R{6OJ&-_h zR(fcJ479MrPq?*2LWBgSMGp%z^?Znt(5v_sbQG0(&++N5r)@8o)n5xsG*j9j7&6fz zu%JBLHGk#3UBV!gt@|ldSSCk!c89%Lg00F;|5U1DtfKJeUb~JDqjs7s&qhR^h^OA~ z+a(mG#?U6RsEuGSGKDsNQn{EOJTWhLOU0}sfL|!kM1{sbYd<$U%^qI^X>=a{`bANy zEY65@__6I!ZwB7>&)Loi#dUVO$bk7OJHOCqiA9M%L^)Y9)$VpI<(2c_{aHO<+t?_V z6$sXYRM9$WfKydobWU{$buDdKX$7 z2V=_QX+pd>KGj_N(Ic8<<8Xrf`9>ERSa!i4GM}}O!Js&HJJB@|xi8NrJ(kUzll+76 zLBR;)AW8B4ycy1#^KkXX#gxrOZDf3u5H0jm)s){Q&Ajj<-mA&OVC3Z2(mMtuEpJjb zX|q3V@|}`WC1lN8TC$Xj-pZy(t*->JkkxfAZ}xHQO27_tFOE$24dQvH#z~w6d=Py@ z*(1-ol`H7nBiCUTp3@0rJEraPadtOxH}$XbW$1g(sJ`rz=*{tS>gbV}_DZdc!Fp!v_6@&!Zgf7o1+G=^=X9MpQ0xBXMP5la zD3OrlVol=y*9OWt!1L&dViSDGt0VrhJywC1UxaSao04|I`z zJRpHv!ieix3XtNag*8D548z%=F>de_`!k%rAn_C1UihrC$I6CPKteJFrNXFIY9j#6 zB2fa}X=h$+qo+lSt8F_|vO0)pro><6aplU@#ffmJP-j)V(d6bTA^O~K{HbJ0bL_;N z`w`OFyewBfsMuNj`3F2tv4r?BZmV_N-Yao>g2xhTP${sE(7B(oGW-WFr|F`vToSKE(KRhWER$GLjsaFJQK3R zEl)@O7G}F94V~uNEP zntO=hm#-bJe|cZt$#uGMlV5hadQ-X*p`;iV?pobA*uJey zL=2J;df0D2pBDCTx9s(Zv_5xLJiUV0OB&U$YqwrodByY0GfO#npE$qv-phdo_->96 zIn;6QU3$M9N;-DFu-ecU`}S(}jLlv;WX9L;%JcqzGv8JVrAa*}i81OsNe0MAJ!xXO(WV^F@^5k6xNdw2BvUj5$_l(zc&2Uu(!vU! zYbWxq79U?DSxJwBopE_iwo%P{U5V z*9^>esV!q&MB8MMN2MAA!SQ`C)8)q=r5j&l_Zdvw%%f&S4I3Y6(k{OY9WT#Wz_{=B zwUC&39v;DSWq!5$lrKk|!o5F>utHQe%$Oh8)0GEV!5h3fOMiEZMZ;k`<6;AcV8}Ee zxdWrZ;Tk8qHrj+IF6hVtau_n-r4m3*0Vx!-wh>q)sPfz$4u7<_sB<}&V#M|%`?&EY zmZje1F(_=vyKDbr++7ezE?XOYv0;{>+&|WAX%YQKpU}1Qs&PkBg&J3p6lIofF2GVG zsF*&^vN-FsbSK@*%@^XL6;Z#%bk8nwsD-1QYqO#W+4c5RNz^}#+#JGxpd{=5S#Xhu zU42a#?Zd=Xfb_iR37A`dlH#Q=htj^}d0zL{a3=P#Q|F1~M_k=FP|y@H7|lsFoIAQ$ zUwthOluRf*d=Hd=7dbABSTQB>uh$=XJoD#K2yJXzcW{eUwaUAWIZJXHSXhbVp0Z}0 zkeUhbur%Yy5JkJDG8)* zBevVZUXpos64BsmE3dac-@PpJZ8(Dt-l3OQ0{2>C4tLe(T_RbQihq1&0_&_v(3`52 zj#cg@oI|IGPWqz5xc`mo2)4pcR{gHL+uu#UMmi3iNg&q%{Ix# zxo#B<$jcc+_#@HxFQQGFm8wODQi!lVS(ffPPYH?l!Ds!OgF-#nW z_qO6*8d*GU3XQNd)2YRBfVD;Mr0-pENYzadsehtBk*WWC>d(CMmetPtaBI4ULN7rH z3Xlz>U=4<&M+K%nvssr8J36vDPmQm2B*?U7%oo1UCqDoe8_#jcd-S27S$3|bzF{Y3 zM}-UaEQ~zH$QQd#cvi>$_z=j4^Oz%9*G9uv|*2wNqd3gA1! zmbZ7nnwSU0m1ljx*1nmr4@c;X@DMgN(ScOvCnz%8dB+e=C8s%CTDu;-g<@Njf%*A7OME=W`{G&uI))V(~^PuT>BntiG3AypV#|eN?c=> zX!oq2jtOCZk1+be8JW?1{&&nxk16tZXGpn?`1-Z}E)E^@ zsziIDOLhX)e%MNN5q=01pM&4m$YOhNM?F^BJ8nb-JrId{k_T8y)iTfYZ!*v=NUzXe zPs0P^y)zOjlUg^XTjCP7OCRFWnC)0mT!NcHP^ zuQJU)?HnF|Ei8KB=rbJE#Mr$LP7QjHmAyFM28~0O^F;yS&}5W@>Q-QXOK?ZA%+F6y zgZrcK(ju{JQ+t|4cIK$s^3eQ{tRQjO`(x%m>zo+20rS#M$#l4>yhh?IJ39Lmc7Z&@@}^dMp6v>Rj3Q7 z-KORrze+}-*<@zila9vV2oazmT{gJZ~ z+rs%1CZeU*TwvC4+7x>mwlcoTl)HJm3^_-!UQO_3)lzy>E+5Xv7A(>z$~D379v53Dr;md%WizQ$Ek-NpWf=T{t8Ui{^*sy8SS`8 zc_vgdPLM(X)z6=`neY#Sl`lerBfe%E@pdBAEFggwWFw`M$Sf6X-0631gCeA=w!L6d zLeCSk@xW&dX>Q<-k{p#V#Ni{dan_#jLOYgNqg1Kg6-b8u@DO?Cg)hYDrHI(@XIu}< z;AY|xEloCgLdP#vLqhq5S_)~6jpDJ->ZI+DfybYPwjVJ7FX>%5!yOvF0Kg`Wxhq_Z zK1n)sKWakf>f{WPo0-Pu1%8N`G+dIVnje4gjD0K_@o7}*OjtP{OKMTNEKk8?&gpKp zGdZKQ)lY-i`9CaU4~UWkEdiNi924V0p+(~4SiA}4!9F(q+)Zga$-PxqQ)L@rG;u05 z9!x>Ug`Kf>haxys`|Zkf(qZ{DjnEyh3pMYYU^|}ytE<)GRIRtXoLFr>zLJ%nYQLO$ z;!3I(Kw=;RnKM@a1NlvwtXuS7h|4*5G)W=OXW+cVZ-`kwk3wTsMP@4PXGw5@>fJ1yOQuZW`LUC4bnlvNjSNev-M7p%jg;i%Zu$P} zW%9bZO6@j$#!&GV5$Y0y$@*3Kej6ry6N(zN>3H0zTRWIX+kMdRjb5u zW?A&dpJB6SmlUU+P;x$tq27+=Gc(eXpJO&oO$s{naTum`oK)6Fa1H6*KT*L%#^h!c z2EXgL=pL|VIIaNtbOuIyrpQi2yAWEbk7)_@`++5M0KrqV% zc-bRlRa;(t@&!V@Q;`ykHT!r%sv~?hm(K)Cxd2nT)s*n0RZXfWUONWZ<5Ft-E_N+( zaA8X{vUhNCT4L_c@ptDugfRtBi}HUv?l0y3n<$EZ=l@e3!kC)o-#5kIBL8mRUl#%Z F{{grC>kI$@ diff --git a/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.7-compact.zip deleted file mode 100644 index b280b7288adb6a3bc2643e79e13b12c4a14c47fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2674 zcma);X*3iJ1BHk2PLe%^hH7LcGKNA~vhT(+q2aZ!*(NiXY-5-ARme^uyX?eZB1;+D z80(a>k0o1@CHwl-_y0TRyZ6UE_niCpp7WrPKqh4XBY+){<&86i6G9_9&I16$ssI2C z008*fd%M{?V4TGz5z+`5gbx;D>+FxidgE>Fy&YZMe4P>QK3LE5On(8a0e~<7KruSn zMe10}D~~qNpum>Z>FEY-yBZZ|d`0PI^@aB`H7jI75y>1#-(-sn>uY-m^Y~`79Nk}^ zYxH9u`O>9?#q@McSN$=Jm=vzxc()SP7rUa+CCNdqaTgUO_AA}gmjyFG(3{xSU_@|H zta%JSOz)!>3S}U3UWubKtAAy~C(ShHtkr7(Z3*=lbCpzI<~dG`S~wLVeu>=Yx;{V!>i_U@1sOC=ye) zV`DW%WiLzoc|AKlZh89!!a|k$R(VvhBnSUmqKgnleRWfJO;|AMs(iGsT3LK*b&lD4 z!g|n+R2~&S9bd0j-7F;^=9n6Y`5qaAwwF_G@qlojhiVwHmc88;n<&TY?=<$=Rki-xsmLmbJoz1^s?=e5&rhJM2g5TnU8@ni zw7-?=5h+0L>LsHDA{M0+Y?8oJ+(xNd@jcy-TE+&Djc_j&bM>C{~l%e zMT=u8W^!1lZ1>Bt&mD$e0q2eUbzWFuwD3JX|86?1-1f4A!FW%ZyIR-1=sz+N4ve;K zydvO}WeqVZusrHIWkA0-lW}``Kid}ubJDYx`xS0;S?mi>E%XL+jCt|K23F{!i|Cy@ zy>HUH*EN}N2TxqYa%UQBM#~|=u~c|*{g0-McRE-el%qx?txD>>V(Wj*^q*e`c zzwI4Lks{YaygfKld@5cetLtM?X!4Qz(TH>;y%A&XB2(e6`N??j6?*wSlb^)Yl=RaR zIhVnPv4r6cp)Q>|a19D7jNnE;xFdOIj#Mhy5^WbU2LQ73J~hiRxSYk#xxg*KL!)oM z*85?udu{;wz{_boCf9bPW2IfOM9RAADeF7+2+Sb@KRYaIY!z5GmMm1)L%ONwLZM>i zg+8w5^c`f<1j9Vvk6Sxz^uO9cHdiba&N3QYs@Qi8%~#*KZ3V~mG@TU_SueruvmNqA z6V!k51A!+W)IJhPs}7kTJcdg>GLxvLyJlE>BMC2N`t7o5AiDt+H6G1GWN*x z0R4|Xd=b#JI}?Tlp+^nGzBBhbSzKC!wk0;K3wETOD>m7?QWrIX?IQy;?!7=*awPJQ z@fSs^cCS{%aLVxdN8Zx55gIrFu}s;;aSCv41&E_hHkXl21;s0=VL-m}drXkMMOM$L z9otC7oE$1*V99%__oSQwdZLr$q(8e7UG-PoL#F580Pt`y4BGVh55haWpB+j z<6S$aKLq-*%4kg5Mq-U7|lEK<#p zfST(zBv128vYtI<}Nv~6I zQFurh)YT}ft2Ytv7a1tAMkzk;^OvFA4ARV~!X+mmPVeY3oZ(K(Xs@clAFenEFnmy#v1U}p3T|+INRxY_bQj_!_tRun*|a! zjV)vOu=>d7N?rp}1bF*=CZUHJva>>;czx6Na zk1I8AoEw#Q8{$A1{=<4{Erz%jUuJCAaCP2&6}zIl*k}{&c{#I{Z-XiMx~6l^@Pf$; zxWy?xf?-I}N>E`=lI>ZV9`K*c5t=bqUcWs^`ka#m3r5u?-A_m*XnQ})lg{|&cDT(p z*VmB32kuUsfdNTCK!j-I{f4IziO)gIjPY>8$Gg^1?4|rY+&Omho^YwJndL2%Wx+`a zG(_?+kQ^dUNw_O9V?``?s8t}TmA<|kVseHf(5{JK$7`pq_15M89Q8^cFB)PCE!rQ~ zurqU<^m)JoqX6F6r6ppwh+v>aP%mLVY-i?P@M?~7$(C`NPRm{*bl}JcK}8n%NTjjt z884FanRo{)VmNeg9?HGlzoti~lCHH3UFO`+1D-)PU%E9v~g(0#C@8Go)=3pGEOnylB# zgNwjEyyDBWJ@&(7oNC@cinL}ID${iTJ+-OUmh$y<}G{>!yr^j}A z|9W?~w-KvOS<&PMrvV>WvD{U7FezkM`)%O~dv;KNJ{W)Nz#@KPmw!Qocmx|mhfy1K z_-Y;IQllvHh>~)zi+N>^#uZMOHRA>6rGK!VzL^mTn~Td{|!{@kh8OY>RYJ?j_1-v`)GK_@Dv$hbv% zD0xYgB^y%R5+5s9Xhr+P9q;*6s0|EL8^*O}7c6I5@}-Atg(_JfW1*>_^&zNRl9c#?GK4xJ36{InDRfl(g70&1WKG~{>$LC#e5?-bETd$)qjinZ z=Tr{bQ`(2E)poq4CTk!MHb|okS6vuk={h?W7kP+6GB7Fw|2GN#hQa?TjNwoGe_V({ S{ssE8X83K>-^tAKr~L;>xdqq& diff --git a/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.8-compact.zip deleted file mode 100644 index 95a96b824122da60f48c78eb8aeab3e3642c95a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2669 zcma);=QkS)1IAP^GkL zt5~(-s+Jgid*AQxIq&m)_?_pR=MVUqo6yke0H^`%fRfN)D;CVmAb|-0sM7-g!~p;R z+$Ge<#ns3f*h&TieZ&X?Ntu>6wIv!^x|DG{{gJipwlph8YzcAW1Z#0WlH+#jL~DiF z-l<7}7lzsD>dSro0P#0D&tM%Y4dUa79gQI{M?cP2O6tvowge2qMfPPG}?S0WyYd{or3-!VIyjZSph?~=0Yn@0(aaKR;on4ZL6n-;Z6 zE0f@kh1I(Rdv+?*{bK>my#UBmhU|W7<8d@-T08)!UHUI@iPd|PNPbLjLvU8yoCRML zR!b7pL>q=1g`bPhco%%rweEIG7Ctakd)#4?nl)m*30wbR)+0HqZ;zAC=cpV7Qe%4K zvmHF=sY>TJjuQQtXC`aCTz?!;1RK!@v7igJ&u^YBbxDO+23!YUbT;vqiw&T`m~n;g zD`MbWbE#q#k;I>4eVgd9?r{{PeJunB2&=fX4DzKqg+^(=X4X`z&%+R%f%xU2v;(P0 zv3=qGy-N)Rb6Fx}G1G}@sjqT+hyG=&evcfGNqkj_W3mt^u`Zt!T=w-mTBaqHpt9T) zAJ>H2c#JGvBT`7jpR|EGDrS1S@hbP$t`yrA=I>0}xK0*FI=&uSkd0!ud`zunYt(=8 zD1sq^#`LqaQ?W^}OhkknAO9tpvWNUpq}MB##f*kL7}!1*CAbrKlT+>ZwCE$GkRza7 z@+eC><(}z>4qeqCEW`7YNaSQ5 zGqO5I)!4J_cbb}@x zQt->!AD0Xe@Rq8eRmjd zi$8ecEid^Zasi896i4%22H1lgcxdB>0%be{Z>vlh7UrbUTIau0BHk*`zr)&-anriM z=E6Lz4ZD5M^Un+FxEcD!{q4npPxu#BnMjTaV#In^j>ePuB>^Exv}LbBVEyZC4QsN{ zo4C9g;W7FWeY>(!Tep2N*aj}r*DzQ8TEBc1y(suIv(lffJS_D*0W=Ydcq%Lk$&zp( zc#&IVSpWUL=#$>Ly6`XP)zm;)t`vPvzYqXb>k|)azoM805Dgn4y1dSpBVe_l0c>{=M z{|!H~-8n{3!u8r+RhC)Z3PNU~y=4QVyjP)hm2-*__}HUn!&?_Tt>unOPu|69D5TX^ z@X=^{7lxc;^=-99QH6F@g$AhMu7ft&P z{ERj1RY${m;aj%rg1nVY<~quSR`&*r4`Ph?N^)}lf#1+wB5WEKWJcG`BW^Rwkg;o- z{7=n=1;>kkCct4{Xi$1G@Y8-nlR}x10a>?fh}WZSF+5??#y^IK3jS@%X&75$is7lb zOm>OL?~>(Y=sE1x{W|ams|olc!wrVO>q;IV9!ex59*26rE|dkR5bO@So4H<)yf7d0 zAw@E>ySR0|(VZQ5R*X zVv9l5+@Nt3UDldJmUqP2k-^{afjWrcN>ZtsG=(1V*=t$onlGG`pN+i%(mss|?L_!* z<_murGBPf2sWDsKpK1t5O@LvH$J|~Nu{tg3eG<_3=tnoXN$Jg!IL7xgHm5?Bm~Nb| zXK31Rn%l~}MF%G!yEoj&LR!Umh$-=!C1njT(&uG~(qdrG_qqD=pp&q-AZP5ceeE}> zAhlDXBEgPM2a@quBwO1~A#F)PGY#(&Rttq!s<3|D%I-^7D8xUZc>uJ$n>EY2iOFtB zJL1xSO{j}Hy4tOpsF-?)G4tX4sQ;*m^qjm09B}6+J zE1ybU*S{5e|9yO;MwY)tJej@q)uS@spbfa`oV`H~NU-i%5`4DnS8jpOir%9Bp-6#u z0^iMBMyCf@W0P`jfkyn-leIxpYC_}359UVvGYJ;0_i2x|fIN+slsi=@SwK9!Kz7EZY(wG6fV4P#CMM$%tu^Mu1a z>ow})-ifOspK2&AUAlsLbL0rTjUh*_$K0a9XFePQg z<%dGo)_7zG-ccROX$LOVnk8yO^0 z)J6$NBi*HhATX4U>$(5$^W5+I@&5Uq@AqqE&U{WEzyvrCAO{E9C}oK!gs}qvJ_Z1Q z8~^~g?-uOi=I-x#6$Vv>szF1r{;r;3f!N@Cu5Q5|-ahv|p}rwl4Es42fC~T+4FKpS zBzUPDs{~O7d#m7F8EqIJS(-%r6QqcqdTWE>`rR=t`jS3rLmQ-+i2l|){yDiiN44|v-O9E-i=Vt$1w}=~ z=@?BaTgDi}0;l;9GmfJ*%AYo8$OS)jeqFKgak!K8HqLdU4uWi+h&?&eHSVS`^s4Ha zEjO*IP*Q=M%Tzt4#a&8E^}Z>00J5R=j8yL6^rDGMeN`R!;~p#ut!>)i!mx7fi*pek zRWfIGk>g+Dm?XdS&}yg;crpCijTrEK%T! zStOHkwVl+)KA8GNQ^~Vq1NMo1Ae%$N$f>n5-=3HcyWTIH&}ZAc3DTI}SnyF@X-f?t z?FM@V=c0a?DfPRj@opn_$Nk+Im z>4#%#CeYHln*^fid=Nks-ZdO@)VX|D=_#<=sRd-&O|3TaFfkx?q$TXh!0ni_X7qg1 z<;xD4J8{K5x4lZ4Vznj{JL4QoPgPT|Lc4r9BXMPMt?xjOdj}hhC||$iYZ!857;xTr zW>y?beERY1?WieXE3z8w8~!I?RfvR2gYb)kNK@ZmHaV}AYWmf0IvVPf)k}xpo#K1O zYfEWscr2|KacLIvXhZQ#OY9=!`8-iaYD7Mdcwjh2WZfU{v`%;5 z_~!uik`y9nkku^s(|Ks30uobNTde3IlJqU<(pY}W1TkY!T+sEbZ=;$w0Q;gg`lw^Q zto`f56dxhTGc9`ho@bh!e%ye?a?g~=Jz7~ry;6RsHE)z4NQ;~;Q4Ztr$+X*2>3gaE zc5D^}<#`eufvV#M7Q;MH&sc{{zy(~*Y<(rtq&JF(t~Ao>L(INIIkrOvnZ9cpRC zXvtM#2{SysR)(w?Kuc-UP3I~4jP8;!mYm)dh$GrQ_}o%1CidRt9pfigc7AImqZjzc zt-mWDLI`t1!q?WiGy=ENA{4i3hgL+Abxl}inHvX9&)LYtSZI~2OOM>CA*rcj*BxT$ zl{`ZFefNq0yX%VOuZhe>&!!m*|9CJE5Ib7$QXMizC2dPUus_x1y_w?0!{TBSw>3< zLM+h|k+=37)!%Q4G~0&EIC)aWy)t$E$7bGDOqW8Q5i6h>0;OjsXmGFfA@V8I`)9g| zFqND%D52Zz@amFnau3y<9Nd-a{YULoH(R}e(zS&?p5dt__KNuVj4M&`ak8yl;n7d5 zI7t@27EO~T9)4bGS3ydesaCfd$qZOE35MPIQUz5XFSvl5NOhEtx{a2zH$wlKM8I1d z8h3ViFJ}Ms@tr--qsa~7oY~zyUQmM?ZS<%3O5=~Kr{5c%qMmfnM-x8(c_Ss|YX7Ou zxBdFu&4vgD7xl$xDI1&}&2mw>y*NUb=w6#u2xdlU&otp)X5>7A?4D1+Y!DDCzoUgwW zKe5d@VlDILdfPs5ohI$|u zYw-S2j;c`8jB)-b^$mrfLr~jd2hO!QvpNWm4(V6(+bgIA4k#@M>_qc)uzZIzif&8isJG4 z2ai3yho10g4O;pk>!HTL5q5buS<5<2+j-V7Nqg@$TRCEpIFnmixFEwfR6lEg3o*y! z?LC8gG@fh2FnE8)VSCgLDO%LdIWu3)r3HXbG49M@)teBIUf73uFn7VY$s_6|wunLL1)HnjJd;g!jx8+PZL=Vmyt zPFs0KGF=Y3S1ziQ2#V}Q32=yt`ejlngq-dz0x>ie&;5JdaJTj|JZCQu*M1r zyKbTa=K5Zsyu~%4k4}7k_tgaA+ zB!&H;zskE}&bquR#H&I1%68Zoz%@+Bx%Yj2g$JOs{`mv$d?Umc4&MLy;U{!IxO`D(yjmdpjL1%(}V0MwxFFlzrqg zjrw8Bw8pN67Db%S#f6kW@k_CfYQ~x{H4SCIk1-0kvNN#ba*-C(nZo+ diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/while-all.sol-0.4.0-compact.zip deleted file mode 100644 index 2a76e9dc82ffe86116b76b34b3468cce2a9172fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1381 zcmai!d0f&50L6cJkf=0=IvtgzC7Ty%C1nUY$-Gj;@S2(TL4s(CNZALr)VazdX`i&r z!YeSAx8_j_B8Io-IW4t$V3?U1np!UR|2})~^Lg+6@&5k0yC^Ez01CivKp{Scc*#zh zCQt$ZUo8O82LON`Ng{`t1(C_fI4U_HEHQ?9F+L#ZVn`$@Aq;sTjv5V7QU?41fCT`U zw6ut$TSsF#13k59XkJ@1$*@^3CEWv#{h>^)(XwKp^>T5YkK*Ke=v7u%vnL{I=Dakm zyXFCYaor^+f~!jWGUkMz>li$F0U^29_pvqGaWXG&c!7Ntd?yDVsjk}THwN&PHW+8X(`MkJhzB)>i7i`Wh5yn$*tXfk~Ak8da z9O(aE`9aBul||n`^Hy>YU#|(SaJP-Un*|p8_=CSAQ(QX0&f3_g zzDCqN4A3kXF73L}px<(m*jQD;OI6$Y39`aA@>-rhf>=L*BhuUU&H~_SKrNxu;VyOj0#(E#hnEtXL|8r#4WVzC!|W85~V{ z;&ZA<#l#lPbgYg_sNuaVlond%FPcQh8d?yugXC4-^}3zUzKIX%A!xIz>De|Mg0}@t zwCm<1frReq0NBSmmI=O7%)H<;qJ8fLlxH)9^F-jWuev&w8vd=hA!^!|p94iX*UMz3 zr3q)$8PT-%Ju{m)uf}u3b`|URZs%J)>Q)Wq#-FDNY?6L2e`GV4PA4Cc&Q0YfC-V)W zk`n(gYQnzr*6~vpG21-J;C?`~@(6BFXmtl;(ues0?2KRwQYo> zpWE62f7i<(jQeDz)W`pIqE6t5^>${Py;@~TmPLOP?YjN(j3MW1YN|^6*PO*{A6KxO z=E{)9+g18XgSecp8po-ECQrcrdW?Bq=3d|lvpM+r?B-A}XQ0AMMR=t)f2|~Cu+u3$ zRPSc{R*OdlBs-jj{Ll>XO5wx^^+$7^xrlz)+Dp)^4R3Vxa7%mYFFl#;DKf^wQZQ1N zn6j4t$aR_FI1_lz;{LkrXt4@1-$AX}NdG!?(5%hOm=?bVU-LpTZpw;VuUR`8o%<==a05AEK2snp!t@bol;^(&@pbq~3+?)Wxi zC=0!>$-P(T{}Ed&iain!X~sAXrexa(@+$}o7NiB4(m?vpCf+$uU%RhRzu zGo)TAIxYDWIi57DsuAv%S~|~KV2hrX@#8E%nlE=xL?lFSNUH|lz?jNtR2O?fzw;Ft z(tH~RKPbdPYg8inb#hJ3*Ux`4T?v%<&p+&fjG9TsiG2vutaw^+szzv$ng2sB@W5=z z;2Z~{tF!bFXRHY(p}F%D5)Vii2dizhTpH@ym?;yX)KSND=ufs^R|QwQyMPpI6#tum cUm^IfSfHKyUmm) z768-%07!|(#zYumVq#7Z;$uQ1E+)j|lR`20@MtVC;slNmA15jV1wsHI8vv{d3ZhJQ zO%flxWwjwCC@{jx5tk#wfpb(&Cz2VifQs{3ew4(rCTuLXV?O@4N#_aIL1vmZB_$#ct;!g}I zPK=53tSRW&5ygP;HE*;vSJHN0y5F8{1;jk(FY&Z5*FqZ+<}dHLW&|b*JHcKlAQ4GA4eRh#UVuXGY+oJ^=h^N^BT05rtylML>qFA&ED_&T&ONFs=vi0T8W0*I z^^+YiF_KJU`TH6!9eeprt&N7_iQ|asSidQfOh^c_^HU6W$?NL-tc(xJH!_;YLEdlS zkL3vNr$4)kqQoU1bq!6Ip4h8_4Pn%{gfrb}j$-_{_YLIdQ-@N+2>fJPai;g#?8x#Q zd|SPWa-p9C4%TN9*THX@VUvsW!r)Q8FVeRg#9ae*Mz#k_AYP(s58-H~Gjir(KSnf8 zY2m(lYJu{$b8oK7v<$#&dpRf%RoCWQ@tt=w`lyR~ek8o3lc_|9 z%bUDB?sGKX?eaaLZwC1@bE!+`zGabp460%;?RS#S73S{QCH9seb8-d8o}|PwK5RS< zWSA2g)T(JcGZGOXqI!SO=IU_uuCqyb*~ubEa4^EU;93E?+hC4AJ?w-Zh_-{;CuK`V_8yI0a8y*L*qdf4 zNoc-?UuQyt$2tNEkF|$@jiOb9IQuorD`$iA2a@qpSt6@dB6QiPx# diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/while-all.sol-0.4.10-compact.zip deleted file mode 100644 index 886615e7ca1179ed0cba08b104b9d7934df2c51f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1422 zcmai!X*kpg0LK4j200^I9t^RBFrqLFrZz{6Yb8R?8b>C^9g}t(qajJm=4cqVQF4aG zIC5k#?umqP>@X#<9&9;=t^K~wzVC{kbwMt9B*XU5 z9&*j`+U9M`QcKJg7Z>a@y}`gT7|=J~Fr@4bh;m7`Ht@boUEQfgcZJGv%4|7y%$PNs zL+H>;XAlr2o$o83DJS&0i~BDI(vsd+QxZLPl=SN9olv1G+GJHCiO2#U;eQNxBF ztYwy8?Zj&$+}Ei29Yk-^FBxxgaO*7?^qF5dogHHyJZs- z@u=$7kwfuS+w2QFW`?F!`6l*%n``Xvm5(-pY|)IDv_i&F*VD@i0H&X==j0DkjLRZ9yP^HSJggF7ly@#Htt*;Z76)zdsKqNe|k+!P0bSnGp zw2}^s>6(iYv9O#QQ&t#oEf*$DvXz1-(vu?RfVqLlwTo24 zBZDe`nl*K8LXzu0lzh(HdBhnpx|Ox0onFB4ZDlnO(!wpg;~LQY>Uh4Y^U;}`6)9Mf z-)Z4Psc0jd6?*%UHz`Q2LHe$elwvCRlcuOUd(%I*e%Tp)38q?86SMY)^Wf&0^=s{# z3#TIdYpf4_qXZZ3)_)~BbxVkw))9Y`N(brqm5h#FEzW8m7_2*rwN>5mz-@#uUG=sZf5?;${B38XSD6(fdro=tk6J=0w%%jU~&${C5_G>sS$;n7iex;y<7b< z;i_7mou&|(pA$;p5KMr+O82?VoKG_=Z>ucqGQt3$-bJ-hZrTH4NE?&rTo!k@O z0-rRdw?vm+|E0&~_({)~;y!rPgo;WFzicY8+A2=sq|Kto8Jok(-Mo%tNm%;LX;>9Y zJ?k&84aAd;dxt8h10QC-YCKq;W-V&q?q^ zJLCNIoHhPwN+G29@~aw{aBNm7?%iisCyd`|AY)pDY$v$>1(ppB&8>AF)#Koxr##}l zQ^9R+O%D`bkNH8jaGk@GK?cEf`UV)#bQ!!efSoG4K6ZR!p(Gx#t}hF<85WS1=%);y za5(4U!a!v7{<*_P{PtWKseb0w>twR^b!8Xx!udu1d;j^YH-4k#WF68zt){BFyCgXj5y{}rbL SikI)lk>`8uzf+y}$NC4|7@!pZ diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/while-all.sol-0.4.11-compact.zip deleted file mode 100644 index d39b277dc04b3e2205d431ccaecca12caa7d64fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1461 zcmajfX*|;n00;2DF_NaFA#yE8D5^zT;`iqF`intv^XLE|KoH>ZCRs7f?WjUv00@QxfGhw2 zeooG=4(DuLT~)o@UGWb7BzI45ysf9ble4dbs*9I9k)H<)+yj6x0ML$&CBS#!9)({! zUtNXdG!vcW8B$S67UI_ws|6a=X|v3rXLVR^_6j62tex?P!ow-tOl$|e0KKq@$|95< zw%QvqMo+i(AzTz%bGz4>6eK$*XJCvPkXKRzBKb%U6 ziu~4tul3ra5_`s}&lBx@oov<2Lh(ZlZ*Aa_s8A@G{o*8+moniRK17Igq-)M6SeEM% z3aFNQ-B=;XFCu-rYx|j;!~MYVwLB@v0;&^SZ$i~Hjwn;?GQ1wPxMDUX*# zN=4L~vEY4_UB=%GTSu$*u z?0u@JOl6Y%Q3GD7Ir4(h!<$|mQo$W)H6w;I!u0nkYy1d7Mib1RA<|*tOkFpv!hSq| zn<)0V8{i+&Io>kO9PyiHfjZ)t=RBZbAzzRh(b0Z3QnQSq(Z_O^hxLU8Mj8qb#tJMetSaAR70wvg62Q#o=rpfL4(3iy^ULbSCshstx99@8da`+dKHY17oGM zk~jNp8u|IG7&nC0PWEO3$3?wf*8=f@*P0w_*yAT=K)9cqTI&Koya>&eGkI|p=4qP_ zi?UM<930-FHgEA~b-)&}^tkJpHQd~xF8JkenwmCCBfVCFEK|kYWwCTU?Qgx3fygE- z(-bGVmQWAu5|&i^Pab}9%x+uj@9mcJa5;aSzFG#fse+i_BrpSctpkbQwh#t!vZfA+ zexpnKlF}cVe$?3964d;&SU6bvbMqU+Zcm(>3eeob7cb+!{$9P=t@{Iwmq=QWFi?dq zo!%?@bz9Ux78A9hD3@xD^%CmNF(=kBhS3<)3r4v9UE+#IjY(~x9~*~~Jfe6XAvc^& zxMxgDfbctBa$d;ahGKUyC@zo=_kW9efa<>qnjEY=KX!-Iw<;JF$XvUz&{A- BqM`r* diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/while-all.sol-0.4.12-compact.zip index 4a9c60829631b0de90f53e455ec9157d8f03e3d2..31fea6df807d0a0d7ebea3f16e80731c02ec8982 100644 GIT binary patch delta 1612 zcmV-S2DAC&48jc@KL7#%4gl`8WL7!hluI54002ZDkr+#VAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH2YMYxY;57=|GH;~&Hds%Sb_%|6GqsU zF_u)^h^g-yBW+0KG7I{fdWrDIr6v0@J0XY+5d?JD8ZVk8LIhpAoTfqmyi*f!Cs$ez9WIGbYr}fS7 z@_FBlJ6#pA6EM1h#l`K?toj@T3;T^l_bdaKLNJEJG=~&W>kRvm(s%MbJx)1vnY$|> zog$QwG8P7FCE<-g0k=qWB0$B^@LFz?K&|C@{qi5>119Dx{Usqx1tUKID(-S$oa*Mh zC!c74tw~h_T=UZ?%)y5uLo!!AiXIA6MvnkrZ$gqrj0CV^^Il0ge&Xe2B8F;pDqyOS3>u1_vfLbE82 zA9c%{^qoIq7KUbMvUhEw1TE76^QKKm6aZR(AuxyW;s?|wVN!S(9bPF1~*bKQxp$vQDyY zd8O4>0&6I4>9rweIqTl@;RsZ99EqE15Sh=YXzJ#IvMuE_XQM$qKlH94w(8Gc*gk20 z2FJb6fM$ZPcGII*dHQsOEZG$lO|kNdhQ~$93c5ZF_9S1a&a0^6I7L*(T)Og=(N1$T zr&W%XxAYHcn`m5%o(v}yRV{ziH%1#8R4u-+)rXIfb?SJr(^YfI8o9k_HTj5eJcd-b znq&ca&Z)%3Zx^|qouk!=e$Wr8Rga;6{6uB7H+;TCRp2YFBE)ESyeZn=bWggF)~PPjSd$n8QB zqZ6N1x7K|g(z8#Kg7;ca3o@q8_2y`whEEFAQ6{L^+c~Lf>Wbb}UKmV(@{X{7(XS*Q za%LxwbxPAwPUs>qaQs@;rOz|r?N70~5Z;C{CoyJbBrWff9eNL*_c*FAiLC?t;~t*f z_k^3rr)x7Hbxc6c46y^#cQQ*B1m$|anEV~D+d5relDLo>WfY-j`dU;OT;#0c?vculkJO|BnF$6&RbOAs?XVOR#*Yiz^pu zv^grXY{i01J$2MNQ9Gg_x&M_;r~pt)0Rle*KL7#%4gl`8WL7!hluI54002ZDlNbg? K23-aK0000tX#!XP delta 1516 zcmV@KL7#%4gdsna8yROCbz!@000;qkr+#VC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*-204%G5e)Cdr-9^}~`#-<+J*;FNiu zrm_NXbsyH9lI}6ZB27mEV)ip^vX;=^P|s^zdjZ}0E%ya6{E-Z-;Bhao0GP7UQGrhy^28s1BYK^8MgL6m$(HS3bjOD^ zDh})35jcPl9-hI2!irq38sUw6B4M7@0|FcQjNj}{3T@V0)J#CWrifT>h8?O40|Bfq{?bm3Oj@|tI&hhwvDki zqKHEzJ24HFl*;pzl(|811%jA!8)kempkEow!#ZIGNISu?5^J=U=wFKfFDqQbc*GkQ z$IF>UXU+Rf+f!B^-w@0JX4k|x79d$8GKd0yjiU;xuF7$Tw2xXPwB7blKx&3ZV6l>V zl9yh8pM(mSR~0Iv+p+z5x`{~)3l(MkgNrg|L-HjH$q>4kb>WPr#MS%NO9a(O*RW@R z198K0q`ryns85+zlhE>TGayq`oLL=(r3)AHdMAu&mIq-#H()c5R#toSYBM$5mwUB2 zXVq7F<6x8cgq~perScSH1FSCd!r0mnKxG;<1HJ-*8>&{PR z@$DrXHXlXYM_&I7delA??#51L7;Q2~1mQ-X#Gd&iGeuaKq*dsD1M9EZNR^!KVEhwM zzBlaTyl$n!YyH#;rX%UT;E#`78}|5rmU9vPTdEcsT8hH8YUTwLaO(}q96*b>en6=6 zxyELqAcTN$`zA8LD8=U)9sLOV@JvY*;FD>1+89Xca?}NrRNF}}ctUQ~Y@tY0_*&us zKf1NCRbFjm)sMHH&v>_?9-JJ_D9x&H(}MbC>omwn_4*pX)|+cP1s7es4(3aLG839j zaeXawWen#L2Tj=Ax*Seo7c3=2#Y;10qT&V`v^hZjH%H7&e)m`hV^p@NNp5z=Z-yrx zB@GlM6>TpU)XyW2*no_fw%y)KzTG>H7Q*XTpW2wHWZ4>`G%x_ysA6~?_2~{R@NA?{ z-IGdba@bv*;g**fPXibt#dKDG2@g`~SxrTP39G$V&V2H*ViU2>%Q6<};9a`e$YrhP zCnjCKV@k4-`u0luVn|?V$1>d;LKq%K5(}?)FdRXb-__=K(OYts7YF`in6(>I$i2Ox+r5T+^zs z)-X{+>X<5xJG4gWVbr+_G1Zjm-uKz>_wal9J%63iU|}R61V{nkXtKNRo_=+gFaUVT z1AsaJ05^j}hA3$>EXFIKRk%;E)(RoDdaG5)(cGTn7Lu0DO~~8Dt_b ziKrSMW?4cQeWVbrr>D|#T$QYJ8YJ4y8kc+HAGBTp&u>C#RL)Zm?a&3E51B(PmDsgi zG(D(R+gEs;pqcs80jqAVjMwBXn&Z zWGbdZ-@{|Q>}DhGau>wYt`wgDd*iBqRMI{^{CRnT_=gljx!xA zmE$yi>|azlh7PUow>5%wMKZ$?rd4AZB0!>mI6iWJ7gSHVKhPqVyJ~C$Z=oo7++nu` z(!Tt)4ZX@yYb{(+e-+3c(A}z9QaLZq6C5|VlYL7%O?@KI%?B#rSxr4_xkz_lUx>J- zRP9YEc8_#bcB*7;S}sF9Klhm@ovE0`fnED1dYc+-BeO3sDN1kQ)`mCvRqRJ3+@%eH zqz_JZ?Wc-oesJNPrILZyQpR7lD_ z`2wEg&kH%b@FHs_HLa|;s|Tp`X0fI)fxZ*mj=7RTJ2A4qtN|XOW;|q;(H$OQIP-Hl z1|B+xVcabpfnjm+7gcml(>qeN6mGj@dJq!qJ!MB_mM!)}ZIUVw@8WclNgnYx9D}^J z6dR#hY!`b!#6h8~t@EzJK*9&+O3bM0Qg!U#qwW~_506Mundil)Z{5)Nk`)L;(Cbcd zWU8M8*y#>Kf{r$!{4>@q#Z*g_!}LTbU5N(AnICtWn`fBa8zPEt%42jKhGvZ^0We-i zoqEnTQH$?F+3pyM_KFAltAJP!i1)I|&jEzKx=33F<@X;?)I^pAph2_Kp5`Okfo;uO zd6Vg3y)l#8JiC*0DZLU&%@BBiT>GGfl%srhxBA@Uoy)n$tkHj1_AHu2%>~;}m>qp> zQ1k|lSyB*pn=0sB@YIsJe>Nu(s%WFv*+g%bA+J7696!z5b%F%GP0y)(5>!inMp?t_ z#_EXk@|f2zKwd&nJ<#4p1hG!nddZ2K zAG$nkps+6QRl^iz+pe`*2lz7igNv`)JyvTunoynVV?2o{9x|fY*c_X42+M=q=W^r-k!x=8 zI7)eF7*iA)DV~udLXJnz`{(ogelLD+ey_i1OE9+)00IO6u)pv10v%RL7dHUh6a@fT z004sSdSNjaU9ng=5s!7jkbLn3e-~H6ox5Iv7`QhPkK^U$0d4~T1po}FRL{$Mm;H)H z-!$n#XfJSH3SBZWiMCRPiZ%T08g+}kA*Ia@;F&c@G-a^M?)<%Z=P%Tu#zJe(wq>?w zIp6hzcNW$Q17o`0=U+b>-t0{^pP|uMv+3mgvU-qjz**L#)D^WCawsGy2lW#D=h`9l zRIJ1toOJWbd%vu)dA=B@bO;3d9LKhiqBRA~`ROGTYWD7q_+;!LYSreARJ9gelC}Sa zrF@9kih>d^xWo@f9Dh!u_$_2gjJT!<)=Y>voJ-rm7?jywaoa|zlY6Sh-CTF7E0Gi? zi~=RKlnGZ0L(13Ux67COwz>G~gLPyCy>c8yt=Z7EodeVP@C)QG`oqqFFssq_l{;@` z`0T&M%qFdarR>Fw7u+2RtZbCd1#H$bhZG`jel}=jD(Y!HrH^kps>+(Jw6qJy*wz@~ zz(a<%Pu6Hv5&@YYMr;r?&O*)b3D(_&J2kwvZB)`Wge;~Rd_%={yH9}vJuU|R>>A%o zc9T4PkjpKkeo8<08~FP|;TdLp&j5e-IP!50stE1jjD1;Q@!0uQoL)(?S;1iRK3eDD zRafdhorvl<>`%hO`45KD*)t5~CgLt{!jIz2o<<3AyJO_picd=p97{YF;LcWhLJ4RXBQWRLt_@x%lCPQ-YW;46J3!CMh-2{SO{Ez{Y*O`q;oK2-TtLh6rIZ|Y#85!~gOO$PP=8T>5HuY&O{GNfS~ya0ASYgyvUUa`sMjE> zLh@P+O5BcB_ceRC9>4m%W{_}AnUUG~)=G$j*my&~NYCuX*y9NdUIE=amY$53{0(}m zuDd7utd;6Qv$W#kRKF%sVI`dNI_xckxu{!`^5IirL>SFExL8mcmuIe=6+Hk)hE~E9 zs*!0G;tW#T4F6OiyTB9m4geE*W0s|e0SLqnf-jG@wudv#e>L~@e<3{L+HF>%?$JeeNqAtd)^ zk^|O5DZjH2^}6RF&VSl&rl~`76w%vi);I*~P^ZwQlcgd{+9NW^BXOx{rGeOMHmBF5 zNAImIZ8V1^fVJE{g-}&FD>Vk@3DA(1^zo0$XQ$X8MyHEL<#Wz-JTsP4Q_nOr4;jUo?T3iGPYIL6vnC@hKSLOi98c+G>=7=hm3hVMjj$z zJ$zUX6wAYsTOM*kxy5dd$z!e4y}!@>elLD+ey_h+XAl?(NCPSWC^`ZMZq$6l0RsSj zF97HQ01y{UA_pDzCzH*i!pVL?@e$#X(SH7sgkVx^kav23eFBd)-P5Px8S5R}KZV`hQ53-i8IVM-lRTAIf+GjSSx^Sx$s5&0*twRXVTRIYm zUxUUEWeb``!Lkm4X~#H^y`>h9=7wZnG+Fygj^+kke^5`eo%*@pgg%#Mbarp>y-AIU z>~8mo-FN!wQI5k3bR#)1^Q0%#OE6O1*At#N3|Z@~RGiG&{M;9BoEX7I(;2Aq`;BGb z40qMovl(K{IO?Q&U-ujf#v>L1zNr4H7(qAGKPjD59u502LS z>`;0L_gf5WD@Tj%?r+0eDSoXTO2=4>!ZecBQV$$fjX<94Zc#A%9jTeFz*jDZNhf>6 zw$uCXh~&ajVym9f7MoV8sBc+H38(ktxt2ak(syi+Wwk%4}7Sn!BKd?U)zZQqYxhc@M`dIJ`+ z)eUkoLL6LcB%N)pjbB9!ZQM4IlNqHh zwBuwWQX*{}+KsDdeX=-FYV#DAa=kJ(l`bqogl!pG&!(`Ij8{9GeJWmGk@U1P=3-Vx zO}|`$n{;KKuMm4B(AfHdDQ&s!H2e~#_bokDWAi`AzSTNskpuq<~S^n6(U*w!8ZVIRAs>Wk`cu>QVzTtf%zEG3Nu{kMNR d1pXVU)Q|aJ4YAHLyM7#{cIvjXk{wC`;2$58i+=zB diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/while-all.sol-0.4.5-compact.zip deleted file mode 100644 index e666f1573bf1ecea84740871d844e8dc71582e4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1380 zcmajfX*|;n00;2@Y{(QIS>aKRJ*0AkoU2Wa$FXFNVMQ5cjx~3CHA{$|kW>3hG zh0%$gP;`<7DN_<2m>Af5Dx(7laq;h zJ9;4nLjw(nL(F!vzbgB9V!ER|@>5`pY&vlTIuM>Sjznu2BQ@b?LdqY zL}416I<#)_fX5CqJ4OXf^xG945p+>lzOn;@4W+LLH@)HMUvryb6M2u%21^FsbgHza zRR<-9F|BUg$~Gz*#%Hz|ivx;M(_WWN9faif4jU@ok~N~*LT1GDVec7DA2u1XP`Q)Q z=u3h{D{IBM%8#YR)pBR8TusYEvzu1=4pw% z#m1(I%p;7>CHN&7Q;{XihMMWxJq>ELY|yjH3(+enjpVYFK*@PT;&Q6W9ppJeDbWin zt{*x0Nn%e=12Mp>pO>zcUXYGObgaHC3RvXf->-hYFeCr*qO&W=uG|I0N^5AM%p3I^ zf@#pY1&O}P!sOPkWVMabqXLSM3aSStk%JsHQhA3!)b;0X+N_aV zO57O8x^POery_3>isC!u>-dQ9xw6c}MNstE)gZJQ<4(_Awq%oTTgq9R;6m*l2# z>WCk^cYCTc!t+F6X1u!FglAc+YEE^+t(!WgGTQ|Kc%XF!uX}DAt`PdvWB82ix&WMp|1h9owy2dMpz{E_5QPq_s5o-(nQLk!v3Hh&eoDEWd?l5uDCz z%YK16V*hZ4u~4Dx0X|`}av-?u7-!i;OH%I)D?KiC z=JM0xg?A4J8-edut9~WDDhV0y?Ruz>YiQ$3~3?O4F+)O0R;3R$jzC8%0%*ctBHOc_l1xV4`- z^*b?-q_kSxSZ=X{q9OYN+&(kk=G~0cmg$+(RCO>LQFZSNj^puJTD8z#zrN{%r%RIR zTnfBa94#V;M>S-OGcZJZzrl8%&|0k<5kSX8o2$4S`}k0$@Q+=M^^phZyV&G z&AG;IHx(Ene*MN1p+KMU+$&$NvYBs-_rjwpias0|!4*0Bz@Qx8H+$QEs_$UXAR!d^ gzX9Ag@ZZFPzR&-1h(QaBd_RKrYrnsOeMt&tf#pV>cVgUFAJChIvNKV>iO2QC33p zh}}Xgk4r+r4dr#0DDsLlixDUTg#qpW5C;IpT&}nN zmVQv)+pcPyf}l0f_edim;ii*{3Hq^IoniUs<|v_<0{O6@z=`{-@mG}p_{C}N>#7H& zFKfhX?_ycLvE+0l2}57mCJXSq4U`h!3)@G&#ueqjZe8HyaZm+@7%^^hF_JdD>f zCr=rz5%2Om)IA*q7{71+GHEWId?IM?yIv}d(ceJ_JLkoOE&Sc>OkpvLW;;~NTM=96 z>z*HvdaqX~glA&cp6|>l<(B%u38LDj7fnJ(rDOI}{1`2;xQ#_wcuUwUvf?oJ_E6se z;ro6s>si%hpN0zUgK*Qni!18^`%t)3@hG`nC=Za#S5hM{sortTcNt!aWZt8SqZUSZ zxBQx_k66i}Ri^9I4@grts6DnbywClL5z1%lO%jiU8m)>71eNOKWc%00Up7^eSKti8 z$fmxCeY0{wl>fYQtgwfp$Ei!72JZG|gf*QRvd(B|fu9 z$uPFtjA|LM={~uEd*jnl+l5<&l&4()F;%)urq;51A?PS|b6C+6@wvtj1l=lQ> zk)%21YGf{xh%DaV^bzEidPd3Gsn$j`*IAZ)soF~!$k6;Xz87DUMlY_itmm?W>Yd3L zQ)8^?F46j}bjTu#Aol@pS9B=CD##LAbBUkYXhZ{?Xm`P5mF3E&e8at{fpm$>Y=TuV5^^NVIomdO|+i|ry#lD?! zSJDq^ZkN#^vDp5IoRR@``>Wy3#}*#pnQ0o?jFgFlZ~57Uk1-m^!pR|YrIeqzo+EU$SLvJ&njJEg0enFV?e=RtML%T>*T2T3d4{c7a&{T@!ERr!h2dJwM> zB(m{0zId(vWv>V(?w}=fQZ5?eXoB^S6?| zU}P1|Vk>yaQiHOMEYde|EB)tJ+?shvZUW_wNU^>Kvl}L}$iu+LuP;{&XG~!rLxj8N z^>Nsf>Yu3iE?xivITMYzk+8bO?~$E%g|lgFfyT%u9VyWY_mUk3$?kTctz$0)Trg1# zfh1#o3r|D;9GZfJOmfp37pTu*&%H$tqhJN%hi=~YyIQ!}K_g>D0?*#V(T!sK^RJHc zq*I`ZgvfpiZMA?L*&B~K7l|vaZ(K=hq zUR_n)yg9ti8gPQ>B*nwebvVhja4t%2>w5^_TO}G4A>0TsWgAIuD2g$0+h4~kYzA|U zpL$O9Q8ndw_$pqiYrgj%tovE(btIb0-L#imgOvPSyIZ6kllRKm>tJA^%Ol c?-2Y~aiAadzdUpx!uI?)g1(#dW59mIKcGK=j{pDw diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/while-all.sol-0.4.7-compact.zip deleted file mode 100644 index 4d5d0582310fc77e26eb20fed45aa4fed7776cb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1462 zcmajfYdF&j00!{?=2Bbef{Zbxi~A1GR4Q~N*PWVCZYOukZMCt*G-_d3>$W9@&80Oa z)sRc!G|EzQJBW}_5+!PCOVoCBzMtp3?}zux`}yaMR#DvtfB`K)g-kp=&a^;nPy+xB zT>#h&06=m~EFNbaj>jWO1birtLL?-TL&FmzV`7tV$T$+=1VmL02nGNe066C4M5BJ7 z5=#5J>-TDM#3y36i4gP)J_b&v!Zl4hs^34R@*4tF#-*AWv`*2H?eT9zW^%gfN-!T6 z(buB|(8G#hPs}^X^F49fpKg(+1!a18 zdgmg#fEBt4hvk^ZeTj!$^6$t)gVv4o2Zj>{BzUlIXIhOK>FAq+T)W?9_CuOJg2?rgFmZ`nfR#Hny#P-bt zvkvKNmEvuC_d;Lv^iptK;n*B`)kH~&k;_^(1&2T!K8M@ZnMDyxI#Sh(gchc+Wc$i;Z?UlJy67Q-2bCaSMC>lzs z1Sw-i;*EuE7uo&l56i#kAbJK4@LRrh+wu-ynQt4(`(6Tue%n1#wCbhpek8_solb( zaM+}^KjyKx-Lg~lxsA5j+m1aukG&?8)o_~zcN_TJ@>IWpPoR3lS>01j--(U5@@`As zt+AHZcUFBPncRLe=OMeMj52%48h_tK_7iQEi|q?(i8bzf66vlbh7Cz~LKub|mOtg3 zTyXQVs{~VE6REj=>LSZ%QCh3v0@3R{o2abuuLk+y&cp6GJAGwjIHfQcL-u5iZS@7# zd~I}bw?X#v%&|yma%3gP-AM2LtSsnwX@;C&)brUggV2S2Fhb=8Ss=n@Y}uC^EezrC z3*Pfm<{$Ptea3YtMR8P6{_SQr!{WaRJwk?98oFA$g5z1@xr!orU{OdbJdHBL_#l7S z-&i8M3iL3xejG4Eh_2^Tk?-c|kmU`Ho+AMQqr%@;?X9Y{`@mrt-Vd}AoTBm7^}|?~ zhRbph)LY>|k8dm8 zkc3=+)x6@|K;%PYjv8wW8iC*1WVnU9W?zHlQ=L?LcPC^GjWUE94ek$lNUy^smnyrIcYt3(MdmFA{ zyQ3LuMLTJ|+Fn@M&UQ2ow&Ju|O-;g{9A7NyC?avvR;jJgMI-FO9K=%t*5|1y3uk9x zk{6JKTdytkYL`^yxh`V4ssekoYKq-&Zy@2HLg2a;l*#xuw#~&8^_!dwd{c`fBgoTu+)Xvu^|XNJVH zT%*TLAwrHJ$4Z6q$nofT|9qa`@5S%U@AVgjKh2=<5IjE@H*gIA;sM}dT3P^nA0Afx zZm`ioAOJ+7Cq`}=dH3=?wqsVg%jiZTV0ic7rj=}1{#VSS-Z&G zfC>SZ!%17m<=#=FAf=vy;qA^W#4Lp}K9?O+SYF2w8UYvOh=B9(&nLxByvuJ(e0?DDXEE5yy$CQzwxDNMX6jMC(2-CZj z8lCR}-EU{IOJ8YYq+p(byD-_U{i+tK=WO@0-r45t^aV?>ZIn4%%J3*Q#5c*QQ^PK*-Il1885f+)7U z4i0?@yWt`g!r zlVe|)a&%AeK^~)mbnWB2hH@nz;ti6VKkG=?3DU)V8u;Dfm$;{gvTljmnW^OD?;-0> zJQwk}F(Y)sI?wSZjt=b|+iODv$AN1)MrC$Zq+RR6r{x0+3o(0WP!ODnt(~amMdu9`l_XZm(U{;P60Um$`L67=vuy_aYf*@b&vKG`OP@)6cEW*pR|-QmxH~s zE8iGVBPSC3L{DyJX{f^DhIV#ll;;?1pr_`$&#H$&k+wtb?OsH$k)YQ&8;w>KgBGJC zD>0kOn`Uk%jF_+H!M_jApQe`ig)hpj)QNZ(de_-amMgr;SpzNcW<7G(Ff6#IoJTo5 zYty1IV0L7+&ej>3?ip(;iLg)|X1@RQ?V{q$Dp7DU+D*81te$jN-Yq~#JM4NyIjODP zfC0Ic>^%WaEJc05JW+T=4W= zRHTU|T5Jsz<6Fppgu)+NPj!z{uP|r`W>s@B=j(#n>A1|K!H9YDGLtB}zy(;SnO>!$ zdN?U{@d4Qz4$Vmv_b;h8cd*V)G`D=vvaxsm2$=>O%S;zc>N$(E<4raVb))&H=x%AQ zrF$D*#=ULT7TGA*>ix_eyjxFgnxZJJV477AMb=lyl5G(j&W43act`;j908e0e}bx z02BZKQGr1OKV>|Dpb{2J@b)7ULrLM@c#>~mP^6zqa9C)F5R?z_0)PYnFicMm(BNtO zS~WV&=7R_Od>jldWP)D}9^KE9!%9wM7(dD(z!NiEOOltlYwchg%))1uLWU!2Z zqn3Y;Wl;pL6A;MW25?GBxwyxd+P1`p12lr422_u%2%{pN7D!Sb)afUOqskY|e9SK= zb{yAH1??j+=_>@3z4(Ih+Ou=?<6mqB2by8@amreUFRAcC-^pRn%Y9Yg5W!9Rh!9cR zOu35U1c5JF)vwD;ksL}q@)=Po4e~MX9MUol{$zJcG84u^)pbl5&)AD2MkpYPjgn#Y)mRPfx8co^e@~Yp*l~ zJ2>;xq@fJvHw1QTpM_Vy(unP^JVKjL^XjkofGQAe@et&vahH!tR<@0M&Nn9Aidzsc z>XhK=Z)4!1#K6|F+A)dL7dy$&ToRWqsQ@3q2-5G2t+z~Jx6kX5qc~>NCsS8d{)Vjz zx&MX|xoOBY49iPOxa1rx6V)DBj#a&3<0^nf=pua#7v5M%qic^^@JDBrGvLNE@#@!| zyR90Hi!@=Ff)wUc-_XX+ojF}xSojTsJHzCu41nma!Y*Tw90S< z3f<{m!&sAvXD;piej@u5#8$;wu2+Pdk|S5b@?*Q?&DqYj$G!z5)CwVdZ;<*Q++ z7PaqZ_OeS0CR<|Lg=U02S>zLhM&~wW&*0H?L6cU4RQZE2e3~aW7ZhqB&i%wv%rAK# zByO**-lsY2%{<+~)v1ebRh47bxwv67Cmdw`ZH+m1mx6Cq<>`3AY;`zR#e0YBj6K}L z7n!hCt-YQ;@->lEQXEsYXL<6hThsoI|2*mLSdk?w#+S2=Q*m`dRx@@+XjX+^S@02s zy5vZqdTgKcY5VAzG9-qe_pPT@U>$OhF<|{Ub>N+DvVi7EoKUx!Oe z*P7AeI$o^CJLW`c>+Qy`UQKI5%NAnR%6Y~sg^(awEQftCXvH(F60*Herg}Ts_7cqH zz|w4UNEYL>a@jpabo^9)C6PUVt4!pDN4wbq#|v{&&VefatZM>`PM81mn){GrQ#lK}dO|23zh S9UuSCBj`ubKd8v}bNvJDx{^Zx diff --git a/tests/ast-parsing/compile/yul-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/yul-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 2973a57bb91dc15e511ca20dcd7b545650c859a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1705 zcmajg=|9^E0tWD(n-c91>Y57bCbfo1hDNHcx>J(UNj1(2y5hcr25pLjm}Fcvs3PJn z6I8>v4W%fVl8rR3)zWHJEvsre^L{`3JTIQl^A~(ku43XyKopP%VxptaO73l+BqRaA zR09CC002miziny;wSbyIV+pr$AxTk$m^fTOOb|XSAp{y8ONf*amjL_#AQJ!(WOC?t zpTCQ)o||S{gC2}ThUxa7%b|Fw+32^*_FA^T9!jn4@)Z+&0A*!9>&NIttliusPyJfu zxqaYT63RS<{<7#Ce@xDVx~+dxmO*zc4XG}|Qy~wUP~978dReR`&*`#ra*=6dfda34 zB0^{^CB=KRRoTt7rdBwGw4}nG&l(OyaH~%LX0(iO7|fjE z!254HL0&pc;?B>{VP9sWQ3yv)l zxo&r6BeDEqq3W6pq9VXwkPd|LmJfHEuO1cF3!(G3M+^Emj&d%~C3V6Twp1E^Q%WRu z(MT37|4bF{VPh9?v<}PLY@O>;A1eNOPAe`gqAHhVImOGFtkp(S`J~2|`=%ZxCzCW` zbRJ_NuGn%erU;dd}TEC2uaRP%$?w42n@Ki=EowB!o0B6y@I%(Nxe@I<1Yw zB64Kgusa37Fo?ovQX_t`y3V`R(6IVMsb@^#z~RbWcp-=~PLK_y>aDmd2Amb5RqBKz zHeyLq8){zebxyN;pyBpcyw2lORUTu+dcngREmaF{3d~)EJ zEl>{A5P>^3{p`Du9?duJGNQ^}&<|z&BidF+q2IavWcDC@l#twk$#S`ejRd~k3zR}U zn;SSt2X{66AQ&s|`nh(=HCJCX6JHLMGj=$BnyCrv80|U7iFNMrqx!)i_-K@U3mD~- zF`yu(r;VEy=-BR14M!?Tkpq&UTbu2=6y-dRW%U#FUn-4{x367V6DNOpHF{B}{S!Rt z6$C*6yQ4MAxkuC2a<*W0TuZg?kjRBx!##x5hytPmS0^KRDa=& z`aSbE64fuF`tXIdCb#1e=KdnsKHc&j$Fp~yO3x+ByG~Hd<|Tc*az1>VdQkZB;kw_5 z@NrA`9$Een|2VJ7X$tfaX~1#;8;p=#zah28nTK!Ct5x zRG$RDy~(r)@rUg^|E+oOO;@3XPnK3bE2&;(oHUEo%$wPp{dB zx?*ZK-f|k2YFQ-6O!HnxchqM5!s6h#173caHXv=nWu$4CZp@XUFNw0U*PHAnf@LqE z3|8({YlK)Z(2*(MOUrq+J_Aw7vx!^`(&XTNKo{1rBH`7rJUbcFu~T`yWOt~5VY=9= zZPP4WT1s1fr1_4@O87x*iBT|A3S!2!ZXn+#%H7GAbhaCcf8tGOd6`HmiB&SeogBud ntDsy(M3G|uTamAj{GCjZzvlm%f^z+fAOH~gTF{44P(in|WG!&Pr zs%tfB6lqkerAA5LzW4Y0+;e_7&-n{J_6SBM695Eo0b!vbPDUx-LfCTvU?K$o(f|O& zM50wS)Gn%Ns)gS|yZc0k+zN|u_YCv$54i2478rgD!^Xr6+yHN4OgCu0I21K_k=#|y^LC+A7p9n|62y6&rtD|?*Sq`wB7<%2d*+nJNZhju$h2)th- zyAyrED)KBdNe#KN%BwW-9*m?O5pZc5#1D7!GWVDG1&}TlAIQ~VGXc8ww=2Ku*qP|%(r&BO(wJCscK#LGHZ^A3lBupmXGDvX`yhw=k8Xg+i4r%_VLT{dWYDC#6Qy^1V}AtmoU)6c)lt4Hd{xm#wB>e#G{YtXp zq$>`)X|7q$yXu}8HAaUucrc}TwyOS7V<7BEZ!RvtMh(RbYc*+b(b(w+4w93zW^tOI zsOEncIJgOie+;KAYbn_>rvuo1n&>?^1^+Z5e#S?$)ngAIBqtHgq>TAB?qWb%hN;)| zSY98TvlgGn7g9x#J801`9{#_Z!ui*Eo4;L#TVH~m0jkAa?_%7jh4WiS+SKAN3JEet zMg)E0GCWb1tR0er-Vpj;;{1477b`i~&yz8JhKv6(&cn(_@093lotd{fC1~2=R0XHC zpQrj!2%wFFyLFBV%_qtku?J)jw>j#us?WZ!Y+8lM#YLL+i^QJ<>r821p^6z1W38av zZiu*)^X#aGMb#5r>!=WgwQtD9X$pRPe|F`=^Uy!xW6^K) zqkg5eMyHvIiqVPD7&zs|Ga3EpT>W z&fYHP+MzB*VY-2G8H^G^qt}+37UN#~7eLa#%|D}vL-8!yAtQmVwt8bMy`6IH2$-)f z%p!C7;-Y^Fm~^fIvF|86ODMtcjKcY%xU}xap5H3CQ=9tj6TbMDintF;v6wnnsO3*PA;O z>{@*cVz$RoZD{jIw(Oixmg(qZ9gAbMN~K(15kM4q%u^!YZ3A2CkZ24kDiSjy+tvs4 zai>SVbUAhDm0E?nS4?M(>x{zs*{bm4@y@b&*XMO+U5tp1XDtuQGWC zppf!w4hyxNTO5LBd5r$&h?0YIh2JA=P(hA`xnJVGQ#4)3PuTi{rL6H#&lZLuXx-6a zFUB<5=Jsp!BhRy)W7KX*AHll2o8Z9>%qW98#ks?v73M z;hlWMIvz7uu-IUSG!rZ6CqS5`czWIe~k~*xd*j`YZQhLim!c;q{tT>IUDsAPf_g9j%B+w%M z(S?Q-gG`YLvfpyO{Mkj2w;{;NSmgT^{}1>Lf}?0qAH>MC!0V7Bj3s=;nOZ(C1U!_f zMZt4kjE;R&Gz5`YaqNd>>;=IOcyBuNa=jXv7?&*+sM?BTnJ>cW#f5Mi$z+64o$>;q zpnGE`&mY!LzuP{!jA7|kB>YP3*cGw6#wqHfl6=w5J(r}0h}CPNBu#7X zq>GTIa)?IFa(A#;8lBGj{r$bq^Zb7QFVFYC>lsOqEkFXG2#ATsd&s$&#Olfb01;3C z;MV|2agoNRCgvt)CNa3kfRIEyju0CVLZ&dD%kO%bnV2|uc-qdc9a`l<=T=f5;n^8KZ2 zPR3$WaCX&=@|LZF`OlQP=<$YK8W>stA>`FTlY*K1?dBB*ryGc0xLEg#t+oj$Ej2uA5LP7lM={f%}9YKNKQaM`Tk>mCG!^7 z(RCp5P|m~N$Xa*?xzIqJAOF{1pd9pQMVkk8W2y@DU<`63yFMo6#*CZt#M+vJ_b@T`Sr3TQk>KmevJ7F#6cP5iiEbqVkAyKUCeb&raI9^YG= zRmQ9-wPY)X&*k=O)?(?$%@PV$w8J03&6Lo-6F-x`*myoLqbE37ZLhzW2;||fo9fsY zJfd83du!wk1Y#snO`pfDM1&brKZ=4G2~CXNP7rrKcC(d{y6@EGy$I087r*bgkl>=M zMqI05tK|Yq;B1mSZ*rfrw-P2`flkKa>boVXD~Jv^jD~30F!wiSyw7x(AAQeq&t-G1drDII z)y9>#tz$lLW5V+;Ezgn;$+&70CG3fw`A*X({v<$c9dG$UsH^}_`rrq(F#DRRBD>}?AHxQ zUwy_xHCu3u^f4}qgA&rN4BwIqmkqA5BrGX#qbe4MOJvP055-Uz zV`B)1V0rn8f#b_ezHAz#%24y=ed2|2X4D40u?4DMux3sy33YUA)+o|d)eRj+ZduAa z^Lh04`d79 z;|d(rKvi!?L-tRAj~`8!T*meWjy0FLZ59{{ZPDs2!CL`gpBKUVW%B6pE;kGhS$RM{ zxqUj-)n^8L1D5fwFS_>-0~m`cMU^v0!jHUj<<=(uU8U6;=cQw+fCqcRtw%U4MMEdk zCVh4a3cPROOKPtmMU_Vk4yU4hsF1#ivqD2zWZ74cQKPoX`#?P&8@W=T`6P@A@2@|f zh|Fv7)~^EW?O(FL;ubWkUWUZ@o$TA9d`P9~I`v&UmY4DzmP@hoLE7(gUxoAh3088a z>x*n+z)>pW*)p)@M`Oc7=FUPlId9~FwGcD*;KvQrT96SoBzCAF+x*zKUH~Gj(m#YT z+@2DoS5GXGEOTCZ-eZG?EASwF6%eMj%q-Oa$LDkol?IO7A8G70Or-b@D({gmy!82uVE)>So_n)|0Ghj#?>84l-L}x(f}m zNYs~W`>fRxooJ=y#hH8}T+obO{*_UZt zA@uSO{7=^-J7_v5H^kGQ#!IKq{CrVYUpta*e+n`)Y-_DaISO~va9ug!dW+M3T|qjd zkkWs%syOarreJRfhXMX@(O2s$yMYMZIm_vAJp+`mmHgk5{pH#Jh64N-|5v%LXQZV6 QJpz9f{foiBd<_8n0~&Ly8UO$Q diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.2-compact.zip deleted file mode 100644 index c7c0eeda93589e3e2bc516c72c653bd3cc78a144..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1830 zcmai#={wX51BQS0WJzcUIc69_c8X&w5`!B18XC#IG-I0#rO`05?@RV|Fp?x&I4C+y zUD;`97&OS(*KEgozQ5Obo)7o+`~%NzX2Qg*3oruQ01EloN&;0Ifn@~%T`>Rv0|4+O z*jG+bUR7R6J}|)7SPiYe2kBjH=UooC^IlEYPz)F@DiukI1`qL-zM|%o7x!8d@6oW=2!MZO@?Pc`cihc z$+BI~&zhJ4V|vTypMyik%lm`z$#W-mBg}me3v*kEl%y!bcv@65!cYa{Tt6vz`2V zsTqRl8ktSEvL<8?-}u@|yN=4t5yzw*&E4}A3nC%tRWNa6Vb7ssR&^^6K2L0Av8}a0 z9CT7Tu^#p&$+QD3CAQk9x!EkJL{)6ROS5Uz4iGBoqiBygb@R0E(_9oTtxM%zST*K7 zq2ElQVKqqOr_SjdQ#qtGhuQ}*6Ogmm z&()w@SnK7y{HEy6c?S{urnUa%T{6c+i2tB1E`;^Osw#u4^uHy>49=zrE}Xm&n(grc+~6yOf2-ou5nfws<$}d1Y!V z+9pgLI0ZeC70P`mA8TGQbbAKYSLginiQqx2g*_%@9%f3Hy}p!JEXUmu9f97Gk9v!w941I=mv{ zZE3=^kb1b7ze8BuP;xOPT40-5d8&GoV-gG>ge>sFC-)JEB5ygXIC#WU2iZ(J;f&rX zCZR{PGk%{z9lRq2Ir zZ*ew$3n@P|j!ZXFAi_emY6gn*b+0K=(~R|7dr6>ti8wwEkqgQ%u8G88Hd5kN$fszx z;A9M|U=CI(-YWE?Fy#oU&O1-A8nyQ4uBj{8)M!$%_xt1LWg#|322Rh!W7uW3aCUZ) zA873fnwAp$^Kd|#w?=6k$Kj0^2iMP2$1#qBAKW^zZytXS*mYG-=lA}h6xb6M7x^38 zYX6s`?>5UAFAa3-qs*?i2jkz~?61WuF99di1T4*UU`Zy$BGb1OzxY# z)J@0%LAe7e9k^vHK6$&M5b8xn;O=k+{H@6Htn=l-ght5I1sh^faM)a}e#;xjZ7Xp< zgHU>Q90>5#HduTEX())ug<}i(k0_GEKXK3N@4vf>rS|T z!yU`Su&UdrnII$7TnO|)b-HzHu{SY~{RofJc~%BODv`b5H|DUqYeAWm3QzMZQzDbD zqPDU9(BUlV@1(aYedLZBu~+pI#x~Js`cBHm-Gr&5Y|D8=or-EgG-NGP60)~-2cid3=c&n>mJGOq?nm7FzPb>e}$b{?B7H({15*rG&2*HGyeeq!&%{H I?D}{817yN)qyPW_ diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.3-compact.zip deleted file mode 100644 index 8eca43e25b42494d1006e7a34d911c6b212471a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1822 zcmajg`9IT-0|)T8J8Hs4p}BqgkeP{c%w4h1R%6a3jY`7U#>6B?49T1oC12+1V!3km zCBtS^3(-VGK8~!MIYNE*&?1O1BSRBIgkd;|Nbrv$lftM3zp#r}0-JyZH?P_!ePR080v%RgRHS?X<${W4JCYC{o@vqw5{}nuaelGR(^J1)U z6P+LMNXG5w2r6PXHQo?2Jt?o>_fZWqzgd??H+udlIwN&$6b!+5IDYD8`j(MHznSXG z_30_*v(aC?I%l4y^!@p@xo4(-VE4;re|pyEpI-08xmq|EPo3<{M91{m#3rrX6~ors z&y9y(fR!#C3KK@%S(AU7aV6k1v^-8@Wi``7^_Q_>^IYPy5q7GBS&xTI5N|(y86!<4 z@mG?@_lgP7c5NwF#=)OmXah*9PfI5H$0=GrruvvEzKsyZYzjeMIBds>qc@PpCue-X zX;Jy?BcaV@9N!Sjwv8iDSEyo3D`nYPy{Rw+R%|N)3bdxFEP(7&i;XN1-NcWag=v|o zmd#$Zu;$=wq6^}~O4DHta@MyYIA%SD{49EoyL0Z{YZaqj9*G&QufXjoy=i!?Y~j{6 zlrr|fs(|r+EuLld*AK{{5wXjFukqvKY*c5NB;^3G>9plH#Y0V2jA2Lyu42qo%d{}t z>ap%5zMSo68Q;4KnNOs1H&uvBf1KC2qihxZcKBgDs+ztSjY{baqnb%BDVS`1Kn<)R zsB%e1s|Ql@hKaX5(Gf)Ue%kf0wv}^vio%=Q%wM3QhAJU9-&~sT{v5>n?z+UAtCIKt z(&)G2WNVf)B!-i>9_(EXj`CK{&Dqi)XaV8$@Q9NgUIoy?df?3yLcx7jMi(VK28mga zl64|p?>o9DB0#EdT(Qvti={rohb~>@P8F=_e9OqYb38&cnn0TJgLGq1RpK39RKDvv zy9#S*ak0N`i9IC3-vZsPojFqU=L^b#6MXJKiWNDAkLSB=Xu@zMXz`Lc?*|x+O@q?U%g>0r;&`nC4vM{33=ir_afw59# zVOox_`KaJv`;qTKkSbkygRP~DFi5SgKDsi}$0vCE%$jeBS#B@u-U8g>%pA6yDzuoG zo}O41{FSAY-l!mqg}b}OXOZe!nnoSmSjoL69*!gxQ^c)j&T9`yw|C;&nH=}Xnk(!a zd;hH*U%Ws5P=ceB2UK{te6rxc28K3aT=c3_uYO~e@(TZPg#EUYTY=cgtjCWFEcdyn z-i=4X&2aO~gUvErUSE=98jlvf!d>>Xt~ItS6lhubvM1pED)Pu@u%9XqeQMC5+wMKa zi`!>*srKnpPd=v1L3`H2Jhai`M)GgAtQ7A5ct zHcg&mm>;7ff(s#p*G-E`I>FYrvmp$SbGE~!cTLAMOnvgTPfBOMa$T*~kG^WOlDjdm?PfVnE6uZ{cBBMQ5`4y>>X+H4E}jX`-9j5W zdE(yQsU6q<=t@6Ig+;L|7~oT(%XnRCUBs}+LO+zlF%Y3VemNK-sd-M#tF{t0L7$gr zxE>!U(AK8re&fLQWH=gpSMWa>Qjwag8KkMvHntui!T4+iB=Q<%bONPl@xykVTn>P5@Ur3RaVDhrWMS-&#&~jp%uH3()r50_Qgrrc$e1p zLB-egxan*AZhY}??!(R!LW|mJ4RQr?H}G>)0872UR<=q+Zct{yS_GY!lx&OLkNP!~ z@Yao7`@lJ5uTiN~U<1RbkKqUBX`FIhX{>%ZNV&g?t;cOjvQ=udZiz2ewhR`<@GHM2 zlsFN3TnkG`CuJvGyKvk<+O!%!P%{at5o0H%SteFS%Vky)ta|a>9Tts=Gt6*e?}6Aa zD&COyrj}l(cbVW~E4FiE$;-H{b7PE4P6xZ-2z9S-sVORlSgfu>^X%|m1^ zy6TesIm0~sj1Z%0v9!RW*gq>_v3A(_BoWp$|1gcPKh4K);rRRfyAtYKn(WdRmuDHBH~CjP8k7CzDB6WODH!9G5Ixm&}v=p35dmR0n6w zA(mLDfJokAgl-qVmyGQFHh1H9xj`#5-!g(dDRUMKQFT%XGJE$usWpna?Z#^NZcBa>Zxw2ln z+2jOGVH1D<@FPnk{g%yqELR208`oT~7r&ft#f z(P2ujgy{liJK2ZLJ_s4&>31>B5Lrr{l7|SM)5}VJ*w{FKa%Up(_fk?x`XJt+xz^E< z^r^{K+Lin%y4TDD^1$pEs(fbPNIdUkrr@Ptk%SZA=6js@H`bEX0Hc;C?4o}Uneu{= zV{g)|hR6<2?WfHxR96WmNNWT>i|CfSfO6g6JrBJ=r-IEi8uH*G#BuM(Xpdrr`pv{i*APS=8MFFUZqwsH>kJBq=8&g(raAb@R@bXHHqE*LB{ZGZkbs> zfId%uHB8!@|kD4UVYq#Z?Vonqa_O_s2eg0#z^OjzbWUsM6 z&uQSJtK0BJWQ)9&=fK>;7*AN>E&u6gPO7IRc+6_pgm}Pr!>l}r^A$yA+E5F`=6+aB zFNri}6=N5$rd!VF05dCehna|ETYmQ-(NWuYp4%7gU|#85LsGeimrhLtIZ7qsX=)1z5cwet&=z^yj{Clb9zjbT}~>ML1g zi@Dzd?M+@=kxdCKs}k)=?du-C=cFR3JzEIUK};gG?meT9d&r*wl_7^+xQl*;#2@fR z&7mV+IlD%@Fh&(QE{9WE>47VE`D)IN7lpHhU$nv5o^7==)szO8@&UjjRn_k$ zx7Ond@YuXQyA)7xoF$1AHH6G;Ph5p})>IgYbt-Pix$+nUKFxvqGCfTXyJ#zR0NqE<-oD_GH2C?~*_2BVA9%u8V7#cZbqA9!)Z_Dd-L$ zg3GM0?yd#h)`BV^*Gh9-DpzHpXc40I+NO2msIraxBE3Ou9!Z5n;+^_)-<^6GOS{B;XKe?@xMhkM};UEHYkfEuJ<*&Y&3l%Pkv z2^hv9kF^g?&j?B|l_xDdY6FcTw!Uj`?si&Q`sA{4lS@UEgsRh)IlcgqL`M8%2>M8> zJlu&T(iL{c(R?ZY{>ab)k=iru$)4;}Y!D3b)k2B@5J+V+5g_EnegHB`UO zm#`)=F+?9loh;QN#s8-G!cF-N&c zWFnv3B`rtD`H_2{T;IN*-@lLV>-EFy@%js%_6W|?M!+dR5Wqx6p!<-Lib31}PdfWI4b-W?`bZ;9RP3uU_c-QKo6mj z#Up>c(i3?6_Er$MQwIM4C1t2o!{4f1yWE{XZ*<|D-V{j1z3+5V44L;>A`HHyBG=f6 zf`AG>^zo#1^br9Ev7Mh4RvBQ)*eOy%Oz8T6pIVKo^3wRg77B5hf| zs`eWjHS6yrMuM@l%Frtw4|-eF(CDT5gu?_v5y^>kSzK@}mMCTRk30GFyH4`$tHu4_ zy4iT*VvbnON;_qaSzJx^Le_~mfRnNq)ty5&Q}I$X%)CZ#vc z8pv7MS-Uw%&c;;%!TM}r1*_{#Aoh#IpR4wlp&BIYrFBF{t_CgJZ{NkwZFvnOT?jkN z-TOUDmBm^~2{>D4-*uBd6@0kUvRM$|eQ6<-@d>Uge^|liIZQ|T$IEHGF&;_H*UC6) zr)+OcI!|kqYr%~^Y}Yt+N914S<93V`N*-s87&oCogr_+nq-yDiYRsMPl}W1u;pf#} zvi6yMG1E*2*!5E)YU@5BwY=aFEEXvg(fgMTo5;?mTzJBxFH%#tUn21eZ*$kL(%P#0 z@rUM)*OaotxLuzh*5tvwk;-+vunn?|U8B7W99&e&PEveJ>f{)|tGcEC^JCxn7k-%E z)7jboNENT~OOCe2&~vRkLZ-ZZ22NssN^C^A&KpvDEG&Hkd}h9+VGd+JQ z_vP#6J}~>clRr|1_i#eO?oa47$|+=E(iKqTLuQzQX?>cK z<4|LiR?=XOvA-nr=-kh)!e=?YXqTd(aBpq0UIdFdR_U=E8?V?fu&N@CHIbjEtyD{p zQSw#h@s=%vK)&13K=HZK-$7epuSYG=Ad@r5N46IcM&V^`?D}`PyPN5uMRM@F>b6|n zYuQF^07r)*Dl%-LI}Q{1Bazala&z4OlD) z_K64z4$kaoJAT%4lk(-0Ur2s9G<~9Xz&hiY2y43MuG-Vgzpq1$OBigYh@GoWXIz)i zqu91Nq1tMM1wem8Y>1H`8F2c1Z0+Sm|7*c^fvWQ#hJ{U=!c6aTB8KNwHG#kUD|HOAe_`8=AxMM4b~H}Y}$kP zof7RLgYl|rkGV)L(mVC%RhSa~s%&AUZAgP$mNP_J%&1Et_1HswUaT?Kpjpkl5F3(% zQ?z7G5sjPE^}D=jKIB_T>%`VXo`MnlX8XD{-;Ie@Dqlq_&yAadMQ_<0;zG$plDHHB zhPiSJ&huN5ug;7utX|W^;8NOHs?PBbXv{Seape`YCA?vd(36g+q{RF+DuIQx$olf; za9=R*1|8Yyx@4THO5L&N?#jrPwSG~pU6RAOMO^~M$?(Wg-CQDg=!EYbufRtpDM9^YcPB;>Lre2`FX^g1 mg5#7C=l_=K7gqlU$MN6!zi!zhxPCDQ035%H{IwPTzW)FeHC~qh diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.6-compact.zip deleted file mode 100644 index 178ed45d5f7e7c159aaa70adbefce3e6f061f81f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1797 zcmajg_dDB*0tWD}5vw(dN^9oWtHf^FgCmWi6h~1S#HL-8jJEb_?VxJ3N|A#c z<*CuutWE8fHUt$h5~EJ<`TaikeSdhL_b>QZo3pVS0;~WZ5E2|@dk*&l=f(j5Z=?X= zHvj-4(EeATYT9ZVYN3JtC@*YKU`QCsEyUx2Pq>$wZ)jiuH#-P$1^_$&=o1LuS|?h; z#Ia%0b>5=h03W$d$;4C}Q3Hk7=g2yZ>)lb$|8ihkqVdM#2RrTL{Z?HlgrSx)t4)Ua zQ}1dX+n=*$=u-k-&0=-sg7UzEq{TX;=}{uIWjQj9us0_pY+-M*+)H$=#BNT4Rd+;b zO8mKXVA;jQkA=-kY{GbC?1>;gQ}oX4#K5&PqtA0QA1d<3+T9-__>m|3HqPQY_oStl zuIb#K=NiRMGFUa@*kK`hKV9=TB){*hGDkcsHD%L}XL(998vPa{#fwRtU&?(M2<3p%(Ql?S-fNIvmDpUe zM|od^LWa?q->4m$xSff=B7yDklsepv>1!^C$LZVJ*G9fNbHgXaYY(kTS3Nruil;!+ zMJxOp5_K9)AAN$WuZ-+kJ6}4W_4z8fHmAN*{stYl&AG~Dj}2|3ArbqBFo8Y%5%`{b z;f`GqX^I@CVWLmVPf}T?9+9JcAY+aVJJ^hBtpT~LgqeENi(CHnjNMgA3&|yX?!r}x zIy_*LbVEFOc?maT%o=vzPTOH)|l)n~X!W7@h<71+>U_Os>lB(kcdM1qW z9PZ3?q|`K{ptFo1jyd;?wr zSuGGQqEJmaVtOE<%9+jOm@kmA_pRGjDFRxSdJi0{PTi-kt!b5XNA-H9YYNWVv+kp} z5(RV{1m^{oyZZf%3uE_6BRajpzJAhH4?-4Xnpj~}hi?*bCGjQ(i&*?I zJCQ8Ylz`U#bj9wEctRT6WC@crIFKquv3$7lq05&j^G)v-3zk>WXfIGj$5*waR!?$! zGB>I){C1@G4frHXi72!v8G;47ddVM1@2cm#c4ZYF1ZLky;Wnwkm1r=&>|DiDsI8or zRtx!h>abtiozST#I`kJY7e*_98)+q95E{iT3~L-~uG+2P3r}7^aVAKv5_v}6VEMx{ znHMn%?XBo$+=v4q+p#mkEK&9@(d9qVrdrX`8z^B|b?r$uE%*2P)Rc|e;_ochR!2Yq zDhaiiKDg-4_?w~i^{RIB>f<;z|JzO%e+wRZ%jk*2UFQrBoQJ-94#thADK5gs&!^dc z+``JvW9U3Qz?98`kE+$;pN%e5Dwv}esYhoIm@}?#dN*A`LfoGSj%q8;aoCPhh6DYh zJ1L;ImP<2?x}(?(?4MmYrQrj5$083V%j|nwrJ{(U*lGMk1JbU%yCY*yldHc;sU-8` zml6GR<*q!pr0Me>{8e+Bah78|x|OOf<=)~a&2je1XBHS0$W1@<@*Q|Rt#iBp3KL(44!cUw3``YC;Lr{c!HPZgv`cS8qUYDc5r-o5{$ zmJ;yz@{p=QOkw6@ifwmOPe;^;k-b-es*PsTS@xDyh?1j_sl{UW1M=leaHoFZE3sx2 zJ5RLp#yAJ{mFEXft#bPMa!+xD0xx%0)V&2g#TpnH?zq8}OtFvnO#DpXA~c3Y`-hX_ zHx|2U(k{j1a+njCaW(lTeQa`@S#rXJo+w-(Qw!0DyNF2_Dbmb7N*HXv2joJ zMLq~rUgk)B zBVZ|g+U0!=ng9tfL0Z*}_2aldZ}hW z5JC-zWjT?Kk2wX_-WDHXD~tK=Rh1rg9+jl-3r0g&xz^y@=R=ofDQ!1AkBzqah(_YV>$Tb}>` diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.7-compact.zip deleted file mode 100644 index 13d995eecf7b912ffc861cca5a887f2ecbe5f9ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2019 zcmajgYdq5n0|)TGxmGSMN`$tVIGviATNG(5J$i4>A4oF@FCE0Y&z)84ZR z&n}4VbBJX-U4IOpiP}!1ARHzqz=yj>wH)TeHMdfctZ_0eZI!RA;^20AysgNG5mT5A zkrk?oep8}XsKP&|zRRl}lT@L2CT#7Y+*NlO9_Tjzi5cO4?0k~l*XWmMt>n42hV#-e z_JG00%#E?1|f8K<+q)(WT5F%Ojv%Y9m>wunxOpcagz5PZ3?vZ^(oOC z(W5#04TeY;(VbD#dJ+seZ(9b#NxjMF@_MyY^T#eo3G!Y)dAB85qoiP=;rBpWf&_+8 z181tF>t9w2$vOkBGxDUO#l$sCsg2hxrIUULuAfnU-|)^;Xw?(5P`a7#MPIneI_t@y zoWp(@Y?6U>$_cyGdwLSu4|c4#RD+0~z!RMb4PBFM{WmIX2V2q@uin zCC14stk^S22_MV6Kam$&&D+NU4rVD-(;iW0ALeXnPhF_t|?@7dZB*y(5!@a(;R zjbWHM6Z{Z0&JDq=UA$JCn+dl<##Jfmho?0*3wEN8-*G-^1+de8ZXZe^fnRYhh=q0d z8xUnI|D5_pW&uAIkR=i=1)ls7&B7~KlrESu_%uevjXPDNM)&Z+QKS_?oJ+y_OrC}- z_5Ist?UAtW)zj(>6lDQ#`7IZB0q&8=>K~9nZ94DF&F0b8SE`NVd<`O z#EY2tMGeWWR#dnj6M5S&$>@|Am7=iRese(Zi6b-;%X}SvB~0Uf`LuJ`jX1 zk`MlmjO2AaQ)U%`^n7ve5Tbz?5Nof|^u|yyiTLv)qu+7gcvrOIx`_lUzT=B@89sY} zcFM(EX~inl;QO5oob8z*?Dg3tP6xTIo)q(VPX8{#I<7<8Q%@cqMhWWQIHtl6XcJm* z?&hkP7bJWXagF=-9)K*ku}D5_2wDvy8%QVV5BXon@r?i3VGSi(CcK3lXd(LQ@YvYK z)Zn=+*8=aqQ>W!BsFv8p_1d+cMHEd4MAI1?<(fMK?rU~s5Zj>qH*+YbyJK^QFwHUgU(_UsmQ%5|8i@fnb0G9CC;$L{Pq0XTgJXK2XAPP z%9m{e=ZhEjhDeDc%3ze{{rDB+F7nOIZr9Q&J^yra13uS2v~>HgV>WioGrybic0H~Cpt1&DtVKo-Ilqx3JAD^t2o$0^^i703o_dkx_&uh-W^6$Dvo1*`K= zTm=(&>|_Ox76QRjvreyj*Q^fDRb2W?gs3Y3sPjA|u1?LauVL9k1%^@ds`P6Aa)b1ODx zE+QLW&@vJAw44Nm&F_hkx1eujJq7-qa!H>-n!>i{uuoe}26+UOoKiUhJL95E1CCZc zgj`eaz%&UQ@Cg>B;YKzM<;GcTX>xjAN^yxPdSA+?P+D?zrSyI`^#WhjAKlgXOT}np zKo__nt!mBN-Uynb;NpLuAGp6uExNyC+CP`K)1kO$rqXT~`M3G2DC914$0K3`TzsY@ ub!rP8lHg=70YXduZ-0Lg{NGR{{+<7;v6H>D%)dv8Up@P4<9|^O0RI5cl*M@f diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.8-compact.zip deleted file mode 100644 index 8f6233952653c217d203297ce076d8d3d6613d53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2017 zcmajgYdjMQ0|xN9jF{UrxAmq7vqYBL#@Ps!<~oLrqztPzHn(z%3C9RIF12FP3KNHr zOHnvW$tIUWLM|aixfHU@<#gWf@9%w{56_q9``^t`Led%_4p0C@gwgSqiF@{=r2zo2 zHUOXn003g5sD{QyrbY;(2pZKtD4I?SkMutuPP%aMa*)xb2wJF&BoN>S05AXmG?Pg- z*)j>cH}Iy>O1`Kw^rCK?W@?r@6a%XPwV2h;^WsXI2ojUuE5Hps&Aq~H(wo1>b8xa1-I*Q?GuMfJEMeHB7XD@C+NVYn zA@w79TlEPWHcl&T?Mr}^sGFHWzq=Di*Ekcd<5ba<=7z$b?&tOzU`(Z@eRe#)FW-RM zm-|R8en3~{HvUj~Z)*+uc)ulTdVc|--goVR*bx~Yi-4y#?{ZsnuMEA8)lYwFC*#74 zPAAq;%qhmq7`uId*mqOu0hT1>n|Zb?^pvi<0Y}(*N(>SAc4V)&-N6`7e795-4xCci zCd@_qhW`az8Pnj9G=2A9i>xz2CN#4(kb0H7q}Z3@9x|%Vjv^=Hij*c$U_dNmCi=Dy z+y!O$2Wp3A#o|wCE*23`4f;Tv70Rmbo~@cAi_N6nboWWnnZ?c|{sF63v$4er%x}-? zwUzr33n8Nc{1ANL!MX*#8PY%#%0p|>wEz)!vOr6b64RImRP{a2?^2}#tMiXgVXhO< zVe0yvyKC4yf92!5XIVyQK(b@k)Fz4X;pbI-07mweS`jOm-g=Kc8H*9)N>e6I3mMxs} z1K#I&93I*Yi&g&kqC2oCFhHH#7717oEX(a4454pkPi~Joie%CvNS&68lvVYUTfw#C zhIcI*fPzLAB)4$olQ@%*rq;UPlKi5yVI7We(KWGiiX2Gv!a5Puc;Bjr7ueQ!ozs@m;5xI&r3aG3U^{Uh_o3B%Cz2eOdi&n+Id0>AU&O&*J>* zq!TgOllz4Dua#{NuPhiKKOyZU9k=h~XZ+-`f@foF-Djo9&uiP4p5c$?yvvJEyUL03 z%iA=Cd;K2L(M-Iho>FWcvzmGzzgzgky~AS#9o30*q#gaAcMJBG9rK$}8K|7PlCNFXx231j{e_3DhaMjth!#sq ztb$~Vu<%E93 zhU{^Wg&;=@TrEdpsG+q`&DPW*;m|8tz0SFzyeas5Xu zhB`S^4M7nWPLNZ(Bd5Exds&YX>94kbo(ayvzxq!RJ;V8R-6m9a^a1?j^5b%)^{GA= zKr`+3O?r~r(6mboKu$)!%}vga~2#XD~dh}Ne51`1TC1}miDbAbEWHm$&&%r)tx6_f!gJf zO%MjUCT559u*BvnQ1i!zN!qkTOpA%U1vduxTqS?Y#_$r0XQcG0t1oYoAN4fmkn7|mhbXp>UwQ0OKs40do)l&wD%{-~m3(KEc;-Cp$J z@S0_Mi(vu{;xFR2`nu3>I_CuHm?=t*AgEsoi+GaTw@(*3unqA#Y2)msiYTR4BTi=F zLrw3}k-ER_yR-=*SY5^F3qFh|Z)$&zFS!%nX}C0Y0$GO|%BN$m-{q1=$j3wUoV|Bf rMlG>!j$-2068~G@UjY9%46%Rb|61(k2$cHwDE6zazc&6C zfWrY|BSW-wwGFf(+TpkmuYedlju7GHL+}g2L7#8A?AN(S z3cB{V^RFpH zTuJ3xiK)ItH7T^;)3U(vT~}^&Z3lR*oMB^Yu~+4<)8hNX`fO+; zx?aHyVtsXdM}*NmI2YaG$=s9Gs#&gAW~!#XzyH*5J9o^tM>W)p7CV03b?NKIDo-t84^gA!_?t z5oIgJWK#3g3N}wmfkUPeE?%&tI2x`i!y894ejL%n(br@ODyJMBqJZ(j9c6z2Kq zCYx~>x9l{HYg|GEaC`j^#|cjHbF%}$iQMGBe)h zUD1_#j5jVE9OeZt5zf`PUv*b^`qj3neiRwxgSmZwJ&P+P4yPuZn+;bf4;WB_sJHya zBkze+e6&m10ka0%3lO^~$x|P!iQjUVA)qLMts-4HmBDkP=|^V13HNS4kgpqd`PfLp zgY8EEUrf=tYb0lcrPC73SgG?xdBIF_G+e_}OHi2yzGK+Ui5XI4;`8^hwAHS0@RVb3 zSeyRP?9YjNREf3#LGWj*Cmql*VkgUq$oy%$PW|;S<3DEOsWl)Y#|ud-v_}D}gd|cVUnIw)Oy{U4`AQ^lDdH z2~_yVDI};#>wT`jA>>|R!(}}(B)y&snXQ{%KH+da`(SGRYvw0)p=gXS$P$9mFpP? zK=KK8&bF>bOYat$)zWA!ZD*$!hFyK^_B2otPfRSP8j5?#e;G(vrk~F_?ydbcbJvT;TDRz(`xPn=EChmgQ8OX=%vi@yu z@5Azq4n6bt2V2X89lKzTV;e2Gu5BfqdD z^)+zvGX7F1)Pp)mG+L987WvcvOkZG-wnWVZe0f%yWpKmf-sTpnT^!pWpDdzUY15ImRJJSyd{bCxo?z#f~!@~f!n*ACl5*P{-6Odz*Ib&|n- z*R-NuKy7BTGx__GnbK-_scF7Nm7MaFp=SE`=#DtH!FzbA_2Pv%5n$phC$9p8m|~q7 zhyI5lkf9U~O06t*hzM(y@0k!In_LfNGwILk?MW|>`+gzgGipWP#Gbt!BB8(g@(#Sm zN#~7ov)PkKJ7Hg*Q^S5nc;2W}rChOr1`!KOcBf?!nkFhK+rCoOE5YVBGuGKt(0xuYE8M<&NG zh9RX%bfEnNckRic#)SABOZV&)iNdtfc z008JP{|hiBH6>+bC1jAli)UnTP$j2UizVf~$M zk?U0nw);&r5Br6QQ?guK;L}|;AI>u>FYjs|Tr*l0?lRM*JhwA{)eFgWfk1XFg#$Sg z{VpzkE(iJadw(##p{IF!r80+h!Gk^2%xr2P{R$pNKMB>n%GA^XwQ53F_3g->4$C)XhWLANF~On z>L}PMbt40t3)=ZMq+!qxU%AuuTa*m%fq~Nkf;a5JkwhRb^D3&itbfC}z8SL_Rlfxj zsTIg78L`UO{73A3fa^zD5`~^@w=z9>etcdlz>PQ{lz)5)UFVuo9HKB=!pyT4!}-RO ze2CXaZ#|sPwK-X1mDhRW>Lx-6z;)WHKq-&8m@>6^3#1fiF$4h~q#sAOEGP%b_hOs} z!);?X=pd=m${wQ6UGr5)M@nqsb}e4?61ypg|Gee{ihrG)EkR|LJ;xbmclhB5jNf0_ z6nfA)IUF4>P#x;Vm3q{#i#U9xg+NO-J=3U6&|%cylr`{!VyT6t9B$)|pdJzV#rDE| z<(1-=yp11iOj0!)|IkNx2?e|J2dau&_Mw+;!8&Nm=$ee?XM^z+pqhW?Fu}nC$ONG&Mn zy5O_b6Ytb6t-q4|9Ct!zMqNN@4EDtF+-F)wefaNGH3qjKBAY_h@7;G+oWyiL!A@Tc zhpbi8UvlU@u3IzXa~AMDvPO#Y0HfG4zKWe>CXB5_ZRWf$tI1@vD zuHP(A4AbPM$LEn*+)rnd`UI@(TfH5oIAERMX(WWKf4vEqEEY983-JW&C z)h`w^Xdyx9-Awm3tz_-tx6UvgHqq|D&NLLfSnlLt-ZTFe1N&x}r1)CkhwkX&E9nE+ z>&kmeWGV7+R^=h+_F&b}l)_3P!#tvqx0G4V+F){nMpRW=Ed`UFVV1+Qb!Q^M56@1f zkbkjc%vqBzJ+^9=P2@OY^>~ogyZvixN~%Z{-IoRhxTrb^Z=i+?{mGM8va;rO^<^w} z&Home>G_Pkm=2d8W~8(;@3f$>4Yzy#2JYIU$T>=2|hRGro>?qZp@aXjYx{c-=11EUO61+0o2_VA91LDJV1KneT zcgzl6!ga)2zvDbCjgg+^995YxJwU$ro`n$B^{D>VIj$aio!TE+Lbt%Z z-q9sn!6~oLz$R0P>z_gEA$35-77l0J!9C`>o11PM*TS|N-jod8G#g>NU?i>WjDiKb z+`Hc7A#9uwY1{c({L`6(lqCp#uf4;jcOyhJcHny_^$Lv;_8|kO1suMihK~^vc}dCDk6bhv zbEgE2dt%k*TU`mpP@guUY=myP zyXJ%zN#XQi{Zm{+4(Y*3(6^JN@lRFCmsUSYu;vZ^Os>F%`p1bWP7tX219Q(u6(Vh= zFr2-zG{ycm4)7v^n{h|Jx=bvZ{PSJrtcA$hFUz$8xCIll0n7hJfIk%QU&S%~jsFh> SaElXcf0s;u4F8+#f7`z%9|j=+ diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.12-compact.zip index 17612f48b00fee9126c4e249e4e81ea598d74cfd..c2da7eb46dbe330369aaeeaa8d1f4dfca0ce71f3 100644 GIT binary patch delta 2574 zcmV+p3i0*&6ZjMxP)h>@KL7#%4gl)4WL7KjPBYR8003Dz001JBzX>IgKqP-3*K@rV zG4V$ag{75VSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!Kckv!haw~sDXQ&tDo*!CMj zC?gBJ(di(5~Z?Wy&}1*~LVO7qM`EKVnVF{JHT*uiszUxTr#1b^&w$=fYwd9g>$O z8F9g0f(_m4mx2w)!q9}N$cu=-9_1=@dWaIUvd;_Uvji9zY^1Nis-}OOLY~XZC;pk#%e@8ld53Rw`X;F@Y5eQ!j42J5?~S23!`j(+;vgQyq$3 z$<>bf@{z&j0{d@FPfptiKhc;rpw;j(D4mY-B^___47lYx5HU3%Yz@khuCty+JJR4Y zb;2$)>i+c#68u5PF-6Lr%lkn)3u@d<%-y~tsB%VL{8GanNO#n#F<&Vzw9Y#UA5sdxyJaki zCXwUd+#lroogE~9787SJ?8RJk8c$RC@E_ckp8+G6y#eU^^P|8l+H{E~yQYkakkQ-k zlH(TKhY5=4o9chvSk+1$!lqgwSIMbQ*sxYXHkw(Q9{gZI2v+nU6JIrP>B? zU+?W`2MNYPQ57z$hb6k8bD@7}_U7AV5GJ4hpsf2RFpaa`+w&HpLSRDwMuezpghoM7 zu925L&#|7S!I9S~p7c{QH@w6Sg6|%K??cf+0im{1E6ab!Yr{t`iB3Jkv1Q4krocuC zFC$ou=*NgelS4~^l7|f77?{AR7-J4Fd3u13$7xz$`T|u?`33BSW`1aoP#9{M!_7gn z=pRTNptP|32O{xb|DKanf?GBNN(?ffx^#!(Rryf4+#P+&e)z>I<7R*IPC zHVQRQ|2%BPdJy{XYJ+g?3JG-*ig~v;_27<*+(H^*>Zm(SO0su#4U)NR+hovMC}IC+2Svo z4n&0?=o!1pTYTIWHt3;|)i|N#AxCP=51G{{q#o)}CXg~ir(e^ztMh^HQ(Q00=o1TV z4@kg0prE@sGWOy4P1tn|wiFntSnxJ16Y9x?jaJ{^S(L#%O=+osh59G2 zB$~JrWVox&w|!MgNMfNU2r{;XANLPiwPy&OK6Wxjs8N+Gtma#F*mEfEEREFpXGKms zPru8@Zsp)~r850O8OhQN-^$;VYWi8?e4m+Txp@OSm_Fp1#EbzUc zpm0R6wZ4EODIg?2yYqcs|B3#Y8ZtxW^X;J*ub5MBJ%+7$5~cL~YJsnRDBp*#k&jYJ zebXIb=LU$GgN3GG!>}1aK*!EBYeSktvE6}Z|LxA&{=+@{>w4)4zCbC#+D_b!lpTK& zS^u$~uf*(xUj9=3IxE|{-o+5Lrt7E=%R(k$1OT_SAdkMY@H6A8xcfa9Km45`ePVZg zyboH_g1?MOt4lI{rnfDMg%I6BqR)Drm|2!VG%H6orV8fyx^f|_V!LF$%l+fi< zG2MbvPEASh5&z}CWx|FTl3QFxWITTo<5p_H6Hf}T$J7UwZjaZl3=lVRM)Z`Pg7@9f z$XJ(F%<@7x<^vO#lZM0_x|AS{Cl?y{V4Gi&GRTi{jmX07ID6AOZ$^Aj_hf05#b&MjBMT@!&D|oE!4VWI;)z8vOnW1tqnbMW~CfQbzLSQN!=k3As_Kw6vs?eSp-+dYK3GK_eRskDI`!xS$DM6-cch6!P zWNvvVNs6>Wt6f+X>^SYAX-a<)OE?TCba8bzO2FQU^qR;nfT+cd;J;LdBK+V`;CAe& z7QBicL1l3{O8?xUV2G0nf9fc|=7{3oKY`ufpiO9J|j#5I4)|4{x!m(`4@DK`Pz$(1;G0Wb(f}` zWL++s5qVugH@vx(=0Z@UX3DIG&n6=fw8JdqGXO1{dFFizxC`Fn*jBK-0EKQ{{Fac} z7CqXodSgdgrh2?LxTJrt)RuQ+UtsdIf3@)0TQti!G`u}4e2Nt#Mg`}_dfpvP zbIM6aE5(ScGZ9u$tGza+?qr*^@Vnn_Rf~Ehz-)?W`4IOqM+kpVlccjeH%`3Xb0W%6 zR_wP6%e;{~I9du}2<`V=D-HJfpDsn1duc_J!8Am=(U()M66uDd&`XM!{T`wv-Jdq# zRP^c(%!)PW8DuOST{dba;K+K10)~?T8m~PnK>9v1b9`9eXNI}j)?B!bKlIraFrFBv z3yflrkTiB~$%KEJ?l~H%uNibKGcb`Qu2NY_P5Gy{J{2?zvydE>{PhXLK0H}K+?3z6 zP67-V$n+;pBBi8Qd6y6$wf=}OA@ahdM2^9~(yAMriP?@6fA3}4nuI9y0ECfxjS1LN zoF2z*Q#aeg)*s}m{gB)TjYB;R-((S$9$cA7iD8@YOC(#J8oE4tMmCn+syN@@yZr2i zLapmmJ0TJNI?vg0QzLsn7?h}*dUJts-f6&_UEiwreXlbQg<#^Z8v0?{{!#esP)h*< kKLbAi0ssyG>a}E6EAdV<(g^?nSvixg2}TAI3IG5A06z2W4*&oF delta 2447 zcmV;A32^rK6#5ezP)h>@KL7#%4ghm;a8#!pg%wl@001sE001JBJqjg}KqP-BuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2tNp<~*fG$kr;SxLONzIx; zrl!EP%j-et8^A|9)tyvHtHcnPUdU03o|}{U<){*@tDoV|oun)M*lOYQ7PTb#FX{jv ze8o=#dj4si;v~}_dtxbUUe|wk3?pZdCY_2;Aoh!hl(Q&qX(})@=pLm4E9M#spPpL8 z|BXC45f;yYcDkcP|CcLdOHOu@rHr05*Ovt#V!|nVGea()?i6F3(L0A(Vo;nwd*q9YDYuERC)Hu?XZ?_OyKB1)??8SexG36rm>h45C zTC*4zz6R|MKdXVqX=&gxwr9{mi8-01LIg%^4st&5RPH6(bHtWyDD@XCmp$f6-s3|f zk5-sMFoQ7+!xb*9)8OPcivso%bm=|yxp7fISv!&>Wi^OQ{C3X-sB>{b-@iy?C!!dPzOxF?%=TEnlgq^Df~;%2V#G0sgD@c1ncHSYiQdr0hel- z+PQ^(ye^x*9G=j<3$mS(YxejwaMrvdR^XS#y5$2o=yHJsDf1E*XRt!6?FK68F$y`7 zAZ!aybt&O7aDkYd=g(}vU}*&ps1}fx^q6WvZs)bG^^y2ga(SG(p3VU~s9tswk-1JP z6UwGb(rbUiphKMBgwJ_DjgXqrnE73=gWy-undAX;;PS%Pjv?T!b?LDi`w&Z5Oo z-ei>|SMlZjBUDK?KqiT->`037fvvaZsXN_zHF8l2*%;#7yg&M}zp?~bBC|rK5-ty; zJPJV{q4OOG&v97ginbz}oTem)M2i#O0fX&=3ydpj2V zlH7j`Il{JJt$=ghq;@I~Y`KPZWkmw7dJf#N(U{=eBfb_f3m-P#;>F8ANcL<#wEY`HJ5OFLvU`@rIpp3>x zng1SesA~;mVAaq6Q$I!E+sNAqceE36p7MWAXYRn9UdALJ3Gch)T%cl3o>$rbj2Ru7 zOx&%i`Gh6;b`d9sPbvddQiE`3&}Fullhvj#UgLe^zMic8m8^@`2|PB|PS0?2k%~OJ zJzkstoeY@gXIR^1Py^g{xJr-#eSPA+bc~!9$tJ6;yX$kEpQVErxW6d2APR|lhy8yp ziu$ZYLf?jxIjUpBaY&j+#Ms`yIlzhH@k<8Y>;WzR-j8klU+#?A&72tm^9f;T4ro6a z3@T)0vN*Jr9!`bxk>I0Qgnq)8D3uo8j>H?kSho|H8u-!0+nZ>oY`ilYru>a}wA%1> z+L|h@fr6u8n9U~xh`Iz8u!vqe(NA%ty}?H&A&WIQcIPR!;}5DM@cMuAsDkYI zn&>h2w&`}4?Ie$Z{4fk_!S4rTqe?9-*QHvdh#|+nJ9o}#n=oK?#>p*P5Z@{k#N8bY z2Y6jW(|%MyxEYsrAP=L);-6g<7N9CR!??+gQwsv?K*hFz`cX+P!UjgVyAiPvUag_d zTg4RZf4dSQ{A&N#To_Y*YYBgOMS$b)dz06ThKg1FK$VWo8X+An<0kP-)+zv)1MjYc zdzxOz9ibDaRmQh!Rkf4yYeO-8sP?C)Z`Lx#3FdZ2;2#8IE`xC05T%z~tJlw{Kq(-o zP*TJI$$fPmT5Po}cifor-xGT|nlr~mH+`RqN>l!6yrcs4=d|bEFl~RAc0eNB`T9We<$A%Xgvv~1!%u&1L=Tp3yfXDW*99ri( zKYsaZ3>x#+o;hNt_fmgT7DyG&k?p2plfoaOgBgqEnimiTFv{!qyq}*njS~lkCznw3 zcegL18jdkMY3dHVRSPfC#zDqbwYm^CIP_OSnZ^8BnOylcCgHE+UrlY25bR0wK{-;J z9ZDvn%>inZT#VycCA(-Ql;wEWl_1&f6*HyTw!oiO#+0)Ep67pm%UA3RtIoV(AwK|g z{10ohI7AsFzn*Gf{K&G;#YJ|X2Xnn7UQ%iteR3cl1(t*?DHT_i&<)gCT++G|`;vCfzF9QryQm%ku1c=-lz z>okfWw?^if+T&d9_#9o9efr~6!qjmkAy!G|bV<4bPzoNPCZ*YSxgru6#~|AwotZa| z^UY^_28T4DRVq9s#stm7B9IX$|Lg5 "0.8": - # No legacy for >0.8 + # No legacy AST format for >0.8 + legacy_unavailable = flavor == "legacy" and parse_version(version) >= parse_version( + "0.8" + ) + # No compact AST format for <0.4.12 + compact_unavailable = flavor == "compact" and parse_version( + version + ) < parse_version("0.4.12") + if legacy_unavailable or compact_unavailable: continue versions_with_flavors.append((version, flavor)) self.versions_with_flavors = versions_with_flavors @@ -468,6 +475,15 @@ class TestASTParsing: cc = load_from_zip(actual)[0] + # Validate that the AST is in the expected format + for compiled in cc.compilation_units.values(): + for source in compiled.source_units.values(): + if source.ast: + if flavor == "compact": + assert "nodeType" in source.ast, "AST is not compact" + else: + assert "nodeType" not in source.ast, "AST is not legacy" + sl = Slither( cc, solc_force_legacy_json=flavor == "legacy", From 197ccb104865d12755a319acdbbf75d3a6a4862e Mon Sep 17 00:00:00 2001 From: webthethird Date: Wed, 8 Mar 2023 16:05:09 -0600 Subject: [PATCH 025/193] Add `Function.interface_signature_str` --- slither/core/declarations/function.py | 28 +++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/slither/core/declarations/function.py b/slither/core/declarations/function.py index a4624feec..cbc0b64ec 100644 --- a/slither/core/declarations/function.py +++ b/slither/core/declarations/function.py @@ -210,6 +210,7 @@ class Function(SourceMapping, metaclass=ABCMeta): # pylint: disable=too-many-pu self._signature: Optional[Tuple[str, List[str], List[str]]] = None self._solidity_signature: Optional[str] = None self._signature_str: Optional[str] = None + self._interface_signature_str: Optional[str] = None self._canonical_name: Optional[str] = None self._is_protected: Optional[bool] = None @@ -1002,6 +1003,33 @@ class Function(SourceMapping, metaclass=ABCMeta): # pylint: disable=too-many-pu ) return self._signature_str + @property + def interface_signature_str(self) -> Optional[str]: + """ + str: func_name(type1,type2) external {payable/view/pure} returns (type3) + Return 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 + """ + if self._interface_signature_str is None: + name, parameters, returnVars = self.signature + visibility = self.visibility + if ( + visibility in ["private", "internal"] + or self.is_constructor + or self.is_fallback + or self.is_receive + ): + return None + view = " view" if self.view else "" + pure = " pure" if self.pure else "" + payable = " payable" if self.payable else "" + self._interface_signature_str = ( + name + "(" + ",".join(parameters) + ") external" + payable + pure + view + ) + if len(returnVars) > 0: + self._interface_signature_str += " returns (" + ",".join(returnVars) + ")" + return self._interface_signature_str + # endregion ################################################################################### ################################################################################### From 4da0fb51101bebed3d05a5c6d195f814f1de0ecc Mon Sep 17 00:00:00 2001 From: webthethird Date: Wed, 8 Mar 2023 16:05:25 -0600 Subject: [PATCH 026/193] Add `Structure.interface_def_str` --- slither/core/declarations/structure.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/slither/core/declarations/structure.py b/slither/core/declarations/structure.py index 8f6d8c50a..2800f809c 100644 --- a/slither/core/declarations/structure.py +++ b/slither/core/declarations/structure.py @@ -49,5 +49,11 @@ class Structure(SourceMapping): ret.append(self._elems[e]) return ret + def interface_def_str(self) -> str: + definition = f" struct {self.name} {{\n" + for elem in self.elems_ordered: + definition += f" {elem.type} {elem.name};\n" + definition += " }\n" + def __str__(self) -> str: return self.name From 6a2250f60d63674884756972bda8cbb40f6304ef Mon Sep 17 00:00:00 2001 From: webthethird Date: Wed, 8 Mar 2023 16:05:45 -0600 Subject: [PATCH 027/193] Add `Contract.generate_interface` --- slither/core/declarations/contract.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index eb2ac9a2e..ffd8a0862 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -953,6 +953,20 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods """ return all((not f.is_implemented) for f in self.functions) + def generate_interface(self) -> str: + interface = f"interface I{self.name} {{\n" + for struct in self.structures: + interface += struct.interface_def_str() + for var in self.state_variables_entry_points: + interface += ( + f" function {var.signature_str.replace('returns', 'external returns ')};\n" + ) + for func in self.functions_entry_points: + if func.is_constructor or func.is_fallback or func.is_receive: + continue + interface += f" function {func.interface_signature_str};\n" + return interface + # endregion ################################################################################### ################################################################################### From 772710cdede90ffd3fbd8c186e385219d0c467aa Mon Sep 17 00:00:00 2001 From: webthethird Date: Wed, 8 Mar 2023 16:22:13 -0600 Subject: [PATCH 028/193] Fix typo --- slither/core/declarations/contract.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index ffd8a0862..1ca38a1a2 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -956,7 +956,8 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods def generate_interface(self) -> str: interface = f"interface I{self.name} {{\n" for struct in self.structures: - interface += struct.interface_def_str() + if isinstance(struct.interface_def_str(), str): + interface += struct.interface_def_str() for var in self.state_variables_entry_points: interface += ( f" function {var.signature_str.replace('returns', 'external returns ')};\n" @@ -965,6 +966,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods if func.is_constructor or func.is_fallback or func.is_receive: continue interface += f" function {func.interface_signature_str};\n" + interface += "}\n" return interface # endregion From 9e70c3ff884de2fd1be575cfaab44e3da4e7d1ce Mon Sep 17 00:00:00 2001 From: webthethird Date: Wed, 8 Mar 2023 16:36:51 -0600 Subject: [PATCH 029/193] Fix typo --- slither/core/declarations/contract.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index 1ca38a1a2..35f31ab07 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -966,7 +966,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods if func.is_constructor or func.is_fallback or func.is_receive: continue interface += f" function {func.interface_signature_str};\n" - interface += "}\n" + interface += "}\n\n" return interface # endregion From 9238efc1a46befa6d7911f0d4cae68749dd0c68a Mon Sep 17 00:00:00 2001 From: webthethird Date: Wed, 8 Mar 2023 16:37:33 -0600 Subject: [PATCH 030/193] Change contract type to address in `interface_signature_str` --- slither/core/declarations/function.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/slither/core/declarations/function.py b/slither/core/declarations/function.py index cbc0b64ec..477b6dc51 100644 --- a/slither/core/declarations/function.py +++ b/slither/core/declarations/function.py @@ -21,6 +21,7 @@ from slither.core.expressions import ( UnaryOperation, ) from slither.core.solidity_types.type import Type +from slither.core.solidity_types.user_defined_type import UserDefinedType from slither.core.source_mapping.source_mapping import SourceMapping from slither.core.variables.local_variable import LocalVariable from slither.core.variables.state_variable import StateVariable @@ -1023,11 +1024,13 @@ class Function(SourceMapping, metaclass=ABCMeta): # pylint: disable=too-many-pu view = " view" if self.view else "" pure = " pure" if self.pure else "" payable = " payable" if self.payable else "" + returns = ["address" if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, Contract) + else str(ret.type) for ret in self.returns] self._interface_signature_str = ( name + "(" + ",".join(parameters) + ") external" + payable + pure + view ) if len(returnVars) > 0: - self._interface_signature_str += " returns (" + ",".join(returnVars) + ")" + self._interface_signature_str += " returns (" + ",".join(returns) + ")" return self._interface_signature_str # endregion From 289bd49c3ec4516409f6589ffaee18100ba24825 Mon Sep 17 00:00:00 2001 From: webthethird Date: Wed, 8 Mar 2023 16:58:19 -0600 Subject: [PATCH 031/193] Black format --- slither/core/declarations/function.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/slither/core/declarations/function.py b/slither/core/declarations/function.py index 477b6dc51..65e19e013 100644 --- a/slither/core/declarations/function.py +++ b/slither/core/declarations/function.py @@ -1024,8 +1024,12 @@ class Function(SourceMapping, metaclass=ABCMeta): # pylint: disable=too-many-pu view = " view" if self.view else "" pure = " pure" if self.pure else "" payable = " payable" if self.payable else "" - returns = ["address" if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, Contract) - else str(ret.type) for ret in self.returns] + returns = [ + "address" + if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, Contract) + else str(ret.type) + for ret in self.returns + ] self._interface_signature_str = ( name + "(" + ",".join(parameters) + ") external" + payable + pure + view ) From 37554ecda32473c40670d7f2d32c40b93500b11b Mon Sep 17 00:00:00 2001 From: webthethird Date: Sat, 11 Mar 2023 13:13:27 -0600 Subject: [PATCH 032/193] Bump to re-run CI tests --- slither/utils/upgradeability.py | 1 - 1 file changed, 1 deletion(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 22a076ff3..64143a9eb 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -20,7 +20,6 @@ def compare(v1: Contract, v2: Contract) -> dict: "modified-functions": list[Function], "tainted-functions": list[Function] } - """ order_vars1 = [v for v in v1.state_variables if not v.is_constant and not v.is_immutable] From f1947bb8e132cd4be512de010c1b3aa9d79f620c Mon Sep 17 00:00:00 2001 From: webthethird Date: Sun, 12 Mar 2023 17:29:44 -0500 Subject: [PATCH 033/193] Add additional upgradeability utils like `get_proxy_implementation_slot(proxy: Contract)` --- slither/utils/upgradeability.py | 105 ++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 64143a9eb..7a384726e 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -1,5 +1,16 @@ +from typing import Optional +from slither.analyses.data_dependency.data_dependency import get_dependencies from slither.core.declarations.contract import Contract from slither.core.declarations.function import Function +from slither.core.variables.variable import Variable +from slither.core.variables.state_variable import StateVariable +from slither.core.variables.local_variable import LocalVariable +from slither.core.expressions.identifier import Identifier +from slither.core.expressions.call_expression import CallExpression +from slither.core.expressions.assignment_operation import AssignmentOperation +from slither.core.cfg.node import Node, NodeType +from slither.slithir.operations import LowLevelCall +from slither.tools.read_storage.read_storage import SlotInfo, SlitherReadStorage # pylint: disable=too-many-locals @@ -120,3 +131,97 @@ def is_function_modified(f1: Function, f2: Function) -> bool: if ir != f1.nodes[i].irs[j]: return True return False + + +def get_proxy_implementation_slot(proxy: Contract) -> Optional[SlotInfo]: + available_functions = proxy.available_functions_as_dict() + + if not proxy.is_upgradeable_proxy or not available_functions["fallback()"]: + return None + + delegate: Optional[Variable] = find_delegate_in_fallback(proxy) + + if isinstance(delegate, LocalVariable): + dependencies = get_dependencies(delegate, proxy) + delegate = next(var for var in dependencies if isinstance(var, StateVariable)) + if isinstance(delegate, StateVariable): + if not delegate.is_constant and not delegate.is_immutable: + srs = SlitherReadStorage([proxy], 20) + return srs.get_storage_slot(delegate, proxy) + if delegate.is_constant and delegate.type.name == "bytes32": + return SlotInfo( + name=delegate.name, + type_string="address", + slot=int(delegate.expression.value, 16), + size=160, + offset=0, + ) + return None + + +def find_delegate_in_fallback(proxy: Contract) -> Optional[Variable]: + delegate: Optional[Variable] = None + fallback = proxy.available_functions_as_dict()["fallback()"] + for node in fallback.all_nodes(): + for ir in node.irs: + if isinstance(ir, LowLevelCall) and ir.function_name == "delegatecall": + delegate = ir.destination + if delegate is not None: + break + if ( + node.type == NodeType.ASSEMBLY + and isinstance(node.inline_asm, str) + and "delegatecall" in node.inline_asm + ): + delegate = extract_delegate_from_asm(proxy, node) + elif node.type == NodeType.EXPRESSION: + expression = node.expression + if isinstance(expression, AssignmentOperation): + expression = expression.expression_right + if ( + isinstance(expression, CallExpression) + and "delegatecall" in str(expression.called) + and len(expression.arguments) > 1 + ): + dest = expression.arguments[1] + if isinstance(dest, Identifier): + delegate = dest.value + return delegate + + +def extract_delegate_from_asm(contract: Contract, node: Node) -> Optional[Variable]: + asm_split = str(node.inline_asm).split("\n") + asm = next(line for line in asm_split if "delegatecall" in line) + params = asm.split("call(")[1].split(", ") + dest = params[1] + if dest.endswith(")"): + dest = params[2] + if dest.startswith("sload("): + dest = dest.replace(")", "(").split("(")[1] + for v in node.function.variables_read_or_written: + if v.name == dest: + if isinstance(v, LocalVariable) and v.expression is not None: + e = v.expression + if isinstance(e, Identifier) and isinstance(e.value, StateVariable): + v = e.value + # Fall through, return constant storage slot + if isinstance(v, StateVariable) and v.is_constant: + return v + if "_fallback_asm" in dest or "_slot" in dest: + dest = dest.split("_")[0] + return find_delegate_from_name(contract, dest, node.function) + + +def find_delegate_from_name( + contract: Contract, dest: str, parent_func: Function +) -> Optional[Variable]: + for sv in contract.state_variables: + if sv.name == dest: + return sv + for lv in parent_func.local_variables: + if lv.name == dest: + return lv + for pv in parent_func.parameters: + if pv.name == dest: + return pv + return None From 8181faeec539ca4b96d14713492953b14d49eb6b Mon Sep 17 00:00:00 2001 From: webthethird Date: Sun, 12 Mar 2023 18:14:42 -0500 Subject: [PATCH 034/193] Add docstrings --- slither/utils/upgradeability.py | 45 +++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 7a384726e..621e6e957 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -118,8 +118,8 @@ def is_function_modified(f1: Function, f2: Function) -> bool: f1: Original version of the function f2: New version of the function - Returns: True if the functions differ, otherwise False - + Returns: + True if the functions differ, otherwise False """ # If the function content hashes are the same, no need to investigate the function further if f1.source_mapping.content_hash == f2.source_mapping.content_hash: @@ -134,10 +134,14 @@ def is_function_modified(f1: Function, f2: Function) -> bool: def get_proxy_implementation_slot(proxy: Contract) -> Optional[SlotInfo]: - available_functions = proxy.available_functions_as_dict() + """ + Gets information about the storage slot where a proxy's implementation address is stored. + Args: + proxy: A Contract object (proxy.is_upgradeable_proxy should be true). - if not proxy.is_upgradeable_proxy or not available_functions["fallback()"]: - return None + Returns: + (`SlotInfo`) | None : A dictionary of the slot information. + """ delegate: Optional[Variable] = find_delegate_in_fallback(proxy) @@ -160,6 +164,15 @@ def get_proxy_implementation_slot(proxy: Contract) -> Optional[SlotInfo]: def find_delegate_in_fallback(proxy: Contract) -> Optional[Variable]: + """ + Searches a proxy's fallback function for a delegatecall, then extracts the Variable being passed in as the target. + Should typically be called by get_proxy_implementation_var(proxy). + Args: + proxy: A Contract object (should have a fallback function). + + Returns: + (`Variable`) | None : The variable being passed as the destination argument in a delegatecall in the fallback. + """ delegate: Optional[Variable] = None fallback = proxy.available_functions_as_dict()["fallback()"] for node in fallback.all_nodes(): @@ -190,6 +203,17 @@ def find_delegate_in_fallback(proxy: Contract) -> Optional[Variable]: def extract_delegate_from_asm(contract: Contract, node: Node) -> Optional[Variable]: + """ + Finds a Variable with a name matching the argument passed into a delegatecall, when all we have is an Assembly node + with a block of code as one long string. Usually only the case for solc versions < 0.6.0. + Should typically be called by find_delegate_in_fallback(proxy). + Args: + contract: The parent Contract. + node: The Assembly Node (i.e., node.type == NodeType.ASSEMBLY) + + Returns: + (`Variable`) | None : The variable being passed as the destination argument in a delegatecall in the fallback. + """ asm_split = str(node.inline_asm).split("\n") asm = next(line for line in asm_split if "delegatecall" in line) params = asm.split("call(")[1].split(", ") @@ -215,6 +239,17 @@ def extract_delegate_from_asm(contract: Contract, node: Node) -> Optional[Variab def find_delegate_from_name( contract: Contract, dest: str, parent_func: Function ) -> Optional[Variable]: + """ + Searches for a variable with a given name, starting with StateVariables declared in the contract, followed by + LocalVariables in the parent function, either declared in the function body or as parameters in the signature. + Args: + contract: The Contract object to search. + dest: The variable name to search for. + parent_func: The Function object to search. + + Returns: + (`Variable`) | None : The variable with the matching name, if found + """ for sv in contract.state_variables: if sv.name == dest: return sv From 4c571684415b818de518fae39ef96bc7ec6b4ab0 Mon Sep 17 00:00:00 2001 From: webthethird Date: Sun, 12 Mar 2023 18:15:57 -0500 Subject: [PATCH 035/193] Separate `get_proxy_implementation_var` out of `get_proxy_implementation_slot` since either one could be more useful. --- slither/utils/upgradeability.py | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 621e6e957..ed2e29ac1 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -143,11 +143,7 @@ def get_proxy_implementation_slot(proxy: Contract) -> Optional[SlotInfo]: (`SlotInfo`) | None : A dictionary of the slot information. """ - delegate: Optional[Variable] = find_delegate_in_fallback(proxy) - - if isinstance(delegate, LocalVariable): - dependencies = get_dependencies(delegate, proxy) - delegate = next(var for var in dependencies if isinstance(var, StateVariable)) + delegate = get_proxy_implementation_var(proxy) if isinstance(delegate, StateVariable): if not delegate.is_constant and not delegate.is_immutable: srs = SlitherReadStorage([proxy], 20) @@ -163,6 +159,30 @@ def get_proxy_implementation_slot(proxy: Contract) -> Optional[SlotInfo]: return None +def get_proxy_implementation_var(proxy: Contract) -> Optional[Variable]: + """ + Gets the Variable that stores a proxy's implementation address. Uses data dependency to trace any LocalVariable + that is passed into a delegatecall as the target address back to its data source, ideally a StateVariable. + Args: + proxy: A Contract object (proxy.is_upgradeable_proxy should be true). + + Returns: + (`Variable`) | None : The variable, ideally a StateVariable, which stores the proxy's implementation address. + """ + available_functions = proxy.available_functions_as_dict() + if not proxy.is_upgradeable_proxy or not available_functions["fallback()"]: + return None + + delegate = find_delegate_in_fallback(proxy) + if isinstance(delegate, LocalVariable): + dependencies = get_dependencies(delegate, proxy) + try: + delegate = next(var for var in dependencies if isinstance(var, StateVariable)) + except: + return delegate + return delegate + + def find_delegate_in_fallback(proxy: Contract) -> Optional[Variable]: """ Searches a proxy's fallback function for a delegatecall, then extracts the Variable being passed in as the target. From fc20b4362ff8fe59653c7da16fbbdcc56f1eda26 Mon Sep 17 00:00:00 2001 From: Benjamin Samuels <1222451+bsamuels453@users.noreply.github.com> Date: Wed, 22 Feb 2023 09:35:52 -0800 Subject: [PATCH 036/193] add abstract contract property --- slither/core/declarations/contract.py | 1 + slither/solc_parsing/declarations/contract.py | 3 +++ 2 files changed, 4 insertions(+) diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index 95b05aa6b..2b11d392d 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -85,6 +85,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods self._kind: Optional[str] = None self._is_interface: bool = False self._is_library: bool = False + self._is_abstract: bool = False self._signatures: Optional[List[str]] = None self._signatures_declared: Optional[List[str]] = None diff --git a/slither/solc_parsing/declarations/contract.py b/slither/solc_parsing/declarations/contract.py index e63dbe68f..35c45a70b 100644 --- a/slither/solc_parsing/declarations/contract.py +++ b/slither/solc_parsing/declarations/contract.py @@ -165,6 +165,9 @@ class ContractSolc(CallerContextExpression): self._contract.is_library = True self._contract.contract_kind = attributes["contractKind"] + if not self._contract.is_interface: + self._contract.is_abstract = not attributes["fullyImplemented"] + self._linearized_base_contracts = attributes["linearizedBaseContracts"] # self._contract.fullyImplemented = attributes["fullyImplemented"] From 94b42ee96fa20de72e23f282c244b5f4e169bc24 Mon Sep 17 00:00:00 2001 From: Benjamin Samuels <1222451+bsamuels453@users.noreply.github.com> Date: Mon, 6 Mar 2023 11:08:58 -0800 Subject: [PATCH 037/193] change prop name to is_fully_implemented --- slither/core/declarations/contract.py | 8 +++++++- slither/solc_parsing/declarations/contract.py | 4 +--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index 2b11d392d..dbd81890c 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -85,7 +85,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods self._kind: Optional[str] = None self._is_interface: bool = False self._is_library: bool = False - self._is_abstract: bool = False + self._is_fully_implemented: bool = False self._signatures: Optional[List[str]] = None self._signatures_declared: Optional[List[str]] = None @@ -192,6 +192,12 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods @comments.setter def comments(self, comments: str): self._comments = comments + def is_fully_implemented(self) -> bool: + return self._is_fully_implemented + + @is_fully_implemented.setter + def is_fully_implemented(self, is_fully_implemented: bool): + self._is_fully_implemented = is_fully_implemented # endregion ################################################################################### diff --git a/slither/solc_parsing/declarations/contract.py b/slither/solc_parsing/declarations/contract.py index 35c45a70b..8ee755fa1 100644 --- a/slither/solc_parsing/declarations/contract.py +++ b/slither/solc_parsing/declarations/contract.py @@ -164,9 +164,7 @@ class ContractSolc(CallerContextExpression): elif attributes["contractKind"] == "library": self._contract.is_library = True self._contract.contract_kind = attributes["contractKind"] - - if not self._contract.is_interface: - self._contract.is_abstract = not attributes["fullyImplemented"] + self._contract.is_fully_implemented = attributes["fullyImplemented"] self._linearized_base_contracts = attributes["linearizedBaseContracts"] # self._contract.fullyImplemented = attributes["fullyImplemented"] From c08cbee3ecef9925b0b923aacc5d1e83afc69619 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Fri, 10 Mar 2023 11:46:18 +0100 Subject: [PATCH 038/193] Add tests --- tests/function_features/abstract.sol | 5 +++++ tests/function_features/implicit_abstract.sol | 5 +++++ tests/test_features.py | 15 +++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 tests/function_features/abstract.sol create mode 100644 tests/function_features/implicit_abstract.sol diff --git a/tests/function_features/abstract.sol b/tests/function_features/abstract.sol new file mode 100644 index 000000000..b29f683c4 --- /dev/null +++ b/tests/function_features/abstract.sol @@ -0,0 +1,5 @@ +pragma solidity ^0.8.0; + +abstract contract ExplicitAbstract{ + function f() virtual public; +} diff --git a/tests/function_features/implicit_abstract.sol b/tests/function_features/implicit_abstract.sol new file mode 100644 index 000000000..c46ccd821 --- /dev/null +++ b/tests/function_features/implicit_abstract.sol @@ -0,0 +1,5 @@ +pragma solidity ^0.5.0; + +contract ImplicitAbstract{ + function f() public; +} \ No newline at end of file diff --git a/tests/test_features.py b/tests/test_features.py index 68a21a884..20393df38 100644 --- a/tests/test_features.py +++ b/tests/test_features.py @@ -202,3 +202,18 @@ def test_using_for_global_collision() -> None: compilation = CryticCompile(standard_json) sl = Slither(compilation) _run_all_detectors(sl) + + +def test_abstract_contract() -> None: + solc_select.switch_global_version("0.8.0", always_install=True) + slither = Slither("./tests/function_features/abstract.sol") + assert not slither.contracts[0].is_fully_implemented + + solc_select.switch_global_version("0.5.0", always_install=True) + slither = Slither("./tests/function_features/implicit_abstract.sol") + assert not slither.contracts[0].is_fully_implemented + + slither = Slither( + "./tests/function_features/implicit_abstract.sol", solc_force_legacy_json=True + ) + assert not slither.contracts[0].is_fully_implemented From 5a37d308bd82f348d820c37e870abc22d7160454 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 13 Mar 2023 13:35:51 -0500 Subject: [PATCH 039/193] fmt --- slither/core/declarations/contract.py | 1 + tests/test_features.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index dbd81890c..51363b9fc 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -192,6 +192,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods @comments.setter def comments(self, comments: str): self._comments = comments + def is_fully_implemented(self) -> bool: return self._is_fully_implemented diff --git a/tests/test_features.py b/tests/test_features.py index 20393df38..d93a4ca2f 100644 --- a/tests/test_features.py +++ b/tests/test_features.py @@ -210,7 +210,7 @@ def test_abstract_contract() -> None: assert not slither.contracts[0].is_fully_implemented solc_select.switch_global_version("0.5.0", always_install=True) - slither = Slither("./tests/function_features/implicit_abstract.sol") + slither = Slither("./tests/function_features/abstract.sol") assert not slither.contracts[0].is_fully_implemented slither = Slither( From dc28a1efacec296976a9fc9ac6fee3281eb58fd0 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 13 Mar 2023 13:44:27 -0500 Subject: [PATCH 040/193] fix merge mistake --- slither/core/declarations/contract.py | 1 + tests/test_features.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index 51363b9fc..b6a0b3d24 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -193,6 +193,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods def comments(self, comments: str): self._comments = comments + @property def is_fully_implemented(self) -> bool: return self._is_fully_implemented diff --git a/tests/test_features.py b/tests/test_features.py index d93a4ca2f..20393df38 100644 --- a/tests/test_features.py +++ b/tests/test_features.py @@ -210,7 +210,7 @@ def test_abstract_contract() -> None: assert not slither.contracts[0].is_fully_implemented solc_select.switch_global_version("0.5.0", always_install=True) - slither = Slither("./tests/function_features/abstract.sol") + slither = Slither("./tests/function_features/implicit_abstract.sol") assert not slither.contracts[0].is_fully_implemented slither = Slither( From 9e79ec6e16c9ebcf5986c20f53c203368a30cd0a Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 13 Mar 2023 13:55:32 -0500 Subject: [PATCH 041/193] select solc version for test_ternary_conversions --- tests/slithir/test_ternary_expressions.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/slithir/test_ternary_expressions.py b/tests/slithir/test_ternary_expressions.py index 17cac6b2f..384a4677d 100644 --- a/tests/slithir/test_ternary_expressions.py +++ b/tests/slithir/test_ternary_expressions.py @@ -6,6 +6,7 @@ from slither.core.expressions import AssignmentOperation, TupleExpression # pylint: disable=too-many-nested-blocks def test_ternary_conversions() -> None: """This tests that true and false sons define the same number of variables that the father node declares""" + solc_select.switch_global_version("0.8.0", always_install=True) slither = Slither("./tests/slithir/ternary_expressions.sol") for contract in slither.contracts: for function in contract.functions: From ba6ef4584747c496313a47830f9577d10290ca88 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 13 Mar 2023 13:58:01 -0500 Subject: [PATCH 042/193] add import --- tests/slithir/test_ternary_expressions.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/slithir/test_ternary_expressions.py b/tests/slithir/test_ternary_expressions.py index 384a4677d..a1f00eb4f 100644 --- a/tests/slithir/test_ternary_expressions.py +++ b/tests/slithir/test_ternary_expressions.py @@ -1,3 +1,4 @@ +from solc_select import solc_select from slither import Slither from slither.core.cfg.node import NodeType from slither.slithir.operations import Assignment From 0131f5b08fe0ba7efae2c708625cd23924a83275 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Tue, 14 Mar 2023 10:17:31 -0500 Subject: [PATCH 043/193] add skipif to test that requires hardhat --- tests/test_features.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/test_features.py b/tests/test_features.py index 68a21a884..e14804b43 100644 --- a/tests/test_features.py +++ b/tests/test_features.py @@ -1,5 +1,7 @@ import inspect +import shutil from pathlib import Path +import pytest from crytic_compile import CryticCompile from crytic_compile.platform.solc_standard_json import SolcStandardJson @@ -23,6 +25,11 @@ def _run_all_detectors(slither: Slither) -> None: slither.run_detectors() +hardhat_available = shutil.which("hardhat") is not None + +@pytest.mark.skipif( + not hardhat_available, reason="requires Hardhat and project setup" +) def test_node() -> None: # hardhat must have been installed in tests/test_node_modules # For the CI its done through the github action config From 9f56a91f73573359d79f8bc86e1da40fa7d64127 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Tue, 14 Mar 2023 10:21:44 -0500 Subject: [PATCH 044/193] mark currently failing IR tests as xfail --- tests/test_ssa_generation.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/test_ssa_generation.py b/tests/test_ssa_generation.py index f002ec4e1..1ad00c0d6 100644 --- a/tests/test_ssa_generation.py +++ b/tests/test_ssa_generation.py @@ -374,7 +374,7 @@ def test_basic_loop_phi(): verify_properties_hold(contract) -@pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") def test_phi_propagation_loop(): contract = """ pragma solidity ^0.8.11; @@ -395,7 +395,7 @@ def test_phi_propagation_loop(): verify_properties_hold(contract) -@pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") def test_free_function_properties(): contract = """ pragma solidity ^0.8.11; @@ -459,7 +459,7 @@ def test_ssa_inter_transactional(): assert assign2.lvalue in phi.rvalues -@pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") def test_ssa_phi_callbacks(): source = """ pragma solidity ^0.8.11; @@ -518,7 +518,7 @@ def test_ssa_phi_callbacks(): assert len(after_call_phi.rvalues) == 2 -@pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") def test_storage_refers_to(): """Test the storage aspects of the SSA IR @@ -585,7 +585,7 @@ def test_storage_refers_to(): assert phinodes[1].lvalue in entryphi[0].rvalues or entryphi[1].rvalues -@pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") @pytest.mark.skipif( not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" ) @@ -622,7 +622,7 @@ def test_initial_version_exists_for_locals(): assert a_0.non_ssa_version == a_1.non_ssa_version -@pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") @pytest.mark.skipif( not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" ) @@ -662,7 +662,7 @@ def test_initial_version_exists_for_state_variables(): assert len(get_ssa_of_type(f, Phi)) == 0 -@pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") def test_initial_version_exists_for_state_variables_function_assign(): """ In solidity you can write statements such as @@ -759,7 +759,7 @@ def test_shadow_local(): assert all(map(lambda x: x.lvalue.index == 1, get_ssa_of_type(f, Assignment))) -@pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") def test_multiple_named_args_returns(): """Verifies that named arguments and return values have correct versions @@ -788,7 +788,7 @@ def test_multiple_named_args_returns(): ) -@pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.") +@pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.", strict=True) def test_memory_array(): src = """ contract MemArray { @@ -854,7 +854,7 @@ def test_memory_array(): assert len(phi_entry_b.rvalues) == len(b_args) + 1 -@pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.") +@pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.", strict=True) def test_storage_array(): src = """ contract StorageArray { @@ -909,7 +909,7 @@ def test_storage_array(): assert len(phi_entry_b.rvalues) == 3 # See comment in b above -@pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") def test_issue_468(): """ Ensure issue 468 is corrected as per @@ -963,7 +963,7 @@ def test_issue_468(): assert phi_endif.lvalue in phi_entry.rvalues -@pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") def test_issue_434(): source = """ contract Contract { @@ -1017,7 +1017,7 @@ def test_issue_434(): assert aftercall_phi.lvalue in (add_f.variable_left, add_f.variable_right) -@pytest.mark.skip(reason="Fails in current slither version. Fix in #1102.") +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") def test_issue_473(): source = """ contract Contract { From 5a25c81a52e108f90ab28ac56445aa40069dfb8a Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 14 Mar 2023 10:30:20 -0500 Subject: [PATCH 045/193] Locally import Contract to resolve pylint in `Function.interface_signature_str` --- slither/core/declarations/function.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/slither/core/declarations/function.py b/slither/core/declarations/function.py index 65e19e013..4b4bbf82c 100644 --- a/slither/core/declarations/function.py +++ b/slither/core/declarations/function.py @@ -1011,8 +1011,10 @@ class Function(SourceMapping, metaclass=ABCMeta): # pylint: disable=too-many-pu Return 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 """ + from slither.core.declarations.contract import Contract + if self._interface_signature_str is None: - name, parameters, returnVars = self.signature + name, parameters, return_vars = self.signature visibility = self.visibility if ( visibility in ["private", "internal"] @@ -1033,7 +1035,7 @@ class Function(SourceMapping, metaclass=ABCMeta): # pylint: disable=too-many-pu self._interface_signature_str = ( name + "(" + ",".join(parameters) + ") external" + payable + pure + view ) - if len(returnVars) > 0: + if len(return_vars) > 0: self._interface_signature_str += " returns (" + ",".join(returns) + ")" return self._interface_signature_str From b16bb7079f96d299b03ec7436c76fa5f3e960820 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Tue, 14 Mar 2023 10:33:04 -0500 Subject: [PATCH 046/193] remove xfail from passing test, test_initial_version_exists_for_locals --- tests/test_features.py | 5 ++--- tests/test_ssa_generation.py | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/test_features.py b/tests/test_features.py index e14804b43..aa0e9bd3c 100644 --- a/tests/test_features.py +++ b/tests/test_features.py @@ -27,9 +27,8 @@ def _run_all_detectors(slither: Slither) -> None: hardhat_available = shutil.which("hardhat") is not None -@pytest.mark.skipif( - not hardhat_available, reason="requires Hardhat and project setup" -) + +@pytest.mark.skipif(not hardhat_available, reason="requires Hardhat and project setup") def test_node() -> None: # hardhat must have been installed in tests/test_node_modules # For the CI its done through the github action config diff --git a/tests/test_ssa_generation.py b/tests/test_ssa_generation.py index 1ad00c0d6..14b690dbd 100644 --- a/tests/test_ssa_generation.py +++ b/tests/test_ssa_generation.py @@ -585,7 +585,6 @@ def test_storage_refers_to(): assert phinodes[1].lvalue in entryphi[0].rvalues or entryphi[1].rvalues -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") @pytest.mark.skipif( not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" ) From 0df2c23eeed659c0a2aa9bd057ac5a93f90086ed Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 14 Mar 2023 10:43:07 -0500 Subject: [PATCH 047/193] Include events in `Contract.generate_interface` --- slither/core/declarations/contract.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index 35f31ab07..fc6fa0824 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -955,6 +955,9 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods def generate_interface(self) -> str: interface = f"interface I{self.name} {{\n" + for event in self.events: + name, args = event.signature + interface += f" event {name}({','.join(args)});\n" for struct in self.structures: if isinstance(struct.interface_def_str(), str): interface += struct.interface_def_str() From 09128abf11fb223d98ea33a6150d3c81fbf11fa2 Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 14 Mar 2023 12:27:28 -0500 Subject: [PATCH 048/193] pylint --- slither/utils/upgradeability.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index ed2e29ac1..ce1c43937 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -178,7 +178,7 @@ def get_proxy_implementation_var(proxy: Contract) -> Optional[Variable]: dependencies = get_dependencies(delegate, proxy) try: delegate = next(var for var in dependencies if isinstance(var, StateVariable)) - except: + except StopIteration: return delegate return delegate From 3655708367f1d3fba86dcab3f0714cad59b06f94 Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 14 Mar 2023 14:32:34 -0500 Subject: [PATCH 049/193] Redesign `utils.upgradeability.is_function_modified` Due to the non-deterministic order of `Function.all_nodes()` --- slither/utils/upgradeability.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index ce1c43937..06918981d 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -11,6 +11,7 @@ from slither.core.expressions.assignment_operation import AssignmentOperation from slither.core.cfg.node import Node, NodeType from slither.slithir.operations import LowLevelCall from slither.tools.read_storage.read_storage import SlotInfo, SlitherReadStorage +from slither.tools.similarity.encode import encode_ir # pylint: disable=too-many-locals @@ -126,9 +127,17 @@ def is_function_modified(f1: Function, f2: Function) -> bool: return False # If the hashes differ, it is possible a change in a name or in a comment could be the only difference # So we need to resort to walking through the CFG and comparing the IR operations - for i, node in enumerate(f2.nodes): - for j, ir in enumerate(node.irs): - if ir != f1.nodes[i].irs[j]: + queue_f1 = [f1.entry_point] + queue_f2 = [f2.entry_point] + visited = [] + while len(queue_f1) > 0 and len(queue_f2) > 0: + node_f1 = queue_f1.pop(0) + node_f2 = queue_f2.pop(0) + visited.extend([node_f1, node_f2]) + queue_f1.extend(son for son in node_f1.sons if son not in visited) + queue_f2.extend(son for son in node_f2.sons if son not in visited) + for i, ir in enumerate(node_f1.irs): + if encode_ir(ir) != encode_ir(node_f2.irs[i]): return True return False From c195a15da09b8c3a552e9e159ad168f4cbf62c52 Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 14 Mar 2023 15:06:51 -0500 Subject: [PATCH 050/193] Handle `sload` from slot in `delegatecall` args i.e., `delegatecall(gas(), sload(0x3608...), 0, calldatasize(), 0, 0)` where the slot is not defined as a bytes32 constant but rather is hardcoded in the fallback. --- slither/utils/upgradeability.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 06918981d..1c4da1b5f 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -5,9 +5,11 @@ from slither.core.declarations.function import Function from slither.core.variables.variable import Variable from slither.core.variables.state_variable import StateVariable from slither.core.variables.local_variable import LocalVariable +from slither.core.expressions.literal import Literal from slither.core.expressions.identifier import Identifier from slither.core.expressions.call_expression import CallExpression from slither.core.expressions.assignment_operation import AssignmentOperation +from slither.core.solidity_types.elementary_type import ElementaryType from slither.core.cfg.node import Node, NodeType from slither.slithir.operations import LowLevelCall from slither.tools.read_storage.read_storage import SlotInfo, SlitherReadStorage @@ -226,8 +228,18 @@ def find_delegate_in_fallback(proxy: Contract) -> Optional[Variable]: and len(expression.arguments) > 1 ): dest = expression.arguments[1] + if isinstance(dest, CallExpression) and "sload" in str(dest.called): + dest = dest.arguments[0] if isinstance(dest, Identifier): delegate = dest.value + break + if isinstance(dest, Literal) and len(dest.value) == 66: + delegate = StateVariable() + delegate.is_constant = True + delegate.expression = dest + delegate.name = dest.value + delegate.type = ElementaryType("bytes32") + break return delegate From c507b3b99f8adbe5c504fa09f26d152911dc918c Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 14 Mar 2023 16:14:39 -0500 Subject: [PATCH 051/193] Move code generation to a new util Rather than on the core objects. --- slither/core/declarations/contract.py | 19 ------ slither/core/declarations/function.py | 35 ---------- slither/core/declarations/structure.py | 6 -- slither/utils/code_generation.py | 94 ++++++++++++++++++++++++++ 4 files changed, 94 insertions(+), 60 deletions(-) create mode 100644 slither/utils/code_generation.py diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index fc6fa0824..eb2ac9a2e 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -953,25 +953,6 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods """ return all((not f.is_implemented) for f in self.functions) - def generate_interface(self) -> str: - interface = f"interface I{self.name} {{\n" - for event in self.events: - name, args = event.signature - interface += f" event {name}({','.join(args)});\n" - for struct in self.structures: - if isinstance(struct.interface_def_str(), str): - interface += struct.interface_def_str() - for var in self.state_variables_entry_points: - interface += ( - f" function {var.signature_str.replace('returns', 'external returns ')};\n" - ) - for func in self.functions_entry_points: - if func.is_constructor or func.is_fallback or func.is_receive: - continue - interface += f" function {func.interface_signature_str};\n" - interface += "}\n\n" - return interface - # endregion ################################################################################### ################################################################################### diff --git a/slither/core/declarations/function.py b/slither/core/declarations/function.py index 4b4bbf82c..ad765bfc0 100644 --- a/slither/core/declarations/function.py +++ b/slither/core/declarations/function.py @@ -1004,41 +1004,6 @@ class Function(SourceMapping, metaclass=ABCMeta): # pylint: disable=too-many-pu ) return self._signature_str - @property - def interface_signature_str(self) -> Optional[str]: - """ - str: func_name(type1,type2) external {payable/view/pure} returns (type3) - Return 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 - """ - from slither.core.declarations.contract import Contract - - if self._interface_signature_str is None: - name, parameters, return_vars = self.signature - visibility = self.visibility - if ( - visibility in ["private", "internal"] - or self.is_constructor - or self.is_fallback - or self.is_receive - ): - return None - view = " view" if self.view else "" - pure = " pure" if self.pure else "" - payable = " payable" if self.payable else "" - returns = [ - "address" - if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, Contract) - else str(ret.type) - for ret in self.returns - ] - self._interface_signature_str = ( - name + "(" + ",".join(parameters) + ") external" + payable + pure + view - ) - if len(return_vars) > 0: - self._interface_signature_str += " returns (" + ",".join(returns) + ")" - return self._interface_signature_str - # endregion ################################################################################### ################################################################################### diff --git a/slither/core/declarations/structure.py b/slither/core/declarations/structure.py index 2800f809c..8f6d8c50a 100644 --- a/slither/core/declarations/structure.py +++ b/slither/core/declarations/structure.py @@ -49,11 +49,5 @@ class Structure(SourceMapping): ret.append(self._elems[e]) return ret - def interface_def_str(self) -> str: - definition = f" struct {self.name} {{\n" - for elem in self.elems_ordered: - definition += f" {elem.type} {elem.name};\n" - definition += " }\n" - def __str__(self) -> str: return self.name diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py new file mode 100644 index 000000000..7f5c88b2f --- /dev/null +++ b/slither/utils/code_generation.py @@ -0,0 +1,94 @@ +# Functions for generating Solidity code +from typing import TYPE_CHECKING, List + +if TYPE_CHECKING: + from slither.core.declarations import Function, Contract, Structure + + +def generate_interface(contract: "Contract") -> str: + """ + Generates code for a Solidity interface to the contract. + Args: + contract: A Contract object + + 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 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 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" + ) + 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 += "}\n\n" + return interface + + +def generate_interface_function_signature(func: "Function") -> Optional[str]: + """ + Generates a string of the form: + func_name(type1,type2) external {payable/view/pure} returns (type3) + + Args: + func: A Function object + + 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. + """ + from slither.core.declarations.contract import Contract + + name, parameters, return_vars = func.signature + visibility = func.visibility + if ( + visibility in ["private", "internal"] + or func.is_constructor + or func.is_fallback + or func.is_receive + ): + return None + view = " view" if func.view else "" + pure = " pure" if func.pure else "" + payable = " payable" if func.payable else "" + returns = [ + "address" + if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, Contract) + else str(ret.type) + for ret in func.returns + ] + _interface_signature_str = ( + name + "(" + ",".join(parameters) + ") external" + payable + pure + view + ) + if len(return_vars) > 0: + _interface_signature_str += " returns (" + ",".join(returns) + ")" + return _interface_signature_str + + +def generate_struct_interface_str(struct: "Structure") -> str: + """ + Generates code for a structure declaration in an interface of the form: + struct struct_name { + elem1_type elem1_name; + elem2_type elem2_name; + ... ... + } + Args: + struct: A Structure object + + Returns: + The structure declaration code as a string. + """ + definition = f" struct {struct.name} {{\n" + for elem in struct.elems_ordered: + definition += f" {elem.type} {elem.name};\n" + definition += " }\n" + return definition From 67ece635f0f1248f88c89219308db4b72f855754 Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 14 Mar 2023 16:16:06 -0500 Subject: [PATCH 052/193] Revert unnecessary imports --- slither/core/declarations/function.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/slither/core/declarations/function.py b/slither/core/declarations/function.py index ad765bfc0..a4624feec 100644 --- a/slither/core/declarations/function.py +++ b/slither/core/declarations/function.py @@ -21,7 +21,6 @@ from slither.core.expressions import ( UnaryOperation, ) from slither.core.solidity_types.type import Type -from slither.core.solidity_types.user_defined_type import UserDefinedType from slither.core.source_mapping.source_mapping import SourceMapping from slither.core.variables.local_variable import LocalVariable from slither.core.variables.state_variable import StateVariable @@ -211,7 +210,6 @@ class Function(SourceMapping, metaclass=ABCMeta): # pylint: disable=too-many-pu self._signature: Optional[Tuple[str, List[str], List[str]]] = None self._solidity_signature: Optional[str] = None self._signature_str: Optional[str] = None - self._interface_signature_str: Optional[str] = None self._canonical_name: Optional[str] = None self._is_protected: Optional[bool] = None From 6284e0ac44e6740acab7c9e92caf3e70b426e196 Mon Sep 17 00:00:00 2001 From: webthethird Date: Wed, 15 Mar 2023 09:52:44 -0500 Subject: [PATCH 053/193] Pylint and black --- slither/utils/code_generation.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 7f5c88b2f..fd0d5c161 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -1,8 +1,11 @@ # Functions for generating Solidity code -from typing import TYPE_CHECKING, List +from typing import TYPE_CHECKING, Optional + +from slither.core.declarations.contract import Contract +from slither.core.solidity_types.user_defined_type import UserDefinedType if TYPE_CHECKING: - from slither.core.declarations import Function, Contract, Structure + from slither.core.declarations import Function, Structure def generate_interface(contract: "Contract") -> str: @@ -22,9 +25,7 @@ def generate_interface(contract: "Contract") -> 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 += f" function {var.signature_str.replace('returns', 'external returns ')};\n" for func in contract.functions_entry_points: if func.is_constructor or func.is_fallback or func.is_receive: continue @@ -45,7 +46,6 @@ def generate_interface_function_signature(func: "Function") -> Optional[str]: 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. """ - from slither.core.declarations.contract import Contract name, parameters, return_vars = func.signature visibility = func.visibility From 631f124d3232c1f2e6efb5be8ceec4184223433d Mon Sep 17 00:00:00 2001 From: webthethird Date: Wed, 15 Mar 2023 15:59:35 -0500 Subject: [PATCH 054/193] Include custom errors in `generate_interface` --- 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 fd0d5c161..c0ece478c 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -22,6 +22,8 @@ def generate_interface(contract: "Contract") -> str: for event in contract.events: name, args = event.signature interface += f" event {name}({','.join(args)});\n" + for error in contract.custom_errors: + interface += f" error {error.solidity_signature};\n" for struct in contract.structures: interface += generate_struct_interface_str(struct) for var in contract.state_variables_entry_points: From 547a8047f0d1b16ba02e72ef4076d666b18f9533 Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Wed, 15 Mar 2023 21:43:37 -0400 Subject: [PATCH 055/193] add bug revealing test for #1748 --- tests/test_ssa_generation.py | 40 ++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/tests/test_ssa_generation.py b/tests/test_ssa_generation.py index f002ec4e1..00d2f23fd 100644 --- a/tests/test_ssa_generation.py +++ b/tests/test_ssa_generation.py @@ -27,6 +27,7 @@ from slither.slithir.operations import ( BinaryType, InternalCall, Index, + InitArray, ) from slither.slithir.utils.ssa import is_used_later from slither.slithir.variables import ( @@ -796,20 +797,20 @@ def test_memory_array(): uint val1; uint val2; } - + function test_array() internal { A[] memory a= new A[](4); // Create REF_0 -> a_1[2] accept_array_entry(a[2]); - + // Create REF_1 -> a_1[3] accept_array_entry(a[3]); - + A memory alocal; accept_array_entry(alocal); - + } - + // val_1 = ϕ(val_0, REF_0, REF_1, alocal_1) // val_0 is an unknown external value function accept_array_entry(A memory val) public returns (uint) { @@ -818,9 +819,9 @@ def test_memory_array(): // Create REF_2 -> val_1.val1 return b(val.val1); } - + function b(uint arg) public returns (uint){ - // arg_1 = ϕ(arg_0, zero_1, REF_2) + // arg_1 = ϕ(arg_0, zero_1, REF_2) return arg + 1; } }""" @@ -862,12 +863,12 @@ def test_storage_array(): uint val1; uint val2; } - + // NOTE(hbrodin): a is never written, should only become a_0. Same for astorage (astorage_0). Phi-nodes at entry - // should only add new versions of a state variable if it is actually written. + // should only add new versions of a state variable if it is actually written. A[] a; A astorage; - + function test_array() internal { accept_array_entry(a[2]); accept_array_entry(a[3]); @@ -877,7 +878,7 @@ def test_storage_array(): function accept_array_entry(A storage val) internal returns (uint) { // val is either a[2], a[3] or astorage_0. Ideally this could be identified. uint five = 5; - + // NOTE(hbrodin): If the following line is enabled, there would ideally be a phi-node representing writes // to either a or astorage. //val.val2 = 4; @@ -1059,3 +1060,20 @@ def test_issue_473(): # return is for second phi assert len(return_value.values) == 1 assert second_phi.lvalue in return_value.values + + +def test_issue_1748(): + source = """ + contract Contract { + uint[] arr; + function foo(uint i) public { + arr = [1]; + } + } + """ + 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, InitArray) From 6eab0b27973590539663076a26a1b436c47392eb Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Wed, 15 Mar 2023 21:43:49 -0400 Subject: [PATCH 056/193] fix #1748 --- slither/visitors/slithir/expression_to_slithir.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/slither/visitors/slithir/expression_to_slithir.py b/slither/visitors/slithir/expression_to_slithir.py index c150ee20b..3a975939a 100644 --- a/slither/visitors/slithir/expression_to_slithir.py +++ b/slither/visitors/slithir/expression_to_slithir.py @@ -220,6 +220,12 @@ class ExpressionToSlithIR(ExpressionVisitor): operation.set_expression(expression) self._result.append(operation) set_val(expression, left) + elif isinstance(left.type, ArrayType): + # Special case for init of array, when the right has only one element + operation = InitArray([right], left) + operation.set_expression(expression) + self._result.append(operation) + set_val(expression, left) else: operation = convert_assignment( left, right, expression.type, expression.expression_return_type From 317af452adf4b583c6a5af27b14ed72430455a20 Mon Sep 17 00:00:00 2001 From: webthethird Date: Thu, 16 Mar 2023 14:24:38 -0500 Subject: [PATCH 057/193] Minor bug fixes --- slither/utils/upgradeability.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 1c4da1b5f..d52bb6514 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -51,7 +51,7 @@ def compare(v1: Contract, v2: Contract) -> dict: } # Since this is not a detector, include any missing variables in the v2 contract - if len(order_vars2) <= len(order_vars1): + if len(order_vars2) < len(order_vars1): for variable in order_vars1: if variable.name not in [v.name for v in order_vars2]: results["missing-vars-in-v2"].append(variable) @@ -99,11 +99,11 @@ def compare(v1: Contract, v2: Contract) -> dict: if len(modified_calls) > 0 or len(tainted_vars) > 0: results["tainted-functions"].append(function) - # Find all new or tainted variables, i.e., variables that are read or written by a new/modified function - for idx, var in enumerate(order_vars2): + # Find all new or tainted variables, i.e., variables that are read or written by a new/modified/tainted function + for _, var in enumerate(order_vars2): read_by = v2.get_functions_reading_from_variable(var) written_by = v2.get_functions_writing_to_variable(var) - if len(order_vars1) <= idx: + if v1.get_state_variable_from_name(var.name) is None: results["new-variables"].append(var) elif any(func in read_by or func in written_by for func in new_modified_functions): results["tainted-variables"].append(var) From 9f4be7d7fbfcc429e9e4ed6d9b069216958f4675 Mon Sep 17 00:00:00 2001 From: webthethird Date: Thu, 16 Mar 2023 14:24:57 -0500 Subject: [PATCH 058/193] Include variables touched by tainted functions --- slither/utils/upgradeability.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index d52bb6514..f69b336f5 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -105,7 +105,10 @@ def compare(v1: Contract, v2: Contract) -> dict: written_by = v2.get_functions_writing_to_variable(var) if v1.get_state_variable_from_name(var.name) is None: results["new-variables"].append(var) - elif any(func in read_by or func in written_by for func in new_modified_functions): + elif any( + func in read_by or func in written_by + for func in new_modified_functions + results["tainted-functions"] + ): results["tainted-variables"].append(var) return results From 6ff59f9c9a8a7edc4ff960185cb30d5397dabed9 Mon Sep 17 00:00:00 2001 From: webthethird Date: Thu, 16 Mar 2023 14:27:12 -0500 Subject: [PATCH 059/193] Copy/paste and tweak `encode_ir` to compare ir originally from slither.tools.simil.encode Needed to tweak how binary operations are encoded --- slither/utils/upgradeability.py | 173 ++++++++++++++++++++++++++++++-- 1 file changed, 165 insertions(+), 8 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index f69b336f5..3d4c64c04 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -1,19 +1,62 @@ from typing import Optional +from slither.core.declarations import ( + Contract, + Structure, + Enum, + SolidityVariableComposed, + SolidityVariable, + Function, +) +from slither.core.solidity_types import ( + ElementaryType, + ArrayType, + MappingType, + UserDefinedType, +) +from slither.core.variables.local_variable import LocalVariable +from slither.core.variables.local_variable_init_from_tuple import LocalVariableInitFromTuple +from slither.core.variables.state_variable import StateVariable from slither.analyses.data_dependency.data_dependency import get_dependencies -from slither.core.declarations.contract import Contract -from slither.core.declarations.function import Function from slither.core.variables.variable import Variable -from slither.core.variables.state_variable import StateVariable -from slither.core.variables.local_variable import LocalVariable from slither.core.expressions.literal import Literal from slither.core.expressions.identifier import Identifier from slither.core.expressions.call_expression import CallExpression from slither.core.expressions.assignment_operation import AssignmentOperation -from slither.core.solidity_types.elementary_type import ElementaryType from slither.core.cfg.node import Node, NodeType -from slither.slithir.operations import LowLevelCall +from slither.slithir.operations import ( + Assignment, + Index, + Member, + Length, + Binary, + Unary, + Condition, + NewArray, + NewStructure, + NewContract, + NewElementaryType, + SolidityCall, + Delete, + EventCall, + LibraryCall, + InternalDynamicCall, + HighLevelCall, + LowLevelCall, + TypeConversion, + Return, + Transfer, + Send, + Unpack, + InitArray, + InternalCall, +) +from slither.slithir.variables import ( + TemporaryVariable, + TupleVariable, + Constant, + ReferenceVariable, +) from slither.tools.read_storage.read_storage import SlotInfo, SlitherReadStorage -from slither.tools.similarity.encode import encode_ir # pylint: disable=too-many-locals @@ -142,11 +185,125 @@ def is_function_modified(f1: Function, f2: Function) -> bool: queue_f1.extend(son for son in node_f1.sons if son not in visited) queue_f2.extend(son for son in node_f2.sons if son not in visited) for i, ir in enumerate(node_f1.irs): - if encode_ir(ir) != encode_ir(node_f2.irs[i]): + if encode_ir_for_compare(ir) != encode_ir_for_compare(node_f2.irs[i]): return True return False +def ntype(_type): # pylint: disable=too-many-branches + if isinstance(_type, ElementaryType): + _type = str(_type) + elif isinstance(_type, ArrayType): + if isinstance(_type.type, ElementaryType): + _type = str(_type) + else: + _type = "user_defined_array" + elif isinstance(_type, Structure): + _type = str(_type) + elif isinstance(_type, Enum): + _type = str(_type) + elif isinstance(_type, MappingType): + _type = str(_type) + elif isinstance(_type, UserDefinedType): + _type = "user_defined_type" # TODO: this could be Contract, Enum or Struct + else: + _type = str(_type) + + _type = _type.replace(" memory", "") + _type = _type.replace(" storage ref", "") + + if "struct" in _type: + return "struct" + if "enum" in _type: + return "enum" + if "tuple" in _type: + return "tuple" + if "contract" in _type: + return "contract" + if "mapping" in _type: + return "mapping" + return _type.replace(" ", "_") + + +def encode_ir_for_compare(ir) -> str: # pylint: disable=too-many-branches + # operations + if isinstance(ir, Assignment): + return f"({encode_ir_for_compare(ir.lvalue)}):=({encode_ir_for_compare(ir.rvalue)})" + if isinstance(ir, Index): + return f"index({ntype(ir.index_type)})" + if isinstance(ir, Member): + return "member" # .format(ntype(ir._type)) + if isinstance(ir, Length): + return "length" + if isinstance(ir, Binary): + return f"binary({str(ir.variable_left)}{str(ir.type)}{str(ir.variable_right)})" + if isinstance(ir, Unary): + return f"unary({str(ir.type)})" + if isinstance(ir, Condition): + return f"condition({encode_ir_for_compare(ir.value)})" + if isinstance(ir, NewStructure): + return "new_structure" + if isinstance(ir, NewContract): + return "new_contract" + if isinstance(ir, NewArray): + return f"new_array({ntype(ir.array_type)})" + if isinstance(ir, NewElementaryType): + return f"new_elementary({ntype(ir.type)})" + if isinstance(ir, Delete): + return f"delete({encode_ir_for_compare(ir.lvalue)},{encode_ir_for_compare(ir.variable)})" + if isinstance(ir, SolidityCall): + return f"solidity_call({ir.function.full_name})" + if isinstance(ir, InternalCall): + return f"internal_call({ntype(ir.type_call)})" + if isinstance(ir, EventCall): # is this useful? + return "event" + if isinstance(ir, LibraryCall): + return "library_call" + if isinstance(ir, InternalDynamicCall): + return "internal_dynamic_call" + if isinstance(ir, HighLevelCall): # TODO: improve + return "high_level_call" + if isinstance(ir, LowLevelCall): # TODO: improve + return "low_level_call" + if isinstance(ir, TypeConversion): + return f"type_conversion({ntype(ir.type)})" + if isinstance(ir, Return): # this can be improved using values + return "return" # .format(ntype(ir.type)) + if isinstance(ir, Transfer): + return f"transfer({encode_ir_for_compare(ir.call_value)})" + if isinstance(ir, Send): + return f"send({encode_ir_for_compare(ir.call_value)})" + if isinstance(ir, Unpack): # TODO: improve + return "unpack" + if isinstance(ir, InitArray): # TODO: improve + return "init_array" + if isinstance(ir, Function): # TODO: investigate this + return "function_solc" + + # variables + if isinstance(ir, Constant): + return f"constant({ntype(ir.type)})" + if isinstance(ir, SolidityVariableComposed): + return f"solidity_variable_composed({ir.name})" + if isinstance(ir, SolidityVariable): + return f"solidity_variable{ir.name}" + if isinstance(ir, TemporaryVariable): + return "temporary_variable" + if isinstance(ir, ReferenceVariable): + return f"reference({ntype(ir.type)})" + if isinstance(ir, LocalVariable): + return f"local_solc_variable({ir.location})" + if isinstance(ir, StateVariable): + return f"state_solc_variable({ntype(ir.type)})" + if isinstance(ir, LocalVariableInitFromTuple): + return "local_variable_init_tuple" + if isinstance(ir, TupleVariable): + return "tuple_variable" + + # default + return "" + + def get_proxy_implementation_slot(proxy: Contract) -> Optional[SlotInfo]: """ Gets information about the storage slot where a proxy's implementation address is stored. From 701c8f3770c2adf27561aba3b505aa6d4635d083 Mon Sep 17 00:00:00 2001 From: webthethird Date: Thu, 16 Mar 2023 14:31:10 -0500 Subject: [PATCH 060/193] Add test for slither.utils.upgradeability.compare And contracts to test it with, including some for future tests --- tests/test_upgradeability_util.py | 70 +++++ .../TEST_upgrade_diff.json | 20 ++ tests/upgradeability-util/TestUpgrades.sol | 6 + tests/upgradeability-util/src/Address.sol | 244 ++++++++++++++++++ tests/upgradeability-util/src/ContractV1.sol | 36 +++ tests/upgradeability-util/src/ContractV2.sol | 41 +++ .../upgradeability-util/src/ERC1967Proxy.sol | 15 ++ .../src/ERC1967Upgrade.sol | 105 ++++++++ .../src/InheritedStorageProxy.sol | 39 +++ tests/upgradeability-util/src/Proxy.sol | 36 +++ .../upgradeability-util/src/ProxyStorage.sol | 6 + tests/upgradeability-util/src/StorageSlot.sol | 88 +++++++ 12 files changed, 706 insertions(+) create mode 100644 tests/test_upgradeability_util.py create mode 100644 tests/upgradeability-util/TEST_upgrade_diff.json create mode 100644 tests/upgradeability-util/TestUpgrades.sol create mode 100644 tests/upgradeability-util/src/Address.sol create mode 100644 tests/upgradeability-util/src/ContractV1.sol create mode 100644 tests/upgradeability-util/src/ContractV2.sol create mode 100644 tests/upgradeability-util/src/ERC1967Proxy.sol create mode 100644 tests/upgradeability-util/src/ERC1967Upgrade.sol create mode 100644 tests/upgradeability-util/src/InheritedStorageProxy.sol create mode 100644 tests/upgradeability-util/src/Proxy.sol create mode 100644 tests/upgradeability-util/src/ProxyStorage.sol create mode 100644 tests/upgradeability-util/src/StorageSlot.sol diff --git a/tests/test_upgradeability_util.py b/tests/test_upgradeability_util.py new file mode 100644 index 000000000..6fbffc899 --- /dev/null +++ b/tests/test_upgradeability_util.py @@ -0,0 +1,70 @@ +import os +import json + +from solc_select import solc_select +from deepdiff import DeepDiff + +from slither import Slither +from slither.core.declarations import Function +from slither.core.variables import StateVariable +from slither.utils.upgradeability import compare + +SLITHER_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +UPGRADE_TEST_ROOT = os.path.join(SLITHER_ROOT, "tests", "upgradeability-util") + + +def test_upgrades_compare() -> None: + solc_select.switch_global_version("0.8.2", always_install=True) + + sl = Slither(os.path.join(UPGRADE_TEST_ROOT, "TestUpgrades.sol")) + v1 = sl.get_contract_from_name("ContractV1")[0] + v2 = sl.get_contract_from_name("ContractV2")[0] + diff = compare(v1, v2) + for key in diff.keys(): + if len(diff[key]) > 0: + print(f' * {str(key).replace("-", " ")}:') + for obj in diff[key]: + if isinstance(obj, StateVariable): + print(f" * {obj.full_name}") + elif isinstance(obj, Function): + print(f" * {obj.signature_str}") + with open("upgrade_diff.json", "w", encoding="utf-8") as file: + json_str = diff_to_json_str(diff) + diff_json = json.loads(json_str) + json.dump(diff_json, file, indent=4) + + expected_file = os.path.join(UPGRADE_TEST_ROOT, "TEST_upgrade_diff.json") + actual_file = os.path.join(SLITHER_ROOT, "upgrade_diff.json") + + with open(expected_file, "r", encoding="utf8") as f: + expected = json.load(f) + with open(actual_file, "r", encoding="utf8") as f: + actual = json.load(f) + + diff = DeepDiff(expected, actual, ignore_order=True, verbose_level=2, view="tree") + if diff: + for change in diff.get("values_changed", []): + path_list = re.findall(r"\['(.*?)'\]", change.path()) + path = "_".join(path_list) + with open(f"{path}_expected.txt", "w", encoding="utf8") as f: + f.write(str(change.t1)) + with open(f"{path}_actual.txt", "w", encoding="utf8") as f: + f.write(str(change.t2)) + + assert not diff + + +def diff_to_json_str(diff: dict) -> str: + out: dict = {} + for key in diff.keys(): + out[key] = [] + for obj in diff[key]: + if isinstance(obj, StateVariable): + out[key].append(obj.canonical_name) + elif isinstance(obj, Function): + out[key].append(obj.signature_str) + return str(out).replace("'", '"') + + +def __main__(): + test_upgradeability_util() diff --git a/tests/upgradeability-util/TEST_upgrade_diff.json b/tests/upgradeability-util/TEST_upgrade_diff.json new file mode 100644 index 000000000..4ccc4bd3f --- /dev/null +++ b/tests/upgradeability-util/TEST_upgrade_diff.json @@ -0,0 +1,20 @@ +{ + "missing-vars-in-v2": [], + "new-variables": [ + "ContractV2.stateC" + ], + "tainted-variables": [ + "ContractV2.stateB", + "ContractV2.bug" + ], + "new-functions": [ + "i() returns()" + ], + "modified-functions": [ + "checkB() returns(bool)" + ], + "tainted-functions": [ + "g(uint256) returns()", + "h() returns()" + ] +} \ No newline at end of file diff --git a/tests/upgradeability-util/TestUpgrades.sol b/tests/upgradeability-util/TestUpgrades.sol new file mode 100644 index 000000000..d3371d3c6 --- /dev/null +++ b/tests/upgradeability-util/TestUpgrades.sol @@ -0,0 +1,6 @@ +pragma solidity ^0.8.2; + +import "./src/ContractV1.sol"; +import "./src/ContractV2.sol"; +import "./src/InheritedStorageProxy.sol"; +import "./src/ERC1967Proxy.sol"; diff --git a/tests/upgradeability-util/src/Address.sol b/tests/upgradeability-util/src/Address.sol new file mode 100644 index 000000000..d440b259e --- /dev/null +++ b/tests/upgradeability-util/src/Address.sol @@ -0,0 +1,244 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol) + +pragma solidity ^0.8.1; + +/** + * @dev Collection of functions related to the address type + */ +library Address { + /** + * @dev Returns true if `account` is a contract. + * + * [IMPORTANT] + * ==== + * It is unsafe to assume that an address for which this function returns + * false is an externally-owned account (EOA) and not a contract. + * + * Among others, `isContract` will return false for the following + * types of addresses: + * + * - an externally-owned account + * - a contract in construction + * - an address where a contract will be created + * - an address where a contract lived, but was destroyed + * ==== + * + * [IMPORTANT] + * ==== + * You shouldn't rely on `isContract` to protect against flash loan attacks! + * + * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets + * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract + * constructor. + * ==== + */ + function isContract(address account) internal view returns (bool) { + // This method relies on extcodesize/address.code.length, which returns 0 + // for contracts in construction, since the code is only stored at the end + // of the constructor execution. + + return account.code.length > 0; + } + + /** + * @dev Replacement for Solidity's `transfer`: sends `amount` wei to + * `recipient`, forwarding all available gas and reverting on errors. + * + * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost + * of certain opcodes, possibly making contracts go over the 2300 gas limit + * imposed by `transfer`, making them unable to receive funds via + * `transfer`. {sendValue} removes this limitation. + * + * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. + * + * IMPORTANT: because control is transferred to `recipient`, care must be + * taken to not create reentrancy vulnerabilities. Consider using + * {ReentrancyGuard} or the + * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. + */ + function sendValue(address payable recipient, uint256 amount) internal { + require(address(this).balance >= amount, "Address: insufficient balance"); + + (bool success, ) = recipient.call{value: amount}(""); + require(success, "Address: unable to send value, recipient may have reverted"); + } + + /** + * @dev Performs a Solidity function call using a low level `call`. A + * plain `call` is an unsafe replacement for a function call: use this + * function instead. + * + * If `target` reverts with a revert reason, it is bubbled up by this + * function (like regular Solidity function calls). + * + * Returns the raw returned data. To convert to the expected return value, + * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. + * + * Requirements: + * + * - `target` must be a contract. + * - calling `target` with `data` must not revert. + * + * _Available since v3.1._ + */ + function functionCall(address target, bytes memory data) internal returns (bytes memory) { + return functionCallWithValue(target, data, 0, "Address: low-level call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with + * `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCall( + address target, + bytes memory data, + string memory errorMessage + ) internal returns (bytes memory) { + return functionCallWithValue(target, data, 0, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but also transferring `value` wei to `target`. + * + * Requirements: + * + * - the calling contract must have an ETH balance of at least `value`. + * - the called Solidity function must be `payable`. + * + * _Available since v3.1._ + */ + function functionCallWithValue( + address target, + bytes memory data, + uint256 value + ) internal returns (bytes memory) { + return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); + } + + /** + * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but + * with `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCallWithValue( + address target, + bytes memory data, + uint256 value, + string memory errorMessage + ) internal returns (bytes memory) { + require(address(this).balance >= value, "Address: insufficient balance for call"); + (bool success, bytes memory returndata) = target.call{value: value}(data); + return verifyCallResultFromTarget(target, success, returndata, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { + return functionStaticCall(target, data, "Address: low-level static call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall( + address target, + bytes memory data, + string memory errorMessage + ) internal view returns (bytes memory) { + (bool success, bytes memory returndata) = target.staticcall(data); + return verifyCallResultFromTarget(target, success, returndata, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a delegate call. + * + * _Available since v3.4._ + */ + function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { + return functionDelegateCall(target, data, "Address: low-level delegate call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a delegate call. + * + * _Available since v3.4._ + */ + function functionDelegateCall( + address target, + bytes memory data, + string memory errorMessage + ) internal returns (bytes memory) { + (bool success, bytes memory returndata) = target.delegatecall(data); + return verifyCallResultFromTarget(target, success, returndata, errorMessage); + } + + /** + * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling + * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract. + * + * _Available since v4.8._ + */ + function verifyCallResultFromTarget( + address target, + bool success, + bytes memory returndata, + string memory errorMessage + ) internal view returns (bytes memory) { + if (success) { + if (returndata.length == 0) { + // only check isContract if the call was successful and the return data is empty + // otherwise we already know that it was a contract + require(isContract(target), "Address: call to non-contract"); + } + return returndata; + } else { + _revert(returndata, errorMessage); + } + } + + /** + * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the + * revert reason or using the provided one. + * + * _Available since v4.3._ + */ + function verifyCallResult( + bool success, + bytes memory returndata, + string memory errorMessage + ) internal pure returns (bytes memory) { + if (success) { + return returndata; + } else { + _revert(returndata, errorMessage); + } + } + + function _revert(bytes memory returndata, string memory errorMessage) private pure { + // Look for revert reason and bubble it up if present + if (returndata.length > 0) { + // The easiest way to bubble the revert reason is using memory via assembly + /// @solidity memory-safe-assembly + assembly { + let returndata_size := mload(returndata) + revert(add(32, returndata), returndata_size) + } + } else { + revert(errorMessage); + } + } +} diff --git a/tests/upgradeability-util/src/ContractV1.sol b/tests/upgradeability-util/src/ContractV1.sol new file mode 100644 index 000000000..1e2c4b476 --- /dev/null +++ b/tests/upgradeability-util/src/ContractV1.sol @@ -0,0 +1,36 @@ +pragma solidity ^0.8.2; + +import "./ProxyStorage.sol"; + +contract ContractV1 is ProxyStorage { + uint private stateA = 0; + uint private stateB = 0; + uint constant CONST = 32; + bool bug = false; + + function f(uint x) public { + if (msg.sender == admin) { + stateA = x; + } + } + + function g(uint y) public { + if (checkA()) { + stateB = y - 10; + } + } + + function h() public { + if (checkB()) { + bug = true; + } + } + + function checkA() internal returns (bool) { + return stateA % CONST == 1; + } + + function checkB() internal returns (bool) { + return stateB == 62; + } +} diff --git a/tests/upgradeability-util/src/ContractV2.sol b/tests/upgradeability-util/src/ContractV2.sol new file mode 100644 index 000000000..9b102f3e9 --- /dev/null +++ b/tests/upgradeability-util/src/ContractV2.sol @@ -0,0 +1,41 @@ +pragma solidity ^0.8.2; + +import "./ProxyStorage.sol"; + +contract ContractV2 is ProxyStorage { + uint private stateA = 0; + uint private stateB = 0; + uint constant CONST = 32; + bool bug = false; + uint private stateC = 0; + + function f(uint x) public { + if (msg.sender == admin) { + stateA = x; + } + } + + function g(uint y) public { + if (checkA()) { + stateB = y - 10; + } + } + + function h() public { + if (checkB()) { + bug = true; + } + } + + function i() public { + stateC = stateC + 1; + } + + function checkA() internal returns (bool) { + return stateA % CONST == 1; + } + + function checkB() internal returns (bool) { + return stateB == 32; + } +} diff --git a/tests/upgradeability-util/src/ERC1967Proxy.sol b/tests/upgradeability-util/src/ERC1967Proxy.sol new file mode 100644 index 000000000..f1496c27e --- /dev/null +++ b/tests/upgradeability-util/src/ERC1967Proxy.sol @@ -0,0 +1,15 @@ +pragma solidity ^0.8.0; + +import "./Proxy.sol"; +import "./ERC1967Upgrade.sol"; + +contract ERC1967Proxy is Proxy, ERC1967Upgrade { + + constructor(address _logic, bytes memory _data) payable { + _upgradeToAndCall(_logic, _data, false); + } + + function _implementation() internal view virtual override returns (address impl) { + return ERC1967Upgrade._getImplementation(); + } +} diff --git a/tests/upgradeability-util/src/ERC1967Upgrade.sol b/tests/upgradeability-util/src/ERC1967Upgrade.sol new file mode 100644 index 000000000..d089e94d9 --- /dev/null +++ b/tests/upgradeability-util/src/ERC1967Upgrade.sol @@ -0,0 +1,105 @@ +pragma solidity ^0.8.2; + +import "./Address.sol"; +import "./StorageSlot.sol"; + +interface IBeacon { + function implementation() external view returns (address); +} + +interface IERC1822Proxiable { + function proxiableUUID() external view returns (bytes32); +} + +abstract contract ERC1967Upgrade { + + bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143; + bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; + bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50; + + event Upgraded(address indexed implementation); + event AdminChanged(address previousAdmin, address newAdmin); + event BeaconUpgraded(address indexed beacon); + + function _getImplementation() internal view returns (address) { + return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; + } + + function _setImplementation(address newImplementation) private { + require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract"); + StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; + } + + function _upgradeTo(address newImplementation) internal { + _setImplementation(newImplementation); + emit Upgraded(newImplementation); + } + + function _upgradeToAndCall( + address newImplementation, + bytes memory data, + bool forceCall + ) internal { + _upgradeTo(newImplementation); + if (data.length > 0 || forceCall) { + Address.functionDelegateCall(newImplementation, data); + } + } + + function _upgradeToAndCallUUPS( + address newImplementation, + bytes memory data, + bool forceCall + ) internal { + if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) { + _setImplementation(newImplementation); + } else { + try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) { + require(slot == _IMPLEMENTATION_SLOT, "ERC1967Upgrade: unsupported proxiableUUID"); + } catch { + revert("ERC1967Upgrade: new implementation is not UUPS"); + } + _upgradeToAndCall(newImplementation, data, forceCall); + } + } + + function _getAdmin() internal view returns (address) { + return StorageSlot.getAddressSlot(_ADMIN_SLOT).value; + } + + function _setAdmin(address newAdmin) private { + require(newAdmin != address(0), "ERC1967: new admin is the zero address"); + StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin; + } + + function _changeAdmin(address newAdmin) internal { + emit AdminChanged(_getAdmin(), newAdmin); + _setAdmin(newAdmin); + } + + function _getBeacon() internal view returns (address) { + return StorageSlot.getAddressSlot(_BEACON_SLOT).value; + } + + function _setBeacon(address newBeacon) private { + require(Address.isContract(newBeacon), "ERC1967: new beacon is not a contract"); + require( + Address.isContract(IBeacon(newBeacon).implementation()), + "ERC1967: beacon implementation is not a contract" + ); + StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon; + } + + function _upgradeBeaconToAndCall( + address newBeacon, + bytes memory data, + bool forceCall + ) internal { + _setBeacon(newBeacon); + emit BeaconUpgraded(newBeacon); + if (data.length > 0 || forceCall) { + Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data); + } + } +} \ No newline at end of file diff --git a/tests/upgradeability-util/src/InheritedStorageProxy.sol b/tests/upgradeability-util/src/InheritedStorageProxy.sol new file mode 100644 index 000000000..eddbfb0f1 --- /dev/null +++ b/tests/upgradeability-util/src/InheritedStorageProxy.sol @@ -0,0 +1,39 @@ +pragma solidity ^0.8.0; + +import "./Proxy.sol"; +import "./ProxyStorage.sol"; + +contract InheritedStorageProxy is Proxy, ProxyStorage { + constructor(address _implementation) { + admin = msg.sender; + implementation = _implementation; + } + + function getImplementation() external view returns (address) { + return _implementation(); + } + + function getAdmin() external view returns (address) { + return _admin(); + } + + function upgrade(address _newImplementation) external { + require(msg.sender == admin, "Only admin can upgrade"); + implementation = _newImplementation; + } + + function setAdmin(address _newAdmin) external { + require(msg.sender == admin, "Only current admin can change admin"); + admin = _newAdmin; + } + + function _implementation() internal view override returns (address) { + return implementation; + } + + function _admin() internal view returns (address) { + return admin; + } + + function _beforeFallback() internal override {} +} diff --git a/tests/upgradeability-util/src/Proxy.sol b/tests/upgradeability-util/src/Proxy.sol new file mode 100644 index 000000000..445ddb170 --- /dev/null +++ b/tests/upgradeability-util/src/Proxy.sol @@ -0,0 +1,36 @@ +pragma solidity ^0.8.0; + +abstract contract Proxy { + + function _delegate(address implementation) internal virtual { + assembly { + calldatacopy(0, 0, calldatasize()) + let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) + returndatacopy(0, 0, returndatasize()) + switch result + case 0 { + revert(0, returndatasize()) + } + default { + return(0, returndatasize()) + } + } + } + + function _implementation() internal view virtual returns (address); + + function _fallback() internal virtual { + _beforeFallback(); + _delegate(_implementation()); + } + + fallback() external payable virtual { + _fallback(); + } + + receive() external payable virtual { + _fallback(); + } + + function _beforeFallback() internal virtual {} +} diff --git a/tests/upgradeability-util/src/ProxyStorage.sol b/tests/upgradeability-util/src/ProxyStorage.sol new file mode 100644 index 000000000..d591040bd --- /dev/null +++ b/tests/upgradeability-util/src/ProxyStorage.sol @@ -0,0 +1,6 @@ +pragma solidity ^0.8.0; + +contract ProxyStorage { + address internal admin; + address internal implementation; +} diff --git a/tests/upgradeability-util/src/StorageSlot.sol b/tests/upgradeability-util/src/StorageSlot.sol new file mode 100644 index 000000000..6ab8f5dc6 --- /dev/null +++ b/tests/upgradeability-util/src/StorageSlot.sol @@ -0,0 +1,88 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.7.0) (utils/StorageSlot.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Library for reading and writing primitive types to specific storage slots. + * + * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. + * This library helps with reading and writing to such slots without the need for inline assembly. + * + * The functions in this library return Slot structs that contain a `value` member that can be used to read or write. + * + * Example usage to set ERC1967 implementation slot: + * ``` + * contract ERC1967 { + * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + * + * function _getImplementation() internal view returns (address) { + * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; + * } + * + * function _setImplementation(address newImplementation) internal { + * require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract"); + * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; + * } + * } + * ``` + * + * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._ + */ +library StorageSlot { + struct AddressSlot { + address value; + } + + struct BooleanSlot { + bool value; + } + + struct Bytes32Slot { + bytes32 value; + } + + struct Uint256Slot { + uint256 value; + } + + /** + * @dev Returns an `AddressSlot` with member `value` located at `slot`. + */ + function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `BooleanSlot` with member `value` located at `slot`. + */ + function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `Bytes32Slot` with member `value` located at `slot`. + */ + function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `Uint256Slot` with member `value` located at `slot`. + */ + function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } +} From a035d271e03ced8d52423cda70528e638fe1ab94 Mon Sep 17 00:00:00 2001 From: webthethird Date: Thu, 16 Mar 2023 14:40:10 -0500 Subject: [PATCH 061/193] pylint --- tests/test_upgradeability_util.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/tests/test_upgradeability_util.py b/tests/test_upgradeability_util.py index 6fbffc899..9e673d949 100644 --- a/tests/test_upgradeability_util.py +++ b/tests/test_upgradeability_util.py @@ -1,5 +1,6 @@ import os import json +import re from solc_select import solc_select from deepdiff import DeepDiff @@ -13,6 +14,7 @@ SLITHER_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) UPGRADE_TEST_ROOT = os.path.join(SLITHER_ROOT, "tests", "upgradeability-util") +# pylint: disable=too-many-locals def test_upgrades_compare() -> None: solc_select.switch_global_version("0.8.2", always_install=True) @@ -20,10 +22,10 @@ def test_upgrades_compare() -> None: v1 = sl.get_contract_from_name("ContractV1")[0] v2 = sl.get_contract_from_name("ContractV2")[0] diff = compare(v1, v2) - for key in diff.keys(): - if len(diff[key]) > 0: + for key, lst in diff.items(): + if len(lst) > 0: print(f' * {str(key).replace("-", " ")}:') - for obj in diff[key]: + for obj in lst: if isinstance(obj, StateVariable): print(f" * {obj.full_name}") elif isinstance(obj, Function): @@ -64,7 +66,3 @@ def diff_to_json_str(diff: dict) -> str: elif isinstance(obj, Function): out[key].append(obj.signature_str) return str(out).replace("'", '"') - - -def __main__(): - test_upgradeability_util() From c5b54635354388f2a08c5e228485628cbc6fc6ce Mon Sep 17 00:00:00 2001 From: webthethird Date: Thu, 16 Mar 2023 14:44:03 -0500 Subject: [PATCH 062/193] Rename shadowed var --- tests/test_upgradeability_util.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_upgradeability_util.py b/tests/test_upgradeability_util.py index 9e673d949..9d3daba9c 100644 --- a/tests/test_upgradeability_util.py +++ b/tests/test_upgradeability_util.py @@ -21,8 +21,8 @@ def test_upgrades_compare() -> None: sl = Slither(os.path.join(UPGRADE_TEST_ROOT, "TestUpgrades.sol")) v1 = sl.get_contract_from_name("ContractV1")[0] v2 = sl.get_contract_from_name("ContractV2")[0] - diff = compare(v1, v2) - for key, lst in diff.items(): + diff_dict = compare(v1, v2) + for key, lst in diff_dict.items(): if len(lst) > 0: print(f' * {str(key).replace("-", " ")}:') for obj in lst: @@ -31,7 +31,7 @@ def test_upgrades_compare() -> None: elif isinstance(obj, Function): print(f" * {obj.signature_str}") with open("upgrade_diff.json", "w", encoding="utf-8") as file: - json_str = diff_to_json_str(diff) + json_str = diff_to_json_str(diff_dict) diff_json = json.loads(json_str) json.dump(diff_json, file, indent=4) From 9dccce3452bdeecd7b98778170a4d822c4fd37e8 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Fri, 17 Mar 2023 08:35:27 -0500 Subject: [PATCH 063/193] update linter.yml name --- .github/workflows/linter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 4f029399e..bc9177802 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -22,7 +22,7 @@ concurrency: jobs: build: - name: Pylint + name: Superlinter runs-on: ubuntu-latest steps: From 400dfd6f082eeae3c36078d49f11f403304488d0 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Fri, 17 Mar 2023 14:47:12 +0100 Subject: [PATCH 064/193] Minor --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2168dd18f..22eed98fa 100644 --- a/README.md +++ b/README.md @@ -246,7 +246,7 @@ Slither is licensed and distributed under the AGPLv3 license. [Contact us](mailt - [Slither: A Static Analysis Framework For Smart Contracts](https://arxiv.org/abs/1908.09878), Josselin Feist, Gustavo Grieco, Alex Groce - WETSEB '19 ### External publications -Title | Usage | Authors | Venue | Code +Title | Usage | Authors | Venue | Code --- | --- | --- | --- | --- [ReJection: A AST-Based Reentrancy Vulnerability Detection Method](https://www.researchgate.net/publication/339354823_ReJection_A_AST-Based_Reentrancy_Vulnerability_Detection_Method) | AST-based analysis built on top of Slither | Rui Ma, Zefeng Jian, Guangyuan Chen, Ke Ma, Yujia Chen | CTCIS 19 [MPro: Combining Static and Symbolic Analysis forScalable Testing of Smart Contract](https://arxiv.org/pdf/1911.00570.pdf) | Leverage data dependency through Slither | William Zhang, Sebastian Banescu, Leodardo Pasos, Steven Stewart, Vijay Ganesh | ISSRE 2019 | [MPro](https://github.com/QuanZhang-William/M-Pro) From 462396edccbf91adc45fa1da2702a99e1491327f Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Fri, 17 Mar 2023 09:29:32 -0500 Subject: [PATCH 065/193] correct web3 to be required, not dev dep --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 0d26167b3..f9d100afd 100644 --- a/setup.py +++ b/setup.py @@ -17,6 +17,7 @@ setup( "pycryptodome>=3.4.6", # "crytic-compile>=0.3.0", "crytic-compile@git+https://github.com/crytic/crytic-compile.git@master#egg=crytic-compile", + "web3>=6.0.0", ], extras_require={ "dev": [ @@ -29,7 +30,6 @@ setup( "numpy", "openai", "pdoc", - "web3>=6.0.0", ], }, license="AGPL-3.0", From 5622230117ba2d45eb2be7e8acc5f51f26c07823 Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 09:33:15 -0500 Subject: [PATCH 066/193] Return six lists instead of dictionary of lists --- slither/utils/upgradeability.py | 34 +++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 3d4c64c04..5f1a395f5 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -1,4 +1,4 @@ -from typing import Optional +from typing import Optional, Tuple from slither.core.declarations import ( Contract, Structure, @@ -60,7 +60,11 @@ from slither.tools.read_storage.read_storage import SlotInfo, SlitherReadStorage # pylint: disable=too-many-locals -def compare(v1: Contract, v2: Contract) -> dict: +def compare( + v1: Contract, v2: Contract +) -> Tuple[ + list[Variable], list[Variable], list[Variable], list[Function], list[Function], list[Function] +]: """ Compares two versions of a contract. Most useful for upgradeable (logic) contracts, but does not require that Contract.is_upgradeable returns true for either contract. @@ -69,14 +73,13 @@ def compare(v1: Contract, v2: Contract) -> dict: v1: Original version of (upgradeable) contract v2: Updated version of (upgradeable) contract - Returns: dict { - "missing-vars-in-v2": list[Variable], - "new-variables": list[Variable], - "tainted-variables": list[Variable], - "new-functions": list[Function], - "modified-functions": list[Function], - "tainted-functions": list[Function] - } + Returns: + missing-vars-in-v2: list[Variable], + new-variables: list[Variable], + tainted-variables: list[Variable], + new-functions: list[Function], + modified-functions: list[Function], + tainted-functions: list[Function] """ order_vars1 = [v for v in v1.state_variables if not v.is_constant and not v.is_immutable] @@ -143,7 +146,7 @@ def compare(v1: Contract, v2: Contract) -> dict: results["tainted-functions"].append(function) # Find all new or tainted variables, i.e., variables that are read or written by a new/modified/tainted function - for _, var in enumerate(order_vars2): + for var in order_vars2: read_by = v2.get_functions_reading_from_variable(var) written_by = v2.get_functions_writing_to_variable(var) if v1.get_state_variable_from_name(var.name) is None: @@ -154,7 +157,14 @@ def compare(v1: Contract, v2: Contract) -> dict: ): results["tainted-variables"].append(var) - return results + return ( + results["missing-vars-in-v2"], + results["new-variables"], + results["tainted-variables"], + results["new-functions"], + results["modified-functions"], + results["tainted-functions"], + ) def is_function_modified(f1: Function, f2: Function) -> bool: From c159f56d70f0c0a4a4f20250f662a07168596ffc Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 09:33:55 -0500 Subject: [PATCH 067/193] Rewrite test for `utils.upgradeability` --- tests/test_upgradeability_util.py | 58 +++++++------------------------ 1 file changed, 13 insertions(+), 45 deletions(-) diff --git a/tests/test_upgradeability_util.py b/tests/test_upgradeability_util.py index 9d3daba9c..72fb8c4ec 100644 --- a/tests/test_upgradeability_util.py +++ b/tests/test_upgradeability_util.py @@ -21,48 +21,16 @@ def test_upgrades_compare() -> None: sl = Slither(os.path.join(UPGRADE_TEST_ROOT, "TestUpgrades.sol")) v1 = sl.get_contract_from_name("ContractV1")[0] v2 = sl.get_contract_from_name("ContractV2")[0] - diff_dict = compare(v1, v2) - for key, lst in diff_dict.items(): - if len(lst) > 0: - print(f' * {str(key).replace("-", " ")}:') - for obj in lst: - if isinstance(obj, StateVariable): - print(f" * {obj.full_name}") - elif isinstance(obj, Function): - print(f" * {obj.signature_str}") - with open("upgrade_diff.json", "w", encoding="utf-8") as file: - json_str = diff_to_json_str(diff_dict) - diff_json = json.loads(json_str) - json.dump(diff_json, file, indent=4) - - expected_file = os.path.join(UPGRADE_TEST_ROOT, "TEST_upgrade_diff.json") - actual_file = os.path.join(SLITHER_ROOT, "upgrade_diff.json") - - with open(expected_file, "r", encoding="utf8") as f: - expected = json.load(f) - with open(actual_file, "r", encoding="utf8") as f: - actual = json.load(f) - - diff = DeepDiff(expected, actual, ignore_order=True, verbose_level=2, view="tree") - if diff: - for change in diff.get("values_changed", []): - path_list = re.findall(r"\['(.*?)'\]", change.path()) - path = "_".join(path_list) - with open(f"{path}_expected.txt", "w", encoding="utf8") as f: - f.write(str(change.t1)) - with open(f"{path}_actual.txt", "w", encoding="utf8") as f: - f.write(str(change.t2)) - - assert not diff - - -def diff_to_json_str(diff: dict) -> str: - out: dict = {} - for key in diff.keys(): - out[key] = [] - for obj in diff[key]: - if isinstance(obj, StateVariable): - out[key].append(obj.canonical_name) - elif isinstance(obj, Function): - out[key].append(obj.signature_str) - return str(out).replace("'", '"') + missing_vars, new_vars, tainted_vars, new_funcs, modified_funcs, tainted_funcs = compare(v1, v2) + assert len(missing_vars) == 0 + assert new_vars == [v2.get_state_variable_from_name("stateC")] + assert tainted_vars == [ + v2.get_state_variable_from_name("stateB"), + v2.get_state_variable_from_name("bug") + ] + assert new_funcs == [v2.get_function_from_signature("i()")] + assert modified_funcs == [v2.get_function_from_signature("checkB()")] + assert tainted_funcs == [ + v2.get_function_from_signature("g(uint256)"), + v2.get_function_from_signature("h()") + ] From a6f6fc0bfa8ada650ab508ad2387b7dd150bf0a6 Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 09:40:17 -0500 Subject: [PATCH 068/193] Use `.state_variables_ordered` and `.is_constructor_variables` --- slither/utils/upgradeability.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 5f1a395f5..f94813876 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -82,8 +82,8 @@ def compare( tainted-functions: list[Function] """ - order_vars1 = [v for v in v1.state_variables if not v.is_constant and not v.is_immutable] - order_vars2 = [v for v in v2.state_variables if not v.is_constant and not v.is_immutable] + order_vars1 = [v for v in v1.state_variables_ordered if not v.is_constant and not v.is_immutable] + order_vars2 = [v for v in v2.state_variables_ordered if not v.is_constant and not v.is_immutable] func_sigs1 = [function.solidity_signature for function in v1.functions] func_sigs2 = [function.solidity_signature for function in v2.functions] @@ -114,7 +114,7 @@ def compare( new_modified_function_vars += ( function.state_variables_read + function.state_variables_written ) - elif not function.name.startswith("slither") and is_function_modified( + elif not function.is_constructor_variables and is_function_modified( orig_function, function ): new_modified_functions.append(function) From af6727c5610a38a326aecb73f887d48987c1ffa2 Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 09:52:29 -0500 Subject: [PATCH 069/193] Add `Contract.fallback_function` and `.receive_function` properties --- slither/core/declarations/contract.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index 95b05aa6b..88405b98a 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -89,6 +89,9 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods self._signatures: Optional[List[str]] = None self._signatures_declared: Optional[List[str]] = None + self._fallback_function: Optional["FunctionContract"] = None + self._receive_function: Optional["FunctionContract"] = None + self._is_upgradeable: Optional[bool] = None self._is_upgradeable_proxy: Optional[bool] = None self._upgradeable_version: Optional[str] = None @@ -649,6 +652,24 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods """ return self.functions_declared + self.modifiers_declared # type: ignore + @property + def fallback_function(self) -> Optional["FunctionContract"]: + if self._fallback_function is None: + for f in self.functions: + if f.is_fallback: + self._fallback_function = f + break + return self._fallback_function + + @property + def receive_function(self) -> Optional["FunctionContract"]: + if self._receive_function is None: + for f in self.functions: + if f.is_receive: + self._receive_function = f + break + return self._receive_function + def available_elements_from_inheritances( self, elements: Dict[str, "Function"], From 26f80cfcf03c6a2f371d06e6cf178e04bfbf7691 Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 09:53:50 -0500 Subject: [PATCH 070/193] Use `Contract.fallback_function` --- slither/utils/upgradeability.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index f94813876..cefc0868c 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -350,8 +350,7 @@ def get_proxy_implementation_var(proxy: Contract) -> Optional[Variable]: Returns: (`Variable`) | None : The variable, ideally a StateVariable, which stores the proxy's implementation address. """ - available_functions = proxy.available_functions_as_dict() - if not proxy.is_upgradeable_proxy or not available_functions["fallback()"]: + if not proxy.is_upgradeable_proxy or not proxy.fallback_function: return None delegate = find_delegate_in_fallback(proxy) @@ -375,7 +374,7 @@ def find_delegate_in_fallback(proxy: Contract) -> Optional[Variable]: (`Variable`) | None : The variable being passed as the destination argument in a delegatecall in the fallback. """ delegate: Optional[Variable] = None - fallback = proxy.available_functions_as_dict()["fallback()"] + fallback = proxy.fallback_function for node in fallback.all_nodes(): for ir in node.irs: if isinstance(ir, LowLevelCall) and ir.function_name == "delegatecall": From 1a54d0d325e78288eeaf5c2978ec25dc00c6974e Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 10:01:54 -0500 Subject: [PATCH 071/193] Handle hardcoded slot sloaded in delegatecall in `extract_delegate_from_asm` --- slither/utils/upgradeability.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index cefc0868c..20759cb18 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -428,10 +428,17 @@ def extract_delegate_from_asm(contract: Contract, node: Node) -> Optional[Variab asm = next(line for line in asm_split if "delegatecall" in line) params = asm.split("call(")[1].split(", ") dest = params[1] - if dest.endswith(")"): + if dest.endswith(")") and not dest.startswith("sload("): dest = params[2] if dest.startswith("sload("): dest = dest.replace(")", "(").split("(")[1] + if len(dest) == 66 and dest.startswith("0x"): + v = StateVariable() + v.is_constant = True + v.expression = Literal(dest, ElementaryType("bytes32")) + v.name = dest + v.type = ElementaryType("bytes32") + return v for v in node.function.variables_read_or_written: if v.name == dest: if isinstance(v, LocalVariable) and v.expression is not None: From 24dad035f4dd00b0fd267a5bb6e8d0bd37d7cb06 Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 10:02:16 -0500 Subject: [PATCH 072/193] Document when a newly created variable can be returned --- slither/utils/upgradeability.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 20759cb18..1547116da 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -344,6 +344,7 @@ def get_proxy_implementation_var(proxy: Contract) -> Optional[Variable]: """ Gets the Variable that stores a proxy's implementation address. Uses data dependency to trace any LocalVariable that is passed into a delegatecall as the target address back to its data source, ideally a StateVariable. + Can return a newly created StateVariable if an `sload` from a hardcoded storage slot is found in assembly. Args: proxy: A Contract object (proxy.is_upgradeable_proxy should be true). @@ -366,6 +367,7 @@ def get_proxy_implementation_var(proxy: Contract) -> Optional[Variable]: def find_delegate_in_fallback(proxy: Contract) -> Optional[Variable]: """ Searches a proxy's fallback function for a delegatecall, then extracts the Variable being passed in as the target. + Can return a newly created StateVariable if an `sload` from a hardcoded storage slot is found in assembly. Should typically be called by get_proxy_implementation_var(proxy). Args: proxy: A Contract object (should have a fallback function). @@ -416,6 +418,7 @@ def extract_delegate_from_asm(contract: Contract, node: Node) -> Optional[Variab """ Finds a Variable with a name matching the argument passed into a delegatecall, when all we have is an Assembly node with a block of code as one long string. Usually only the case for solc versions < 0.6.0. + Can return a newly created StateVariable if an `sload` from a hardcoded storage slot is found in assembly. Should typically be called by find_delegate_in_fallback(proxy). Args: contract: The parent Contract. From 9a9acbede982fa7363a6dffe08b6c08bd0a19b1f Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 10:05:57 -0500 Subject: [PATCH 073/193] Comment when a newly created variable can be returned and explain the magic value 66: 32 bytes = 64 chars + "0x" = 66 chars --- slither/utils/upgradeability.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 1547116da..abaac0c10 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -404,7 +404,9 @@ def find_delegate_in_fallback(proxy: Contract) -> Optional[Variable]: if isinstance(dest, Identifier): delegate = dest.value break - if isinstance(dest, Literal) and len(dest.value) == 66: + if isinstance(dest, Literal) and len(dest.value) == 66: # 32 bytes = 64 chars + "0x" = 66 chars + # Storage slot is not declared as a constant, but rather is hardcoded in the assembly, + # so create a new StateVariable to represent it. delegate = StateVariable() delegate.is_constant = True delegate.expression = dest @@ -435,7 +437,9 @@ def extract_delegate_from_asm(contract: Contract, node: Node) -> Optional[Variab dest = params[2] if dest.startswith("sload("): dest = dest.replace(")", "(").split("(")[1] - if len(dest) == 66 and dest.startswith("0x"): + if len(dest) == 66 and dest.startswith("0x"): # 32 bytes = 64 chars + "0x" = 66 chars + # Storage slot is not declared as a constant, but rather is hardcoded in the assembly, + # so create a new StateVariable to represent it. v = StateVariable() v.is_constant = True v.expression = Literal(dest, ElementaryType("bytes32")) From f148bbc0a89a7221a7950ea4d7aab2fa5abc91f9 Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 10:17:51 -0500 Subject: [PATCH 074/193] Also search `parent_func.returns` in `find_delegate_from_name` --- slither/utils/upgradeability.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index abaac0c10..ead803968 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -480,7 +480,7 @@ def find_delegate_from_name( for lv in parent_func.local_variables: if lv.name == dest: return lv - for pv in parent_func.parameters: + for pv in parent_func.parameters + parent_func.returns: if pv.name == dest: return pv return None From 722a343b77ccd590ce63631146ecdd0a1e173767 Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 10:28:36 -0500 Subject: [PATCH 075/193] Remove unused TEST_upgrade_diff.json --- .../TEST_upgrade_diff.json | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 tests/upgradeability-util/TEST_upgrade_diff.json diff --git a/tests/upgradeability-util/TEST_upgrade_diff.json b/tests/upgradeability-util/TEST_upgrade_diff.json deleted file mode 100644 index 4ccc4bd3f..000000000 --- a/tests/upgradeability-util/TEST_upgrade_diff.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "missing-vars-in-v2": [], - "new-variables": [ - "ContractV2.stateC" - ], - "tainted-variables": [ - "ContractV2.stateB", - "ContractV2.bug" - ], - "new-functions": [ - "i() returns()" - ], - "modified-functions": [ - "checkB() returns(bool)" - ], - "tainted-functions": [ - "g(uint256) returns()", - "h() returns()" - ] -} \ No newline at end of file From b2240b885d1076d521557944138b28ed2afcb96a Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Fri, 17 Mar 2023 17:56:26 +0100 Subject: [PATCH 076/193] Update solc version recommendations --- .../detectors/attributes/incorrect_solc.py | 7 +-- .../dynamic_1.sol.0.5.16.IncorrectSolc.json | 10 ++++ .../dynamic_2.sol.0.5.16.IncorrectSolc.json | 10 ++++ .../static.sol.0.5.16.IncorrectSolc.json | 48 ++++++++++++++++++- .../dynamic_1.sol.0.6.11.IncorrectSolc.json | 10 ++++ .../dynamic_2.sol.0.6.11.IncorrectSolc.json | 10 ++++ .../static.sol.0.6.11.IncorrectSolc.json | 48 ++++++++++++++++++- .../dynamic_1.sol.0.7.6.IncorrectSolc.json | 10 ++++ .../dynamic_2.sol.0.7.6.IncorrectSolc.json | 10 ++++ .../0.7.6/static.sol.0.7.6.IncorrectSolc.json | 48 ++++++++++++++++++- 10 files changed, 203 insertions(+), 8 deletions(-) diff --git a/slither/detectors/attributes/incorrect_solc.py b/slither/detectors/attributes/incorrect_solc.py index fa9ffd88d..843ee5019 100644 --- a/slither/detectors/attributes/incorrect_solc.py +++ b/slither/detectors/attributes/incorrect_solc.py @@ -43,10 +43,7 @@ We also recommend avoiding complex `pragma` statement.""" # region wiki_recommendation WIKI_RECOMMENDATION = """ Deploy with any of the following Solidity versions: -- 0.5.16 - 0.5.17 -- 0.6.11 - 0.6.12 -- 0.7.5 - 0.7.6 -- 0.8.16 +- 0.8.18 The recommendations take into account: - Risks related to recent releases @@ -68,7 +65,7 @@ Consider using the latest version of Solidity for testing.""" ) # Indicates the allowed versions. Must be formatted in increasing order. - ALLOWED_VERSIONS = ["0.5.16", "0.5.17", "0.6.11", "0.6.12", "0.7.5", "0.7.6", "0.8.16"] + ALLOWED_VERSIONS = ["0.8.18"] # Indicates the versions that should not be used. BUGGY_VERSIONS = [ diff --git a/tests/detectors/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json b/tests/detectors/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json index 28381e3ca..599392dc8 100644 --- a/tests/detectors/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json +++ b/tests/detectors/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json @@ -1,5 +1,15 @@ [ [ + { + "elements": [], + "description": "solc-0.5.16 is not recommended for deployment\n", + "markdown": "solc-0.5.16 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "94ddf430efb860e471a768a108c851848fa998e8a2c489c6fb23ed71d3ef4b09", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + }, { "elements": [ { diff --git a/tests/detectors/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json b/tests/detectors/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json index 19ab5889f..8eacb5663 100644 --- a/tests/detectors/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json +++ b/tests/detectors/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json @@ -38,6 +38,16 @@ "check": "solc-version", "impact": "Informational", "confidence": "High" + }, + { + "elements": [], + "description": "solc-0.5.16 is not recommended for deployment\n", + "markdown": "solc-0.5.16 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "94ddf430efb860e471a768a108c851848fa998e8a2c489c6fb23ed71d3ef4b09", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" } ] ] \ No newline at end of file diff --git a/tests/detectors/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json b/tests/detectors/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json index 5825bcacc..df4bac19d 100644 --- a/tests/detectors/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json +++ b/tests/detectors/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json @@ -1,3 +1,49 @@ [ - [] + [ + { + "elements": [ + { + "type": "pragma", + "name": "0.5.16", + "source_mapping": { + "start": 0, + "length": 23, + "filename_relative": "tests/detectors/solc-version/0.5.16/static.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/detectors/solc-version/0.5.16/static.sol", + "is_dependency": false, + "lines": [ + 1 + ], + "starting_column": 1, + "ending_column": 24 + }, + "type_specific_fields": { + "directive": [ + "solidity", + "0.5", + ".16" + ] + } + } + ], + "description": "Pragma version0.5.16 (tests/detectors/solc-version/0.5.16/static.sol#1) allows old versions\n", + "markdown": "Pragma version[0.5.16](tests/detectors/solc-version/0.5.16/static.sol#L1) allows old versions\n", + "first_markdown_element": "tests/detectors/solc-version/0.5.16/static.sol#L1", + "id": "2407d991de90e57d2f6b6bdbc61bb939845a5c0bb2d82910ed4c49abff2ab6e3", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "solc-0.5.16 is not recommended for deployment\n", + "markdown": "solc-0.5.16 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "94ddf430efb860e471a768a108c851848fa998e8a2c489c6fb23ed71d3ef4b09", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + } + ] ] \ No newline at end of file diff --git a/tests/detectors/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json b/tests/detectors/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json index b182c02c7..a71fa6406 100644 --- a/tests/detectors/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json +++ b/tests/detectors/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json @@ -35,6 +35,16 @@ "check": "solc-version", "impact": "Informational", "confidence": "High" + }, + { + "elements": [], + "description": "solc-0.6.11 is not recommended for deployment\n", + "markdown": "solc-0.6.11 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "bafd522d637977886f038e619ad47c1987efedc6c4c24515e6e27b23585535bd", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" } ] ] \ No newline at end of file diff --git a/tests/detectors/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json b/tests/detectors/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json index 4f844e25e..d6cac106b 100644 --- a/tests/detectors/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json +++ b/tests/detectors/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json @@ -38,6 +38,16 @@ "check": "solc-version", "impact": "Informational", "confidence": "High" + }, + { + "elements": [], + "description": "solc-0.6.11 is not recommended for deployment\n", + "markdown": "solc-0.6.11 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "bafd522d637977886f038e619ad47c1987efedc6c4c24515e6e27b23585535bd", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" } ] ] \ No newline at end of file diff --git a/tests/detectors/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json b/tests/detectors/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json index 5825bcacc..61ea21e16 100644 --- a/tests/detectors/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json +++ b/tests/detectors/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json @@ -1,3 +1,49 @@ [ - [] + [ + { + "elements": [ + { + "type": "pragma", + "name": "0.6.11", + "source_mapping": { + "start": 0, + "length": 23, + "filename_relative": "tests/detectors/solc-version/0.6.11/static.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/detectors/solc-version/0.6.11/static.sol", + "is_dependency": false, + "lines": [ + 1 + ], + "starting_column": 1, + "ending_column": 24 + }, + "type_specific_fields": { + "directive": [ + "solidity", + "0.6", + ".11" + ] + } + } + ], + "description": "Pragma version0.6.11 (tests/detectors/solc-version/0.6.11/static.sol#1) allows old versions\n", + "markdown": "Pragma version[0.6.11](tests/detectors/solc-version/0.6.11/static.sol#L1) allows old versions\n", + "first_markdown_element": "tests/detectors/solc-version/0.6.11/static.sol#L1", + "id": "ad7b24eed22ac098a57ae02ade0ccffb4cb094e851effe93cad1d0a65b489816", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "solc-0.6.11 is not recommended for deployment\n", + "markdown": "solc-0.6.11 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "bafd522d637977886f038e619ad47c1987efedc6c4c24515e6e27b23585535bd", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + } + ] ] \ No newline at end of file diff --git a/tests/detectors/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json b/tests/detectors/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json index aafb7b5d1..763302445 100644 --- a/tests/detectors/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json +++ b/tests/detectors/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json @@ -1,5 +1,15 @@ [ [ + { + "elements": [], + "description": "solc-0.7.6 is not recommended for deployment\n", + "markdown": "solc-0.7.6 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "ddb8ee36d9dd69b14eab702506268f8f9ef3283777d042e197277e29407b386e", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + }, { "elements": [ { diff --git a/tests/detectors/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json b/tests/detectors/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json index 4aea32763..516f3142b 100644 --- a/tests/detectors/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json +++ b/tests/detectors/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json @@ -38,6 +38,16 @@ "check": "solc-version", "impact": "Informational", "confidence": "High" + }, + { + "elements": [], + "description": "solc-0.7.6 is not recommended for deployment\n", + "markdown": "solc-0.7.6 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "ddb8ee36d9dd69b14eab702506268f8f9ef3283777d042e197277e29407b386e", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" } ] ] \ No newline at end of file diff --git a/tests/detectors/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json b/tests/detectors/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json index 5825bcacc..426786fff 100644 --- a/tests/detectors/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json +++ b/tests/detectors/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json @@ -1,3 +1,49 @@ [ - [] + [ + { + "elements": [], + "description": "solc-0.7.6 is not recommended for deployment\n", + "markdown": "solc-0.7.6 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "ddb8ee36d9dd69b14eab702506268f8f9ef3283777d042e197277e29407b386e", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [ + { + "type": "pragma", + "name": "0.7.6", + "source_mapping": { + "start": 0, + "length": 22, + "filename_relative": "tests/detectors/solc-version/0.7.6/static.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/detectors/solc-version/0.7.6/static.sol", + "is_dependency": false, + "lines": [ + 1 + ], + "starting_column": 1, + "ending_column": 23 + }, + "type_specific_fields": { + "directive": [ + "solidity", + "0.7", + ".6" + ] + } + } + ], + "description": "Pragma version0.7.6 (tests/detectors/solc-version/0.7.6/static.sol#1) allows old versions\n", + "markdown": "Pragma version[0.7.6](tests/detectors/solc-version/0.7.6/static.sol#L1) allows old versions\n", + "first_markdown_element": "tests/detectors/solc-version/0.7.6/static.sol#L1", + "id": "e7a5c0ee3d0af7a59907908f88499f79435e302745284c6279167a1cc209b4ed", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + } + ] ] \ No newline at end of file From fc1b94c89c0e28d54baf3bc163f9d649c1f00f14 Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 12:05:39 -0500 Subject: [PATCH 077/193] Handle named variable declared in assembly which is not parsed as a LocalVariable for solc <0.6.0 If it gets its value from an sload, create new StateVariable --- slither/utils/upgradeability.py | 52 ++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 13 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index ead803968..a5017fafc 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -407,11 +407,7 @@ def find_delegate_in_fallback(proxy: Contract) -> Optional[Variable]: if isinstance(dest, Literal) and len(dest.value) == 66: # 32 bytes = 64 chars + "0x" = 66 chars # Storage slot is not declared as a constant, but rather is hardcoded in the assembly, # so create a new StateVariable to represent it. - delegate = StateVariable() - delegate.is_constant = True - delegate.expression = dest - delegate.name = dest.value - delegate.type = ElementaryType("bytes32") + delegate = create_state_variable_from_slot(dest.value) break return delegate @@ -437,14 +433,8 @@ def extract_delegate_from_asm(contract: Contract, node: Node) -> Optional[Variab dest = params[2] if dest.startswith("sload("): dest = dest.replace(")", "(").split("(")[1] - if len(dest) == 66 and dest.startswith("0x"): # 32 bytes = 64 chars + "0x" = 66 chars - # Storage slot is not declared as a constant, but rather is hardcoded in the assembly, - # so create a new StateVariable to represent it. - v = StateVariable() - v.is_constant = True - v.expression = Literal(dest, ElementaryType("bytes32")) - v.name = dest - v.type = ElementaryType("bytes32") + v = create_state_variable_from_slot(dest) + if v is not None: return v for v in node.function.variables_read_or_written: if v.name == dest: @@ -466,6 +456,7 @@ def find_delegate_from_name( """ Searches for a variable with a given name, starting with StateVariables declared in the contract, followed by LocalVariables in the parent function, either declared in the function body or as parameters in the signature. + Can return a newly created StateVariable if an `sload` from a hardcoded storage slot is found in assembly. Args: contract: The Contract object to search. dest: The variable name to search for. @@ -483,4 +474,39 @@ def find_delegate_from_name( for pv in parent_func.parameters + parent_func.returns: if pv.name == dest: return pv + if parent_func.contains_assembly: + for node in parent_func.all_nodes(): + if node.type == NodeType.ASSEMBLY and isinstance(node.inline_asm, str): + asm = next((s for s in node.inline_asm.split("\n") if f"{dest}:=sload(" in s.replace(" ", "")), None) + if asm: + slot = asm.split("sload(")[1].split(")")[0] + return create_state_variable_from_slot(slot, name=dest) return None + + +def create_state_variable_from_slot(slot: str, name: str = None) -> Optional[StateVariable]: + """ + Creates a new StateVariable object to wrap a hardcoded storage slot found in assembly. + Args: + slot: The storage slot hex string. + name: Optional name for the variable. The slot string is used if name is not provided. + + Returns: + A newly created constant StateVariable of type bytes32, with the slot as the variable's expression and name, + if slot matches the length and prefix of a bytes32. Otherwise, returns None. + """ + if len(slot) == 66 and slot.startswith("0x"): # 32 bytes = 64 chars + "0x" = 66 chars + # Storage slot is not declared as a constant, but rather is hardcoded in the assembly, + # so create a new StateVariable to represent it. + v = StateVariable() + v.is_constant = True + v.expression = Literal(slot, ElementaryType("bytes32")) + if name is not None: + v.name = name + else: + v.name = slot + v.type = ElementaryType("bytes32") + return v + else: + # This should probably also handle hashed strings, but for now return None + return None From be68b6f948f7869299dcfc36e6f0eee54aad7087 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Fri, 17 Mar 2023 18:15:28 +0100 Subject: [PATCH 078/193] Improve error message --- slither/detectors/attributes/incorrect_solc.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/slither/detectors/attributes/incorrect_solc.py b/slither/detectors/attributes/incorrect_solc.py index 843ee5019..f63c045d8 100644 --- a/slither/detectors/attributes/incorrect_solc.py +++ b/slither/detectors/attributes/incorrect_solc.py @@ -59,7 +59,6 @@ Consider using the latest version of Solidity for testing.""" OLD_VERSION_TXT = "allows old versions" LESS_THAN_TXT = "uses lesser than" - TOO_RECENT_VERSION_TXT = "necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.16" BUGGY_VERSION_TXT = ( "is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)" ) @@ -67,6 +66,8 @@ Consider using the latest version of Solidity for testing.""" # Indicates the allowed versions. Must be formatted in increasing order. ALLOWED_VERSIONS = ["0.8.18"] + TOO_RECENT_VERSION_TXT = f"necessitates a version too recent to be trusted. Consider deploying with {'/'.join(ALLOWED_VERSIONS)} " + # Indicates the versions that should not be used. BUGGY_VERSIONS = [ "0.4.22", From fba4f7d08fd148d2a38dab4dc01637c14e4456f0 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Fri, 17 Mar 2023 18:18:38 +0100 Subject: [PATCH 079/193] Minor --- slither/detectors/attributes/incorrect_solc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/detectors/attributes/incorrect_solc.py b/slither/detectors/attributes/incorrect_solc.py index f63c045d8..73874cffc 100644 --- a/slither/detectors/attributes/incorrect_solc.py +++ b/slither/detectors/attributes/incorrect_solc.py @@ -66,7 +66,7 @@ Consider using the latest version of Solidity for testing.""" # Indicates the allowed versions. Must be formatted in increasing order. ALLOWED_VERSIONS = ["0.8.18"] - TOO_RECENT_VERSION_TXT = f"necessitates a version too recent to be trusted. Consider deploying with {'/'.join(ALLOWED_VERSIONS)} " + TOO_RECENT_VERSION_TXT = f"necessitates a version too recent to be trusted. Consider deploying with {'/'.join(ALLOWED_VERSIONS)}." # Indicates the versions that should not be used. BUGGY_VERSIONS = [ From efeea531db2e0f696116263295bf441756945801 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Fri, 17 Mar 2023 18:41:52 +0100 Subject: [PATCH 080/193] Update readme --- README.md | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 22eed98fa..bce20bfb0 100644 --- a/README.md +++ b/README.md @@ -151,26 +151,27 @@ Num | Detector | What it Detects | Impact | Confidence 61 | `assembly` | [Assembly usage](https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage) | Informational | High 62 | `assert-state-change` | [Assert state change](https://github.com/crytic/slither/wiki/Detector-Documentation#assert-state-change) | Informational | High 63 | `boolean-equal` | [Comparison to boolean constant](https://github.com/crytic/slither/wiki/Detector-Documentation#boolean-equality) | Informational | High -64 | `deprecated-standards` | [Deprecated Solidity Standards](https://github.com/crytic/slither/wiki/Detector-Documentation#deprecated-standards) | Informational | High -65 | `erc20-indexed` | [Un-indexed ERC20 event parameters](https://github.com/crytic/slither/wiki/Detector-Documentation#unindexed-erc20-event-parameters) | Informational | High -66 | `function-init-state` | [Function initializing state variables](https://github.com/crytic/slither/wiki/Detector-Documentation#function-initializing-state) | Informational | High -67 | `low-level-calls` | [Low level calls](https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls) | Informational | High -68 | `missing-inheritance` | [Missing inheritance](https://github.com/crytic/slither/wiki/Detector-Documentation#missing-inheritance) | Informational | High -69 | `naming-convention` | [Conformity to Solidity naming conventions](https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions) | Informational | High -70 | `pragma` | [If different pragma directives are used](https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used) | Informational | High -71 | `redundant-statements` | [Redundant statements](https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements) | Informational | High -72 | `solc-version` | [Incorrect Solidity version](https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity) | Informational | High -73 | `unimplemented-functions` | [Unimplemented functions](https://github.com/crytic/slither/wiki/Detector-Documentation#unimplemented-functions) | Informational | High -74 | `unused-state` | [Unused state variables](https://github.com/crytic/slither/wiki/Detector-Documentation#unused-state-variable) | Informational | High -75 | `costly-loop` | [Costly operations in a loop](https://github.com/crytic/slither/wiki/Detector-Documentation#costly-operations-inside-a-loop) | Informational | Medium -76 | `dead-code` | [Functions that are not used](https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code) | Informational | Medium -77 | `reentrancy-unlimited-gas` | [Reentrancy vulnerabilities through send and transfer](https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-4) | Informational | Medium -78 | `similar-names` | [Variable names are too similar](https://github.com/crytic/slither/wiki/Detector-Documentation#variable-names-too-similar) | Informational | Medium -79 | `too-many-digits` | [Conformance to numeric notation best practices](https://github.com/crytic/slither/wiki/Detector-Documentation#too-many-digits) | Informational | Medium -80 | `constable-states` | [State variables that could be declared constant](https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant) | Optimization | High -81 | `external-function` | [Public function that could be declared external](https://github.com/crytic/slither/wiki/Detector-Documentation#public-function-that-could-be-declared-external) | Optimization | High -82 | `immutable-states` | [State variables that could be declared immutable](https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-immutable) | Optimization | High -83 | `var-read-using-this` | [Contract reads its own variable using `this`](https://github.com/crytic/slither/wiki/Vulnerabilities-Description#public-variable-read-in-external-context) | Optimization | High +64 | `cyclomatic-complexity` | [Detects functions with high (> 11) cyclomatic complexity](https://github.com/crytic/slither/wiki/Detector-Documentation#cyclomatic-complexity) | Informational | High +65 | `deprecated-standards` | [Deprecated Solidity Standards](https://github.com/crytic/slither/wiki/Detector-Documentation#deprecated-standards) | Informational | High +66 | `erc20-indexed` | [Un-indexed ERC20 event parameters](https://github.com/crytic/slither/wiki/Detector-Documentation#unindexed-erc20-event-parameters) | Informational | High +67 | `function-init-state` | [Function initializing state variables](https://github.com/crytic/slither/wiki/Detector-Documentation#function-initializing-state) | Informational | High +68 | `low-level-calls` | [Low level calls](https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls) | Informational | High +69 | `missing-inheritance` | [Missing inheritance](https://github.com/crytic/slither/wiki/Detector-Documentation#missing-inheritance) | Informational | High +70 | `naming-convention` | [Conformity to Solidity naming conventions](https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions) | Informational | High +71 | `pragma` | [If different pragma directives are used](https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used) | Informational | High +72 | `redundant-statements` | [Redundant statements](https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements) | Informational | High +73 | `solc-version` | [Incorrect Solidity version](https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity) | Informational | High +74 | `unimplemented-functions` | [Unimplemented functions](https://github.com/crytic/slither/wiki/Detector-Documentation#unimplemented-functions) | Informational | High +75 | `unused-state` | [Unused state variables](https://github.com/crytic/slither/wiki/Detector-Documentation#unused-state-variable) | Informational | High +76 | `costly-loop` | [Costly operations in a loop](https://github.com/crytic/slither/wiki/Detector-Documentation#costly-operations-inside-a-loop) | Informational | Medium +77 | `dead-code` | [Functions that are not used](https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code) | Informational | Medium +78 | `reentrancy-unlimited-gas` | [Reentrancy vulnerabilities through send and transfer](https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-4) | Informational | Medium +79 | `similar-names` | [Variable names are too similar](https://github.com/crytic/slither/wiki/Detector-Documentation#variable-names-too-similar) | Informational | Medium +80 | `too-many-digits` | [Conformance to numeric notation best practices](https://github.com/crytic/slither/wiki/Detector-Documentation#too-many-digits) | Informational | Medium +81 | `constable-states` | [State variables that could be declared constant](https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant) | Optimization | High +82 | `external-function` | [Public function that could be declared external](https://github.com/crytic/slither/wiki/Detector-Documentation#public-function-that-could-be-declared-external) | Optimization | High +83 | `immutable-states` | [State variables that could be declared immutable](https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-immutable) | Optimization | High +84 | `var-read-using-this` | [Contract reads its own variable using `this`](https://github.com/crytic/slither/wiki/Vulnerabilities-Description#public-variable-read-in-external-context) | Optimization | High For more information, see - The [Detector Documentation](https://github.com/crytic/slither/wiki/Detector-Documentation) for details on each detector From cbbcb8c8b128c329868614bccd493277daf4a4cc Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 13:16:50 -0500 Subject: [PATCH 081/193] pylint and black --- slither/utils/upgradeability.py | 41 ++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index a5017fafc..1c53a6cf8 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -82,8 +82,12 @@ def compare( tainted-functions: list[Function] """ - order_vars1 = [v for v in v1.state_variables_ordered if not v.is_constant and not v.is_immutable] - order_vars2 = [v for v in v2.state_variables_ordered if not v.is_constant and not v.is_immutable] + order_vars1 = [ + v for v in v1.state_variables_ordered if not v.is_constant and not v.is_immutable + ] + order_vars2 = [ + v for v in v2.state_variables_ordered if not v.is_constant and not v.is_immutable + ] func_sigs1 = [function.solidity_signature for function in v1.functions] func_sigs2 = [function.solidity_signature for function in v2.functions] @@ -404,7 +408,9 @@ def find_delegate_in_fallback(proxy: Contract) -> Optional[Variable]: if isinstance(dest, Identifier): delegate = dest.value break - if isinstance(dest, Literal) and len(dest.value) == 66: # 32 bytes = 64 chars + "0x" = 66 chars + if ( + isinstance(dest, Literal) and len(dest.value) == 66 + ): # 32 bytes = 64 chars + "0x" = 66 chars # Storage slot is not declared as a constant, but rather is hardcoded in the assembly, # so create a new StateVariable to represent it. delegate = create_state_variable_from_slot(dest.value) @@ -477,10 +483,30 @@ def find_delegate_from_name( if parent_func.contains_assembly: for node in parent_func.all_nodes(): if node.type == NodeType.ASSEMBLY and isinstance(node.inline_asm, str): - asm = next((s for s in node.inline_asm.split("\n") if f"{dest}:=sload(" in s.replace(" ", "")), None) + asm = next( + ( + s + for s in node.inline_asm.split("\n") + if f"{dest}:=sload(" in s.replace(" ", "") + ), + None, + ) if asm: slot = asm.split("sload(")[1].split(")")[0] - return create_state_variable_from_slot(slot, name=dest) + if slot.startswith("0x"): + return create_state_variable_from_slot(slot, name=dest) + try: + slot_idx = int(slot) + return next( + ( + v + for v in contract.state_variables_ordered + if SlitherReadStorage.get_variable_info(contract, v)[0] == slot_idx + ), + None, + ) + except TypeError: + continue return None @@ -507,6 +533,5 @@ def create_state_variable_from_slot(slot: str, name: str = None) -> Optional[Sta v.name = slot v.type = ElementaryType("bytes32") return v - else: - # This should probably also handle hashed strings, but for now return None - return None + # This should probably also handle hashed strings, but for now return None + return None From bff30a3481f61babbd55323b3ab6a42eb3be6118 Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 13:18:28 -0500 Subject: [PATCH 082/193] Update upgradeability util tests with tests of implementation variable/slot getter functions --- tests/test_upgradeability_util.py | 60 ++++++++++++++--- .../TestUpgrades-0.5.0.sol | 5 ++ ...estUpgrades.sol => TestUpgrades-0.8.2.sol} | 0 .../upgradeability-util/src/EIP1822Proxy.sol | 47 +++++++++++++ .../src/MasterCopyProxy.sol | 27 ++++++++ tests/upgradeability-util/src/ZosProxy.sol | 67 +++++++++++++++++++ 6 files changed, 197 insertions(+), 9 deletions(-) create mode 100644 tests/upgradeability-util/TestUpgrades-0.5.0.sol rename tests/upgradeability-util/{TestUpgrades.sol => TestUpgrades-0.8.2.sol} (100%) create mode 100644 tests/upgradeability-util/src/EIP1822Proxy.sol create mode 100644 tests/upgradeability-util/src/MasterCopyProxy.sol create mode 100644 tests/upgradeability-util/src/ZosProxy.sol diff --git a/tests/test_upgradeability_util.py b/tests/test_upgradeability_util.py index 72fb8c4ec..b0beba0cd 100644 --- a/tests/test_upgradeability_util.py +++ b/tests/test_upgradeability_util.py @@ -1,14 +1,14 @@ import os -import json -import re from solc_select import solc_select -from deepdiff import DeepDiff from slither import Slither -from slither.core.declarations import Function -from slither.core.variables import StateVariable -from slither.utils.upgradeability import compare +from slither.core.expressions import Literal +from slither.utils.upgradeability import ( + compare, + get_proxy_implementation_var, + get_proxy_implementation_slot, +) SLITHER_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) UPGRADE_TEST_ROOT = os.path.join(SLITHER_ROOT, "tests", "upgradeability-util") @@ -18,7 +18,7 @@ UPGRADE_TEST_ROOT = os.path.join(SLITHER_ROOT, "tests", "upgradeability-util") def test_upgrades_compare() -> None: solc_select.switch_global_version("0.8.2", always_install=True) - sl = Slither(os.path.join(UPGRADE_TEST_ROOT, "TestUpgrades.sol")) + sl = Slither(os.path.join(UPGRADE_TEST_ROOT, "TestUpgrades-0.8.2.sol")) v1 = sl.get_contract_from_name("ContractV1")[0] v2 = sl.get_contract_from_name("ContractV2")[0] missing_vars, new_vars, tainted_vars, new_funcs, modified_funcs, tainted_funcs = compare(v1, v2) @@ -26,11 +26,53 @@ def test_upgrades_compare() -> None: assert new_vars == [v2.get_state_variable_from_name("stateC")] assert tainted_vars == [ v2.get_state_variable_from_name("stateB"), - v2.get_state_variable_from_name("bug") + v2.get_state_variable_from_name("bug"), ] assert new_funcs == [v2.get_function_from_signature("i()")] assert modified_funcs == [v2.get_function_from_signature("checkB()")] assert tainted_funcs == [ v2.get_function_from_signature("g(uint256)"), - v2.get_function_from_signature("h()") + v2.get_function_from_signature("h()"), ] + + +def test_upgrades_implementation_var() -> None: + solc_select.switch_global_version("0.8.2", always_install=True) + sl = Slither(os.path.join(UPGRADE_TEST_ROOT, "TestUpgrades-0.8.2.sol")) + + erc_1967_proxy = sl.get_contract_from_name("ERC1967Proxy")[0] + storage_proxy = sl.get_contract_from_name("InheritedStorageProxy")[0] + + target = get_proxy_implementation_var(erc_1967_proxy) + slot = get_proxy_implementation_slot(erc_1967_proxy) + assert target == erc_1967_proxy.get_state_variable_from_name("_IMPLEMENTATION_SLOT") + assert slot.slot == 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC + target = get_proxy_implementation_var(storage_proxy) + slot = get_proxy_implementation_slot(storage_proxy) + assert target == storage_proxy.get_state_variable_from_name("implementation") + assert slot.slot == 1 + + solc_select.switch_global_version("0.5.0", always_install=True) + sl = Slither(os.path.join(UPGRADE_TEST_ROOT, "TestUpgrades-0.5.0.sol")) + + eip_1822_proxy = sl.get_contract_from_name("EIP1822Proxy")[0] + zos_proxy = sl.get_contract_from_name("ZosProxy")[0] + master_copy_proxy = sl.get_contract_from_name("MasterCopyProxy")[0] + + target = get_proxy_implementation_var(eip_1822_proxy) + slot = get_proxy_implementation_slot(eip_1822_proxy) + assert target not in eip_1822_proxy.state_variables_ordered + assert target.name == "contractLogic" and isinstance(target.expression, Literal) + assert ( + target.expression.value + == "0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7" + ) + assert slot.slot == 0xC5F16F0FCC639FA48A6947836D9850F504798523BF8C9A3A87D5876CF622BCF7 + target = get_proxy_implementation_var(zos_proxy) + slot = get_proxy_implementation_slot(zos_proxy) + assert target == zos_proxy.get_state_variable_from_name("IMPLEMENTATION_SLOT") + assert slot.slot == 0x7050C9E0F4CA769C69BD3A8EF740BC37934F8E2C036E5A723FD8EE048ED3F8C3 + target = get_proxy_implementation_var(master_copy_proxy) + slot = get_proxy_implementation_slot(master_copy_proxy) + assert target == master_copy_proxy.get_state_variable_from_name("masterCopy") + assert slot.slot == 0 diff --git a/tests/upgradeability-util/TestUpgrades-0.5.0.sol b/tests/upgradeability-util/TestUpgrades-0.5.0.sol new file mode 100644 index 000000000..86fa42ec5 --- /dev/null +++ b/tests/upgradeability-util/TestUpgrades-0.5.0.sol @@ -0,0 +1,5 @@ +pragma solidity ^0.5.0; + +import "./src/EIP1822Proxy.sol"; +import "./src/ZosProxy.sol"; +import "./src/MasterCopyProxy.sol"; diff --git a/tests/upgradeability-util/TestUpgrades.sol b/tests/upgradeability-util/TestUpgrades-0.8.2.sol similarity index 100% rename from tests/upgradeability-util/TestUpgrades.sol rename to tests/upgradeability-util/TestUpgrades-0.8.2.sol diff --git a/tests/upgradeability-util/src/EIP1822Proxy.sol b/tests/upgradeability-util/src/EIP1822Proxy.sol new file mode 100644 index 000000000..3145eb17e --- /dev/null +++ b/tests/upgradeability-util/src/EIP1822Proxy.sol @@ -0,0 +1,47 @@ +pragma solidity ^0.5.0; + +contract EIP1822Proxy { + // Code position in storage is keccak256("PROXIABLE") = "0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7" + constructor(bytes memory constructData, address contractLogic) public { + // save the code address + assembly { // solium-disable-line + sstore(0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7, contractLogic) + } + (bool success, bytes memory _ ) = contractLogic.delegatecall(constructData); // solium-disable-line + require(success, "Construction failed"); + } + + function() external payable { + assembly { // solium-disable-line + let contractLogic := sload(0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7) + calldatacopy(0x0, 0x0, calldatasize) + let success := delegatecall(sub(gas, 10000), contractLogic, 0x0, calldatasize, 0, 0) + let retSz := returndatasize + returndatacopy(0, 0, retSz) + switch success + case 0 { + revert(0, retSz) + } + default { + return(0, retSz) + } + } + } +} + +contract EIP1822Proxiable { + // Code position in storage is keccak256("PROXIABLE") = "0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7" + + function updateCodeAddress(address newAddress) internal { + require( + bytes32(0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7) == EIP1822Proxiable(newAddress).proxiableUUID(), + "Not compatible" + ); + assembly { // solium-disable-line + sstore(0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7, newAddress) + } + } + function proxiableUUID() public pure returns (bytes32) { + return 0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7; + } +} \ No newline at end of file diff --git a/tests/upgradeability-util/src/MasterCopyProxy.sol b/tests/upgradeability-util/src/MasterCopyProxy.sol new file mode 100644 index 000000000..d25a2a920 --- /dev/null +++ b/tests/upgradeability-util/src/MasterCopyProxy.sol @@ -0,0 +1,27 @@ +pragma solidity ^0.5.0; + +contract MasterCopyProxy { + address internal masterCopy; + + constructor(address _masterCopy) + public + { + require(_masterCopy != address(0), "Invalid master copy address provided"); + masterCopy = _masterCopy; + } + + /// @dev Fallback function forwards all transactions and returns all received return data. + function () + external + payable + { + // solium-disable-next-line security/no-inline-assembly + assembly { + calldatacopy(0, 0, calldatasize()) + let success := delegatecall(gas, sload(0), 0, calldatasize(), 0, 0) + returndatacopy(0, 0, returndatasize()) + if eq(success, 0) { revert(0, returndatasize()) } + return(0, returndatasize()) + } + } +} diff --git a/tests/upgradeability-util/src/ZosProxy.sol b/tests/upgradeability-util/src/ZosProxy.sol new file mode 100644 index 000000000..db44f4c98 --- /dev/null +++ b/tests/upgradeability-util/src/ZosProxy.sol @@ -0,0 +1,67 @@ +pragma solidity ^0.5.0; + +contract ZosProxy { + function () payable external { + _fallback(); + } + + function _implementation() internal view returns (address); + + function _delegate(address implementation) internal { + assembly { + calldatacopy(0, 0, calldatasize) + let result := delegatecall(gas, implementation, 0, calldatasize, 0, 0) + returndatacopy(0, 0, returndatasize) + switch result + case 0 { revert(0, returndatasize) } + default { return(0, returndatasize) } + } + } + + function _willFallback() internal { + } + + function _fallback() internal { + _willFallback(); + _delegate(_implementation()); + } +} + +library AddressUtils { + function isContract(address addr) internal view returns (bool) { + uint256 size; + assembly { size := extcodesize(addr) } + return size > 0; + } +} + +contract UpgradeabilityProxy is ZosProxy { + event Upgraded(address indexed implementation); + + bytes32 private constant IMPLEMENTATION_SLOT = 0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3; + + constructor(address _implementation) public payable { + assert(IMPLEMENTATION_SLOT == keccak256("org.zeppelinos.proxy.implementation")); + _setImplementation(_implementation); + } + + function _implementation() internal view returns (address impl) { + bytes32 slot = IMPLEMENTATION_SLOT; + assembly { + impl := sload(slot) + } + } + + function _upgradeTo(address newImplementation) internal { + _setImplementation(newImplementation); + emit Upgraded(newImplementation); + } + + function _setImplementation(address newImplementation) private { + require(AddressUtils.isContract(newImplementation), "Cannot set a proxy implementation to a non-contract address"); + bytes32 slot = IMPLEMENTATION_SLOT; + assembly { + sstore(slot, newImplementation) + } + } +} From 574afbe04bf399bdb72c1fad160557062f101a56 Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 13:39:41 -0500 Subject: [PATCH 083/193] Add `get_missing_vars` to util, use it in `compare` --- slither/utils/upgradeability.py | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 1c53a6cf8..ef3000fe1 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -1,4 +1,4 @@ -from typing import Optional, Tuple +from typing import Optional, Tuple, List from slither.core.declarations import ( Contract, Structure, @@ -102,9 +102,7 @@ def compare( # Since this is not a detector, include any missing variables in the v2 contract if len(order_vars2) < len(order_vars1): - for variable in order_vars1: - if variable.name not in [v.name for v in order_vars2]: - results["missing-vars-in-v2"].append(variable) + results["missing-vars-in-v2"].extend(get_missing_vars(v1, v2)) # Find all new and modified functions in the v2 contract new_modified_functions = [] @@ -171,6 +169,30 @@ def compare( ) +def get_missing_vars(v1: Contract, v2: Contract) -> List[StateVariable]: + """ + Gets all non-constant/immutable StateVariables that appear in v1 but not v2 + Args: + v1: Contract version 1 + v2: Contract version 2 + + Returns: + List of StateVariables from v1 missing in v2 + """ + results = [] + order_vars1 = [ + v for v in v1.state_variables_ordered if not v.is_constant and not v.is_immutable + ] + order_vars2 = [ + v for v in v2.state_variables_ordered if not v.is_constant and not v.is_immutable + ] + if len(order_vars2) < len(order_vars1): + for variable in order_vars1: + if variable.name not in [v.name for v in order_vars2]: + results.append(variable) + return results + + def is_function_modified(f1: Function, f2: Function) -> bool: """ Compares two versions of a function, and returns True if the function has been modified. From f216817d21e8398f4663708cc7d1ca07984dd0e2 Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 13:40:28 -0500 Subject: [PATCH 084/193] Use `get_missing_vars` in MissingVariable detector --- .../upgradeability/checks/variables_order.py | 22 +++++-------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/slither/tools/upgradeability/checks/variables_order.py b/slither/tools/upgradeability/checks/variables_order.py index 030fb0f65..e83d8b32b 100644 --- a/slither/tools/upgradeability/checks/variables_order.py +++ b/slither/tools/upgradeability/checks/variables_order.py @@ -2,6 +2,7 @@ from slither.tools.upgradeability.checks.abstract_checks import ( CheckClassification, AbstractCheck, ) +from slither.utils.upgradeability import get_missing_vars class MissingVariable(AbstractCheck): @@ -48,24 +49,13 @@ Do not change the order of the state variables in the updated contract. def _check(self): contract1 = self.contract contract2 = self.contract_v2 - order1 = [ - variable - for variable in contract1.state_variables_ordered - if not (variable.is_constant or variable.is_immutable) - ] - order2 = [ - variable - for variable in contract2.state_variables_ordered - if not (variable.is_constant or variable.is_immutable) - ] + missing = get_missing_vars(contract1, contract2) results = [] - for idx, _ in enumerate(order1): - variable1 = order1[idx] - if len(order2) <= idx: - info = ["Variable missing in ", contract2, ": ", variable1, "\n"] - json = self.generate_result(info) - results.append(json) + for variable1 in missing: + info = ["Variable missing in ", contract2, ": ", variable1, "\n"] + json = self.generate_result(info) + results.append(json) return results From 1588334844ba8e137e2f3bf69dd970041fc485ae Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 13:49:45 -0500 Subject: [PATCH 085/193] Fix `compare` return signature --- slither/utils/upgradeability.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index ef3000fe1..8ea7a4d0c 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -63,7 +63,7 @@ from slither.tools.read_storage.read_storage import SlotInfo, SlitherReadStorage def compare( v1: Contract, v2: Contract ) -> Tuple[ - list[Variable], list[Variable], list[Variable], list[Function], list[Function], list[Function] + List[Variable], List[Variable], List[Variable], List[Function], List[Function], List[Function] ]: """ Compares two versions of a contract. Most useful for upgradeable (logic) contracts, From e6b8af882c6419a9119bec5f4cfff93985a92f4e Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Fri, 17 Mar 2023 20:11:35 +0100 Subject: [PATCH 086/193] 0.9.3 --- setup.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index f9d100afd..1dbce4c76 100644 --- a/setup.py +++ b/setup.py @@ -8,15 +8,15 @@ setup( description="Slither is a Solidity static analysis framework written in Python 3.", url="https://github.com/crytic/slither", author="Trail of Bits", - version="0.9.2", + version="0.9.3", packages=find_packages(), python_requires=">=3.8", install_requires=[ "packaging", "prettytable>=0.7.2", "pycryptodome>=3.4.6", - # "crytic-compile>=0.3.0", - "crytic-compile@git+https://github.com/crytic/crytic-compile.git@master#egg=crytic-compile", + "crytic-compile>=0.3.1,<0.4.0", + # "crytic-compile@git+https://github.com/crytic/crytic-compile.git@master#egg=crytic-compile", "web3>=6.0.0", ], extras_require={ From 0e708e6c051bce69e61a2ee80f7c379d17eeb7ff Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 14:21:31 -0500 Subject: [PATCH 087/193] Handle sload from integer slot, i.e., `sload(0)` --- slither/utils/upgradeability.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/slither/utils/upgradeability.py b/slither/utils/upgradeability.py index 8ea7a4d0c..73720ca54 100644 --- a/slither/utils/upgradeability.py +++ b/slither/utils/upgradeability.py @@ -461,9 +461,18 @@ def extract_delegate_from_asm(contract: Contract, node: Node) -> Optional[Variab dest = params[2] if dest.startswith("sload("): dest = dest.replace(")", "(").split("(")[1] - v = create_state_variable_from_slot(dest) - if v is not None: - return v + if dest.startswith("0x"): + return create_state_variable_from_slot(dest) + if dest.isnumeric(): + slot_idx = int(dest) + return next( + ( + v + for v in contract.state_variables_ordered + if SlitherReadStorage.get_variable_info(contract, v)[0] == slot_idx + ), + None, + ) for v in node.function.variables_read_or_written: if v.name == dest: if isinstance(v, LocalVariable) and v.expression is not None: From 9192fef4a7ad007b52c07eb79b6c3477836d1c89 Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 14:22:25 -0500 Subject: [PATCH 088/193] Comment out ZosProxy test for now (see issue #1775 for why it fails) --- tests/test_upgradeability_util.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/test_upgradeability_util.py b/tests/test_upgradeability_util.py index b0beba0cd..ddd0ac593 100644 --- a/tests/test_upgradeability_util.py +++ b/tests/test_upgradeability_util.py @@ -56,7 +56,7 @@ def test_upgrades_implementation_var() -> None: sl = Slither(os.path.join(UPGRADE_TEST_ROOT, "TestUpgrades-0.5.0.sol")) eip_1822_proxy = sl.get_contract_from_name("EIP1822Proxy")[0] - zos_proxy = sl.get_contract_from_name("ZosProxy")[0] + # zos_proxy = sl.get_contract_from_name("ZosProxy")[0] master_copy_proxy = sl.get_contract_from_name("MasterCopyProxy")[0] target = get_proxy_implementation_var(eip_1822_proxy) @@ -68,10 +68,11 @@ def test_upgrades_implementation_var() -> None: == "0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7" ) assert slot.slot == 0xC5F16F0FCC639FA48A6947836D9850F504798523BF8C9A3A87D5876CF622BCF7 - target = get_proxy_implementation_var(zos_proxy) - slot = get_proxy_implementation_slot(zos_proxy) - assert target == zos_proxy.get_state_variable_from_name("IMPLEMENTATION_SLOT") - assert slot.slot == 0x7050C9E0F4CA769C69BD3A8EF740BC37934F8E2C036E5A723FD8EE048ED3F8C3 + # # The util fails with this proxy due to how Slither parses assembly w/ Solidity versions < 0.6.0 (see issue #1775) + # target = get_proxy_implementation_var(zos_proxy) + # slot = get_proxy_implementation_slot(zos_proxy) + # assert target == zos_proxy.get_state_variable_from_name("IMPLEMENTATION_SLOT") + # assert slot.slot == 0x7050C9E0F4CA769C69BD3A8EF740BC37934F8E2C036E5A723FD8EE048ED3F8C3 target = get_proxy_implementation_var(master_copy_proxy) slot = get_proxy_implementation_slot(master_copy_proxy) assert target == master_copy_proxy.get_state_variable_from_name("masterCopy") From 4d8181ee0e8e5b767c84b93d9b24a510169b6e97 Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 14:29:01 -0500 Subject: [PATCH 089/193] Check `contract.functions_entry_points` instead of `function.visibility` --- slither/utils/code_generation.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index c0ece478c..8b3a267b1 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -5,7 +5,7 @@ from slither.core.declarations.contract import Contract from slither.core.solidity_types.user_defined_type import UserDefinedType if TYPE_CHECKING: - from slither.core.declarations import Function, Structure + from slither.core.declarations import FunctionContract, Structure def generate_interface(contract: "Contract") -> str: @@ -36,13 +36,13 @@ def generate_interface(contract: "Contract") -> str: return interface -def generate_interface_function_signature(func: "Function") -> Optional[str]: +def generate_interface_function_signature(func: "FunctionContract") -> Optional[str]: """ Generates a string of the form: func_name(type1,type2) external {payable/view/pure} returns (type3) Args: - func: A Function object + func: A FunctionContract object Returns: The function interface as a str (contains the return values). @@ -50,9 +50,8 @@ def generate_interface_function_signature(func: "Function") -> Optional[str]: """ name, parameters, return_vars = func.signature - visibility = func.visibility if ( - visibility in ["private", "internal"] + func not in func.contract.functions_entry_points or func.is_constructor or func.is_fallback or func.is_receive From 4dfe45742a1fceee9c584b604576385d57186669 Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 14:33:45 -0500 Subject: [PATCH 090/193] Update docstring --- 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 8b3a267b1..8d7b1ec71 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -16,7 +16,7 @@ def generate_interface(contract: "Contract") -> str: 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 or structs declared in the contract. + 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: From 72c6d78130b5d9cc42d6b46f61c8b90368f16a2b Mon Sep 17 00:00:00 2001 From: webthethird Date: Fri, 17 Mar 2023 15:04:59 -0500 Subject: [PATCH 091/193] Add SynthProxy.sol to test_upgradeability_util.py test --- tests/test_upgradeability_util.py | 5 ++ .../TestUpgrades-0.5.0.sol | 1 + tests/upgradeability-util/src/SynthProxy.sol | 58 +++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 tests/upgradeability-util/src/SynthProxy.sol diff --git a/tests/test_upgradeability_util.py b/tests/test_upgradeability_util.py index ddd0ac593..dd12d68a1 100644 --- a/tests/test_upgradeability_util.py +++ b/tests/test_upgradeability_util.py @@ -58,6 +58,7 @@ def test_upgrades_implementation_var() -> None: eip_1822_proxy = sl.get_contract_from_name("EIP1822Proxy")[0] # zos_proxy = sl.get_contract_from_name("ZosProxy")[0] master_copy_proxy = sl.get_contract_from_name("MasterCopyProxy")[0] + synth_proxy = sl.get_contract_from_name("SynthProxy")[0] target = get_proxy_implementation_var(eip_1822_proxy) slot = get_proxy_implementation_slot(eip_1822_proxy) @@ -77,3 +78,7 @@ def test_upgrades_implementation_var() -> None: slot = get_proxy_implementation_slot(master_copy_proxy) assert target == master_copy_proxy.get_state_variable_from_name("masterCopy") assert slot.slot == 0 + target = get_proxy_implementation_var(synth_proxy) + slot = get_proxy_implementation_slot(synth_proxy) + assert target == synth_proxy.get_state_variable_from_name("target") + assert slot.slot == 1 diff --git a/tests/upgradeability-util/TestUpgrades-0.5.0.sol b/tests/upgradeability-util/TestUpgrades-0.5.0.sol index 86fa42ec5..eaecfa6e9 100644 --- a/tests/upgradeability-util/TestUpgrades-0.5.0.sol +++ b/tests/upgradeability-util/TestUpgrades-0.5.0.sol @@ -3,3 +3,4 @@ pragma solidity ^0.5.0; import "./src/EIP1822Proxy.sol"; import "./src/ZosProxy.sol"; import "./src/MasterCopyProxy.sol"; +import "./src/SynthProxy.sol"; diff --git a/tests/upgradeability-util/src/SynthProxy.sol b/tests/upgradeability-util/src/SynthProxy.sol new file mode 100644 index 000000000..9b3a6bdef --- /dev/null +++ b/tests/upgradeability-util/src/SynthProxy.sol @@ -0,0 +1,58 @@ +pragma solidity ^0.5.0; + +contract Owned { + address public owner; + + constructor(address _owner) public { + require(_owner != address(0), "Owner address cannot be 0"); + owner = _owner; + } + + modifier onlyOwner { + require(msg.sender == owner, "Only the contract owner may perform this action"); + _; + } +} + +contract Proxyable is Owned { + /* The proxy this contract exists behind. */ + SynthProxy public proxy; + + constructor(address payable _proxy) internal { + // This contract is abstract, and thus cannot be instantiated directly + require(owner != address(0), "Owner must be set"); + + proxy = SynthProxy(_proxy); + } + + function setProxy(address payable _proxy) external onlyOwner { + proxy = SynthProxy(_proxy); + } +} + + +contract SynthProxy is Owned { + Proxyable public target; + + constructor(address _owner) public Owned(_owner) {} + + function setTarget(Proxyable _target) external onlyOwner { + target = _target; + } + + // solhint-disable no-complex-fallback + function() external payable { + assembly { + calldatacopy(0, 0, calldatasize) + + /* We must explicitly forward ether to the underlying contract as well. */ + let result := delegatecall(gas, sload(target_slot), 0, calldatasize, 0, 0) + returndatacopy(0, 0, returndatasize) + + if iszero(result) { + revert(0, returndatasize) + } + return(0, returndatasize) + } + } +} From 1d35316d9b59683956fd20d98fbf7acc40749c78 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 20 Mar 2023 10:06:39 -0500 Subject: [PATCH 092/193] Use `convert_type_for_solidity_signature_to_string` and include Enums --- slither/utils/code_generation.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 8d7b1ec71..0cb9af9c8 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -3,6 +3,7 @@ from typing import TYPE_CHECKING, Optional from slither.core.declarations.contract import Contract from slither.core.solidity_types.user_defined_type import UserDefinedType +from slither.utils.type import convert_type_for_solidity_signature_to_string if TYPE_CHECKING: from slither.core.declarations import FunctionContract, Structure @@ -23,7 +24,11 @@ def generate_interface(contract: "Contract") -> str: name, args = event.signature interface += f" event {name}({','.join(args)});\n" for error in contract.custom_errors: - interface += f" error {error.solidity_signature};\n" + 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" + 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) for var in contract.state_variables_entry_points: @@ -61,9 +66,7 @@ def generate_interface_function_signature(func: "FunctionContract") -> Optional[ pure = " pure" if func.pure else "" payable = " payable" if func.payable else "" returns = [ - "address" - if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, Contract) - else str(ret.type) + convert_type_for_solidity_signature_to_string(ret.type) for ret in func.returns ] _interface_signature_str = ( From 2c30d4619218b9e60c86c8788541ccce4ad2fb2e Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 20 Mar 2023 10:08:30 -0500 Subject: [PATCH 093/193] Minor formatting --- slither/utils/code_generation.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 0cb9af9c8..080c8bd3e 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -1,12 +1,11 @@ # Functions for generating Solidity code from typing import TYPE_CHECKING, Optional -from slither.core.declarations.contract import Contract from slither.core.solidity_types.user_defined_type import UserDefinedType from slither.utils.type import convert_type_for_solidity_signature_to_string if TYPE_CHECKING: - from slither.core.declarations import FunctionContract, Structure + from slither.core.declarations import FunctionContract, Structure, Contract def generate_interface(contract: "Contract") -> str: @@ -22,7 +21,7 @@ def generate_interface(contract: "Contract") -> str: interface = f"interface I{contract.name} {{\n" for event in contract.events: name, args = event.signature - interface += f" event {name}({','.join(args)});\n" + 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] @@ -69,11 +68,14 @@ def generate_interface_function_signature(func: "FunctionContract") -> Optional[ convert_type_for_solidity_signature_to_string(ret.type) for ret in func.returns ] + parameters = [ + param.replace(f"{func.contract.name}.", "") for param in parameters + ] _interface_signature_str = ( name + "(" + ",".join(parameters) + ") external" + payable + pure + view ) if len(return_vars) > 0: - _interface_signature_str += " returns (" + ",".join(returns) + ")" + _interface_signature_str += " returns (" + ",".join(returns).replace("(", "").replace(")", "") + ")" return _interface_signature_str From dd1b2a84b929c0ef567ac25cc2201a4035a75c96 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 20 Mar 2023 10:09:11 -0500 Subject: [PATCH 094/193] Add test for interface code generation --- tests/code_generation/CodeGeneration.sol | 56 ++++++++++++++++++++++++ tests/test_code_generation.py | 25 +++++++++++ 2 files changed, 81 insertions(+) create mode 100644 tests/code_generation/CodeGeneration.sol create mode 100644 tests/test_code_generation.py diff --git a/tests/code_generation/CodeGeneration.sol b/tests/code_generation/CodeGeneration.sol new file mode 100644 index 000000000..c15017abd --- /dev/null +++ b/tests/code_generation/CodeGeneration.sol @@ -0,0 +1,56 @@ +pragma solidity ^0.8.4; +interface I { + enum SomeEnum { ONE, TWO, THREE } + error ErrorWithEnum(SomeEnum e); +} + +contract TestContract is I { + uint public stateA; + uint private stateB; + address public immutable owner = msg.sender; + mapping(address => mapping(uint => St)) public structs; + + event NoParams(); + event Anonymous() anonymous; + event OneParam(address addr); + event OneParamIndexed(address indexed addr); + + error ErrorSimple(); + error ErrorWithArgs(uint, uint); + error ErrorWithStruct(St s); + + struct St{ + uint v; + } + + function err0() public { + revert ErrorSimple(); + } + function err1() public { + St memory s; + revert ErrorWithStruct(s); + } + function err2(uint a, uint b) public { + revert ErrorWithArgs(a, b); + revert ErrorWithArgs(uint(SomeEnum.ONE), uint(SomeEnum.ONE)); + } + function err3() internal { + revert('test'); + } + function err4() private { + revert ErrorWithEnum(SomeEnum.ONE); + } + + function newSt(uint x) public returns (St memory) { + St memory st; + st.v = x; + structs[msg.sender][x] = st; + return st; + } + function getSt(uint x) public view returns (St memory) { + return structs[msg.sender][x]; + } + function removeSt(St memory st) public { + delete structs[msg.sender][st.v]; + } +} \ No newline at end of file diff --git a/tests/test_code_generation.py b/tests/test_code_generation.py new file mode 100644 index 000000000..9733f7c90 --- /dev/null +++ b/tests/test_code_generation.py @@ -0,0 +1,25 @@ +import os + +from solc_select import solc_select + +from slither import Slither +from slither.core.expressions import Literal +from slither.utils.code_generation import ( + generate_interface, + generate_interface_function_signature, + generate_struct_interface_str, +) + +SLITHER_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +CODE_TEST_ROOT = os.path.join(SLITHER_ROOT, "tests", "code_generation") + + +def test_interface_generation() -> None: + solc_select.switch_global_version("0.8.4", always_install=True) + + sl = Slither(os.path.join(CODE_TEST_ROOT, "CodeGeneration.sol")) + + with open("actual_generated_code.sol", "w", encoding="utf-8") as file: + file.write(generate_interface(sl.get_contract_from_name("TestContract")[0])) + + From b0dcc57f03b08c8273873c2b989283caf21dfcfd Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 20 Mar 2023 10:19:13 -0500 Subject: [PATCH 095/193] Add test for interface code generation --- tests/code_generation/TEST_generated_code.sol | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 tests/code_generation/TEST_generated_code.sol diff --git a/tests/code_generation/TEST_generated_code.sol b/tests/code_generation/TEST_generated_code.sol new file mode 100644 index 000000000..62e08bd74 --- /dev/null +++ b/tests/code_generation/TEST_generated_code.sol @@ -0,0 +1,24 @@ +interface ITestContract { + event NoParams(); + event Anonymous(); + event OneParam(address); + event OneParamIndexed(address); + error ErrorWithEnum(uint8); + error ErrorSimple(); + error ErrorWithArgs(uint256, uint256); + error ErrorWithStruct(uint256); + 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 (uint256); + function getSt(uint256) external view returns (uint256); + function removeSt(uint256) external; +} + From b78fa7f1a20ad2a69ed068fe8819eb6ec6ca6cfc Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 20 Mar 2023 10:19:33 -0500 Subject: [PATCH 096/193] Unwrap parameters as well --- slither/utils/code_generation.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 080c8bd3e..fa1793b4f 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -65,17 +65,18 @@ def generate_interface_function_signature(func: "FunctionContract") -> Optional[ pure = " pure" if func.pure else "" payable = " payable" if func.payable else "" returns = [ - convert_type_for_solidity_signature_to_string(ret.type) + convert_type_for_solidity_signature_to_string(ret.type).replace("(", "").replace(")", "") for ret in func.returns ] parameters = [ - param.replace(f"{func.contract.name}.", "") for param in parameters + convert_type_for_solidity_signature_to_string(param.type).replace("(", "").replace(")", "") + for param in func.parameters ] _interface_signature_str = ( name + "(" + ",".join(parameters) + ") external" + payable + pure + view ) if len(return_vars) > 0: - _interface_signature_str += " returns (" + ",".join(returns).replace("(", "").replace(")", "") + ")" + _interface_signature_str += " returns (" + ",".join(returns) + ")" return _interface_signature_str From 7532baae57543cdc4627998728fe6ae0be7a3056 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 20 Mar 2023 10:24:37 -0500 Subject: [PATCH 097/193] Finish testing interface generation --- tests/test_code_generation.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/test_code_generation.py b/tests/test_code_generation.py index 9733f7c90..35db30a44 100644 --- a/tests/test_code_generation.py +++ b/tests/test_code_generation.py @@ -19,7 +19,12 @@ def test_interface_generation() -> None: sl = Slither(os.path.join(CODE_TEST_ROOT, "CodeGeneration.sol")) - with open("actual_generated_code.sol", "w", encoding="utf-8") as file: - file.write(generate_interface(sl.get_contract_from_name("TestContract")[0])) + actual = generate_interface(sl.get_contract_from_name("TestContract")[0]) + expected_path = os.path.join(CODE_TEST_ROOT, "TEST_generated_code.sol") + + with open(expected_path, "r", encoding="utf-8") as file: + expected = file.read() + + assert actual == expected From 6d685711dd1d6b14605df2e801e579e2647f5c9a Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 20 Mar 2023 10:53:29 -0500 Subject: [PATCH 098/193] Pylint and black --- slither/utils/code_generation.py | 9 ++++++--- tests/test_code_generation.py | 5 ----- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index fa1793b4f..951bf4702 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -1,7 +1,6 @@ # Functions for generating Solidity code from typing import TYPE_CHECKING, Optional -from slither.core.solidity_types.user_defined_type import UserDefinedType from slither.utils.type import convert_type_for_solidity_signature_to_string if TYPE_CHECKING: @@ -23,8 +22,12 @@ 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] + 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" for enum in contract.enums: interface += f" enum {enum.name} {{ {', '.join(enum.values)} }}\n" diff --git a/tests/test_code_generation.py b/tests/test_code_generation.py index 35db30a44..13d1c8fb0 100644 --- a/tests/test_code_generation.py +++ b/tests/test_code_generation.py @@ -3,11 +3,8 @@ import os from solc_select import solc_select from slither import Slither -from slither.core.expressions import Literal from slither.utils.code_generation import ( generate_interface, - generate_interface_function_signature, - generate_struct_interface_str, ) SLITHER_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -26,5 +23,3 @@ def test_interface_generation() -> None: expected = file.read() assert actual == expected - - From 2ad442b270f42cde759b65ea225423fcd366ca16 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 20 Mar 2023 14:18:38 -0500 Subject: [PATCH 099/193] move solc parsing and detectors into e2e folder --- ...erride.sol.0.4.25.RightToLeftOverride.json | 32 - ...erride.sol.0.5.16.RightToLeftOverride.json | 32 - ...erride.sol.0.6.11.RightToLeftOverride.json | 32 - ...verride.sol.0.8.0.RightToLeftOverride.json | 88 - ....sol.0.5.10.StorageSignedIntegerArray.json | 3 - ....sol.0.5.16.StorageSignedIntegerArray.json | 3 - ....UninitializedFunctionPtrsConstructor.json | 3 - .../0.4.25/storage_ABIEncoderV2_array.sol | 0 ...V2_array.sol.0.4.25.ABIEncoderV2Array.json | 320 +- .../0.5.10/storage_ABIEncoderV2_array.sol | 0 ...V2_array.sol.0.5.10.ABIEncoderV2Array.json | 0 ...V2_array.sol.0.5.11.ABIEncoderV2Array.json | 0 .../0.5.9/storage_ABIEncoderV2_array.sol | 0 ...rV2_array.sol.0.5.9.ABIEncoderV2Array.json | 396 +- .../0.4.25/arbitrary_send_erc20_permit.sol | 0 ...t.sol.0.4.25.ArbitrarySendErc20Permit.json | 280 +- .../0.5.16/arbitrary_send_erc20_permit.sol | 0 ...t.sol.0.5.16.ArbitrarySendErc20Permit.json | 232 +- .../0.6.11/arbitrary_send_erc20_permit.sol | 0 ...t.sol.0.6.11.ArbitrarySendErc20Permit.json | 112 +- .../0.7.6/arbitrary_send_erc20_permit.sol | 0 ...it.sol.0.7.6.ArbitrarySendErc20Permit.json | 280 +- .../0.8.0/arbitrary_send_erc20_permit.sol | 0 ...it.sol.0.8.0.ArbitrarySendErc20Permit.json | 274 +- .../0.4.25/arbitrary_send_erc20.sol | 0 ...sol.0.4.25.ArbitrarySendErc20NoPermit.json | 160 +- .../0.5.16/arbitrary_send_erc20.sol | 0 ...sol.0.5.16.ArbitrarySendErc20NoPermit.json | 160 +- .../0.6.11/arbitrary_send_erc20.sol | 0 ...sol.0.6.11.ArbitrarySendErc20NoPermit.json | 160 +- .../0.7.6/arbitrary_send_erc20.sol | 0 ....sol.0.7.6.ArbitrarySendErc20NoPermit.json | 198 +- .../0.8.0/arbitrary_send_erc20.sol | 0 ....sol.0.8.0.ArbitrarySendErc20NoPermit.json | 198 +- .../arbitrary_send_erc20_inheritance.sol | 0 ....sol.0.8.0.ArbitrarySendErc20NoPermit.json | 28 +- .../0.4.25/arbitrary_send_eth.sol | 0 ..._send_eth.sol.0.4.25.ArbitrarySendEth.json | 132 +- .../0.5.16/arbitrary_send_eth.sol | 0 ..._send_eth.sol.0.5.16.ArbitrarySendEth.json | 56 +- .../0.6.11/arbitrary_send_eth.sol | 0 ..._send_eth.sol.0.6.11.ArbitrarySendEth.json | 56 +- .../0.7.6/arbitrary_send_eth.sol | 0 ...y_send_eth.sol.0.7.6.ArbitrarySendEth.json | 132 +- .../0.4.25/array_by_reference.sol | 0 ...reference.sol.0.4.25.ArrayByReference.json | 188 +- .../0.5.16/array_by_reference.sol | 0 ...reference.sol.0.5.16.ArrayByReference.json | 188 +- .../0.6.11/array_by_reference.sol | 0 ...reference.sol.0.6.11.ArrayByReference.json | 188 +- .../0.7.6/array_by_reference.sol | 0 ..._reference.sol.0.7.6.ArrayByReference.json | 188 +- .../0.4.25/inline_assembly_contract.sol | 0 ...assembly_contract.sol.0.4.25.Assembly.json | 28 +- .../0.4.25/inline_assembly_library.sol | 0 ..._assembly_library.sol.0.4.25.Assembly.json | 276 +- .../0.5.16/inline_assembly_contract.sol | 0 ...assembly_contract.sol.0.5.16.Assembly.json | 28 +- .../0.5.16/inline_assembly_library.sol | 0 ..._assembly_library.sol.0.5.16.Assembly.json | 56 +- .../0.6.11/inline_assembly_contract.sol | 0 ...assembly_contract.sol.0.6.11.Assembly.json | 28 +- .../0.6.11/inline_assembly_library.sol | 0 ..._assembly_library.sol.0.6.11.Assembly.json | 272 +- .../0.7.6/inline_assembly_contract.sol | 0 ..._assembly_contract.sol.0.7.6.Assembly.json | 28 +- .../0.7.6/inline_assembly_library.sol | 0 ...e_assembly_library.sol.0.7.6.Assembly.json | 272 +- .../0.4.25/assert_state_change.sol | 0 ...e_change.sol.0.4.25.AssertStateChange.json | 152 +- .../0.5.16/assert_state_change.sol | 0 ...e_change.sol.0.5.16.AssertStateChange.json | 160 +- .../0.6.11/assert_state_change.sol | 0 ...e_change.sol.0.6.11.AssertStateChange.json | 160 +- .../0.7.6/assert_state_change.sol | 0 ...te_change.sol.0.7.6.AssertStateChange.json | 84 +- .../test_data}/backdoor/0.4.25/backdoor.sol | 0 .../0.4.25/backdoor.sol.0.4.25.Backdoor.json | 14 +- .../test_data}/backdoor/0.5.16/backdoor.sol | 0 .../0.5.16/backdoor.sol.0.5.16.Backdoor.json | 14 +- .../test_data}/backdoor/0.6.11/backdoor.sol | 0 .../0.6.11/backdoor.sol.0.6.11.Backdoor.json | 14 +- .../test_data}/backdoor/0.7.6/backdoor.sol | 0 .../0.7.6/backdoor.sol.0.7.6.Backdoor.json | 14 +- .../0.4.25/boolean-constant-misuse.sol | 0 ...suse.sol.0.4.25.BooleanConstantMisuse.json | 28 +- .../0.5.16/boolean-constant-misuse.sol | 0 ...suse.sol.0.5.16.BooleanConstantMisuse.json | 28 +- .../0.6.11/boolean-constant-misuse.sol | 0 ...suse.sol.0.6.11.BooleanConstantMisuse.json | 28 +- .../0.7.6/boolean-constant-misuse.sol | 0 ...isuse.sol.0.7.6.BooleanConstantMisuse.json | 28 +- .../0.4.25/boolean-constant-equality.sol | 0 ...t-equality.sol.0.4.25.BooleanEquality.json | 28 +- .../0.5.16/boolean-constant-equality.sol | 0 ...t-equality.sol.0.5.16.BooleanEquality.json | 28 +- .../0.6.11/boolean-constant-equality.sol | 0 ...t-equality.sol.0.6.11.BooleanEquality.json | 28 +- .../0.7.6/boolean-constant-equality.sol | 0 ...nt-equality.sol.0.7.6.BooleanEquality.json | 28 +- .../0.4.25/multiple_calls_in_loop.sol | 0 ...n_loop.sol.0.4.25.MultipleCallsInLoop.json | 452 +- .../0.5.16/multiple_calls_in_loop.sol | 0 ...n_loop.sol.0.5.16.MultipleCallsInLoop.json | 460 +- .../0.6.11/multiple_calls_in_loop.sol | 0 ...n_loop.sol.0.6.11.MultipleCallsInLoop.json | 460 +- .../0.7.6/multiple_calls_in_loop.sol | 0 ...in_loop.sol.0.7.6.MultipleCallsInLoop.json | 440 +- .../0.4.25/const_state_variables.sol | 0 ..._variables.sol.0.4.25.CouldBeConstant.json | 84 +- .../0.5.16/const_state_variables.sol | 0 ..._variables.sol.0.5.16.CouldBeConstant.json | 98 +- .../0.6.11/const_state_variables.sol | 0 ..._variables.sol.0.6.11.CouldBeConstant.json | 98 +- .../0.7.6/const_state_variables.sol | 0 ...e_variables.sol.0.7.6.CouldBeConstant.json | 98 +- .../0.8.0/const_state_variables.sol | 0 ...e_variables.sol.0.8.0.CouldBeConstant.json | 98 +- .../constant-function-asm/0.4.25/constant.sol | 0 ...stant.sol.0.4.25.ConstantFunctionsAsm.json | 14 +- .../constant-function-asm/0.5.16/constant.sol | 0 ...stant.sol.0.5.16.ConstantFunctionsAsm.json | 0 .../constant-function-asm/0.6.11/constant.sol | 0 ...stant.sol.0.6.11.ConstantFunctionsAsm.json | 0 .../constant-function-asm/0.7.6/constant.sol | 0 ...nstant.sol.0.7.6.ConstantFunctionsAsm.json | 0 .../0.4.25/constant.sol | 0 ...ant.sol.0.4.25.ConstantFunctionsState.json | 44 +- .../0.5.16/constant.sol | 0 ...ant.sol.0.5.16.ConstantFunctionsState.json | 0 .../0.6.11/constant.sol | 0 ...ant.sol.0.6.11.ConstantFunctionsState.json | 0 .../0.7.6/constant.sol | 0 ...tant.sol.0.7.6.ConstantFunctionsState.json | 0 .../0.4.25/array_length_assignment.sol | 0 ...ment.sol.0.4.25.ArrayLengthAssignment.json | 104 +- .../0.5.16/array_length_assignment.sol | 0 ...ment.sol.0.5.16.ArrayLengthAssignment.json | 104 +- .../0.4.25/controlled_delegatecall.sol | 0 ...ll.sol.0.4.25.ControlledDelegateCall.json} | 56 +- .../0.5.16/controlled_delegatecall.sol | 0 ...all.sol.0.5.16.ControlledDelegateCall.json | 136 +- .../0.6.11/controlled_delegatecall.sol | 0 ...all.sol.0.6.11.ControlledDelegateCall.json | 56 +- .../0.7.6/controlled_delegatecall.sol | 0 ...all.sol.0.7.6.ControlledDelegateCall.json} | 56 +- .../multiple_costly_operations_in_loop.sol | 0 ...oop.sol.0.4.25.CostlyOperationsInLoop.json | 480 +- .../multiple_costly_operations_in_loop.sol | 0 ...oop.sol.0.5.16.CostlyOperationsInLoop.json | 244 +- .../multiple_costly_operations_in_loop.sol | 0 ...oop.sol.0.6.11.CostlyOperationsInLoop.json | 480 +- .../multiple_costly_operations_in_loop.sol | 0 ...loop.sol.0.7.6.CostlyOperationsInLoop.json | 204 +- .../0.8.16/HighCyclomaticComplexity.sol | 0 ...exity.sol.0.8.16.CyclomaticComplexity.json | 14 +- .../0.8.16/LowCyclomaticComplexity.sol | 0 ...exity.sol.0.8.16.CyclomaticComplexity.json | 0 .../test_data}/dead-code/0.8.0/dead-code.sol | 0 .../0.8.0/dead-code.sol.0.8.0.DeadCode.json | 42 +- .../0.4.25/delegatecall_loop.sol | 0 ...ll_loop.sol.0.4.25.DelegatecallInLoop.json | 220 +- .../0.5.16/delegatecall_loop.sol | 0 ...ll_loop.sol.0.5.16.DelegatecallInLoop.json | 180 +- .../0.6.11/delegatecall_loop.sol | 0 ...ll_loop.sol.0.6.11.DelegatecallInLoop.json | 84 +- .../0.7.6/delegatecall_loop.sol | 0 ...all_loop.sol.0.7.6.DelegatecallInLoop.json | 180 +- .../0.8.0/delegatecall_loop.sol | 0 ...all_loop.sol.0.8.0.DelegatecallInLoop.json | 180 +- .../0.4.25/deprecated_calls.sol | 0 ..._calls.sol.0.4.25.DeprecatedStandards.json | 40 +- .../0.4.25/divide_before_multiply.sol | 0 ...tiply.sol.0.4.25.DivideBeforeMultiply.json | 28 +- .../0.5.16/divide_before_multiply.sol | 0 ...iply.sol.0.5.16.DivideBeforeMultiply.json} | 28 +- .../0.6.11/divide_before_multiply.sol | 0 ...tiply.sol.0.6.11.DivideBeforeMultiply.json | 28 +- .../0.7.6/divide_before_multiply.sol | 0 ...tiply.sol.0.7.6.DivideBeforeMultiply.json} | 28 +- .../0.4.25/permit_domain_collision.sol | 0 ...n.sol.0.4.25.DomainSeparatorCollision.json | 14 +- .../permit_domain_state_var_collision.sol | 0 ...n.sol.0.4.25.DomainSeparatorCollision.json | 14 +- .../permit_domain_wrong_return_type.sol | 0 ...e.sol.0.4.25.DomainSeparatorCollision.json | 14 +- .../0.5.16/permit_domain_collision.sol | 0 ...n.sol.0.5.16.DomainSeparatorCollision.json | 14 +- .../permit_domain_state_var_collision.sol | 0 ...n.sol.0.5.16.DomainSeparatorCollision.json | 14 +- .../permit_domain_wrong_return_type.sol | 0 ...e.sol.0.5.16.DomainSeparatorCollision.json | 14 +- .../0.6.11/permit_domain_collision.sol | 0 ...n.sol.0.6.11.DomainSeparatorCollision.json | 14 +- .../permit_domain_state_var_collision.sol | 0 ...n.sol.0.6.11.DomainSeparatorCollision.json | 14 +- .../permit_domain_wrong_return_type.sol | 0 ...e.sol.0.6.11.DomainSeparatorCollision.json | 14 +- .../0.7.6/permit_domain_collision.sol | 0 ...on.sol.0.7.6.DomainSeparatorCollision.json | 14 +- .../permit_domain_state_var_collision.sol | 0 ...on.sol.0.7.6.DomainSeparatorCollision.json | 14 +- .../0.7.6/permit_domain_wrong_return_type.sol | 0 ...pe.sol.0.7.6.DomainSeparatorCollision.json | 14 +- .../0.8.0/permit_domain_collision.sol | 0 ...on.sol.0.8.0.DomainSeparatorCollision.json | 14 +- .../permit_domain_state_var_collision.sol | 0 ...on.sol.0.8.0.DomainSeparatorCollision.json | 14 +- .../0.8.0/permit_domain_wrong_return_type.sol | 0 ...pe.sol.0.8.0.DomainSeparatorCollision.json | 14 +- .../enum-conversion/0.4.2/enum_conversion.sol | 0 ...m_conversion.sol.0.4.2.EnumConversion.json | 0 .../erc20-indexed/0.4.25/erc20_indexed.sol | 0 ....0.4.25.UnindexedERC20EventParameters.json | 56 +- .../erc20-indexed/0.5.16/erc20_indexed.sol | 0 ....0.5.16.UnindexedERC20EventParameters.json | 56 +- .../erc20-indexed/0.6.11/erc20_indexed.sol | 0 ....0.6.11.UnindexedERC20EventParameters.json | 56 +- .../erc20-indexed/0.7.6/erc20_indexed.sol | 0 ...l.0.7.6.UnindexedERC20EventParameters.json | 56 +- .../0.4.25/incorrect_erc20_interface.sol | 0 ...4.25.IncorrectERC20InterfaceDetection.json | 108 +- .../0.5.16/incorrect_erc20_interface.sol | 0 ...5.16.IncorrectERC20InterfaceDetection.json | 108 +- .../0.6.11/incorrect_erc20_interface.sol | 0 ...6.11.IncorrectERC20InterfaceDetection.json | 108 +- .../0.7.6/incorrect_erc20_interface.sol | 0 ....7.6.IncorrectERC20InterfaceDetection.json | 108 +- .../0.4.25/incorrect_erc721_interface.sol | 0 ....25.IncorrectERC721InterfaceDetection.json | 180 +- .../0.5.16/incorrect_erc721_interface.sol | 0 ....16.IncorrectERC721InterfaceDetection.json | 180 +- .../0.6.11/incorrect_erc721_interface.sol | 0 ....11.IncorrectERC721InterfaceDetection.json | 180 +- .../0.7.6/incorrect_erc721_interface.sol | 0 ...7.6.IncorrectERC721InterfaceDetection.json | 180 +- .../0.4.25/missing_events_access_control.sol | 0 ...sol.0.4.25.MissingEventsAccessControl.json | 164 +- .../0.5.16/missing_events_access_control.sol | 0 ...sol.0.5.16.MissingEventsAccessControl.json | 152 +- .../0.6.11/missing_events_access_control.sol | 0 ...sol.0.6.11.MissingEventsAccessControl.json | 196 +- .../0.7.6/missing_events_access_control.sol | 0 ....sol.0.7.6.MissingEventsAccessControl.json | 196 +- .../0.4.25/missing_events_arithmetic.sol | 0 ...ic.sol.0.4.25.MissingEventsArithmetic.json | 132 +- .../0.5.16/missing_events_arithmetic.sol | 0 ...ic.sol.0.5.16.MissingEventsArithmetic.json | 132 +- .../0.6.11/missing_events_arithmetic.sol | 0 ...ic.sol.0.6.11.MissingEventsArithmetic.json | 56 +- .../0.7.6/missing_events_arithmetic.sol | 0 ...tic.sol.0.7.6.MissingEventsArithmetic.json | 56 +- .../0.4.25/external_function.sol | 0 ..._function.sol.0.4.25.ExternalFunction.json | 0 .../0.4.25/external_function_2.sol | 0 ...unction_2.sol.0.4.25.ExternalFunction.json | 0 .../0.4.25/external_function_3.sol | 0 ...unction_3.sol.0.4.25.ExternalFunction.json | 42 +- .../0.4.25/external_function_import.sol | 0 .../0.5.16/external_function.sol | 0 ..._function.sol.0.5.16.ExternalFunction.json | 0 .../0.5.16/external_function_2.sol | 0 ...unction_2.sol.0.5.16.ExternalFunction.json | 0 .../0.5.16/external_function_3.sol | 0 ...unction_3.sol.0.5.16.ExternalFunction.json | 56 +- .../0.5.16/external_function_import.sol | 0 .../0.6.11/external_function.sol | 0 ..._function.sol.0.6.11.ExternalFunction.json | 0 .../0.6.11/external_function_2.sol | 0 ...unction_2.sol.0.6.11.ExternalFunction.json | 0 .../0.6.11/external_function_3.sol | 0 ...unction_3.sol.0.6.11.ExternalFunction.json | 0 .../0.6.11/external_function_import.sol | 0 .../0.7.6/external_function.sol | 0 ...l_function.sol.0.7.6.ExternalFunction.json | 0 .../0.7.6/external_function_2.sol | 0 ...function_2.sol.0.7.6.ExternalFunction.json | 0 .../0.7.6/external_function_3.sol | 0 ...function_3.sol.0.7.6.ExternalFunction.json | 0 .../0.7.6/external_function_import.sol | 0 .../0.4.25/function_init_state_variables.sol | 0 ...s.sol.0.4.25.FunctionInitializedState.json | 70 +- .../0.5.16/function_init_state_variables.sol | 0 ...s.sol.0.5.16.FunctionInitializedState.json | 70 +- .../0.6.11/function_init_state_variables.sol | 0 ...s.sol.0.6.11.FunctionInitializedState.json | 70 +- .../0.7.6/function_init_state_variables.sol | 0 ...es.sol.0.7.6.FunctionInitializedState.json | 70 +- .../0.4.25/immut_state_variables.sol | 0 ...variables.sol.0.4.25.CouldBeImmutable.json | 0 .../0.5.16/immut_state_variables.sol | 0 ...variables.sol.0.5.16.CouldBeImmutable.json | 0 .../0.6.11/immut_state_variables.sol | 0 ...variables.sol.0.6.11.CouldBeImmutable.json | 70 +- .../0.7.6/immut_state_variables.sol | 0 ..._variables.sol.0.7.6.CouldBeImmutable.json | 70 +- .../0.8.0/immut_state_variables.sol | 0 ..._variables.sol.0.8.0.CouldBeImmutable.json | 56 +- .../0.4.25/incorrect_equality.sol | 0 ...ty.sol.0.4.25.IncorrectStrictEquality.json | 1840 +- .../0.5.16/incorrect_equality.sol | 0 ...ty.sol.0.5.16.IncorrectStrictEquality.json | 1918 +- .../0.6.11/incorrect_equality.sol | 0 ...ty.sol.0.6.11.IncorrectStrictEquality.json | 1372 +- .../0.7.6/incorrect_equality.sol | 0 ...ity.sol.0.7.6.IncorrectStrictEquality.json | 1648 +- .../0.4.25/modifier_default.sol | 0 ...t.sol.0.4.25.ModifierDefaultDetection.json | 42 +- .../0.5.16/modifier_default.sol | 0 ...t.sol.0.5.16.ModifierDefaultDetection.json | 42 +- .../0.6.11/modifier_default.sol | 0 ...t.sol.0.6.11.ModifierDefaultDetection.json | 42 +- .../0.7.6/modifier_default.sol | 0 ...lt.sol.0.7.6.ModifierDefaultDetection.json | 42 +- .../0.4.25/shift_parameter_mixup.sol | 0 ..._mixup.sol.0.4.25.ShiftParameterMixup.json | 0 .../0.5.16/shift_parameter_mixup.sol | 0 ..._mixup.sol.0.5.16.ShiftParameterMixup.json | 0 .../0.6.11/shift_parameter_mixup.sol | 0 ..._mixup.sol.0.6.11.ShiftParameterMixup.json | 28 +- .../0.7.6/shift_parameter_mixup.sol | 0 ...r_mixup.sol.0.7.6.ShiftParameterMixup.json | 28 +- .../0.4.25/invalid_unary_expression.sol | 0 ....25.IncorrectUnaryExpressionDetection.json | 320 +- .../locked-ether/0.4.25/locked_ether.sol | 0 .../locked_ether.sol.0.4.25.LockedEther.json | 18 +- .../locked-ether/0.5.16/locked_ether.sol | 0 .../locked_ether.sol.0.5.16.LockedEther.json | 18 +- .../locked-ether/0.6.11/locked_ether.sol | 0 .../locked_ether.sol.0.6.11.LockedEther.json | 18 +- .../locked-ether/0.7.6/locked_ether.sol | 0 .../locked_ether.sol.0.7.6.LockedEther.json | 18 +- .../0.4.25/low_level_calls.sol | 0 ..._level_calls.sol.0.4.25.LowLevelCalls.json | 28 +- .../0.5.16/low_level_calls.sol | 0 ..._level_calls.sol.0.5.16.LowLevelCalls.json | 28 +- .../0.6.11/low_level_calls.sol | 0 ..._level_calls.sol.0.6.11.LowLevelCalls.json | 28 +- .../low-level-calls/0.7.6/low_level_calls.sol | 0 ...w_level_calls.sol.0.7.6.LowLevelCalls.json | 28 +- .../0.4.25/MappingDeletion.sol | 0 ...n.sol.0.4.25.MappingDeletionDetection.json | 388 +- .../0.5.16/MappingDeletion.sol | 0 ...n.sol.0.5.16.MappingDeletionDetection.json | 388 +- .../0.6.11/MappingDeletion.sol | 0 ...n.sol.0.6.11.MappingDeletionDetection.json | 388 +- .../0.7.6/MappingDeletion.sol | 0 ...on.sol.0.7.6.MappingDeletionDetection.json | 72 +- .../0.4.25/unimplemented_interface.sol | 0 ...terface.sol.0.4.25.MissingInheritance.json | 14 +- .../0.5.16/unimplemented_interface.sol | 0 ...terface.sol.0.5.16.MissingInheritance.json | 14 +- .../0.6.11/unimplemented_interface.sol | 0 ...terface.sol.0.6.11.MissingInheritance.json | 14 +- .../0.7.6/unimplemented_interface.sol | 0 ...nterface.sol.0.7.6.MissingInheritance.json | 14 +- .../missing_zero_address_validation.sol | 0 ...l.0.4.25.MissingZeroAddressValidation.json | 264 +- .../missing_zero_address_validation.sol | 0 ...l.0.5.16.MissingZeroAddressValidation.json | 530 +- .../missing_zero_address_validation.sol | 0 ...l.0.6.11.MissingZeroAddressValidation.json | 264 +- .../0.7.6/missing_zero_address_validation.sol | 0 ...ol.0.7.6.MissingZeroAddressValidation.json | 318 +- .../msg-value-loop/0.4.25/msg_value_loop.sol | 0 ..._value_loop.sol.0.4.25.MsgValueInLoop.json | 180 +- .../msg-value-loop/0.5.16/msg_value_loop.sol | 0 ..._value_loop.sol.0.5.16.MsgValueInLoop.json | 184 +- .../msg-value-loop/0.6.11/msg_value_loop.sol | 0 ..._value_loop.sol.0.6.11.MsgValueInLoop.json | 84 +- .../msg-value-loop/0.7.6/msg_value_loop.sol | 0 ...g_value_loop.sol.0.7.6.MsgValueInLoop.json | 84 +- .../msg-value-loop/0.8.0/msg_value_loop.sol | 0 ...g_value_loop.sol.0.8.0.MsgValueInLoop.json | 226 +- .../0.4.22/multiple_constructor_schemes.sol | 0 ...sol.0.4.22.MultipleConstructorSchemes.json | 26 +- .../0.4.25/naming_convention.sol | 0 ...onvention.sol.0.4.25.NamingConvention.json | 228 +- .../0.4.25/naming_convention_ignore.sol | 0 .../no_warning_for_public_constants.sol | 0 ...constants.sol.0.4.25.NamingConvention.json | 0 .../0.5.16/naming_convention.sol | 0 ...onvention.sol.0.5.16.NamingConvention.json | 228 +- .../0.5.16/naming_convention_ignore.sol | 0 .../no_warning_for_public_constants.sol | 0 ...constants.sol.0.5.16.NamingConvention.json | 0 .../0.6.11/naming_convention.sol | 0 ...onvention.sol.0.6.11.NamingConvention.json | 228 +- .../0.6.11/naming_convention_ignore.sol | 0 .../no_warning_for_public_constants.sol | 0 ...constants.sol.0.6.11.NamingConvention.json | 0 .../0.7.6/naming_convention.sol | 0 ...convention.sol.0.7.6.NamingConvention.json | 228 +- .../0.7.6/naming_convention_ignore.sol | 0 .../0.7.6/no_warning_for_public_constants.sol | 0 ..._constants.sol.0.7.6.NamingConvention.json | 0 .../pragma/0.4.25/pragma.0.4.24.sol | 0 .../pragma/0.4.25/pragma.0.4.25.sol | 0 ...agma.0.4.25.sol.0.4.25.ConstantPragma.json | 16 +- .../pragma/0.5.16/pragma.0.5.15.sol | 0 .../pragma/0.5.16/pragma.0.5.16.sol | 0 ...agma.0.5.16.sol.0.5.16.ConstantPragma.json | 16 +- .../pragma/0.6.11/pragma.0.6.10.sol | 0 .../pragma/0.6.11/pragma.0.6.11.sol | 0 ...agma.0.6.11.sol.0.6.11.ConstantPragma.json | 16 +- .../test_data}/pragma/0.7.6/pragma.0.7.5.sol | 0 .../test_data}/pragma/0.7.6/pragma.0.7.6.sol | 0 ...pragma.0.7.6.sol.0.7.6.ConstantPragma.json | 16 +- .../protected-vars/0.8.2/comment.sol | 0 .../comment.sol.0.8.2.ProtectedVariables.json | 60 +- .../0.4.25/public_mappings_nested.sol | 0 ...nested.sol.0.4.25.PublicMappingNested.json | 14 +- .../0.4.25/redundant_statements.sol | 0 ...ements.sol.0.4.25.RedundantStatements.json | 156 +- .../0.5.16/redundant_statements.sol | 0 ...ements.sol.0.5.16.RedundantStatements.json | 218 +- .../0.6.11/redundant_statements.sol | 0 ...ements.sol.0.6.11.RedundantStatements.json | 252 +- .../0.7.6/redundant_statements.sol | 0 ...tements.sol.0.7.6.RedundantStatements.json | 204 +- .../0.4.25/reentrancy-benign.sol | 0 ...cy-benign.sol.0.4.25.ReentrancyBenign.json | 1658 +- .../0.5.16/reentrancy-benign.sol | 0 ...cy-benign.sol.0.5.16.ReentrancyBenign.json | 2262 +- .../0.6.11/reentrancy-benign.sol | 0 ...cy-benign.sol.0.6.11.ReentrancyBenign.json | 1878 +- .../0.7.6/reentrancy-benign.sol | 0 ...ncy-benign.sol.0.7.6.ReentrancyBenign.json | 2300 +- .../test_data}/reentrancy-eth/0.4.25/DAO.sol | 0 .../0.4.25/DAO.sol.0.4.25.ReentrancyEth.json | 9712 +++---- .../reentrancy-eth/0.4.25/reentrancy.sol | 0 .../reentrancy.sol.0.4.25.ReentrancyEth.json | 80 +- .../0.4.25/reentrancy_indirect.sol | 0 ...ncy_indirect.sol.0.4.25.ReentrancyEth.json | 64 +- .../reentrancy-eth/0.5.16/reentrancy.sol | 0 .../reentrancy.sol.0.5.16.ReentrancyEth.json | 80 +- .../0.5.16/reentrancy_indirect.sol | 0 ...ncy_indirect.sol.0.5.16.ReentrancyEth.json | 64 +- .../reentrancy-eth/0.6.11/reentrancy.sol | 0 .../reentrancy.sol.0.6.11.ReentrancyEth.json | 80 +- .../0.6.11/reentrancy_indirect.sol | 0 ...ncy_indirect.sol.0.6.11.ReentrancyEth.json | 64 +- .../reentrancy-eth/0.7.6/reentrancy.sol | 0 .../reentrancy.sol.0.7.6.ReentrancyEth.json | 80 +- .../0.7.6/reentrancy_indirect.sol | 0 ...ancy_indirect.sol.0.7.6.ReentrancyEth.json | 64 +- .../0.8.10/reentrancy_filtered_comments.sol | 0 ...red_comments.sol.0.8.10.ReentrancyEth.json | 40 +- .../0.8.10/reentrancy_with_non_reentrant.sol | 0 ...on_reentrant.sol.0.8.10.ReentrancyEth.json | 818 +- .../0.5.16/reentrancy-events.sol | 0 ...ncy-events.sol.0.5.16.ReentrancyEvent.json | 40 +- .../0.6.11/reentrancy-events.sol | 0 ...ncy-events.sol.0.6.11.ReentrancyEvent.json | 40 +- .../0.7.6/reentrancy-events.sol | 0 ...ancy-events.sol.0.7.6.ReentrancyEvent.json | 40 +- .../reentrancy-no-eth/0.4.25/DAO.sol | 0 ...ol.0.4.25.ReentrancyReadBeforeWritten.json | 22318 ++++++++-------- .../0.4.25/reentrancy-write.sol | 0 ...ol.0.4.25.ReentrancyReadBeforeWritten.json | 446 +- .../0.5.16/no-reentrancy-staticcall.sol | 0 ...ol.0.5.16.ReentrancyReadBeforeWritten.json | 0 .../0.5.16/reentrancy-write.sol | 0 ...ol.0.5.16.ReentrancyReadBeforeWritten.json | 444 +- .../0.6.11/no-reentrancy-staticcall.sol | 0 ...ol.0.6.11.ReentrancyReadBeforeWritten.json | 0 .../0.6.11/reentrancy-write.sol | 0 ...ol.0.6.11.ReentrancyReadBeforeWritten.json | 116 +- .../0.7.6/no-reentrancy-staticcall.sol | 0 ...sol.0.7.6.ReentrancyReadBeforeWritten.json | 0 .../0.7.6/reentrancy-write.sol | 0 ...sol.0.7.6.ReentrancyReadBeforeWritten.json | 116 +- .../reentrancy-no-eth/0.8.2/comment.sol | 0 ...sol.0.8.2.ReentrancyReadBeforeWritten.json | 0 .../0.4.21/reused_base_constructor.sol | 0 ...ctor.sol.0.4.21.ReusedBaseConstructor.json | 156 +- .../0.4.25/reused_base_constructor.sol | 0 ...ctor.sol.0.4.25.ReusedBaseConstructor.json | 220 +- .../rtlo/0.4.25/right_to_left_override.sol | 0 ...erride.sol.0.4.25.RightToLeftOverride.json | 32 + .../rtlo/0.5.16/right_to_left_override.sol | 0 ...erride.sol.0.5.16.RightToLeftOverride.json | 32 + .../rtlo/0.6.11/right_to_left_override.sol | 0 ...erride.sol.0.6.11.RightToLeftOverride.json | 32 + .../rtlo/0.8.0/unicode_direction_override.sol | 0 ...verride.sol.0.8.0.RightToLeftOverride.json | 88 + .../0.4.25/shadowing_abstract.sol | 0 ...sol.0.4.25.ShadowingAbstractDetection.json | 22 +- .../0.5.16/shadowing_abstract.sol | 0 ...sol.0.5.16.ShadowingAbstractDetection.json | 22 +- .../0.7.5/public_gap_variable.sol | 0 ....sol.0.7.5.ShadowingAbstractDetection.json | 22 +- .../0.7.5/shadowing_state_variable.sol | 0 ....sol.0.7.5.ShadowingAbstractDetection.json | 0 .../0.4.25/shadowing_builtin_symbols.sol | 0 ...ols.sol.0.4.25.BuiltinSymbolShadowing.json | 194 +- .../0.5.16/shadowing_builtin_symbols.sol | 0 ...ols.sol.0.5.16.BuiltinSymbolShadowing.json | 180 +- .../0.4.25/shadowing_local_variable.sol | 0 ...al_variable.sol.0.4.25.LocalShadowing.json | 172 +- .../0.5.16/shadowing_local_variable.sol | 0 ...al_variable.sol.0.5.16.LocalShadowing.json | 202 +- .../0.6.11/shadowing_local_variable.sol | 0 ...al_variable.sol.0.6.11.LocalShadowing.json | 186 +- .../0.7.6/shadowing_local_variable.sol | 0 ...cal_variable.sol.0.7.6.LocalShadowing.json | 186 +- .../0.4.25/shadowing_state_variable.sol | 0 ...te_variable.sol.0.4.25.StateShadowing.json | 22 +- .../0.5.16/shadowing_state_variable.sol | 0 ...te_variable.sol.0.5.16.StateShadowing.json | 22 +- .../0.6.11/shadowing_state_variable.sol | 0 ...te_variable.sol.0.6.11.StateShadowing.json | 0 .../0.7.5/public_gap_variable.sol | 0 ...gap_variable.sol.0.7.5.StateShadowing.json | 22 +- .../0.7.5/shadowing_state_variable.sol | 0 ...ate_variable.sol.0.7.5.StateShadowing.json | 0 .../0.7.6/shadowing_state_variable.sol | 0 ...ate_variable.sol.0.7.6.StateShadowing.json | 0 .../0.4.25/similar_variables.sol | 0 ...ables.sol.0.4.25.SimilarVarsDetection.json | 30 +- .../0.5.16/similar_variables.sol | 0 ...ables.sol.0.5.16.SimilarVarsDetection.json | 30 +- .../0.6.11/similar_variables.sol | 0 ...ables.sol.0.6.11.SimilarVarsDetection.json | 30 +- .../similar-names/0.7.6/similar_variables.sol | 0 ...iables.sol.0.7.6.SimilarVarsDetection.json | 30 +- .../test_data}/solc-version/0.4.25/static.sol | 0 .../static.sol.0.4.25.IncorrectSolc.json | 32 +- .../test_data}/solc-version/0.5.14/static.sol | 0 .../static.sol.0.5.14.IncorrectSolc.json | 12 +- .../solc-version/0.5.16/dynamic_1.sol | 0 .../dynamic_1.sol.0.5.16.IncorrectSolc.json | 32 +- .../solc-version/0.5.16/dynamic_2.sol | 0 .../dynamic_2.sol.0.5.16.IncorrectSolc.json | 18 +- .../test_data}/solc-version/0.5.16/static.sol | 0 .../static.sol.0.5.16.IncorrectSolc.json | 32 +- .../test_data}/solc-version/0.6.10/static.sol | 0 .../static.sol.0.6.10.IncorrectSolc.json | 12 +- .../solc-version/0.6.11/dynamic_1.sol | 0 .../dynamic_1.sol.0.6.11.IncorrectSolc.json | 32 +- .../solc-version/0.6.11/dynamic_2.sol | 0 .../dynamic_2.sol.0.6.11.IncorrectSolc.json | 32 +- .../test_data}/solc-version/0.6.11/static.sol | 0 .../static.sol.0.6.11.IncorrectSolc.json | 12 +- .../test_data}/solc-version/0.7.4/static.sol | 0 .../0.7.4/static.sol.0.7.4.IncorrectSolc.json | 32 +- .../solc-version/0.7.6/dynamic_1.sol | 0 .../dynamic_1.sol.0.7.6.IncorrectSolc.json | 18 +- .../solc-version/0.7.6/dynamic_2.sol | 0 .../dynamic_2.sol.0.7.6.IncorrectSolc.json | 18 +- .../test_data}/solc-version/0.7.6/static.sol | 0 .../0.7.6/static.sol.0.7.6.IncorrectSolc.json | 32 +- .../0.5.10/storage_signed_integer_array.sol | 0 ....sol.0.5.10.StorageSignedIntegerArray.json | 757 + .../0.5.16/storage_signed_integer_array.sol | 0 ....sol.0.5.16.StorageSignedIntegerArray.json | 757 + .../test_data}/suicidal/0.4.25/suicidal.sol | 0 .../0.4.25/suicidal.sol.0.4.25.Suicidal.json | 14 +- .../test_data}/suicidal/0.5.16/suicidal.sol | 0 .../0.5.16/suicidal.sol.0.5.16.Suicidal.json | 14 +- .../test_data}/suicidal/0.6.11/suicidal.sol | 0 .../0.6.11/suicidal.sol.0.6.11.Suicidal.json | 14 +- .../test_data}/suicidal/0.7.6/suicidal.sol | 0 .../0.7.6/suicidal.sol.0.7.6.Suicidal.json | 14 +- .../tautology/0.4.25/type_based_tautology.sol | 0 ...utology.sol.0.4.25.TypeBasedTautology.json | 56 +- .../tautology/0.5.16/type_based_tautology.sol | 0 ...utology.sol.0.5.16.TypeBasedTautology.json | 56 +- .../tautology/0.6.11/type_based_tautology.sol | 0 ...utology.sol.0.6.11.TypeBasedTautology.json | 56 +- .../tautology/0.7.6/type_based_tautology.sol | 0 ...autology.sol.0.7.6.TypeBasedTautology.json | 56 +- .../test_data}/timestamp/0.4.25/timestamp.sol | 0 .../timestamp.sol.0.4.25.Timestamp.json | 202 +- .../test_data}/timestamp/0.5.16/timestamp.sol | 0 .../timestamp.sol.0.5.16.Timestamp.json | 84 +- .../test_data}/timestamp/0.6.11/timestamp.sol | 0 .../timestamp.sol.0.6.11.Timestamp.json | 202 +- .../test_data}/timestamp/0.7.6/timestamp.sol | 0 .../0.7.6/timestamp.sol.0.7.6.Timestamp.json | 84 +- .../0.4.25/too_many_digits.sol | 0 ..._many_digits.sol.0.4.25.TooManyDigits.json | 256 +- .../0.5.16/too_many_digits.sol | 0 ..._many_digits.sol.0.5.16.TooManyDigits.json | 180 +- .../0.6.11/too_many_digits.sol | 0 ..._many_digits.sol.0.6.11.TooManyDigits.json | 260 +- .../too-many-digits/0.7.6/too_many_digits.sol | 0 ...o_many_digits.sol.0.7.6.TooManyDigits.json | 252 +- .../test_data}/tx-origin/0.4.25/tx_origin.sol | 0 .../0.4.25/tx_origin.sol.0.4.25.TxOrigin.json | 144 +- .../test_data}/tx-origin/0.5.16/tx_origin.sol | 0 .../0.5.16/tx_origin.sol.0.5.16.TxOrigin.json | 56 +- .../test_data}/tx-origin/0.6.11/tx_origin.sol | 0 .../0.6.11/tx_origin.sol.0.6.11.TxOrigin.json | 56 +- .../test_data}/tx-origin/0.7.6/tx_origin.sol | 0 .../0.7.6/tx_origin.sol.0.7.6.TxOrigin.json | 56 +- .../0.4.25/unchecked_lowlevel.sol | 0 ...lowlevel.sol.0.4.25.UncheckedLowLevel.json | 28 +- .../0.5.16/unchecked_lowlevel.sol | 0 ...lowlevel.sol.0.5.16.UncheckedLowLevel.json | 28 +- .../0.6.11/unchecked_lowlevel.sol | 0 ...lowlevel.sol.0.6.11.UncheckedLowLevel.json | 28 +- .../0.7.6/unchecked_lowlevel.sol | 0 ..._lowlevel.sol.0.7.6.UncheckedLowLevel.json | 28 +- .../unchecked-send/0.4.25/unchecked_send.sol | 0 ...checked_send.sol.0.4.25.UncheckedSend.json | 28 +- .../unchecked-send/0.5.16/unchecked_send.sol | 0 ...checked_send.sol.0.5.16.UncheckedSend.json | 28 +- .../unchecked-send/0.6.11/unchecked_send.sol | 0 ...checked_send.sol.0.6.11.UncheckedSend.json | 28 +- .../unchecked-send/0.7.6/unchecked_send.sol | 0 ...nchecked_send.sol.0.7.6.UncheckedSend.json | 28 +- .../0.7.6/unused_return_transfers.sol | 0 ...transfers.sol.0.7.6.UncheckedTransfer.json | 56 +- .../0.4.25/unimplemented.sol | 0 ...0.4.25.UnimplementedFunctionDetection.json | 80 +- .../0.5.16/unimplemented.sol | 0 ...0.5.16.UnimplementedFunctionDetection.json | 44 +- .../0.5.16/unimplemented_interfaces.sol | 0 ...0.5.16.UnimplementedFunctionDetection.json | 0 .../0.6.11/unimplemented.sol | 0 ...0.6.11.UnimplementedFunctionDetection.json | 62 +- .../0.6.11/unimplemented_interfaces.sol | 0 ...0.6.11.UnimplementedFunctionDetection.json | 0 .../0.7.6/unimplemented.sol | 0 ....0.7.6.UnimplementedFunctionDetection.json | 62 +- .../0.7.6/unimplemented_interfaces.sol | 0 ....0.7.6.UnimplementedFunctionDetection.json | 0 ...uninitialized_function_ptr_constructor.sol | 0 ...UninitializedFunctionPtrsConstructor.json} | 278 +- ...uninitialized_function_ptr_constructor.sol | 0 ....UninitializedFunctionPtrsConstructor.json | 421 + ...uninitialized_function_ptr_constructor.sol | 0 ...UninitializedFunctionPtrsConstructor.json} | 376 +- .../0.4.25/uninitialized_local_variable.sol | 0 ...le.sol.0.4.25.UninitializedLocalVars.json} | 18 +- .../0.5.16/uninitialized_local_variable.sol | 0 ...ble.sol.0.5.16.UninitializedLocalVars.json | 18 +- .../0.6.11/uninitialized_local_variable.sol | 0 ...ble.sol.0.6.11.UninitializedLocalVars.json | 18 +- .../0.7.6/uninitialized_local_variable.sol | 0 ...ble.sol.0.7.6.UninitializedLocalVars.json} | 18 +- .../0.4.25/uninitialized.sol | 0 ....4.25.UninitializedStateVarsDetection.json | 88 +- .../0.5.16/uninitialized.sol | 0 ....5.16.UninitializedStateVarsDetection.json | 88 +- .../0.6.11/uninitialized.sol | 0 ....6.11.UninitializedStateVarsDetection.json | 88 +- .../0.7.6/uninitialized.sol | 0 ...0.7.6.UninitializedStateVarsDetection.json | 88 +- .../0.4.25/uninitialized_storage_pointer.sol | 0 ...r.sol.0.4.25.UninitializedStorageVars.json | 18 +- .../0.8.19/uninitialized_storage_pointer.sol | 0 ...r.sol.0.8.19.UninitializedStorageVars.json | 18 +- .../unprotected-upgrade/0.4.25/Buggy.sol | 0 ...ggy.sol.0.4.25.UnprotectedUpgradeable.json | 26 +- .../unprotected-upgrade/0.4.25/Fixed.sol | 0 ...xed.sol.0.4.25.UnprotectedUpgradeable.json | 0 .../0.4.25/Initializable.sol | 0 .../unprotected-upgrade/0.4.25/OnlyProxy.sol | 0 .../0.4.25/whitelisted.sol | 0 ...ted.sol.0.4.25.UnprotectedUpgradeable.json | 0 .../unprotected-upgrade/0.5.16/Buggy.sol | 0 ...ggy.sol.0.5.16.UnprotectedUpgradeable.json | 26 +- .../unprotected-upgrade/0.5.16/Fixed.sol | 0 ...xed.sol.0.5.16.UnprotectedUpgradeable.json | 0 .../0.5.16/Initializable.sol | 0 .../unprotected-upgrade/0.5.16/OnlyProxy.sol | 0 .../0.5.16/whitelisted.sol | 0 ...ted.sol.0.5.16.UnprotectedUpgradeable.json | 0 .../unprotected-upgrade/0.6.11/Buggy.sol | 0 ...ggy.sol.0.6.11.UnprotectedUpgradeable.json | 26 +- .../unprotected-upgrade/0.6.11/Fixed.sol | 0 ...xed.sol.0.6.11.UnprotectedUpgradeable.json | 0 .../0.6.11/Initializable.sol | 0 .../unprotected-upgrade/0.6.11/OnlyProxy.sol | 0 .../0.6.11/whitelisted.sol | 0 ...ted.sol.0.6.11.UnprotectedUpgradeable.json | 0 .../unprotected-upgrade/0.7.6/Buggy.sol | 0 ...uggy.sol.0.7.6.UnprotectedUpgradeable.json | 26 +- .../unprotected-upgrade/0.7.6/Fixed.sol | 0 ...ixed.sol.0.7.6.UnprotectedUpgradeable.json | 0 .../0.7.6/Initializable.sol | 0 .../unprotected-upgrade/0.7.6/OnlyProxy.sol | 0 .../unprotected-upgrade/0.7.6/whitelisted.sol | 0 ...sted.sol.0.7.6.UnprotectedUpgradeable.json | 0 .../unprotected-upgrade/0.8.15/Buggy.sol | 0 ...ggy.sol.0.8.15.UnprotectedUpgradeable.json | 26 +- .../unprotected-upgrade/0.8.15/Fixed.sol | 0 ...xed.sol.0.8.15.UnprotectedUpgradeable.json | 0 .../0.8.15/Initializable.sol | 0 .../unprotected-upgrade/0.8.15/OnlyProxy.sol | 0 .../0.8.15/whitelisted.sol | 0 ...ted.sol.0.8.15.UnprotectedUpgradeable.json | 0 .../unused-return/0.4.25/unused_return.sol | 0 ..._return.sol.0.4.25.UnusedReturnValues.json | 76 +- .../unused-return/0.5.16/unused_return.sol | 0 ..._return.sol.0.5.16.UnusedReturnValues.json | 56 +- .../unused-return/0.6.11/unused_return.sol | 0 ..._return.sol.0.6.11.UnusedReturnValues.json | 76 +- .../unused-return/0.7.6/unused_return.sol | 0 ...d_return.sol.0.7.6.UnusedReturnValues.json | 56 +- .../unused-state/0.4.25/unused_state.sol | 0 ...used_state.sol.0.4.25.UnusedStateVars.json | 72 +- .../unused-state/0.5.16/unused_state.sol | 0 ...used_state.sol.0.5.16.UnusedStateVars.json | 72 +- .../unused-state/0.6.11/unused_state.sol | 0 ...used_state.sol.0.6.11.UnusedStateVars.json | 72 +- .../unused-state/0.7.6/unused_state.sol | 0 ...nused_state.sol.0.7.6.UnusedStateVars.json | 72 +- .../0.4.25/var_read_using_this.sol | 0 ...sing_this.sol.0.4.25.VarReadUsingThis.json | 0 .../0.5.16/var_read_using_this.sol | 0 ...sing_this.sol.0.5.16.VarReadUsingThis.json | 200 +- .../0.6.11/var_read_using_this.sol | 0 ...sing_this.sol.0.6.11.VarReadUsingThis.json | 280 +- .../0.7.6/var_read_using_this.sol | 0 ...using_this.sol.0.7.6.VarReadUsingThis.json | 238 +- .../0.8.15/var_read_using_this.sol | 0 ...sing_this.sol.0.8.15.VarReadUsingThis.json | 196 +- .../0.4.25/predeclaration_usage_local.sol | 0 ...l.sol.0.4.25.PredeclarationUsageLocal.json | 270 +- .../test_data}/void-cst/0.4.25/void-cst.sol | 0 .../void-cst.sol.0.4.25.VoidConstructor.json | 28 +- .../test_data}/void-cst/0.5.16/void-cst.sol | 0 .../void-cst.sol.0.5.16.VoidConstructor.json | 28 +- .../test_data}/void-cst/0.6.11/void-cst.sol | 0 .../void-cst.sol.0.6.11.VoidConstructor.json | 28 +- .../test_data}/void-cst/0.7.6/void-cst.sol | 0 .../void-cst.sol.0.7.6.VoidConstructor.json | 28 +- .../test_data}/weak-prng/0.4.25/bad_prng.sol | 0 .../0.4.25/bad_prng.sol.0.4.25.BadPRNG.json | 226 +- .../test_data}/weak-prng/0.5.16/bad_prng.sol | 0 .../0.5.16/bad_prng.sol.0.5.16.BadPRNG.json | 264 +- .../test_data}/weak-prng/0.6.11/bad_prng.sol | 0 .../0.6.11/bad_prng.sol.0.6.11.BadPRNG.json | 226 +- .../test_data}/weak-prng/0.7.6/bad_prng.sol | 0 .../0.7.6/bad_prng.sol.0.7.6.BadPRNG.json | 254 +- .../0.8.0/write-after-write.sol | 0 ...after-write.sol.0.8.0.WriteAfterWrite.json | 308 +- tests/{ => e2e/detectors}/test_detectors.py | 4 + .../solc_parsing}/test_ast_parsing.py | 4 +- .../solc_parsing/test_data}/assembly-all.sol | 0 .../test_data}/assignment-0.4.0.sol | 0 .../test_data}/assignment-0.4.7.sol | 0 .../test_data}/binaryoperation-0.4.0.sol | 0 .../test_data}/binaryoperation-0.4.7.sol | 0 .../solc_parsing/test_data}/break-all.sol | 0 .../solc_parsing/test_data}/bytes_call.sol | 0 .../test_data}/call_to_variable-all.sol | 0 .../solc_parsing/test_data}/comment-all.sol | 0 .../compile/assembly-all.sol-0.4.0-legacy.zip | Bin .../compile/assembly-all.sol-0.4.1-legacy.zip | Bin .../assembly-all.sol-0.4.10-legacy.zip | Bin .../assembly-all.sol-0.4.11-legacy.zip | Bin .../assembly-all.sol-0.4.12-compact.zip | Bin .../assembly-all.sol-0.4.12-legacy.zip | Bin .../assembly-all.sol-0.4.13-compact.zip | Bin .../assembly-all.sol-0.4.13-legacy.zip | Bin .../assembly-all.sol-0.4.14-compact.zip | Bin .../assembly-all.sol-0.4.14-legacy.zip | Bin .../assembly-all.sol-0.4.15-compact.zip | Bin .../assembly-all.sol-0.4.15-legacy.zip | Bin .../assembly-all.sol-0.4.16-compact.zip | Bin .../assembly-all.sol-0.4.16-legacy.zip | Bin .../assembly-all.sol-0.4.17-compact.zip | Bin .../assembly-all.sol-0.4.17-legacy.zip | Bin .../assembly-all.sol-0.4.18-compact.zip | Bin .../assembly-all.sol-0.4.18-legacy.zip | Bin .../assembly-all.sol-0.4.19-compact.zip | Bin .../assembly-all.sol-0.4.19-legacy.zip | Bin .../compile/assembly-all.sol-0.4.2-legacy.zip | Bin .../assembly-all.sol-0.4.20-compact.zip | Bin .../assembly-all.sol-0.4.20-legacy.zip | Bin .../assembly-all.sol-0.4.21-compact.zip | Bin .../assembly-all.sol-0.4.21-legacy.zip | Bin .../assembly-all.sol-0.4.22-compact.zip | Bin .../assembly-all.sol-0.4.22-legacy.zip | Bin .../assembly-all.sol-0.4.23-compact.zip | Bin .../assembly-all.sol-0.4.23-legacy.zip | Bin .../assembly-all.sol-0.4.24-compact.zip | Bin .../assembly-all.sol-0.4.24-legacy.zip | Bin .../assembly-all.sol-0.4.25-compact.zip | Bin .../assembly-all.sol-0.4.25-legacy.zip | Bin .../assembly-all.sol-0.4.26-compact.zip | Bin .../assembly-all.sol-0.4.26-legacy.zip | Bin .../compile/assembly-all.sol-0.4.3-legacy.zip | Bin .../compile/assembly-all.sol-0.4.4-legacy.zip | Bin .../compile/assembly-all.sol-0.4.5-legacy.zip | Bin .../compile/assembly-all.sol-0.4.6-legacy.zip | Bin .../compile/assembly-all.sol-0.4.7-legacy.zip | Bin .../compile/assembly-all.sol-0.4.8-legacy.zip | Bin .../compile/assembly-all.sol-0.4.9-legacy.zip | Bin .../assembly-all.sol-0.5.0-compact.zip | Bin .../compile/assembly-all.sol-0.5.0-legacy.zip | Bin .../assembly-all.sol-0.5.1-compact.zip | Bin .../compile/assembly-all.sol-0.5.1-legacy.zip | Bin .../assembly-all.sol-0.5.10-compact.zip | Bin .../assembly-all.sol-0.5.10-legacy.zip | Bin .../assembly-all.sol-0.5.11-compact.zip | Bin .../assembly-all.sol-0.5.11-legacy.zip | Bin .../assembly-all.sol-0.5.12-compact.zip | Bin .../assembly-all.sol-0.5.12-legacy.zip | Bin .../assembly-all.sol-0.5.13-compact.zip | Bin .../assembly-all.sol-0.5.13-legacy.zip | Bin .../assembly-all.sol-0.5.14-compact.zip | Bin .../assembly-all.sol-0.5.14-legacy.zip | Bin .../assembly-all.sol-0.5.15-compact.zip | Bin .../assembly-all.sol-0.5.15-legacy.zip | Bin .../assembly-all.sol-0.5.16-compact.zip | Bin .../assembly-all.sol-0.5.16-legacy.zip | Bin .../assembly-all.sol-0.5.17-compact.zip | Bin .../assembly-all.sol-0.5.17-legacy.zip | Bin .../assembly-all.sol-0.5.2-compact.zip | Bin .../compile/assembly-all.sol-0.5.2-legacy.zip | Bin .../assembly-all.sol-0.5.3-compact.zip | Bin .../compile/assembly-all.sol-0.5.3-legacy.zip | Bin .../assembly-all.sol-0.5.4-compact.zip | Bin .../compile/assembly-all.sol-0.5.4-legacy.zip | Bin .../assembly-all.sol-0.5.5-compact.zip | Bin .../compile/assembly-all.sol-0.5.5-legacy.zip | Bin .../assembly-all.sol-0.5.6-compact.zip | Bin .../compile/assembly-all.sol-0.5.6-legacy.zip | Bin .../assembly-all.sol-0.5.7-compact.zip | Bin .../compile/assembly-all.sol-0.5.7-legacy.zip | Bin .../assembly-all.sol-0.5.8-compact.zip | Bin .../compile/assembly-all.sol-0.5.8-legacy.zip | Bin .../assembly-all.sol-0.5.9-compact.zip | Bin .../compile/assembly-all.sol-0.5.9-legacy.zip | Bin .../assembly-all.sol-0.6.0-compact.zip | Bin .../compile/assembly-all.sol-0.6.0-legacy.zip | Bin .../assembly-all.sol-0.6.1-compact.zip | Bin .../compile/assembly-all.sol-0.6.1-legacy.zip | Bin .../assembly-all.sol-0.6.10-compact.zip | Bin .../assembly-all.sol-0.6.10-legacy.zip | Bin .../assembly-all.sol-0.6.11-compact.zip | Bin .../assembly-all.sol-0.6.11-legacy.zip | Bin .../assembly-all.sol-0.6.12-compact.zip | Bin .../assembly-all.sol-0.6.12-legacy.zip | Bin .../assembly-all.sol-0.6.2-compact.zip | Bin .../compile/assembly-all.sol-0.6.2-legacy.zip | Bin .../assembly-all.sol-0.6.3-compact.zip | Bin .../compile/assembly-all.sol-0.6.3-legacy.zip | Bin .../assembly-all.sol-0.6.4-compact.zip | Bin .../compile/assembly-all.sol-0.6.4-legacy.zip | Bin .../assembly-all.sol-0.6.5-compact.zip | Bin .../compile/assembly-all.sol-0.6.5-legacy.zip | Bin .../assembly-all.sol-0.6.6-compact.zip | Bin .../compile/assembly-all.sol-0.6.6-legacy.zip | Bin .../assembly-all.sol-0.6.7-compact.zip | Bin .../compile/assembly-all.sol-0.6.7-legacy.zip | Bin .../assembly-all.sol-0.6.8-compact.zip | Bin .../compile/assembly-all.sol-0.6.8-legacy.zip | Bin .../assembly-all.sol-0.6.9-compact.zip | Bin .../compile/assembly-all.sol-0.6.9-legacy.zip | Bin .../assembly-all.sol-0.7.0-compact.zip | Bin .../compile/assembly-all.sol-0.7.0-legacy.zip | Bin .../assembly-all.sol-0.7.1-compact.zip | Bin .../compile/assembly-all.sol-0.7.1-legacy.zip | Bin .../assembly-all.sol-0.7.2-compact.zip | Bin .../compile/assembly-all.sol-0.7.2-legacy.zip | Bin .../assembly-all.sol-0.7.3-compact.zip | Bin .../compile/assembly-all.sol-0.7.3-legacy.zip | Bin .../assembly-all.sol-0.7.4-compact.zip | Bin .../compile/assembly-all.sol-0.7.4-legacy.zip | Bin .../assembly-all.sol-0.7.5-compact.zip | Bin .../compile/assembly-all.sol-0.7.5-legacy.zip | Bin .../assembly-all.sol-0.7.6-compact.zip | Bin .../compile/assembly-all.sol-0.7.6-legacy.zip | Bin .../assembly-all.sol-0.8.0-compact.zip | Bin .../assembly-all.sol-0.8.1-compact.zip | Bin .../assembly-all.sol-0.8.10-compact.zip | Bin .../assembly-all.sol-0.8.11-compact.zip | Bin .../assembly-all.sol-0.8.12-compact.zip | Bin .../assembly-all.sol-0.8.13-compact.zip | Bin .../assembly-all.sol-0.8.14-compact.zip | Bin .../assembly-all.sol-0.8.15-compact.zip | Bin .../assembly-all.sol-0.8.2-compact.zip | Bin .../assembly-all.sol-0.8.3-compact.zip | Bin .../assembly-all.sol-0.8.4-compact.zip | Bin .../assembly-all.sol-0.8.5-compact.zip | Bin .../assembly-all.sol-0.8.6-compact.zip | Bin .../assembly-all.sol-0.8.7-compact.zip | Bin .../assembly-all.sol-0.8.8-compact.zip | Bin .../assembly-all.sol-0.8.9-compact.zip | Bin .../assignment-0.4.0.sol-0.4.0-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.1-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.10-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.11-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.12-compact.zip | Bin .../assignment-0.4.0.sol-0.4.12-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.13-compact.zip | Bin .../assignment-0.4.0.sol-0.4.13-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.14-compact.zip | Bin .../assignment-0.4.0.sol-0.4.14-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.15-compact.zip | Bin .../assignment-0.4.0.sol-0.4.15-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.16-compact.zip | Bin .../assignment-0.4.0.sol-0.4.16-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.17-compact.zip | Bin .../assignment-0.4.0.sol-0.4.17-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.18-compact.zip | Bin .../assignment-0.4.0.sol-0.4.18-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.19-compact.zip | Bin .../assignment-0.4.0.sol-0.4.19-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.2-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.20-compact.zip | Bin .../assignment-0.4.0.sol-0.4.20-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.21-compact.zip | Bin .../assignment-0.4.0.sol-0.4.21-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.22-compact.zip | Bin .../assignment-0.4.0.sol-0.4.22-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.23-compact.zip | Bin .../assignment-0.4.0.sol-0.4.23-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.24-compact.zip | Bin .../assignment-0.4.0.sol-0.4.24-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.25-compact.zip | Bin .../assignment-0.4.0.sol-0.4.25-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.26-compact.zip | Bin .../assignment-0.4.0.sol-0.4.26-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.3-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.4-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.5-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.6-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.7-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.8-legacy.zip | Bin .../assignment-0.4.0.sol-0.4.9-legacy.zip | Bin .../assignment-0.4.7.sol-0.4.7-legacy.zip | Bin .../assignment-0.4.7.sol-0.4.8-legacy.zip | Bin .../assignment-0.4.7.sol-0.4.9-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.0-compact.zip | Bin .../assignment-0.4.7.sol-0.5.0-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.1-compact.zip | Bin .../assignment-0.4.7.sol-0.5.1-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.10-compact.zip | Bin .../assignment-0.4.7.sol-0.5.10-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.11-compact.zip | Bin .../assignment-0.4.7.sol-0.5.11-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.12-compact.zip | Bin .../assignment-0.4.7.sol-0.5.12-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.13-compact.zip | Bin .../assignment-0.4.7.sol-0.5.13-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.14-compact.zip | Bin .../assignment-0.4.7.sol-0.5.14-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.15-compact.zip | Bin .../assignment-0.4.7.sol-0.5.15-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.16-compact.zip | Bin .../assignment-0.4.7.sol-0.5.16-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.17-compact.zip | Bin .../assignment-0.4.7.sol-0.5.17-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.2-compact.zip | Bin .../assignment-0.4.7.sol-0.5.2-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.3-compact.zip | Bin .../assignment-0.4.7.sol-0.5.3-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.4-compact.zip | Bin .../assignment-0.4.7.sol-0.5.4-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.5-compact.zip | Bin .../assignment-0.4.7.sol-0.5.5-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.6-compact.zip | Bin .../assignment-0.4.7.sol-0.5.6-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.7-compact.zip | Bin .../assignment-0.4.7.sol-0.5.7-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.8-compact.zip | Bin .../assignment-0.4.7.sol-0.5.8-legacy.zip | Bin .../assignment-0.4.7.sol-0.5.9-compact.zip | Bin .../assignment-0.4.7.sol-0.5.9-legacy.zip | Bin .../assignment-0.4.7.sol-0.6.0-compact.zip | Bin .../assignment-0.4.7.sol-0.6.0-legacy.zip | Bin .../assignment-0.4.7.sol-0.6.1-compact.zip | Bin .../assignment-0.4.7.sol-0.6.1-legacy.zip | Bin .../assignment-0.4.7.sol-0.6.10-compact.zip | Bin .../assignment-0.4.7.sol-0.6.10-legacy.zip | Bin .../assignment-0.4.7.sol-0.6.11-compact.zip | Bin .../assignment-0.4.7.sol-0.6.11-legacy.zip | Bin .../assignment-0.4.7.sol-0.6.12-compact.zip | Bin .../assignment-0.4.7.sol-0.6.12-legacy.zip | Bin .../assignment-0.4.7.sol-0.6.2-compact.zip | Bin .../assignment-0.4.7.sol-0.6.2-legacy.zip | Bin .../assignment-0.4.7.sol-0.6.3-compact.zip | Bin .../assignment-0.4.7.sol-0.6.3-legacy.zip | Bin .../assignment-0.4.7.sol-0.6.4-compact.zip | Bin .../assignment-0.4.7.sol-0.6.4-legacy.zip | Bin .../assignment-0.4.7.sol-0.6.5-compact.zip | Bin .../assignment-0.4.7.sol-0.6.5-legacy.zip | Bin .../assignment-0.4.7.sol-0.6.6-compact.zip | Bin .../assignment-0.4.7.sol-0.6.6-legacy.zip | Bin .../assignment-0.4.7.sol-0.6.7-compact.zip | Bin .../assignment-0.4.7.sol-0.6.7-legacy.zip | Bin .../assignment-0.4.7.sol-0.6.8-compact.zip | Bin .../assignment-0.4.7.sol-0.6.8-legacy.zip | Bin .../assignment-0.4.7.sol-0.6.9-compact.zip | Bin .../assignment-0.4.7.sol-0.6.9-legacy.zip | Bin .../assignment-0.4.7.sol-0.7.0-compact.zip | Bin .../assignment-0.4.7.sol-0.7.0-legacy.zip | Bin .../assignment-0.4.7.sol-0.7.1-compact.zip | Bin .../assignment-0.4.7.sol-0.7.1-legacy.zip | Bin .../assignment-0.4.7.sol-0.7.2-compact.zip | Bin .../assignment-0.4.7.sol-0.7.2-legacy.zip | Bin .../assignment-0.4.7.sol-0.7.3-compact.zip | Bin .../assignment-0.4.7.sol-0.7.3-legacy.zip | Bin .../assignment-0.4.7.sol-0.7.4-compact.zip | Bin .../assignment-0.4.7.sol-0.7.4-legacy.zip | Bin .../assignment-0.4.7.sol-0.7.5-compact.zip | Bin .../assignment-0.4.7.sol-0.7.5-legacy.zip | Bin .../assignment-0.4.7.sol-0.7.6-compact.zip | Bin .../assignment-0.4.7.sol-0.7.6-legacy.zip | Bin .../assignment-0.4.7.sol-0.8.0-compact.zip | Bin .../assignment-0.4.7.sol-0.8.1-compact.zip | Bin .../assignment-0.4.7.sol-0.8.10-compact.zip | Bin .../assignment-0.4.7.sol-0.8.11-compact.zip | Bin .../assignment-0.4.7.sol-0.8.12-compact.zip | Bin .../assignment-0.4.7.sol-0.8.13-compact.zip | Bin .../assignment-0.4.7.sol-0.8.14-compact.zip | Bin .../assignment-0.4.7.sol-0.8.15-compact.zip | Bin .../assignment-0.4.7.sol-0.8.2-compact.zip | Bin .../assignment-0.4.7.sol-0.8.3-compact.zip | Bin .../assignment-0.4.7.sol-0.8.4-compact.zip | Bin .../assignment-0.4.7.sol-0.8.5-compact.zip | Bin .../assignment-0.4.7.sol-0.8.6-compact.zip | Bin .../assignment-0.4.7.sol-0.8.7-compact.zip | Bin .../assignment-0.4.7.sol-0.8.8-compact.zip | Bin .../assignment-0.4.7.sol-0.8.9-compact.zip | Bin ...binaryoperation-0.4.0.sol-0.4.0-legacy.zip | Bin ...binaryoperation-0.4.0.sol-0.4.1-legacy.zip | Bin ...inaryoperation-0.4.0.sol-0.4.10-legacy.zip | Bin ...inaryoperation-0.4.0.sol-0.4.11-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.12-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.12-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.13-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.13-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.14-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.14-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.15-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.15-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.16-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.16-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.17-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.17-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.18-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.18-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.19-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.19-legacy.zip | Bin ...binaryoperation-0.4.0.sol-0.4.2-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.20-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.20-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.21-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.21-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.22-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.22-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.23-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.23-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.24-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.24-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.25-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.25-legacy.zip | Bin ...naryoperation-0.4.0.sol-0.4.26-compact.zip | Bin ...inaryoperation-0.4.0.sol-0.4.26-legacy.zip | Bin ...binaryoperation-0.4.0.sol-0.4.3-legacy.zip | Bin ...binaryoperation-0.4.0.sol-0.4.4-legacy.zip | Bin ...binaryoperation-0.4.0.sol-0.4.5-legacy.zip | Bin ...binaryoperation-0.4.0.sol-0.4.6-legacy.zip | Bin ...binaryoperation-0.4.0.sol-0.4.7-legacy.zip | Bin ...binaryoperation-0.4.0.sol-0.4.8-legacy.zip | Bin ...binaryoperation-0.4.0.sol-0.4.9-legacy.zip | Bin ...binaryoperation-0.4.7.sol-0.4.7-legacy.zip | Bin ...binaryoperation-0.4.7.sol-0.4.8-legacy.zip | Bin ...binaryoperation-0.4.7.sol-0.4.9-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.5.0-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.5.0-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.5.1-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.5.1-legacy.zip | Bin ...naryoperation-0.4.7.sol-0.5.10-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.5.10-legacy.zip | Bin ...naryoperation-0.4.7.sol-0.5.11-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.5.11-legacy.zip | Bin ...naryoperation-0.4.7.sol-0.5.12-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.5.12-legacy.zip | Bin ...naryoperation-0.4.7.sol-0.5.13-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.5.13-legacy.zip | Bin ...naryoperation-0.4.7.sol-0.5.14-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.5.14-legacy.zip | Bin ...naryoperation-0.4.7.sol-0.5.15-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.5.15-legacy.zip | Bin ...naryoperation-0.4.7.sol-0.5.16-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.5.16-legacy.zip | Bin ...naryoperation-0.4.7.sol-0.5.17-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.5.17-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.5.2-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.5.2-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.5.3-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.5.3-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.5.4-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.5.4-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.5.5-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.5.5-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.5.6-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.5.6-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.5.7-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.5.7-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.5.8-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.5.8-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.5.9-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.5.9-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.6.0-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.6.0-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.6.1-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.6.1-legacy.zip | Bin ...naryoperation-0.4.7.sol-0.6.10-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.6.10-legacy.zip | Bin ...naryoperation-0.4.7.sol-0.6.11-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.6.11-legacy.zip | Bin ...naryoperation-0.4.7.sol-0.6.12-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.6.12-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.6.2-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.6.2-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.6.3-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.6.3-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.6.4-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.6.4-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.6.5-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.6.5-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.6.6-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.6.6-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.6.7-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.6.7-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.6.8-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.6.8-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.6.9-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.6.9-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.7.0-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.7.0-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.7.1-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.7.1-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.7.2-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.7.2-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.7.3-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.7.3-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.7.4-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.7.4-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.7.5-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.7.5-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.7.6-compact.zip | Bin ...binaryoperation-0.4.7.sol-0.7.6-legacy.zip | Bin ...inaryoperation-0.4.7.sol-0.8.0-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.8.1-compact.zip | Bin ...naryoperation-0.4.7.sol-0.8.10-compact.zip | Bin ...naryoperation-0.4.7.sol-0.8.11-compact.zip | Bin ...naryoperation-0.4.7.sol-0.8.12-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.8.2-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.8.3-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.8.4-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.8.5-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.8.6-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.8.7-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.8.8-compact.zip | Bin ...inaryoperation-0.4.7.sol-0.8.9-compact.zip | Bin .../compile/break-all.sol-0.4.0-legacy.zip | Bin .../compile/break-all.sol-0.4.1-legacy.zip | Bin .../compile/break-all.sol-0.4.10-legacy.zip | Bin .../compile/break-all.sol-0.4.11-legacy.zip | Bin .../compile/break-all.sol-0.4.12-compact.zip | Bin .../compile/break-all.sol-0.4.12-legacy.zip | Bin .../compile/break-all.sol-0.4.13-compact.zip | Bin .../compile/break-all.sol-0.4.13-legacy.zip | Bin .../compile/break-all.sol-0.4.14-compact.zip | Bin .../compile/break-all.sol-0.4.14-legacy.zip | Bin .../compile/break-all.sol-0.4.15-compact.zip | Bin .../compile/break-all.sol-0.4.15-legacy.zip | Bin .../compile/break-all.sol-0.4.16-compact.zip | Bin .../compile/break-all.sol-0.4.16-legacy.zip | Bin .../compile/break-all.sol-0.4.17-compact.zip | Bin .../compile/break-all.sol-0.4.17-legacy.zip | Bin .../compile/break-all.sol-0.4.18-compact.zip | Bin .../compile/break-all.sol-0.4.18-legacy.zip | Bin .../compile/break-all.sol-0.4.19-compact.zip | Bin .../compile/break-all.sol-0.4.19-legacy.zip | Bin .../compile/break-all.sol-0.4.2-legacy.zip | Bin .../compile/break-all.sol-0.4.20-compact.zip | Bin .../compile/break-all.sol-0.4.20-legacy.zip | Bin .../compile/break-all.sol-0.4.21-compact.zip | Bin .../compile/break-all.sol-0.4.21-legacy.zip | Bin .../compile/break-all.sol-0.4.22-compact.zip | Bin .../compile/break-all.sol-0.4.22-legacy.zip | Bin .../compile/break-all.sol-0.4.23-compact.zip | Bin .../compile/break-all.sol-0.4.23-legacy.zip | Bin .../compile/break-all.sol-0.4.24-compact.zip | Bin .../compile/break-all.sol-0.4.24-legacy.zip | Bin .../compile/break-all.sol-0.4.25-compact.zip | Bin .../compile/break-all.sol-0.4.25-legacy.zip | Bin .../compile/break-all.sol-0.4.26-compact.zip | Bin .../compile/break-all.sol-0.4.26-legacy.zip | Bin .../compile/break-all.sol-0.4.3-legacy.zip | Bin .../compile/break-all.sol-0.4.4-legacy.zip | Bin .../compile/break-all.sol-0.4.5-legacy.zip | Bin .../compile/break-all.sol-0.4.6-legacy.zip | Bin .../compile/break-all.sol-0.4.7-legacy.zip | Bin .../compile/break-all.sol-0.4.8-legacy.zip | Bin .../compile/break-all.sol-0.4.9-legacy.zip | Bin .../compile/break-all.sol-0.5.0-compact.zip | Bin .../compile/break-all.sol-0.5.0-legacy.zip | Bin .../compile/break-all.sol-0.5.1-compact.zip | Bin .../compile/break-all.sol-0.5.1-legacy.zip | Bin .../compile/break-all.sol-0.5.10-compact.zip | Bin .../compile/break-all.sol-0.5.10-legacy.zip | Bin .../compile/break-all.sol-0.5.11-compact.zip | Bin .../compile/break-all.sol-0.5.11-legacy.zip | Bin .../compile/break-all.sol-0.5.12-compact.zip | Bin .../compile/break-all.sol-0.5.12-legacy.zip | Bin .../compile/break-all.sol-0.5.13-compact.zip | Bin .../compile/break-all.sol-0.5.13-legacy.zip | Bin .../compile/break-all.sol-0.5.14-compact.zip | Bin .../compile/break-all.sol-0.5.14-legacy.zip | Bin .../compile/break-all.sol-0.5.15-compact.zip | Bin .../compile/break-all.sol-0.5.15-legacy.zip | Bin .../compile/break-all.sol-0.5.16-compact.zip | Bin .../compile/break-all.sol-0.5.16-legacy.zip | Bin .../compile/break-all.sol-0.5.17-compact.zip | Bin .../compile/break-all.sol-0.5.17-legacy.zip | Bin .../compile/break-all.sol-0.5.2-compact.zip | Bin .../compile/break-all.sol-0.5.2-legacy.zip | Bin .../compile/break-all.sol-0.5.3-compact.zip | Bin .../compile/break-all.sol-0.5.3-legacy.zip | Bin .../compile/break-all.sol-0.5.4-compact.zip | Bin .../compile/break-all.sol-0.5.4-legacy.zip | Bin .../compile/break-all.sol-0.5.5-compact.zip | Bin .../compile/break-all.sol-0.5.5-legacy.zip | Bin .../compile/break-all.sol-0.5.6-compact.zip | Bin .../compile/break-all.sol-0.5.6-legacy.zip | Bin .../compile/break-all.sol-0.5.7-compact.zip | Bin .../compile/break-all.sol-0.5.7-legacy.zip | Bin .../compile/break-all.sol-0.5.8-compact.zip | Bin .../compile/break-all.sol-0.5.8-legacy.zip | Bin .../compile/break-all.sol-0.5.9-compact.zip | Bin .../compile/break-all.sol-0.5.9-legacy.zip | Bin .../compile/break-all.sol-0.6.0-compact.zip | Bin .../compile/break-all.sol-0.6.0-legacy.zip | Bin .../compile/break-all.sol-0.6.1-compact.zip | Bin .../compile/break-all.sol-0.6.1-legacy.zip | Bin .../compile/break-all.sol-0.6.10-compact.zip | Bin .../compile/break-all.sol-0.6.10-legacy.zip | Bin .../compile/break-all.sol-0.6.11-compact.zip | Bin .../compile/break-all.sol-0.6.11-legacy.zip | Bin .../compile/break-all.sol-0.6.12-compact.zip | Bin .../compile/break-all.sol-0.6.12-legacy.zip | Bin .../compile/break-all.sol-0.6.2-compact.zip | Bin .../compile/break-all.sol-0.6.2-legacy.zip | Bin .../compile/break-all.sol-0.6.3-compact.zip | Bin .../compile/break-all.sol-0.6.3-legacy.zip | Bin .../compile/break-all.sol-0.6.4-compact.zip | Bin .../compile/break-all.sol-0.6.4-legacy.zip | Bin .../compile/break-all.sol-0.6.5-compact.zip | Bin .../compile/break-all.sol-0.6.5-legacy.zip | Bin .../compile/break-all.sol-0.6.6-compact.zip | Bin .../compile/break-all.sol-0.6.6-legacy.zip | Bin .../compile/break-all.sol-0.6.7-compact.zip | Bin .../compile/break-all.sol-0.6.7-legacy.zip | Bin .../compile/break-all.sol-0.6.8-compact.zip | Bin .../compile/break-all.sol-0.6.8-legacy.zip | Bin .../compile/break-all.sol-0.6.9-compact.zip | Bin .../compile/break-all.sol-0.6.9-legacy.zip | Bin .../compile/break-all.sol-0.7.0-compact.zip | Bin .../compile/break-all.sol-0.7.0-legacy.zip | Bin .../compile/break-all.sol-0.7.1-compact.zip | Bin .../compile/break-all.sol-0.7.1-legacy.zip | Bin .../compile/break-all.sol-0.7.2-compact.zip | Bin .../compile/break-all.sol-0.7.2-legacy.zip | Bin .../compile/break-all.sol-0.7.3-compact.zip | Bin .../compile/break-all.sol-0.7.3-legacy.zip | Bin .../compile/break-all.sol-0.7.4-compact.zip | Bin .../compile/break-all.sol-0.7.4-legacy.zip | Bin .../compile/break-all.sol-0.7.5-compact.zip | Bin .../compile/break-all.sol-0.7.5-legacy.zip | Bin .../compile/break-all.sol-0.7.6-compact.zip | Bin .../compile/break-all.sol-0.7.6-legacy.zip | Bin .../compile/break-all.sol-0.8.0-compact.zip | Bin .../compile/break-all.sol-0.8.1-compact.zip | Bin .../compile/break-all.sol-0.8.10-compact.zip | Bin .../compile/break-all.sol-0.8.11-compact.zip | Bin .../compile/break-all.sol-0.8.12-compact.zip | Bin .../compile/break-all.sol-0.8.13-compact.zip | Bin .../compile/break-all.sol-0.8.14-compact.zip | Bin .../compile/break-all.sol-0.8.15-compact.zip | Bin .../compile/break-all.sol-0.8.2-compact.zip | Bin .../compile/break-all.sol-0.8.3-compact.zip | Bin .../compile/break-all.sol-0.8.4-compact.zip | Bin .../compile/break-all.sol-0.8.5-compact.zip | Bin .../compile/break-all.sol-0.8.6-compact.zip | Bin .../compile/break-all.sol-0.8.7-compact.zip | Bin .../compile/break-all.sol-0.8.8-compact.zip | Bin .../compile/break-all.sol-0.8.9-compact.zip | Bin .../compile/bytes_call.sol-0.8.12-compact.zip | Bin .../call_to_variable-all.sol-0.4.0-legacy.zip | Bin .../call_to_variable-all.sol-0.4.1-legacy.zip | Bin ...call_to_variable-all.sol-0.4.10-legacy.zip | Bin ...call_to_variable-all.sol-0.4.11-legacy.zip | Bin ...all_to_variable-all.sol-0.4.12-compact.zip | Bin ...call_to_variable-all.sol-0.4.12-legacy.zip | Bin ...all_to_variable-all.sol-0.4.13-compact.zip | Bin ...call_to_variable-all.sol-0.4.13-legacy.zip | Bin ...all_to_variable-all.sol-0.4.14-compact.zip | Bin ...call_to_variable-all.sol-0.4.14-legacy.zip | Bin ...all_to_variable-all.sol-0.4.15-compact.zip | Bin ...call_to_variable-all.sol-0.4.15-legacy.zip | Bin ...all_to_variable-all.sol-0.4.16-compact.zip | Bin ...call_to_variable-all.sol-0.4.16-legacy.zip | Bin ...all_to_variable-all.sol-0.4.17-compact.zip | Bin ...call_to_variable-all.sol-0.4.17-legacy.zip | Bin ...all_to_variable-all.sol-0.4.18-compact.zip | Bin ...call_to_variable-all.sol-0.4.18-legacy.zip | Bin ...all_to_variable-all.sol-0.4.19-compact.zip | Bin ...call_to_variable-all.sol-0.4.19-legacy.zip | Bin .../call_to_variable-all.sol-0.4.2-legacy.zip | Bin ...all_to_variable-all.sol-0.4.20-compact.zip | Bin ...call_to_variable-all.sol-0.4.20-legacy.zip | Bin ...all_to_variable-all.sol-0.4.21-compact.zip | Bin ...call_to_variable-all.sol-0.4.21-legacy.zip | Bin ...all_to_variable-all.sol-0.4.22-compact.zip | Bin ...call_to_variable-all.sol-0.4.22-legacy.zip | Bin ...all_to_variable-all.sol-0.4.23-compact.zip | Bin ...call_to_variable-all.sol-0.4.23-legacy.zip | Bin ...all_to_variable-all.sol-0.4.24-compact.zip | Bin ...call_to_variable-all.sol-0.4.24-legacy.zip | Bin ...all_to_variable-all.sol-0.4.25-compact.zip | Bin ...call_to_variable-all.sol-0.4.25-legacy.zip | Bin ...all_to_variable-all.sol-0.4.26-compact.zip | Bin ...call_to_variable-all.sol-0.4.26-legacy.zip | Bin .../call_to_variable-all.sol-0.4.3-legacy.zip | Bin .../call_to_variable-all.sol-0.4.4-legacy.zip | Bin .../call_to_variable-all.sol-0.4.5-legacy.zip | Bin .../call_to_variable-all.sol-0.4.6-legacy.zip | Bin .../call_to_variable-all.sol-0.4.7-legacy.zip | Bin .../call_to_variable-all.sol-0.4.8-legacy.zip | Bin .../call_to_variable-all.sol-0.4.9-legacy.zip | Bin ...call_to_variable-all.sol-0.5.0-compact.zip | Bin .../call_to_variable-all.sol-0.5.0-legacy.zip | Bin ...call_to_variable-all.sol-0.5.1-compact.zip | Bin .../call_to_variable-all.sol-0.5.1-legacy.zip | Bin ...all_to_variable-all.sol-0.5.10-compact.zip | Bin ...call_to_variable-all.sol-0.5.10-legacy.zip | Bin ...all_to_variable-all.sol-0.5.11-compact.zip | Bin ...call_to_variable-all.sol-0.5.11-legacy.zip | Bin ...all_to_variable-all.sol-0.5.12-compact.zip | Bin ...call_to_variable-all.sol-0.5.12-legacy.zip | Bin ...all_to_variable-all.sol-0.5.13-compact.zip | Bin ...call_to_variable-all.sol-0.5.13-legacy.zip | Bin ...all_to_variable-all.sol-0.5.14-compact.zip | Bin ...call_to_variable-all.sol-0.5.14-legacy.zip | Bin ...all_to_variable-all.sol-0.5.15-compact.zip | Bin ...call_to_variable-all.sol-0.5.15-legacy.zip | Bin ...all_to_variable-all.sol-0.5.16-compact.zip | Bin ...call_to_variable-all.sol-0.5.16-legacy.zip | Bin ...all_to_variable-all.sol-0.5.17-compact.zip | Bin ...call_to_variable-all.sol-0.5.17-legacy.zip | Bin ...call_to_variable-all.sol-0.5.2-compact.zip | Bin .../call_to_variable-all.sol-0.5.2-legacy.zip | Bin ...call_to_variable-all.sol-0.5.3-compact.zip | Bin .../call_to_variable-all.sol-0.5.3-legacy.zip | Bin ...call_to_variable-all.sol-0.5.4-compact.zip | Bin .../call_to_variable-all.sol-0.5.4-legacy.zip | Bin ...call_to_variable-all.sol-0.5.5-compact.zip | Bin .../call_to_variable-all.sol-0.5.5-legacy.zip | Bin ...call_to_variable-all.sol-0.5.6-compact.zip | Bin .../call_to_variable-all.sol-0.5.6-legacy.zip | Bin ...call_to_variable-all.sol-0.5.7-compact.zip | Bin .../call_to_variable-all.sol-0.5.7-legacy.zip | Bin ...call_to_variable-all.sol-0.5.8-compact.zip | Bin .../call_to_variable-all.sol-0.5.8-legacy.zip | Bin ...call_to_variable-all.sol-0.5.9-compact.zip | Bin .../call_to_variable-all.sol-0.5.9-legacy.zip | Bin ...call_to_variable-all.sol-0.6.0-compact.zip | Bin .../call_to_variable-all.sol-0.6.0-legacy.zip | Bin ...call_to_variable-all.sol-0.6.1-compact.zip | Bin .../call_to_variable-all.sol-0.6.1-legacy.zip | Bin ...all_to_variable-all.sol-0.6.10-compact.zip | Bin ...call_to_variable-all.sol-0.6.10-legacy.zip | Bin ...all_to_variable-all.sol-0.6.11-compact.zip | Bin ...call_to_variable-all.sol-0.6.11-legacy.zip | Bin ...all_to_variable-all.sol-0.6.12-compact.zip | Bin ...call_to_variable-all.sol-0.6.12-legacy.zip | Bin ...call_to_variable-all.sol-0.6.2-compact.zip | Bin .../call_to_variable-all.sol-0.6.2-legacy.zip | Bin ...call_to_variable-all.sol-0.6.3-compact.zip | Bin .../call_to_variable-all.sol-0.6.3-legacy.zip | Bin ...call_to_variable-all.sol-0.6.4-compact.zip | Bin .../call_to_variable-all.sol-0.6.4-legacy.zip | Bin ...call_to_variable-all.sol-0.6.5-compact.zip | Bin .../call_to_variable-all.sol-0.6.5-legacy.zip | Bin ...call_to_variable-all.sol-0.6.6-compact.zip | Bin .../call_to_variable-all.sol-0.6.6-legacy.zip | Bin ...call_to_variable-all.sol-0.6.7-compact.zip | Bin .../call_to_variable-all.sol-0.6.7-legacy.zip | Bin ...call_to_variable-all.sol-0.6.8-compact.zip | Bin .../call_to_variable-all.sol-0.6.8-legacy.zip | Bin ...call_to_variable-all.sol-0.6.9-compact.zip | Bin .../call_to_variable-all.sol-0.6.9-legacy.zip | Bin ...call_to_variable-all.sol-0.7.0-compact.zip | Bin .../call_to_variable-all.sol-0.7.0-legacy.zip | Bin ...call_to_variable-all.sol-0.7.1-compact.zip | Bin .../call_to_variable-all.sol-0.7.1-legacy.zip | Bin ...call_to_variable-all.sol-0.7.2-compact.zip | Bin .../call_to_variable-all.sol-0.7.2-legacy.zip | Bin ...call_to_variable-all.sol-0.7.3-compact.zip | Bin .../call_to_variable-all.sol-0.7.3-legacy.zip | Bin ...call_to_variable-all.sol-0.7.4-compact.zip | Bin .../call_to_variable-all.sol-0.7.4-legacy.zip | Bin ...call_to_variable-all.sol-0.7.5-compact.zip | Bin .../call_to_variable-all.sol-0.7.5-legacy.zip | Bin ...call_to_variable-all.sol-0.7.6-compact.zip | Bin .../call_to_variable-all.sol-0.7.6-legacy.zip | Bin ...call_to_variable-all.sol-0.8.0-compact.zip | Bin ...call_to_variable-all.sol-0.8.1-compact.zip | Bin ...all_to_variable-all.sol-0.8.10-compact.zip | Bin ...all_to_variable-all.sol-0.8.11-compact.zip | Bin ...all_to_variable-all.sol-0.8.12-compact.zip | Bin ...all_to_variable-all.sol-0.8.13-compact.zip | Bin ...all_to_variable-all.sol-0.8.14-compact.zip | Bin ...all_to_variable-all.sol-0.8.15-compact.zip | Bin ...call_to_variable-all.sol-0.8.2-compact.zip | Bin ...call_to_variable-all.sol-0.8.3-compact.zip | Bin ...call_to_variable-all.sol-0.8.4-compact.zip | Bin ...call_to_variable-all.sol-0.8.5-compact.zip | Bin ...call_to_variable-all.sol-0.8.6-compact.zip | Bin ...call_to_variable-all.sol-0.8.7-compact.zip | Bin ...call_to_variable-all.sol-0.8.8-compact.zip | Bin ...call_to_variable-all.sol-0.8.9-compact.zip | Bin .../compile/comment-all.sol-0.4.0-legacy.zip | Bin .../compile/comment-all.sol-0.4.1-legacy.zip | Bin .../compile/comment-all.sol-0.4.10-legacy.zip | Bin .../compile/comment-all.sol-0.4.11-legacy.zip | Bin .../comment-all.sol-0.4.12-compact.zip | Bin .../compile/comment-all.sol-0.4.12-legacy.zip | Bin .../comment-all.sol-0.4.13-compact.zip | Bin .../compile/comment-all.sol-0.4.13-legacy.zip | Bin .../comment-all.sol-0.4.14-compact.zip | Bin .../compile/comment-all.sol-0.4.14-legacy.zip | Bin .../comment-all.sol-0.4.15-compact.zip | Bin .../compile/comment-all.sol-0.4.15-legacy.zip | Bin .../comment-all.sol-0.4.16-compact.zip | Bin .../compile/comment-all.sol-0.4.16-legacy.zip | Bin .../comment-all.sol-0.4.17-compact.zip | Bin .../compile/comment-all.sol-0.4.17-legacy.zip | Bin .../comment-all.sol-0.4.18-compact.zip | Bin .../compile/comment-all.sol-0.4.18-legacy.zip | Bin .../comment-all.sol-0.4.19-compact.zip | Bin .../compile/comment-all.sol-0.4.19-legacy.zip | Bin .../compile/comment-all.sol-0.4.2-legacy.zip | Bin .../comment-all.sol-0.4.20-compact.zip | Bin .../compile/comment-all.sol-0.4.20-legacy.zip | Bin .../comment-all.sol-0.4.21-compact.zip | Bin .../compile/comment-all.sol-0.4.21-legacy.zip | Bin .../comment-all.sol-0.4.22-compact.zip | Bin .../compile/comment-all.sol-0.4.22-legacy.zip | Bin .../comment-all.sol-0.4.23-compact.zip | Bin .../compile/comment-all.sol-0.4.23-legacy.zip | Bin .../comment-all.sol-0.4.24-compact.zip | Bin .../compile/comment-all.sol-0.4.24-legacy.zip | Bin .../comment-all.sol-0.4.25-compact.zip | Bin .../compile/comment-all.sol-0.4.25-legacy.zip | Bin .../comment-all.sol-0.4.26-compact.zip | Bin .../compile/comment-all.sol-0.4.26-legacy.zip | Bin .../compile/comment-all.sol-0.4.3-legacy.zip | Bin .../compile/comment-all.sol-0.4.4-legacy.zip | Bin .../compile/comment-all.sol-0.4.5-legacy.zip | Bin .../compile/comment-all.sol-0.4.6-legacy.zip | Bin .../compile/comment-all.sol-0.4.7-legacy.zip | Bin .../compile/comment-all.sol-0.4.8-legacy.zip | Bin .../compile/comment-all.sol-0.4.9-legacy.zip | Bin .../compile/comment-all.sol-0.5.0-compact.zip | Bin .../compile/comment-all.sol-0.5.0-legacy.zip | Bin .../compile/comment-all.sol-0.5.1-compact.zip | Bin .../compile/comment-all.sol-0.5.1-legacy.zip | Bin .../comment-all.sol-0.5.10-compact.zip | Bin .../compile/comment-all.sol-0.5.10-legacy.zip | Bin .../comment-all.sol-0.5.11-compact.zip | Bin .../compile/comment-all.sol-0.5.11-legacy.zip | Bin .../comment-all.sol-0.5.12-compact.zip | Bin .../compile/comment-all.sol-0.5.12-legacy.zip | Bin .../comment-all.sol-0.5.13-compact.zip | Bin .../compile/comment-all.sol-0.5.13-legacy.zip | Bin .../comment-all.sol-0.5.14-compact.zip | Bin .../compile/comment-all.sol-0.5.14-legacy.zip | Bin .../comment-all.sol-0.5.15-compact.zip | Bin .../compile/comment-all.sol-0.5.15-legacy.zip | Bin .../comment-all.sol-0.5.16-compact.zip | Bin .../compile/comment-all.sol-0.5.16-legacy.zip | Bin .../comment-all.sol-0.5.17-compact.zip | Bin .../compile/comment-all.sol-0.5.17-legacy.zip | Bin .../compile/comment-all.sol-0.5.2-compact.zip | Bin .../compile/comment-all.sol-0.5.2-legacy.zip | Bin .../compile/comment-all.sol-0.5.3-compact.zip | Bin .../compile/comment-all.sol-0.5.3-legacy.zip | Bin .../compile/comment-all.sol-0.5.4-compact.zip | Bin .../compile/comment-all.sol-0.5.4-legacy.zip | Bin .../compile/comment-all.sol-0.5.5-compact.zip | Bin .../compile/comment-all.sol-0.5.5-legacy.zip | Bin .../compile/comment-all.sol-0.5.6-compact.zip | Bin .../compile/comment-all.sol-0.5.6-legacy.zip | Bin .../compile/comment-all.sol-0.5.7-compact.zip | Bin .../compile/comment-all.sol-0.5.7-legacy.zip | Bin .../compile/comment-all.sol-0.5.8-compact.zip | Bin .../compile/comment-all.sol-0.5.8-legacy.zip | Bin .../compile/comment-all.sol-0.5.9-compact.zip | Bin .../compile/comment-all.sol-0.5.9-legacy.zip | Bin .../compile/comment-all.sol-0.6.0-compact.zip | Bin .../compile/comment-all.sol-0.6.0-legacy.zip | Bin .../compile/comment-all.sol-0.6.1-compact.zip | Bin .../compile/comment-all.sol-0.6.1-legacy.zip | Bin .../comment-all.sol-0.6.10-compact.zip | Bin .../compile/comment-all.sol-0.6.10-legacy.zip | Bin .../comment-all.sol-0.6.11-compact.zip | Bin .../compile/comment-all.sol-0.6.11-legacy.zip | Bin .../comment-all.sol-0.6.12-compact.zip | Bin .../compile/comment-all.sol-0.6.12-legacy.zip | Bin .../compile/comment-all.sol-0.6.2-compact.zip | Bin .../compile/comment-all.sol-0.6.2-legacy.zip | Bin .../compile/comment-all.sol-0.6.3-compact.zip | Bin .../compile/comment-all.sol-0.6.3-legacy.zip | Bin .../compile/comment-all.sol-0.6.4-compact.zip | Bin .../compile/comment-all.sol-0.6.4-legacy.zip | Bin .../compile/comment-all.sol-0.6.5-compact.zip | Bin .../compile/comment-all.sol-0.6.5-legacy.zip | Bin .../compile/comment-all.sol-0.6.6-compact.zip | Bin .../compile/comment-all.sol-0.6.6-legacy.zip | Bin .../compile/comment-all.sol-0.6.7-compact.zip | Bin .../compile/comment-all.sol-0.6.7-legacy.zip | Bin .../compile/comment-all.sol-0.6.8-compact.zip | Bin .../compile/comment-all.sol-0.6.8-legacy.zip | Bin .../compile/comment-all.sol-0.6.9-compact.zip | Bin .../compile/comment-all.sol-0.6.9-legacy.zip | Bin .../compile/comment-all.sol-0.7.0-compact.zip | Bin .../compile/comment-all.sol-0.7.0-legacy.zip | Bin .../compile/comment-all.sol-0.7.1-compact.zip | Bin .../compile/comment-all.sol-0.7.1-legacy.zip | Bin .../compile/comment-all.sol-0.7.2-compact.zip | Bin .../compile/comment-all.sol-0.7.2-legacy.zip | Bin .../compile/comment-all.sol-0.7.3-compact.zip | Bin .../compile/comment-all.sol-0.7.3-legacy.zip | Bin .../compile/comment-all.sol-0.7.4-compact.zip | Bin .../compile/comment-all.sol-0.7.4-legacy.zip | Bin .../compile/comment-all.sol-0.7.5-compact.zip | Bin .../compile/comment-all.sol-0.7.5-legacy.zip | Bin .../compile/comment-all.sol-0.7.6-compact.zip | Bin .../compile/comment-all.sol-0.7.6-legacy.zip | Bin .../compile/comment-all.sol-0.8.0-compact.zip | Bin .../compile/comment-all.sol-0.8.1-compact.zip | Bin .../comment-all.sol-0.8.10-compact.zip | Bin .../comment-all.sol-0.8.11-compact.zip | Bin .../comment-all.sol-0.8.12-compact.zip | Bin .../comment-all.sol-0.8.13-compact.zip | Bin .../comment-all.sol-0.8.14-compact.zip | Bin .../comment-all.sol-0.8.15-compact.zip | Bin .../compile/comment-all.sol-0.8.2-compact.zip | Bin .../compile/comment-all.sol-0.8.3-compact.zip | Bin .../compile/comment-all.sol-0.8.4-compact.zip | Bin .../compile/comment-all.sol-0.8.5-compact.zip | Bin .../compile/comment-all.sol-0.8.6-compact.zip | Bin .../compile/comment-all.sol-0.8.7-compact.zip | Bin .../compile/comment-all.sol-0.8.8-compact.zip | Bin .../compile/comment-all.sol-0.8.9-compact.zip | Bin .../import_aliases/test.sol-0.8.0-compact.zip | Bin .../import_aliases/test.sol-0.8.1-compact.zip | Bin .../test.sol-0.8.10-compact.zip | Bin .../test.sol-0.8.11-compact.zip | Bin .../test.sol-0.8.12-compact.zip | Bin .../test.sol-0.8.13-compact.zip | Bin .../test.sol-0.8.14-compact.zip | Bin .../test.sol-0.8.15-compact.zip | Bin .../import_aliases/test.sol-0.8.2-compact.zip | Bin .../import_aliases/test.sol-0.8.3-compact.zip | Bin .../import_aliases/test.sol-0.8.4-compact.zip | Bin .../import_aliases/test.sol-0.8.5-compact.zip | Bin .../import_aliases/test.sol-0.8.6-compact.zip | Bin .../import_aliases/test.sol-0.8.7-compact.zip | Bin .../import_aliases/test.sol-0.8.8-compact.zip | Bin .../import_aliases/test.sol-0.8.9-compact.zip | Bin .../test.sol-0.5.12-compact.zip | Bin .../test.sol-0.5.12-legacy.zip | Bin .../import_free/Caller.sol-0.8.2-compact.zip | Bin .../conditional-all.sol-0.4.0-legacy.zip | Bin .../conditional-all.sol-0.4.1-legacy.zip | Bin .../conditional-all.sol-0.4.10-legacy.zip | Bin .../conditional-all.sol-0.4.11-legacy.zip | Bin .../conditional-all.sol-0.4.12-compact.zip | Bin .../conditional-all.sol-0.4.12-legacy.zip | Bin .../conditional-all.sol-0.4.13-compact.zip | Bin .../conditional-all.sol-0.4.13-legacy.zip | Bin .../conditional-all.sol-0.4.14-compact.zip | Bin .../conditional-all.sol-0.4.14-legacy.zip | Bin .../conditional-all.sol-0.4.15-compact.zip | Bin .../conditional-all.sol-0.4.15-legacy.zip | Bin .../conditional-all.sol-0.4.16-compact.zip | Bin .../conditional-all.sol-0.4.16-legacy.zip | Bin .../conditional-all.sol-0.4.17-compact.zip | Bin .../conditional-all.sol-0.4.17-legacy.zip | Bin .../conditional-all.sol-0.4.18-compact.zip | Bin .../conditional-all.sol-0.4.18-legacy.zip | Bin .../conditional-all.sol-0.4.19-compact.zip | Bin .../conditional-all.sol-0.4.19-legacy.zip | Bin .../conditional-all.sol-0.4.2-legacy.zip | Bin .../conditional-all.sol-0.4.20-compact.zip | Bin .../conditional-all.sol-0.4.20-legacy.zip | Bin .../conditional-all.sol-0.4.21-compact.zip | Bin .../conditional-all.sol-0.4.21-legacy.zip | Bin .../conditional-all.sol-0.4.22-compact.zip | Bin .../conditional-all.sol-0.4.22-legacy.zip | Bin .../conditional-all.sol-0.4.23-compact.zip | Bin .../conditional-all.sol-0.4.23-legacy.zip | Bin .../conditional-all.sol-0.4.24-compact.zip | Bin .../conditional-all.sol-0.4.24-legacy.zip | Bin .../conditional-all.sol-0.4.25-compact.zip | Bin .../conditional-all.sol-0.4.25-legacy.zip | Bin .../conditional-all.sol-0.4.26-compact.zip | Bin .../conditional-all.sol-0.4.26-legacy.zip | Bin .../conditional-all.sol-0.4.3-legacy.zip | Bin .../conditional-all.sol-0.4.4-legacy.zip | Bin .../conditional-all.sol-0.4.5-legacy.zip | Bin .../conditional-all.sol-0.4.6-legacy.zip | Bin .../conditional-all.sol-0.4.7-legacy.zip | Bin .../conditional-all.sol-0.4.8-legacy.zip | Bin .../conditional-all.sol-0.4.9-legacy.zip | Bin .../conditional-all.sol-0.5.0-compact.zip | Bin .../conditional-all.sol-0.5.0-legacy.zip | Bin .../conditional-all.sol-0.5.1-compact.zip | Bin .../conditional-all.sol-0.5.1-legacy.zip | Bin .../conditional-all.sol-0.5.10-compact.zip | Bin .../conditional-all.sol-0.5.10-legacy.zip | Bin .../conditional-all.sol-0.5.11-compact.zip | Bin .../conditional-all.sol-0.5.11-legacy.zip | Bin .../conditional-all.sol-0.5.12-compact.zip | Bin .../conditional-all.sol-0.5.12-legacy.zip | Bin .../conditional-all.sol-0.5.13-compact.zip | Bin .../conditional-all.sol-0.5.13-legacy.zip | Bin .../conditional-all.sol-0.5.14-compact.zip | Bin .../conditional-all.sol-0.5.14-legacy.zip | Bin .../conditional-all.sol-0.5.15-compact.zip | Bin .../conditional-all.sol-0.5.15-legacy.zip | Bin .../conditional-all.sol-0.5.16-compact.zip | Bin .../conditional-all.sol-0.5.16-legacy.zip | Bin .../conditional-all.sol-0.5.17-compact.zip | Bin .../conditional-all.sol-0.5.17-legacy.zip | Bin .../conditional-all.sol-0.5.2-compact.zip | Bin .../conditional-all.sol-0.5.2-legacy.zip | Bin .../conditional-all.sol-0.5.3-compact.zip | Bin .../conditional-all.sol-0.5.3-legacy.zip | Bin .../conditional-all.sol-0.5.4-compact.zip | Bin .../conditional-all.sol-0.5.4-legacy.zip | Bin .../conditional-all.sol-0.5.5-compact.zip | Bin .../conditional-all.sol-0.5.5-legacy.zip | Bin .../conditional-all.sol-0.5.6-compact.zip | Bin .../conditional-all.sol-0.5.6-legacy.zip | Bin .../conditional-all.sol-0.5.7-compact.zip | Bin .../conditional-all.sol-0.5.7-legacy.zip | Bin .../conditional-all.sol-0.5.8-compact.zip | Bin .../conditional-all.sol-0.5.8-legacy.zip | Bin .../conditional-all.sol-0.5.9-compact.zip | Bin .../conditional-all.sol-0.5.9-legacy.zip | Bin .../conditional-all.sol-0.6.0-compact.zip | Bin .../conditional-all.sol-0.6.0-legacy.zip | Bin .../conditional-all.sol-0.6.1-compact.zip | Bin .../conditional-all.sol-0.6.1-legacy.zip | Bin .../conditional-all.sol-0.6.10-compact.zip | Bin .../conditional-all.sol-0.6.10-legacy.zip | Bin .../conditional-all.sol-0.6.11-compact.zip | Bin .../conditional-all.sol-0.6.11-legacy.zip | Bin .../conditional-all.sol-0.6.12-compact.zip | Bin .../conditional-all.sol-0.6.12-legacy.zip | Bin .../conditional-all.sol-0.6.2-compact.zip | Bin .../conditional-all.sol-0.6.2-legacy.zip | Bin .../conditional-all.sol-0.6.3-compact.zip | Bin .../conditional-all.sol-0.6.3-legacy.zip | Bin .../conditional-all.sol-0.6.4-compact.zip | Bin .../conditional-all.sol-0.6.4-legacy.zip | Bin .../conditional-all.sol-0.6.5-compact.zip | Bin .../conditional-all.sol-0.6.5-legacy.zip | Bin .../conditional-all.sol-0.6.6-compact.zip | Bin .../conditional-all.sol-0.6.6-legacy.zip | Bin .../conditional-all.sol-0.6.7-compact.zip | Bin .../conditional-all.sol-0.6.7-legacy.zip | Bin .../conditional-all.sol-0.6.8-compact.zip | Bin .../conditional-all.sol-0.6.8-legacy.zip | Bin .../conditional-all.sol-0.6.9-compact.zip | Bin .../conditional-all.sol-0.6.9-legacy.zip | Bin .../conditional-all.sol-0.7.0-compact.zip | Bin .../conditional-all.sol-0.7.0-legacy.zip | Bin .../conditional-all.sol-0.7.1-compact.zip | Bin .../conditional-all.sol-0.7.1-legacy.zip | Bin .../conditional-all.sol-0.7.2-compact.zip | Bin .../conditional-all.sol-0.7.2-legacy.zip | Bin .../conditional-all.sol-0.7.3-compact.zip | Bin .../conditional-all.sol-0.7.3-legacy.zip | Bin .../conditional-all.sol-0.7.4-compact.zip | Bin .../conditional-all.sol-0.7.4-legacy.zip | Bin .../conditional-all.sol-0.7.5-compact.zip | Bin .../conditional-all.sol-0.7.5-legacy.zip | Bin .../conditional-all.sol-0.7.6-compact.zip | Bin .../conditional-all.sol-0.7.6-legacy.zip | Bin .../conditional-all.sol-0.8.0-compact.zip | Bin .../conditional-all.sol-0.8.1-compact.zip | Bin .../conditional-all.sol-0.8.10-compact.zip | Bin .../conditional-all.sol-0.8.11-compact.zip | Bin .../conditional-all.sol-0.8.12-compact.zip | Bin .../conditional-all.sol-0.8.13-compact.zip | Bin .../conditional-all.sol-0.8.14-compact.zip | Bin .../conditional-all.sol-0.8.15-compact.zip | Bin .../conditional-all.sol-0.8.2-compact.zip | Bin .../conditional-all.sol-0.8.3-compact.zip | Bin .../conditional-all.sol-0.8.4-compact.zip | Bin .../conditional-all.sol-0.8.5-compact.zip | Bin .../conditional-all.sol-0.8.6-compact.zip | Bin .../conditional-all.sol-0.8.7-compact.zip | Bin .../conditional-all.sol-0.8.8-compact.zip | Bin .../conditional-all.sol-0.8.9-compact.zip | Bin .../compile/continue-all.sol-0.4.0-legacy.zip | Bin .../compile/continue-all.sol-0.4.1-legacy.zip | Bin .../continue-all.sol-0.4.10-legacy.zip | Bin .../continue-all.sol-0.4.11-legacy.zip | Bin .../continue-all.sol-0.4.12-compact.zip | Bin .../continue-all.sol-0.4.12-legacy.zip | Bin .../continue-all.sol-0.4.13-compact.zip | Bin .../continue-all.sol-0.4.13-legacy.zip | Bin .../continue-all.sol-0.4.14-compact.zip | Bin .../continue-all.sol-0.4.14-legacy.zip | Bin .../continue-all.sol-0.4.15-compact.zip | Bin .../continue-all.sol-0.4.15-legacy.zip | Bin .../continue-all.sol-0.4.16-compact.zip | Bin .../continue-all.sol-0.4.16-legacy.zip | Bin .../continue-all.sol-0.4.17-compact.zip | Bin .../continue-all.sol-0.4.17-legacy.zip | Bin .../continue-all.sol-0.4.18-compact.zip | Bin .../continue-all.sol-0.4.18-legacy.zip | Bin .../continue-all.sol-0.4.19-compact.zip | Bin .../continue-all.sol-0.4.19-legacy.zip | Bin .../compile/continue-all.sol-0.4.2-legacy.zip | Bin .../continue-all.sol-0.4.20-compact.zip | Bin .../continue-all.sol-0.4.20-legacy.zip | Bin .../continue-all.sol-0.4.21-compact.zip | Bin .../continue-all.sol-0.4.21-legacy.zip | Bin .../continue-all.sol-0.4.22-compact.zip | Bin .../continue-all.sol-0.4.22-legacy.zip | Bin .../continue-all.sol-0.4.23-compact.zip | Bin .../continue-all.sol-0.4.23-legacy.zip | Bin .../continue-all.sol-0.4.24-compact.zip | Bin .../continue-all.sol-0.4.24-legacy.zip | Bin .../continue-all.sol-0.4.25-compact.zip | Bin .../continue-all.sol-0.4.25-legacy.zip | Bin .../continue-all.sol-0.4.26-compact.zip | Bin .../continue-all.sol-0.4.26-legacy.zip | Bin .../compile/continue-all.sol-0.4.3-legacy.zip | Bin .../compile/continue-all.sol-0.4.4-legacy.zip | Bin .../compile/continue-all.sol-0.4.5-legacy.zip | Bin .../compile/continue-all.sol-0.4.6-legacy.zip | Bin .../compile/continue-all.sol-0.4.7-legacy.zip | Bin .../compile/continue-all.sol-0.4.8-legacy.zip | Bin .../compile/continue-all.sol-0.4.9-legacy.zip | Bin .../continue-all.sol-0.5.0-compact.zip | Bin .../compile/continue-all.sol-0.5.0-legacy.zip | Bin .../continue-all.sol-0.5.1-compact.zip | Bin .../compile/continue-all.sol-0.5.1-legacy.zip | Bin .../continue-all.sol-0.5.10-compact.zip | Bin .../continue-all.sol-0.5.10-legacy.zip | Bin .../continue-all.sol-0.5.11-compact.zip | Bin .../continue-all.sol-0.5.11-legacy.zip | Bin .../continue-all.sol-0.5.12-compact.zip | Bin .../continue-all.sol-0.5.12-legacy.zip | Bin .../continue-all.sol-0.5.13-compact.zip | Bin .../continue-all.sol-0.5.13-legacy.zip | Bin .../continue-all.sol-0.5.14-compact.zip | Bin .../continue-all.sol-0.5.14-legacy.zip | Bin .../continue-all.sol-0.5.15-compact.zip | Bin .../continue-all.sol-0.5.15-legacy.zip | Bin .../continue-all.sol-0.5.16-compact.zip | Bin .../continue-all.sol-0.5.16-legacy.zip | Bin .../continue-all.sol-0.5.17-compact.zip | Bin .../continue-all.sol-0.5.17-legacy.zip | Bin .../continue-all.sol-0.5.2-compact.zip | Bin .../compile/continue-all.sol-0.5.2-legacy.zip | Bin .../continue-all.sol-0.5.3-compact.zip | Bin .../compile/continue-all.sol-0.5.3-legacy.zip | Bin .../continue-all.sol-0.5.4-compact.zip | Bin .../compile/continue-all.sol-0.5.4-legacy.zip | Bin .../continue-all.sol-0.5.5-compact.zip | Bin .../compile/continue-all.sol-0.5.5-legacy.zip | Bin .../continue-all.sol-0.5.6-compact.zip | Bin .../compile/continue-all.sol-0.5.6-legacy.zip | Bin .../continue-all.sol-0.5.7-compact.zip | Bin .../compile/continue-all.sol-0.5.7-legacy.zip | Bin .../continue-all.sol-0.5.8-compact.zip | Bin .../compile/continue-all.sol-0.5.8-legacy.zip | Bin .../continue-all.sol-0.5.9-compact.zip | Bin .../compile/continue-all.sol-0.5.9-legacy.zip | Bin .../continue-all.sol-0.6.0-compact.zip | Bin .../compile/continue-all.sol-0.6.0-legacy.zip | Bin .../continue-all.sol-0.6.1-compact.zip | Bin .../compile/continue-all.sol-0.6.1-legacy.zip | Bin .../continue-all.sol-0.6.10-compact.zip | Bin .../continue-all.sol-0.6.10-legacy.zip | Bin .../continue-all.sol-0.6.11-compact.zip | Bin .../continue-all.sol-0.6.11-legacy.zip | Bin .../continue-all.sol-0.6.12-compact.zip | Bin .../continue-all.sol-0.6.12-legacy.zip | Bin .../continue-all.sol-0.6.2-compact.zip | Bin .../compile/continue-all.sol-0.6.2-legacy.zip | Bin .../continue-all.sol-0.6.3-compact.zip | Bin .../compile/continue-all.sol-0.6.3-legacy.zip | Bin .../continue-all.sol-0.6.4-compact.zip | Bin .../compile/continue-all.sol-0.6.4-legacy.zip | Bin .../continue-all.sol-0.6.5-compact.zip | Bin .../compile/continue-all.sol-0.6.5-legacy.zip | Bin .../continue-all.sol-0.6.6-compact.zip | Bin .../compile/continue-all.sol-0.6.6-legacy.zip | Bin .../continue-all.sol-0.6.7-compact.zip | Bin .../compile/continue-all.sol-0.6.7-legacy.zip | Bin .../continue-all.sol-0.6.8-compact.zip | Bin .../compile/continue-all.sol-0.6.8-legacy.zip | Bin .../continue-all.sol-0.6.9-compact.zip | Bin .../compile/continue-all.sol-0.6.9-legacy.zip | Bin .../continue-all.sol-0.7.0-compact.zip | Bin .../compile/continue-all.sol-0.7.0-legacy.zip | Bin .../continue-all.sol-0.7.1-compact.zip | Bin .../compile/continue-all.sol-0.7.1-legacy.zip | Bin .../continue-all.sol-0.7.2-compact.zip | Bin .../compile/continue-all.sol-0.7.2-legacy.zip | Bin .../continue-all.sol-0.7.3-compact.zip | Bin .../compile/continue-all.sol-0.7.3-legacy.zip | Bin .../continue-all.sol-0.7.4-compact.zip | Bin .../compile/continue-all.sol-0.7.4-legacy.zip | Bin .../continue-all.sol-0.7.5-compact.zip | Bin .../compile/continue-all.sol-0.7.5-legacy.zip | Bin .../continue-all.sol-0.7.6-compact.zip | Bin .../compile/continue-all.sol-0.7.6-legacy.zip | Bin .../continue-all.sol-0.8.0-compact.zip | Bin .../continue-all.sol-0.8.1-compact.zip | Bin .../continue-all.sol-0.8.10-compact.zip | Bin .../continue-all.sol-0.8.11-compact.zip | Bin .../continue-all.sol-0.8.12-compact.zip | Bin .../continue-all.sol-0.8.13-compact.zip | Bin .../continue-all.sol-0.8.14-compact.zip | Bin .../continue-all.sol-0.8.15-compact.zip | Bin .../continue-all.sol-0.8.2-compact.zip | Bin .../continue-all.sol-0.8.3-compact.zip | Bin .../continue-all.sol-0.8.4-compact.zip | Bin .../continue-all.sol-0.8.5-compact.zip | Bin .../continue-all.sol-0.8.6-compact.zip | Bin .../continue-all.sol-0.8.7-compact.zip | Bin .../continue-all.sol-0.8.8-compact.zip | Bin .../continue-all.sol-0.8.9-compact.zip | Bin .../contract-0.4.0.sol-0.4.0-legacy.zip | Bin .../contract-0.4.0.sol-0.4.1-legacy.zip | Bin .../contract-0.4.0.sol-0.4.10-legacy.zip | Bin .../contract-0.4.0.sol-0.4.11-legacy.zip | Bin .../contract-0.4.0.sol-0.4.12-compact.zip | Bin .../contract-0.4.0.sol-0.4.12-legacy.zip | Bin .../contract-0.4.0.sol-0.4.13-compact.zip | Bin .../contract-0.4.0.sol-0.4.13-legacy.zip | Bin .../contract-0.4.0.sol-0.4.14-compact.zip | Bin .../contract-0.4.0.sol-0.4.14-legacy.zip | Bin .../contract-0.4.0.sol-0.4.15-compact.zip | Bin .../contract-0.4.0.sol-0.4.15-legacy.zip | Bin .../contract-0.4.0.sol-0.4.16-compact.zip | Bin .../contract-0.4.0.sol-0.4.16-legacy.zip | Bin .../contract-0.4.0.sol-0.4.17-compact.zip | Bin .../contract-0.4.0.sol-0.4.17-legacy.zip | Bin .../contract-0.4.0.sol-0.4.18-compact.zip | Bin .../contract-0.4.0.sol-0.4.18-legacy.zip | Bin .../contract-0.4.0.sol-0.4.19-compact.zip | Bin .../contract-0.4.0.sol-0.4.19-legacy.zip | Bin .../contract-0.4.0.sol-0.4.2-legacy.zip | Bin .../contract-0.4.0.sol-0.4.20-compact.zip | Bin .../contract-0.4.0.sol-0.4.20-legacy.zip | Bin .../contract-0.4.0.sol-0.4.21-compact.zip | Bin .../contract-0.4.0.sol-0.4.21-legacy.zip | Bin .../contract-0.4.0.sol-0.4.3-legacy.zip | Bin .../contract-0.4.0.sol-0.4.4-legacy.zip | Bin .../contract-0.4.0.sol-0.4.5-legacy.zip | Bin .../contract-0.4.0.sol-0.4.6-legacy.zip | Bin .../contract-0.4.0.sol-0.4.7-legacy.zip | Bin .../contract-0.4.0.sol-0.4.8-legacy.zip | Bin .../contract-0.4.0.sol-0.4.9-legacy.zip | Bin .../contract-0.4.22.sol-0.4.22-compact.zip | Bin .../contract-0.4.22.sol-0.4.22-legacy.zip | Bin .../contract-0.4.22.sol-0.4.23-compact.zip | Bin .../contract-0.4.22.sol-0.4.23-legacy.zip | Bin .../contract-0.4.22.sol-0.4.24-compact.zip | Bin .../contract-0.4.22.sol-0.4.24-legacy.zip | Bin .../contract-0.4.22.sol-0.4.25-compact.zip | Bin .../contract-0.4.22.sol-0.4.25-legacy.zip | Bin .../contract-0.4.22.sol-0.4.26-compact.zip | Bin .../contract-0.4.22.sol-0.4.26-legacy.zip | Bin .../contract-0.4.22.sol-0.5.0-compact.zip | Bin .../contract-0.4.22.sol-0.5.0-legacy.zip | Bin .../contract-0.4.22.sol-0.5.1-compact.zip | Bin .../contract-0.4.22.sol-0.5.1-legacy.zip | Bin .../contract-0.4.22.sol-0.5.10-compact.zip | Bin .../contract-0.4.22.sol-0.5.10-legacy.zip | Bin .../contract-0.4.22.sol-0.5.11-compact.zip | Bin .../contract-0.4.22.sol-0.5.11-legacy.zip | Bin .../contract-0.4.22.sol-0.5.12-compact.zip | Bin .../contract-0.4.22.sol-0.5.12-legacy.zip | Bin .../contract-0.4.22.sol-0.5.13-compact.zip | Bin .../contract-0.4.22.sol-0.5.13-legacy.zip | Bin .../contract-0.4.22.sol-0.5.14-compact.zip | Bin .../contract-0.4.22.sol-0.5.14-legacy.zip | Bin .../contract-0.4.22.sol-0.5.15-compact.zip | Bin .../contract-0.4.22.sol-0.5.15-legacy.zip | Bin .../contract-0.4.22.sol-0.5.16-compact.zip | Bin .../contract-0.4.22.sol-0.5.16-legacy.zip | Bin .../contract-0.4.22.sol-0.5.17-compact.zip | Bin .../contract-0.4.22.sol-0.5.17-legacy.zip | Bin .../contract-0.4.22.sol-0.5.2-compact.zip | Bin .../contract-0.4.22.sol-0.5.2-legacy.zip | Bin .../contract-0.4.22.sol-0.5.3-compact.zip | Bin .../contract-0.4.22.sol-0.5.3-legacy.zip | Bin .../contract-0.4.22.sol-0.5.4-compact.zip | Bin .../contract-0.4.22.sol-0.5.4-legacy.zip | Bin .../contract-0.4.22.sol-0.5.5-compact.zip | Bin .../contract-0.4.22.sol-0.5.5-legacy.zip | Bin .../contract-0.4.22.sol-0.5.6-compact.zip | Bin .../contract-0.4.22.sol-0.5.6-legacy.zip | Bin .../contract-0.4.22.sol-0.5.7-compact.zip | Bin .../contract-0.4.22.sol-0.5.7-legacy.zip | Bin .../contract-0.4.22.sol-0.5.8-compact.zip | Bin .../contract-0.4.22.sol-0.5.8-legacy.zip | Bin .../contract-0.4.22.sol-0.5.9-compact.zip | Bin .../contract-0.4.22.sol-0.5.9-legacy.zip | Bin .../contract-0.6.0.sol-0.6.0-compact.zip | Bin .../contract-0.6.0.sol-0.6.0-legacy.zip | Bin .../contract-0.6.0.sol-0.6.1-compact.zip | Bin .../contract-0.6.0.sol-0.6.1-legacy.zip | Bin .../contract-0.6.0.sol-0.6.10-compact.zip | Bin .../contract-0.6.0.sol-0.6.10-legacy.zip | Bin .../contract-0.6.0.sol-0.6.11-compact.zip | Bin .../contract-0.6.0.sol-0.6.11-legacy.zip | Bin .../contract-0.6.0.sol-0.6.12-compact.zip | Bin .../contract-0.6.0.sol-0.6.12-legacy.zip | Bin .../contract-0.6.0.sol-0.6.2-compact.zip | Bin .../contract-0.6.0.sol-0.6.2-legacy.zip | Bin .../contract-0.6.0.sol-0.6.3-compact.zip | Bin .../contract-0.6.0.sol-0.6.3-legacy.zip | Bin .../contract-0.6.0.sol-0.6.4-compact.zip | Bin .../contract-0.6.0.sol-0.6.4-legacy.zip | Bin .../contract-0.6.0.sol-0.6.5-compact.zip | Bin .../contract-0.6.0.sol-0.6.5-legacy.zip | Bin .../contract-0.6.0.sol-0.6.6-compact.zip | Bin .../contract-0.6.0.sol-0.6.6-legacy.zip | Bin .../contract-0.6.0.sol-0.6.7-compact.zip | Bin .../contract-0.6.0.sol-0.6.7-legacy.zip | Bin .../contract-0.6.0.sol-0.6.8-compact.zip | Bin .../contract-0.6.0.sol-0.6.8-legacy.zip | Bin .../contract-0.6.0.sol-0.6.9-compact.zip | Bin .../contract-0.6.0.sol-0.6.9-legacy.zip | Bin .../contract-0.6.0.sol-0.7.0-compact.zip | Bin .../contract-0.6.0.sol-0.7.0-legacy.zip | Bin .../contract-0.6.0.sol-0.7.1-compact.zip | Bin .../contract-0.6.0.sol-0.7.1-legacy.zip | Bin .../contract-0.6.0.sol-0.7.2-compact.zip | Bin .../contract-0.6.0.sol-0.7.2-legacy.zip | Bin .../contract-0.6.0.sol-0.7.3-compact.zip | Bin .../contract-0.6.0.sol-0.7.3-legacy.zip | Bin .../contract-0.6.0.sol-0.7.4-compact.zip | Bin .../contract-0.6.0.sol-0.7.4-legacy.zip | Bin .../contract-0.6.0.sol-0.7.5-compact.zip | Bin .../contract-0.6.0.sol-0.7.5-legacy.zip | Bin .../contract-0.6.0.sol-0.7.6-compact.zip | Bin .../contract-0.6.0.sol-0.7.6-legacy.zip | Bin .../contract-0.6.0.sol-0.8.0-compact.zip | Bin .../contract-0.6.0.sol-0.8.1-compact.zip | Bin .../contract-0.6.0.sol-0.8.10-compact.zip | Bin .../contract-0.6.0.sol-0.8.11-compact.zip | Bin .../contract-0.6.0.sol-0.8.12-compact.zip | Bin .../contract-0.6.0.sol-0.8.13-compact.zip | Bin .../contract-0.6.0.sol-0.8.14-compact.zip | Bin .../contract-0.6.0.sol-0.8.15-compact.zip | Bin .../contract-0.6.0.sol-0.8.2-compact.zip | Bin .../contract-0.6.0.sol-0.8.3-compact.zip | Bin .../contract-0.6.0.sol-0.8.4-compact.zip | Bin .../contract-0.6.0.sol-0.8.5-compact.zip | Bin .../contract-0.6.0.sol-0.8.6-compact.zip | Bin .../contract-0.6.0.sol-0.8.7-compact.zip | Bin .../contract-0.6.0.sol-0.8.8-compact.zip | Bin .../contract-0.6.0.sol-0.8.9-compact.zip | Bin ...stom-error-selector.sol-0.8.10-compact.zip | Bin ...stom-error-selector.sol-0.8.11-compact.zip | Bin ...stom-error-selector.sol-0.8.12-compact.zip | Bin ...stom-error-selector.sol-0.8.13-compact.zip | Bin ...stom-error-selector.sol-0.8.14-compact.zip | Bin ...stom-error-selector.sol-0.8.15-compact.zip | Bin ...ustom-error-selector.sol-0.8.4-compact.zip | Bin ...ustom-error-selector.sol-0.8.5-compact.zip | Bin ...ustom-error-selector.sol-0.8.6-compact.zip | Bin ...ustom-error-selector.sol-0.8.7-compact.zip | Bin ...ustom-error-selector.sol-0.8.8-compact.zip | Bin ...ustom-error-selector.sol-0.8.9-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.0-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.1-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.10-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.11-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.12-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.12-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.13-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.13-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.14-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.14-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.15-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.15-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.16-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.16-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.17-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.17-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.18-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.18-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.19-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.19-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.2-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.20-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.20-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.21-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.21-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.22-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.22-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.23-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.23-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.24-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.24-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.25-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.25-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.26-compact.zip | Bin .../custom_error-0.4.0.sol-0.4.26-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.3-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.4-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.5-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.6-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.7-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.8-legacy.zip | Bin .../custom_error-0.4.0.sol-0.4.9-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.0-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.0-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.1-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.1-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.10-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.10-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.11-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.11-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.12-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.12-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.13-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.13-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.14-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.14-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.15-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.15-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.16-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.16-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.17-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.17-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.2-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.2-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.3-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.3-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.4-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.4-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.5-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.5-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.6-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.6-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.7-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.7-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.8-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.8-legacy.zip | Bin .../custom_error-0.4.0.sol-0.5.9-compact.zip | Bin .../custom_error-0.4.0.sol-0.5.9-legacy.zip | Bin .../custom_error-0.4.0.sol-0.6.0-compact.zip | Bin .../custom_error-0.4.0.sol-0.6.0-legacy.zip | Bin .../custom_error-0.4.0.sol-0.6.1-compact.zip | Bin .../custom_error-0.4.0.sol-0.6.1-legacy.zip | Bin .../custom_error-0.4.0.sol-0.6.10-compact.zip | Bin .../custom_error-0.4.0.sol-0.6.10-legacy.zip | Bin .../custom_error-0.4.0.sol-0.6.11-compact.zip | Bin .../custom_error-0.4.0.sol-0.6.11-legacy.zip | Bin .../custom_error-0.4.0.sol-0.6.12-compact.zip | Bin .../custom_error-0.4.0.sol-0.6.12-legacy.zip | Bin .../custom_error-0.4.0.sol-0.6.2-compact.zip | Bin .../custom_error-0.4.0.sol-0.6.2-legacy.zip | Bin .../custom_error-0.4.0.sol-0.6.3-compact.zip | Bin .../custom_error-0.4.0.sol-0.6.3-legacy.zip | Bin .../custom_error-0.4.0.sol-0.6.4-compact.zip | Bin .../custom_error-0.4.0.sol-0.6.4-legacy.zip | Bin .../custom_error-0.4.0.sol-0.6.5-compact.zip | Bin .../custom_error-0.4.0.sol-0.6.5-legacy.zip | Bin .../custom_error-0.4.0.sol-0.6.6-compact.zip | Bin .../custom_error-0.4.0.sol-0.6.6-legacy.zip | Bin .../custom_error-0.4.0.sol-0.6.7-compact.zip | Bin .../custom_error-0.4.0.sol-0.6.7-legacy.zip | Bin .../custom_error-0.4.0.sol-0.6.8-compact.zip | Bin .../custom_error-0.4.0.sol-0.6.8-legacy.zip | Bin .../custom_error-0.4.0.sol-0.6.9-compact.zip | Bin .../custom_error-0.4.0.sol-0.6.9-legacy.zip | Bin .../custom_error-0.4.0.sol-0.7.0-compact.zip | Bin .../custom_error-0.4.0.sol-0.7.0-legacy.zip | Bin .../custom_error-0.4.0.sol-0.7.1-compact.zip | Bin .../custom_error-0.4.0.sol-0.7.1-legacy.zip | Bin .../custom_error-0.4.0.sol-0.7.2-compact.zip | Bin .../custom_error-0.4.0.sol-0.7.2-legacy.zip | Bin .../custom_error-0.4.0.sol-0.7.3-compact.zip | Bin .../custom_error-0.4.0.sol-0.7.3-legacy.zip | Bin .../custom_error-0.4.0.sol-0.7.4-compact.zip | Bin .../custom_error-0.4.0.sol-0.7.4-legacy.zip | Bin .../custom_error-0.4.0.sol-0.7.5-compact.zip | Bin .../custom_error-0.4.0.sol-0.7.5-legacy.zip | Bin .../custom_error-0.4.0.sol-0.7.6-compact.zip | Bin .../custom_error-0.4.0.sol-0.7.6-legacy.zip | Bin .../custom_error-0.4.0.sol-0.8.0-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.1-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.10-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.11-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.12-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.13-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.14-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.15-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.2-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.3-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.4-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.5-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.6-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.7-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.8-compact.zip | Bin .../custom_error-0.4.0.sol-0.8.9-compact.zip | Bin .../custom_error-0.8.4.sol-0.8.10-compact.zip | Bin .../custom_error-0.8.4.sol-0.8.11-compact.zip | Bin .../custom_error-0.8.4.sol-0.8.12-compact.zip | Bin .../custom_error-0.8.4.sol-0.8.13-compact.zip | Bin .../custom_error-0.8.4.sol-0.8.14-compact.zip | Bin .../custom_error-0.8.4.sol-0.8.15-compact.zip | Bin .../custom_error-0.8.4.sol-0.8.4-compact.zip | Bin .../custom_error-0.8.4.sol-0.8.5-compact.zip | Bin .../custom_error-0.8.4.sol-0.8.6-compact.zip | Bin .../custom_error-0.8.4.sol-0.8.7-compact.zip | Bin .../custom_error-0.8.4.sol-0.8.8-compact.zip | Bin .../custom_error-0.8.4.sol-0.8.9-compact.zip | Bin ...with_state_variable.sol-0.8.10-compact.zip | Bin ...with_state_variable.sol-0.8.11-compact.zip | Bin ...with_state_variable.sol-0.8.12-compact.zip | Bin ..._with_state_variable.sol-0.8.4-compact.zip | Bin ..._with_state_variable.sol-0.8.5-compact.zip | Bin ..._with_state_variable.sol-0.8.6-compact.zip | Bin ..._with_state_variable.sol-0.8.7-compact.zip | Bin ..._with_state_variable.sol-0.8.8-compact.zip | Bin ..._with_state_variable.sol-0.8.9-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.0-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.1-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.10-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.11-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.12-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.12-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.13-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.13-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.14-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.14-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.15-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.15-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.16-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.16-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.17-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.17-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.18-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.18-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.19-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.19-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.2-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.20-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.20-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.21-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.21-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.22-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.22-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.23-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.23-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.24-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.24-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.25-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.25-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.26-compact.zip | Bin .../dowhile-0.4.0.sol-0.4.26-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.3-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.4-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.5-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.6-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.7-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.8-legacy.zip | Bin .../dowhile-0.4.0.sol-0.4.9-legacy.zip | Bin .../dowhile-0.4.5.sol-0.4.5-legacy.zip | Bin .../dowhile-0.4.5.sol-0.4.6-legacy.zip | Bin .../dowhile-0.4.5.sol-0.4.7-legacy.zip | Bin .../dowhile-0.4.5.sol-0.4.8-legacy.zip | Bin .../dowhile-0.4.5.sol-0.4.9-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.0-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.0-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.1-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.1-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.10-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.10-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.11-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.11-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.12-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.12-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.13-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.13-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.14-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.14-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.15-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.15-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.16-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.16-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.17-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.17-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.2-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.2-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.3-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.3-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.4-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.4-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.5-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.5-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.6-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.6-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.7-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.7-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.8-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.8-legacy.zip | Bin .../dowhile-0.4.5.sol-0.5.9-compact.zip | Bin .../dowhile-0.4.5.sol-0.5.9-legacy.zip | Bin .../dowhile-0.4.5.sol-0.6.0-compact.zip | Bin .../dowhile-0.4.5.sol-0.6.0-legacy.zip | Bin .../dowhile-0.4.5.sol-0.6.1-compact.zip | Bin .../dowhile-0.4.5.sol-0.6.1-legacy.zip | Bin .../dowhile-0.4.5.sol-0.6.10-compact.zip | Bin .../dowhile-0.4.5.sol-0.6.10-legacy.zip | Bin .../dowhile-0.4.5.sol-0.6.11-compact.zip | Bin .../dowhile-0.4.5.sol-0.6.11-legacy.zip | Bin .../dowhile-0.4.5.sol-0.6.12-compact.zip | Bin .../dowhile-0.4.5.sol-0.6.12-legacy.zip | Bin .../dowhile-0.4.5.sol-0.6.2-compact.zip | Bin .../dowhile-0.4.5.sol-0.6.2-legacy.zip | Bin .../dowhile-0.4.5.sol-0.6.3-compact.zip | Bin .../dowhile-0.4.5.sol-0.6.3-legacy.zip | Bin .../dowhile-0.4.5.sol-0.6.4-compact.zip | Bin .../dowhile-0.4.5.sol-0.6.4-legacy.zip | Bin .../dowhile-0.4.5.sol-0.6.5-compact.zip | Bin .../dowhile-0.4.5.sol-0.6.5-legacy.zip | Bin .../dowhile-0.4.5.sol-0.6.6-compact.zip | Bin .../dowhile-0.4.5.sol-0.6.6-legacy.zip | Bin .../dowhile-0.4.5.sol-0.6.7-compact.zip | Bin .../dowhile-0.4.5.sol-0.6.7-legacy.zip | Bin .../dowhile-0.4.5.sol-0.6.8-compact.zip | Bin .../dowhile-0.4.5.sol-0.6.8-legacy.zip | Bin .../dowhile-0.4.5.sol-0.6.9-compact.zip | Bin .../dowhile-0.4.5.sol-0.6.9-legacy.zip | Bin .../dowhile-0.4.5.sol-0.7.0-compact.zip | Bin .../dowhile-0.4.5.sol-0.7.0-legacy.zip | Bin .../dowhile-0.4.5.sol-0.7.1-compact.zip | Bin .../dowhile-0.4.5.sol-0.7.1-legacy.zip | Bin .../dowhile-0.4.5.sol-0.7.2-compact.zip | Bin .../dowhile-0.4.5.sol-0.7.2-legacy.zip | Bin .../dowhile-0.4.5.sol-0.7.3-compact.zip | Bin .../dowhile-0.4.5.sol-0.7.3-legacy.zip | Bin .../dowhile-0.4.5.sol-0.7.4-compact.zip | Bin .../dowhile-0.4.5.sol-0.7.4-legacy.zip | Bin .../dowhile-0.4.5.sol-0.7.5-compact.zip | Bin .../dowhile-0.4.5.sol-0.7.5-legacy.zip | Bin .../dowhile-0.4.5.sol-0.7.6-compact.zip | Bin .../dowhile-0.4.5.sol-0.7.6-legacy.zip | Bin .../dowhile-0.4.5.sol-0.8.0-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.1-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.10-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.11-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.12-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.13-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.14-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.15-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.2-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.3-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.4-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.5-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.6-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.7-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.8-compact.zip | Bin .../dowhile-0.4.5.sol-0.8.9-compact.zip | Bin .../emit-0.4.21.sol-0.4.21-compact.zip | Bin .../compile/emit-0.4.21.sol-0.4.21-legacy.zip | Bin .../emit-0.4.21.sol-0.4.22-compact.zip | Bin .../compile/emit-0.4.21.sol-0.4.22-legacy.zip | Bin .../emit-0.4.21.sol-0.4.23-compact.zip | Bin .../compile/emit-0.4.21.sol-0.4.23-legacy.zip | Bin .../emit-0.4.21.sol-0.4.24-compact.zip | Bin .../compile/emit-0.4.21.sol-0.4.24-legacy.zip | Bin .../emit-0.4.21.sol-0.4.25-compact.zip | Bin .../compile/emit-0.4.21.sol-0.4.25-legacy.zip | Bin .../emit-0.4.21.sol-0.4.26-compact.zip | Bin .../compile/emit-0.4.21.sol-0.4.26-legacy.zip | Bin .../compile/emit-0.4.8.sol-0.4.10-compact.zip | Bin .../compile/emit-0.4.8.sol-0.4.10-legacy.zip | Bin .../compile/emit-0.4.8.sol-0.4.11-compact.zip | Bin .../compile/emit-0.4.8.sol-0.4.11-legacy.zip | Bin .../compile/emit-0.4.8.sol-0.4.12-compact.zip | Bin .../compile/emit-0.4.8.sol-0.4.12-legacy.zip | Bin .../compile/emit-0.4.8.sol-0.4.13-compact.zip | Bin .../compile/emit-0.4.8.sol-0.4.13-legacy.zip | Bin .../compile/emit-0.4.8.sol-0.4.14-compact.zip | Bin .../compile/emit-0.4.8.sol-0.4.14-legacy.zip | Bin .../compile/emit-0.4.8.sol-0.4.15-compact.zip | Bin .../compile/emit-0.4.8.sol-0.4.15-legacy.zip | Bin .../compile/emit-0.4.8.sol-0.4.16-compact.zip | Bin .../compile/emit-0.4.8.sol-0.4.16-legacy.zip | Bin .../compile/emit-0.4.8.sol-0.4.17-compact.zip | Bin .../compile/emit-0.4.8.sol-0.4.17-legacy.zip | Bin .../compile/emit-0.4.8.sol-0.4.18-compact.zip | Bin .../compile/emit-0.4.8.sol-0.4.18-legacy.zip | Bin .../compile/emit-0.4.8.sol-0.4.19-compact.zip | Bin .../compile/emit-0.4.8.sol-0.4.19-legacy.zip | Bin .../compile/emit-0.4.8.sol-0.4.20-compact.zip | Bin .../compile/emit-0.4.8.sol-0.4.20-legacy.zip | Bin .../compile/emit-0.4.8.sol-0.4.8-compact.zip | Bin .../compile/emit-0.4.8.sol-0.4.8-legacy.zip | Bin .../compile/emit-0.4.8.sol-0.4.9-compact.zip | Bin .../compile/emit-0.4.8.sol-0.4.9-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.0-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.0-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.1-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.1-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.10-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.10-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.11-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.11-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.12-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.12-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.13-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.13-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.14-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.14-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.15-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.15-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.16-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.16-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.17-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.17-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.2-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.2-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.3-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.3-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.4-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.4-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.5-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.5-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.6-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.6-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.7-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.7-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.8-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.8-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.5.9-compact.zip | Bin .../compile/emit-0.5.0.sol-0.5.9-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.6.0-compact.zip | Bin .../compile/emit-0.5.0.sol-0.6.0-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.6.1-compact.zip | Bin .../compile/emit-0.5.0.sol-0.6.1-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.6.10-compact.zip | Bin .../compile/emit-0.5.0.sol-0.6.10-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.6.11-compact.zip | Bin .../compile/emit-0.5.0.sol-0.6.11-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.6.12-compact.zip | Bin .../compile/emit-0.5.0.sol-0.6.12-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.6.2-compact.zip | Bin .../compile/emit-0.5.0.sol-0.6.2-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.6.3-compact.zip | Bin .../compile/emit-0.5.0.sol-0.6.3-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.6.4-compact.zip | Bin .../compile/emit-0.5.0.sol-0.6.4-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.6.5-compact.zip | Bin .../compile/emit-0.5.0.sol-0.6.5-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.6.6-compact.zip | Bin .../compile/emit-0.5.0.sol-0.6.6-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.6.7-compact.zip | Bin .../compile/emit-0.5.0.sol-0.6.7-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.6.8-compact.zip | Bin .../compile/emit-0.5.0.sol-0.6.8-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.6.9-compact.zip | Bin .../compile/emit-0.5.0.sol-0.6.9-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.7.0-compact.zip | Bin .../compile/emit-0.5.0.sol-0.7.0-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.7.1-compact.zip | Bin .../compile/emit-0.5.0.sol-0.7.1-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.7.2-compact.zip | Bin .../compile/emit-0.5.0.sol-0.7.2-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.7.3-compact.zip | Bin .../compile/emit-0.5.0.sol-0.7.3-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.7.4-compact.zip | Bin .../compile/emit-0.5.0.sol-0.7.4-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.7.5-compact.zip | Bin .../compile/emit-0.5.0.sol-0.7.5-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.7.6-compact.zip | Bin .../compile/emit-0.5.0.sol-0.7.6-legacy.zip | Bin .../compile/emit-0.5.0.sol-0.8.0-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.1-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.10-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.11-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.12-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.13-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.14-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.15-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.2-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.3-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.4-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.5-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.6-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.7-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.8-compact.zip | Bin .../compile/emit-0.5.0.sol-0.8.9-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.0-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.1-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.10-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.11-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.12-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.12-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.13-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.13-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.14-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.14-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.15-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.15-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.16-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.16-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.17-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.17-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.18-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.18-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.19-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.19-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.2-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.20-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.20-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.21-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.21-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.22-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.22-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.23-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.23-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.24-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.24-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.25-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.25-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.26-compact.zip | Bin .../compile/enum-0.4.0.sol-0.4.26-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.3-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.4-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.5-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.6-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.7-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.8-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.4.9-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.0-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.0-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.1-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.1-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.10-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.10-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.11-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.11-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.12-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.12-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.13-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.13-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.14-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.14-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.15-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.15-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.16-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.16-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.17-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.17-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.2-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.2-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.3-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.3-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.4-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.4-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.5-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.5-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.6-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.6-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.7-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.7-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.8-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.8-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.5.9-compact.zip | Bin .../compile/enum-0.4.0.sol-0.5.9-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.6.0-compact.zip | Bin .../compile/enum-0.4.0.sol-0.6.0-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.6.1-compact.zip | Bin .../compile/enum-0.4.0.sol-0.6.1-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.6.10-compact.zip | Bin .../compile/enum-0.4.0.sol-0.6.10-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.6.11-compact.zip | Bin .../compile/enum-0.4.0.sol-0.6.11-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.6.12-compact.zip | Bin .../compile/enum-0.4.0.sol-0.6.12-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.6.2-compact.zip | Bin .../compile/enum-0.4.0.sol-0.6.2-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.6.3-compact.zip | Bin .../compile/enum-0.4.0.sol-0.6.3-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.6.4-compact.zip | Bin .../compile/enum-0.4.0.sol-0.6.4-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.6.5-compact.zip | Bin .../compile/enum-0.4.0.sol-0.6.5-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.6.6-compact.zip | Bin .../compile/enum-0.4.0.sol-0.6.6-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.6.7-compact.zip | Bin .../compile/enum-0.4.0.sol-0.6.7-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.6.8-compact.zip | Bin .../compile/enum-0.4.0.sol-0.6.8-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.6.9-compact.zip | Bin .../compile/enum-0.4.0.sol-0.6.9-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.7.0-compact.zip | Bin .../compile/enum-0.4.0.sol-0.7.0-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.7.1-compact.zip | Bin .../compile/enum-0.4.0.sol-0.7.1-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.7.2-compact.zip | Bin .../compile/enum-0.4.0.sol-0.7.2-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.7.3-compact.zip | Bin .../compile/enum-0.4.0.sol-0.7.3-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.7.4-compact.zip | Bin .../compile/enum-0.4.0.sol-0.7.4-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.7.5-compact.zip | Bin .../compile/enum-0.4.0.sol-0.7.5-legacy.zip | Bin .../compile/enum-0.4.0.sol-0.7.6-compact.zip | Bin .../compile/enum-0.4.0.sol-0.7.6-legacy.zip | Bin .../compile/enum-0.8.0.sol-0.8.0-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.1-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.10-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.11-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.12-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.13-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.14-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.15-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.2-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.3-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.4-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.5-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.6-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.7-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.8-compact.zip | Bin .../compile/enum-0.8.0.sol-0.8.9-compact.zip | Bin .../compile/event-all.sol-0.4.0-legacy.zip | Bin .../compile/event-all.sol-0.4.1-legacy.zip | Bin .../compile/event-all.sol-0.4.10-legacy.zip | Bin .../compile/event-all.sol-0.4.11-legacy.zip | Bin .../compile/event-all.sol-0.4.12-compact.zip | Bin .../compile/event-all.sol-0.4.12-legacy.zip | Bin .../compile/event-all.sol-0.4.13-compact.zip | Bin .../compile/event-all.sol-0.4.13-legacy.zip | Bin .../compile/event-all.sol-0.4.14-compact.zip | Bin .../compile/event-all.sol-0.4.14-legacy.zip | Bin .../compile/event-all.sol-0.4.15-compact.zip | Bin .../compile/event-all.sol-0.4.15-legacy.zip | Bin .../compile/event-all.sol-0.4.16-compact.zip | Bin .../compile/event-all.sol-0.4.16-legacy.zip | Bin .../compile/event-all.sol-0.4.17-compact.zip | Bin .../compile/event-all.sol-0.4.17-legacy.zip | Bin .../compile/event-all.sol-0.4.18-compact.zip | Bin .../compile/event-all.sol-0.4.18-legacy.zip | Bin .../compile/event-all.sol-0.4.19-compact.zip | Bin .../compile/event-all.sol-0.4.19-legacy.zip | Bin .../compile/event-all.sol-0.4.2-legacy.zip | Bin .../compile/event-all.sol-0.4.20-compact.zip | Bin .../compile/event-all.sol-0.4.20-legacy.zip | Bin .../compile/event-all.sol-0.4.21-compact.zip | Bin .../compile/event-all.sol-0.4.21-legacy.zip | Bin .../compile/event-all.sol-0.4.22-compact.zip | Bin .../compile/event-all.sol-0.4.22-legacy.zip | Bin .../compile/event-all.sol-0.4.23-compact.zip | Bin .../compile/event-all.sol-0.4.23-legacy.zip | Bin .../compile/event-all.sol-0.4.24-compact.zip | Bin .../compile/event-all.sol-0.4.24-legacy.zip | Bin .../compile/event-all.sol-0.4.25-compact.zip | Bin .../compile/event-all.sol-0.4.25-legacy.zip | Bin .../compile/event-all.sol-0.4.26-compact.zip | Bin .../compile/event-all.sol-0.4.26-legacy.zip | Bin .../compile/event-all.sol-0.4.3-legacy.zip | Bin .../compile/event-all.sol-0.4.4-legacy.zip | Bin .../compile/event-all.sol-0.4.5-legacy.zip | Bin .../compile/event-all.sol-0.4.6-legacy.zip | Bin .../compile/event-all.sol-0.4.7-legacy.zip | Bin .../compile/event-all.sol-0.4.8-legacy.zip | Bin .../compile/event-all.sol-0.4.9-legacy.zip | Bin .../compile/event-all.sol-0.5.0-compact.zip | Bin .../compile/event-all.sol-0.5.0-legacy.zip | Bin .../compile/event-all.sol-0.5.1-compact.zip | Bin .../compile/event-all.sol-0.5.1-legacy.zip | Bin .../compile/event-all.sol-0.5.10-compact.zip | Bin .../compile/event-all.sol-0.5.10-legacy.zip | Bin .../compile/event-all.sol-0.5.11-compact.zip | Bin .../compile/event-all.sol-0.5.11-legacy.zip | Bin .../compile/event-all.sol-0.5.12-compact.zip | Bin .../compile/event-all.sol-0.5.12-legacy.zip | Bin .../compile/event-all.sol-0.5.13-compact.zip | Bin .../compile/event-all.sol-0.5.13-legacy.zip | Bin .../compile/event-all.sol-0.5.14-compact.zip | Bin .../compile/event-all.sol-0.5.14-legacy.zip | Bin .../compile/event-all.sol-0.5.15-compact.zip | Bin .../compile/event-all.sol-0.5.15-legacy.zip | Bin .../compile/event-all.sol-0.5.16-compact.zip | Bin .../compile/event-all.sol-0.5.16-legacy.zip | Bin .../compile/event-all.sol-0.5.17-compact.zip | Bin .../compile/event-all.sol-0.5.17-legacy.zip | Bin .../compile/event-all.sol-0.5.2-compact.zip | Bin .../compile/event-all.sol-0.5.2-legacy.zip | Bin .../compile/event-all.sol-0.5.3-compact.zip | Bin .../compile/event-all.sol-0.5.3-legacy.zip | Bin .../compile/event-all.sol-0.5.4-compact.zip | Bin .../compile/event-all.sol-0.5.4-legacy.zip | Bin .../compile/event-all.sol-0.5.5-compact.zip | Bin .../compile/event-all.sol-0.5.5-legacy.zip | Bin .../compile/event-all.sol-0.5.6-compact.zip | Bin .../compile/event-all.sol-0.5.6-legacy.zip | Bin .../compile/event-all.sol-0.5.7-compact.zip | Bin .../compile/event-all.sol-0.5.7-legacy.zip | Bin .../compile/event-all.sol-0.5.8-compact.zip | Bin .../compile/event-all.sol-0.5.8-legacy.zip | Bin .../compile/event-all.sol-0.5.9-compact.zip | Bin .../compile/event-all.sol-0.5.9-legacy.zip | Bin .../compile/event-all.sol-0.6.0-compact.zip | Bin .../compile/event-all.sol-0.6.0-legacy.zip | Bin .../compile/event-all.sol-0.6.1-compact.zip | Bin .../compile/event-all.sol-0.6.1-legacy.zip | Bin .../compile/event-all.sol-0.6.10-compact.zip | Bin .../compile/event-all.sol-0.6.10-legacy.zip | Bin .../compile/event-all.sol-0.6.11-compact.zip | Bin .../compile/event-all.sol-0.6.11-legacy.zip | Bin .../compile/event-all.sol-0.6.12-compact.zip | Bin .../compile/event-all.sol-0.6.12-legacy.zip | Bin .../compile/event-all.sol-0.6.2-compact.zip | Bin .../compile/event-all.sol-0.6.2-legacy.zip | Bin .../compile/event-all.sol-0.6.3-compact.zip | Bin .../compile/event-all.sol-0.6.3-legacy.zip | Bin .../compile/event-all.sol-0.6.4-compact.zip | Bin .../compile/event-all.sol-0.6.4-legacy.zip | Bin .../compile/event-all.sol-0.6.5-compact.zip | Bin .../compile/event-all.sol-0.6.5-legacy.zip | Bin .../compile/event-all.sol-0.6.6-compact.zip | Bin .../compile/event-all.sol-0.6.6-legacy.zip | Bin .../compile/event-all.sol-0.6.7-compact.zip | Bin .../compile/event-all.sol-0.6.7-legacy.zip | Bin .../compile/event-all.sol-0.6.8-compact.zip | Bin .../compile/event-all.sol-0.6.8-legacy.zip | Bin .../compile/event-all.sol-0.6.9-compact.zip | Bin .../compile/event-all.sol-0.6.9-legacy.zip | Bin .../compile/event-all.sol-0.7.0-compact.zip | Bin .../compile/event-all.sol-0.7.0-legacy.zip | Bin .../compile/event-all.sol-0.7.1-compact.zip | Bin .../compile/event-all.sol-0.7.1-legacy.zip | Bin .../compile/event-all.sol-0.7.2-compact.zip | Bin .../compile/event-all.sol-0.7.2-legacy.zip | Bin .../compile/event-all.sol-0.7.3-compact.zip | Bin .../compile/event-all.sol-0.7.3-legacy.zip | Bin .../compile/event-all.sol-0.7.4-compact.zip | Bin .../compile/event-all.sol-0.7.4-legacy.zip | Bin .../compile/event-all.sol-0.7.5-compact.zip | Bin .../compile/event-all.sol-0.7.5-legacy.zip | Bin .../compile/event-all.sol-0.7.6-compact.zip | Bin .../compile/event-all.sol-0.7.6-legacy.zip | Bin .../compile/event-all.sol-0.8.0-compact.zip | Bin .../compile/event-all.sol-0.8.1-compact.zip | Bin .../compile/event-all.sol-0.8.10-compact.zip | Bin .../compile/event-all.sol-0.8.11-compact.zip | Bin .../compile/event-all.sol-0.8.12-compact.zip | Bin .../compile/event-all.sol-0.8.13-compact.zip | Bin .../compile/event-all.sol-0.8.14-compact.zip | Bin .../compile/event-all.sol-0.8.15-compact.zip | Bin .../compile/event-all.sol-0.8.2-compact.zip | Bin .../compile/event-all.sol-0.8.3-compact.zip | Bin .../compile/event-all.sol-0.8.4-compact.zip | Bin .../compile/event-all.sol-0.8.5-compact.zip | Bin .../compile/event-all.sol-0.8.6-compact.zip | Bin .../compile/event-all.sol-0.8.7-compact.zip | Bin .../compile/event-all.sol-0.8.8-compact.zip | Bin .../compile/event-all.sol-0.8.9-compact.zip | Bin .../compile/for-all.sol-0.4.0-legacy.zip | Bin .../compile/for-all.sol-0.4.1-legacy.zip | Bin .../compile/for-all.sol-0.4.10-legacy.zip | Bin .../compile/for-all.sol-0.4.11-legacy.zip | Bin .../compile/for-all.sol-0.4.12-compact.zip | Bin .../compile/for-all.sol-0.4.12-legacy.zip | Bin .../compile/for-all.sol-0.4.13-compact.zip | Bin .../compile/for-all.sol-0.4.13-legacy.zip | Bin .../compile/for-all.sol-0.4.14-compact.zip | Bin .../compile/for-all.sol-0.4.14-legacy.zip | Bin .../compile/for-all.sol-0.4.15-compact.zip | Bin .../compile/for-all.sol-0.4.15-legacy.zip | Bin .../compile/for-all.sol-0.4.16-compact.zip | Bin .../compile/for-all.sol-0.4.16-legacy.zip | Bin .../compile/for-all.sol-0.4.17-compact.zip | Bin .../compile/for-all.sol-0.4.17-legacy.zip | Bin .../compile/for-all.sol-0.4.18-compact.zip | Bin .../compile/for-all.sol-0.4.18-legacy.zip | Bin .../compile/for-all.sol-0.4.19-compact.zip | Bin .../compile/for-all.sol-0.4.19-legacy.zip | Bin .../compile/for-all.sol-0.4.2-legacy.zip | Bin .../compile/for-all.sol-0.4.20-compact.zip | Bin .../compile/for-all.sol-0.4.20-legacy.zip | Bin .../compile/for-all.sol-0.4.21-compact.zip | Bin .../compile/for-all.sol-0.4.21-legacy.zip | Bin .../compile/for-all.sol-0.4.22-compact.zip | Bin .../compile/for-all.sol-0.4.22-legacy.zip | Bin .../compile/for-all.sol-0.4.23-compact.zip | Bin .../compile/for-all.sol-0.4.23-legacy.zip | Bin .../compile/for-all.sol-0.4.24-compact.zip | Bin .../compile/for-all.sol-0.4.24-legacy.zip | Bin .../compile/for-all.sol-0.4.25-compact.zip | Bin .../compile/for-all.sol-0.4.25-legacy.zip | Bin .../compile/for-all.sol-0.4.26-compact.zip | Bin .../compile/for-all.sol-0.4.26-legacy.zip | Bin .../compile/for-all.sol-0.4.3-legacy.zip | Bin .../compile/for-all.sol-0.4.4-legacy.zip | Bin .../compile/for-all.sol-0.4.5-legacy.zip | Bin .../compile/for-all.sol-0.4.6-legacy.zip | Bin .../compile/for-all.sol-0.4.7-legacy.zip | Bin .../compile/for-all.sol-0.4.8-legacy.zip | Bin .../compile/for-all.sol-0.4.9-legacy.zip | Bin .../compile/for-all.sol-0.5.0-compact.zip | Bin .../compile/for-all.sol-0.5.0-legacy.zip | Bin .../compile/for-all.sol-0.5.1-compact.zip | Bin .../compile/for-all.sol-0.5.1-legacy.zip | Bin .../compile/for-all.sol-0.5.10-compact.zip | Bin .../compile/for-all.sol-0.5.10-legacy.zip | Bin .../compile/for-all.sol-0.5.11-compact.zip | Bin .../compile/for-all.sol-0.5.11-legacy.zip | Bin .../compile/for-all.sol-0.5.12-compact.zip | Bin .../compile/for-all.sol-0.5.12-legacy.zip | Bin .../compile/for-all.sol-0.5.13-compact.zip | Bin .../compile/for-all.sol-0.5.13-legacy.zip | Bin .../compile/for-all.sol-0.5.14-compact.zip | Bin .../compile/for-all.sol-0.5.14-legacy.zip | Bin .../compile/for-all.sol-0.5.15-compact.zip | Bin .../compile/for-all.sol-0.5.15-legacy.zip | Bin .../compile/for-all.sol-0.5.16-compact.zip | Bin .../compile/for-all.sol-0.5.16-legacy.zip | Bin .../compile/for-all.sol-0.5.17-compact.zip | Bin .../compile/for-all.sol-0.5.17-legacy.zip | Bin .../compile/for-all.sol-0.5.2-compact.zip | Bin .../compile/for-all.sol-0.5.2-legacy.zip | Bin .../compile/for-all.sol-0.5.3-compact.zip | Bin .../compile/for-all.sol-0.5.3-legacy.zip | Bin .../compile/for-all.sol-0.5.4-compact.zip | Bin .../compile/for-all.sol-0.5.4-legacy.zip | Bin .../compile/for-all.sol-0.5.5-compact.zip | Bin .../compile/for-all.sol-0.5.5-legacy.zip | Bin .../compile/for-all.sol-0.5.6-compact.zip | Bin .../compile/for-all.sol-0.5.6-legacy.zip | Bin .../compile/for-all.sol-0.5.7-compact.zip | Bin .../compile/for-all.sol-0.5.7-legacy.zip | Bin .../compile/for-all.sol-0.5.8-compact.zip | Bin .../compile/for-all.sol-0.5.8-legacy.zip | Bin .../compile/for-all.sol-0.5.9-compact.zip | Bin .../compile/for-all.sol-0.5.9-legacy.zip | Bin .../compile/for-all.sol-0.6.0-compact.zip | Bin .../compile/for-all.sol-0.6.0-legacy.zip | Bin .../compile/for-all.sol-0.6.1-compact.zip | Bin .../compile/for-all.sol-0.6.1-legacy.zip | Bin .../compile/for-all.sol-0.6.10-compact.zip | Bin .../compile/for-all.sol-0.6.10-legacy.zip | Bin .../compile/for-all.sol-0.6.11-compact.zip | Bin .../compile/for-all.sol-0.6.11-legacy.zip | Bin .../compile/for-all.sol-0.6.12-compact.zip | Bin .../compile/for-all.sol-0.6.12-legacy.zip | Bin .../compile/for-all.sol-0.6.2-compact.zip | Bin .../compile/for-all.sol-0.6.2-legacy.zip | Bin .../compile/for-all.sol-0.6.3-compact.zip | Bin .../compile/for-all.sol-0.6.3-legacy.zip | Bin .../compile/for-all.sol-0.6.4-compact.zip | Bin .../compile/for-all.sol-0.6.4-legacy.zip | Bin .../compile/for-all.sol-0.6.5-compact.zip | Bin .../compile/for-all.sol-0.6.5-legacy.zip | Bin .../compile/for-all.sol-0.6.6-compact.zip | Bin .../compile/for-all.sol-0.6.6-legacy.zip | Bin .../compile/for-all.sol-0.6.7-compact.zip | Bin .../compile/for-all.sol-0.6.7-legacy.zip | Bin .../compile/for-all.sol-0.6.8-compact.zip | Bin .../compile/for-all.sol-0.6.8-legacy.zip | Bin .../compile/for-all.sol-0.6.9-compact.zip | Bin .../compile/for-all.sol-0.6.9-legacy.zip | Bin .../compile/for-all.sol-0.7.0-compact.zip | Bin .../compile/for-all.sol-0.7.0-legacy.zip | Bin .../compile/for-all.sol-0.7.1-compact.zip | Bin .../compile/for-all.sol-0.7.1-legacy.zip | Bin .../compile/for-all.sol-0.7.2-compact.zip | Bin .../compile/for-all.sol-0.7.2-legacy.zip | Bin .../compile/for-all.sol-0.7.3-compact.zip | Bin .../compile/for-all.sol-0.7.3-legacy.zip | Bin .../compile/for-all.sol-0.7.4-compact.zip | Bin .../compile/for-all.sol-0.7.4-legacy.zip | Bin .../compile/for-all.sol-0.7.5-compact.zip | Bin .../compile/for-all.sol-0.7.5-legacy.zip | Bin .../compile/for-all.sol-0.7.6-compact.zip | Bin .../compile/for-all.sol-0.7.6-legacy.zip | Bin .../compile/for-all.sol-0.8.0-compact.zip | Bin .../compile/for-all.sol-0.8.1-compact.zip | Bin .../compile/for-all.sol-0.8.10-compact.zip | Bin .../compile/for-all.sol-0.8.11-compact.zip | Bin .../compile/for-all.sol-0.8.12-compact.zip | Bin .../compile/for-all.sol-0.8.13-compact.zip | Bin .../compile/for-all.sol-0.8.14-compact.zip | Bin .../compile/for-all.sol-0.8.15-compact.zip | Bin .../compile/for-all.sol-0.8.2-compact.zip | Bin .../compile/for-all.sol-0.8.3-compact.zip | Bin .../compile/for-all.sol-0.8.4-compact.zip | Bin .../compile/for-all.sol-0.8.5-compact.zip | Bin .../compile/for-all.sol-0.8.6-compact.zip | Bin .../compile/for-all.sol-0.8.7-compact.zip | Bin .../compile/for-all.sol-0.8.8-compact.zip | Bin .../compile/for-all.sol-0.8.9-compact.zip | Bin ...libraries_from_free.sol-0.8.12-compact.zip | Bin ..._function_collision.sol-0.8.12-compact.zip | Bin .../new_operator.sol-0.8.12-compact.zip | Bin .../function-0.4.0.sol-0.4.0-legacy.zip | Bin .../function-0.4.0.sol-0.4.1-legacy.zip | Bin .../function-0.4.0.sol-0.4.10-legacy.zip | Bin .../function-0.4.0.sol-0.4.11-legacy.zip | Bin .../function-0.4.0.sol-0.4.12-compact.zip | Bin .../function-0.4.0.sol-0.4.12-legacy.zip | Bin .../function-0.4.0.sol-0.4.13-compact.zip | Bin .../function-0.4.0.sol-0.4.13-legacy.zip | Bin .../function-0.4.0.sol-0.4.14-compact.zip | Bin .../function-0.4.0.sol-0.4.14-legacy.zip | Bin .../function-0.4.0.sol-0.4.15-compact.zip | Bin .../function-0.4.0.sol-0.4.15-legacy.zip | Bin .../function-0.4.0.sol-0.4.2-legacy.zip | Bin .../function-0.4.0.sol-0.4.3-legacy.zip | Bin .../function-0.4.0.sol-0.4.4-legacy.zip | Bin .../function-0.4.0.sol-0.4.5-legacy.zip | Bin .../function-0.4.0.sol-0.4.6-legacy.zip | Bin .../function-0.4.0.sol-0.4.7-legacy.zip | Bin .../function-0.4.0.sol-0.4.8-legacy.zip | Bin .../function-0.4.0.sol-0.4.9-legacy.zip | Bin .../function-0.4.16.sol-0.4.16-compact.zip | Bin .../function-0.4.16.sol-0.4.16-legacy.zip | Bin .../function-0.4.16.sol-0.4.17-compact.zip | Bin .../function-0.4.16.sol-0.4.17-legacy.zip | Bin .../function-0.4.16.sol-0.4.18-compact.zip | Bin .../function-0.4.16.sol-0.4.18-legacy.zip | Bin .../function-0.4.16.sol-0.4.19-compact.zip | Bin .../function-0.4.16.sol-0.4.19-legacy.zip | Bin .../function-0.4.16.sol-0.4.20-compact.zip | Bin .../function-0.4.16.sol-0.4.20-legacy.zip | Bin .../function-0.4.16.sol-0.4.21-compact.zip | Bin .../function-0.4.16.sol-0.4.21-legacy.zip | Bin .../function-0.4.22.sol-0.4.22-compact.zip | Bin .../function-0.4.22.sol-0.4.22-legacy.zip | Bin .../function-0.4.23.sol-0.4.23-compact.zip | Bin .../function-0.4.23.sol-0.4.23-legacy.zip | Bin .../function-0.4.23.sol-0.4.24-compact.zip | Bin .../function-0.4.23.sol-0.4.24-legacy.zip | Bin .../function-0.4.23.sol-0.4.25-compact.zip | Bin .../function-0.4.23.sol-0.4.25-legacy.zip | Bin .../function-0.4.23.sol-0.4.26-compact.zip | Bin .../function-0.4.23.sol-0.4.26-legacy.zip | Bin .../function-0.5.0.sol-0.5.0-compact.zip | Bin .../function-0.5.0.sol-0.5.0-legacy.zip | Bin .../function-0.5.0.sol-0.5.1-compact.zip | Bin .../function-0.5.0.sol-0.5.1-legacy.zip | Bin .../function-0.5.0.sol-0.5.10-compact.zip | Bin .../function-0.5.0.sol-0.5.10-legacy.zip | Bin .../function-0.5.0.sol-0.5.11-compact.zip | Bin .../function-0.5.0.sol-0.5.11-legacy.zip | Bin .../function-0.5.0.sol-0.5.12-compact.zip | Bin .../function-0.5.0.sol-0.5.12-legacy.zip | Bin .../function-0.5.0.sol-0.5.13-compact.zip | Bin .../function-0.5.0.sol-0.5.13-legacy.zip | Bin .../function-0.5.0.sol-0.5.14-compact.zip | Bin .../function-0.5.0.sol-0.5.14-legacy.zip | Bin .../function-0.5.0.sol-0.5.15-compact.zip | Bin .../function-0.5.0.sol-0.5.15-legacy.zip | Bin .../function-0.5.0.sol-0.5.16-compact.zip | Bin .../function-0.5.0.sol-0.5.16-legacy.zip | Bin .../function-0.5.0.sol-0.5.17-compact.zip | Bin .../function-0.5.0.sol-0.5.17-legacy.zip | Bin .../function-0.5.0.sol-0.5.2-compact.zip | Bin .../function-0.5.0.sol-0.5.2-legacy.zip | Bin .../function-0.5.0.sol-0.5.3-compact.zip | Bin .../function-0.5.0.sol-0.5.3-legacy.zip | Bin .../function-0.5.0.sol-0.5.4-compact.zip | Bin .../function-0.5.0.sol-0.5.4-legacy.zip | Bin .../function-0.5.0.sol-0.5.5-compact.zip | Bin .../function-0.5.0.sol-0.5.5-legacy.zip | Bin .../function-0.5.0.sol-0.5.6-compact.zip | Bin .../function-0.5.0.sol-0.5.6-legacy.zip | Bin .../function-0.5.0.sol-0.5.7-compact.zip | Bin .../function-0.5.0.sol-0.5.7-legacy.zip | Bin .../function-0.5.0.sol-0.5.8-compact.zip | Bin .../function-0.5.0.sol-0.5.8-legacy.zip | Bin .../function-0.5.0.sol-0.5.9-compact.zip | Bin .../function-0.5.0.sol-0.5.9-legacy.zip | Bin .../function-0.6.0.sol-0.6.0-compact.zip | Bin .../function-0.6.0.sol-0.6.1-compact.zip | Bin .../function-0.6.0.sol-0.6.10-compact.zip | Bin .../function-0.6.0.sol-0.6.11-compact.zip | Bin .../function-0.6.0.sol-0.6.12-compact.zip | Bin .../function-0.6.0.sol-0.6.2-compact.zip | Bin .../function-0.6.0.sol-0.6.3-compact.zip | Bin .../function-0.6.0.sol-0.6.4-compact.zip | Bin .../function-0.6.0.sol-0.6.5-compact.zip | Bin .../function-0.6.0.sol-0.6.6-compact.zip | Bin .../function-0.6.0.sol-0.6.7-compact.zip | Bin .../function-0.6.0.sol-0.6.8-compact.zip | Bin .../function-0.6.0.sol-0.6.9-compact.zip | Bin .../function-0.7.1.sol-0.7.1-compact.zip | Bin .../function-0.7.1.sol-0.7.2-compact.zip | Bin .../function-0.7.1.sol-0.7.3-compact.zip | Bin .../function-0.7.1.sol-0.7.4-compact.zip | Bin .../function-0.7.1.sol-0.7.5-compact.zip | Bin .../function-0.7.1.sol-0.7.6-compact.zip | Bin .../function-0.7.1.sol-0.8.0-compact.zip | Bin .../function-0.7.1.sol-0.8.1-compact.zip | Bin .../function-0.7.1.sol-0.8.10-compact.zip | Bin .../function-0.7.1.sol-0.8.11-compact.zip | Bin .../function-0.7.1.sol-0.8.12-compact.zip | Bin .../function-0.7.1.sol-0.8.13-compact.zip | Bin .../function-0.7.1.sol-0.8.14-compact.zip | Bin .../function-0.7.1.sol-0.8.15-compact.zip | Bin .../function-0.7.1.sol-0.8.2-compact.zip | Bin .../function-0.7.1.sol-0.8.3-compact.zip | Bin .../function-0.7.1.sol-0.8.4-compact.zip | Bin .../function-0.7.1.sol-0.8.5-compact.zip | Bin .../function-0.7.1.sol-0.8.6-compact.zip | Bin .../function-0.7.1.sol-0.8.7-compact.zip | Bin .../function-0.7.1.sol-0.8.8-compact.zip | Bin .../function-0.7.1.sol-0.8.9-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.0-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.1-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.10-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.11-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.12-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.12-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.13-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.13-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.14-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.14-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.15-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.15-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.16-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.16-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.17-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.17-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.18-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.18-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.19-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.19-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.2-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.20-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.20-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.21-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.21-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.22-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.22-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.23-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.23-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.24-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.24-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.25-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.25-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.26-compact.zip | Bin .../functioncall-0.4.0.sol-0.4.26-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.3-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.4-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.5-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.6-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.7-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.8-legacy.zip | Bin .../functioncall-0.4.0.sol-0.4.9-legacy.zip | Bin .../functioncall-0.4.5.sol-0.4.5-legacy.zip | Bin .../functioncall-0.4.5.sol-0.4.6-legacy.zip | Bin .../functioncall-0.4.5.sol-0.4.7-legacy.zip | Bin .../functioncall-0.4.5.sol-0.4.8-legacy.zip | Bin .../functioncall-0.4.5.sol-0.4.9-legacy.zip | Bin .../functioncall-0.5.0.sol-0.5.0-compact.zip | Bin .../functioncall-0.5.0.sol-0.5.0-legacy.zip | Bin .../functioncall-0.5.0.sol-0.5.1-compact.zip | Bin .../functioncall-0.5.0.sol-0.5.1-legacy.zip | Bin .../functioncall-0.5.0.sol-0.5.2-compact.zip | Bin .../functioncall-0.5.0.sol-0.5.2-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.10-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.10-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.11-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.11-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.12-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.12-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.13-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.13-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.14-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.14-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.15-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.15-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.16-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.16-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.17-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.17-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.3-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.3-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.4-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.4-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.5-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.5-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.6-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.6-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.7-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.7-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.8-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.8-legacy.zip | Bin .../functioncall-0.5.3.sol-0.5.9-compact.zip | Bin .../functioncall-0.5.3.sol-0.5.9-legacy.zip | Bin .../functioncall-0.6.0.sol-0.6.0-compact.zip | Bin .../functioncall-0.6.0.sol-0.6.0-legacy.zip | Bin .../functioncall-0.6.0.sol-0.6.1-compact.zip | Bin .../functioncall-0.6.0.sol-0.6.1-legacy.zip | Bin .../functioncall-0.6.2.sol-0.6.2-compact.zip | Bin .../functioncall-0.6.2.sol-0.6.2-legacy.zip | Bin .../functioncall-0.6.2.sol-0.6.3-compact.zip | Bin .../functioncall-0.6.2.sol-0.6.3-legacy.zip | Bin .../functioncall-0.6.2.sol-0.6.4-compact.zip | Bin .../functioncall-0.6.2.sol-0.6.4-legacy.zip | Bin .../functioncall-0.6.2.sol-0.6.5-compact.zip | Bin .../functioncall-0.6.2.sol-0.6.5-legacy.zip | Bin .../functioncall-0.6.2.sol-0.6.6-compact.zip | Bin .../functioncall-0.6.2.sol-0.6.6-legacy.zip | Bin .../functioncall-0.6.2.sol-0.6.7-compact.zip | Bin .../functioncall-0.6.2.sol-0.6.7-legacy.zip | Bin .../functioncall-0.6.8.sol-0.6.10-compact.zip | Bin .../functioncall-0.6.8.sol-0.6.10-legacy.zip | Bin .../functioncall-0.6.8.sol-0.6.11-compact.zip | Bin .../functioncall-0.6.8.sol-0.6.11-legacy.zip | Bin .../functioncall-0.6.8.sol-0.6.12-compact.zip | Bin .../functioncall-0.6.8.sol-0.6.12-legacy.zip | Bin .../functioncall-0.6.8.sol-0.6.8-compact.zip | Bin .../functioncall-0.6.8.sol-0.6.8-legacy.zip | Bin .../functioncall-0.6.8.sol-0.6.9-compact.zip | Bin .../functioncall-0.6.8.sol-0.6.9-legacy.zip | Bin .../functioncall-0.7.0.sol-0.7.0-compact.zip | Bin .../functioncall-0.7.0.sol-0.7.0-legacy.zip | Bin .../functioncall-0.7.0.sol-0.7.1-compact.zip | Bin .../functioncall-0.7.0.sol-0.7.1-legacy.zip | Bin .../functioncall-0.7.0.sol-0.7.2-compact.zip | Bin .../functioncall-0.7.0.sol-0.7.2-legacy.zip | Bin .../functioncall-0.7.0.sol-0.7.3-compact.zip | Bin .../functioncall-0.7.0.sol-0.7.3-legacy.zip | Bin .../functioncall-0.7.0.sol-0.7.4-compact.zip | Bin .../functioncall-0.7.0.sol-0.7.4-legacy.zip | Bin .../functioncall-0.7.0.sol-0.7.5-compact.zip | Bin .../functioncall-0.7.0.sol-0.7.5-legacy.zip | Bin .../functioncall-0.7.0.sol-0.7.6-compact.zip | Bin .../functioncall-0.7.0.sol-0.7.6-legacy.zip | Bin .../functioncall-0.8.0.sol-0.8.0-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.1-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.10-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.11-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.12-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.13-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.14-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.15-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.2-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.3-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.4-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.5-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.6-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.7-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.8-compact.zip | Bin .../functioncall-0.8.0.sol-0.8.9-compact.zip | Bin .../compile/if-all.sol-0.4.0-legacy.zip | Bin .../compile/if-all.sol-0.4.1-legacy.zip | Bin .../compile/if-all.sol-0.4.10-legacy.zip | Bin .../compile/if-all.sol-0.4.11-legacy.zip | Bin .../compile/if-all.sol-0.4.12-compact.zip | Bin .../compile/if-all.sol-0.4.12-legacy.zip | Bin .../compile/if-all.sol-0.4.13-compact.zip | Bin .../compile/if-all.sol-0.4.13-legacy.zip | Bin .../compile/if-all.sol-0.4.14-compact.zip | Bin .../compile/if-all.sol-0.4.14-legacy.zip | Bin .../compile/if-all.sol-0.4.15-compact.zip | Bin .../compile/if-all.sol-0.4.15-legacy.zip | Bin .../compile/if-all.sol-0.4.16-compact.zip | Bin .../compile/if-all.sol-0.4.16-legacy.zip | Bin .../compile/if-all.sol-0.4.17-compact.zip | Bin .../compile/if-all.sol-0.4.17-legacy.zip | Bin .../compile/if-all.sol-0.4.18-compact.zip | Bin .../compile/if-all.sol-0.4.18-legacy.zip | Bin .../compile/if-all.sol-0.4.19-compact.zip | Bin .../compile/if-all.sol-0.4.19-legacy.zip | Bin .../compile/if-all.sol-0.4.2-legacy.zip | Bin .../compile/if-all.sol-0.4.20-compact.zip | Bin .../compile/if-all.sol-0.4.20-legacy.zip | Bin .../compile/if-all.sol-0.4.21-compact.zip | Bin .../compile/if-all.sol-0.4.21-legacy.zip | Bin .../compile/if-all.sol-0.4.22-compact.zip | Bin .../compile/if-all.sol-0.4.22-legacy.zip | Bin .../compile/if-all.sol-0.4.23-compact.zip | Bin .../compile/if-all.sol-0.4.23-legacy.zip | Bin .../compile/if-all.sol-0.4.24-compact.zip | Bin .../compile/if-all.sol-0.4.24-legacy.zip | Bin .../compile/if-all.sol-0.4.25-compact.zip | Bin .../compile/if-all.sol-0.4.25-legacy.zip | Bin .../compile/if-all.sol-0.4.26-compact.zip | Bin .../compile/if-all.sol-0.4.26-legacy.zip | Bin .../compile/if-all.sol-0.4.3-legacy.zip | Bin .../compile/if-all.sol-0.4.4-legacy.zip | Bin .../compile/if-all.sol-0.4.5-legacy.zip | Bin .../compile/if-all.sol-0.4.6-legacy.zip | Bin .../compile/if-all.sol-0.4.7-legacy.zip | Bin .../compile/if-all.sol-0.4.8-legacy.zip | Bin .../compile/if-all.sol-0.4.9-legacy.zip | Bin .../compile/if-all.sol-0.5.0-compact.zip | Bin .../compile/if-all.sol-0.5.0-legacy.zip | Bin .../compile/if-all.sol-0.5.1-compact.zip | Bin .../compile/if-all.sol-0.5.1-legacy.zip | Bin .../compile/if-all.sol-0.5.10-compact.zip | Bin .../compile/if-all.sol-0.5.10-legacy.zip | Bin .../compile/if-all.sol-0.5.11-compact.zip | Bin .../compile/if-all.sol-0.5.11-legacy.zip | Bin .../compile/if-all.sol-0.5.12-compact.zip | Bin .../compile/if-all.sol-0.5.12-legacy.zip | Bin .../compile/if-all.sol-0.5.13-compact.zip | Bin .../compile/if-all.sol-0.5.13-legacy.zip | Bin .../compile/if-all.sol-0.5.14-compact.zip | Bin .../compile/if-all.sol-0.5.14-legacy.zip | Bin .../compile/if-all.sol-0.5.15-compact.zip | Bin .../compile/if-all.sol-0.5.15-legacy.zip | Bin .../compile/if-all.sol-0.5.16-compact.zip | Bin .../compile/if-all.sol-0.5.16-legacy.zip | Bin .../compile/if-all.sol-0.5.17-compact.zip | Bin .../compile/if-all.sol-0.5.17-legacy.zip | Bin .../compile/if-all.sol-0.5.2-compact.zip | Bin .../compile/if-all.sol-0.5.2-legacy.zip | Bin .../compile/if-all.sol-0.5.3-compact.zip | Bin .../compile/if-all.sol-0.5.3-legacy.zip | Bin .../compile/if-all.sol-0.5.4-compact.zip | Bin .../compile/if-all.sol-0.5.4-legacy.zip | Bin .../compile/if-all.sol-0.5.5-compact.zip | Bin .../compile/if-all.sol-0.5.5-legacy.zip | Bin .../compile/if-all.sol-0.5.6-compact.zip | Bin .../compile/if-all.sol-0.5.6-legacy.zip | Bin .../compile/if-all.sol-0.5.7-compact.zip | Bin .../compile/if-all.sol-0.5.7-legacy.zip | Bin .../compile/if-all.sol-0.5.8-compact.zip | Bin .../compile/if-all.sol-0.5.8-legacy.zip | Bin .../compile/if-all.sol-0.5.9-compact.zip | Bin .../compile/if-all.sol-0.5.9-legacy.zip | Bin .../compile/if-all.sol-0.6.0-compact.zip | Bin .../compile/if-all.sol-0.6.0-legacy.zip | Bin .../compile/if-all.sol-0.6.1-compact.zip | Bin .../compile/if-all.sol-0.6.1-legacy.zip | Bin .../compile/if-all.sol-0.6.10-compact.zip | Bin .../compile/if-all.sol-0.6.10-legacy.zip | Bin .../compile/if-all.sol-0.6.11-compact.zip | Bin .../compile/if-all.sol-0.6.11-legacy.zip | Bin .../compile/if-all.sol-0.6.12-compact.zip | Bin .../compile/if-all.sol-0.6.12-legacy.zip | Bin .../compile/if-all.sol-0.6.2-compact.zip | Bin .../compile/if-all.sol-0.6.2-legacy.zip | Bin .../compile/if-all.sol-0.6.3-compact.zip | Bin .../compile/if-all.sol-0.6.3-legacy.zip | Bin .../compile/if-all.sol-0.6.4-compact.zip | Bin .../compile/if-all.sol-0.6.4-legacy.zip | Bin .../compile/if-all.sol-0.6.5-compact.zip | Bin .../compile/if-all.sol-0.6.5-legacy.zip | Bin .../compile/if-all.sol-0.6.6-compact.zip | Bin .../compile/if-all.sol-0.6.6-legacy.zip | Bin .../compile/if-all.sol-0.6.7-compact.zip | Bin .../compile/if-all.sol-0.6.7-legacy.zip | Bin .../compile/if-all.sol-0.6.8-compact.zip | Bin .../compile/if-all.sol-0.6.8-legacy.zip | Bin .../compile/if-all.sol-0.6.9-compact.zip | Bin .../compile/if-all.sol-0.6.9-legacy.zip | Bin .../compile/if-all.sol-0.7.0-compact.zip | Bin .../compile/if-all.sol-0.7.0-legacy.zip | Bin .../compile/if-all.sol-0.7.1-compact.zip | Bin .../compile/if-all.sol-0.7.1-legacy.zip | Bin .../compile/if-all.sol-0.7.2-compact.zip | Bin .../compile/if-all.sol-0.7.2-legacy.zip | Bin .../compile/if-all.sol-0.7.3-compact.zip | Bin .../compile/if-all.sol-0.7.3-legacy.zip | Bin .../compile/if-all.sol-0.7.4-compact.zip | Bin .../compile/if-all.sol-0.7.4-legacy.zip | Bin .../compile/if-all.sol-0.7.5-compact.zip | Bin .../compile/if-all.sol-0.7.5-legacy.zip | Bin .../compile/if-all.sol-0.7.6-compact.zip | Bin .../compile/if-all.sol-0.7.6-legacy.zip | Bin .../compile/if-all.sol-0.8.0-compact.zip | Bin .../compile/if-all.sol-0.8.1-compact.zip | Bin .../compile/if-all.sol-0.8.10-compact.zip | Bin .../compile/if-all.sol-0.8.11-compact.zip | Bin .../compile/if-all.sol-0.8.12-compact.zip | Bin .../compile/if-all.sol-0.8.13-compact.zip | Bin .../compile/if-all.sol-0.8.14-compact.zip | Bin .../compile/if-all.sol-0.8.15-compact.zip | Bin .../compile/if-all.sol-0.8.2-compact.zip | Bin .../compile/if-all.sol-0.8.3-compact.zip | Bin .../compile/if-all.sol-0.8.4-compact.zip | Bin .../compile/if-all.sol-0.8.5-compact.zip | Bin .../compile/if-all.sol-0.8.6-compact.zip | Bin .../compile/if-all.sol-0.8.7-compact.zip | Bin .../compile/if-all.sol-0.8.8-compact.zip | Bin .../compile/if-all.sol-0.8.9-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.4.0-legacy.zip | Bin ..._from_top_level-0.4.0.sol-0.4.1-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.4.10-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.4.11-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.12-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.12-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.13-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.13-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.14-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.14-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.15-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.15-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.16-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.16-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.17-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.17-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.18-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.18-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.19-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.19-legacy.zip | Bin ..._from_top_level-0.4.0.sol-0.4.2-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.20-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.20-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.21-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.21-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.22-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.22-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.23-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.23-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.24-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.24-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.25-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.25-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.4.26-compact.zip | Bin ...from_top_level-0.4.0.sol-0.4.26-legacy.zip | Bin ..._from_top_level-0.4.0.sol-0.4.3-legacy.zip | Bin ..._from_top_level-0.4.0.sol-0.4.4-legacy.zip | Bin ..._from_top_level-0.4.0.sol-0.4.5-legacy.zip | Bin ..._from_top_level-0.4.0.sol-0.4.6-legacy.zip | Bin ..._from_top_level-0.4.0.sol-0.4.7-legacy.zip | Bin ..._from_top_level-0.4.0.sol-0.4.8-legacy.zip | Bin ..._from_top_level-0.4.0.sol-0.4.9-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.5.0-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.5.0-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.5.1-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.5.1-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.5.10-compact.zip | Bin ...from_top_level-0.4.0.sol-0.5.10-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.5.11-compact.zip | Bin ...from_top_level-0.4.0.sol-0.5.11-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.5.12-compact.zip | Bin ...from_top_level-0.4.0.sol-0.5.12-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.5.13-compact.zip | Bin ...from_top_level-0.4.0.sol-0.5.13-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.5.14-compact.zip | Bin ...from_top_level-0.4.0.sol-0.5.14-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.5.15-compact.zip | Bin ...from_top_level-0.4.0.sol-0.5.15-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.5.16-compact.zip | Bin ...from_top_level-0.4.0.sol-0.5.16-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.5.17-compact.zip | Bin ...from_top_level-0.4.0.sol-0.5.17-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.5.2-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.5.2-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.5.3-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.5.3-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.5.4-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.5.4-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.5.5-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.5.5-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.5.6-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.5.6-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.5.7-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.5.7-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.5.8-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.5.8-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.5.9-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.5.9-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.6.0-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.6.0-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.6.1-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.6.1-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.6.10-compact.zip | Bin ...from_top_level-0.4.0.sol-0.6.10-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.6.11-compact.zip | Bin ...from_top_level-0.4.0.sol-0.6.11-legacy.zip | Bin ...rom_top_level-0.4.0.sol-0.6.12-compact.zip | Bin ...from_top_level-0.4.0.sol-0.6.12-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.6.2-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.6.2-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.6.3-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.6.3-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.6.4-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.6.4-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.6.5-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.6.5-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.6.6-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.6.6-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.6.7-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.6.7-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.6.8-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.6.8-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.6.9-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.6.9-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.7.0-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.7.0-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.7.1-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.7.1-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.7.2-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.7.2-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.7.3-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.7.3-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.7.4-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.7.4-legacy.zip | Bin ...from_top_level-0.4.0.sol-0.7.5-compact.zip | Bin ..._from_top_level-0.4.0.sol-0.7.5-legacy.zip | Bin ...from_top_level-0.7.6.sol-0.7.6-compact.zip | Bin ..._from_top_level-0.7.6.sol-0.7.6-legacy.zip | Bin ...from_top_level-0.7.6.sol-0.8.0-compact.zip | Bin ...from_top_level-0.7.6.sol-0.8.1-compact.zip | Bin ...rom_top_level-0.7.6.sol-0.8.10-compact.zip | Bin ...rom_top_level-0.7.6.sol-0.8.11-compact.zip | Bin ...rom_top_level-0.7.6.sol-0.8.12-compact.zip | Bin ...rom_top_level-0.7.6.sol-0.8.13-compact.zip | Bin ...rom_top_level-0.7.6.sol-0.8.14-compact.zip | Bin ...rom_top_level-0.7.6.sol-0.8.15-compact.zip | Bin ...from_top_level-0.7.6.sol-0.8.2-compact.zip | Bin ...from_top_level-0.7.6.sol-0.8.3-compact.zip | Bin ...from_top_level-0.7.6.sol-0.8.4-compact.zip | Bin ...from_top_level-0.7.6.sol-0.8.5-compact.zip | Bin ...from_top_level-0.7.6.sol-0.8.6-compact.zip | Bin ...from_top_level-0.7.6.sol-0.8.7-compact.zip | Bin ...from_top_level-0.7.6.sol-0.8.8-compact.zip | Bin ...from_top_level-0.7.6.sol-0.8.9-compact.zip | Bin .../indexaccess-all.sol-0.4.0-legacy.zip | Bin .../indexaccess-all.sol-0.4.1-legacy.zip | Bin .../indexaccess-all.sol-0.4.10-legacy.zip | Bin .../indexaccess-all.sol-0.4.11-legacy.zip | Bin .../indexaccess-all.sol-0.4.12-compact.zip | Bin .../indexaccess-all.sol-0.4.12-legacy.zip | Bin .../indexaccess-all.sol-0.4.13-compact.zip | Bin .../indexaccess-all.sol-0.4.13-legacy.zip | Bin .../indexaccess-all.sol-0.4.14-compact.zip | Bin .../indexaccess-all.sol-0.4.14-legacy.zip | Bin .../indexaccess-all.sol-0.4.15-compact.zip | Bin .../indexaccess-all.sol-0.4.15-legacy.zip | Bin .../indexaccess-all.sol-0.4.16-compact.zip | Bin .../indexaccess-all.sol-0.4.16-legacy.zip | Bin .../indexaccess-all.sol-0.4.17-compact.zip | Bin .../indexaccess-all.sol-0.4.17-legacy.zip | Bin .../indexaccess-all.sol-0.4.18-compact.zip | Bin .../indexaccess-all.sol-0.4.18-legacy.zip | Bin .../indexaccess-all.sol-0.4.19-compact.zip | Bin .../indexaccess-all.sol-0.4.19-legacy.zip | Bin .../indexaccess-all.sol-0.4.2-legacy.zip | Bin .../indexaccess-all.sol-0.4.20-compact.zip | Bin .../indexaccess-all.sol-0.4.20-legacy.zip | Bin .../indexaccess-all.sol-0.4.21-compact.zip | Bin .../indexaccess-all.sol-0.4.21-legacy.zip | Bin .../indexaccess-all.sol-0.4.22-compact.zip | Bin .../indexaccess-all.sol-0.4.22-legacy.zip | Bin .../indexaccess-all.sol-0.4.23-compact.zip | Bin .../indexaccess-all.sol-0.4.23-legacy.zip | Bin .../indexaccess-all.sol-0.4.24-compact.zip | Bin .../indexaccess-all.sol-0.4.24-legacy.zip | Bin .../indexaccess-all.sol-0.4.25-compact.zip | Bin .../indexaccess-all.sol-0.4.25-legacy.zip | Bin .../indexaccess-all.sol-0.4.26-compact.zip | Bin .../indexaccess-all.sol-0.4.26-legacy.zip | Bin .../indexaccess-all.sol-0.4.3-legacy.zip | Bin .../indexaccess-all.sol-0.4.4-legacy.zip | Bin .../indexaccess-all.sol-0.4.5-legacy.zip | Bin .../indexaccess-all.sol-0.4.6-legacy.zip | Bin .../indexaccess-all.sol-0.4.7-legacy.zip | Bin .../indexaccess-all.sol-0.4.8-legacy.zip | Bin .../indexaccess-all.sol-0.4.9-legacy.zip | Bin .../indexaccess-all.sol-0.5.0-compact.zip | Bin .../indexaccess-all.sol-0.5.0-legacy.zip | Bin .../indexaccess-all.sol-0.5.1-compact.zip | Bin .../indexaccess-all.sol-0.5.1-legacy.zip | Bin .../indexaccess-all.sol-0.5.10-compact.zip | Bin .../indexaccess-all.sol-0.5.10-legacy.zip | Bin .../indexaccess-all.sol-0.5.11-compact.zip | Bin .../indexaccess-all.sol-0.5.11-legacy.zip | Bin .../indexaccess-all.sol-0.5.12-compact.zip | Bin .../indexaccess-all.sol-0.5.12-legacy.zip | Bin .../indexaccess-all.sol-0.5.13-compact.zip | Bin .../indexaccess-all.sol-0.5.13-legacy.zip | Bin .../indexaccess-all.sol-0.5.14-compact.zip | Bin .../indexaccess-all.sol-0.5.14-legacy.zip | Bin .../indexaccess-all.sol-0.5.15-compact.zip | Bin .../indexaccess-all.sol-0.5.15-legacy.zip | Bin .../indexaccess-all.sol-0.5.16-compact.zip | Bin .../indexaccess-all.sol-0.5.16-legacy.zip | Bin .../indexaccess-all.sol-0.5.17-compact.zip | Bin .../indexaccess-all.sol-0.5.17-legacy.zip | Bin .../indexaccess-all.sol-0.5.2-compact.zip | Bin .../indexaccess-all.sol-0.5.2-legacy.zip | Bin .../indexaccess-all.sol-0.5.3-compact.zip | Bin .../indexaccess-all.sol-0.5.3-legacy.zip | Bin .../indexaccess-all.sol-0.5.4-compact.zip | Bin .../indexaccess-all.sol-0.5.4-legacy.zip | Bin .../indexaccess-all.sol-0.5.5-compact.zip | Bin .../indexaccess-all.sol-0.5.5-legacy.zip | Bin .../indexaccess-all.sol-0.5.6-compact.zip | Bin .../indexaccess-all.sol-0.5.6-legacy.zip | Bin .../indexaccess-all.sol-0.5.7-compact.zip | Bin .../indexaccess-all.sol-0.5.7-legacy.zip | Bin .../indexaccess-all.sol-0.5.8-compact.zip | Bin .../indexaccess-all.sol-0.5.8-legacy.zip | Bin .../indexaccess-all.sol-0.5.9-compact.zip | Bin .../indexaccess-all.sol-0.5.9-legacy.zip | Bin .../indexaccess-all.sol-0.6.0-compact.zip | Bin .../indexaccess-all.sol-0.6.0-legacy.zip | Bin .../indexaccess-all.sol-0.6.1-compact.zip | Bin .../indexaccess-all.sol-0.6.1-legacy.zip | Bin .../indexaccess-all.sol-0.6.10-compact.zip | Bin .../indexaccess-all.sol-0.6.10-legacy.zip | Bin .../indexaccess-all.sol-0.6.11-compact.zip | Bin .../indexaccess-all.sol-0.6.11-legacy.zip | Bin .../indexaccess-all.sol-0.6.12-compact.zip | Bin .../indexaccess-all.sol-0.6.12-legacy.zip | Bin .../indexaccess-all.sol-0.6.2-compact.zip | Bin .../indexaccess-all.sol-0.6.2-legacy.zip | Bin .../indexaccess-all.sol-0.6.3-compact.zip | Bin .../indexaccess-all.sol-0.6.3-legacy.zip | Bin .../indexaccess-all.sol-0.6.4-compact.zip | Bin .../indexaccess-all.sol-0.6.4-legacy.zip | Bin .../indexaccess-all.sol-0.6.5-compact.zip | Bin .../indexaccess-all.sol-0.6.5-legacy.zip | Bin .../indexaccess-all.sol-0.6.6-compact.zip | Bin .../indexaccess-all.sol-0.6.6-legacy.zip | Bin .../indexaccess-all.sol-0.6.7-compact.zip | Bin .../indexaccess-all.sol-0.6.7-legacy.zip | Bin .../indexaccess-all.sol-0.6.8-compact.zip | Bin .../indexaccess-all.sol-0.6.8-legacy.zip | Bin .../indexaccess-all.sol-0.6.9-compact.zip | Bin .../indexaccess-all.sol-0.6.9-legacy.zip | Bin .../indexaccess-all.sol-0.7.0-compact.zip | Bin .../indexaccess-all.sol-0.7.0-legacy.zip | Bin .../indexaccess-all.sol-0.7.1-compact.zip | Bin .../indexaccess-all.sol-0.7.1-legacy.zip | Bin .../indexaccess-all.sol-0.7.2-compact.zip | Bin .../indexaccess-all.sol-0.7.2-legacy.zip | Bin .../indexaccess-all.sol-0.7.3-compact.zip | Bin .../indexaccess-all.sol-0.7.3-legacy.zip | Bin .../indexaccess-all.sol-0.7.4-compact.zip | Bin .../indexaccess-all.sol-0.7.4-legacy.zip | Bin .../indexaccess-all.sol-0.7.5-compact.zip | Bin .../indexaccess-all.sol-0.7.5-legacy.zip | Bin .../indexaccess-all.sol-0.7.6-compact.zip | Bin .../indexaccess-all.sol-0.7.6-legacy.zip | Bin .../indexaccess-all.sol-0.8.0-compact.zip | Bin .../indexaccess-all.sol-0.8.1-compact.zip | Bin .../indexaccess-all.sol-0.8.10-compact.zip | Bin .../indexaccess-all.sol-0.8.11-compact.zip | Bin .../indexaccess-all.sol-0.8.12-compact.zip | Bin .../indexaccess-all.sol-0.8.13-compact.zip | Bin .../indexaccess-all.sol-0.8.14-compact.zip | Bin .../indexaccess-all.sol-0.8.15-compact.zip | Bin .../indexaccess-all.sol-0.8.2-compact.zip | Bin .../indexaccess-all.sol-0.8.3-compact.zip | Bin .../indexaccess-all.sol-0.8.4-compact.zip | Bin .../indexaccess-all.sol-0.8.5-compact.zip | Bin .../indexaccess-all.sol-0.8.6-compact.zip | Bin .../indexaccess-all.sol-0.8.7-compact.zip | Bin .../indexaccess-all.sol-0.8.8-compact.zip | Bin .../indexaccess-all.sol-0.8.9-compact.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.4.0-legacy.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.4.1-legacy.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.10-legacy.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.11-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.12-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.12-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.13-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.13-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.14-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.14-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.15-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.15-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.16-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.16-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.17-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.17-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.18-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.18-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.19-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.19-legacy.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.4.2-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.20-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.20-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.21-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.21-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.22-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.22-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.23-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.23-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.24-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.24-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.25-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.25-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.4.26-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.4.26-legacy.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.4.3-legacy.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.4.4-legacy.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.4.5-legacy.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.4.6-legacy.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.4.7-legacy.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.4.8-legacy.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.4.9-legacy.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.0-compact.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.5.0-legacy.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.1-compact.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.5.1-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.5.10-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.10-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.5.11-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.11-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.5.12-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.12-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.5.13-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.13-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.5.14-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.14-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.5.15-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.15-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.5.16-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.16-legacy.zip | Bin ...exrangeaccess-0.4.0.sol-0.5.17-compact.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.17-legacy.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.2-compact.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.5.2-legacy.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.3-compact.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.5.3-legacy.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.4-compact.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.5.4-legacy.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.5-compact.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.5.5-legacy.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.6-compact.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.5.6-legacy.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.7-compact.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.5.7-legacy.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.8-compact.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.5.8-legacy.zip | Bin ...dexrangeaccess-0.4.0.sol-0.5.9-compact.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.5.9-legacy.zip | Bin ...dexrangeaccess-0.4.0.sol-0.6.0-compact.zip | Bin ...ndexrangeaccess-0.4.0.sol-0.6.0-legacy.zip | Bin ...dexrangeaccess-0.6.1.sol-0.6.1-compact.zip | Bin ...exrangeaccess-0.6.1.sol-0.6.10-compact.zip | Bin ...exrangeaccess-0.6.1.sol-0.6.11-compact.zip | Bin ...exrangeaccess-0.6.1.sol-0.6.12-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.6.2-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.6.3-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.6.4-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.6.5-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.6.6-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.6.7-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.6.8-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.6.9-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.7.0-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.7.1-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.7.2-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.7.3-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.7.4-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.7.5-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.7.6-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.8.0-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.8.1-compact.zip | Bin ...exrangeaccess-0.6.1.sol-0.8.10-compact.zip | Bin ...exrangeaccess-0.6.1.sol-0.8.11-compact.zip | Bin ...exrangeaccess-0.6.1.sol-0.8.12-compact.zip | Bin ...exrangeaccess-0.6.1.sol-0.8.13-compact.zip | Bin ...exrangeaccess-0.6.1.sol-0.8.14-compact.zip | Bin ...exrangeaccess-0.6.1.sol-0.8.15-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.8.2-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.8.3-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.8.4-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.8.5-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.8.6-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.8.7-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.8.8-compact.zip | Bin ...dexrangeaccess-0.6.1.sol-0.8.9-compact.zip | Bin ...ibrary_event-0.8.16.sol-0.8.16-compact.zip | Bin ...icit_conversion-0.4.0.sol-0.4.0-legacy.zip | Bin ...icit_conversion-0.4.0.sol-0.4.1-legacy.zip | Bin ...cit_conversion-0.4.0.sol-0.4.10-legacy.zip | Bin ...cit_conversion-0.4.0.sol-0.4.11-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.12-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.12-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.13-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.13-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.14-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.14-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.15-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.15-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.16-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.16-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.17-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.17-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.18-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.18-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.19-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.19-legacy.zip | Bin ...icit_conversion-0.4.0.sol-0.4.2-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.20-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.20-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.21-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.21-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.22-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.22-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.23-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.23-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.24-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.24-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.25-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.25-legacy.zip | Bin ...it_conversion-0.4.0.sol-0.4.26-compact.zip | Bin ...cit_conversion-0.4.0.sol-0.4.26-legacy.zip | Bin ...icit_conversion-0.4.0.sol-0.4.3-legacy.zip | Bin ...icit_conversion-0.4.0.sol-0.4.4-legacy.zip | Bin ...icit_conversion-0.4.0.sol-0.4.5-legacy.zip | Bin ...icit_conversion-0.4.0.sol-0.4.6-legacy.zip | Bin ...icit_conversion-0.4.0.sol-0.4.7-legacy.zip | Bin ...icit_conversion-0.4.0.sol-0.4.8-legacy.zip | Bin ...icit_conversion-0.4.0.sol-0.4.9-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.5.0-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.5.0-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.5.1-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.5.1-legacy.zip | Bin ...it_conversion-0.5.0.sol-0.5.10-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.5.10-legacy.zip | Bin ...it_conversion-0.5.0.sol-0.5.11-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.5.11-legacy.zip | Bin ...it_conversion-0.5.0.sol-0.5.12-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.5.12-legacy.zip | Bin ...it_conversion-0.5.0.sol-0.5.13-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.5.13-legacy.zip | Bin ...it_conversion-0.5.0.sol-0.5.14-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.5.14-legacy.zip | Bin ...it_conversion-0.5.0.sol-0.5.15-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.5.15-legacy.zip | Bin ...it_conversion-0.5.0.sol-0.5.16-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.5.16-legacy.zip | Bin ...it_conversion-0.5.0.sol-0.5.17-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.5.17-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.5.2-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.5.2-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.5.3-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.5.3-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.5.4-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.5.4-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.5.5-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.5.5-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.5.6-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.5.6-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.5.7-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.5.7-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.5.8-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.5.8-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.5.9-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.5.9-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.6.0-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.6.0-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.6.1-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.6.1-legacy.zip | Bin ...it_conversion-0.5.0.sol-0.6.10-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.6.10-legacy.zip | Bin ...it_conversion-0.5.0.sol-0.6.11-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.6.11-legacy.zip | Bin ...it_conversion-0.5.0.sol-0.6.12-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.6.12-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.6.2-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.6.2-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.6.3-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.6.3-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.6.4-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.6.4-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.6.5-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.6.5-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.6.6-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.6.6-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.6.7-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.6.7-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.6.8-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.6.8-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.6.9-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.6.9-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.7.0-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.7.0-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.7.1-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.7.1-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.7.2-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.7.2-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.7.3-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.7.3-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.7.4-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.7.4-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.7.5-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.7.5-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.7.6-compact.zip | Bin ...icit_conversion-0.5.0.sol-0.7.6-legacy.zip | Bin ...cit_conversion-0.5.0.sol-0.8.0-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.8.1-compact.zip | Bin ...it_conversion-0.5.0.sol-0.8.10-compact.zip | Bin ...it_conversion-0.5.0.sol-0.8.11-compact.zip | Bin ...it_conversion-0.5.0.sol-0.8.12-compact.zip | Bin ...it_conversion-0.5.0.sol-0.8.13-compact.zip | Bin ...it_conversion-0.5.0.sol-0.8.14-compact.zip | Bin ...it_conversion-0.5.0.sol-0.8.15-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.8.2-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.8.3-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.8.4-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.8.5-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.8.6-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.8.7-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.8.8-compact.zip | Bin ...cit_conversion-0.5.0.sol-0.8.9-compact.zip | Bin .../literal-0.4.0.sol-0.4.0-legacy.zip | Bin .../literal-0.4.0.sol-0.4.1-legacy.zip | Bin .../literal-0.4.0.sol-0.4.2-legacy.zip | Bin .../literal-0.4.0.sol-0.4.3-legacy.zip | Bin .../literal-0.4.0.sol-0.4.4-legacy.zip | Bin .../literal-0.4.0.sol-0.4.5-legacy.zip | Bin .../literal-0.4.0.sol-0.4.6-legacy.zip | Bin .../literal-0.4.0.sol-0.4.7-legacy.zip | Bin .../literal-0.4.0.sol-0.4.8-legacy.zip | Bin .../literal-0.4.0.sol-0.4.9-legacy.zip | Bin .../literal-0.4.10.sol-0.4.10-legacy.zip | Bin .../literal-0.4.10.sol-0.4.11-legacy.zip | Bin .../literal-0.4.10.sol-0.4.12-compact.zip | Bin .../literal-0.4.10.sol-0.4.12-legacy.zip | Bin .../literal-0.4.10.sol-0.4.13-compact.zip | Bin .../literal-0.4.10.sol-0.4.13-legacy.zip | Bin .../literal-0.4.10.sol-0.4.14-compact.zip | Bin .../literal-0.4.10.sol-0.4.14-legacy.zip | Bin .../literal-0.4.10.sol-0.4.15-compact.zip | Bin .../literal-0.4.10.sol-0.4.15-legacy.zip | Bin .../literal-0.4.10.sol-0.4.16-compact.zip | Bin .../literal-0.4.10.sol-0.4.16-legacy.zip | Bin .../literal-0.4.10.sol-0.4.17-compact.zip | Bin .../literal-0.4.10.sol-0.4.17-legacy.zip | Bin .../literal-0.4.10.sol-0.4.18-compact.zip | Bin .../literal-0.4.10.sol-0.4.18-legacy.zip | Bin .../literal-0.4.10.sol-0.4.19-compact.zip | Bin .../literal-0.4.10.sol-0.4.19-legacy.zip | Bin .../literal-0.4.10.sol-0.4.20-compact.zip | Bin .../literal-0.4.10.sol-0.4.20-legacy.zip | Bin .../literal-0.4.10.sol-0.4.21-compact.zip | Bin .../literal-0.4.10.sol-0.4.21-legacy.zip | Bin .../literal-0.4.10.sol-0.4.22-compact.zip | Bin .../literal-0.4.10.sol-0.4.22-legacy.zip | Bin .../literal-0.4.10.sol-0.4.23-compact.zip | Bin .../literal-0.4.10.sol-0.4.23-legacy.zip | Bin .../literal-0.4.10.sol-0.4.24-compact.zip | Bin .../literal-0.4.10.sol-0.4.24-legacy.zip | Bin .../literal-0.4.10.sol-0.4.25-compact.zip | Bin .../literal-0.4.10.sol-0.4.25-legacy.zip | Bin .../literal-0.4.10.sol-0.4.26-compact.zip | Bin .../literal-0.4.10.sol-0.4.26-legacy.zip | Bin .../literal-0.5.0.sol-0.5.0-compact.zip | Bin .../literal-0.5.0.sol-0.5.0-legacy.zip | Bin .../literal-0.5.0.sol-0.5.1-compact.zip | Bin .../literal-0.5.0.sol-0.5.1-legacy.zip | Bin .../literal-0.5.0.sol-0.5.10-compact.zip | Bin .../literal-0.5.0.sol-0.5.10-legacy.zip | Bin .../literal-0.5.0.sol-0.5.11-compact.zip | Bin .../literal-0.5.0.sol-0.5.11-legacy.zip | Bin .../literal-0.5.0.sol-0.5.12-compact.zip | Bin .../literal-0.5.0.sol-0.5.12-legacy.zip | Bin .../literal-0.5.0.sol-0.5.13-compact.zip | Bin .../literal-0.5.0.sol-0.5.13-legacy.zip | Bin .../literal-0.5.0.sol-0.5.14-compact.zip | Bin .../literal-0.5.0.sol-0.5.14-legacy.zip | Bin .../literal-0.5.0.sol-0.5.15-compact.zip | Bin .../literal-0.5.0.sol-0.5.15-legacy.zip | Bin .../literal-0.5.0.sol-0.5.16-compact.zip | Bin .../literal-0.5.0.sol-0.5.16-legacy.zip | Bin .../literal-0.5.0.sol-0.5.17-compact.zip | Bin .../literal-0.5.0.sol-0.5.17-legacy.zip | Bin .../literal-0.5.0.sol-0.5.2-compact.zip | Bin .../literal-0.5.0.sol-0.5.2-legacy.zip | Bin .../literal-0.5.0.sol-0.5.3-compact.zip | Bin .../literal-0.5.0.sol-0.5.3-legacy.zip | Bin .../literal-0.5.0.sol-0.5.4-compact.zip | Bin .../literal-0.5.0.sol-0.5.4-legacy.zip | Bin .../literal-0.5.0.sol-0.5.5-compact.zip | Bin .../literal-0.5.0.sol-0.5.5-legacy.zip | Bin .../literal-0.5.0.sol-0.5.6-compact.zip | Bin .../literal-0.5.0.sol-0.5.6-legacy.zip | Bin .../literal-0.5.0.sol-0.5.7-compact.zip | Bin .../literal-0.5.0.sol-0.5.7-legacy.zip | Bin .../literal-0.5.0.sol-0.5.8-compact.zip | Bin .../literal-0.5.0.sol-0.5.8-legacy.zip | Bin .../literal-0.5.0.sol-0.5.9-compact.zip | Bin .../literal-0.5.0.sol-0.5.9-legacy.zip | Bin .../literal-0.6.0.sol-0.6.0-compact.zip | Bin .../literal-0.6.0.sol-0.6.0-legacy.zip | Bin .../literal-0.6.0.sol-0.6.1-compact.zip | Bin .../literal-0.6.0.sol-0.6.1-legacy.zip | Bin .../literal-0.6.0.sol-0.6.10-compact.zip | Bin .../literal-0.6.0.sol-0.6.10-legacy.zip | Bin .../literal-0.6.0.sol-0.6.11-compact.zip | Bin .../literal-0.6.0.sol-0.6.11-legacy.zip | Bin .../literal-0.6.0.sol-0.6.12-compact.zip | Bin .../literal-0.6.0.sol-0.6.12-legacy.zip | Bin .../literal-0.6.0.sol-0.6.2-compact.zip | Bin .../literal-0.6.0.sol-0.6.2-legacy.zip | Bin .../literal-0.6.0.sol-0.6.3-compact.zip | Bin .../literal-0.6.0.sol-0.6.3-legacy.zip | Bin .../literal-0.6.0.sol-0.6.4-compact.zip | Bin .../literal-0.6.0.sol-0.6.4-legacy.zip | Bin .../literal-0.6.0.sol-0.6.5-compact.zip | Bin .../literal-0.6.0.sol-0.6.5-legacy.zip | Bin .../literal-0.6.0.sol-0.6.6-compact.zip | Bin .../literal-0.6.0.sol-0.6.6-legacy.zip | Bin .../literal-0.6.0.sol-0.6.7-compact.zip | Bin .../literal-0.6.0.sol-0.6.7-legacy.zip | Bin .../literal-0.6.0.sol-0.6.8-compact.zip | Bin .../literal-0.6.0.sol-0.6.8-legacy.zip | Bin .../literal-0.6.0.sol-0.6.9-compact.zip | Bin .../literal-0.6.0.sol-0.6.9-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.0-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.1-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.10-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.11-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.12-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.12-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.13-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.13-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.14-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.14-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.15-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.15-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.16-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.16-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.17-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.17-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.18-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.18-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.19-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.19-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.2-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.20-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.20-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.21-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.21-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.22-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.22-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.23-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.23-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.24-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.24-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.25-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.25-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.26-compact.zip | Bin .../memberaccess-0.4.0.sol-0.4.26-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.3-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.4-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.5-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.6-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.7-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.8-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.4.9-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.0-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.0-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.1-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.1-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.10-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.10-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.11-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.11-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.12-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.12-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.13-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.13-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.14-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.14-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.15-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.15-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.16-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.16-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.17-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.17-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.2-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.2-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.3-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.3-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.4-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.4-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.5-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.5-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.6-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.6-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.7-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.7-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.8-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.8-legacy.zip | Bin .../memberaccess-0.4.0.sol-0.5.9-compact.zip | Bin .../memberaccess-0.4.0.sol-0.5.9-legacy.zip | Bin .../memberaccess-0.5.3.sol-0.5.3-compact.zip | Bin .../memberaccess-0.5.3.sol-0.5.3-legacy.zip | Bin .../memberaccess-0.5.3.sol-0.5.4-compact.zip | Bin .../memberaccess-0.5.3.sol-0.5.4-legacy.zip | Bin .../memberaccess-0.5.3.sol-0.5.5-compact.zip | Bin .../memberaccess-0.5.3.sol-0.5.5-legacy.zip | Bin .../memberaccess-0.5.3.sol-0.5.6-compact.zip | Bin .../memberaccess-0.5.3.sol-0.5.6-legacy.zip | Bin .../memberaccess-0.5.3.sol-0.5.7-compact.zip | Bin .../memberaccess-0.5.3.sol-0.5.7-legacy.zip | Bin .../memberaccess-0.5.3.sol-0.5.8-compact.zip | Bin .../memberaccess-0.5.3.sol-0.5.8-legacy.zip | Bin .../memberaccess-0.5.3.sol-0.5.9-compact.zip | Bin .../memberaccess-0.5.3.sol-0.5.9-legacy.zip | Bin .../memberaccess-0.5.3.sol-0.6.0-compact.zip | Bin .../memberaccess-0.5.3.sol-0.6.1-compact.zip | Bin .../memberaccess-0.5.3.sol-0.6.10-compact.zip | Bin .../memberaccess-0.5.3.sol-0.6.11-compact.zip | Bin .../memberaccess-0.5.3.sol-0.6.12-compact.zip | Bin .../memberaccess-0.5.3.sol-0.6.2-compact.zip | Bin .../memberaccess-0.5.3.sol-0.6.3-compact.zip | Bin .../memberaccess-0.5.3.sol-0.6.4-compact.zip | Bin .../memberaccess-0.5.3.sol-0.6.5-compact.zip | Bin .../memberaccess-0.5.3.sol-0.6.6-compact.zip | Bin .../memberaccess-0.5.3.sol-0.6.7-compact.zip | Bin .../memberaccess-0.5.3.sol-0.6.8-compact.zip | Bin .../memberaccess-0.5.3.sol-0.6.9-compact.zip | Bin .../memberaccess-0.5.3.sol-0.7.0-compact.zip | Bin .../memberaccess-0.5.3.sol-0.7.1-compact.zip | Bin .../memberaccess-0.5.3.sol-0.7.2-compact.zip | Bin .../memberaccess-0.5.3.sol-0.7.3-compact.zip | Bin .../memberaccess-0.5.3.sol-0.7.4-compact.zip | Bin .../memberaccess-0.5.3.sol-0.7.5-compact.zip | Bin .../memberaccess-0.5.3.sol-0.7.6-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.0-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.1-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.10-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.11-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.12-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.13-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.14-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.15-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.2-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.3-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.4-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.5-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.6-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.7-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.8-compact.zip | Bin .../memberaccess-0.5.3.sol-0.8.9-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.4.0-legacy.zip | Bin .../compile/minmax-0.4.0.sol-0.4.1-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.10-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.11-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.12-compact.zip | Bin .../minmax-0.4.0.sol-0.4.12-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.13-compact.zip | Bin .../minmax-0.4.0.sol-0.4.13-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.14-compact.zip | Bin .../minmax-0.4.0.sol-0.4.14-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.15-compact.zip | Bin .../minmax-0.4.0.sol-0.4.15-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.16-compact.zip | Bin .../minmax-0.4.0.sol-0.4.16-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.17-compact.zip | Bin .../minmax-0.4.0.sol-0.4.17-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.18-compact.zip | Bin .../minmax-0.4.0.sol-0.4.18-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.19-compact.zip | Bin .../minmax-0.4.0.sol-0.4.19-legacy.zip | Bin .../compile/minmax-0.4.0.sol-0.4.2-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.20-compact.zip | Bin .../minmax-0.4.0.sol-0.4.20-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.21-compact.zip | Bin .../minmax-0.4.0.sol-0.4.21-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.22-compact.zip | Bin .../minmax-0.4.0.sol-0.4.22-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.23-compact.zip | Bin .../minmax-0.4.0.sol-0.4.23-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.24-compact.zip | Bin .../minmax-0.4.0.sol-0.4.24-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.25-compact.zip | Bin .../minmax-0.4.0.sol-0.4.25-legacy.zip | Bin .../minmax-0.4.0.sol-0.4.26-compact.zip | Bin .../minmax-0.4.0.sol-0.4.26-legacy.zip | Bin .../compile/minmax-0.4.0.sol-0.4.3-legacy.zip | Bin .../compile/minmax-0.4.0.sol-0.4.4-legacy.zip | Bin .../compile/minmax-0.4.0.sol-0.4.5-legacy.zip | Bin .../compile/minmax-0.4.0.sol-0.4.6-legacy.zip | Bin .../compile/minmax-0.4.0.sol-0.4.7-legacy.zip | Bin .../compile/minmax-0.4.0.sol-0.4.8-legacy.zip | Bin .../compile/minmax-0.4.0.sol-0.4.9-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.0-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.5.0-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.1-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.5.1-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.10-compact.zip | Bin .../minmax-0.4.0.sol-0.5.10-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.11-compact.zip | Bin .../minmax-0.4.0.sol-0.5.11-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.12-compact.zip | Bin .../minmax-0.4.0.sol-0.5.12-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.13-compact.zip | Bin .../minmax-0.4.0.sol-0.5.13-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.14-compact.zip | Bin .../minmax-0.4.0.sol-0.5.14-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.15-compact.zip | Bin .../minmax-0.4.0.sol-0.5.15-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.16-compact.zip | Bin .../minmax-0.4.0.sol-0.5.16-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.17-compact.zip | Bin .../minmax-0.4.0.sol-0.5.17-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.2-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.5.2-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.3-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.5.3-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.4-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.5.4-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.5-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.5.5-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.6-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.5.6-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.7-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.5.7-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.8-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.5.8-legacy.zip | Bin .../minmax-0.4.0.sol-0.5.9-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.5.9-legacy.zip | Bin .../minmax-0.4.0.sol-0.6.0-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.6.0-legacy.zip | Bin .../minmax-0.4.0.sol-0.6.1-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.6.1-legacy.zip | Bin .../minmax-0.4.0.sol-0.6.10-compact.zip | Bin .../minmax-0.4.0.sol-0.6.10-legacy.zip | Bin .../minmax-0.4.0.sol-0.6.11-compact.zip | Bin .../minmax-0.4.0.sol-0.6.11-legacy.zip | Bin .../minmax-0.4.0.sol-0.6.12-compact.zip | Bin .../minmax-0.4.0.sol-0.6.12-legacy.zip | Bin .../minmax-0.4.0.sol-0.6.2-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.6.2-legacy.zip | Bin .../minmax-0.4.0.sol-0.6.3-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.6.3-legacy.zip | Bin .../minmax-0.4.0.sol-0.6.4-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.6.4-legacy.zip | Bin .../minmax-0.4.0.sol-0.6.5-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.6.5-legacy.zip | Bin .../minmax-0.4.0.sol-0.6.6-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.6.6-legacy.zip | Bin .../minmax-0.4.0.sol-0.6.7-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.6.7-legacy.zip | Bin .../minmax-0.4.0.sol-0.6.8-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.6.8-legacy.zip | Bin .../minmax-0.4.0.sol-0.6.9-compact.zip | Bin .../compile/minmax-0.4.0.sol-0.6.9-legacy.zip | Bin .../minmax-0.6.8.sol-0.6.8-compact.zip | Bin .../compile/minmax-0.6.8.sol-0.6.8-legacy.zip | Bin .../minmax-0.6.8.sol-0.6.9-compact.zip | Bin .../compile/minmax-0.6.8.sol-0.6.9-legacy.zip | Bin .../minmax-0.6.8.sol-0.7.0-compact.zip | Bin .../compile/minmax-0.6.8.sol-0.7.0-legacy.zip | Bin .../minmax-0.6.8.sol-0.7.1-compact.zip | Bin .../compile/minmax-0.6.8.sol-0.7.1-legacy.zip | Bin .../minmax-0.6.8.sol-0.7.2-compact.zip | Bin .../compile/minmax-0.6.8.sol-0.7.2-legacy.zip | Bin .../minmax-0.6.8.sol-0.7.3-compact.zip | Bin .../compile/minmax-0.6.8.sol-0.7.3-legacy.zip | Bin .../minmax-0.6.8.sol-0.7.4-compact.zip | Bin .../compile/minmax-0.6.8.sol-0.7.4-legacy.zip | Bin .../minmax-0.6.8.sol-0.7.5-compact.zip | Bin .../compile/minmax-0.6.8.sol-0.7.5-legacy.zip | Bin .../minmax-0.6.8.sol-0.7.6-compact.zip | Bin .../compile/minmax-0.6.8.sol-0.7.6-legacy.zip | Bin .../minmax-0.6.8.sol-0.8.0-compact.zip | Bin .../minmax-0.6.8.sol-0.8.1-compact.zip | Bin .../minmax-0.6.8.sol-0.8.10-compact.zip | Bin .../minmax-0.6.8.sol-0.8.11-compact.zip | Bin .../minmax-0.6.8.sol-0.8.12-compact.zip | Bin .../minmax-0.6.8.sol-0.8.13-compact.zip | Bin .../minmax-0.6.8.sol-0.8.14-compact.zip | Bin .../minmax-0.6.8.sol-0.8.15-compact.zip | Bin .../minmax-0.6.8.sol-0.8.2-compact.zip | Bin .../minmax-0.6.8.sol-0.8.3-compact.zip | Bin .../minmax-0.6.8.sol-0.8.4-compact.zip | Bin .../minmax-0.6.8.sol-0.8.5-compact.zip | Bin .../minmax-0.6.8.sol-0.8.6-compact.zip | Bin .../minmax-0.6.8.sol-0.8.7-compact.zip | Bin .../minmax-0.6.8.sol-0.8.8-compact.zip | Bin .../minmax-0.6.8.sol-0.8.9-compact.zip | Bin .../minmax-0.8.8.sol-0.8.10-compact.zip | Bin .../minmax-0.8.8.sol-0.8.11-compact.zip | Bin .../minmax-0.8.8.sol-0.8.12-compact.zip | Bin .../minmax-0.8.8.sol-0.8.13-compact.zip | Bin .../minmax-0.8.8.sol-0.8.14-compact.zip | Bin .../minmax-0.8.8.sol-0.8.15-compact.zip | Bin .../minmax-0.8.8.sol-0.8.8-compact.zip | Bin .../minmax-0.8.8.sol-0.8.9-compact.zip | Bin .../modifier-0.7.0.sol-0.7.0-compact.zip | Bin .../modifier-0.7.0.sol-0.7.0-legacy.zip | Bin .../modifier-0.7.0.sol-0.7.1-compact.zip | Bin .../modifier-0.7.0.sol-0.7.1-legacy.zip | Bin .../modifier-0.7.0.sol-0.7.2-compact.zip | Bin .../modifier-0.7.0.sol-0.7.2-legacy.zip | Bin .../modifier-0.7.0.sol-0.7.3-compact.zip | Bin .../modifier-0.7.0.sol-0.7.3-legacy.zip | Bin .../modifier-0.7.0.sol-0.7.4-compact.zip | Bin .../modifier-0.7.0.sol-0.7.4-legacy.zip | Bin .../modifier-0.7.0.sol-0.7.5-compact.zip | Bin .../modifier-0.7.0.sol-0.7.5-legacy.zip | Bin .../modifier-0.7.0.sol-0.7.6-compact.zip | Bin .../modifier-0.7.0.sol-0.7.6-legacy.zip | Bin .../modifier-0.7.0.sol-0.8.0-compact.zip | Bin .../modifier-0.7.0.sol-0.8.1-compact.zip | Bin .../modifier-0.7.0.sol-0.8.10-compact.zip | Bin .../modifier-0.7.0.sol-0.8.11-compact.zip | Bin .../modifier-0.7.0.sol-0.8.12-compact.zip | Bin .../modifier-0.7.0.sol-0.8.13-compact.zip | Bin .../modifier-0.7.0.sol-0.8.14-compact.zip | Bin .../modifier-0.7.0.sol-0.8.15-compact.zip | Bin .../modifier-0.7.0.sol-0.8.2-compact.zip | Bin .../modifier-0.7.0.sol-0.8.3-compact.zip | Bin .../modifier-0.7.0.sol-0.8.4-compact.zip | Bin .../modifier-0.7.0.sol-0.8.5-compact.zip | Bin .../modifier-0.7.0.sol-0.8.6-compact.zip | Bin .../modifier-0.7.0.sol-0.8.7-compact.zip | Bin .../modifier-0.7.0.sol-0.8.8-compact.zip | Bin .../modifier-0.7.0.sol-0.8.9-compact.zip | Bin .../compile/modifier-all.sol-0.4.0-legacy.zip | Bin .../compile/modifier-all.sol-0.4.1-legacy.zip | Bin .../modifier-all.sol-0.4.10-legacy.zip | Bin .../modifier-all.sol-0.4.11-legacy.zip | Bin .../modifier-all.sol-0.4.12-compact.zip | Bin .../modifier-all.sol-0.4.12-legacy.zip | Bin .../modifier-all.sol-0.4.13-compact.zip | Bin .../modifier-all.sol-0.4.13-legacy.zip | Bin .../modifier-all.sol-0.4.14-compact.zip | Bin .../modifier-all.sol-0.4.14-legacy.zip | Bin .../modifier-all.sol-0.4.15-compact.zip | Bin .../modifier-all.sol-0.4.15-legacy.zip | Bin .../modifier-all.sol-0.4.16-compact.zip | Bin .../modifier-all.sol-0.4.16-legacy.zip | Bin .../modifier-all.sol-0.4.17-compact.zip | Bin .../modifier-all.sol-0.4.17-legacy.zip | Bin .../modifier-all.sol-0.4.18-compact.zip | Bin .../modifier-all.sol-0.4.18-legacy.zip | Bin .../modifier-all.sol-0.4.19-compact.zip | Bin .../modifier-all.sol-0.4.19-legacy.zip | Bin .../compile/modifier-all.sol-0.4.2-legacy.zip | Bin .../modifier-all.sol-0.4.20-compact.zip | Bin .../modifier-all.sol-0.4.20-legacy.zip | Bin .../modifier-all.sol-0.4.21-compact.zip | Bin .../modifier-all.sol-0.4.21-legacy.zip | Bin .../modifier-all.sol-0.4.22-compact.zip | Bin .../modifier-all.sol-0.4.22-legacy.zip | Bin .../modifier-all.sol-0.4.23-compact.zip | Bin .../modifier-all.sol-0.4.23-legacy.zip | Bin .../modifier-all.sol-0.4.24-compact.zip | Bin .../modifier-all.sol-0.4.24-legacy.zip | Bin .../modifier-all.sol-0.4.25-compact.zip | Bin .../modifier-all.sol-0.4.25-legacy.zip | Bin .../modifier-all.sol-0.4.26-compact.zip | Bin .../modifier-all.sol-0.4.26-legacy.zip | Bin .../compile/modifier-all.sol-0.4.3-legacy.zip | Bin .../compile/modifier-all.sol-0.4.4-legacy.zip | Bin .../compile/modifier-all.sol-0.4.5-legacy.zip | Bin .../compile/modifier-all.sol-0.4.6-legacy.zip | Bin .../compile/modifier-all.sol-0.4.7-legacy.zip | Bin .../compile/modifier-all.sol-0.4.8-legacy.zip | Bin .../compile/modifier-all.sol-0.4.9-legacy.zip | Bin .../modifier-all.sol-0.5.0-compact.zip | Bin .../compile/modifier-all.sol-0.5.0-legacy.zip | Bin .../modifier-all.sol-0.5.1-compact.zip | Bin .../compile/modifier-all.sol-0.5.1-legacy.zip | Bin .../modifier-all.sol-0.5.10-compact.zip | Bin .../modifier-all.sol-0.5.10-legacy.zip | Bin .../modifier-all.sol-0.5.11-compact.zip | Bin .../modifier-all.sol-0.5.11-legacy.zip | Bin .../modifier-all.sol-0.5.12-compact.zip | Bin .../modifier-all.sol-0.5.12-legacy.zip | Bin .../modifier-all.sol-0.5.13-compact.zip | Bin .../modifier-all.sol-0.5.13-legacy.zip | Bin .../modifier-all.sol-0.5.14-compact.zip | Bin .../modifier-all.sol-0.5.14-legacy.zip | Bin .../modifier-all.sol-0.5.15-compact.zip | Bin .../modifier-all.sol-0.5.15-legacy.zip | Bin .../modifier-all.sol-0.5.16-compact.zip | Bin .../modifier-all.sol-0.5.16-legacy.zip | Bin .../modifier-all.sol-0.5.17-compact.zip | Bin .../modifier-all.sol-0.5.17-legacy.zip | Bin .../modifier-all.sol-0.5.2-compact.zip | Bin .../compile/modifier-all.sol-0.5.2-legacy.zip | Bin .../modifier-all.sol-0.5.3-compact.zip | Bin .../compile/modifier-all.sol-0.5.3-legacy.zip | Bin .../modifier-all.sol-0.5.4-compact.zip | Bin .../compile/modifier-all.sol-0.5.4-legacy.zip | Bin .../modifier-all.sol-0.5.5-compact.zip | Bin .../compile/modifier-all.sol-0.5.5-legacy.zip | Bin .../modifier-all.sol-0.5.6-compact.zip | Bin .../compile/modifier-all.sol-0.5.6-legacy.zip | Bin .../modifier-all.sol-0.5.7-compact.zip | Bin .../compile/modifier-all.sol-0.5.7-legacy.zip | Bin .../modifier-all.sol-0.5.8-compact.zip | Bin .../compile/modifier-all.sol-0.5.8-legacy.zip | Bin .../modifier-all.sol-0.5.9-compact.zip | Bin .../compile/modifier-all.sol-0.5.9-legacy.zip | Bin .../modifier-all.sol-0.6.0-compact.zip | Bin .../compile/modifier-all.sol-0.6.0-legacy.zip | Bin .../modifier-all.sol-0.6.1-compact.zip | Bin .../compile/modifier-all.sol-0.6.1-legacy.zip | Bin .../modifier-all.sol-0.6.10-compact.zip | Bin .../modifier-all.sol-0.6.10-legacy.zip | Bin .../modifier-all.sol-0.6.11-compact.zip | Bin .../modifier-all.sol-0.6.11-legacy.zip | Bin .../modifier-all.sol-0.6.12-compact.zip | Bin .../modifier-all.sol-0.6.12-legacy.zip | Bin .../modifier-all.sol-0.6.2-compact.zip | Bin .../compile/modifier-all.sol-0.6.2-legacy.zip | Bin .../modifier-all.sol-0.6.3-compact.zip | Bin .../compile/modifier-all.sol-0.6.3-legacy.zip | Bin .../modifier-all.sol-0.6.4-compact.zip | Bin .../compile/modifier-all.sol-0.6.4-legacy.zip | Bin .../modifier-all.sol-0.6.5-compact.zip | Bin .../compile/modifier-all.sol-0.6.5-legacy.zip | Bin .../modifier-all.sol-0.6.6-compact.zip | Bin .../compile/modifier-all.sol-0.6.6-legacy.zip | Bin .../modifier-all.sol-0.6.7-compact.zip | Bin .../compile/modifier-all.sol-0.6.7-legacy.zip | Bin .../modifier-all.sol-0.6.8-compact.zip | Bin .../compile/modifier-all.sol-0.6.8-legacy.zip | Bin .../modifier-all.sol-0.6.9-compact.zip | Bin .../compile/modifier-all.sol-0.6.9-legacy.zip | Bin ...fier_identifier_path.sol-0.8.0-compact.zip | Bin ...fier_identifier_path.sol-0.8.1-compact.zip | Bin ...ier_identifier_path.sol-0.8.10-compact.zip | Bin ...ier_identifier_path.sol-0.8.11-compact.zip | Bin ...ier_identifier_path.sol-0.8.12-compact.zip | Bin ...ier_identifier_path.sol-0.8.13-compact.zip | Bin ...ier_identifier_path.sol-0.8.14-compact.zip | Bin ...ier_identifier_path.sol-0.8.15-compact.zip | Bin ...fier_identifier_path.sol-0.8.2-compact.zip | Bin ...fier_identifier_path.sol-0.8.3-compact.zip | Bin ...fier_identifier_path.sol-0.8.4-compact.zip | Bin ...fier_identifier_path.sol-0.8.5-compact.zip | Bin ...fier_identifier_path.sol-0.8.6-compact.zip | Bin ...fier_identifier_path.sol-0.8.7-compact.zip | Bin ...fier_identifier_path.sol-0.8.8-compact.zip | Bin ...fier_identifier_path.sol-0.8.9-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.0-legacy.zip | Bin .../newexpression-0.4.0.sol-0.4.1-legacy.zip | Bin .../newexpression-0.4.0.sol-0.4.10-legacy.zip | Bin .../newexpression-0.4.0.sol-0.4.11-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.12-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.12-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.13-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.13-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.14-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.14-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.15-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.15-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.16-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.16-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.17-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.17-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.18-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.18-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.19-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.19-legacy.zip | Bin .../newexpression-0.4.0.sol-0.4.2-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.20-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.20-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.21-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.21-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.22-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.22-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.23-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.23-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.24-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.24-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.25-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.25-legacy.zip | Bin ...newexpression-0.4.0.sol-0.4.26-compact.zip | Bin .../newexpression-0.4.0.sol-0.4.26-legacy.zip | Bin .../newexpression-0.4.0.sol-0.4.3-legacy.zip | Bin .../newexpression-0.4.0.sol-0.4.4-legacy.zip | Bin .../newexpression-0.4.0.sol-0.4.5-legacy.zip | Bin .../newexpression-0.4.0.sol-0.4.6-legacy.zip | Bin .../newexpression-0.4.0.sol-0.4.7-legacy.zip | Bin .../newexpression-0.4.0.sol-0.4.8-legacy.zip | Bin .../newexpression-0.4.0.sol-0.4.9-legacy.zip | Bin .../newexpression-0.5.0.sol-0.5.0-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.0-legacy.zip | Bin .../newexpression-0.5.0.sol-0.5.1-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.1-legacy.zip | Bin ...newexpression-0.5.0.sol-0.5.10-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.10-legacy.zip | Bin ...newexpression-0.5.0.sol-0.5.11-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.11-legacy.zip | Bin ...newexpression-0.5.0.sol-0.5.12-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.12-legacy.zip | Bin ...newexpression-0.5.0.sol-0.5.13-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.13-legacy.zip | Bin ...newexpression-0.5.0.sol-0.5.14-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.14-legacy.zip | Bin ...newexpression-0.5.0.sol-0.5.15-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.15-legacy.zip | Bin ...newexpression-0.5.0.sol-0.5.16-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.16-legacy.zip | Bin ...newexpression-0.5.0.sol-0.5.17-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.17-legacy.zip | Bin .../newexpression-0.5.0.sol-0.5.2-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.2-legacy.zip | Bin .../newexpression-0.5.0.sol-0.5.3-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.3-legacy.zip | Bin .../newexpression-0.5.0.sol-0.5.4-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.4-legacy.zip | Bin .../newexpression-0.5.0.sol-0.5.5-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.5-legacy.zip | Bin .../newexpression-0.5.0.sol-0.5.6-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.6-legacy.zip | Bin .../newexpression-0.5.0.sol-0.5.7-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.7-legacy.zip | Bin .../newexpression-0.5.0.sol-0.5.8-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.8-legacy.zip | Bin .../newexpression-0.5.0.sol-0.5.9-compact.zip | Bin .../newexpression-0.5.0.sol-0.5.9-legacy.zip | Bin .../newexpression-0.5.0.sol-0.6.0-compact.zip | Bin .../newexpression-0.5.0.sol-0.6.0-legacy.zip | Bin .../newexpression-0.5.0.sol-0.6.1-compact.zip | Bin .../newexpression-0.5.0.sol-0.6.1-legacy.zip | Bin ...newexpression-0.5.0.sol-0.6.10-compact.zip | Bin .../newexpression-0.5.0.sol-0.6.10-legacy.zip | Bin ...newexpression-0.5.0.sol-0.6.11-compact.zip | Bin .../newexpression-0.5.0.sol-0.6.11-legacy.zip | Bin ...newexpression-0.5.0.sol-0.6.12-compact.zip | Bin .../newexpression-0.5.0.sol-0.6.12-legacy.zip | Bin .../newexpression-0.5.0.sol-0.6.2-compact.zip | Bin .../newexpression-0.5.0.sol-0.6.2-legacy.zip | Bin .../newexpression-0.5.0.sol-0.6.3-compact.zip | Bin .../newexpression-0.5.0.sol-0.6.3-legacy.zip | Bin .../newexpression-0.5.0.sol-0.6.4-compact.zip | Bin .../newexpression-0.5.0.sol-0.6.4-legacy.zip | Bin .../newexpression-0.5.0.sol-0.6.5-compact.zip | Bin .../newexpression-0.5.0.sol-0.6.5-legacy.zip | Bin .../newexpression-0.5.0.sol-0.6.6-compact.zip | Bin .../newexpression-0.5.0.sol-0.6.6-legacy.zip | Bin .../newexpression-0.5.0.sol-0.6.7-compact.zip | Bin .../newexpression-0.5.0.sol-0.6.7-legacy.zip | Bin .../newexpression-0.5.0.sol-0.6.8-compact.zip | Bin .../newexpression-0.5.0.sol-0.6.8-legacy.zip | Bin .../newexpression-0.5.0.sol-0.6.9-compact.zip | Bin .../newexpression-0.5.0.sol-0.6.9-legacy.zip | Bin .../newexpression-0.5.0.sol-0.7.0-compact.zip | Bin .../newexpression-0.5.0.sol-0.7.0-legacy.zip | Bin .../newexpression-0.5.0.sol-0.7.1-compact.zip | Bin .../newexpression-0.5.0.sol-0.7.1-legacy.zip | Bin .../newexpression-0.5.0.sol-0.7.2-compact.zip | Bin .../newexpression-0.5.0.sol-0.7.2-legacy.zip | Bin .../newexpression-0.5.0.sol-0.7.3-compact.zip | Bin .../newexpression-0.5.0.sol-0.7.3-legacy.zip | Bin .../newexpression-0.5.0.sol-0.7.4-compact.zip | Bin .../newexpression-0.5.0.sol-0.7.4-legacy.zip | Bin .../newexpression-0.5.0.sol-0.7.5-compact.zip | Bin .../newexpression-0.5.0.sol-0.7.5-legacy.zip | Bin .../newexpression-0.5.0.sol-0.7.6-compact.zip | Bin .../newexpression-0.5.0.sol-0.7.6-legacy.zip | Bin .../newexpression-0.5.0.sol-0.8.0-compact.zip | Bin .../newexpression-0.5.0.sol-0.8.1-compact.zip | Bin ...newexpression-0.5.0.sol-0.8.10-compact.zip | Bin ...newexpression-0.5.0.sol-0.8.11-compact.zip | Bin ...newexpression-0.5.0.sol-0.8.12-compact.zip | Bin ...newexpression-0.5.0.sol-0.8.13-compact.zip | Bin ...newexpression-0.5.0.sol-0.8.14-compact.zip | Bin ...newexpression-0.5.0.sol-0.8.15-compact.zip | Bin .../newexpression-0.5.0.sol-0.8.2-compact.zip | Bin .../newexpression-0.5.0.sol-0.8.3-compact.zip | Bin .../newexpression-0.5.0.sol-0.8.4-compact.zip | Bin .../newexpression-0.5.0.sol-0.8.5-compact.zip | Bin .../newexpression-0.5.0.sol-0.8.6-compact.zip | Bin .../newexpression-0.5.0.sol-0.8.7-compact.zip | Bin .../newexpression-0.5.0.sol-0.8.8-compact.zip | Bin .../newexpression-0.5.0.sol-0.8.9-compact.zip | Bin .../compile/pragma-0.4.0.sol-0.4.0-legacy.zip | Bin .../compile/pragma-0.4.0.sol-0.4.1-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.10-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.11-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.12-compact.zip | Bin .../pragma-0.4.0.sol-0.4.12-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.13-compact.zip | Bin .../pragma-0.4.0.sol-0.4.13-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.14-compact.zip | Bin .../pragma-0.4.0.sol-0.4.14-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.15-compact.zip | Bin .../pragma-0.4.0.sol-0.4.15-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.16-compact.zip | Bin .../pragma-0.4.0.sol-0.4.16-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.17-compact.zip | Bin .../pragma-0.4.0.sol-0.4.17-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.18-compact.zip | Bin .../pragma-0.4.0.sol-0.4.18-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.19-compact.zip | Bin .../pragma-0.4.0.sol-0.4.19-legacy.zip | Bin .../compile/pragma-0.4.0.sol-0.4.2-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.20-compact.zip | Bin .../pragma-0.4.0.sol-0.4.20-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.21-compact.zip | Bin .../pragma-0.4.0.sol-0.4.21-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.22-compact.zip | Bin .../pragma-0.4.0.sol-0.4.22-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.23-compact.zip | Bin .../pragma-0.4.0.sol-0.4.23-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.24-compact.zip | Bin .../pragma-0.4.0.sol-0.4.24-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.25-compact.zip | Bin .../pragma-0.4.0.sol-0.4.25-legacy.zip | Bin .../pragma-0.4.0.sol-0.4.26-compact.zip | Bin .../pragma-0.4.0.sol-0.4.26-legacy.zip | Bin .../compile/pragma-0.4.0.sol-0.4.3-legacy.zip | Bin .../compile/pragma-0.4.0.sol-0.4.4-legacy.zip | Bin .../compile/pragma-0.4.0.sol-0.4.5-legacy.zip | Bin .../compile/pragma-0.4.0.sol-0.4.6-legacy.zip | Bin .../compile/pragma-0.4.0.sol-0.4.7-legacy.zip | Bin .../compile/pragma-0.4.0.sol-0.4.8-legacy.zip | Bin .../compile/pragma-0.4.0.sol-0.4.9-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.0-compact.zip | Bin .../compile/pragma-0.5.0.sol-0.5.0-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.1-compact.zip | Bin .../compile/pragma-0.5.0.sol-0.5.1-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.10-compact.zip | Bin .../pragma-0.5.0.sol-0.5.10-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.11-compact.zip | Bin .../pragma-0.5.0.sol-0.5.11-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.12-compact.zip | Bin .../pragma-0.5.0.sol-0.5.12-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.13-compact.zip | Bin .../pragma-0.5.0.sol-0.5.13-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.14-compact.zip | Bin .../pragma-0.5.0.sol-0.5.14-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.15-compact.zip | Bin .../pragma-0.5.0.sol-0.5.15-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.16-compact.zip | Bin .../pragma-0.5.0.sol-0.5.16-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.17-compact.zip | Bin .../pragma-0.5.0.sol-0.5.17-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.2-compact.zip | Bin .../compile/pragma-0.5.0.sol-0.5.2-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.3-compact.zip | Bin .../compile/pragma-0.5.0.sol-0.5.3-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.4-compact.zip | Bin .../compile/pragma-0.5.0.sol-0.5.4-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.5-compact.zip | Bin .../compile/pragma-0.5.0.sol-0.5.5-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.6-compact.zip | Bin .../compile/pragma-0.5.0.sol-0.5.6-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.7-compact.zip | Bin .../compile/pragma-0.5.0.sol-0.5.7-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.8-compact.zip | Bin .../compile/pragma-0.5.0.sol-0.5.8-legacy.zip | Bin .../pragma-0.5.0.sol-0.5.9-compact.zip | Bin .../compile/pragma-0.5.0.sol-0.5.9-legacy.zip | Bin .../pragma-0.6.0.sol-0.6.0-compact.zip | Bin .../compile/pragma-0.6.0.sol-0.6.0-legacy.zip | Bin .../pragma-0.6.0.sol-0.6.1-compact.zip | Bin .../compile/pragma-0.6.0.sol-0.6.1-legacy.zip | Bin .../pragma-0.6.0.sol-0.6.10-compact.zip | Bin .../pragma-0.6.0.sol-0.6.10-legacy.zip | Bin .../pragma-0.6.0.sol-0.6.11-compact.zip | Bin .../pragma-0.6.0.sol-0.6.11-legacy.zip | Bin .../pragma-0.6.0.sol-0.6.12-compact.zip | Bin .../pragma-0.6.0.sol-0.6.12-legacy.zip | Bin .../pragma-0.6.0.sol-0.6.2-compact.zip | Bin .../compile/pragma-0.6.0.sol-0.6.2-legacy.zip | Bin .../pragma-0.6.0.sol-0.6.3-compact.zip | Bin .../compile/pragma-0.6.0.sol-0.6.3-legacy.zip | Bin .../pragma-0.6.0.sol-0.6.4-compact.zip | Bin .../compile/pragma-0.6.0.sol-0.6.4-legacy.zip | Bin .../pragma-0.6.0.sol-0.6.5-compact.zip | Bin .../compile/pragma-0.6.0.sol-0.6.5-legacy.zip | Bin .../pragma-0.6.0.sol-0.6.6-compact.zip | Bin .../compile/pragma-0.6.0.sol-0.6.6-legacy.zip | Bin .../pragma-0.6.0.sol-0.6.7-compact.zip | Bin .../compile/pragma-0.6.0.sol-0.6.7-legacy.zip | Bin .../pragma-0.6.0.sol-0.6.8-compact.zip | Bin .../compile/pragma-0.6.0.sol-0.6.8-legacy.zip | Bin .../pragma-0.6.0.sol-0.6.9-compact.zip | Bin .../compile/pragma-0.6.0.sol-0.6.9-legacy.zip | Bin .../pragma-0.7.0.sol-0.7.0-compact.zip | Bin .../compile/pragma-0.7.0.sol-0.7.0-legacy.zip | Bin .../pragma-0.7.0.sol-0.7.1-compact.zip | Bin .../compile/pragma-0.7.0.sol-0.7.1-legacy.zip | Bin .../pragma-0.7.0.sol-0.7.2-compact.zip | Bin .../compile/pragma-0.7.0.sol-0.7.2-legacy.zip | Bin .../pragma-0.7.0.sol-0.7.3-compact.zip | Bin .../compile/pragma-0.7.0.sol-0.7.3-legacy.zip | Bin .../pragma-0.7.0.sol-0.7.4-compact.zip | Bin .../compile/pragma-0.7.0.sol-0.7.4-legacy.zip | Bin .../pragma-0.7.0.sol-0.7.5-compact.zip | Bin .../compile/pragma-0.7.0.sol-0.7.5-legacy.zip | Bin .../pragma-0.7.0.sol-0.7.6-compact.zip | Bin .../compile/pragma-0.7.0.sol-0.7.6-legacy.zip | Bin .../pragma-0.8.0.sol-0.8.0-compact.zip | Bin .../pragma-0.8.0.sol-0.8.1-compact.zip | Bin .../pragma-0.8.0.sol-0.8.10-compact.zip | Bin .../pragma-0.8.0.sol-0.8.11-compact.zip | Bin .../pragma-0.8.0.sol-0.8.12-compact.zip | Bin .../pragma-0.8.0.sol-0.8.13-compact.zip | Bin .../pragma-0.8.0.sol-0.8.14-compact.zip | Bin .../pragma-0.8.0.sol-0.8.15-compact.zip | Bin .../pragma-0.8.0.sol-0.8.2-compact.zip | Bin .../pragma-0.8.0.sol-0.8.3-compact.zip | Bin .../pragma-0.8.0.sol-0.8.4-compact.zip | Bin .../pragma-0.8.0.sol-0.8.5-compact.zip | Bin .../pragma-0.8.0.sol-0.8.6-compact.zip | Bin .../pragma-0.8.0.sol-0.8.7-compact.zip | Bin .../pragma-0.8.0.sol-0.8.8-compact.zip | Bin .../pragma-0.8.0.sol-0.8.9-compact.zip | Bin .../compile/push-all.sol-0.4.0-legacy.zip | Bin .../compile/push-all.sol-0.4.1-legacy.zip | Bin .../compile/push-all.sol-0.4.10-legacy.zip | Bin .../compile/push-all.sol-0.4.11-legacy.zip | Bin .../compile/push-all.sol-0.4.12-compact.zip | Bin .../compile/push-all.sol-0.4.12-legacy.zip | Bin .../compile/push-all.sol-0.4.13-compact.zip | Bin .../compile/push-all.sol-0.4.13-legacy.zip | Bin .../compile/push-all.sol-0.4.14-compact.zip | Bin .../compile/push-all.sol-0.4.14-legacy.zip | Bin .../compile/push-all.sol-0.4.15-compact.zip | Bin .../compile/push-all.sol-0.4.15-legacy.zip | Bin .../compile/push-all.sol-0.4.16-compact.zip | Bin .../compile/push-all.sol-0.4.16-legacy.zip | Bin .../compile/push-all.sol-0.4.17-compact.zip | Bin .../compile/push-all.sol-0.4.17-legacy.zip | Bin .../compile/push-all.sol-0.4.18-compact.zip | Bin .../compile/push-all.sol-0.4.18-legacy.zip | Bin .../compile/push-all.sol-0.4.19-compact.zip | Bin .../compile/push-all.sol-0.4.19-legacy.zip | Bin .../compile/push-all.sol-0.4.2-legacy.zip | Bin .../compile/push-all.sol-0.4.20-compact.zip | Bin .../compile/push-all.sol-0.4.20-legacy.zip | Bin .../compile/push-all.sol-0.4.21-compact.zip | Bin .../compile/push-all.sol-0.4.21-legacy.zip | Bin .../compile/push-all.sol-0.4.22-compact.zip | Bin .../compile/push-all.sol-0.4.22-legacy.zip | Bin .../compile/push-all.sol-0.4.23-compact.zip | Bin .../compile/push-all.sol-0.4.23-legacy.zip | Bin .../compile/push-all.sol-0.4.24-compact.zip | Bin .../compile/push-all.sol-0.4.24-legacy.zip | Bin .../compile/push-all.sol-0.4.25-compact.zip | Bin .../compile/push-all.sol-0.4.25-legacy.zip | Bin .../compile/push-all.sol-0.4.26-compact.zip | Bin .../compile/push-all.sol-0.4.26-legacy.zip | Bin .../compile/push-all.sol-0.4.3-legacy.zip | Bin .../compile/push-all.sol-0.4.4-legacy.zip | Bin .../compile/push-all.sol-0.4.5-legacy.zip | Bin .../compile/push-all.sol-0.4.6-legacy.zip | Bin .../compile/push-all.sol-0.4.7-legacy.zip | Bin .../compile/push-all.sol-0.4.8-legacy.zip | Bin .../compile/push-all.sol-0.4.9-legacy.zip | Bin .../compile/push-all.sol-0.5.0-compact.zip | Bin .../compile/push-all.sol-0.5.0-legacy.zip | Bin .../compile/push-all.sol-0.5.1-compact.zip | Bin .../compile/push-all.sol-0.5.1-legacy.zip | Bin .../compile/push-all.sol-0.5.10-compact.zip | Bin .../compile/push-all.sol-0.5.10-legacy.zip | Bin .../compile/push-all.sol-0.5.11-compact.zip | Bin .../compile/push-all.sol-0.5.11-legacy.zip | Bin .../compile/push-all.sol-0.5.12-compact.zip | Bin .../compile/push-all.sol-0.5.12-legacy.zip | Bin .../compile/push-all.sol-0.5.13-compact.zip | Bin .../compile/push-all.sol-0.5.13-legacy.zip | Bin .../compile/push-all.sol-0.5.14-compact.zip | Bin .../compile/push-all.sol-0.5.14-legacy.zip | Bin .../compile/push-all.sol-0.5.15-compact.zip | Bin .../compile/push-all.sol-0.5.15-legacy.zip | Bin .../compile/push-all.sol-0.5.16-compact.zip | Bin .../compile/push-all.sol-0.5.16-legacy.zip | Bin .../compile/push-all.sol-0.5.17-compact.zip | Bin .../compile/push-all.sol-0.5.17-legacy.zip | Bin .../compile/push-all.sol-0.5.2-compact.zip | Bin .../compile/push-all.sol-0.5.2-legacy.zip | Bin .../compile/push-all.sol-0.5.3-compact.zip | Bin .../compile/push-all.sol-0.5.3-legacy.zip | Bin .../compile/push-all.sol-0.5.4-compact.zip | Bin .../compile/push-all.sol-0.5.4-legacy.zip | Bin .../compile/push-all.sol-0.5.5-compact.zip | Bin .../compile/push-all.sol-0.5.5-legacy.zip | Bin .../compile/push-all.sol-0.5.6-compact.zip | Bin .../compile/push-all.sol-0.5.6-legacy.zip | Bin .../compile/push-all.sol-0.5.7-compact.zip | Bin .../compile/push-all.sol-0.5.7-legacy.zip | Bin .../compile/push-all.sol-0.5.8-compact.zip | Bin .../compile/push-all.sol-0.5.8-legacy.zip | Bin .../compile/push-all.sol-0.5.9-compact.zip | Bin .../compile/push-all.sol-0.5.9-legacy.zip | Bin .../compile/push-all.sol-0.6.0-compact.zip | Bin .../compile/push-all.sol-0.6.0-legacy.zip | Bin .../compile/push-all.sol-0.6.1-compact.zip | Bin .../compile/push-all.sol-0.6.1-legacy.zip | Bin .../compile/push-all.sol-0.6.10-compact.zip | Bin .../compile/push-all.sol-0.6.10-legacy.zip | Bin .../compile/push-all.sol-0.6.11-compact.zip | Bin .../compile/push-all.sol-0.6.11-legacy.zip | Bin .../compile/push-all.sol-0.6.12-compact.zip | Bin .../compile/push-all.sol-0.6.12-legacy.zip | Bin .../compile/push-all.sol-0.6.2-compact.zip | Bin .../compile/push-all.sol-0.6.2-legacy.zip | Bin .../compile/push-all.sol-0.6.3-compact.zip | Bin .../compile/push-all.sol-0.6.3-legacy.zip | Bin .../compile/push-all.sol-0.6.4-compact.zip | Bin .../compile/push-all.sol-0.6.4-legacy.zip | Bin .../compile/push-all.sol-0.6.5-compact.zip | Bin .../compile/push-all.sol-0.6.5-legacy.zip | Bin .../compile/push-all.sol-0.6.6-compact.zip | Bin .../compile/push-all.sol-0.6.6-legacy.zip | Bin .../compile/push-all.sol-0.6.7-compact.zip | Bin .../compile/push-all.sol-0.6.7-legacy.zip | Bin .../compile/push-all.sol-0.6.8-compact.zip | Bin .../compile/push-all.sol-0.6.8-legacy.zip | Bin .../compile/push-all.sol-0.6.9-compact.zip | Bin .../compile/push-all.sol-0.6.9-legacy.zip | Bin .../compile/push-all.sol-0.7.0-compact.zip | Bin .../compile/push-all.sol-0.7.0-legacy.zip | Bin .../compile/push-all.sol-0.7.1-compact.zip | Bin .../compile/push-all.sol-0.7.1-legacy.zip | Bin .../compile/push-all.sol-0.7.2-compact.zip | Bin .../compile/push-all.sol-0.7.2-legacy.zip | Bin .../compile/push-all.sol-0.7.3-compact.zip | Bin .../compile/push-all.sol-0.7.3-legacy.zip | Bin .../compile/push-all.sol-0.7.4-compact.zip | Bin .../compile/push-all.sol-0.7.4-legacy.zip | Bin .../compile/push-all.sol-0.7.5-compact.zip | Bin .../compile/push-all.sol-0.7.5-legacy.zip | Bin .../compile/push-all.sol-0.7.6-compact.zip | Bin .../compile/push-all.sol-0.7.6-legacy.zip | Bin .../compile/push-all.sol-0.8.0-compact.zip | Bin .../compile/push-all.sol-0.8.1-compact.zip | Bin .../compile/push-all.sol-0.8.10-compact.zip | Bin .../compile/push-all.sol-0.8.11-compact.zip | Bin .../compile/push-all.sol-0.8.12-compact.zip | Bin .../compile/push-all.sol-0.8.13-compact.zip | Bin .../compile/push-all.sol-0.8.14-compact.zip | Bin .../compile/push-all.sol-0.8.15-compact.zip | Bin .../compile/push-all.sol-0.8.2-compact.zip | Bin .../compile/push-all.sol-0.8.3-compact.zip | Bin .../compile/push-all.sol-0.8.4-compact.zip | Bin .../compile/push-all.sol-0.8.5-compact.zip | Bin .../compile/push-all.sol-0.8.6-compact.zip | Bin .../compile/push-all.sol-0.8.7-compact.zip | Bin .../compile/push-all.sol-0.8.8-compact.zip | Bin .../compile/push-all.sol-0.8.9-compact.zip | Bin .../compile/return-all.sol-0.4.0-legacy.zip | Bin .../compile/return-all.sol-0.4.1-legacy.zip | Bin .../compile/return-all.sol-0.4.10-legacy.zip | Bin .../compile/return-all.sol-0.4.11-legacy.zip | Bin .../compile/return-all.sol-0.4.12-compact.zip | Bin .../compile/return-all.sol-0.4.12-legacy.zip | Bin .../compile/return-all.sol-0.4.13-compact.zip | Bin .../compile/return-all.sol-0.4.13-legacy.zip | Bin .../compile/return-all.sol-0.4.14-compact.zip | Bin .../compile/return-all.sol-0.4.14-legacy.zip | Bin .../compile/return-all.sol-0.4.15-compact.zip | Bin .../compile/return-all.sol-0.4.15-legacy.zip | Bin .../compile/return-all.sol-0.4.16-compact.zip | Bin .../compile/return-all.sol-0.4.16-legacy.zip | Bin .../compile/return-all.sol-0.4.17-compact.zip | Bin .../compile/return-all.sol-0.4.17-legacy.zip | Bin .../compile/return-all.sol-0.4.18-compact.zip | Bin .../compile/return-all.sol-0.4.18-legacy.zip | Bin .../compile/return-all.sol-0.4.19-compact.zip | Bin .../compile/return-all.sol-0.4.19-legacy.zip | Bin .../compile/return-all.sol-0.4.2-legacy.zip | Bin .../compile/return-all.sol-0.4.20-compact.zip | Bin .../compile/return-all.sol-0.4.20-legacy.zip | Bin .../compile/return-all.sol-0.4.21-compact.zip | Bin .../compile/return-all.sol-0.4.21-legacy.zip | Bin .../compile/return-all.sol-0.4.22-compact.zip | Bin .../compile/return-all.sol-0.4.22-legacy.zip | Bin .../compile/return-all.sol-0.4.23-compact.zip | Bin .../compile/return-all.sol-0.4.23-legacy.zip | Bin .../compile/return-all.sol-0.4.24-compact.zip | Bin .../compile/return-all.sol-0.4.24-legacy.zip | Bin .../compile/return-all.sol-0.4.25-compact.zip | Bin .../compile/return-all.sol-0.4.25-legacy.zip | Bin .../compile/return-all.sol-0.4.26-compact.zip | Bin .../compile/return-all.sol-0.4.26-legacy.zip | Bin .../compile/return-all.sol-0.4.3-legacy.zip | Bin .../compile/return-all.sol-0.4.4-legacy.zip | Bin .../compile/return-all.sol-0.4.5-legacy.zip | Bin .../compile/return-all.sol-0.4.6-legacy.zip | Bin .../compile/return-all.sol-0.4.7-legacy.zip | Bin .../compile/return-all.sol-0.4.8-legacy.zip | Bin .../compile/return-all.sol-0.4.9-legacy.zip | Bin .../compile/return-all.sol-0.5.0-compact.zip | Bin .../compile/return-all.sol-0.5.0-legacy.zip | Bin .../compile/return-all.sol-0.5.1-compact.zip | Bin .../compile/return-all.sol-0.5.1-legacy.zip | Bin .../compile/return-all.sol-0.5.10-compact.zip | Bin .../compile/return-all.sol-0.5.10-legacy.zip | Bin .../compile/return-all.sol-0.5.11-compact.zip | Bin .../compile/return-all.sol-0.5.11-legacy.zip | Bin .../compile/return-all.sol-0.5.12-compact.zip | Bin .../compile/return-all.sol-0.5.12-legacy.zip | Bin .../compile/return-all.sol-0.5.13-compact.zip | Bin .../compile/return-all.sol-0.5.13-legacy.zip | Bin .../compile/return-all.sol-0.5.14-compact.zip | Bin .../compile/return-all.sol-0.5.14-legacy.zip | Bin .../compile/return-all.sol-0.5.15-compact.zip | Bin .../compile/return-all.sol-0.5.15-legacy.zip | Bin .../compile/return-all.sol-0.5.16-compact.zip | Bin .../compile/return-all.sol-0.5.16-legacy.zip | Bin .../compile/return-all.sol-0.5.17-compact.zip | Bin .../compile/return-all.sol-0.5.17-legacy.zip | Bin .../compile/return-all.sol-0.5.2-compact.zip | Bin .../compile/return-all.sol-0.5.2-legacy.zip | Bin .../compile/return-all.sol-0.5.3-compact.zip | Bin .../compile/return-all.sol-0.5.3-legacy.zip | Bin .../compile/return-all.sol-0.5.4-compact.zip | Bin .../compile/return-all.sol-0.5.4-legacy.zip | Bin .../compile/return-all.sol-0.5.5-compact.zip | Bin .../compile/return-all.sol-0.5.5-legacy.zip | Bin .../compile/return-all.sol-0.5.6-compact.zip | Bin .../compile/return-all.sol-0.5.6-legacy.zip | Bin .../compile/return-all.sol-0.5.7-compact.zip | Bin .../compile/return-all.sol-0.5.7-legacy.zip | Bin .../compile/return-all.sol-0.5.8-compact.zip | Bin .../compile/return-all.sol-0.5.8-legacy.zip | Bin .../compile/return-all.sol-0.5.9-compact.zip | Bin .../compile/return-all.sol-0.5.9-legacy.zip | Bin .../compile/return-all.sol-0.6.0-compact.zip | Bin .../compile/return-all.sol-0.6.0-legacy.zip | Bin .../compile/return-all.sol-0.6.1-compact.zip | Bin .../compile/return-all.sol-0.6.1-legacy.zip | Bin .../compile/return-all.sol-0.6.10-compact.zip | Bin .../compile/return-all.sol-0.6.10-legacy.zip | Bin .../compile/return-all.sol-0.6.11-compact.zip | Bin .../compile/return-all.sol-0.6.11-legacy.zip | Bin .../compile/return-all.sol-0.6.12-compact.zip | Bin .../compile/return-all.sol-0.6.12-legacy.zip | Bin .../compile/return-all.sol-0.6.2-compact.zip | Bin .../compile/return-all.sol-0.6.2-legacy.zip | Bin .../compile/return-all.sol-0.6.3-compact.zip | Bin .../compile/return-all.sol-0.6.3-legacy.zip | Bin .../compile/return-all.sol-0.6.4-compact.zip | Bin .../compile/return-all.sol-0.6.4-legacy.zip | Bin .../compile/return-all.sol-0.6.5-compact.zip | Bin .../compile/return-all.sol-0.6.5-legacy.zip | Bin .../compile/return-all.sol-0.6.6-compact.zip | Bin .../compile/return-all.sol-0.6.6-legacy.zip | Bin .../compile/return-all.sol-0.6.7-compact.zip | Bin .../compile/return-all.sol-0.6.7-legacy.zip | Bin .../compile/return-all.sol-0.6.8-compact.zip | Bin .../compile/return-all.sol-0.6.8-legacy.zip | Bin .../compile/return-all.sol-0.6.9-compact.zip | Bin .../compile/return-all.sol-0.6.9-legacy.zip | Bin .../compile/return-all.sol-0.7.0-compact.zip | Bin .../compile/return-all.sol-0.7.0-legacy.zip | Bin .../compile/return-all.sol-0.7.1-compact.zip | Bin .../compile/return-all.sol-0.7.1-legacy.zip | Bin .../compile/return-all.sol-0.7.2-compact.zip | Bin .../compile/return-all.sol-0.7.2-legacy.zip | Bin .../compile/return-all.sol-0.7.3-compact.zip | Bin .../compile/return-all.sol-0.7.3-legacy.zip | Bin .../compile/return-all.sol-0.7.4-compact.zip | Bin .../compile/return-all.sol-0.7.4-legacy.zip | Bin .../compile/return-all.sol-0.7.5-compact.zip | Bin .../compile/return-all.sol-0.7.5-legacy.zip | Bin .../compile/return-all.sol-0.7.6-compact.zip | Bin .../compile/return-all.sol-0.7.6-legacy.zip | Bin .../compile/return-all.sol-0.8.0-compact.zip | Bin .../compile/return-all.sol-0.8.1-compact.zip | Bin .../compile/return-all.sol-0.8.10-compact.zip | Bin .../compile/return-all.sol-0.8.11-compact.zip | Bin .../compile/return-all.sol-0.8.12-compact.zip | Bin .../compile/return-all.sol-0.8.13-compact.zip | Bin .../compile/return-all.sol-0.8.14-compact.zip | Bin .../compile/return-all.sol-0.8.15-compact.zip | Bin .../compile/return-all.sol-0.8.2-compact.zip | Bin .../compile/return-all.sol-0.8.3-compact.zip | Bin .../compile/return-all.sol-0.8.4-compact.zip | Bin .../compile/return-all.sol-0.8.5-compact.zip | Bin .../compile/return-all.sol-0.8.6-compact.zip | Bin .../compile/return-all.sol-0.8.7-compact.zip | Bin .../compile/return-all.sol-0.8.8-compact.zip | Bin .../compile/return-all.sol-0.8.9-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.0-legacy.zip | Bin .../compile/scope-0.4.0.sol-0.4.1-legacy.zip | Bin .../compile/scope-0.4.0.sol-0.4.10-legacy.zip | Bin .../compile/scope-0.4.0.sol-0.4.11-legacy.zip | Bin .../scope-0.4.0.sol-0.4.12-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.12-legacy.zip | Bin .../scope-0.4.0.sol-0.4.13-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.13-legacy.zip | Bin .../scope-0.4.0.sol-0.4.14-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.14-legacy.zip | Bin .../scope-0.4.0.sol-0.4.15-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.15-legacy.zip | Bin .../scope-0.4.0.sol-0.4.16-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.16-legacy.zip | Bin .../scope-0.4.0.sol-0.4.17-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.17-legacy.zip | Bin .../scope-0.4.0.sol-0.4.18-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.18-legacy.zip | Bin .../scope-0.4.0.sol-0.4.19-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.19-legacy.zip | Bin .../compile/scope-0.4.0.sol-0.4.2-legacy.zip | Bin .../scope-0.4.0.sol-0.4.20-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.20-legacy.zip | Bin .../scope-0.4.0.sol-0.4.21-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.21-legacy.zip | Bin .../scope-0.4.0.sol-0.4.22-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.22-legacy.zip | Bin .../scope-0.4.0.sol-0.4.23-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.23-legacy.zip | Bin .../scope-0.4.0.sol-0.4.24-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.24-legacy.zip | Bin .../scope-0.4.0.sol-0.4.25-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.25-legacy.zip | Bin .../scope-0.4.0.sol-0.4.26-compact.zip | Bin .../compile/scope-0.4.0.sol-0.4.26-legacy.zip | Bin .../compile/scope-0.4.0.sol-0.4.3-legacy.zip | Bin .../compile/scope-0.4.0.sol-0.4.4-legacy.zip | Bin .../compile/scope-0.4.0.sol-0.4.5-legacy.zip | Bin .../compile/scope-0.4.0.sol-0.4.6-legacy.zip | Bin .../compile/scope-0.4.0.sol-0.4.7-legacy.zip | Bin .../compile/scope-0.4.0.sol-0.4.8-legacy.zip | Bin .../compile/scope-0.4.0.sol-0.4.9-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.5.0-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.0-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.5.1-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.1-legacy.zip | Bin .../scope-0.5.0.sol-0.5.10-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.10-legacy.zip | Bin .../scope-0.5.0.sol-0.5.11-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.11-legacy.zip | Bin .../scope-0.5.0.sol-0.5.12-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.12-legacy.zip | Bin .../scope-0.5.0.sol-0.5.13-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.13-legacy.zip | Bin .../scope-0.5.0.sol-0.5.14-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.14-legacy.zip | Bin .../scope-0.5.0.sol-0.5.15-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.15-legacy.zip | Bin .../scope-0.5.0.sol-0.5.16-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.16-legacy.zip | Bin .../scope-0.5.0.sol-0.5.17-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.17-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.5.2-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.2-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.5.3-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.3-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.5.4-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.4-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.5.5-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.5-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.5.6-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.6-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.5.7-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.7-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.5.8-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.8-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.5.9-compact.zip | Bin .../compile/scope-0.5.0.sol-0.5.9-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.6.0-compact.zip | Bin .../compile/scope-0.5.0.sol-0.6.0-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.6.1-compact.zip | Bin .../compile/scope-0.5.0.sol-0.6.1-legacy.zip | Bin .../scope-0.5.0.sol-0.6.10-compact.zip | Bin .../compile/scope-0.5.0.sol-0.6.10-legacy.zip | Bin .../scope-0.5.0.sol-0.6.11-compact.zip | Bin .../compile/scope-0.5.0.sol-0.6.11-legacy.zip | Bin .../scope-0.5.0.sol-0.6.12-compact.zip | Bin .../compile/scope-0.5.0.sol-0.6.12-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.6.2-compact.zip | Bin .../compile/scope-0.5.0.sol-0.6.2-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.6.3-compact.zip | Bin .../compile/scope-0.5.0.sol-0.6.3-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.6.4-compact.zip | Bin .../compile/scope-0.5.0.sol-0.6.4-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.6.5-compact.zip | Bin .../compile/scope-0.5.0.sol-0.6.5-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.6.6-compact.zip | Bin .../compile/scope-0.5.0.sol-0.6.6-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.6.7-compact.zip | Bin .../compile/scope-0.5.0.sol-0.6.7-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.6.8-compact.zip | Bin .../compile/scope-0.5.0.sol-0.6.8-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.6.9-compact.zip | Bin .../compile/scope-0.5.0.sol-0.6.9-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.7.0-compact.zip | Bin .../compile/scope-0.5.0.sol-0.7.0-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.7.1-compact.zip | Bin .../compile/scope-0.5.0.sol-0.7.1-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.7.2-compact.zip | Bin .../compile/scope-0.5.0.sol-0.7.2-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.7.3-compact.zip | Bin .../compile/scope-0.5.0.sol-0.7.3-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.7.4-compact.zip | Bin .../compile/scope-0.5.0.sol-0.7.4-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.7.5-compact.zip | Bin .../compile/scope-0.5.0.sol-0.7.5-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.7.6-compact.zip | Bin .../compile/scope-0.5.0.sol-0.7.6-legacy.zip | Bin .../compile/scope-0.5.0.sol-0.8.0-compact.zip | Bin .../compile/scope-0.5.0.sol-0.8.1-compact.zip | Bin .../scope-0.5.0.sol-0.8.10-compact.zip | Bin .../scope-0.5.0.sol-0.8.11-compact.zip | Bin .../scope-0.5.0.sol-0.8.12-compact.zip | Bin .../scope-0.5.0.sol-0.8.13-compact.zip | Bin .../scope-0.5.0.sol-0.8.14-compact.zip | Bin .../scope-0.5.0.sol-0.8.15-compact.zip | Bin .../compile/scope-0.5.0.sol-0.8.2-compact.zip | Bin .../compile/scope-0.5.0.sol-0.8.3-compact.zip | Bin .../compile/scope-0.5.0.sol-0.8.4-compact.zip | Bin .../compile/scope-0.5.0.sol-0.8.5-compact.zip | Bin .../compile/scope-0.5.0.sol-0.8.6-compact.zip | Bin .../compile/scope-0.5.0.sol-0.8.7-compact.zip | Bin .../compile/scope-0.5.0.sol-0.8.8-compact.zip | Bin .../compile/scope-0.5.0.sol-0.8.9-compact.zip | Bin .../compile/struct-0.4.0.sol-0.4.0-legacy.zip | Bin .../compile/struct-0.4.0.sol-0.4.1-legacy.zip | Bin .../struct-0.4.0.sol-0.4.10-legacy.zip | Bin .../struct-0.4.0.sol-0.4.11-legacy.zip | Bin .../struct-0.4.0.sol-0.4.12-compact.zip | Bin .../struct-0.4.0.sol-0.4.12-legacy.zip | Bin .../struct-0.4.0.sol-0.4.13-compact.zip | Bin .../struct-0.4.0.sol-0.4.13-legacy.zip | Bin .../struct-0.4.0.sol-0.4.14-compact.zip | Bin .../struct-0.4.0.sol-0.4.14-legacy.zip | Bin .../struct-0.4.0.sol-0.4.15-compact.zip | Bin .../struct-0.4.0.sol-0.4.15-legacy.zip | Bin .../struct-0.4.0.sol-0.4.16-compact.zip | Bin .../struct-0.4.0.sol-0.4.16-legacy.zip | Bin .../struct-0.4.0.sol-0.4.17-compact.zip | Bin .../struct-0.4.0.sol-0.4.17-legacy.zip | Bin .../struct-0.4.0.sol-0.4.18-compact.zip | Bin .../struct-0.4.0.sol-0.4.18-legacy.zip | Bin .../struct-0.4.0.sol-0.4.19-compact.zip | Bin .../struct-0.4.0.sol-0.4.19-legacy.zip | Bin .../compile/struct-0.4.0.sol-0.4.2-legacy.zip | Bin .../struct-0.4.0.sol-0.4.20-compact.zip | Bin .../struct-0.4.0.sol-0.4.20-legacy.zip | Bin .../struct-0.4.0.sol-0.4.21-compact.zip | Bin .../struct-0.4.0.sol-0.4.21-legacy.zip | Bin .../struct-0.4.0.sol-0.4.22-compact.zip | Bin .../struct-0.4.0.sol-0.4.22-legacy.zip | Bin .../struct-0.4.0.sol-0.4.23-compact.zip | Bin .../struct-0.4.0.sol-0.4.23-legacy.zip | Bin .../struct-0.4.0.sol-0.4.24-compact.zip | Bin .../struct-0.4.0.sol-0.4.24-legacy.zip | Bin .../struct-0.4.0.sol-0.4.25-compact.zip | Bin .../struct-0.4.0.sol-0.4.25-legacy.zip | Bin .../struct-0.4.0.sol-0.4.26-compact.zip | Bin .../struct-0.4.0.sol-0.4.26-legacy.zip | Bin .../compile/struct-0.4.0.sol-0.4.3-legacy.zip | Bin .../compile/struct-0.4.0.sol-0.4.4-legacy.zip | Bin .../compile/struct-0.4.0.sol-0.4.5-legacy.zip | Bin .../compile/struct-0.4.0.sol-0.4.6-legacy.zip | Bin .../compile/struct-0.4.0.sol-0.4.7-legacy.zip | Bin .../compile/struct-0.4.0.sol-0.4.8-legacy.zip | Bin .../compile/struct-0.4.0.sol-0.4.9-legacy.zip | Bin .../struct-0.4.0.sol-0.5.0-compact.zip | Bin .../compile/struct-0.4.0.sol-0.5.0-legacy.zip | Bin .../struct-0.4.0.sol-0.5.1-compact.zip | Bin .../compile/struct-0.4.0.sol-0.5.1-legacy.zip | Bin .../struct-0.4.0.sol-0.5.10-compact.zip | Bin .../struct-0.4.0.sol-0.5.10-legacy.zip | Bin .../struct-0.4.0.sol-0.5.11-compact.zip | Bin .../struct-0.4.0.sol-0.5.11-legacy.zip | Bin .../struct-0.4.0.sol-0.5.12-compact.zip | Bin .../struct-0.4.0.sol-0.5.12-legacy.zip | Bin .../struct-0.4.0.sol-0.5.13-compact.zip | Bin .../struct-0.4.0.sol-0.5.13-legacy.zip | Bin .../struct-0.4.0.sol-0.5.14-compact.zip | Bin .../struct-0.4.0.sol-0.5.14-legacy.zip | Bin .../struct-0.4.0.sol-0.5.15-compact.zip | Bin .../struct-0.4.0.sol-0.5.15-legacy.zip | Bin .../struct-0.4.0.sol-0.5.16-compact.zip | Bin .../struct-0.4.0.sol-0.5.16-legacy.zip | Bin .../struct-0.4.0.sol-0.5.17-compact.zip | Bin .../struct-0.4.0.sol-0.5.17-legacy.zip | Bin .../struct-0.4.0.sol-0.5.2-compact.zip | Bin .../compile/struct-0.4.0.sol-0.5.2-legacy.zip | Bin .../struct-0.4.0.sol-0.5.3-compact.zip | Bin .../compile/struct-0.4.0.sol-0.5.3-legacy.zip | Bin .../struct-0.4.0.sol-0.5.4-compact.zip | Bin .../compile/struct-0.4.0.sol-0.5.4-legacy.zip | Bin .../struct-0.4.0.sol-0.5.5-compact.zip | Bin .../compile/struct-0.4.0.sol-0.5.5-legacy.zip | Bin .../struct-0.4.0.sol-0.5.6-compact.zip | Bin .../compile/struct-0.4.0.sol-0.5.6-legacy.zip | Bin .../struct-0.4.0.sol-0.5.7-compact.zip | Bin .../compile/struct-0.4.0.sol-0.5.7-legacy.zip | Bin .../struct-0.4.0.sol-0.5.8-compact.zip | Bin .../compile/struct-0.4.0.sol-0.5.8-legacy.zip | Bin .../struct-0.4.0.sol-0.5.9-compact.zip | Bin .../compile/struct-0.4.0.sol-0.5.9-legacy.zip | Bin .../struct-0.6.0.sol-0.6.0-compact.zip | Bin .../struct-0.6.0.sol-0.6.1-compact.zip | Bin .../struct-0.6.0.sol-0.6.10-compact.zip | Bin .../struct-0.6.0.sol-0.6.11-compact.zip | Bin .../struct-0.6.0.sol-0.6.12-compact.zip | Bin .../struct-0.6.0.sol-0.6.2-compact.zip | Bin .../struct-0.6.0.sol-0.6.3-compact.zip | Bin .../struct-0.6.0.sol-0.6.4-compact.zip | Bin .../struct-0.6.0.sol-0.6.5-compact.zip | Bin .../struct-0.6.0.sol-0.6.6-compact.zip | Bin .../struct-0.6.0.sol-0.6.7-compact.zip | Bin .../struct-0.6.0.sol-0.6.8-compact.zip | Bin .../struct-0.6.0.sol-0.6.9-compact.zip | Bin .../struct-0.6.0.sol-0.7.0-compact.zip | Bin .../struct-0.6.0.sol-0.7.1-compact.zip | Bin .../struct-0.6.0.sol-0.7.2-compact.zip | Bin .../struct-0.6.0.sol-0.7.3-compact.zip | Bin .../struct-0.6.0.sol-0.7.4-compact.zip | Bin .../struct-0.6.0.sol-0.7.5-compact.zip | Bin .../struct-0.6.0.sol-0.7.6-compact.zip | Bin .../struct-0.6.0.sol-0.8.0-compact.zip | Bin .../struct-0.6.0.sol-0.8.1-compact.zip | Bin .../struct-0.6.0.sol-0.8.10-compact.zip | Bin .../struct-0.6.0.sol-0.8.11-compact.zip | Bin .../struct-0.6.0.sol-0.8.12-compact.zip | Bin .../struct-0.6.0.sol-0.8.13-compact.zip | Bin .../struct-0.6.0.sol-0.8.14-compact.zip | Bin .../struct-0.6.0.sol-0.8.15-compact.zip | Bin .../struct-0.6.0.sol-0.8.2-compact.zip | Bin .../struct-0.6.0.sol-0.8.3-compact.zip | Bin .../struct-0.6.0.sol-0.8.4-compact.zip | Bin .../struct-0.6.0.sol-0.8.5-compact.zip | Bin .../struct-0.6.0.sol-0.8.6-compact.zip | Bin .../struct-0.6.0.sol-0.8.7-compact.zip | Bin .../struct-0.6.0.sol-0.8.8-compact.zip | Bin .../struct-0.6.0.sol-0.8.9-compact.zip | Bin .../ternary-with-max.sol-0.8.15-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.0-legacy.zip | Bin .../compile/throw-0.4.0.sol-0.4.1-legacy.zip | Bin .../compile/throw-0.4.0.sol-0.4.10-legacy.zip | Bin .../compile/throw-0.4.0.sol-0.4.11-legacy.zip | Bin .../throw-0.4.0.sol-0.4.12-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.12-legacy.zip | Bin .../throw-0.4.0.sol-0.4.13-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.13-legacy.zip | Bin .../throw-0.4.0.sol-0.4.14-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.14-legacy.zip | Bin .../throw-0.4.0.sol-0.4.15-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.15-legacy.zip | Bin .../throw-0.4.0.sol-0.4.16-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.16-legacy.zip | Bin .../throw-0.4.0.sol-0.4.17-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.17-legacy.zip | Bin .../throw-0.4.0.sol-0.4.18-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.18-legacy.zip | Bin .../throw-0.4.0.sol-0.4.19-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.19-legacy.zip | Bin .../compile/throw-0.4.0.sol-0.4.2-legacy.zip | Bin .../throw-0.4.0.sol-0.4.20-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.20-legacy.zip | Bin .../throw-0.4.0.sol-0.4.21-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.21-legacy.zip | Bin .../throw-0.4.0.sol-0.4.22-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.22-legacy.zip | Bin .../throw-0.4.0.sol-0.4.23-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.23-legacy.zip | Bin .../throw-0.4.0.sol-0.4.24-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.24-legacy.zip | Bin .../throw-0.4.0.sol-0.4.25-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.25-legacy.zip | Bin .../throw-0.4.0.sol-0.4.26-compact.zip | Bin .../compile/throw-0.4.0.sol-0.4.26-legacy.zip | Bin .../compile/throw-0.4.0.sol-0.4.3-legacy.zip | Bin .../compile/throw-0.4.0.sol-0.4.4-legacy.zip | Bin .../compile/throw-0.4.0.sol-0.4.5-legacy.zip | Bin .../compile/throw-0.4.0.sol-0.4.6-legacy.zip | Bin .../compile/throw-0.4.0.sol-0.4.7-legacy.zip | Bin .../compile/throw-0.4.0.sol-0.4.8-legacy.zip | Bin .../compile/throw-0.4.0.sol-0.4.9-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.5.0-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.0-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.5.1-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.1-legacy.zip | Bin .../throw-0.5.0.sol-0.5.10-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.10-legacy.zip | Bin .../throw-0.5.0.sol-0.5.11-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.11-legacy.zip | Bin .../throw-0.5.0.sol-0.5.12-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.12-legacy.zip | Bin .../throw-0.5.0.sol-0.5.13-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.13-legacy.zip | Bin .../throw-0.5.0.sol-0.5.14-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.14-legacy.zip | Bin .../throw-0.5.0.sol-0.5.15-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.15-legacy.zip | Bin .../throw-0.5.0.sol-0.5.16-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.16-legacy.zip | Bin .../throw-0.5.0.sol-0.5.17-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.17-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.5.2-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.2-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.5.3-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.3-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.5.4-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.4-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.5.5-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.5-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.5.6-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.6-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.5.7-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.7-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.5.8-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.8-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.5.9-compact.zip | Bin .../compile/throw-0.5.0.sol-0.5.9-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.6.0-compact.zip | Bin .../compile/throw-0.5.0.sol-0.6.0-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.6.1-compact.zip | Bin .../compile/throw-0.5.0.sol-0.6.1-legacy.zip | Bin .../throw-0.5.0.sol-0.6.10-compact.zip | Bin .../compile/throw-0.5.0.sol-0.6.10-legacy.zip | Bin .../throw-0.5.0.sol-0.6.11-compact.zip | Bin .../compile/throw-0.5.0.sol-0.6.11-legacy.zip | Bin .../throw-0.5.0.sol-0.6.12-compact.zip | Bin .../compile/throw-0.5.0.sol-0.6.12-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.6.2-compact.zip | Bin .../compile/throw-0.5.0.sol-0.6.2-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.6.3-compact.zip | Bin .../compile/throw-0.5.0.sol-0.6.3-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.6.4-compact.zip | Bin .../compile/throw-0.5.0.sol-0.6.4-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.6.5-compact.zip | Bin .../compile/throw-0.5.0.sol-0.6.5-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.6.6-compact.zip | Bin .../compile/throw-0.5.0.sol-0.6.6-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.6.7-compact.zip | Bin .../compile/throw-0.5.0.sol-0.6.7-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.6.8-compact.zip | Bin .../compile/throw-0.5.0.sol-0.6.8-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.6.9-compact.zip | Bin .../compile/throw-0.5.0.sol-0.6.9-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.7.0-compact.zip | Bin .../compile/throw-0.5.0.sol-0.7.0-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.7.1-compact.zip | Bin .../compile/throw-0.5.0.sol-0.7.1-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.7.2-compact.zip | Bin .../compile/throw-0.5.0.sol-0.7.2-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.7.3-compact.zip | Bin .../compile/throw-0.5.0.sol-0.7.3-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.7.4-compact.zip | Bin .../compile/throw-0.5.0.sol-0.7.4-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.7.5-compact.zip | Bin .../compile/throw-0.5.0.sol-0.7.5-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.7.6-compact.zip | Bin .../compile/throw-0.5.0.sol-0.7.6-legacy.zip | Bin .../compile/throw-0.5.0.sol-0.8.0-compact.zip | Bin .../compile/throw-0.5.0.sol-0.8.1-compact.zip | Bin .../throw-0.5.0.sol-0.8.10-compact.zip | Bin .../throw-0.5.0.sol-0.8.11-compact.zip | Bin .../throw-0.5.0.sol-0.8.12-compact.zip | Bin .../throw-0.5.0.sol-0.8.13-compact.zip | Bin .../throw-0.5.0.sol-0.8.14-compact.zip | Bin .../throw-0.5.0.sol-0.8.15-compact.zip | Bin .../compile/throw-0.5.0.sol-0.8.2-compact.zip | Bin .../compile/throw-0.5.0.sol-0.8.3-compact.zip | Bin .../compile/throw-0.5.0.sol-0.8.4-compact.zip | Bin .../compile/throw-0.5.0.sol-0.8.5-compact.zip | Bin .../compile/throw-0.5.0.sol-0.8.6-compact.zip | Bin .../compile/throw-0.5.0.sol-0.8.7-compact.zip | Bin .../compile/throw-0.5.0.sol-0.8.8-compact.zip | Bin .../compile/throw-0.5.0.sol-0.8.9-compact.zip | Bin .../top-level-0.4.0.sol-0.4.0-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.1-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.10-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.11-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.12-compact.zip | Bin .../top-level-0.4.0.sol-0.4.12-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.13-compact.zip | Bin .../top-level-0.4.0.sol-0.4.13-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.14-compact.zip | Bin .../top-level-0.4.0.sol-0.4.14-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.15-compact.zip | Bin .../top-level-0.4.0.sol-0.4.15-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.16-compact.zip | Bin .../top-level-0.4.0.sol-0.4.16-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.17-compact.zip | Bin .../top-level-0.4.0.sol-0.4.17-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.18-compact.zip | Bin .../top-level-0.4.0.sol-0.4.18-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.19-compact.zip | Bin .../top-level-0.4.0.sol-0.4.19-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.2-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.20-compact.zip | Bin .../top-level-0.4.0.sol-0.4.20-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.21-compact.zip | Bin .../top-level-0.4.0.sol-0.4.21-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.22-compact.zip | Bin .../top-level-0.4.0.sol-0.4.22-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.23-compact.zip | Bin .../top-level-0.4.0.sol-0.4.23-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.24-compact.zip | Bin .../top-level-0.4.0.sol-0.4.24-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.25-compact.zip | Bin .../top-level-0.4.0.sol-0.4.25-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.26-compact.zip | Bin .../top-level-0.4.0.sol-0.4.26-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.3-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.4-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.5-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.6-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.7-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.8-legacy.zip | Bin .../top-level-0.4.0.sol-0.4.9-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.0-compact.zip | Bin .../top-level-0.4.0.sol-0.5.0-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.1-compact.zip | Bin .../top-level-0.4.0.sol-0.5.1-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.10-compact.zip | Bin .../top-level-0.4.0.sol-0.5.10-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.11-compact.zip | Bin .../top-level-0.4.0.sol-0.5.11-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.12-compact.zip | Bin .../top-level-0.4.0.sol-0.5.12-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.13-compact.zip | Bin .../top-level-0.4.0.sol-0.5.13-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.14-compact.zip | Bin .../top-level-0.4.0.sol-0.5.14-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.15-compact.zip | Bin .../top-level-0.4.0.sol-0.5.15-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.16-compact.zip | Bin .../top-level-0.4.0.sol-0.5.16-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.17-compact.zip | Bin .../top-level-0.4.0.sol-0.5.17-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.2-compact.zip | Bin .../top-level-0.4.0.sol-0.5.2-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.3-compact.zip | Bin .../top-level-0.4.0.sol-0.5.3-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.4-compact.zip | Bin .../top-level-0.4.0.sol-0.5.4-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.5-compact.zip | Bin .../top-level-0.4.0.sol-0.5.5-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.6-compact.zip | Bin .../top-level-0.4.0.sol-0.5.6-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.7-compact.zip | Bin .../top-level-0.4.0.sol-0.5.7-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.8-compact.zip | Bin .../top-level-0.4.0.sol-0.5.8-legacy.zip | Bin .../top-level-0.4.0.sol-0.5.9-compact.zip | Bin .../top-level-0.4.0.sol-0.5.9-legacy.zip | Bin .../top-level-0.4.0.sol-0.6.0-compact.zip | Bin .../top-level-0.4.0.sol-0.6.0-legacy.zip | Bin .../top-level-0.4.0.sol-0.6.1-compact.zip | Bin .../top-level-0.4.0.sol-0.6.1-legacy.zip | Bin .../top-level-0.4.0.sol-0.6.10-compact.zip | Bin .../top-level-0.4.0.sol-0.6.10-legacy.zip | Bin .../top-level-0.4.0.sol-0.6.11-compact.zip | Bin .../top-level-0.4.0.sol-0.6.11-legacy.zip | Bin .../top-level-0.4.0.sol-0.6.12-compact.zip | Bin .../top-level-0.4.0.sol-0.6.12-legacy.zip | Bin .../top-level-0.4.0.sol-0.6.2-compact.zip | Bin .../top-level-0.4.0.sol-0.6.2-legacy.zip | Bin .../top-level-0.4.0.sol-0.6.3-compact.zip | Bin .../top-level-0.4.0.sol-0.6.3-legacy.zip | Bin .../top-level-0.4.0.sol-0.6.4-compact.zip | Bin .../top-level-0.4.0.sol-0.6.4-legacy.zip | Bin .../top-level-0.4.0.sol-0.6.5-compact.zip | Bin .../top-level-0.4.0.sol-0.6.5-legacy.zip | Bin .../top-level-0.4.0.sol-0.6.6-compact.zip | Bin .../top-level-0.4.0.sol-0.6.6-legacy.zip | Bin .../top-level-0.4.0.sol-0.6.7-compact.zip | Bin .../top-level-0.4.0.sol-0.6.7-legacy.zip | Bin .../top-level-0.4.0.sol-0.6.8-compact.zip | Bin .../top-level-0.4.0.sol-0.6.8-legacy.zip | Bin .../top-level-0.4.0.sol-0.6.9-compact.zip | Bin .../top-level-0.4.0.sol-0.6.9-legacy.zip | Bin .../top-level-0.4.0.sol-0.7.0-compact.zip | Bin .../top-level-0.4.0.sol-0.7.0-legacy.zip | Bin .../top-level-0.7.1.sol-0.7.1-compact.zip | Bin .../top-level-0.7.1.sol-0.7.1-legacy.zip | Bin .../top-level-0.7.1.sol-0.7.2-compact.zip | Bin .../top-level-0.7.1.sol-0.7.2-legacy.zip | Bin .../top-level-0.7.1.sol-0.7.3-compact.zip | Bin .../top-level-0.7.1.sol-0.7.3-legacy.zip | Bin .../top-level-0.7.4.sol-0.7.4-compact.zip | Bin .../top-level-0.7.4.sol-0.7.4-legacy.zip | Bin .../top-level-0.7.4.sol-0.7.5-compact.zip | Bin .../top-level-0.7.4.sol-0.7.5-legacy.zip | Bin .../top-level-0.7.4.sol-0.7.6-compact.zip | Bin .../top-level-0.7.4.sol-0.7.6-legacy.zip | Bin .../top-level-0.7.4.sol-0.8.0-compact.zip | Bin .../top-level-0.7.4.sol-0.8.1-compact.zip | Bin .../top-level-0.7.4.sol-0.8.10-compact.zip | Bin .../top-level-0.7.4.sol-0.8.11-compact.zip | Bin .../top-level-0.7.4.sol-0.8.12-compact.zip | Bin .../top-level-0.7.4.sol-0.8.13-compact.zip | Bin .../top-level-0.7.4.sol-0.8.14-compact.zip | Bin .../top-level-0.7.4.sol-0.8.15-compact.zip | Bin .../top-level-0.7.4.sol-0.8.2-compact.zip | Bin .../top-level-0.7.4.sol-0.8.3-compact.zip | Bin .../top-level-0.7.4.sol-0.8.4-compact.zip | Bin .../top-level-0.7.4.sol-0.8.5-compact.zip | Bin .../top-level-0.7.4.sol-0.8.6-compact.zip | Bin .../top-level-0.7.4.sol-0.8.7-compact.zip | Bin .../top-level-0.7.4.sol-0.8.8-compact.zip | Bin .../top-level-0.7.4.sol-0.8.9-compact.zip | Bin ...op-level-import-0.4.0.sol-0.4.0-legacy.zip | Bin ...op-level-import-0.4.0.sol-0.4.1-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.4.10-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.4.11-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.12-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.12-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.13-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.13-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.14-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.14-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.15-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.15-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.16-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.16-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.17-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.17-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.18-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.18-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.19-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.19-legacy.zip | Bin ...op-level-import-0.4.0.sol-0.4.2-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.20-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.20-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.21-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.21-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.22-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.22-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.23-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.23-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.24-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.24-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.25-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.25-legacy.zip | Bin ...-level-import-0.4.0.sol-0.4.26-compact.zip | Bin ...p-level-import-0.4.0.sol-0.4.26-legacy.zip | Bin ...op-level-import-0.4.0.sol-0.4.3-legacy.zip | Bin ...op-level-import-0.4.0.sol-0.4.4-legacy.zip | Bin ...op-level-import-0.4.0.sol-0.4.5-legacy.zip | Bin ...op-level-import-0.4.0.sol-0.4.6-legacy.zip | Bin ...op-level-import-0.4.0.sol-0.4.7-legacy.zip | Bin ...op-level-import-0.4.0.sol-0.4.8-legacy.zip | Bin ...op-level-import-0.4.0.sol-0.4.9-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.5.0-compact.zip | Bin ...op-level-import-0.4.0.sol-0.5.0-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.5.1-compact.zip | Bin ...op-level-import-0.4.0.sol-0.5.1-legacy.zip | Bin ...-level-import-0.4.0.sol-0.5.10-compact.zip | Bin ...p-level-import-0.4.0.sol-0.5.10-legacy.zip | Bin ...-level-import-0.4.0.sol-0.5.11-compact.zip | Bin ...p-level-import-0.4.0.sol-0.5.11-legacy.zip | Bin ...-level-import-0.4.0.sol-0.5.12-compact.zip | Bin ...p-level-import-0.4.0.sol-0.5.12-legacy.zip | Bin ...-level-import-0.4.0.sol-0.5.13-compact.zip | Bin ...p-level-import-0.4.0.sol-0.5.13-legacy.zip | Bin ...-level-import-0.4.0.sol-0.5.14-compact.zip | Bin ...p-level-import-0.4.0.sol-0.5.14-legacy.zip | Bin ...-level-import-0.4.0.sol-0.5.15-compact.zip | Bin ...p-level-import-0.4.0.sol-0.5.15-legacy.zip | Bin ...-level-import-0.4.0.sol-0.5.16-compact.zip | Bin ...p-level-import-0.4.0.sol-0.5.16-legacy.zip | Bin ...-level-import-0.4.0.sol-0.5.17-compact.zip | Bin ...p-level-import-0.4.0.sol-0.5.17-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.5.2-compact.zip | Bin ...op-level-import-0.4.0.sol-0.5.2-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.5.3-compact.zip | Bin ...op-level-import-0.4.0.sol-0.5.3-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.5.4-compact.zip | Bin ...op-level-import-0.4.0.sol-0.5.4-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.5.5-compact.zip | Bin ...op-level-import-0.4.0.sol-0.5.5-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.5.6-compact.zip | Bin ...op-level-import-0.4.0.sol-0.5.6-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.5.7-compact.zip | Bin ...op-level-import-0.4.0.sol-0.5.7-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.5.8-compact.zip | Bin ...op-level-import-0.4.0.sol-0.5.8-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.5.9-compact.zip | Bin ...op-level-import-0.4.0.sol-0.5.9-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.6.0-compact.zip | Bin ...op-level-import-0.4.0.sol-0.6.0-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.6.1-compact.zip | Bin ...op-level-import-0.4.0.sol-0.6.1-legacy.zip | Bin ...-level-import-0.4.0.sol-0.6.10-compact.zip | Bin ...p-level-import-0.4.0.sol-0.6.10-legacy.zip | Bin ...-level-import-0.4.0.sol-0.6.11-compact.zip | Bin ...p-level-import-0.4.0.sol-0.6.11-legacy.zip | Bin ...-level-import-0.4.0.sol-0.6.12-compact.zip | Bin ...p-level-import-0.4.0.sol-0.6.12-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.6.2-compact.zip | Bin ...op-level-import-0.4.0.sol-0.6.2-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.6.3-compact.zip | Bin ...op-level-import-0.4.0.sol-0.6.3-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.6.4-compact.zip | Bin ...op-level-import-0.4.0.sol-0.6.4-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.6.5-compact.zip | Bin ...op-level-import-0.4.0.sol-0.6.5-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.6.6-compact.zip | Bin ...op-level-import-0.4.0.sol-0.6.6-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.6.7-compact.zip | Bin ...op-level-import-0.4.0.sol-0.6.7-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.6.8-compact.zip | Bin ...op-level-import-0.4.0.sol-0.6.8-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.6.9-compact.zip | Bin ...op-level-import-0.4.0.sol-0.6.9-legacy.zip | Bin ...p-level-import-0.4.0.sol-0.7.0-compact.zip | Bin ...op-level-import-0.4.0.sol-0.7.0-legacy.zip | Bin ...p-level-import-0.7.1.sol-0.7.1-compact.zip | Bin ...op-level-import-0.7.1.sol-0.7.1-legacy.zip | Bin ...p-level-import-0.7.1.sol-0.7.2-compact.zip | Bin ...op-level-import-0.7.1.sol-0.7.2-legacy.zip | Bin ...p-level-import-0.7.1.sol-0.7.3-compact.zip | Bin ...op-level-import-0.7.1.sol-0.7.3-legacy.zip | Bin ...p-level-import-0.7.1.sol-0.7.4-compact.zip | Bin ...op-level-import-0.7.1.sol-0.7.4-legacy.zip | Bin ...p-level-import-0.7.1.sol-0.7.5-compact.zip | Bin ...op-level-import-0.7.1.sol-0.7.5-legacy.zip | Bin ...p-level-import-0.7.1.sol-0.7.6-compact.zip | Bin ...op-level-import-0.7.1.sol-0.7.6-legacy.zip | Bin ...p-level-import-0.7.1.sol-0.8.0-compact.zip | Bin ...p-level-import-0.7.1.sol-0.8.1-compact.zip | Bin ...-level-import-0.7.1.sol-0.8.10-compact.zip | Bin ...-level-import-0.7.1.sol-0.8.11-compact.zip | Bin ...-level-import-0.7.1.sol-0.8.12-compact.zip | Bin ...-level-import-0.7.1.sol-0.8.13-compact.zip | Bin ...-level-import-0.7.1.sol-0.8.14-compact.zip | Bin ...-level-import-0.7.1.sol-0.8.15-compact.zip | Bin ...p-level-import-0.7.1.sol-0.8.2-compact.zip | Bin ...p-level-import-0.7.1.sol-0.8.3-compact.zip | Bin ...p-level-import-0.7.1.sol-0.8.4-compact.zip | Bin ...p-level-import-0.7.1.sol-0.8.5-compact.zip | Bin ...p-level-import-0.7.1.sol-0.8.6-compact.zip | Bin ...p-level-import-0.7.1.sol-0.8.7-compact.zip | Bin ...p-level-import-0.7.1.sol-0.8.8-compact.zip | Bin ...p-level-import-0.7.1.sol-0.8.9-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.4.0-legacy.zip | Bin ...evel-import-bis-0.4.0.sol-0.4.1-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.10-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.11-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.12-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.12-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.13-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.13-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.14-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.14-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.15-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.15-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.16-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.16-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.17-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.17-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.18-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.18-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.19-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.19-legacy.zip | Bin ...evel-import-bis-0.4.0.sol-0.4.2-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.20-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.20-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.21-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.21-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.22-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.22-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.23-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.23-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.24-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.24-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.25-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.25-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.4.26-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.4.26-legacy.zip | Bin ...evel-import-bis-0.4.0.sol-0.4.3-legacy.zip | Bin ...evel-import-bis-0.4.0.sol-0.4.4-legacy.zip | Bin ...evel-import-bis-0.4.0.sol-0.4.5-legacy.zip | Bin ...evel-import-bis-0.4.0.sol-0.4.6-legacy.zip | Bin ...evel-import-bis-0.4.0.sol-0.4.7-legacy.zip | Bin ...evel-import-bis-0.4.0.sol-0.4.8-legacy.zip | Bin ...evel-import-bis-0.4.0.sol-0.4.9-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.0-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.5.0-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.1-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.5.1-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.5.10-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.10-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.5.11-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.11-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.5.12-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.12-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.5.13-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.13-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.5.14-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.14-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.5.15-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.15-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.5.16-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.16-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.5.17-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.17-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.2-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.5.2-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.3-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.5.3-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.4-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.5.4-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.5-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.5.5-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.6-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.5.6-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.7-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.5.7-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.8-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.5.8-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.5.9-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.5.9-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.6.0-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.6.0-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.6.1-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.6.1-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.6.10-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.6.10-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.6.11-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.6.11-legacy.zip | Bin ...el-import-bis-0.4.0.sol-0.6.12-compact.zip | Bin ...vel-import-bis-0.4.0.sol-0.6.12-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.6.2-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.6.2-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.6.3-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.6.3-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.6.4-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.6.4-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.6.5-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.6.5-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.6.6-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.6.6-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.6.7-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.6.7-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.6.8-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.6.8-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.6.9-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.6.9-legacy.zip | Bin ...vel-import-bis-0.4.0.sol-0.7.0-compact.zip | Bin ...evel-import-bis-0.4.0.sol-0.7.0-legacy.zip | Bin ...vel-import-bis-0.7.1.sol-0.7.1-compact.zip | Bin ...evel-import-bis-0.7.1.sol-0.7.1-legacy.zip | Bin ...vel-import-bis-0.7.1.sol-0.7.2-compact.zip | Bin ...evel-import-bis-0.7.1.sol-0.7.2-legacy.zip | Bin ...vel-import-bis-0.7.1.sol-0.7.3-compact.zip | Bin ...evel-import-bis-0.7.1.sol-0.7.3-legacy.zip | Bin ...vel-import-bis-0.7.1.sol-0.7.4-compact.zip | Bin ...evel-import-bis-0.7.1.sol-0.7.4-legacy.zip | Bin ...vel-import-bis-0.7.1.sol-0.7.5-compact.zip | Bin ...evel-import-bis-0.7.1.sol-0.7.5-legacy.zip | Bin ...vel-import-bis-0.7.1.sol-0.7.6-compact.zip | Bin ...evel-import-bis-0.7.1.sol-0.7.6-legacy.zip | Bin ...vel-import-bis-0.7.1.sol-0.8.0-compact.zip | Bin ...vel-import-bis-0.7.1.sol-0.8.1-compact.zip | Bin ...el-import-bis-0.7.1.sol-0.8.10-compact.zip | Bin ...el-import-bis-0.7.1.sol-0.8.11-compact.zip | Bin ...el-import-bis-0.7.1.sol-0.8.12-compact.zip | Bin ...el-import-bis-0.7.1.sol-0.8.13-compact.zip | Bin ...el-import-bis-0.7.1.sol-0.8.14-compact.zip | Bin ...el-import-bis-0.7.1.sol-0.8.15-compact.zip | Bin ...vel-import-bis-0.7.1.sol-0.8.2-compact.zip | Bin ...vel-import-bis-0.7.1.sol-0.8.3-compact.zip | Bin ...vel-import-bis-0.7.1.sol-0.8.4-compact.zip | Bin ...vel-import-bis-0.7.1.sol-0.8.5-compact.zip | Bin ...vel-import-bis-0.7.1.sol-0.8.6-compact.zip | Bin ...vel-import-bis-0.7.1.sol-0.8.7-compact.zip | Bin ...vel-import-bis-0.7.1.sol-0.8.8-compact.zip | Bin ...vel-import-bis-0.7.1.sol-0.8.9-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.4.0-legacy.zip | Bin ...l-nested-import-0.4.0.sol-0.4.1-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.4.10-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.4.11-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.12-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.12-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.13-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.13-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.14-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.14-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.15-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.15-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.16-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.16-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.17-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.17-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.18-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.18-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.19-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.19-legacy.zip | Bin ...l-nested-import-0.4.0.sol-0.4.2-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.20-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.20-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.21-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.21-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.22-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.22-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.23-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.23-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.24-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.24-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.25-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.25-legacy.zip | Bin ...nested-import-0.4.0.sol-0.4.26-compact.zip | Bin ...-nested-import-0.4.0.sol-0.4.26-legacy.zip | Bin ...l-nested-import-0.4.0.sol-0.4.3-legacy.zip | Bin ...l-nested-import-0.4.0.sol-0.4.4-legacy.zip | Bin ...l-nested-import-0.4.0.sol-0.4.5-legacy.zip | Bin ...l-nested-import-0.4.0.sol-0.4.6-legacy.zip | Bin ...l-nested-import-0.4.0.sol-0.4.7-legacy.zip | Bin ...l-nested-import-0.4.0.sol-0.4.8-legacy.zip | Bin ...l-nested-import-0.4.0.sol-0.4.9-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.5.0-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.5.0-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.5.1-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.5.1-legacy.zip | Bin ...nested-import-0.4.0.sol-0.5.10-compact.zip | Bin ...-nested-import-0.4.0.sol-0.5.10-legacy.zip | Bin ...nested-import-0.4.0.sol-0.5.11-compact.zip | Bin ...-nested-import-0.4.0.sol-0.5.11-legacy.zip | Bin ...nested-import-0.4.0.sol-0.5.12-compact.zip | Bin ...-nested-import-0.4.0.sol-0.5.12-legacy.zip | Bin ...nested-import-0.4.0.sol-0.5.13-compact.zip | Bin ...-nested-import-0.4.0.sol-0.5.13-legacy.zip | Bin ...nested-import-0.4.0.sol-0.5.14-compact.zip | Bin ...-nested-import-0.4.0.sol-0.5.14-legacy.zip | Bin ...nested-import-0.4.0.sol-0.5.15-compact.zip | Bin ...-nested-import-0.4.0.sol-0.5.15-legacy.zip | Bin ...nested-import-0.4.0.sol-0.5.16-compact.zip | Bin ...-nested-import-0.4.0.sol-0.5.16-legacy.zip | Bin ...nested-import-0.4.0.sol-0.5.17-compact.zip | Bin ...-nested-import-0.4.0.sol-0.5.17-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.5.2-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.5.2-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.5.3-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.5.3-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.5.4-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.5.4-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.5.5-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.5.5-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.5.6-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.5.6-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.5.7-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.5.7-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.5.8-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.5.8-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.5.9-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.5.9-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.6.0-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.6.0-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.6.1-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.6.1-legacy.zip | Bin ...nested-import-0.4.0.sol-0.6.10-compact.zip | Bin ...-nested-import-0.4.0.sol-0.6.10-legacy.zip | Bin ...nested-import-0.4.0.sol-0.6.11-compact.zip | Bin ...-nested-import-0.4.0.sol-0.6.11-legacy.zip | Bin ...nested-import-0.4.0.sol-0.6.12-compact.zip | Bin ...-nested-import-0.4.0.sol-0.6.12-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.6.2-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.6.2-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.6.3-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.6.3-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.6.4-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.6.4-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.6.5-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.6.5-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.6.6-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.6.6-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.6.7-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.6.7-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.6.8-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.6.8-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.6.9-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.6.9-legacy.zip | Bin ...-nested-import-0.4.0.sol-0.7.0-compact.zip | Bin ...l-nested-import-0.4.0.sol-0.7.0-legacy.zip | Bin ...-nested-import-0.7.1.sol-0.7.1-compact.zip | Bin ...l-nested-import-0.7.1.sol-0.7.1-legacy.zip | Bin ...-nested-import-0.7.1.sol-0.7.2-compact.zip | Bin ...l-nested-import-0.7.1.sol-0.7.2-legacy.zip | Bin ...-nested-import-0.7.1.sol-0.7.3-compact.zip | Bin ...l-nested-import-0.7.1.sol-0.7.3-legacy.zip | Bin ...-nested-import-0.7.1.sol-0.7.4-compact.zip | Bin ...l-nested-import-0.7.1.sol-0.7.4-legacy.zip | Bin ...-nested-import-0.7.1.sol-0.7.5-compact.zip | Bin ...l-nested-import-0.7.1.sol-0.7.5-legacy.zip | Bin ...-nested-import-0.7.1.sol-0.7.6-compact.zip | Bin ...l-nested-import-0.7.1.sol-0.7.6-legacy.zip | Bin ...-nested-import-0.7.1.sol-0.8.0-compact.zip | Bin ...-nested-import-0.7.1.sol-0.8.1-compact.zip | Bin ...nested-import-0.7.1.sol-0.8.10-compact.zip | Bin ...nested-import-0.7.1.sol-0.8.11-compact.zip | Bin ...nested-import-0.7.1.sol-0.8.12-compact.zip | Bin ...nested-import-0.7.1.sol-0.8.13-compact.zip | Bin ...nested-import-0.7.1.sol-0.8.14-compact.zip | Bin ...nested-import-0.7.1.sol-0.8.15-compact.zip | Bin ...-nested-import-0.7.1.sol-0.8.2-compact.zip | Bin ...-nested-import-0.7.1.sol-0.8.3-compact.zip | Bin ...-nested-import-0.7.1.sol-0.8.4-compact.zip | Bin ...-nested-import-0.7.1.sol-0.8.5-compact.zip | Bin ...-nested-import-0.7.1.sol-0.8.6-compact.zip | Bin ...-nested-import-0.7.1.sol-0.8.7-compact.zip | Bin ...-nested-import-0.7.1.sol-0.8.8-compact.zip | Bin ...-nested-import-0.7.1.sol-0.8.9-compact.zip | Bin ...p-level-struct-0.8.0.sol-0.8.0-compact.zip | Bin ..._level_variable-0.4.0.sol-0.4.0-legacy.zip | Bin ..._level_variable-0.4.0.sol-0.4.1-legacy.zip | Bin ...level_variable-0.4.0.sol-0.4.10-legacy.zip | Bin ...level_variable-0.4.0.sol-0.4.11-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.12-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.12-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.13-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.13-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.14-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.14-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.15-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.15-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.16-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.16-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.17-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.17-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.18-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.18-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.19-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.19-legacy.zip | Bin ..._level_variable-0.4.0.sol-0.4.2-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.20-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.20-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.21-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.21-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.22-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.22-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.23-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.23-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.24-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.24-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.25-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.25-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.4.26-compact.zip | Bin ...level_variable-0.4.0.sol-0.4.26-legacy.zip | Bin ..._level_variable-0.4.0.sol-0.4.3-legacy.zip | Bin ..._level_variable-0.4.0.sol-0.4.4-legacy.zip | Bin ..._level_variable-0.4.0.sol-0.4.5-legacy.zip | Bin ..._level_variable-0.4.0.sol-0.4.6-legacy.zip | Bin ..._level_variable-0.4.0.sol-0.4.7-legacy.zip | Bin ..._level_variable-0.4.0.sol-0.4.8-legacy.zip | Bin ..._level_variable-0.4.0.sol-0.4.9-legacy.zip | Bin ...level_variable-0.4.0.sol-0.5.0-compact.zip | Bin ..._level_variable-0.4.0.sol-0.5.0-legacy.zip | Bin ...level_variable-0.4.0.sol-0.5.1-compact.zip | Bin ..._level_variable-0.4.0.sol-0.5.1-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.5.10-compact.zip | Bin ...level_variable-0.4.0.sol-0.5.10-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.5.11-compact.zip | Bin ...level_variable-0.4.0.sol-0.5.11-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.5.12-compact.zip | Bin ...level_variable-0.4.0.sol-0.5.12-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.5.13-compact.zip | Bin ...level_variable-0.4.0.sol-0.5.13-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.5.14-compact.zip | Bin ...level_variable-0.4.0.sol-0.5.14-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.5.15-compact.zip | Bin ...level_variable-0.4.0.sol-0.5.15-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.5.16-compact.zip | Bin ...level_variable-0.4.0.sol-0.5.16-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.5.17-compact.zip | Bin ...level_variable-0.4.0.sol-0.5.17-legacy.zip | Bin ...level_variable-0.4.0.sol-0.5.2-compact.zip | Bin ..._level_variable-0.4.0.sol-0.5.2-legacy.zip | Bin ...level_variable-0.4.0.sol-0.5.3-compact.zip | Bin ..._level_variable-0.4.0.sol-0.5.3-legacy.zip | Bin ...level_variable-0.4.0.sol-0.5.4-compact.zip | Bin ..._level_variable-0.4.0.sol-0.5.4-legacy.zip | Bin ...level_variable-0.4.0.sol-0.5.5-compact.zip | Bin ..._level_variable-0.4.0.sol-0.5.5-legacy.zip | Bin ...level_variable-0.4.0.sol-0.5.6-compact.zip | Bin ..._level_variable-0.4.0.sol-0.5.6-legacy.zip | Bin ...level_variable-0.4.0.sol-0.5.7-compact.zip | Bin ..._level_variable-0.4.0.sol-0.5.7-legacy.zip | Bin ...level_variable-0.4.0.sol-0.5.8-compact.zip | Bin ..._level_variable-0.4.0.sol-0.5.8-legacy.zip | Bin ...level_variable-0.4.0.sol-0.5.9-compact.zip | Bin ..._level_variable-0.4.0.sol-0.5.9-legacy.zip | Bin ...level_variable-0.4.0.sol-0.6.0-compact.zip | Bin ..._level_variable-0.4.0.sol-0.6.0-legacy.zip | Bin ...level_variable-0.4.0.sol-0.6.1-compact.zip | Bin ..._level_variable-0.4.0.sol-0.6.1-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.6.10-compact.zip | Bin ...level_variable-0.4.0.sol-0.6.10-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.6.11-compact.zip | Bin ...level_variable-0.4.0.sol-0.6.11-legacy.zip | Bin ...evel_variable-0.4.0.sol-0.6.12-compact.zip | Bin ...level_variable-0.4.0.sol-0.6.12-legacy.zip | Bin ...level_variable-0.4.0.sol-0.6.2-compact.zip | Bin ..._level_variable-0.4.0.sol-0.6.2-legacy.zip | Bin ...level_variable-0.4.0.sol-0.6.3-compact.zip | Bin ..._level_variable-0.4.0.sol-0.6.3-legacy.zip | Bin ...level_variable-0.4.0.sol-0.6.4-compact.zip | Bin ..._level_variable-0.4.0.sol-0.6.4-legacy.zip | Bin ...level_variable-0.4.0.sol-0.6.5-compact.zip | Bin ..._level_variable-0.4.0.sol-0.6.5-legacy.zip | Bin ...level_variable-0.4.0.sol-0.6.6-compact.zip | Bin ..._level_variable-0.4.0.sol-0.6.6-legacy.zip | Bin ...level_variable-0.4.0.sol-0.6.7-compact.zip | Bin ..._level_variable-0.4.0.sol-0.6.7-legacy.zip | Bin ...level_variable-0.4.0.sol-0.6.8-compact.zip | Bin ..._level_variable-0.4.0.sol-0.6.8-legacy.zip | Bin ...level_variable-0.4.0.sol-0.6.9-compact.zip | Bin ..._level_variable-0.4.0.sol-0.6.9-legacy.zip | Bin ...level_variable-0.4.0.sol-0.7.0-compact.zip | Bin ..._level_variable-0.4.0.sol-0.7.0-legacy.zip | Bin ...level_variable-0.4.0.sol-0.7.1-compact.zip | Bin ..._level_variable-0.4.0.sol-0.7.1-legacy.zip | Bin ...level_variable-0.4.0.sol-0.7.2-compact.zip | Bin ..._level_variable-0.4.0.sol-0.7.2-legacy.zip | Bin ...level_variable-0.4.0.sol-0.7.3-compact.zip | Bin ..._level_variable-0.4.0.sol-0.7.3-legacy.zip | Bin ...level_variable-0.4.0.sol-0.7.4-compact.zip | Bin ..._level_variable-0.4.0.sol-0.7.4-legacy.zip | Bin ...level_variable-0.4.0.sol-0.7.5-compact.zip | Bin ..._level_variable-0.4.0.sol-0.7.5-legacy.zip | Bin ...level_variable-0.4.0.sol-0.7.6-compact.zip | Bin ..._level_variable-0.4.0.sol-0.7.6-legacy.zip | Bin ...level_variable-0.8.0.sol-0.8.0-compact.zip | Bin ...level_variable-0.8.0.sol-0.8.1-compact.zip | Bin ...evel_variable-0.8.0.sol-0.8.10-compact.zip | Bin ...evel_variable-0.8.0.sol-0.8.11-compact.zip | Bin ...evel_variable-0.8.0.sol-0.8.12-compact.zip | Bin ...evel_variable-0.8.0.sol-0.8.13-compact.zip | Bin ...evel_variable-0.8.0.sol-0.8.14-compact.zip | Bin ...evel_variable-0.8.0.sol-0.8.15-compact.zip | Bin ...level_variable-0.8.0.sol-0.8.2-compact.zip | Bin ...level_variable-0.8.0.sol-0.8.3-compact.zip | Bin ...level_variable-0.8.0.sol-0.8.4-compact.zip | Bin ...level_variable-0.8.0.sol-0.8.5-compact.zip | Bin ...level_variable-0.8.0.sol-0.8.6-compact.zip | Bin ...level_variable-0.8.0.sol-0.8.7-compact.zip | Bin ...level_variable-0.8.0.sol-0.8.8-compact.zip | Bin ...level_variable-0.8.0.sol-0.8.9-compact.zip | Bin ...level_variable2-0.4.0.sol-0.4.0-legacy.zip | Bin ...level_variable2-0.4.0.sol-0.4.1-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.4.10-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.4.11-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.12-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.12-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.13-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.13-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.14-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.14-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.15-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.15-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.16-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.16-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.17-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.17-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.18-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.18-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.19-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.19-legacy.zip | Bin ...level_variable2-0.4.0.sol-0.4.2-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.20-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.20-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.21-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.21-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.22-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.22-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.23-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.23-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.24-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.24-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.25-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.25-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.4.26-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.4.26-legacy.zip | Bin ...level_variable2-0.4.0.sol-0.4.3-legacy.zip | Bin ...level_variable2-0.4.0.sol-0.4.4-legacy.zip | Bin ...level_variable2-0.4.0.sol-0.4.5-legacy.zip | Bin ...level_variable2-0.4.0.sol-0.4.6-legacy.zip | Bin ...level_variable2-0.4.0.sol-0.4.7-legacy.zip | Bin ...level_variable2-0.4.0.sol-0.4.8-legacy.zip | Bin ...level_variable2-0.4.0.sol-0.4.9-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.5.0-compact.zip | Bin ...level_variable2-0.4.0.sol-0.5.0-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.5.1-compact.zip | Bin ...level_variable2-0.4.0.sol-0.5.1-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.5.10-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.5.10-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.5.11-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.5.11-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.5.12-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.5.12-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.5.13-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.5.13-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.5.14-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.5.14-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.5.15-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.5.15-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.5.16-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.5.16-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.5.17-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.5.17-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.5.2-compact.zip | Bin ...level_variable2-0.4.0.sol-0.5.2-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.5.3-compact.zip | Bin ...level_variable2-0.4.0.sol-0.5.3-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.5.4-compact.zip | Bin ...level_variable2-0.4.0.sol-0.5.4-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.5.5-compact.zip | Bin ...level_variable2-0.4.0.sol-0.5.5-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.5.6-compact.zip | Bin ...level_variable2-0.4.0.sol-0.5.6-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.5.7-compact.zip | Bin ...level_variable2-0.4.0.sol-0.5.7-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.5.8-compact.zip | Bin ...level_variable2-0.4.0.sol-0.5.8-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.5.9-compact.zip | Bin ...level_variable2-0.4.0.sol-0.5.9-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.6.0-compact.zip | Bin ...level_variable2-0.4.0.sol-0.6.0-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.6.1-compact.zip | Bin ...level_variable2-0.4.0.sol-0.6.1-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.6.10-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.6.10-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.6.11-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.6.11-legacy.zip | Bin ...vel_variable2-0.4.0.sol-0.6.12-compact.zip | Bin ...evel_variable2-0.4.0.sol-0.6.12-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.6.2-compact.zip | Bin ...level_variable2-0.4.0.sol-0.6.2-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.6.3-compact.zip | Bin ...level_variable2-0.4.0.sol-0.6.3-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.6.4-compact.zip | Bin ...level_variable2-0.4.0.sol-0.6.4-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.6.5-compact.zip | Bin ...level_variable2-0.4.0.sol-0.6.5-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.6.6-compact.zip | Bin ...level_variable2-0.4.0.sol-0.6.6-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.6.7-compact.zip | Bin ...level_variable2-0.4.0.sol-0.6.7-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.6.8-compact.zip | Bin ...level_variable2-0.4.0.sol-0.6.8-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.6.9-compact.zip | Bin ...level_variable2-0.4.0.sol-0.6.9-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.7.0-compact.zip | Bin ...level_variable2-0.4.0.sol-0.7.0-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.7.1-compact.zip | Bin ...level_variable2-0.4.0.sol-0.7.1-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.7.2-compact.zip | Bin ...level_variable2-0.4.0.sol-0.7.2-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.7.3-compact.zip | Bin ...level_variable2-0.4.0.sol-0.7.3-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.7.4-compact.zip | Bin ...level_variable2-0.4.0.sol-0.7.4-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.7.5-compact.zip | Bin ...level_variable2-0.4.0.sol-0.7.5-legacy.zip | Bin ...evel_variable2-0.4.0.sol-0.7.6-compact.zip | Bin ...level_variable2-0.4.0.sol-0.7.6-legacy.zip | Bin ...evel_variable2-0.8.0.sol-0.8.0-compact.zip | Bin ...evel_variable2-0.8.0.sol-0.8.1-compact.zip | Bin ...vel_variable2-0.8.0.sol-0.8.10-compact.zip | Bin ...vel_variable2-0.8.0.sol-0.8.11-compact.zip | Bin ...vel_variable2-0.8.0.sol-0.8.12-compact.zip | Bin ...vel_variable2-0.8.0.sol-0.8.13-compact.zip | Bin ...vel_variable2-0.8.0.sol-0.8.14-compact.zip | Bin ...vel_variable2-0.8.0.sol-0.8.15-compact.zip | Bin ...evel_variable2-0.8.0.sol-0.8.2-compact.zip | Bin ...evel_variable2-0.8.0.sol-0.8.3-compact.zip | Bin ...evel_variable2-0.8.0.sol-0.8.4-compact.zip | Bin ...evel_variable2-0.8.0.sol-0.8.5-compact.zip | Bin ...evel_variable2-0.8.0.sol-0.8.6-compact.zip | Bin ...evel_variable2-0.8.0.sol-0.8.7-compact.zip | Bin ...evel_variable2-0.8.0.sol-0.8.8-compact.zip | Bin ...evel_variable2-0.8.0.sol-0.8.9-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.0-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.1-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.10-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.11-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.12-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.12-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.13-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.13-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.14-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.14-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.15-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.15-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.16-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.16-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.17-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.17-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.18-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.18-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.19-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.19-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.2-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.20-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.20-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.21-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.21-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.22-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.22-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.23-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.23-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.24-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.24-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.25-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.25-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.26-compact.zip | Bin .../trycatch-0.4.0.sol-0.4.26-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.3-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.4-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.5-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.6-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.7-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.8-legacy.zip | Bin .../trycatch-0.4.0.sol-0.4.9-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.0-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.0-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.1-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.1-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.10-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.10-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.11-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.11-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.12-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.12-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.13-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.13-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.14-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.14-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.15-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.15-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.16-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.16-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.17-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.17-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.2-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.2-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.3-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.3-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.4-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.4-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.5-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.5-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.6-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.6-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.7-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.7-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.8-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.8-legacy.zip | Bin .../trycatch-0.4.0.sol-0.5.9-compact.zip | Bin .../trycatch-0.4.0.sol-0.5.9-legacy.zip | Bin .../trycatch-0.6.0.sol-0.6.0-compact.zip | Bin .../trycatch-0.6.0.sol-0.6.1-compact.zip | Bin .../trycatch-0.6.0.sol-0.6.10-compact.zip | Bin .../trycatch-0.6.0.sol-0.6.11-compact.zip | Bin .../trycatch-0.6.0.sol-0.6.12-compact.zip | Bin .../trycatch-0.6.0.sol-0.6.2-compact.zip | Bin .../trycatch-0.6.0.sol-0.6.3-compact.zip | Bin .../trycatch-0.6.0.sol-0.6.4-compact.zip | Bin .../trycatch-0.6.0.sol-0.6.5-compact.zip | Bin .../trycatch-0.6.0.sol-0.6.6-compact.zip | Bin .../trycatch-0.6.0.sol-0.6.7-compact.zip | Bin .../trycatch-0.6.0.sol-0.6.8-compact.zip | Bin .../trycatch-0.6.0.sol-0.6.9-compact.zip | Bin .../trycatch-0.6.0.sol-0.7.0-compact.zip | Bin .../trycatch-0.6.0.sol-0.7.1-compact.zip | Bin .../trycatch-0.6.0.sol-0.7.2-compact.zip | Bin .../trycatch-0.6.0.sol-0.7.3-compact.zip | Bin .../trycatch-0.6.0.sol-0.7.4-compact.zip | Bin .../trycatch-0.6.0.sol-0.7.5-compact.zip | Bin .../trycatch-0.6.0.sol-0.7.6-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.0-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.1-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.10-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.11-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.12-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.13-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.14-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.15-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.2-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.3-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.4-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.5-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.6-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.7-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.8-compact.zip | Bin .../trycatch-0.6.0.sol-0.8.9-compact.zip | Bin ...tupleexpression-0.4.0.sol-0.4.0-legacy.zip | Bin ...tupleexpression-0.4.0.sol-0.4.1-legacy.zip | Bin ...upleexpression-0.4.0.sol-0.4.10-legacy.zip | Bin ...upleexpression-0.4.0.sol-0.4.11-legacy.zip | Bin ...pleexpression-0.4.0.sol-0.4.12-compact.zip | Bin ...upleexpression-0.4.0.sol-0.4.12-legacy.zip | Bin ...pleexpression-0.4.0.sol-0.4.13-compact.zip | Bin ...upleexpression-0.4.0.sol-0.4.13-legacy.zip | Bin ...pleexpression-0.4.0.sol-0.4.14-compact.zip | Bin ...upleexpression-0.4.0.sol-0.4.14-legacy.zip | Bin ...pleexpression-0.4.0.sol-0.4.15-compact.zip | Bin ...upleexpression-0.4.0.sol-0.4.15-legacy.zip | Bin ...pleexpression-0.4.0.sol-0.4.16-compact.zip | Bin ...upleexpression-0.4.0.sol-0.4.16-legacy.zip | Bin ...pleexpression-0.4.0.sol-0.4.17-compact.zip | Bin ...upleexpression-0.4.0.sol-0.4.17-legacy.zip | Bin ...pleexpression-0.4.0.sol-0.4.18-compact.zip | Bin ...upleexpression-0.4.0.sol-0.4.18-legacy.zip | Bin ...pleexpression-0.4.0.sol-0.4.19-compact.zip | Bin ...upleexpression-0.4.0.sol-0.4.19-legacy.zip | Bin ...tupleexpression-0.4.0.sol-0.4.2-legacy.zip | Bin ...pleexpression-0.4.0.sol-0.4.20-compact.zip | Bin ...upleexpression-0.4.0.sol-0.4.20-legacy.zip | Bin ...pleexpression-0.4.0.sol-0.4.21-compact.zip | Bin ...upleexpression-0.4.0.sol-0.4.21-legacy.zip | Bin ...pleexpression-0.4.0.sol-0.4.22-compact.zip | Bin ...upleexpression-0.4.0.sol-0.4.22-legacy.zip | Bin ...pleexpression-0.4.0.sol-0.4.23-compact.zip | Bin ...upleexpression-0.4.0.sol-0.4.23-legacy.zip | Bin ...tupleexpression-0.4.0.sol-0.4.3-legacy.zip | Bin ...tupleexpression-0.4.0.sol-0.4.4-legacy.zip | Bin ...tupleexpression-0.4.0.sol-0.4.5-legacy.zip | Bin ...tupleexpression-0.4.0.sol-0.4.6-legacy.zip | Bin ...tupleexpression-0.4.0.sol-0.4.7-legacy.zip | Bin ...tupleexpression-0.4.0.sol-0.4.8-legacy.zip | Bin ...tupleexpression-0.4.0.sol-0.4.9-legacy.zip | Bin ...leexpression-0.4.24.sol-0.4.24-compact.zip | Bin ...pleexpression-0.4.24.sol-0.4.24-legacy.zip | Bin ...leexpression-0.4.24.sol-0.4.25-compact.zip | Bin ...pleexpression-0.4.24.sol-0.4.25-legacy.zip | Bin ...leexpression-0.4.24.sol-0.4.26-compact.zip | Bin ...pleexpression-0.4.24.sol-0.4.26-legacy.zip | Bin ...pleexpression-0.4.24.sol-0.5.0-compact.zip | Bin ...upleexpression-0.4.24.sol-0.5.0-legacy.zip | Bin ...pleexpression-0.4.24.sol-0.5.1-compact.zip | Bin ...upleexpression-0.4.24.sol-0.5.1-legacy.zip | Bin ...leexpression-0.4.24.sol-0.5.10-compact.zip | Bin ...pleexpression-0.4.24.sol-0.5.10-legacy.zip | Bin ...leexpression-0.4.24.sol-0.5.11-compact.zip | Bin ...pleexpression-0.4.24.sol-0.5.11-legacy.zip | Bin ...leexpression-0.4.24.sol-0.5.12-compact.zip | Bin ...pleexpression-0.4.24.sol-0.5.12-legacy.zip | Bin ...leexpression-0.4.24.sol-0.5.13-compact.zip | Bin ...pleexpression-0.4.24.sol-0.5.13-legacy.zip | Bin ...leexpression-0.4.24.sol-0.5.14-compact.zip | Bin ...pleexpression-0.4.24.sol-0.5.14-legacy.zip | Bin ...leexpression-0.4.24.sol-0.5.15-compact.zip | Bin ...pleexpression-0.4.24.sol-0.5.15-legacy.zip | Bin ...leexpression-0.4.24.sol-0.5.16-compact.zip | Bin ...pleexpression-0.4.24.sol-0.5.16-legacy.zip | Bin ...leexpression-0.4.24.sol-0.5.17-compact.zip | Bin ...pleexpression-0.4.24.sol-0.5.17-legacy.zip | Bin ...pleexpression-0.4.24.sol-0.5.2-compact.zip | Bin ...upleexpression-0.4.24.sol-0.5.2-legacy.zip | Bin ...pleexpression-0.4.24.sol-0.5.3-compact.zip | Bin ...upleexpression-0.4.24.sol-0.5.3-legacy.zip | Bin ...pleexpression-0.4.24.sol-0.5.4-compact.zip | Bin ...upleexpression-0.4.24.sol-0.5.4-legacy.zip | Bin ...pleexpression-0.4.24.sol-0.5.5-compact.zip | Bin ...upleexpression-0.4.24.sol-0.5.5-legacy.zip | Bin ...pleexpression-0.4.24.sol-0.5.6-compact.zip | Bin ...upleexpression-0.4.24.sol-0.5.6-legacy.zip | Bin ...pleexpression-0.4.24.sol-0.5.7-compact.zip | Bin ...upleexpression-0.4.24.sol-0.5.7-legacy.zip | Bin ...pleexpression-0.4.24.sol-0.5.8-compact.zip | Bin ...upleexpression-0.4.24.sol-0.5.8-legacy.zip | Bin ...pleexpression-0.4.24.sol-0.5.9-compact.zip | Bin ...upleexpression-0.4.24.sol-0.5.9-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.5.3-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.5.3-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.5.4-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.5.4-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.5.5-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.5.5-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.5.6-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.5.6-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.5.7-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.5.7-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.5.8-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.5.8-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.5.9-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.5.9-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.6.0-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.6.0-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.6.1-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.6.1-legacy.zip | Bin ...pleexpression-0.5.3.sol-0.6.10-compact.zip | Bin ...upleexpression-0.5.3.sol-0.6.10-legacy.zip | Bin ...pleexpression-0.5.3.sol-0.6.11-compact.zip | Bin ...upleexpression-0.5.3.sol-0.6.11-legacy.zip | Bin ...pleexpression-0.5.3.sol-0.6.12-compact.zip | Bin ...upleexpression-0.5.3.sol-0.6.12-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.6.2-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.6.2-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.6.3-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.6.3-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.6.4-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.6.4-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.6.5-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.6.5-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.6.6-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.6.6-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.6.7-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.6.7-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.6.8-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.6.8-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.6.9-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.6.9-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.7.0-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.7.0-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.7.1-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.7.1-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.7.2-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.7.2-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.7.3-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.7.3-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.7.4-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.7.4-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.7.5-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.7.5-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.7.6-compact.zip | Bin ...tupleexpression-0.5.3.sol-0.7.6-legacy.zip | Bin ...upleexpression-0.5.3.sol-0.8.0-compact.zip | Bin ...upleexpression-0.5.3.sol-0.8.1-compact.zip | Bin ...pleexpression-0.5.3.sol-0.8.10-compact.zip | Bin ...pleexpression-0.5.3.sol-0.8.11-compact.zip | Bin ...pleexpression-0.5.3.sol-0.8.12-compact.zip | Bin ...pleexpression-0.5.3.sol-0.8.13-compact.zip | Bin ...pleexpression-0.5.3.sol-0.8.14-compact.zip | Bin ...pleexpression-0.5.3.sol-0.8.15-compact.zip | Bin ...upleexpression-0.5.3.sol-0.8.2-compact.zip | Bin ...upleexpression-0.5.3.sol-0.8.3-compact.zip | Bin ...upleexpression-0.5.3.sol-0.8.4-compact.zip | Bin ...upleexpression-0.5.3.sol-0.8.5-compact.zip | Bin ...upleexpression-0.5.3.sol-0.8.6-compact.zip | Bin ...upleexpression-0.5.3.sol-0.8.7-compact.zip | Bin ...upleexpression-0.5.3.sol-0.8.8-compact.zip | Bin ...upleexpression-0.5.3.sol-0.8.9-compact.zip | Bin ...unaryexpression-0.4.0.sol-0.4.0-legacy.zip | Bin ...unaryexpression-0.4.0.sol-0.4.1-legacy.zip | Bin ...naryexpression-0.4.0.sol-0.4.10-legacy.zip | Bin ...naryexpression-0.4.0.sol-0.4.11-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.12-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.12-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.13-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.13-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.14-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.14-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.15-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.15-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.16-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.16-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.17-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.17-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.18-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.18-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.19-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.19-legacy.zip | Bin ...unaryexpression-0.4.0.sol-0.4.2-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.20-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.20-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.21-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.21-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.22-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.22-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.23-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.23-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.24-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.24-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.25-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.25-legacy.zip | Bin ...aryexpression-0.4.0.sol-0.4.26-compact.zip | Bin ...naryexpression-0.4.0.sol-0.4.26-legacy.zip | Bin ...unaryexpression-0.4.0.sol-0.4.3-legacy.zip | Bin ...unaryexpression-0.4.0.sol-0.4.4-legacy.zip | Bin ...unaryexpression-0.4.0.sol-0.4.5-legacy.zip | Bin ...unaryexpression-0.4.0.sol-0.4.6-legacy.zip | Bin ...unaryexpression-0.4.0.sol-0.4.7-legacy.zip | Bin ...unaryexpression-0.4.0.sol-0.4.8-legacy.zip | Bin ...unaryexpression-0.4.0.sol-0.4.9-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.5.0-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.5.0-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.5.1-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.5.1-legacy.zip | Bin ...aryexpression-0.5.0.sol-0.5.10-compact.zip | Bin ...naryexpression-0.5.0.sol-0.5.10-legacy.zip | Bin ...aryexpression-0.5.0.sol-0.5.11-compact.zip | Bin ...naryexpression-0.5.0.sol-0.5.11-legacy.zip | Bin ...aryexpression-0.5.0.sol-0.5.12-compact.zip | Bin ...naryexpression-0.5.0.sol-0.5.12-legacy.zip | Bin ...aryexpression-0.5.0.sol-0.5.13-compact.zip | Bin ...naryexpression-0.5.0.sol-0.5.13-legacy.zip | Bin ...aryexpression-0.5.0.sol-0.5.14-compact.zip | Bin ...naryexpression-0.5.0.sol-0.5.14-legacy.zip | Bin ...aryexpression-0.5.0.sol-0.5.15-compact.zip | Bin ...naryexpression-0.5.0.sol-0.5.15-legacy.zip | Bin ...aryexpression-0.5.0.sol-0.5.16-compact.zip | Bin ...naryexpression-0.5.0.sol-0.5.16-legacy.zip | Bin ...aryexpression-0.5.0.sol-0.5.17-compact.zip | Bin ...naryexpression-0.5.0.sol-0.5.17-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.5.2-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.5.2-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.5.3-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.5.3-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.5.4-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.5.4-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.5.5-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.5.5-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.5.6-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.5.6-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.5.7-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.5.7-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.5.8-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.5.8-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.5.9-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.5.9-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.6.0-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.6.0-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.6.1-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.6.1-legacy.zip | Bin ...aryexpression-0.5.0.sol-0.6.10-compact.zip | Bin ...naryexpression-0.5.0.sol-0.6.10-legacy.zip | Bin ...aryexpression-0.5.0.sol-0.6.11-compact.zip | Bin ...naryexpression-0.5.0.sol-0.6.11-legacy.zip | Bin ...aryexpression-0.5.0.sol-0.6.12-compact.zip | Bin ...naryexpression-0.5.0.sol-0.6.12-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.6.2-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.6.2-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.6.3-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.6.3-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.6.4-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.6.4-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.6.5-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.6.5-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.6.6-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.6.6-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.6.7-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.6.7-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.6.8-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.6.8-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.6.9-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.6.9-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.7.0-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.7.0-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.7.1-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.7.1-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.7.2-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.7.2-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.7.3-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.7.3-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.7.4-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.7.4-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.7.5-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.7.5-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.7.6-compact.zip | Bin ...unaryexpression-0.5.0.sol-0.7.6-legacy.zip | Bin ...naryexpression-0.5.0.sol-0.8.0-compact.zip | Bin ...naryexpression-0.5.0.sol-0.8.1-compact.zip | Bin ...aryexpression-0.5.0.sol-0.8.10-compact.zip | Bin ...aryexpression-0.5.0.sol-0.8.11-compact.zip | Bin ...aryexpression-0.5.0.sol-0.8.12-compact.zip | Bin ...aryexpression-0.5.0.sol-0.8.13-compact.zip | Bin ...aryexpression-0.5.0.sol-0.8.14-compact.zip | Bin ...aryexpression-0.5.0.sol-0.8.15-compact.zip | Bin ...naryexpression-0.5.0.sol-0.8.2-compact.zip | Bin ...naryexpression-0.5.0.sol-0.8.3-compact.zip | Bin ...naryexpression-0.5.0.sol-0.8.4-compact.zip | Bin ...naryexpression-0.5.0.sol-0.8.5-compact.zip | Bin ...naryexpression-0.5.0.sol-0.8.6-compact.zip | Bin ...naryexpression-0.5.0.sol-0.8.7-compact.zip | Bin ...naryexpression-0.5.0.sol-0.8.8-compact.zip | Bin ...naryexpression-0.5.0.sol-0.8.9-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.0-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.1-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.10-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.11-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.12-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.12-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.13-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.13-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.14-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.14-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.15-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.15-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.16-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.16-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.17-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.17-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.18-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.18-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.19-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.19-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.2-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.20-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.20-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.21-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.21-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.22-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.22-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.23-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.23-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.24-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.24-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.25-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.25-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.26-compact.zip | Bin .../unchecked-0.4.0.sol-0.4.26-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.3-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.4-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.5-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.6-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.7-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.8-legacy.zip | Bin .../unchecked-0.4.0.sol-0.4.9-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.0-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.0-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.1-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.1-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.10-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.10-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.11-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.11-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.12-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.12-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.13-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.13-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.14-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.14-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.15-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.15-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.16-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.16-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.17-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.17-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.2-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.2-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.3-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.3-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.4-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.4-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.5-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.5-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.6-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.6-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.7-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.7-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.8-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.8-legacy.zip | Bin .../unchecked-0.4.0.sol-0.5.9-compact.zip | Bin .../unchecked-0.4.0.sol-0.5.9-legacy.zip | Bin .../unchecked-0.4.0.sol-0.6.0-compact.zip | Bin .../unchecked-0.4.0.sol-0.6.0-legacy.zip | Bin .../unchecked-0.4.0.sol-0.6.1-compact.zip | Bin .../unchecked-0.4.0.sol-0.6.1-legacy.zip | Bin .../unchecked-0.4.0.sol-0.6.10-compact.zip | Bin .../unchecked-0.4.0.sol-0.6.10-legacy.zip | Bin .../unchecked-0.4.0.sol-0.6.11-compact.zip | Bin .../unchecked-0.4.0.sol-0.6.11-legacy.zip | Bin .../unchecked-0.4.0.sol-0.6.12-compact.zip | Bin .../unchecked-0.4.0.sol-0.6.12-legacy.zip | Bin .../unchecked-0.4.0.sol-0.6.2-compact.zip | Bin .../unchecked-0.4.0.sol-0.6.2-legacy.zip | Bin .../unchecked-0.4.0.sol-0.6.3-compact.zip | Bin .../unchecked-0.4.0.sol-0.6.3-legacy.zip | Bin .../unchecked-0.4.0.sol-0.6.4-compact.zip | Bin .../unchecked-0.4.0.sol-0.6.4-legacy.zip | Bin .../unchecked-0.4.0.sol-0.6.5-compact.zip | Bin .../unchecked-0.4.0.sol-0.6.5-legacy.zip | Bin .../unchecked-0.4.0.sol-0.6.6-compact.zip | Bin .../unchecked-0.4.0.sol-0.6.6-legacy.zip | Bin .../unchecked-0.4.0.sol-0.6.7-compact.zip | Bin .../unchecked-0.4.0.sol-0.6.7-legacy.zip | Bin .../unchecked-0.4.0.sol-0.6.8-compact.zip | Bin .../unchecked-0.4.0.sol-0.6.8-legacy.zip | Bin .../unchecked-0.4.0.sol-0.6.9-compact.zip | Bin .../unchecked-0.4.0.sol-0.6.9-legacy.zip | Bin .../unchecked-0.4.0.sol-0.7.0-compact.zip | Bin .../unchecked-0.4.0.sol-0.7.0-legacy.zip | Bin .../unchecked-0.4.0.sol-0.7.1-compact.zip | Bin .../unchecked-0.4.0.sol-0.7.1-legacy.zip | Bin .../unchecked-0.4.0.sol-0.7.2-compact.zip | Bin .../unchecked-0.4.0.sol-0.7.2-legacy.zip | Bin .../unchecked-0.4.0.sol-0.7.3-compact.zip | Bin .../unchecked-0.4.0.sol-0.7.3-legacy.zip | Bin .../unchecked-0.4.0.sol-0.7.4-compact.zip | Bin .../unchecked-0.4.0.sol-0.7.4-legacy.zip | Bin .../unchecked-0.4.0.sol-0.7.5-compact.zip | Bin .../unchecked-0.4.0.sol-0.7.5-legacy.zip | Bin .../unchecked-0.4.0.sol-0.7.6-compact.zip | Bin .../unchecked-0.4.0.sol-0.7.6-legacy.zip | Bin .../unchecked-0.8.0.sol-0.8.0-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.1-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.10-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.11-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.12-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.13-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.14-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.15-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.2-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.3-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.4-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.5-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.6-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.7-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.8-compact.zip | Bin .../unchecked-0.8.0.sol-0.8.9-compact.zip | Bin ...lobal_variables-0.4.0.sol-0.4.0-legacy.zip | Bin ...lobal_variables-0.4.0.sol-0.4.1-legacy.zip | Bin ...obal_variables-0.4.0.sol-0.4.10-legacy.zip | Bin ...obal_variables-0.4.0.sol-0.4.11-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.12-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.12-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.13-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.13-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.14-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.14-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.15-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.15-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.16-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.16-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.17-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.17-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.18-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.18-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.19-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.19-legacy.zip | Bin ...lobal_variables-0.4.0.sol-0.4.2-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.20-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.20-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.21-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.21-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.22-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.22-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.23-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.23-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.24-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.24-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.25-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.25-legacy.zip | Bin ...bal_variables-0.4.0.sol-0.4.26-compact.zip | Bin ...obal_variables-0.4.0.sol-0.4.26-legacy.zip | Bin ...lobal_variables-0.4.0.sol-0.4.3-legacy.zip | Bin ...lobal_variables-0.4.0.sol-0.4.4-legacy.zip | Bin ...lobal_variables-0.4.0.sol-0.4.5-legacy.zip | Bin ...lobal_variables-0.4.0.sol-0.4.6-legacy.zip | Bin ...lobal_variables-0.4.0.sol-0.4.7-legacy.zip | Bin ...lobal_variables-0.4.0.sol-0.4.8-legacy.zip | Bin ...lobal_variables-0.4.0.sol-0.4.9-legacy.zip | Bin ...obal_variables-0.5.0.sol-0.5.0-compact.zip | Bin ...lobal_variables-0.5.0.sol-0.5.0-legacy.zip | Bin ...obal_variables-0.5.0.sol-0.5.1-compact.zip | Bin ...lobal_variables-0.5.0.sol-0.5.1-legacy.zip | Bin ...obal_variables-0.5.0.sol-0.5.2-compact.zip | Bin ...lobal_variables-0.5.0.sol-0.5.2-legacy.zip | Bin ...obal_variables-0.5.0.sol-0.5.3-compact.zip | Bin ...lobal_variables-0.5.0.sol-0.5.3-legacy.zip | Bin ...bal_variables-0.5.4.sol-0.5.10-compact.zip | Bin ...obal_variables-0.5.4.sol-0.5.10-legacy.zip | Bin ...bal_variables-0.5.4.sol-0.5.11-compact.zip | Bin ...obal_variables-0.5.4.sol-0.5.11-legacy.zip | Bin ...bal_variables-0.5.4.sol-0.5.12-compact.zip | Bin ...obal_variables-0.5.4.sol-0.5.12-legacy.zip | Bin ...bal_variables-0.5.4.sol-0.5.13-compact.zip | Bin ...obal_variables-0.5.4.sol-0.5.13-legacy.zip | Bin ...bal_variables-0.5.4.sol-0.5.14-compact.zip | Bin ...obal_variables-0.5.4.sol-0.5.14-legacy.zip | Bin ...bal_variables-0.5.4.sol-0.5.15-compact.zip | Bin ...obal_variables-0.5.4.sol-0.5.15-legacy.zip | Bin ...bal_variables-0.5.4.sol-0.5.16-compact.zip | Bin ...obal_variables-0.5.4.sol-0.5.16-legacy.zip | Bin ...bal_variables-0.5.4.sol-0.5.17-compact.zip | Bin ...obal_variables-0.5.4.sol-0.5.17-legacy.zip | Bin ...obal_variables-0.5.4.sol-0.5.4-compact.zip | Bin ...lobal_variables-0.5.4.sol-0.5.4-legacy.zip | Bin ...obal_variables-0.5.4.sol-0.5.5-compact.zip | Bin ...lobal_variables-0.5.4.sol-0.5.5-legacy.zip | Bin ...obal_variables-0.5.4.sol-0.5.6-compact.zip | Bin ...lobal_variables-0.5.4.sol-0.5.6-legacy.zip | Bin ...obal_variables-0.5.4.sol-0.5.7-compact.zip | Bin ...lobal_variables-0.5.4.sol-0.5.7-legacy.zip | Bin ...obal_variables-0.5.4.sol-0.5.8-compact.zip | Bin ...lobal_variables-0.5.4.sol-0.5.8-legacy.zip | Bin ...obal_variables-0.5.4.sol-0.5.9-compact.zip | Bin ...lobal_variables-0.5.4.sol-0.5.9-legacy.zip | Bin ...obal_variables-0.6.0.sol-0.6.0-compact.zip | Bin ...lobal_variables-0.6.0.sol-0.6.0-legacy.zip | Bin ...obal_variables-0.6.0.sol-0.6.1-compact.zip | Bin ...lobal_variables-0.6.0.sol-0.6.1-legacy.zip | Bin ...bal_variables-0.6.0.sol-0.6.10-compact.zip | Bin ...obal_variables-0.6.0.sol-0.6.10-legacy.zip | Bin ...bal_variables-0.6.0.sol-0.6.11-compact.zip | Bin ...obal_variables-0.6.0.sol-0.6.11-legacy.zip | Bin ...bal_variables-0.6.0.sol-0.6.12-compact.zip | Bin ...obal_variables-0.6.0.sol-0.6.12-legacy.zip | Bin ...obal_variables-0.6.0.sol-0.6.2-compact.zip | Bin ...lobal_variables-0.6.0.sol-0.6.2-legacy.zip | Bin ...obal_variables-0.6.0.sol-0.6.3-compact.zip | Bin ...lobal_variables-0.6.0.sol-0.6.3-legacy.zip | Bin ...obal_variables-0.6.0.sol-0.6.4-compact.zip | Bin ...lobal_variables-0.6.0.sol-0.6.4-legacy.zip | Bin ...obal_variables-0.6.0.sol-0.6.5-compact.zip | Bin ...lobal_variables-0.6.0.sol-0.6.5-legacy.zip | Bin ...obal_variables-0.6.0.sol-0.6.6-compact.zip | Bin ...lobal_variables-0.6.0.sol-0.6.6-legacy.zip | Bin ...obal_variables-0.6.0.sol-0.6.7-compact.zip | Bin ...lobal_variables-0.6.0.sol-0.6.7-legacy.zip | Bin ...obal_variables-0.6.0.sol-0.6.8-compact.zip | Bin ...lobal_variables-0.6.0.sol-0.6.8-legacy.zip | Bin ...obal_variables-0.6.0.sol-0.6.9-compact.zip | Bin ...lobal_variables-0.6.0.sol-0.6.9-legacy.zip | Bin ...obal_variables-0.7.0.sol-0.7.0-compact.zip | Bin ...lobal_variables-0.7.0.sol-0.7.0-legacy.zip | Bin ...obal_variables-0.7.0.sol-0.7.1-compact.zip | Bin ...lobal_variables-0.7.0.sol-0.7.1-legacy.zip | Bin ...obal_variables-0.7.0.sol-0.7.2-compact.zip | Bin ...lobal_variables-0.7.0.sol-0.7.2-legacy.zip | Bin ...obal_variables-0.7.0.sol-0.7.3-compact.zip | Bin ...lobal_variables-0.7.0.sol-0.7.3-legacy.zip | Bin ...obal_variables-0.7.0.sol-0.7.4-compact.zip | Bin ...lobal_variables-0.7.0.sol-0.7.4-legacy.zip | Bin ...obal_variables-0.7.0.sol-0.7.5-compact.zip | Bin ...lobal_variables-0.7.0.sol-0.7.5-legacy.zip | Bin ...obal_variables-0.7.0.sol-0.7.6-compact.zip | Bin ...lobal_variables-0.7.0.sol-0.7.6-legacy.zip | Bin ...obal_variables-0.8.0.sol-0.8.0-compact.zip | Bin ...obal_variables-0.8.0.sol-0.8.1-compact.zip | Bin ...bal_variables-0.8.0.sol-0.8.10-compact.zip | Bin ...bal_variables-0.8.0.sol-0.8.11-compact.zip | Bin ...bal_variables-0.8.0.sol-0.8.12-compact.zip | Bin ...bal_variables-0.8.0.sol-0.8.13-compact.zip | Bin ...bal_variables-0.8.0.sol-0.8.14-compact.zip | Bin ...bal_variables-0.8.0.sol-0.8.15-compact.zip | Bin ...obal_variables-0.8.0.sol-0.8.2-compact.zip | Bin ...obal_variables-0.8.0.sol-0.8.3-compact.zip | Bin ...obal_variables-0.8.0.sol-0.8.4-compact.zip | Bin ...obal_variables-0.8.0.sol-0.8.5-compact.zip | Bin ...obal_variables-0.8.0.sol-0.8.6-compact.zip | Bin ...obal_variables-0.8.0.sol-0.8.7-compact.zip | Bin ...obal_variables-0.8.0.sol-0.8.8-compact.zip | Bin ...obal_variables-0.8.0.sol-0.8.9-compact.zip | Bin ...obal_variables-0.8.4.sol-0.8.4-compact.zip | Bin ...obal_variables-0.8.4.sol-0.8.5-compact.zip | Bin ...obal_variables-0.8.4.sol-0.8.6-compact.zip | Bin ...obal_variables-0.8.7.sol-0.8.7-compact.zip | Bin ...obal_variables-0.8.7.sol-0.8.8-compact.zip | Bin ...obal_variables-0.8.7.sol-0.8.9-compact.zip | Bin .../argument-0.8.8.sol-0.8.10-compact.zip | Bin .../argument-0.8.8.sol-0.8.11-compact.zip | Bin .../argument-0.8.8.sol-0.8.12-compact.zip | Bin .../argument-0.8.8.sol-0.8.13-compact.zip | Bin .../argument-0.8.8.sol-0.8.14-compact.zip | Bin .../argument-0.8.8.sol-0.8.15-compact.zip | Bin .../argument-0.8.8.sol-0.8.8-compact.zip | Bin .../calldata-0.8.8.sol-0.8.10-compact.zip | Bin .../calldata-0.8.8.sol-0.8.11-compact.zip | Bin .../calldata-0.8.8.sol-0.8.12-compact.zip | Bin .../calldata-0.8.8.sol-0.8.13-compact.zip | Bin .../calldata-0.8.8.sol-0.8.14-compact.zip | Bin .../calldata-0.8.8.sol-0.8.15-compact.zip | Bin .../calldata-0.8.8.sol-0.8.8-compact.zip | Bin .../constant-0.8.8.sol-0.8.10-compact.zip | Bin .../constant-0.8.8.sol-0.8.11-compact.zip | Bin .../constant-0.8.8.sol-0.8.12-compact.zip | Bin .../constant-0.8.8.sol-0.8.13-compact.zip | Bin .../constant-0.8.8.sol-0.8.14-compact.zip | Bin .../constant-0.8.8.sol-0.8.15-compact.zip | Bin .../constant-0.8.8.sol-0.8.8-compact.zip | Bin .../erc20-0.8.8.sol-0.8.10-compact.zip | Bin .../erc20-0.8.8.sol-0.8.11-compact.zip | Bin .../erc20-0.8.8.sol-0.8.12-compact.zip | Bin .../erc20-0.8.8.sol-0.8.13-compact.zip | Bin .../erc20-0.8.8.sol-0.8.14-compact.zip | Bin .../erc20-0.8.8.sol-0.8.15-compact.zip | Bin .../erc20-0.8.8.sol-0.8.8-compact.zip | Bin ...n_parenthesis-0.8.8.sol-0.8.10-compact.zip | Bin ...n_parenthesis-0.8.8.sol-0.8.11-compact.zip | Bin ...n_parenthesis-0.8.8.sol-0.8.12-compact.zip | Bin ...n_parenthesis-0.8.8.sol-0.8.13-compact.zip | Bin ...n_parenthesis-0.8.8.sol-0.8.14-compact.zip | Bin ...n_parenthesis-0.8.8.sol-0.8.15-compact.zip | Bin ...in_parenthesis-0.8.8.sol-0.8.8-compact.zip | Bin .../top-level-0.8.8.sol-0.8.10-compact.zip | Bin .../top-level-0.8.8.sol-0.8.11-compact.zip | Bin .../top-level-0.8.8.sol-0.8.12-compact.zip | Bin .../top-level-0.8.8.sol-0.8.13-compact.zip | Bin .../top-level-0.8.8.sol-0.8.14-compact.zip | Bin .../top-level-0.8.8.sol-0.8.15-compact.zip | Bin .../top-level-0.8.8.sol-0.8.8-compact.zip | Bin ...defined_types-0.8.8.sol-0.8.10-compact.zip | Bin ...defined_types-0.8.8.sol-0.8.11-compact.zip | Bin ...defined_types-0.8.8.sol-0.8.12-compact.zip | Bin ...defined_types-0.8.8.sol-0.8.13-compact.zip | Bin ...defined_types-0.8.8.sol-0.8.14-compact.zip | Bin ...defined_types-0.8.8.sol-0.8.15-compact.zip | Bin ..._defined_types-0.8.8.sol-0.8.8-compact.zip | Bin .../using-for-0.8.8.sol-0.8.10-compact.zip | Bin .../using-for-0.8.8.sol-0.8.11-compact.zip | Bin .../using-for-0.8.8.sol-0.8.12-compact.zip | Bin .../using-for-0.8.8.sol-0.8.13-compact.zip | Bin .../using-for-0.8.8.sol-0.8.14-compact.zip | Bin .../using-for-0.8.8.sol-0.8.15-compact.zip | Bin .../using-for-0.8.8.sol-0.8.8-compact.zip | Bin .../using-for-0.4.0.sol-0.4.0-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.1-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.10-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.11-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.12-compact.zip | Bin .../using-for-0.4.1.sol-0.4.12-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.13-compact.zip | Bin .../using-for-0.4.1.sol-0.4.13-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.14-compact.zip | Bin .../using-for-0.4.1.sol-0.4.14-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.15-compact.zip | Bin .../using-for-0.4.1.sol-0.4.15-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.16-compact.zip | Bin .../using-for-0.4.1.sol-0.4.16-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.17-compact.zip | Bin .../using-for-0.4.1.sol-0.4.17-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.18-compact.zip | Bin .../using-for-0.4.1.sol-0.4.18-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.19-compact.zip | Bin .../using-for-0.4.1.sol-0.4.19-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.2-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.20-compact.zip | Bin .../using-for-0.4.1.sol-0.4.20-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.21-compact.zip | Bin .../using-for-0.4.1.sol-0.4.21-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.22-compact.zip | Bin .../using-for-0.4.1.sol-0.4.22-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.23-compact.zip | Bin .../using-for-0.4.1.sol-0.4.23-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.24-compact.zip | Bin .../using-for-0.4.1.sol-0.4.24-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.25-compact.zip | Bin .../using-for-0.4.1.sol-0.4.25-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.26-compact.zip | Bin .../using-for-0.4.1.sol-0.4.26-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.3-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.4-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.5-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.6-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.7-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.8-legacy.zip | Bin .../using-for-0.4.1.sol-0.4.9-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.0-compact.zip | Bin .../using-for-0.4.1.sol-0.5.0-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.1-compact.zip | Bin .../using-for-0.4.1.sol-0.5.1-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.10-compact.zip | Bin .../using-for-0.4.1.sol-0.5.10-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.11-compact.zip | Bin .../using-for-0.4.1.sol-0.5.11-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.12-compact.zip | Bin .../using-for-0.4.1.sol-0.5.12-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.13-compact.zip | Bin .../using-for-0.4.1.sol-0.5.13-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.14-compact.zip | Bin .../using-for-0.4.1.sol-0.5.14-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.15-compact.zip | Bin .../using-for-0.4.1.sol-0.5.15-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.16-compact.zip | Bin .../using-for-0.4.1.sol-0.5.16-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.17-compact.zip | Bin .../using-for-0.4.1.sol-0.5.17-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.2-compact.zip | Bin .../using-for-0.4.1.sol-0.5.2-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.3-compact.zip | Bin .../using-for-0.4.1.sol-0.5.3-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.4-compact.zip | Bin .../using-for-0.4.1.sol-0.5.4-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.5-compact.zip | Bin .../using-for-0.4.1.sol-0.5.5-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.6-compact.zip | Bin .../using-for-0.4.1.sol-0.5.6-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.7-compact.zip | Bin .../using-for-0.4.1.sol-0.5.7-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.8-compact.zip | Bin .../using-for-0.4.1.sol-0.5.8-legacy.zip | Bin .../using-for-0.4.1.sol-0.5.9-compact.zip | Bin .../using-for-0.4.1.sol-0.5.9-legacy.zip | Bin .../using-for-0.4.1.sol-0.6.0-compact.zip | Bin .../using-for-0.4.1.sol-0.6.0-legacy.zip | Bin .../using-for-0.4.1.sol-0.6.1-compact.zip | Bin .../using-for-0.4.1.sol-0.6.1-legacy.zip | Bin .../using-for-0.4.1.sol-0.6.10-compact.zip | Bin .../using-for-0.4.1.sol-0.6.10-legacy.zip | Bin .../using-for-0.4.1.sol-0.6.11-compact.zip | Bin .../using-for-0.4.1.sol-0.6.11-legacy.zip | Bin .../using-for-0.4.1.sol-0.6.12-compact.zip | Bin .../using-for-0.4.1.sol-0.6.12-legacy.zip | Bin .../using-for-0.4.1.sol-0.6.2-compact.zip | Bin .../using-for-0.4.1.sol-0.6.2-legacy.zip | Bin .../using-for-0.4.1.sol-0.6.3-compact.zip | Bin .../using-for-0.4.1.sol-0.6.3-legacy.zip | Bin .../using-for-0.4.1.sol-0.6.4-compact.zip | Bin .../using-for-0.4.1.sol-0.6.4-legacy.zip | Bin .../using-for-0.4.1.sol-0.6.5-compact.zip | Bin .../using-for-0.4.1.sol-0.6.5-legacy.zip | Bin .../using-for-0.4.1.sol-0.6.6-compact.zip | Bin .../using-for-0.4.1.sol-0.6.6-legacy.zip | Bin .../using-for-0.4.1.sol-0.6.7-compact.zip | Bin .../using-for-0.4.1.sol-0.6.7-legacy.zip | Bin .../using-for-0.4.1.sol-0.6.8-compact.zip | Bin .../using-for-0.4.1.sol-0.6.8-legacy.zip | Bin .../using-for-0.4.1.sol-0.6.9-compact.zip | Bin .../using-for-0.4.1.sol-0.6.9-legacy.zip | Bin .../using-for-0.4.1.sol-0.7.0-compact.zip | Bin .../using-for-0.4.1.sol-0.7.0-legacy.zip | Bin .../using-for-0.4.1.sol-0.7.1-compact.zip | Bin .../using-for-0.4.1.sol-0.7.1-legacy.zip | Bin .../using-for-0.4.1.sol-0.7.2-compact.zip | Bin .../using-for-0.4.1.sol-0.7.2-legacy.zip | Bin .../using-for-0.4.1.sol-0.7.3-compact.zip | Bin .../using-for-0.4.1.sol-0.7.3-legacy.zip | Bin .../using-for-0.4.1.sol-0.7.4-compact.zip | Bin .../using-for-0.4.1.sol-0.7.4-legacy.zip | Bin .../using-for-0.4.1.sol-0.7.5-compact.zip | Bin .../using-for-0.4.1.sol-0.7.5-legacy.zip | Bin .../using-for-0.4.1.sol-0.7.6-compact.zip | Bin .../using-for-0.4.1.sol-0.7.6-legacy.zip | Bin .../using-for-0.4.1.sol-0.8.0-compact.zip | Bin .../using-for-0.4.1.sol-0.8.1-compact.zip | Bin .../using-for-0.4.1.sol-0.8.10-compact.zip | Bin .../using-for-0.4.1.sol-0.8.11-compact.zip | Bin .../using-for-0.4.1.sol-0.8.12-compact.zip | Bin .../using-for-0.4.1.sol-0.8.13-compact.zip | Bin .../using-for-0.4.1.sol-0.8.14-compact.zip | Bin .../using-for-0.4.1.sol-0.8.15-compact.zip | Bin .../using-for-0.4.1.sol-0.8.2-compact.zip | Bin .../using-for-0.4.1.sol-0.8.3-compact.zip | Bin .../using-for-0.4.1.sol-0.8.4-compact.zip | Bin .../using-for-0.4.1.sol-0.8.5-compact.zip | Bin .../using-for-0.4.1.sol-0.8.6-compact.zip | Bin .../using-for-0.4.1.sol-0.8.7-compact.zip | Bin .../using-for-0.4.1.sol-0.8.8-compact.zip | Bin .../using-for-0.4.1.sol-0.8.9-compact.zip | Bin .../using-for-1-0.8.0.sol-0.8.15-compact.zip | Bin .../using-for-2-0.8.0.sol-0.8.15-compact.zip | Bin .../using-for-3-0.8.0.sol-0.8.15-compact.zip | Bin .../using-for-4-0.8.0.sol-0.8.15-compact.zip | Bin ...lias-contract-0.8.0.sol-0.8.15-compact.zip | Bin ...ias-top-level-0.8.0.sol-0.8.15-compact.zip | Bin ...ctions-list-1-0.8.0.sol-0.8.15-compact.zip | Bin ...ctions-list-2-0.8.0.sol-0.8.15-compact.zip | Bin ...ctions-list-3-0.8.0.sol-0.8.15-compact.zip | Bin ...ctions-list-4-0.8.0.sol-0.8.15-compact.zip | Bin ...ng-for-global-0.8.0.sol-0.8.15-compact.zip | Bin ...or-in-library-0.8.0.sol-0.8.15-compact.zip | Bin .../variable-0.4.0.sol-0.4.0-legacy.zip | Bin .../variable-0.4.0.sol-0.4.1-legacy.zip | Bin .../variable-0.4.0.sol-0.4.10-legacy.zip | Bin .../variable-0.4.0.sol-0.4.11-legacy.zip | Bin .../variable-0.4.0.sol-0.4.12-compact.zip | Bin .../variable-0.4.0.sol-0.4.12-legacy.zip | Bin .../variable-0.4.0.sol-0.4.13-compact.zip | Bin .../variable-0.4.0.sol-0.4.13-legacy.zip | Bin .../variable-0.4.0.sol-0.4.14-compact.zip | Bin .../variable-0.4.0.sol-0.4.14-legacy.zip | Bin .../variable-0.4.0.sol-0.4.15-compact.zip | Bin .../variable-0.4.0.sol-0.4.15-legacy.zip | Bin .../variable-0.4.0.sol-0.4.16-compact.zip | Bin .../variable-0.4.0.sol-0.4.16-legacy.zip | Bin .../variable-0.4.0.sol-0.4.17-compact.zip | Bin .../variable-0.4.0.sol-0.4.17-legacy.zip | Bin .../variable-0.4.0.sol-0.4.18-compact.zip | Bin .../variable-0.4.0.sol-0.4.18-legacy.zip | Bin .../variable-0.4.0.sol-0.4.19-compact.zip | Bin .../variable-0.4.0.sol-0.4.19-legacy.zip | Bin .../variable-0.4.0.sol-0.4.2-legacy.zip | Bin .../variable-0.4.0.sol-0.4.20-compact.zip | Bin .../variable-0.4.0.sol-0.4.20-legacy.zip | Bin .../variable-0.4.0.sol-0.4.21-compact.zip | Bin .../variable-0.4.0.sol-0.4.21-legacy.zip | Bin .../variable-0.4.0.sol-0.4.22-compact.zip | Bin .../variable-0.4.0.sol-0.4.22-legacy.zip | Bin .../variable-0.4.0.sol-0.4.23-compact.zip | Bin .../variable-0.4.0.sol-0.4.23-legacy.zip | Bin .../variable-0.4.0.sol-0.4.24-compact.zip | Bin .../variable-0.4.0.sol-0.4.24-legacy.zip | Bin .../variable-0.4.0.sol-0.4.25-compact.zip | Bin .../variable-0.4.0.sol-0.4.25-legacy.zip | Bin .../variable-0.4.0.sol-0.4.26-compact.zip | Bin .../variable-0.4.0.sol-0.4.26-legacy.zip | Bin .../variable-0.4.0.sol-0.4.3-legacy.zip | Bin .../variable-0.4.0.sol-0.4.4-legacy.zip | Bin .../variable-0.4.0.sol-0.4.5-legacy.zip | Bin .../variable-0.4.0.sol-0.4.6-legacy.zip | Bin .../variable-0.4.0.sol-0.4.7-legacy.zip | Bin .../variable-0.4.0.sol-0.4.8-legacy.zip | Bin .../variable-0.4.0.sol-0.4.9-legacy.zip | Bin .../variable-0.4.14.sol-0.4.14-compact.zip | Bin .../variable-0.4.14.sol-0.4.14-legacy.zip | Bin .../variable-0.4.14.sol-0.4.15-compact.zip | Bin .../variable-0.4.14.sol-0.4.15-legacy.zip | Bin .../variable-0.4.16.sol-0.4.16-compact.zip | Bin .../variable-0.4.16.sol-0.4.16-legacy.zip | Bin .../variable-0.4.16.sol-0.4.17-compact.zip | Bin .../variable-0.4.16.sol-0.4.17-legacy.zip | Bin .../variable-0.4.16.sol-0.4.18-compact.zip | Bin .../variable-0.4.16.sol-0.4.18-legacy.zip | Bin .../variable-0.4.16.sol-0.4.19-compact.zip | Bin .../variable-0.4.16.sol-0.4.19-legacy.zip | Bin .../variable-0.4.16.sol-0.4.20-compact.zip | Bin .../variable-0.4.16.sol-0.4.20-legacy.zip | Bin .../variable-0.4.16.sol-0.4.21-compact.zip | Bin .../variable-0.4.16.sol-0.4.21-legacy.zip | Bin .../variable-0.4.16.sol-0.4.22-compact.zip | Bin .../variable-0.4.16.sol-0.4.22-legacy.zip | Bin .../variable-0.4.16.sol-0.4.23-compact.zip | Bin .../variable-0.4.16.sol-0.4.23-legacy.zip | Bin .../variable-0.4.16.sol-0.4.24-compact.zip | Bin .../variable-0.4.16.sol-0.4.24-legacy.zip | Bin .../variable-0.4.16.sol-0.4.25-compact.zip | Bin .../variable-0.4.16.sol-0.4.25-legacy.zip | Bin .../variable-0.4.16.sol-0.4.26-compact.zip | Bin .../variable-0.4.16.sol-0.4.26-legacy.zip | Bin .../variable-0.4.5.sol-0.4.10-legacy.zip | Bin .../variable-0.4.5.sol-0.4.11-legacy.zip | Bin .../variable-0.4.5.sol-0.4.12-compact.zip | Bin .../variable-0.4.5.sol-0.4.12-legacy.zip | Bin .../variable-0.4.5.sol-0.4.13-compact.zip | Bin .../variable-0.4.5.sol-0.4.13-legacy.zip | Bin .../variable-0.4.5.sol-0.4.5-legacy.zip | Bin .../variable-0.4.5.sol-0.4.6-legacy.zip | Bin .../variable-0.4.5.sol-0.4.7-legacy.zip | Bin .../variable-0.4.5.sol-0.4.8-legacy.zip | Bin .../variable-0.4.5.sol-0.4.9-legacy.zip | Bin .../variable-0.5.0.sol-0.5.0-compact.zip | Bin .../variable-0.5.0.sol-0.5.0-legacy.zip | Bin .../variable-0.5.0.sol-0.5.1-compact.zip | Bin .../variable-0.5.0.sol-0.5.1-legacy.zip | Bin .../variable-0.5.0.sol-0.5.10-compact.zip | Bin .../variable-0.5.0.sol-0.5.10-legacy.zip | Bin .../variable-0.5.0.sol-0.5.11-compact.zip | Bin .../variable-0.5.0.sol-0.5.11-legacy.zip | Bin .../variable-0.5.0.sol-0.5.12-compact.zip | Bin .../variable-0.5.0.sol-0.5.12-legacy.zip | Bin .../variable-0.5.0.sol-0.5.13-compact.zip | Bin .../variable-0.5.0.sol-0.5.13-legacy.zip | Bin .../variable-0.5.0.sol-0.5.14-compact.zip | Bin .../variable-0.5.0.sol-0.5.14-legacy.zip | Bin .../variable-0.5.0.sol-0.5.15-compact.zip | Bin .../variable-0.5.0.sol-0.5.15-legacy.zip | Bin .../variable-0.5.0.sol-0.5.16-compact.zip | Bin .../variable-0.5.0.sol-0.5.16-legacy.zip | Bin .../variable-0.5.0.sol-0.5.17-compact.zip | Bin .../variable-0.5.0.sol-0.5.17-legacy.zip | Bin .../variable-0.5.0.sol-0.5.2-compact.zip | Bin .../variable-0.5.0.sol-0.5.2-legacy.zip | Bin .../variable-0.5.0.sol-0.5.3-compact.zip | Bin .../variable-0.5.0.sol-0.5.3-legacy.zip | Bin .../variable-0.5.0.sol-0.5.4-compact.zip | Bin .../variable-0.5.0.sol-0.5.4-legacy.zip | Bin .../variable-0.5.0.sol-0.5.5-compact.zip | Bin .../variable-0.5.0.sol-0.5.5-legacy.zip | Bin .../variable-0.5.0.sol-0.5.6-compact.zip | Bin .../variable-0.5.0.sol-0.5.6-legacy.zip | Bin .../variable-0.5.0.sol-0.5.7-compact.zip | Bin .../variable-0.5.0.sol-0.5.7-legacy.zip | Bin .../variable-0.5.0.sol-0.5.8-compact.zip | Bin .../variable-0.5.0.sol-0.5.8-legacy.zip | Bin .../variable-0.5.0.sol-0.5.9-compact.zip | Bin .../variable-0.5.0.sol-0.5.9-legacy.zip | Bin .../variable-0.5.0.sol-0.6.0-compact.zip | Bin .../variable-0.5.0.sol-0.6.0-legacy.zip | Bin .../variable-0.5.0.sol-0.6.1-compact.zip | Bin .../variable-0.5.0.sol-0.6.1-legacy.zip | Bin .../variable-0.5.0.sol-0.6.2-compact.zip | Bin .../variable-0.5.0.sol-0.6.2-legacy.zip | Bin .../variable-0.5.0.sol-0.6.3-compact.zip | Bin .../variable-0.5.0.sol-0.6.3-legacy.zip | Bin .../variable-0.5.0.sol-0.6.4-compact.zip | Bin .../variable-0.5.0.sol-0.6.4-legacy.zip | Bin .../variable-0.6.5.sol-0.6.5-compact.zip | Bin .../variable-0.6.5.sol-0.6.5-legacy.zip | Bin .../variable-0.6.5.sol-0.6.6-compact.zip | Bin .../variable-0.6.5.sol-0.6.6-legacy.zip | Bin .../variable-0.6.5.sol-0.6.7-compact.zip | Bin .../variable-0.6.5.sol-0.6.7-legacy.zip | Bin .../variable-0.6.5.sol-0.6.8-compact.zip | Bin .../variable-0.6.5.sol-0.6.8-legacy.zip | Bin .../variable-0.6.9.sol-0.6.10-compact.zip | Bin .../variable-0.6.9.sol-0.6.10-legacy.zip | Bin .../variable-0.6.9.sol-0.6.11-compact.zip | Bin .../variable-0.6.9.sol-0.6.11-legacy.zip | Bin .../variable-0.6.9.sol-0.6.12-compact.zip | Bin .../variable-0.6.9.sol-0.6.12-legacy.zip | Bin .../variable-0.6.9.sol-0.6.9-compact.zip | Bin .../variable-0.6.9.sol-0.6.9-legacy.zip | Bin .../variable-0.6.9.sol-0.7.0-compact.zip | Bin .../variable-0.6.9.sol-0.7.0-legacy.zip | Bin .../variable-0.6.9.sol-0.7.1-compact.zip | Bin .../variable-0.6.9.sol-0.7.1-legacy.zip | Bin .../variable-0.6.9.sol-0.7.2-compact.zip | Bin .../variable-0.6.9.sol-0.7.2-legacy.zip | Bin .../variable-0.6.9.sol-0.7.3-compact.zip | Bin .../variable-0.6.9.sol-0.7.3-legacy.zip | Bin .../variable-0.6.9.sol-0.7.4-compact.zip | Bin .../variable-0.6.9.sol-0.7.4-legacy.zip | Bin .../variable-0.6.9.sol-0.7.5-compact.zip | Bin .../variable-0.6.9.sol-0.7.5-legacy.zip | Bin .../variable-0.6.9.sol-0.7.6-compact.zip | Bin .../variable-0.6.9.sol-0.7.6-legacy.zip | Bin .../variable-0.8.0.sol-0.8.0-compact.zip | Bin .../variable-0.8.0.sol-0.8.1-compact.zip | Bin .../variable-0.8.0.sol-0.8.10-compact.zip | Bin .../variable-0.8.0.sol-0.8.11-compact.zip | Bin .../variable-0.8.0.sol-0.8.12-compact.zip | Bin .../variable-0.8.0.sol-0.8.13-compact.zip | Bin .../variable-0.8.0.sol-0.8.14-compact.zip | Bin .../variable-0.8.0.sol-0.8.15-compact.zip | Bin .../variable-0.8.0.sol-0.8.2-compact.zip | Bin .../variable-0.8.0.sol-0.8.3-compact.zip | Bin .../variable-0.8.0.sol-0.8.4-compact.zip | Bin .../variable-0.8.0.sol-0.8.5-compact.zip | Bin .../variable-0.8.0.sol-0.8.6-compact.zip | Bin .../variable-0.8.0.sol-0.8.7-compact.zip | Bin .../variable-0.8.0.sol-0.8.8-compact.zip | Bin .../variable-0.8.0.sol-0.8.9-compact.zip | Bin ...bledeclaration-0.4.0.sol-0.4.0-compact.zip | Bin ...bledeclaration-0.4.0.sol-0.4.1-compact.zip | Bin ...ledeclaration-0.4.0.sol-0.4.10-compact.zip | Bin ...ledeclaration-0.4.0.sol-0.4.11-compact.zip | Bin ...ledeclaration-0.4.0.sol-0.4.12-compact.zip | Bin ...ledeclaration-0.4.0.sol-0.4.13-compact.zip | Bin ...ledeclaration-0.4.0.sol-0.4.14-compact.zip | Bin ...ledeclaration-0.4.0.sol-0.4.15-compact.zip | Bin ...ledeclaration-0.4.0.sol-0.4.16-compact.zip | Bin ...ledeclaration-0.4.0.sol-0.4.17-compact.zip | Bin ...ledeclaration-0.4.0.sol-0.4.18-compact.zip | Bin ...ledeclaration-0.4.0.sol-0.4.19-compact.zip | Bin ...bledeclaration-0.4.0.sol-0.4.2-compact.zip | Bin ...ledeclaration-0.4.0.sol-0.4.20-compact.zip | Bin ...ledeclaration-0.4.0.sol-0.4.21-compact.zip | Bin ...ledeclaration-0.4.0.sol-0.4.22-compact.zip | Bin ...ledeclaration-0.4.0.sol-0.4.23-compact.zip | Bin ...bledeclaration-0.4.0.sol-0.4.3-compact.zip | Bin ...bledeclaration-0.4.0.sol-0.4.4-compact.zip | Bin ...bledeclaration-0.4.0.sol-0.4.5-compact.zip | Bin ...bledeclaration-0.4.0.sol-0.4.6-compact.zip | Bin ...bledeclaration-0.4.0.sol-0.4.7-compact.zip | Bin ...bledeclaration-0.4.0.sol-0.4.8-compact.zip | Bin ...bledeclaration-0.4.0.sol-0.4.9-compact.zip | Bin ...edeclaration-0.4.24.sol-0.4.24-compact.zip | Bin ...edeclaration-0.4.24.sol-0.4.25-compact.zip | Bin ...edeclaration-0.4.24.sol-0.4.26-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.5.0-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.5.1-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.5.10-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.5.11-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.5.12-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.5.13-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.5.14-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.5.15-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.5.16-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.5.17-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.5.2-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.5.3-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.5.4-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.5.5-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.5.6-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.5.7-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.5.8-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.5.9-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.6.0-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.6.1-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.6.10-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.6.11-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.6.12-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.6.2-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.6.3-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.6.4-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.6.5-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.6.6-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.6.7-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.6.8-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.6.9-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.7.0-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.7.1-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.7.2-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.7.3-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.7.4-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.7.5-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.7.6-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.8.0-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.8.1-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.8.10-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.8.11-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.8.12-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.8.13-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.8.14-compact.zip | Bin ...ledeclaration-0.5.0.sol-0.8.15-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.8.2-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.8.3-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.8.4-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.8.5-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.8.6-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.8.7-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.8.8-compact.zip | Bin ...bledeclaration-0.5.0.sol-0.8.9-compact.zip | Bin .../compile/while-all.sol-0.4.0-legacy.zip | Bin .../compile/while-all.sol-0.4.1-legacy.zip | Bin .../compile/while-all.sol-0.4.10-legacy.zip | Bin .../compile/while-all.sol-0.4.11-legacy.zip | Bin .../compile/while-all.sol-0.4.12-compact.zip | Bin .../compile/while-all.sol-0.4.12-legacy.zip | Bin .../compile/while-all.sol-0.4.13-compact.zip | Bin .../compile/while-all.sol-0.4.13-legacy.zip | Bin .../compile/while-all.sol-0.4.14-compact.zip | Bin .../compile/while-all.sol-0.4.14-legacy.zip | Bin .../compile/while-all.sol-0.4.15-compact.zip | Bin .../compile/while-all.sol-0.4.15-legacy.zip | Bin .../compile/while-all.sol-0.4.16-compact.zip | Bin .../compile/while-all.sol-0.4.16-legacy.zip | Bin .../compile/while-all.sol-0.4.17-compact.zip | Bin .../compile/while-all.sol-0.4.17-legacy.zip | Bin .../compile/while-all.sol-0.4.18-compact.zip | Bin .../compile/while-all.sol-0.4.18-legacy.zip | Bin .../compile/while-all.sol-0.4.19-compact.zip | Bin .../compile/while-all.sol-0.4.19-legacy.zip | Bin .../compile/while-all.sol-0.4.2-legacy.zip | Bin .../compile/while-all.sol-0.4.20-compact.zip | Bin .../compile/while-all.sol-0.4.20-legacy.zip | Bin .../compile/while-all.sol-0.4.21-compact.zip | Bin .../compile/while-all.sol-0.4.21-legacy.zip | Bin .../compile/while-all.sol-0.4.22-compact.zip | Bin .../compile/while-all.sol-0.4.22-legacy.zip | Bin .../compile/while-all.sol-0.4.23-compact.zip | Bin .../compile/while-all.sol-0.4.23-legacy.zip | Bin .../compile/while-all.sol-0.4.24-compact.zip | Bin .../compile/while-all.sol-0.4.24-legacy.zip | Bin .../compile/while-all.sol-0.4.25-compact.zip | Bin .../compile/while-all.sol-0.4.25-legacy.zip | Bin .../compile/while-all.sol-0.4.26-compact.zip | Bin .../compile/while-all.sol-0.4.26-legacy.zip | Bin .../compile/while-all.sol-0.4.3-legacy.zip | Bin .../compile/while-all.sol-0.4.4-legacy.zip | Bin .../compile/while-all.sol-0.4.5-legacy.zip | Bin .../compile/while-all.sol-0.4.6-legacy.zip | Bin .../compile/while-all.sol-0.4.7-legacy.zip | Bin .../compile/while-all.sol-0.4.8-legacy.zip | Bin .../compile/while-all.sol-0.4.9-legacy.zip | Bin .../compile/while-all.sol-0.5.0-compact.zip | Bin .../compile/while-all.sol-0.5.0-legacy.zip | Bin .../compile/while-all.sol-0.5.1-compact.zip | Bin .../compile/while-all.sol-0.5.1-legacy.zip | Bin .../compile/while-all.sol-0.5.10-compact.zip | Bin .../compile/while-all.sol-0.5.10-legacy.zip | Bin .../compile/while-all.sol-0.5.11-compact.zip | Bin .../compile/while-all.sol-0.5.11-legacy.zip | Bin .../compile/while-all.sol-0.5.12-compact.zip | Bin .../compile/while-all.sol-0.5.12-legacy.zip | Bin .../compile/while-all.sol-0.5.13-compact.zip | Bin .../compile/while-all.sol-0.5.13-legacy.zip | Bin .../compile/while-all.sol-0.5.14-compact.zip | Bin .../compile/while-all.sol-0.5.14-legacy.zip | Bin .../compile/while-all.sol-0.5.15-compact.zip | Bin .../compile/while-all.sol-0.5.15-legacy.zip | Bin .../compile/while-all.sol-0.5.16-compact.zip | Bin .../compile/while-all.sol-0.5.16-legacy.zip | Bin .../compile/while-all.sol-0.5.17-compact.zip | Bin .../compile/while-all.sol-0.5.17-legacy.zip | Bin .../compile/while-all.sol-0.5.2-compact.zip | Bin .../compile/while-all.sol-0.5.2-legacy.zip | Bin .../compile/while-all.sol-0.5.3-compact.zip | Bin .../compile/while-all.sol-0.5.3-legacy.zip | Bin .../compile/while-all.sol-0.5.4-compact.zip | Bin .../compile/while-all.sol-0.5.4-legacy.zip | Bin .../compile/while-all.sol-0.5.5-compact.zip | Bin .../compile/while-all.sol-0.5.5-legacy.zip | Bin .../compile/while-all.sol-0.5.6-compact.zip | Bin .../compile/while-all.sol-0.5.6-legacy.zip | Bin .../compile/while-all.sol-0.5.7-compact.zip | Bin .../compile/while-all.sol-0.5.7-legacy.zip | Bin .../compile/while-all.sol-0.5.8-compact.zip | Bin .../compile/while-all.sol-0.5.8-legacy.zip | Bin .../compile/while-all.sol-0.5.9-compact.zip | Bin .../compile/while-all.sol-0.5.9-legacy.zip | Bin .../compile/while-all.sol-0.6.0-compact.zip | Bin .../compile/while-all.sol-0.6.0-legacy.zip | Bin .../compile/while-all.sol-0.6.1-compact.zip | Bin .../compile/while-all.sol-0.6.1-legacy.zip | Bin .../compile/while-all.sol-0.6.10-compact.zip | Bin .../compile/while-all.sol-0.6.10-legacy.zip | Bin .../compile/while-all.sol-0.6.11-compact.zip | Bin .../compile/while-all.sol-0.6.11-legacy.zip | Bin .../compile/while-all.sol-0.6.12-compact.zip | Bin .../compile/while-all.sol-0.6.12-legacy.zip | Bin .../compile/while-all.sol-0.6.2-compact.zip | Bin .../compile/while-all.sol-0.6.2-legacy.zip | Bin .../compile/while-all.sol-0.6.3-compact.zip | Bin .../compile/while-all.sol-0.6.3-legacy.zip | Bin .../compile/while-all.sol-0.6.4-compact.zip | Bin .../compile/while-all.sol-0.6.4-legacy.zip | Bin .../compile/while-all.sol-0.6.5-compact.zip | Bin .../compile/while-all.sol-0.6.5-legacy.zip | Bin .../compile/while-all.sol-0.6.6-compact.zip | Bin .../compile/while-all.sol-0.6.6-legacy.zip | Bin .../compile/while-all.sol-0.6.7-compact.zip | Bin .../compile/while-all.sol-0.6.7-legacy.zip | Bin .../compile/while-all.sol-0.6.8-compact.zip | Bin .../compile/while-all.sol-0.6.8-legacy.zip | Bin .../compile/while-all.sol-0.6.9-compact.zip | Bin .../compile/while-all.sol-0.6.9-legacy.zip | Bin .../compile/while-all.sol-0.7.0-compact.zip | Bin .../compile/while-all.sol-0.7.0-legacy.zip | Bin .../compile/while-all.sol-0.7.1-compact.zip | Bin .../compile/while-all.sol-0.7.1-legacy.zip | Bin .../compile/while-all.sol-0.7.2-compact.zip | Bin .../compile/while-all.sol-0.7.2-legacy.zip | Bin .../compile/while-all.sol-0.7.3-compact.zip | Bin .../compile/while-all.sol-0.7.3-legacy.zip | Bin .../compile/while-all.sol-0.7.4-compact.zip | Bin .../compile/while-all.sol-0.7.4-legacy.zip | Bin .../compile/while-all.sol-0.7.5-compact.zip | Bin .../compile/while-all.sol-0.7.5-legacy.zip | Bin .../compile/while-all.sol-0.7.6-compact.zip | Bin .../compile/while-all.sol-0.7.6-legacy.zip | Bin .../compile/while-all.sol-0.8.0-compact.zip | Bin .../compile/while-all.sol-0.8.1-compact.zip | Bin .../compile/while-all.sol-0.8.10-compact.zip | Bin .../compile/while-all.sol-0.8.11-compact.zip | Bin .../compile/while-all.sol-0.8.12-compact.zip | Bin .../compile/while-all.sol-0.8.13-compact.zip | Bin .../compile/while-all.sol-0.8.14-compact.zip | Bin .../compile/while-all.sol-0.8.15-compact.zip | Bin .../compile/while-all.sol-0.8.2-compact.zip | Bin .../compile/while-all.sol-0.8.3-compact.zip | Bin .../compile/while-all.sol-0.8.4-compact.zip | Bin .../compile/while-all.sol-0.8.5-compact.zip | Bin .../compile/while-all.sol-0.8.6-compact.zip | Bin .../compile/while-all.sol-0.8.7-compact.zip | Bin .../compile/while-all.sol-0.8.8-compact.zip | Bin .../compile/while-all.sol-0.8.9-compact.zip | Bin .../compile/yul-0.4.0.sol-0.4.0-legacy.zip | Bin .../compile/yul-0.4.1.sol-0.4.1-legacy.zip | Bin .../compile/yul-0.4.1.sol-0.4.10-legacy.zip | Bin .../compile/yul-0.4.1.sol-0.4.2-legacy.zip | Bin .../compile/yul-0.4.1.sol-0.4.3-legacy.zip | Bin .../compile/yul-0.4.1.sol-0.4.4-legacy.zip | Bin .../compile/yul-0.4.1.sol-0.4.5-legacy.zip | Bin .../compile/yul-0.4.1.sol-0.4.6-legacy.zip | Bin .../compile/yul-0.4.1.sol-0.4.7-legacy.zip | Bin .../compile/yul-0.4.1.sol-0.4.8-legacy.zip | Bin .../compile/yul-0.4.1.sol-0.4.9-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.11-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.12-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.12-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.13-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.13-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.14-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.14-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.15-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.15-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.16-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.16-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.17-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.17-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.18-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.18-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.19-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.19-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.20-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.20-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.21-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.21-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.22-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.22-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.23-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.23-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.24-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.24-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.25-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.25-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.4.26-compact.zip | Bin .../compile/yul-0.4.11.sol-0.4.26-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.0-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.0-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.1-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.1-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.10-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.10-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.11-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.11-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.12-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.12-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.13-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.13-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.14-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.14-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.15-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.15-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.16-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.16-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.17-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.17-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.2-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.2-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.3-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.3-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.4-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.4-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.5-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.5-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.6-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.6-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.7-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.7-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.8-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.8-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.5.9-compact.zip | Bin .../compile/yul-0.4.11.sol-0.5.9-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.6.0-compact.zip | Bin .../compile/yul-0.4.11.sol-0.6.0-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.6.1-compact.zip | Bin .../compile/yul-0.4.11.sol-0.6.1-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.6.10-compact.zip | Bin .../compile/yul-0.4.11.sol-0.6.10-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.6.11-compact.zip | Bin .../compile/yul-0.4.11.sol-0.6.11-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.6.12-compact.zip | Bin .../compile/yul-0.4.11.sol-0.6.12-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.6.2-compact.zip | Bin .../compile/yul-0.4.11.sol-0.6.2-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.6.3-compact.zip | Bin .../compile/yul-0.4.11.sol-0.6.3-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.6.4-compact.zip | Bin .../compile/yul-0.4.11.sol-0.6.4-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.6.5-compact.zip | Bin .../compile/yul-0.4.11.sol-0.6.5-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.6.6-compact.zip | Bin .../compile/yul-0.4.11.sol-0.6.6-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.6.7-compact.zip | Bin .../compile/yul-0.4.11.sol-0.6.7-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.6.8-compact.zip | Bin .../compile/yul-0.4.11.sol-0.6.8-legacy.zip | Bin .../compile/yul-0.4.11.sol-0.6.9-compact.zip | Bin .../compile/yul-0.4.11.sol-0.6.9-legacy.zip | Bin .../compile/yul-0.7.0.sol-0.7.0-compact.zip | Bin .../compile/yul-0.7.0.sol-0.7.0-legacy.zip | Bin .../compile/yul-0.7.0.sol-0.7.1-compact.zip | Bin .../compile/yul-0.7.0.sol-0.7.1-legacy.zip | Bin .../compile/yul-0.7.0.sol-0.7.2-compact.zip | Bin .../compile/yul-0.7.0.sol-0.7.2-legacy.zip | Bin .../compile/yul-0.7.0.sol-0.7.3-compact.zip | Bin .../compile/yul-0.7.0.sol-0.7.3-legacy.zip | Bin .../compile/yul-0.7.0.sol-0.7.4-compact.zip | Bin .../compile/yul-0.7.0.sol-0.7.4-legacy.zip | Bin .../compile/yul-0.7.5.sol-0.7.5-compact.zip | Bin .../compile/yul-0.7.5.sol-0.7.5-legacy.zip | Bin .../compile/yul-0.7.5.sol-0.7.6-compact.zip | Bin .../compile/yul-0.7.5.sol-0.7.6-legacy.zip | Bin .../compile/yul-0.8.0.sol-0.8.0-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.1-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.10-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.11-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.12-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.13-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.14-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.15-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.2-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.3-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.4-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.5-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.6-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.7-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.8-compact.zip | Bin .../compile/yul-0.8.0.sol-0.8.9-compact.zip | Bin ...ate-constant-access.sol-0.8.16-compact.zip | Bin .../yul-top-level-0.8.0.sol-0.8.0-compact.zip | Bin .../test_data}/complex_imports/FreeFuns.sol | 0 .../complex_imports/import_aliases/import.sol | 0 .../complex_imports/import_aliases/test.sol | 0 .../import_aliases_issue_1319/import.sol | 0 .../import_aliases_issue_1319/test.sol | 0 .../import_aliases_issue_1319/test_fail.sol | 0 .../complex_imports/import_free/Caller.sol | 0 .../test_data}/conditional-all.sol | 0 .../solc_parsing/test_data}/continue-all.sol | 0 .../test_data}/contract-0.4.0.sol | 0 .../test_data}/contract-0.4.22.sol | 0 .../test_data}/contract-0.6.0.sol | 0 .../test_data}/custom-error-selector.sol | 0 .../test_data}/custom_error-0.4.0.sol | 0 .../test_data}/custom_error-0.8.4.sol | 0 .../custom_error_with_state_variable.sol | 0 .../solc_parsing/test_data}/dowhile-0.4.0.sol | 0 .../solc_parsing/test_data}/dowhile-0.4.5.sol | 0 .../solc_parsing/test_data}/emit-0.4.0.sol | 0 .../solc_parsing/test_data}/emit-0.4.21.sol | 0 .../solc_parsing/test_data}/emit-0.4.8.sol | 0 .../solc_parsing/test_data}/emit-0.5.0.sol | 0 .../solc_parsing/test_data}/enum-0.4.0.sol | 0 .../solc_parsing/test_data}/enum-0.8.0.sol | 0 .../solc_parsing/test_data}/event-all.sol | 0 .../assembly-all.sol-0.4.0-compact.json | 0 .../assembly-all.sol-0.4.0-legacy.json | 0 .../assembly-all.sol-0.4.1-compact.json | 0 .../assembly-all.sol-0.4.1-legacy.json | 0 .../assembly-all.sol-0.4.10-compact.json | 0 .../assembly-all.sol-0.4.10-legacy.json | 0 .../assembly-all.sol-0.4.11-compact.json | 0 .../assembly-all.sol-0.4.11-legacy.json | 0 .../assembly-all.sol-0.4.12-compact.json | 0 .../assembly-all.sol-0.4.12-legacy.json | 0 .../assembly-all.sol-0.4.13-compact.json | 0 .../assembly-all.sol-0.4.13-legacy.json | 0 .../assembly-all.sol-0.4.14-compact.json | 0 .../assembly-all.sol-0.4.14-legacy.json | 0 .../assembly-all.sol-0.4.15-compact.json | 0 .../assembly-all.sol-0.4.15-legacy.json | 0 .../assembly-all.sol-0.4.16-compact.json | 0 .../assembly-all.sol-0.4.16-legacy.json | 0 .../assembly-all.sol-0.4.17-compact.json | 0 .../assembly-all.sol-0.4.17-legacy.json | 0 .../assembly-all.sol-0.4.18-compact.json | 0 .../assembly-all.sol-0.4.18-legacy.json | 0 .../assembly-all.sol-0.4.19-compact.json | 0 .../assembly-all.sol-0.4.19-legacy.json | 0 .../assembly-all.sol-0.4.2-compact.json | 0 .../assembly-all.sol-0.4.2-legacy.json | 0 .../assembly-all.sol-0.4.20-compact.json | 0 .../assembly-all.sol-0.4.20-legacy.json | 0 .../assembly-all.sol-0.4.21-compact.json | 0 .../assembly-all.sol-0.4.21-legacy.json | 0 .../assembly-all.sol-0.4.22-compact.json | 0 .../assembly-all.sol-0.4.22-legacy.json | 0 .../assembly-all.sol-0.4.23-compact.json | 0 .../assembly-all.sol-0.4.23-legacy.json | 0 .../assembly-all.sol-0.4.24-compact.json | 0 .../assembly-all.sol-0.4.24-legacy.json | 0 .../assembly-all.sol-0.4.25-compact.json | 0 .../assembly-all.sol-0.4.25-legacy.json | 0 .../assembly-all.sol-0.4.26-compact.json | 0 .../assembly-all.sol-0.4.26-legacy.json | 0 .../assembly-all.sol-0.4.3-compact.json | 0 .../assembly-all.sol-0.4.3-legacy.json | 0 .../assembly-all.sol-0.4.4-compact.json | 0 .../assembly-all.sol-0.4.4-legacy.json | 0 .../assembly-all.sol-0.4.5-compact.json | 0 .../assembly-all.sol-0.4.5-legacy.json | 0 .../assembly-all.sol-0.4.6-compact.json | 0 .../assembly-all.sol-0.4.6-legacy.json | 0 .../assembly-all.sol-0.4.7-compact.json | 0 .../assembly-all.sol-0.4.7-legacy.json | 0 .../assembly-all.sol-0.4.8-compact.json | 0 .../assembly-all.sol-0.4.8-legacy.json | 0 .../assembly-all.sol-0.4.9-compact.json | 0 .../assembly-all.sol-0.4.9-legacy.json | 0 .../assembly-all.sol-0.5.0-compact.json | 0 .../assembly-all.sol-0.5.0-legacy.json | 0 .../assembly-all.sol-0.5.1-compact.json | 0 .../assembly-all.sol-0.5.1-legacy.json | 0 .../assembly-all.sol-0.5.10-compact.json | 0 .../assembly-all.sol-0.5.10-legacy.json | 0 .../assembly-all.sol-0.5.11-compact.json | 0 .../assembly-all.sol-0.5.11-legacy.json | 0 .../assembly-all.sol-0.5.12-compact.json | 0 .../assembly-all.sol-0.5.12-legacy.json | 0 .../assembly-all.sol-0.5.13-compact.json | 0 .../assembly-all.sol-0.5.13-legacy.json | 0 .../assembly-all.sol-0.5.14-compact.json | 0 .../assembly-all.sol-0.5.14-legacy.json | 0 .../assembly-all.sol-0.5.15-compact.json | 0 .../assembly-all.sol-0.5.15-legacy.json | 0 .../assembly-all.sol-0.5.16-compact.json | 0 .../assembly-all.sol-0.5.16-legacy.json | 0 .../assembly-all.sol-0.5.17-compact.json | 0 .../assembly-all.sol-0.5.17-legacy.json | 0 .../assembly-all.sol-0.5.2-compact.json | 0 .../assembly-all.sol-0.5.2-legacy.json | 0 .../assembly-all.sol-0.5.3-compact.json | 0 .../assembly-all.sol-0.5.3-legacy.json | 0 .../assembly-all.sol-0.5.4-compact.json | 0 .../assembly-all.sol-0.5.4-legacy.json | 0 .../assembly-all.sol-0.5.5-compact.json | 0 .../assembly-all.sol-0.5.5-legacy.json | 0 .../assembly-all.sol-0.5.6-compact.json | 0 .../assembly-all.sol-0.5.6-legacy.json | 0 .../assembly-all.sol-0.5.7-compact.json | 0 .../assembly-all.sol-0.5.7-legacy.json | 0 .../assembly-all.sol-0.5.8-compact.json | 0 .../assembly-all.sol-0.5.8-legacy.json | 0 .../assembly-all.sol-0.5.9-compact.json | 0 .../assembly-all.sol-0.5.9-legacy.json | 0 .../assembly-all.sol-0.6.0-compact.json | 0 .../assembly-all.sol-0.6.0-legacy.json | 0 .../assembly-all.sol-0.6.1-compact.json | 0 .../assembly-all.sol-0.6.1-legacy.json | 0 .../assembly-all.sol-0.6.10-compact.json | 0 .../assembly-all.sol-0.6.10-legacy.json | 0 .../assembly-all.sol-0.6.11-compact.json | 0 .../assembly-all.sol-0.6.11-legacy.json | 0 .../assembly-all.sol-0.6.12-compact.json | 0 .../assembly-all.sol-0.6.12-legacy.json | 0 .../assembly-all.sol-0.6.2-compact.json | 0 .../assembly-all.sol-0.6.2-legacy.json | 0 .../assembly-all.sol-0.6.3-compact.json | 0 .../assembly-all.sol-0.6.3-legacy.json | 0 .../assembly-all.sol-0.6.4-compact.json | 0 .../assembly-all.sol-0.6.4-legacy.json | 0 .../assembly-all.sol-0.6.5-compact.json | 0 .../assembly-all.sol-0.6.5-legacy.json | 0 .../assembly-all.sol-0.6.6-compact.json | 0 .../assembly-all.sol-0.6.6-legacy.json | 0 .../assembly-all.sol-0.6.7-compact.json | 0 .../assembly-all.sol-0.6.7-legacy.json | 0 .../assembly-all.sol-0.6.8-compact.json | 0 .../assembly-all.sol-0.6.8-legacy.json | 0 .../assembly-all.sol-0.6.9-compact.json | 0 .../assembly-all.sol-0.6.9-legacy.json | 0 .../assembly-all.sol-0.7.0-compact.json | 0 .../assembly-all.sol-0.7.0-legacy.json | 0 .../assembly-all.sol-0.7.1-compact.json | 0 .../assembly-all.sol-0.7.1-legacy.json | 0 .../assembly-all.sol-0.7.2-compact.json | 0 .../assembly-all.sol-0.7.2-legacy.json | 0 .../assembly-all.sol-0.7.3-compact.json | 0 .../assembly-all.sol-0.7.3-legacy.json | 0 .../assembly-all.sol-0.7.4-compact.json | 0 .../assembly-all.sol-0.7.4-legacy.json | 0 .../assembly-all.sol-0.7.5-compact.json | 0 .../assembly-all.sol-0.7.5-legacy.json | 0 .../assembly-all.sol-0.7.6-compact.json | 0 .../assembly-all.sol-0.7.6-legacy.json | 0 .../assembly-all.sol-0.8.0-compact.json | 0 .../assembly-all.sol-0.8.1-compact.json | 0 .../assembly-all.sol-0.8.10-compact.json | 0 .../assembly-all.sol-0.8.11-compact.json | 0 .../assembly-all.sol-0.8.12-compact.json | 0 .../assembly-all.sol-0.8.13-compact.json | 0 .../assembly-all.sol-0.8.14-compact.json | 0 .../assembly-all.sol-0.8.15-compact.json | 0 .../assembly-all.sol-0.8.2-compact.json | 0 .../assembly-all.sol-0.8.3-compact.json | 0 .../assembly-all.sol-0.8.4-compact.json | 0 .../assembly-all.sol-0.8.5-compact.json | 0 .../assembly-all.sol-0.8.6-compact.json | 0 .../assembly-all.sol-0.8.7-compact.json | 0 .../assembly-all.sol-0.8.8-compact.json | 0 .../assembly-all.sol-0.8.9-compact.json | 0 .../assignment-0.4.0.sol-0.4.0-compact.json | 0 .../assignment-0.4.0.sol-0.4.0-legacy.json | 0 .../assignment-0.4.0.sol-0.4.1-compact.json | 0 .../assignment-0.4.0.sol-0.4.1-legacy.json | 0 .../assignment-0.4.0.sol-0.4.10-compact.json | 0 .../assignment-0.4.0.sol-0.4.10-legacy.json | 0 .../assignment-0.4.0.sol-0.4.11-compact.json | 0 .../assignment-0.4.0.sol-0.4.11-legacy.json | 0 .../assignment-0.4.0.sol-0.4.12-compact.json | 0 .../assignment-0.4.0.sol-0.4.12-legacy.json | 0 .../assignment-0.4.0.sol-0.4.13-compact.json | 0 .../assignment-0.4.0.sol-0.4.13-legacy.json | 0 .../assignment-0.4.0.sol-0.4.14-compact.json | 0 .../assignment-0.4.0.sol-0.4.14-legacy.json | 0 .../assignment-0.4.0.sol-0.4.15-compact.json | 0 .../assignment-0.4.0.sol-0.4.15-legacy.json | 0 .../assignment-0.4.0.sol-0.4.16-compact.json | 0 .../assignment-0.4.0.sol-0.4.16-legacy.json | 0 .../assignment-0.4.0.sol-0.4.17-compact.json | 0 .../assignment-0.4.0.sol-0.4.17-legacy.json | 0 .../assignment-0.4.0.sol-0.4.18-compact.json | 0 .../assignment-0.4.0.sol-0.4.18-legacy.json | 0 .../assignment-0.4.0.sol-0.4.19-compact.json | 0 .../assignment-0.4.0.sol-0.4.19-legacy.json | 0 .../assignment-0.4.0.sol-0.4.2-compact.json | 0 .../assignment-0.4.0.sol-0.4.2-legacy.json | 0 .../assignment-0.4.0.sol-0.4.20-compact.json | 0 .../assignment-0.4.0.sol-0.4.20-legacy.json | 0 .../assignment-0.4.0.sol-0.4.21-compact.json | 0 .../assignment-0.4.0.sol-0.4.21-legacy.json | 0 .../assignment-0.4.0.sol-0.4.22-compact.json | 0 .../assignment-0.4.0.sol-0.4.22-legacy.json | 0 .../assignment-0.4.0.sol-0.4.23-compact.json | 0 .../assignment-0.4.0.sol-0.4.23-legacy.json | 0 .../assignment-0.4.0.sol-0.4.24-compact.json | 0 .../assignment-0.4.0.sol-0.4.24-legacy.json | 0 .../assignment-0.4.0.sol-0.4.25-compact.json | 0 .../assignment-0.4.0.sol-0.4.25-legacy.json | 0 .../assignment-0.4.0.sol-0.4.26-compact.json | 0 .../assignment-0.4.0.sol-0.4.26-legacy.json | 0 .../assignment-0.4.0.sol-0.4.3-compact.json | 0 .../assignment-0.4.0.sol-0.4.3-legacy.json | 0 .../assignment-0.4.0.sol-0.4.4-compact.json | 0 .../assignment-0.4.0.sol-0.4.4-legacy.json | 0 .../assignment-0.4.0.sol-0.4.5-compact.json | 0 .../assignment-0.4.0.sol-0.4.5-legacy.json | 0 .../assignment-0.4.0.sol-0.4.6-compact.json | 0 .../assignment-0.4.0.sol-0.4.6-legacy.json | 0 .../assignment-0.4.0.sol-0.4.7-compact.json | 0 .../assignment-0.4.0.sol-0.4.7-legacy.json | 0 .../assignment-0.4.0.sol-0.4.8-compact.json | 0 .../assignment-0.4.0.sol-0.4.8-legacy.json | 0 .../assignment-0.4.0.sol-0.4.9-compact.json | 0 .../assignment-0.4.0.sol-0.4.9-legacy.json | 0 .../assignment-0.4.7.sol-0.4.7-compact.json | 0 .../assignment-0.4.7.sol-0.4.7-legacy.json | 0 .../assignment-0.4.7.sol-0.4.8-compact.json | 0 .../assignment-0.4.7.sol-0.4.8-legacy.json | 0 .../assignment-0.4.7.sol-0.4.9-compact.json | 0 .../assignment-0.4.7.sol-0.4.9-legacy.json | 0 .../assignment-0.4.7.sol-0.5.0-compact.json | 0 .../assignment-0.4.7.sol-0.5.0-legacy.json | 0 .../assignment-0.4.7.sol-0.5.1-compact.json | 0 .../assignment-0.4.7.sol-0.5.1-legacy.json | 0 .../assignment-0.4.7.sol-0.5.10-compact.json | 0 .../assignment-0.4.7.sol-0.5.10-legacy.json | 0 .../assignment-0.4.7.sol-0.5.11-compact.json | 0 .../assignment-0.4.7.sol-0.5.11-legacy.json | 0 .../assignment-0.4.7.sol-0.5.12-compact.json | 0 .../assignment-0.4.7.sol-0.5.12-legacy.json | 0 .../assignment-0.4.7.sol-0.5.13-compact.json | 0 .../assignment-0.4.7.sol-0.5.13-legacy.json | 0 .../assignment-0.4.7.sol-0.5.14-compact.json | 0 .../assignment-0.4.7.sol-0.5.14-legacy.json | 0 .../assignment-0.4.7.sol-0.5.15-compact.json | 0 .../assignment-0.4.7.sol-0.5.15-legacy.json | 0 .../assignment-0.4.7.sol-0.5.16-compact.json | 0 .../assignment-0.4.7.sol-0.5.16-legacy.json | 0 .../assignment-0.4.7.sol-0.5.17-compact.json | 0 .../assignment-0.4.7.sol-0.5.17-legacy.json | 0 .../assignment-0.4.7.sol-0.5.2-compact.json | 0 .../assignment-0.4.7.sol-0.5.2-legacy.json | 0 .../assignment-0.4.7.sol-0.5.3-compact.json | 0 .../assignment-0.4.7.sol-0.5.3-legacy.json | 0 .../assignment-0.4.7.sol-0.5.4-compact.json | 0 .../assignment-0.4.7.sol-0.5.4-legacy.json | 0 .../assignment-0.4.7.sol-0.5.5-compact.json | 0 .../assignment-0.4.7.sol-0.5.5-legacy.json | 0 .../assignment-0.4.7.sol-0.5.6-compact.json | 0 .../assignment-0.4.7.sol-0.5.6-legacy.json | 0 .../assignment-0.4.7.sol-0.5.7-compact.json | 0 .../assignment-0.4.7.sol-0.5.7-legacy.json | 0 .../assignment-0.4.7.sol-0.5.8-compact.json | 0 .../assignment-0.4.7.sol-0.5.8-legacy.json | 0 .../assignment-0.4.7.sol-0.5.9-compact.json | 0 .../assignment-0.4.7.sol-0.5.9-legacy.json | 0 .../assignment-0.4.7.sol-0.6.0-compact.json | 0 .../assignment-0.4.7.sol-0.6.0-legacy.json | 0 .../assignment-0.4.7.sol-0.6.1-compact.json | 0 .../assignment-0.4.7.sol-0.6.1-legacy.json | 0 .../assignment-0.4.7.sol-0.6.10-compact.json | 0 .../assignment-0.4.7.sol-0.6.10-legacy.json | 0 .../assignment-0.4.7.sol-0.6.11-compact.json | 0 .../assignment-0.4.7.sol-0.6.11-legacy.json | 0 .../assignment-0.4.7.sol-0.6.12-compact.json | 0 .../assignment-0.4.7.sol-0.6.12-legacy.json | 0 .../assignment-0.4.7.sol-0.6.2-compact.json | 0 .../assignment-0.4.7.sol-0.6.2-legacy.json | 0 .../assignment-0.4.7.sol-0.6.3-compact.json | 0 .../assignment-0.4.7.sol-0.6.3-legacy.json | 0 .../assignment-0.4.7.sol-0.6.4-compact.json | 0 .../assignment-0.4.7.sol-0.6.4-legacy.json | 0 .../assignment-0.4.7.sol-0.6.5-compact.json | 0 .../assignment-0.4.7.sol-0.6.5-legacy.json | 0 .../assignment-0.4.7.sol-0.6.6-compact.json | 0 .../assignment-0.4.7.sol-0.6.6-legacy.json | 0 .../assignment-0.4.7.sol-0.6.7-compact.json | 0 .../assignment-0.4.7.sol-0.6.7-legacy.json | 0 .../assignment-0.4.7.sol-0.6.8-compact.json | 0 .../assignment-0.4.7.sol-0.6.8-legacy.json | 0 .../assignment-0.4.7.sol-0.6.9-compact.json | 0 .../assignment-0.4.7.sol-0.6.9-legacy.json | 0 .../assignment-0.4.7.sol-0.7.0-compact.json | 0 .../assignment-0.4.7.sol-0.7.0-legacy.json | 0 .../assignment-0.4.7.sol-0.7.1-compact.json | 0 .../assignment-0.4.7.sol-0.7.1-legacy.json | 0 .../assignment-0.4.7.sol-0.7.2-compact.json | 0 .../assignment-0.4.7.sol-0.7.2-legacy.json | 0 .../assignment-0.4.7.sol-0.7.3-compact.json | 0 .../assignment-0.4.7.sol-0.7.3-legacy.json | 0 .../assignment-0.4.7.sol-0.7.4-compact.json | 0 .../assignment-0.4.7.sol-0.7.4-legacy.json | 0 .../assignment-0.4.7.sol-0.7.5-compact.json | 0 .../assignment-0.4.7.sol-0.7.5-legacy.json | 0 .../assignment-0.4.7.sol-0.7.6-compact.json | 0 .../assignment-0.4.7.sol-0.7.6-legacy.json | 0 .../assignment-0.4.7.sol-0.8.0-compact.json | 0 .../assignment-0.4.7.sol-0.8.1-compact.json | 0 .../assignment-0.4.7.sol-0.8.10-compact.json | 0 .../assignment-0.4.7.sol-0.8.11-compact.json | 0 .../assignment-0.4.7.sol-0.8.12-compact.json | 0 .../assignment-0.4.7.sol-0.8.13-compact.json | 0 .../assignment-0.4.7.sol-0.8.14-compact.json | 0 .../assignment-0.4.7.sol-0.8.15-compact.json | 0 .../assignment-0.4.7.sol-0.8.2-compact.json | 0 .../assignment-0.4.7.sol-0.8.3-compact.json | 0 .../assignment-0.4.7.sol-0.8.4-compact.json | 0 .../assignment-0.4.7.sol-0.8.5-compact.json | 0 .../assignment-0.4.7.sol-0.8.6-compact.json | 0 .../assignment-0.4.7.sol-0.8.7-compact.json | 0 .../assignment-0.4.7.sol-0.8.8-compact.json | 0 .../assignment-0.4.7.sol-0.8.9-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.0-compact.json | 0 ...inaryoperation-0.4.0.sol-0.4.0-legacy.json | 0 ...naryoperation-0.4.0.sol-0.4.1-compact.json | 0 ...inaryoperation-0.4.0.sol-0.4.1-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.10-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.10-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.11-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.11-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.12-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.12-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.13-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.13-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.14-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.14-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.15-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.15-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.16-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.16-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.17-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.17-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.18-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.18-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.19-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.19-legacy.json | 0 ...naryoperation-0.4.0.sol-0.4.2-compact.json | 0 ...inaryoperation-0.4.0.sol-0.4.2-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.20-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.20-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.21-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.21-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.22-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.22-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.23-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.23-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.24-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.24-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.25-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.25-legacy.json | 0 ...aryoperation-0.4.0.sol-0.4.26-compact.json | 0 ...naryoperation-0.4.0.sol-0.4.26-legacy.json | 0 ...naryoperation-0.4.0.sol-0.4.3-compact.json | 0 ...inaryoperation-0.4.0.sol-0.4.3-legacy.json | 0 ...naryoperation-0.4.0.sol-0.4.4-compact.json | 0 ...inaryoperation-0.4.0.sol-0.4.4-legacy.json | 0 ...naryoperation-0.4.0.sol-0.4.5-compact.json | 0 ...inaryoperation-0.4.0.sol-0.4.5-legacy.json | 0 ...naryoperation-0.4.0.sol-0.4.6-compact.json | 0 ...inaryoperation-0.4.0.sol-0.4.6-legacy.json | 0 ...naryoperation-0.4.0.sol-0.4.7-compact.json | 0 ...inaryoperation-0.4.0.sol-0.4.7-legacy.json | 0 ...naryoperation-0.4.0.sol-0.4.8-compact.json | 0 ...inaryoperation-0.4.0.sol-0.4.8-legacy.json | 0 ...naryoperation-0.4.0.sol-0.4.9-compact.json | 0 ...inaryoperation-0.4.0.sol-0.4.9-legacy.json | 0 ...naryoperation-0.4.7.sol-0.4.7-compact.json | 0 ...inaryoperation-0.4.7.sol-0.4.7-legacy.json | 0 ...naryoperation-0.4.7.sol-0.4.8-compact.json | 0 ...inaryoperation-0.4.7.sol-0.4.8-legacy.json | 0 ...naryoperation-0.4.7.sol-0.4.9-compact.json | 0 ...inaryoperation-0.4.7.sol-0.4.9-legacy.json | 0 ...naryoperation-0.4.7.sol-0.5.0-compact.json | 0 ...inaryoperation-0.4.7.sol-0.5.0-legacy.json | 0 ...naryoperation-0.4.7.sol-0.5.1-compact.json | 0 ...inaryoperation-0.4.7.sol-0.5.1-legacy.json | 0 ...aryoperation-0.4.7.sol-0.5.10-compact.json | 0 ...naryoperation-0.4.7.sol-0.5.10-legacy.json | 0 ...aryoperation-0.4.7.sol-0.5.11-compact.json | 0 ...naryoperation-0.4.7.sol-0.5.11-legacy.json | 0 ...aryoperation-0.4.7.sol-0.5.12-compact.json | 0 ...naryoperation-0.4.7.sol-0.5.12-legacy.json | 0 ...aryoperation-0.4.7.sol-0.5.13-compact.json | 0 ...naryoperation-0.4.7.sol-0.5.13-legacy.json | 0 ...aryoperation-0.4.7.sol-0.5.14-compact.json | 0 ...naryoperation-0.4.7.sol-0.5.14-legacy.json | 0 ...aryoperation-0.4.7.sol-0.5.15-compact.json | 0 ...naryoperation-0.4.7.sol-0.5.15-legacy.json | 0 ...aryoperation-0.4.7.sol-0.5.16-compact.json | 0 ...naryoperation-0.4.7.sol-0.5.16-legacy.json | 0 ...aryoperation-0.4.7.sol-0.5.17-compact.json | 0 ...naryoperation-0.4.7.sol-0.5.17-legacy.json | 0 ...naryoperation-0.4.7.sol-0.5.2-compact.json | 0 ...inaryoperation-0.4.7.sol-0.5.2-legacy.json | 0 ...naryoperation-0.4.7.sol-0.5.3-compact.json | 0 ...inaryoperation-0.4.7.sol-0.5.3-legacy.json | 0 ...naryoperation-0.4.7.sol-0.5.4-compact.json | 0 ...inaryoperation-0.4.7.sol-0.5.4-legacy.json | 0 ...naryoperation-0.4.7.sol-0.5.5-compact.json | 0 ...inaryoperation-0.4.7.sol-0.5.5-legacy.json | 0 ...naryoperation-0.4.7.sol-0.5.6-compact.json | 0 ...inaryoperation-0.4.7.sol-0.5.6-legacy.json | 0 ...naryoperation-0.4.7.sol-0.5.7-compact.json | 0 ...inaryoperation-0.4.7.sol-0.5.7-legacy.json | 0 ...naryoperation-0.4.7.sol-0.5.8-compact.json | 0 ...inaryoperation-0.4.7.sol-0.5.8-legacy.json | 0 ...naryoperation-0.4.7.sol-0.5.9-compact.json | 0 ...inaryoperation-0.4.7.sol-0.5.9-legacy.json | 0 ...naryoperation-0.4.7.sol-0.6.0-compact.json | 0 ...inaryoperation-0.4.7.sol-0.6.0-legacy.json | 0 ...naryoperation-0.4.7.sol-0.6.1-compact.json | 0 ...inaryoperation-0.4.7.sol-0.6.1-legacy.json | 0 ...aryoperation-0.4.7.sol-0.6.10-compact.json | 0 ...naryoperation-0.4.7.sol-0.6.10-legacy.json | 0 ...aryoperation-0.4.7.sol-0.6.11-compact.json | 0 ...naryoperation-0.4.7.sol-0.6.11-legacy.json | 0 ...aryoperation-0.4.7.sol-0.6.12-compact.json | 0 ...naryoperation-0.4.7.sol-0.6.12-legacy.json | 0 ...naryoperation-0.4.7.sol-0.6.2-compact.json | 0 ...inaryoperation-0.4.7.sol-0.6.2-legacy.json | 0 ...naryoperation-0.4.7.sol-0.6.3-compact.json | 0 ...inaryoperation-0.4.7.sol-0.6.3-legacy.json | 0 ...naryoperation-0.4.7.sol-0.6.4-compact.json | 0 ...inaryoperation-0.4.7.sol-0.6.4-legacy.json | 0 ...naryoperation-0.4.7.sol-0.6.5-compact.json | 0 ...inaryoperation-0.4.7.sol-0.6.5-legacy.json | 0 ...naryoperation-0.4.7.sol-0.6.6-compact.json | 0 ...inaryoperation-0.4.7.sol-0.6.6-legacy.json | 0 ...naryoperation-0.4.7.sol-0.6.7-compact.json | 0 ...inaryoperation-0.4.7.sol-0.6.7-legacy.json | 0 ...naryoperation-0.4.7.sol-0.6.8-compact.json | 0 ...inaryoperation-0.4.7.sol-0.6.8-legacy.json | 0 ...naryoperation-0.4.7.sol-0.6.9-compact.json | 0 ...inaryoperation-0.4.7.sol-0.6.9-legacy.json | 0 ...naryoperation-0.4.7.sol-0.7.0-compact.json | 0 ...inaryoperation-0.4.7.sol-0.7.0-legacy.json | 0 ...naryoperation-0.4.7.sol-0.7.1-compact.json | 0 ...inaryoperation-0.4.7.sol-0.7.1-legacy.json | 0 ...naryoperation-0.4.7.sol-0.7.2-compact.json | 0 ...inaryoperation-0.4.7.sol-0.7.2-legacy.json | 0 ...naryoperation-0.4.7.sol-0.7.3-compact.json | 0 ...inaryoperation-0.4.7.sol-0.7.3-legacy.json | 0 ...naryoperation-0.4.7.sol-0.7.4-compact.json | 0 ...inaryoperation-0.4.7.sol-0.7.4-legacy.json | 0 ...naryoperation-0.4.7.sol-0.7.5-compact.json | 0 ...inaryoperation-0.4.7.sol-0.7.5-legacy.json | 0 ...naryoperation-0.4.7.sol-0.7.6-compact.json | 0 ...inaryoperation-0.4.7.sol-0.7.6-legacy.json | 0 ...naryoperation-0.4.7.sol-0.8.0-compact.json | 0 ...naryoperation-0.4.7.sol-0.8.1-compact.json | 0 ...aryoperation-0.4.7.sol-0.8.10-compact.json | 0 ...aryoperation-0.4.7.sol-0.8.11-compact.json | 0 ...aryoperation-0.4.7.sol-0.8.12-compact.json | 0 ...naryoperation-0.4.7.sol-0.8.2-compact.json | 0 ...naryoperation-0.4.7.sol-0.8.3-compact.json | 0 ...naryoperation-0.4.7.sol-0.8.4-compact.json | 0 ...naryoperation-0.4.7.sol-0.8.5-compact.json | 0 ...naryoperation-0.4.7.sol-0.8.6-compact.json | 0 ...naryoperation-0.4.7.sol-0.8.7-compact.json | 0 ...naryoperation-0.4.7.sol-0.8.8-compact.json | 0 ...naryoperation-0.4.7.sol-0.8.9-compact.json | 0 .../expected/break-all.sol-0.4.0-compact.json | 0 .../expected/break-all.sol-0.4.0-legacy.json | 0 .../expected/break-all.sol-0.4.1-compact.json | 0 .../expected/break-all.sol-0.4.1-legacy.json | 0 .../break-all.sol-0.4.10-compact.json | 0 .../expected/break-all.sol-0.4.10-legacy.json | 0 .../break-all.sol-0.4.11-compact.json | 0 .../expected/break-all.sol-0.4.11-legacy.json | 0 .../break-all.sol-0.4.12-compact.json | 0 .../expected/break-all.sol-0.4.12-legacy.json | 0 .../break-all.sol-0.4.13-compact.json | 0 .../expected/break-all.sol-0.4.13-legacy.json | 0 .../break-all.sol-0.4.14-compact.json | 0 .../expected/break-all.sol-0.4.14-legacy.json | 0 .../break-all.sol-0.4.15-compact.json | 0 .../expected/break-all.sol-0.4.15-legacy.json | 0 .../break-all.sol-0.4.16-compact.json | 0 .../expected/break-all.sol-0.4.16-legacy.json | 0 .../break-all.sol-0.4.17-compact.json | 0 .../expected/break-all.sol-0.4.17-legacy.json | 0 .../break-all.sol-0.4.18-compact.json | 0 .../expected/break-all.sol-0.4.18-legacy.json | 0 .../break-all.sol-0.4.19-compact.json | 0 .../expected/break-all.sol-0.4.19-legacy.json | 0 .../expected/break-all.sol-0.4.2-compact.json | 0 .../expected/break-all.sol-0.4.2-legacy.json | 0 .../break-all.sol-0.4.20-compact.json | 0 .../expected/break-all.sol-0.4.20-legacy.json | 0 .../break-all.sol-0.4.21-compact.json | 0 .../expected/break-all.sol-0.4.21-legacy.json | 0 .../break-all.sol-0.4.22-compact.json | 0 .../expected/break-all.sol-0.4.22-legacy.json | 0 .../break-all.sol-0.4.23-compact.json | 0 .../expected/break-all.sol-0.4.23-legacy.json | 0 .../break-all.sol-0.4.24-compact.json | 0 .../expected/break-all.sol-0.4.24-legacy.json | 0 .../break-all.sol-0.4.25-compact.json | 0 .../expected/break-all.sol-0.4.25-legacy.json | 0 .../break-all.sol-0.4.26-compact.json | 0 .../expected/break-all.sol-0.4.26-legacy.json | 0 .../expected/break-all.sol-0.4.3-compact.json | 0 .../expected/break-all.sol-0.4.3-legacy.json | 0 .../expected/break-all.sol-0.4.4-compact.json | 0 .../expected/break-all.sol-0.4.4-legacy.json | 0 .../expected/break-all.sol-0.4.5-compact.json | 0 .../expected/break-all.sol-0.4.5-legacy.json | 0 .../expected/break-all.sol-0.4.6-compact.json | 0 .../expected/break-all.sol-0.4.6-legacy.json | 0 .../expected/break-all.sol-0.4.7-compact.json | 0 .../expected/break-all.sol-0.4.7-legacy.json | 0 .../expected/break-all.sol-0.4.8-compact.json | 0 .../expected/break-all.sol-0.4.8-legacy.json | 0 .../expected/break-all.sol-0.4.9-compact.json | 0 .../expected/break-all.sol-0.4.9-legacy.json | 0 .../expected/break-all.sol-0.5.0-compact.json | 0 .../expected/break-all.sol-0.5.0-legacy.json | 0 .../expected/break-all.sol-0.5.1-compact.json | 0 .../expected/break-all.sol-0.5.1-legacy.json | 0 .../break-all.sol-0.5.10-compact.json | 0 .../expected/break-all.sol-0.5.10-legacy.json | 0 .../break-all.sol-0.5.11-compact.json | 0 .../expected/break-all.sol-0.5.11-legacy.json | 0 .../break-all.sol-0.5.12-compact.json | 0 .../expected/break-all.sol-0.5.12-legacy.json | 0 .../break-all.sol-0.5.13-compact.json | 0 .../expected/break-all.sol-0.5.13-legacy.json | 0 .../break-all.sol-0.5.14-compact.json | 0 .../expected/break-all.sol-0.5.14-legacy.json | 0 .../break-all.sol-0.5.15-compact.json | 0 .../expected/break-all.sol-0.5.15-legacy.json | 0 .../break-all.sol-0.5.16-compact.json | 0 .../expected/break-all.sol-0.5.16-legacy.json | 0 .../break-all.sol-0.5.17-compact.json | 0 .../expected/break-all.sol-0.5.17-legacy.json | 0 .../expected/break-all.sol-0.5.2-compact.json | 0 .../expected/break-all.sol-0.5.2-legacy.json | 0 .../expected/break-all.sol-0.5.3-compact.json | 0 .../expected/break-all.sol-0.5.3-legacy.json | 0 .../expected/break-all.sol-0.5.4-compact.json | 0 .../expected/break-all.sol-0.5.4-legacy.json | 0 .../expected/break-all.sol-0.5.5-compact.json | 0 .../expected/break-all.sol-0.5.5-legacy.json | 0 .../expected/break-all.sol-0.5.6-compact.json | 0 .../expected/break-all.sol-0.5.6-legacy.json | 0 .../expected/break-all.sol-0.5.7-compact.json | 0 .../expected/break-all.sol-0.5.7-legacy.json | 0 .../expected/break-all.sol-0.5.8-compact.json | 0 .../expected/break-all.sol-0.5.8-legacy.json | 0 .../expected/break-all.sol-0.5.9-compact.json | 0 .../expected/break-all.sol-0.5.9-legacy.json | 0 .../expected/break-all.sol-0.6.0-compact.json | 0 .../expected/break-all.sol-0.6.0-legacy.json | 0 .../expected/break-all.sol-0.6.1-compact.json | 0 .../expected/break-all.sol-0.6.1-legacy.json | 0 .../break-all.sol-0.6.10-compact.json | 0 .../expected/break-all.sol-0.6.10-legacy.json | 0 .../break-all.sol-0.6.11-compact.json | 0 .../expected/break-all.sol-0.6.11-legacy.json | 0 .../break-all.sol-0.6.12-compact.json | 0 .../expected/break-all.sol-0.6.12-legacy.json | 0 .../expected/break-all.sol-0.6.2-compact.json | 0 .../expected/break-all.sol-0.6.2-legacy.json | 0 .../expected/break-all.sol-0.6.3-compact.json | 0 .../expected/break-all.sol-0.6.3-legacy.json | 0 .../expected/break-all.sol-0.6.4-compact.json | 0 .../expected/break-all.sol-0.6.4-legacy.json | 0 .../expected/break-all.sol-0.6.5-compact.json | 0 .../expected/break-all.sol-0.6.5-legacy.json | 0 .../expected/break-all.sol-0.6.6-compact.json | 0 .../expected/break-all.sol-0.6.6-legacy.json | 0 .../expected/break-all.sol-0.6.7-compact.json | 0 .../expected/break-all.sol-0.6.7-legacy.json | 0 .../expected/break-all.sol-0.6.8-compact.json | 0 .../expected/break-all.sol-0.6.8-legacy.json | 0 .../expected/break-all.sol-0.6.9-compact.json | 0 .../expected/break-all.sol-0.6.9-legacy.json | 0 .../expected/break-all.sol-0.7.0-compact.json | 0 .../expected/break-all.sol-0.7.0-legacy.json | 0 .../expected/break-all.sol-0.7.1-compact.json | 0 .../expected/break-all.sol-0.7.1-legacy.json | 0 .../expected/break-all.sol-0.7.2-compact.json | 0 .../expected/break-all.sol-0.7.2-legacy.json | 0 .../expected/break-all.sol-0.7.3-compact.json | 0 .../expected/break-all.sol-0.7.3-legacy.json | 0 .../expected/break-all.sol-0.7.4-compact.json | 0 .../expected/break-all.sol-0.7.4-legacy.json | 0 .../expected/break-all.sol-0.7.5-compact.json | 0 .../expected/break-all.sol-0.7.5-legacy.json | 0 .../expected/break-all.sol-0.7.6-compact.json | 0 .../expected/break-all.sol-0.7.6-legacy.json | 0 .../expected/break-all.sol-0.8.0-compact.json | 0 .../expected/break-all.sol-0.8.1-compact.json | 0 .../break-all.sol-0.8.10-compact.json | 0 .../break-all.sol-0.8.11-compact.json | 0 .../break-all.sol-0.8.12-compact.json | 0 .../break-all.sol-0.8.13-compact.json | 0 .../break-all.sol-0.8.14-compact.json | 0 .../break-all.sol-0.8.15-compact.json | 0 .../expected/break-all.sol-0.8.2-compact.json | 0 .../expected/break-all.sol-0.8.3-compact.json | 0 .../expected/break-all.sol-0.8.4-compact.json | 0 .../expected/break-all.sol-0.8.5-compact.json | 0 .../expected/break-all.sol-0.8.6-compact.json | 0 .../expected/break-all.sol-0.8.7-compact.json | 0 .../expected/break-all.sol-0.8.8-compact.json | 0 .../expected/break-all.sol-0.8.9-compact.json | 0 .../bytes_call.sol-0.8.12-compact.json | 0 ...all_to_variable-all.sol-0.4.0-compact.json | 0 ...call_to_variable-all.sol-0.4.0-legacy.json | 0 ...all_to_variable-all.sol-0.4.1-compact.json | 0 ...call_to_variable-all.sol-0.4.1-legacy.json | 0 ...ll_to_variable-all.sol-0.4.10-compact.json | 0 ...all_to_variable-all.sol-0.4.10-legacy.json | 0 ...ll_to_variable-all.sol-0.4.11-compact.json | 0 ...all_to_variable-all.sol-0.4.11-legacy.json | 0 ...ll_to_variable-all.sol-0.4.12-compact.json | 0 ...all_to_variable-all.sol-0.4.12-legacy.json | 0 ...ll_to_variable-all.sol-0.4.13-compact.json | 0 ...all_to_variable-all.sol-0.4.13-legacy.json | 0 ...ll_to_variable-all.sol-0.4.14-compact.json | 0 ...all_to_variable-all.sol-0.4.14-legacy.json | 0 ...ll_to_variable-all.sol-0.4.15-compact.json | 0 ...all_to_variable-all.sol-0.4.15-legacy.json | 0 ...ll_to_variable-all.sol-0.4.16-compact.json | 0 ...all_to_variable-all.sol-0.4.16-legacy.json | 0 ...ll_to_variable-all.sol-0.4.17-compact.json | 0 ...all_to_variable-all.sol-0.4.17-legacy.json | 0 ...ll_to_variable-all.sol-0.4.18-compact.json | 0 ...all_to_variable-all.sol-0.4.18-legacy.json | 0 ...ll_to_variable-all.sol-0.4.19-compact.json | 0 ...all_to_variable-all.sol-0.4.19-legacy.json | 0 ...all_to_variable-all.sol-0.4.2-compact.json | 0 ...call_to_variable-all.sol-0.4.2-legacy.json | 0 ...ll_to_variable-all.sol-0.4.20-compact.json | 0 ...all_to_variable-all.sol-0.4.20-legacy.json | 0 ...ll_to_variable-all.sol-0.4.21-compact.json | 0 ...all_to_variable-all.sol-0.4.21-legacy.json | 0 ...ll_to_variable-all.sol-0.4.22-compact.json | 0 ...all_to_variable-all.sol-0.4.22-legacy.json | 0 ...ll_to_variable-all.sol-0.4.23-compact.json | 0 ...all_to_variable-all.sol-0.4.23-legacy.json | 0 ...ll_to_variable-all.sol-0.4.24-compact.json | 0 ...all_to_variable-all.sol-0.4.24-legacy.json | 0 ...ll_to_variable-all.sol-0.4.25-compact.json | 0 ...all_to_variable-all.sol-0.4.25-legacy.json | 0 ...ll_to_variable-all.sol-0.4.26-compact.json | 0 ...all_to_variable-all.sol-0.4.26-legacy.json | 0 ...all_to_variable-all.sol-0.4.3-compact.json | 0 ...call_to_variable-all.sol-0.4.3-legacy.json | 0 ...all_to_variable-all.sol-0.4.4-compact.json | 0 ...call_to_variable-all.sol-0.4.4-legacy.json | 0 ...all_to_variable-all.sol-0.4.5-compact.json | 0 ...call_to_variable-all.sol-0.4.5-legacy.json | 0 ...all_to_variable-all.sol-0.4.6-compact.json | 0 ...call_to_variable-all.sol-0.4.6-legacy.json | 0 ...all_to_variable-all.sol-0.4.7-compact.json | 0 ...call_to_variable-all.sol-0.4.7-legacy.json | 0 ...all_to_variable-all.sol-0.4.8-compact.json | 0 ...call_to_variable-all.sol-0.4.8-legacy.json | 0 ...all_to_variable-all.sol-0.4.9-compact.json | 0 ...call_to_variable-all.sol-0.4.9-legacy.json | 0 ...all_to_variable-all.sol-0.5.0-compact.json | 0 ...call_to_variable-all.sol-0.5.0-legacy.json | 0 ...all_to_variable-all.sol-0.5.1-compact.json | 0 ...call_to_variable-all.sol-0.5.1-legacy.json | 0 ...ll_to_variable-all.sol-0.5.10-compact.json | 0 ...all_to_variable-all.sol-0.5.10-legacy.json | 0 ...ll_to_variable-all.sol-0.5.11-compact.json | 0 ...all_to_variable-all.sol-0.5.11-legacy.json | 0 ...ll_to_variable-all.sol-0.5.12-compact.json | 0 ...all_to_variable-all.sol-0.5.12-legacy.json | 0 ...ll_to_variable-all.sol-0.5.13-compact.json | 0 ...all_to_variable-all.sol-0.5.13-legacy.json | 0 ...ll_to_variable-all.sol-0.5.14-compact.json | 0 ...all_to_variable-all.sol-0.5.14-legacy.json | 0 ...ll_to_variable-all.sol-0.5.15-compact.json | 0 ...all_to_variable-all.sol-0.5.15-legacy.json | 0 ...ll_to_variable-all.sol-0.5.16-compact.json | 0 ...all_to_variable-all.sol-0.5.16-legacy.json | 0 ...ll_to_variable-all.sol-0.5.17-compact.json | 0 ...all_to_variable-all.sol-0.5.17-legacy.json | 0 ...all_to_variable-all.sol-0.5.2-compact.json | 0 ...call_to_variable-all.sol-0.5.2-legacy.json | 0 ...all_to_variable-all.sol-0.5.3-compact.json | 0 ...call_to_variable-all.sol-0.5.3-legacy.json | 0 ...all_to_variable-all.sol-0.5.4-compact.json | 0 ...call_to_variable-all.sol-0.5.4-legacy.json | 0 ...all_to_variable-all.sol-0.5.5-compact.json | 0 ...call_to_variable-all.sol-0.5.5-legacy.json | 0 ...all_to_variable-all.sol-0.5.6-compact.json | 0 ...call_to_variable-all.sol-0.5.6-legacy.json | 0 ...all_to_variable-all.sol-0.5.7-compact.json | 0 ...call_to_variable-all.sol-0.5.7-legacy.json | 0 ...all_to_variable-all.sol-0.5.8-compact.json | 0 ...call_to_variable-all.sol-0.5.8-legacy.json | 0 ...all_to_variable-all.sol-0.5.9-compact.json | 0 ...call_to_variable-all.sol-0.5.9-legacy.json | 0 ...all_to_variable-all.sol-0.6.0-compact.json | 0 ...call_to_variable-all.sol-0.6.0-legacy.json | 0 ...all_to_variable-all.sol-0.6.1-compact.json | 0 ...call_to_variable-all.sol-0.6.1-legacy.json | 0 ...ll_to_variable-all.sol-0.6.10-compact.json | 0 ...all_to_variable-all.sol-0.6.10-legacy.json | 0 ...ll_to_variable-all.sol-0.6.11-compact.json | 0 ...all_to_variable-all.sol-0.6.11-legacy.json | 0 ...ll_to_variable-all.sol-0.6.12-compact.json | 0 ...all_to_variable-all.sol-0.6.12-legacy.json | 0 ...all_to_variable-all.sol-0.6.2-compact.json | 0 ...call_to_variable-all.sol-0.6.2-legacy.json | 0 ...all_to_variable-all.sol-0.6.3-compact.json | 0 ...call_to_variable-all.sol-0.6.3-legacy.json | 0 ...all_to_variable-all.sol-0.6.4-compact.json | 0 ...call_to_variable-all.sol-0.6.4-legacy.json | 0 ...all_to_variable-all.sol-0.6.5-compact.json | 0 ...call_to_variable-all.sol-0.6.5-legacy.json | 0 ...all_to_variable-all.sol-0.6.6-compact.json | 0 ...call_to_variable-all.sol-0.6.6-legacy.json | 0 ...all_to_variable-all.sol-0.6.7-compact.json | 0 ...call_to_variable-all.sol-0.6.7-legacy.json | 0 ...all_to_variable-all.sol-0.6.8-compact.json | 0 ...call_to_variable-all.sol-0.6.8-legacy.json | 0 ...all_to_variable-all.sol-0.6.9-compact.json | 0 ...call_to_variable-all.sol-0.6.9-legacy.json | 0 ...all_to_variable-all.sol-0.7.0-compact.json | 0 ...call_to_variable-all.sol-0.7.0-legacy.json | 0 ...all_to_variable-all.sol-0.7.1-compact.json | 0 ...call_to_variable-all.sol-0.7.1-legacy.json | 0 ...all_to_variable-all.sol-0.7.2-compact.json | 0 ...call_to_variable-all.sol-0.7.2-legacy.json | 0 ...all_to_variable-all.sol-0.7.3-compact.json | 0 ...call_to_variable-all.sol-0.7.3-legacy.json | 0 ...all_to_variable-all.sol-0.7.4-compact.json | 0 ...call_to_variable-all.sol-0.7.4-legacy.json | 0 ...all_to_variable-all.sol-0.7.5-compact.json | 0 ...call_to_variable-all.sol-0.7.5-legacy.json | 0 ...all_to_variable-all.sol-0.7.6-compact.json | 0 ...call_to_variable-all.sol-0.7.6-legacy.json | 0 ...all_to_variable-all.sol-0.8.0-compact.json | 0 ...all_to_variable-all.sol-0.8.1-compact.json | 0 ...ll_to_variable-all.sol-0.8.10-compact.json | 0 ...ll_to_variable-all.sol-0.8.11-compact.json | 0 ...ll_to_variable-all.sol-0.8.12-compact.json | 0 ...ll_to_variable-all.sol-0.8.13-compact.json | 0 ...ll_to_variable-all.sol-0.8.14-compact.json | 0 ...ll_to_variable-all.sol-0.8.15-compact.json | 0 ...all_to_variable-all.sol-0.8.2-compact.json | 0 ...all_to_variable-all.sol-0.8.3-compact.json | 0 ...all_to_variable-all.sol-0.8.4-compact.json | 0 ...all_to_variable-all.sol-0.8.5-compact.json | 0 ...all_to_variable-all.sol-0.8.6-compact.json | 0 ...all_to_variable-all.sol-0.8.7-compact.json | 0 ...all_to_variable-all.sol-0.8.8-compact.json | 0 ...all_to_variable-all.sol-0.8.9-compact.json | 0 .../comment-all.sol-0.4.0-compact.json | 0 .../comment-all.sol-0.4.0-legacy.json | 0 .../comment-all.sol-0.4.1-compact.json | 0 .../comment-all.sol-0.4.1-legacy.json | 0 .../comment-all.sol-0.4.10-compact.json | 0 .../comment-all.sol-0.4.10-legacy.json | 0 .../comment-all.sol-0.4.11-compact.json | 0 .../comment-all.sol-0.4.11-legacy.json | 0 .../comment-all.sol-0.4.12-compact.json | 0 .../comment-all.sol-0.4.12-legacy.json | 0 .../comment-all.sol-0.4.13-compact.json | 0 .../comment-all.sol-0.4.13-legacy.json | 0 .../comment-all.sol-0.4.14-compact.json | 0 .../comment-all.sol-0.4.14-legacy.json | 0 .../comment-all.sol-0.4.15-compact.json | 0 .../comment-all.sol-0.4.15-legacy.json | 0 .../comment-all.sol-0.4.16-compact.json | 0 .../comment-all.sol-0.4.16-legacy.json | 0 .../comment-all.sol-0.4.17-compact.json | 0 .../comment-all.sol-0.4.17-legacy.json | 0 .../comment-all.sol-0.4.18-compact.json | 0 .../comment-all.sol-0.4.18-legacy.json | 0 .../comment-all.sol-0.4.19-compact.json | 0 .../comment-all.sol-0.4.19-legacy.json | 0 .../comment-all.sol-0.4.2-compact.json | 0 .../comment-all.sol-0.4.2-legacy.json | 0 .../comment-all.sol-0.4.20-compact.json | 0 .../comment-all.sol-0.4.20-legacy.json | 0 .../comment-all.sol-0.4.21-compact.json | 0 .../comment-all.sol-0.4.21-legacy.json | 0 .../comment-all.sol-0.4.22-compact.json | 0 .../comment-all.sol-0.4.22-legacy.json | 0 .../comment-all.sol-0.4.23-compact.json | 0 .../comment-all.sol-0.4.23-legacy.json | 0 .../comment-all.sol-0.4.24-compact.json | 0 .../comment-all.sol-0.4.24-legacy.json | 0 .../comment-all.sol-0.4.25-compact.json | 0 .../comment-all.sol-0.4.25-legacy.json | 0 .../comment-all.sol-0.4.26-compact.json | 0 .../comment-all.sol-0.4.26-legacy.json | 0 .../comment-all.sol-0.4.3-compact.json | 0 .../comment-all.sol-0.4.3-legacy.json | 0 .../comment-all.sol-0.4.4-compact.json | 0 .../comment-all.sol-0.4.4-legacy.json | 0 .../comment-all.sol-0.4.5-compact.json | 0 .../comment-all.sol-0.4.5-legacy.json | 0 .../comment-all.sol-0.4.6-compact.json | 0 .../comment-all.sol-0.4.6-legacy.json | 0 .../comment-all.sol-0.4.7-compact.json | 0 .../comment-all.sol-0.4.7-legacy.json | 0 .../comment-all.sol-0.4.8-compact.json | 0 .../comment-all.sol-0.4.8-legacy.json | 0 .../comment-all.sol-0.4.9-compact.json | 0 .../comment-all.sol-0.4.9-legacy.json | 0 .../comment-all.sol-0.5.0-compact.json | 0 .../comment-all.sol-0.5.0-legacy.json | 0 .../comment-all.sol-0.5.1-compact.json | 0 .../comment-all.sol-0.5.1-legacy.json | 0 .../comment-all.sol-0.5.10-compact.json | 0 .../comment-all.sol-0.5.10-legacy.json | 0 .../comment-all.sol-0.5.11-compact.json | 0 .../comment-all.sol-0.5.11-legacy.json | 0 .../comment-all.sol-0.5.12-compact.json | 0 .../comment-all.sol-0.5.12-legacy.json | 0 .../comment-all.sol-0.5.13-compact.json | 0 .../comment-all.sol-0.5.13-legacy.json | 0 .../comment-all.sol-0.5.14-compact.json | 0 .../comment-all.sol-0.5.14-legacy.json | 0 .../comment-all.sol-0.5.15-compact.json | 0 .../comment-all.sol-0.5.15-legacy.json | 0 .../comment-all.sol-0.5.16-compact.json | 0 .../comment-all.sol-0.5.16-legacy.json | 0 .../comment-all.sol-0.5.17-compact.json | 0 .../comment-all.sol-0.5.17-legacy.json | 0 .../comment-all.sol-0.5.2-compact.json | 0 .../comment-all.sol-0.5.2-legacy.json | 0 .../comment-all.sol-0.5.3-compact.json | 0 .../comment-all.sol-0.5.3-legacy.json | 0 .../comment-all.sol-0.5.4-compact.json | 0 .../comment-all.sol-0.5.4-legacy.json | 0 .../comment-all.sol-0.5.5-compact.json | 0 .../comment-all.sol-0.5.5-legacy.json | 0 .../comment-all.sol-0.5.6-compact.json | 0 .../comment-all.sol-0.5.6-legacy.json | 0 .../comment-all.sol-0.5.7-compact.json | 0 .../comment-all.sol-0.5.7-legacy.json | 0 .../comment-all.sol-0.5.8-compact.json | 0 .../comment-all.sol-0.5.8-legacy.json | 0 .../comment-all.sol-0.5.9-compact.json | 0 .../comment-all.sol-0.5.9-legacy.json | 0 .../comment-all.sol-0.6.0-compact.json | 0 .../comment-all.sol-0.6.0-legacy.json | 0 .../comment-all.sol-0.6.1-compact.json | 0 .../comment-all.sol-0.6.1-legacy.json | 0 .../comment-all.sol-0.6.10-compact.json | 0 .../comment-all.sol-0.6.10-legacy.json | 0 .../comment-all.sol-0.6.11-compact.json | 0 .../comment-all.sol-0.6.11-legacy.json | 0 .../comment-all.sol-0.6.12-compact.json | 0 .../comment-all.sol-0.6.12-legacy.json | 0 .../comment-all.sol-0.6.2-compact.json | 0 .../comment-all.sol-0.6.2-legacy.json | 0 .../comment-all.sol-0.6.3-compact.json | 0 .../comment-all.sol-0.6.3-legacy.json | 0 .../comment-all.sol-0.6.4-compact.json | 0 .../comment-all.sol-0.6.4-legacy.json | 0 .../comment-all.sol-0.6.5-compact.json | 0 .../comment-all.sol-0.6.5-legacy.json | 0 .../comment-all.sol-0.6.6-compact.json | 0 .../comment-all.sol-0.6.6-legacy.json | 0 .../comment-all.sol-0.6.7-compact.json | 0 .../comment-all.sol-0.6.7-legacy.json | 0 .../comment-all.sol-0.6.8-compact.json | 0 .../comment-all.sol-0.6.8-legacy.json | 0 .../comment-all.sol-0.6.9-compact.json | 0 .../comment-all.sol-0.6.9-legacy.json | 0 .../comment-all.sol-0.7.0-compact.json | 0 .../comment-all.sol-0.7.0-legacy.json | 0 .../comment-all.sol-0.7.1-compact.json | 0 .../comment-all.sol-0.7.1-legacy.json | 0 .../comment-all.sol-0.7.2-compact.json | 0 .../comment-all.sol-0.7.2-legacy.json | 0 .../comment-all.sol-0.7.3-compact.json | 0 .../comment-all.sol-0.7.3-legacy.json | 0 .../comment-all.sol-0.7.4-compact.json | 0 .../comment-all.sol-0.7.4-legacy.json | 0 .../comment-all.sol-0.7.5-compact.json | 0 .../comment-all.sol-0.7.5-legacy.json | 0 .../comment-all.sol-0.7.6-compact.json | 0 .../comment-all.sol-0.7.6-legacy.json | 0 .../comment-all.sol-0.8.0-compact.json | 0 .../comment-all.sol-0.8.1-compact.json | 0 .../comment-all.sol-0.8.10-compact.json | 0 .../comment-all.sol-0.8.11-compact.json | 0 .../comment-all.sol-0.8.12-compact.json | 0 .../comment-all.sol-0.8.13-compact.json | 0 .../comment-all.sol-0.8.14-compact.json | 0 .../comment-all.sol-0.8.15-compact.json | 0 .../comment-all.sol-0.8.2-compact.json | 0 .../comment-all.sol-0.8.3-compact.json | 0 .../comment-all.sol-0.8.4-compact.json | 0 .../comment-all.sol-0.8.5-compact.json | 0 .../comment-all.sol-0.8.6-compact.json | 0 .../comment-all.sol-0.8.7-compact.json | 0 .../comment-all.sol-0.8.8-compact.json | 0 .../comment-all.sol-0.8.9-compact.json | 0 .../test.sol-0.8.0-compact.json | 0 .../test.sol-0.8.1-compact.json | 0 .../test.sol-0.8.10-compact.json | 0 .../test.sol-0.8.11-compact.json | 0 .../test.sol-0.8.12-compact.json | 0 .../test.sol-0.8.13-compact.json | 0 .../test.sol-0.8.14-compact.json | 0 .../test.sol-0.8.15-compact.json | 0 .../test.sol-0.8.2-compact.json | 0 .../test.sol-0.8.3-compact.json | 0 .../test.sol-0.8.4-compact.json | 0 .../test.sol-0.8.5-compact.json | 0 .../test.sol-0.8.6-compact.json | 0 .../test.sol-0.8.7-compact.json | 0 .../test.sol-0.8.8-compact.json | 0 .../test.sol-0.8.9-compact.json | 0 .../test.sol-0.5.12-compact.json | 0 .../test.sol-0.5.12-legacy.json | 0 .../import_free/Caller.sol-0.8.2-compact.json | 0 .../conditional-all.sol-0.4.0-compact.json | 0 .../conditional-all.sol-0.4.0-legacy.json | 0 .../conditional-all.sol-0.4.1-compact.json | 0 .../conditional-all.sol-0.4.1-legacy.json | 0 .../conditional-all.sol-0.4.10-compact.json | 0 .../conditional-all.sol-0.4.10-legacy.json | 0 .../conditional-all.sol-0.4.11-compact.json | 0 .../conditional-all.sol-0.4.11-legacy.json | 0 .../conditional-all.sol-0.4.12-compact.json | 0 .../conditional-all.sol-0.4.12-legacy.json | 0 .../conditional-all.sol-0.4.13-compact.json | 0 .../conditional-all.sol-0.4.13-legacy.json | 0 .../conditional-all.sol-0.4.14-compact.json | 0 .../conditional-all.sol-0.4.14-legacy.json | 0 .../conditional-all.sol-0.4.15-compact.json | 0 .../conditional-all.sol-0.4.15-legacy.json | 0 .../conditional-all.sol-0.4.16-compact.json | 0 .../conditional-all.sol-0.4.16-legacy.json | 0 .../conditional-all.sol-0.4.17-compact.json | 0 .../conditional-all.sol-0.4.17-legacy.json | 0 .../conditional-all.sol-0.4.18-compact.json | 0 .../conditional-all.sol-0.4.18-legacy.json | 0 .../conditional-all.sol-0.4.19-compact.json | 0 .../conditional-all.sol-0.4.19-legacy.json | 0 .../conditional-all.sol-0.4.2-compact.json | 0 .../conditional-all.sol-0.4.2-legacy.json | 0 .../conditional-all.sol-0.4.20-compact.json | 0 .../conditional-all.sol-0.4.20-legacy.json | 0 .../conditional-all.sol-0.4.21-compact.json | 0 .../conditional-all.sol-0.4.21-legacy.json | 0 .../conditional-all.sol-0.4.22-compact.json | 0 .../conditional-all.sol-0.4.22-legacy.json | 0 .../conditional-all.sol-0.4.23-compact.json | 0 .../conditional-all.sol-0.4.23-legacy.json | 0 .../conditional-all.sol-0.4.24-compact.json | 0 .../conditional-all.sol-0.4.24-legacy.json | 0 .../conditional-all.sol-0.4.25-compact.json | 0 .../conditional-all.sol-0.4.25-legacy.json | 0 .../conditional-all.sol-0.4.26-compact.json | 0 .../conditional-all.sol-0.4.26-legacy.json | 0 .../conditional-all.sol-0.4.3-compact.json | 0 .../conditional-all.sol-0.4.3-legacy.json | 0 .../conditional-all.sol-0.4.4-compact.json | 0 .../conditional-all.sol-0.4.4-legacy.json | 0 .../conditional-all.sol-0.4.5-compact.json | 0 .../conditional-all.sol-0.4.5-legacy.json | 0 .../conditional-all.sol-0.4.6-compact.json | 0 .../conditional-all.sol-0.4.6-legacy.json | 0 .../conditional-all.sol-0.4.7-compact.json | 0 .../conditional-all.sol-0.4.7-legacy.json | 0 .../conditional-all.sol-0.4.8-compact.json | 0 .../conditional-all.sol-0.4.8-legacy.json | 0 .../conditional-all.sol-0.4.9-compact.json | 0 .../conditional-all.sol-0.4.9-legacy.json | 0 .../conditional-all.sol-0.5.0-compact.json | 0 .../conditional-all.sol-0.5.0-legacy.json | 0 .../conditional-all.sol-0.5.1-compact.json | 0 .../conditional-all.sol-0.5.1-legacy.json | 0 .../conditional-all.sol-0.5.10-compact.json | 0 .../conditional-all.sol-0.5.10-legacy.json | 0 .../conditional-all.sol-0.5.11-compact.json | 0 .../conditional-all.sol-0.5.11-legacy.json | 0 .../conditional-all.sol-0.5.12-compact.json | 0 .../conditional-all.sol-0.5.12-legacy.json | 0 .../conditional-all.sol-0.5.13-compact.json | 0 .../conditional-all.sol-0.5.13-legacy.json | 0 .../conditional-all.sol-0.5.14-compact.json | 0 .../conditional-all.sol-0.5.14-legacy.json | 0 .../conditional-all.sol-0.5.15-compact.json | 0 .../conditional-all.sol-0.5.15-legacy.json | 0 .../conditional-all.sol-0.5.16-compact.json | 0 .../conditional-all.sol-0.5.16-legacy.json | 0 .../conditional-all.sol-0.5.17-compact.json | 0 .../conditional-all.sol-0.5.17-legacy.json | 0 .../conditional-all.sol-0.5.2-compact.json | 0 .../conditional-all.sol-0.5.2-legacy.json | 0 .../conditional-all.sol-0.5.3-compact.json | 0 .../conditional-all.sol-0.5.3-legacy.json | 0 .../conditional-all.sol-0.5.4-compact.json | 0 .../conditional-all.sol-0.5.4-legacy.json | 0 .../conditional-all.sol-0.5.5-compact.json | 0 .../conditional-all.sol-0.5.5-legacy.json | 0 .../conditional-all.sol-0.5.6-compact.json | 0 .../conditional-all.sol-0.5.6-legacy.json | 0 .../conditional-all.sol-0.5.7-compact.json | 0 .../conditional-all.sol-0.5.7-legacy.json | 0 .../conditional-all.sol-0.5.8-compact.json | 0 .../conditional-all.sol-0.5.8-legacy.json | 0 .../conditional-all.sol-0.5.9-compact.json | 0 .../conditional-all.sol-0.5.9-legacy.json | 0 .../conditional-all.sol-0.6.0-compact.json | 0 .../conditional-all.sol-0.6.0-legacy.json | 0 .../conditional-all.sol-0.6.1-compact.json | 0 .../conditional-all.sol-0.6.1-legacy.json | 0 .../conditional-all.sol-0.6.10-compact.json | 0 .../conditional-all.sol-0.6.10-legacy.json | 0 .../conditional-all.sol-0.6.11-compact.json | 0 .../conditional-all.sol-0.6.11-legacy.json | 0 .../conditional-all.sol-0.6.12-compact.json | 0 .../conditional-all.sol-0.6.12-legacy.json | 0 .../conditional-all.sol-0.6.2-compact.json | 0 .../conditional-all.sol-0.6.2-legacy.json | 0 .../conditional-all.sol-0.6.3-compact.json | 0 .../conditional-all.sol-0.6.3-legacy.json | 0 .../conditional-all.sol-0.6.4-compact.json | 0 .../conditional-all.sol-0.6.4-legacy.json | 0 .../conditional-all.sol-0.6.5-compact.json | 0 .../conditional-all.sol-0.6.5-legacy.json | 0 .../conditional-all.sol-0.6.6-compact.json | 0 .../conditional-all.sol-0.6.6-legacy.json | 0 .../conditional-all.sol-0.6.7-compact.json | 0 .../conditional-all.sol-0.6.7-legacy.json | 0 .../conditional-all.sol-0.6.8-compact.json | 0 .../conditional-all.sol-0.6.8-legacy.json | 0 .../conditional-all.sol-0.6.9-compact.json | 0 .../conditional-all.sol-0.6.9-legacy.json | 0 .../conditional-all.sol-0.7.0-compact.json | 0 .../conditional-all.sol-0.7.0-legacy.json | 0 .../conditional-all.sol-0.7.1-compact.json | 0 .../conditional-all.sol-0.7.1-legacy.json | 0 .../conditional-all.sol-0.7.2-compact.json | 0 .../conditional-all.sol-0.7.2-legacy.json | 0 .../conditional-all.sol-0.7.3-compact.json | 0 .../conditional-all.sol-0.7.3-legacy.json | 0 .../conditional-all.sol-0.7.4-compact.json | 0 .../conditional-all.sol-0.7.4-legacy.json | 0 .../conditional-all.sol-0.7.5-compact.json | 0 .../conditional-all.sol-0.7.5-legacy.json | 0 .../conditional-all.sol-0.7.6-compact.json | 0 .../conditional-all.sol-0.7.6-legacy.json | 0 .../conditional-all.sol-0.8.0-compact.json | 0 .../conditional-all.sol-0.8.1-compact.json | 0 .../conditional-all.sol-0.8.10-compact.json | 0 .../conditional-all.sol-0.8.11-compact.json | 0 .../conditional-all.sol-0.8.12-compact.json | 0 .../conditional-all.sol-0.8.13-compact.json | 0 .../conditional-all.sol-0.8.14-compact.json | 0 .../conditional-all.sol-0.8.15-compact.json | 0 .../conditional-all.sol-0.8.2-compact.json | 0 .../conditional-all.sol-0.8.3-compact.json | 0 .../conditional-all.sol-0.8.4-compact.json | 0 .../conditional-all.sol-0.8.5-compact.json | 0 .../conditional-all.sol-0.8.6-compact.json | 0 .../conditional-all.sol-0.8.7-compact.json | 0 .../conditional-all.sol-0.8.8-compact.json | 0 .../conditional-all.sol-0.8.9-compact.json | 0 .../continue-all.sol-0.4.0-compact.json | 0 .../continue-all.sol-0.4.0-legacy.json | 0 .../continue-all.sol-0.4.1-compact.json | 0 .../continue-all.sol-0.4.1-legacy.json | 0 .../continue-all.sol-0.4.10-compact.json | 0 .../continue-all.sol-0.4.10-legacy.json | 0 .../continue-all.sol-0.4.11-compact.json | 0 .../continue-all.sol-0.4.11-legacy.json | 0 .../continue-all.sol-0.4.12-compact.json | 0 .../continue-all.sol-0.4.12-legacy.json | 0 .../continue-all.sol-0.4.13-compact.json | 0 .../continue-all.sol-0.4.13-legacy.json | 0 .../continue-all.sol-0.4.14-compact.json | 0 .../continue-all.sol-0.4.14-legacy.json | 0 .../continue-all.sol-0.4.15-compact.json | 0 .../continue-all.sol-0.4.15-legacy.json | 0 .../continue-all.sol-0.4.16-compact.json | 0 .../continue-all.sol-0.4.16-legacy.json | 0 .../continue-all.sol-0.4.17-compact.json | 0 .../continue-all.sol-0.4.17-legacy.json | 0 .../continue-all.sol-0.4.18-compact.json | 0 .../continue-all.sol-0.4.18-legacy.json | 0 .../continue-all.sol-0.4.19-compact.json | 0 .../continue-all.sol-0.4.19-legacy.json | 0 .../continue-all.sol-0.4.2-compact.json | 0 .../continue-all.sol-0.4.2-legacy.json | 0 .../continue-all.sol-0.4.20-compact.json | 0 .../continue-all.sol-0.4.20-legacy.json | 0 .../continue-all.sol-0.4.21-compact.json | 0 .../continue-all.sol-0.4.21-legacy.json | 0 .../continue-all.sol-0.4.22-compact.json | 0 .../continue-all.sol-0.4.22-legacy.json | 0 .../continue-all.sol-0.4.23-compact.json | 0 .../continue-all.sol-0.4.23-legacy.json | 0 .../continue-all.sol-0.4.24-compact.json | 0 .../continue-all.sol-0.4.24-legacy.json | 0 .../continue-all.sol-0.4.25-compact.json | 0 .../continue-all.sol-0.4.25-legacy.json | 0 .../continue-all.sol-0.4.26-compact.json | 0 .../continue-all.sol-0.4.26-legacy.json | 0 .../continue-all.sol-0.4.3-compact.json | 0 .../continue-all.sol-0.4.3-legacy.json | 0 .../continue-all.sol-0.4.4-compact.json | 0 .../continue-all.sol-0.4.4-legacy.json | 0 .../continue-all.sol-0.4.5-compact.json | 0 .../continue-all.sol-0.4.5-legacy.json | 0 .../continue-all.sol-0.4.6-compact.json | 0 .../continue-all.sol-0.4.6-legacy.json | 0 .../continue-all.sol-0.4.7-compact.json | 0 .../continue-all.sol-0.4.7-legacy.json | 0 .../continue-all.sol-0.4.8-compact.json | 0 .../continue-all.sol-0.4.8-legacy.json | 0 .../continue-all.sol-0.4.9-compact.json | 0 .../continue-all.sol-0.4.9-legacy.json | 0 .../continue-all.sol-0.5.0-compact.json | 0 .../continue-all.sol-0.5.0-legacy.json | 0 .../continue-all.sol-0.5.1-compact.json | 0 .../continue-all.sol-0.5.1-legacy.json | 0 .../continue-all.sol-0.5.10-compact.json | 0 .../continue-all.sol-0.5.10-legacy.json | 0 .../continue-all.sol-0.5.11-compact.json | 0 .../continue-all.sol-0.5.11-legacy.json | 0 .../continue-all.sol-0.5.12-compact.json | 0 .../continue-all.sol-0.5.12-legacy.json | 0 .../continue-all.sol-0.5.13-compact.json | 0 .../continue-all.sol-0.5.13-legacy.json | 0 .../continue-all.sol-0.5.14-compact.json | 0 .../continue-all.sol-0.5.14-legacy.json | 0 .../continue-all.sol-0.5.15-compact.json | 0 .../continue-all.sol-0.5.15-legacy.json | 0 .../continue-all.sol-0.5.16-compact.json | 0 .../continue-all.sol-0.5.16-legacy.json | 0 .../continue-all.sol-0.5.17-compact.json | 0 .../continue-all.sol-0.5.17-legacy.json | 0 .../continue-all.sol-0.5.2-compact.json | 0 .../continue-all.sol-0.5.2-legacy.json | 0 .../continue-all.sol-0.5.3-compact.json | 0 .../continue-all.sol-0.5.3-legacy.json | 0 .../continue-all.sol-0.5.4-compact.json | 0 .../continue-all.sol-0.5.4-legacy.json | 0 .../continue-all.sol-0.5.5-compact.json | 0 .../continue-all.sol-0.5.5-legacy.json | 0 .../continue-all.sol-0.5.6-compact.json | 0 .../continue-all.sol-0.5.6-legacy.json | 0 .../continue-all.sol-0.5.7-compact.json | 0 .../continue-all.sol-0.5.7-legacy.json | 0 .../continue-all.sol-0.5.8-compact.json | 0 .../continue-all.sol-0.5.8-legacy.json | 0 .../continue-all.sol-0.5.9-compact.json | 0 .../continue-all.sol-0.5.9-legacy.json | 0 .../continue-all.sol-0.6.0-compact.json | 0 .../continue-all.sol-0.6.0-legacy.json | 0 .../continue-all.sol-0.6.1-compact.json | 0 .../continue-all.sol-0.6.1-legacy.json | 0 .../continue-all.sol-0.6.10-compact.json | 0 .../continue-all.sol-0.6.10-legacy.json | 0 .../continue-all.sol-0.6.11-compact.json | 0 .../continue-all.sol-0.6.11-legacy.json | 0 .../continue-all.sol-0.6.12-compact.json | 0 .../continue-all.sol-0.6.12-legacy.json | 0 .../continue-all.sol-0.6.2-compact.json | 0 .../continue-all.sol-0.6.2-legacy.json | 0 .../continue-all.sol-0.6.3-compact.json | 0 .../continue-all.sol-0.6.3-legacy.json | 0 .../continue-all.sol-0.6.4-compact.json | 0 .../continue-all.sol-0.6.4-legacy.json | 0 .../continue-all.sol-0.6.5-compact.json | 0 .../continue-all.sol-0.6.5-legacy.json | 0 .../continue-all.sol-0.6.6-compact.json | 0 .../continue-all.sol-0.6.6-legacy.json | 0 .../continue-all.sol-0.6.7-compact.json | 0 .../continue-all.sol-0.6.7-legacy.json | 0 .../continue-all.sol-0.6.8-compact.json | 0 .../continue-all.sol-0.6.8-legacy.json | 0 .../continue-all.sol-0.6.9-compact.json | 0 .../continue-all.sol-0.6.9-legacy.json | 0 .../continue-all.sol-0.7.0-compact.json | 0 .../continue-all.sol-0.7.0-legacy.json | 0 .../continue-all.sol-0.7.1-compact.json | 0 .../continue-all.sol-0.7.1-legacy.json | 0 .../continue-all.sol-0.7.2-compact.json | 0 .../continue-all.sol-0.7.2-legacy.json | 0 .../continue-all.sol-0.7.3-compact.json | 0 .../continue-all.sol-0.7.3-legacy.json | 0 .../continue-all.sol-0.7.4-compact.json | 0 .../continue-all.sol-0.7.4-legacy.json | 0 .../continue-all.sol-0.7.5-compact.json | 0 .../continue-all.sol-0.7.5-legacy.json | 0 .../continue-all.sol-0.7.6-compact.json | 0 .../continue-all.sol-0.7.6-legacy.json | 0 .../continue-all.sol-0.8.0-compact.json | 0 .../continue-all.sol-0.8.1-compact.json | 0 .../continue-all.sol-0.8.10-compact.json | 0 .../continue-all.sol-0.8.11-compact.json | 0 .../continue-all.sol-0.8.12-compact.json | 0 .../continue-all.sol-0.8.13-compact.json | 0 .../continue-all.sol-0.8.14-compact.json | 0 .../continue-all.sol-0.8.15-compact.json | 0 .../continue-all.sol-0.8.2-compact.json | 0 .../continue-all.sol-0.8.3-compact.json | 0 .../continue-all.sol-0.8.4-compact.json | 0 .../continue-all.sol-0.8.5-compact.json | 0 .../continue-all.sol-0.8.6-compact.json | 0 .../continue-all.sol-0.8.7-compact.json | 0 .../continue-all.sol-0.8.8-compact.json | 0 .../continue-all.sol-0.8.9-compact.json | 0 .../contract-0.4.0.sol-0.4.0-compact.json | 0 .../contract-0.4.0.sol-0.4.0-legacy.json | 0 .../contract-0.4.0.sol-0.4.1-compact.json | 0 .../contract-0.4.0.sol-0.4.1-legacy.json | 0 .../contract-0.4.0.sol-0.4.10-compact.json | 0 .../contract-0.4.0.sol-0.4.10-legacy.json | 0 .../contract-0.4.0.sol-0.4.11-compact.json | 0 .../contract-0.4.0.sol-0.4.11-legacy.json | 0 .../contract-0.4.0.sol-0.4.12-compact.json | 0 .../contract-0.4.0.sol-0.4.12-legacy.json | 0 .../contract-0.4.0.sol-0.4.13-compact.json | 0 .../contract-0.4.0.sol-0.4.13-legacy.json | 0 .../contract-0.4.0.sol-0.4.14-compact.json | 0 .../contract-0.4.0.sol-0.4.14-legacy.json | 0 .../contract-0.4.0.sol-0.4.15-compact.json | 0 .../contract-0.4.0.sol-0.4.15-legacy.json | 0 .../contract-0.4.0.sol-0.4.16-compact.json | 0 .../contract-0.4.0.sol-0.4.16-legacy.json | 0 .../contract-0.4.0.sol-0.4.17-compact.json | 0 .../contract-0.4.0.sol-0.4.17-legacy.json | 0 .../contract-0.4.0.sol-0.4.18-compact.json | 0 .../contract-0.4.0.sol-0.4.18-legacy.json | 0 .../contract-0.4.0.sol-0.4.19-compact.json | 0 .../contract-0.4.0.sol-0.4.19-legacy.json | 0 .../contract-0.4.0.sol-0.4.2-compact.json | 0 .../contract-0.4.0.sol-0.4.2-legacy.json | 0 .../contract-0.4.0.sol-0.4.20-compact.json | 0 .../contract-0.4.0.sol-0.4.20-legacy.json | 0 .../contract-0.4.0.sol-0.4.21-compact.json | 0 .../contract-0.4.0.sol-0.4.21-legacy.json | 0 .../contract-0.4.0.sol-0.4.3-compact.json | 0 .../contract-0.4.0.sol-0.4.3-legacy.json | 0 .../contract-0.4.0.sol-0.4.4-compact.json | 0 .../contract-0.4.0.sol-0.4.4-legacy.json | 0 .../contract-0.4.0.sol-0.4.5-compact.json | 0 .../contract-0.4.0.sol-0.4.5-legacy.json | 0 .../contract-0.4.0.sol-0.4.6-compact.json | 0 .../contract-0.4.0.sol-0.4.6-legacy.json | 0 .../contract-0.4.0.sol-0.4.7-compact.json | 0 .../contract-0.4.0.sol-0.4.7-legacy.json | 0 .../contract-0.4.0.sol-0.4.8-compact.json | 0 .../contract-0.4.0.sol-0.4.8-legacy.json | 0 .../contract-0.4.0.sol-0.4.9-compact.json | 0 .../contract-0.4.0.sol-0.4.9-legacy.json | 0 .../contract-0.4.22.sol-0.4.22-compact.json | 0 .../contract-0.4.22.sol-0.4.22-legacy.json | 0 .../contract-0.4.22.sol-0.4.23-compact.json | 0 .../contract-0.4.22.sol-0.4.23-legacy.json | 0 .../contract-0.4.22.sol-0.4.24-compact.json | 0 .../contract-0.4.22.sol-0.4.24-legacy.json | 0 .../contract-0.4.22.sol-0.4.25-compact.json | 0 .../contract-0.4.22.sol-0.4.25-legacy.json | 0 .../contract-0.4.22.sol-0.4.26-compact.json | 0 .../contract-0.4.22.sol-0.4.26-legacy.json | 0 .../contract-0.4.22.sol-0.5.0-compact.json | 0 .../contract-0.4.22.sol-0.5.0-legacy.json | 0 .../contract-0.4.22.sol-0.5.1-compact.json | 0 .../contract-0.4.22.sol-0.5.1-legacy.json | 0 .../contract-0.4.22.sol-0.5.10-compact.json | 0 .../contract-0.4.22.sol-0.5.10-legacy.json | 0 .../contract-0.4.22.sol-0.5.11-compact.json | 0 .../contract-0.4.22.sol-0.5.11-legacy.json | 0 .../contract-0.4.22.sol-0.5.12-compact.json | 0 .../contract-0.4.22.sol-0.5.12-legacy.json | 0 .../contract-0.4.22.sol-0.5.13-compact.json | 0 .../contract-0.4.22.sol-0.5.13-legacy.json | 0 .../contract-0.4.22.sol-0.5.14-compact.json | 0 .../contract-0.4.22.sol-0.5.14-legacy.json | 0 .../contract-0.4.22.sol-0.5.15-compact.json | 0 .../contract-0.4.22.sol-0.5.15-legacy.json | 0 .../contract-0.4.22.sol-0.5.16-compact.json | 0 .../contract-0.4.22.sol-0.5.16-legacy.json | 0 .../contract-0.4.22.sol-0.5.17-compact.json | 0 .../contract-0.4.22.sol-0.5.17-legacy.json | 0 .../contract-0.4.22.sol-0.5.2-compact.json | 0 .../contract-0.4.22.sol-0.5.2-legacy.json | 0 .../contract-0.4.22.sol-0.5.3-compact.json | 0 .../contract-0.4.22.sol-0.5.3-legacy.json | 0 .../contract-0.4.22.sol-0.5.4-compact.json | 0 .../contract-0.4.22.sol-0.5.4-legacy.json | 0 .../contract-0.4.22.sol-0.5.5-compact.json | 0 .../contract-0.4.22.sol-0.5.5-legacy.json | 0 .../contract-0.4.22.sol-0.5.6-compact.json | 0 .../contract-0.4.22.sol-0.5.6-legacy.json | 0 .../contract-0.4.22.sol-0.5.7-compact.json | 0 .../contract-0.4.22.sol-0.5.7-legacy.json | 0 .../contract-0.4.22.sol-0.5.8-compact.json | 0 .../contract-0.4.22.sol-0.5.8-legacy.json | 0 .../contract-0.4.22.sol-0.5.9-compact.json | 0 .../contract-0.4.22.sol-0.5.9-legacy.json | 0 .../contract-0.6.0.sol-0.6.0-compact.json | 0 .../contract-0.6.0.sol-0.6.0-legacy.json | 0 .../contract-0.6.0.sol-0.6.1-compact.json | 0 .../contract-0.6.0.sol-0.6.1-legacy.json | 0 .../contract-0.6.0.sol-0.6.10-compact.json | 0 .../contract-0.6.0.sol-0.6.10-legacy.json | 0 .../contract-0.6.0.sol-0.6.11-compact.json | 0 .../contract-0.6.0.sol-0.6.11-legacy.json | 0 .../contract-0.6.0.sol-0.6.12-compact.json | 0 .../contract-0.6.0.sol-0.6.12-legacy.json | 0 .../contract-0.6.0.sol-0.6.2-compact.json | 0 .../contract-0.6.0.sol-0.6.2-legacy.json | 0 .../contract-0.6.0.sol-0.6.3-compact.json | 0 .../contract-0.6.0.sol-0.6.3-legacy.json | 0 .../contract-0.6.0.sol-0.6.4-compact.json | 0 .../contract-0.6.0.sol-0.6.4-legacy.json | 0 .../contract-0.6.0.sol-0.6.5-compact.json | 0 .../contract-0.6.0.sol-0.6.5-legacy.json | 0 .../contract-0.6.0.sol-0.6.6-compact.json | 0 .../contract-0.6.0.sol-0.6.6-legacy.json | 0 .../contract-0.6.0.sol-0.6.7-compact.json | 0 .../contract-0.6.0.sol-0.6.7-legacy.json | 0 .../contract-0.6.0.sol-0.6.8-compact.json | 0 .../contract-0.6.0.sol-0.6.8-legacy.json | 0 .../contract-0.6.0.sol-0.6.9-compact.json | 0 .../contract-0.6.0.sol-0.6.9-legacy.json | 0 .../contract-0.6.0.sol-0.7.0-compact.json | 0 .../contract-0.6.0.sol-0.7.0-legacy.json | 0 .../contract-0.6.0.sol-0.7.1-compact.json | 0 .../contract-0.6.0.sol-0.7.1-legacy.json | 0 .../contract-0.6.0.sol-0.7.2-compact.json | 0 .../contract-0.6.0.sol-0.7.2-legacy.json | 0 .../contract-0.6.0.sol-0.7.3-compact.json | 0 .../contract-0.6.0.sol-0.7.3-legacy.json | 0 .../contract-0.6.0.sol-0.7.4-compact.json | 0 .../contract-0.6.0.sol-0.7.4-legacy.json | 0 .../contract-0.6.0.sol-0.7.5-compact.json | 0 .../contract-0.6.0.sol-0.7.5-legacy.json | 0 .../contract-0.6.0.sol-0.7.6-compact.json | 0 .../contract-0.6.0.sol-0.7.6-legacy.json | 0 .../contract-0.6.0.sol-0.8.0-compact.json | 0 .../contract-0.6.0.sol-0.8.1-compact.json | 0 .../contract-0.6.0.sol-0.8.10-compact.json | 0 .../contract-0.6.0.sol-0.8.11-compact.json | 0 .../contract-0.6.0.sol-0.8.12-compact.json | 0 .../contract-0.6.0.sol-0.8.13-compact.json | 0 .../contract-0.6.0.sol-0.8.14-compact.json | 0 .../contract-0.6.0.sol-0.8.15-compact.json | 0 .../contract-0.6.0.sol-0.8.2-compact.json | 0 .../contract-0.6.0.sol-0.8.3-compact.json | 0 .../contract-0.6.0.sol-0.8.4-compact.json | 0 .../contract-0.6.0.sol-0.8.5-compact.json | 0 .../contract-0.6.0.sol-0.8.6-compact.json | 0 .../contract-0.6.0.sol-0.8.7-compact.json | 0 .../contract-0.6.0.sol-0.8.8-compact.json | 0 .../contract-0.6.0.sol-0.8.9-compact.json | 0 ...tom-error-selector.sol-0.8.10-compact.json | 0 ...tom-error-selector.sol-0.8.11-compact.json | 0 ...tom-error-selector.sol-0.8.12-compact.json | 0 ...tom-error-selector.sol-0.8.13-compact.json | 0 ...tom-error-selector.sol-0.8.14-compact.json | 0 ...tom-error-selector.sol-0.8.15-compact.json | 0 ...stom-error-selector.sol-0.8.4-compact.json | 0 ...stom-error-selector.sol-0.8.5-compact.json | 0 ...stom-error-selector.sol-0.8.6-compact.json | 0 ...stom-error-selector.sol-0.8.7-compact.json | 0 ...stom-error-selector.sol-0.8.8-compact.json | 0 ...stom-error-selector.sol-0.8.9-compact.json | 0 .../custom_error-0.4.0.sol-0.4.0-compact.json | 0 .../custom_error-0.4.0.sol-0.4.0-legacy.json | 0 .../custom_error-0.4.0.sol-0.4.1-compact.json | 0 .../custom_error-0.4.0.sol-0.4.1-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.10-compact.json | 0 .../custom_error-0.4.0.sol-0.4.10-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.11-compact.json | 0 .../custom_error-0.4.0.sol-0.4.11-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.12-compact.json | 0 .../custom_error-0.4.0.sol-0.4.12-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.13-compact.json | 0 .../custom_error-0.4.0.sol-0.4.13-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.14-compact.json | 0 .../custom_error-0.4.0.sol-0.4.14-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.15-compact.json | 0 .../custom_error-0.4.0.sol-0.4.15-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.16-compact.json | 0 .../custom_error-0.4.0.sol-0.4.16-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.17-compact.json | 0 .../custom_error-0.4.0.sol-0.4.17-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.18-compact.json | 0 .../custom_error-0.4.0.sol-0.4.18-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.19-compact.json | 0 .../custom_error-0.4.0.sol-0.4.19-legacy.json | 0 .../custom_error-0.4.0.sol-0.4.2-compact.json | 0 .../custom_error-0.4.0.sol-0.4.2-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.20-compact.json | 0 .../custom_error-0.4.0.sol-0.4.20-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.21-compact.json | 0 .../custom_error-0.4.0.sol-0.4.21-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.22-compact.json | 0 .../custom_error-0.4.0.sol-0.4.22-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.23-compact.json | 0 .../custom_error-0.4.0.sol-0.4.23-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.24-compact.json | 0 .../custom_error-0.4.0.sol-0.4.24-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.25-compact.json | 0 .../custom_error-0.4.0.sol-0.4.25-legacy.json | 0 ...custom_error-0.4.0.sol-0.4.26-compact.json | 0 .../custom_error-0.4.0.sol-0.4.26-legacy.json | 0 .../custom_error-0.4.0.sol-0.4.3-compact.json | 0 .../custom_error-0.4.0.sol-0.4.3-legacy.json | 0 .../custom_error-0.4.0.sol-0.4.4-compact.json | 0 .../custom_error-0.4.0.sol-0.4.4-legacy.json | 0 .../custom_error-0.4.0.sol-0.4.5-compact.json | 0 .../custom_error-0.4.0.sol-0.4.5-legacy.json | 0 .../custom_error-0.4.0.sol-0.4.6-compact.json | 0 .../custom_error-0.4.0.sol-0.4.6-legacy.json | 0 .../custom_error-0.4.0.sol-0.4.7-compact.json | 0 .../custom_error-0.4.0.sol-0.4.7-legacy.json | 0 .../custom_error-0.4.0.sol-0.4.8-compact.json | 0 .../custom_error-0.4.0.sol-0.4.8-legacy.json | 0 .../custom_error-0.4.0.sol-0.4.9-compact.json | 0 .../custom_error-0.4.0.sol-0.4.9-legacy.json | 0 .../custom_error-0.4.0.sol-0.5.0-compact.json | 0 .../custom_error-0.4.0.sol-0.5.0-legacy.json | 0 .../custom_error-0.4.0.sol-0.5.1-compact.json | 0 .../custom_error-0.4.0.sol-0.5.1-legacy.json | 0 ...custom_error-0.4.0.sol-0.5.10-compact.json | 0 .../custom_error-0.4.0.sol-0.5.10-legacy.json | 0 ...custom_error-0.4.0.sol-0.5.11-compact.json | 0 .../custom_error-0.4.0.sol-0.5.11-legacy.json | 0 ...custom_error-0.4.0.sol-0.5.12-compact.json | 0 .../custom_error-0.4.0.sol-0.5.12-legacy.json | 0 ...custom_error-0.4.0.sol-0.5.13-compact.json | 0 .../custom_error-0.4.0.sol-0.5.13-legacy.json | 0 ...custom_error-0.4.0.sol-0.5.14-compact.json | 0 .../custom_error-0.4.0.sol-0.5.14-legacy.json | 0 ...custom_error-0.4.0.sol-0.5.15-compact.json | 0 .../custom_error-0.4.0.sol-0.5.15-legacy.json | 0 ...custom_error-0.4.0.sol-0.5.16-compact.json | 0 .../custom_error-0.4.0.sol-0.5.16-legacy.json | 0 ...custom_error-0.4.0.sol-0.5.17-compact.json | 0 .../custom_error-0.4.0.sol-0.5.17-legacy.json | 0 .../custom_error-0.4.0.sol-0.5.2-compact.json | 0 .../custom_error-0.4.0.sol-0.5.2-legacy.json | 0 .../custom_error-0.4.0.sol-0.5.3-compact.json | 0 .../custom_error-0.4.0.sol-0.5.3-legacy.json | 0 .../custom_error-0.4.0.sol-0.5.4-compact.json | 0 .../custom_error-0.4.0.sol-0.5.4-legacy.json | 0 .../custom_error-0.4.0.sol-0.5.5-compact.json | 0 .../custom_error-0.4.0.sol-0.5.5-legacy.json | 0 .../custom_error-0.4.0.sol-0.5.6-compact.json | 0 .../custom_error-0.4.0.sol-0.5.6-legacy.json | 0 .../custom_error-0.4.0.sol-0.5.7-compact.json | 0 .../custom_error-0.4.0.sol-0.5.7-legacy.json | 0 .../custom_error-0.4.0.sol-0.5.8-compact.json | 0 .../custom_error-0.4.0.sol-0.5.8-legacy.json | 0 .../custom_error-0.4.0.sol-0.5.9-compact.json | 0 .../custom_error-0.4.0.sol-0.5.9-legacy.json | 0 .../custom_error-0.4.0.sol-0.6.0-compact.json | 0 .../custom_error-0.4.0.sol-0.6.0-legacy.json | 0 .../custom_error-0.4.0.sol-0.6.1-compact.json | 0 .../custom_error-0.4.0.sol-0.6.1-legacy.json | 0 ...custom_error-0.4.0.sol-0.6.10-compact.json | 0 .../custom_error-0.4.0.sol-0.6.10-legacy.json | 0 ...custom_error-0.4.0.sol-0.6.11-compact.json | 0 .../custom_error-0.4.0.sol-0.6.11-legacy.json | 0 ...custom_error-0.4.0.sol-0.6.12-compact.json | 0 .../custom_error-0.4.0.sol-0.6.12-legacy.json | 0 .../custom_error-0.4.0.sol-0.6.2-compact.json | 0 .../custom_error-0.4.0.sol-0.6.2-legacy.json | 0 .../custom_error-0.4.0.sol-0.6.3-compact.json | 0 .../custom_error-0.4.0.sol-0.6.3-legacy.json | 0 .../custom_error-0.4.0.sol-0.6.4-compact.json | 0 .../custom_error-0.4.0.sol-0.6.4-legacy.json | 0 .../custom_error-0.4.0.sol-0.6.5-compact.json | 0 .../custom_error-0.4.0.sol-0.6.5-legacy.json | 0 .../custom_error-0.4.0.sol-0.6.6-compact.json | 0 .../custom_error-0.4.0.sol-0.6.6-legacy.json | 0 .../custom_error-0.4.0.sol-0.6.7-compact.json | 0 .../custom_error-0.4.0.sol-0.6.7-legacy.json | 0 .../custom_error-0.4.0.sol-0.6.8-compact.json | 0 .../custom_error-0.4.0.sol-0.6.8-legacy.json | 0 .../custom_error-0.4.0.sol-0.6.9-compact.json | 0 .../custom_error-0.4.0.sol-0.6.9-legacy.json | 0 .../custom_error-0.4.0.sol-0.7.0-compact.json | 0 .../custom_error-0.4.0.sol-0.7.0-legacy.json | 0 .../custom_error-0.4.0.sol-0.7.1-compact.json | 0 .../custom_error-0.4.0.sol-0.7.1-legacy.json | 0 .../custom_error-0.4.0.sol-0.7.2-compact.json | 0 .../custom_error-0.4.0.sol-0.7.2-legacy.json | 0 .../custom_error-0.4.0.sol-0.7.3-compact.json | 0 .../custom_error-0.4.0.sol-0.7.3-legacy.json | 0 .../custom_error-0.4.0.sol-0.7.4-compact.json | 0 .../custom_error-0.4.0.sol-0.7.4-legacy.json | 0 .../custom_error-0.4.0.sol-0.7.5-compact.json | 0 .../custom_error-0.4.0.sol-0.7.5-legacy.json | 0 .../custom_error-0.4.0.sol-0.7.6-compact.json | 0 .../custom_error-0.4.0.sol-0.7.6-legacy.json | 0 .../custom_error-0.4.0.sol-0.8.0-compact.json | 0 .../custom_error-0.4.0.sol-0.8.1-compact.json | 0 ...custom_error-0.4.0.sol-0.8.10-compact.json | 0 ...custom_error-0.4.0.sol-0.8.11-compact.json | 0 ...custom_error-0.4.0.sol-0.8.12-compact.json | 0 ...custom_error-0.4.0.sol-0.8.13-compact.json | 0 ...custom_error-0.4.0.sol-0.8.14-compact.json | 0 ...custom_error-0.4.0.sol-0.8.15-compact.json | 0 .../custom_error-0.4.0.sol-0.8.2-compact.json | 0 .../custom_error-0.4.0.sol-0.8.3-compact.json | 0 .../custom_error-0.4.0.sol-0.8.4-compact.json | 0 .../custom_error-0.4.0.sol-0.8.5-compact.json | 0 .../custom_error-0.4.0.sol-0.8.6-compact.json | 0 .../custom_error-0.4.0.sol-0.8.7-compact.json | 0 .../custom_error-0.4.0.sol-0.8.8-compact.json | 0 .../custom_error-0.4.0.sol-0.8.9-compact.json | 0 ...custom_error-0.8.4.sol-0.8.10-compact.json | 0 ...custom_error-0.8.4.sol-0.8.11-compact.json | 0 ...custom_error-0.8.4.sol-0.8.12-compact.json | 0 ...custom_error-0.8.4.sol-0.8.13-compact.json | 0 ...custom_error-0.8.4.sol-0.8.14-compact.json | 0 ...custom_error-0.8.4.sol-0.8.15-compact.json | 0 .../custom_error-0.8.4.sol-0.8.4-compact.json | 0 .../custom_error-0.8.4.sol-0.8.5-compact.json | 0 .../custom_error-0.8.4.sol-0.8.6-compact.json | 0 .../custom_error-0.8.4.sol-0.8.7-compact.json | 0 .../custom_error-0.8.4.sol-0.8.8-compact.json | 0 .../custom_error-0.8.4.sol-0.8.9-compact.json | 0 ...ith_state_variable.sol-0.8.10-compact.json | 0 ...ith_state_variable.sol-0.8.11-compact.json | 0 ...ith_state_variable.sol-0.8.12-compact.json | 0 ...with_state_variable.sol-0.8.4-compact.json | 0 ...with_state_variable.sol-0.8.5-compact.json | 0 ...with_state_variable.sol-0.8.6-compact.json | 0 ...with_state_variable.sol-0.8.7-compact.json | 0 ...with_state_variable.sol-0.8.8-compact.json | 0 ...with_state_variable.sol-0.8.9-compact.json | 0 .../dowhile-0.4.0.sol-0.4.0-compact.json | 0 .../dowhile-0.4.0.sol-0.4.0-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.1-compact.json | 0 .../dowhile-0.4.0.sol-0.4.1-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.10-compact.json | 0 .../dowhile-0.4.0.sol-0.4.10-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.11-compact.json | 0 .../dowhile-0.4.0.sol-0.4.11-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.12-compact.json | 0 .../dowhile-0.4.0.sol-0.4.12-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.13-compact.json | 0 .../dowhile-0.4.0.sol-0.4.13-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.14-compact.json | 0 .../dowhile-0.4.0.sol-0.4.14-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.15-compact.json | 0 .../dowhile-0.4.0.sol-0.4.15-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.16-compact.json | 0 .../dowhile-0.4.0.sol-0.4.16-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.17-compact.json | 0 .../dowhile-0.4.0.sol-0.4.17-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.18-compact.json | 0 .../dowhile-0.4.0.sol-0.4.18-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.19-compact.json | 0 .../dowhile-0.4.0.sol-0.4.19-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.2-compact.json | 0 .../dowhile-0.4.0.sol-0.4.2-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.20-compact.json | 0 .../dowhile-0.4.0.sol-0.4.20-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.21-compact.json | 0 .../dowhile-0.4.0.sol-0.4.21-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.22-compact.json | 0 .../dowhile-0.4.0.sol-0.4.22-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.23-compact.json | 0 .../dowhile-0.4.0.sol-0.4.23-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.24-compact.json | 0 .../dowhile-0.4.0.sol-0.4.24-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.25-compact.json | 0 .../dowhile-0.4.0.sol-0.4.25-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.26-compact.json | 0 .../dowhile-0.4.0.sol-0.4.26-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.3-compact.json | 0 .../dowhile-0.4.0.sol-0.4.3-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.4-compact.json | 0 .../dowhile-0.4.0.sol-0.4.4-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.5-compact.json | 0 .../dowhile-0.4.0.sol-0.4.5-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.6-compact.json | 0 .../dowhile-0.4.0.sol-0.4.6-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.7-compact.json | 0 .../dowhile-0.4.0.sol-0.4.7-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.8-compact.json | 0 .../dowhile-0.4.0.sol-0.4.8-legacy.json | 0 .../dowhile-0.4.0.sol-0.4.9-compact.json | 0 .../dowhile-0.4.0.sol-0.4.9-legacy.json | 0 .../dowhile-0.4.5.sol-0.4.5-compact.json | 0 .../dowhile-0.4.5.sol-0.4.5-legacy.json | 0 .../dowhile-0.4.5.sol-0.4.6-compact.json | 0 .../dowhile-0.4.5.sol-0.4.6-legacy.json | 0 .../dowhile-0.4.5.sol-0.4.7-compact.json | 0 .../dowhile-0.4.5.sol-0.4.7-legacy.json | 0 .../dowhile-0.4.5.sol-0.4.8-compact.json | 0 .../dowhile-0.4.5.sol-0.4.8-legacy.json | 0 .../dowhile-0.4.5.sol-0.4.9-compact.json | 0 .../dowhile-0.4.5.sol-0.4.9-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.0-compact.json | 0 .../dowhile-0.4.5.sol-0.5.0-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.1-compact.json | 0 .../dowhile-0.4.5.sol-0.5.1-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.10-compact.json | 0 .../dowhile-0.4.5.sol-0.5.10-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.11-compact.json | 0 .../dowhile-0.4.5.sol-0.5.11-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.12-compact.json | 0 .../dowhile-0.4.5.sol-0.5.12-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.13-compact.json | 0 .../dowhile-0.4.5.sol-0.5.13-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.14-compact.json | 0 .../dowhile-0.4.5.sol-0.5.14-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.15-compact.json | 0 .../dowhile-0.4.5.sol-0.5.15-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.16-compact.json | 0 .../dowhile-0.4.5.sol-0.5.16-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.17-compact.json | 0 .../dowhile-0.4.5.sol-0.5.17-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.2-compact.json | 0 .../dowhile-0.4.5.sol-0.5.2-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.3-compact.json | 0 .../dowhile-0.4.5.sol-0.5.3-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.4-compact.json | 0 .../dowhile-0.4.5.sol-0.5.4-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.5-compact.json | 0 .../dowhile-0.4.5.sol-0.5.5-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.6-compact.json | 0 .../dowhile-0.4.5.sol-0.5.6-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.7-compact.json | 0 .../dowhile-0.4.5.sol-0.5.7-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.8-compact.json | 0 .../dowhile-0.4.5.sol-0.5.8-legacy.json | 0 .../dowhile-0.4.5.sol-0.5.9-compact.json | 0 .../dowhile-0.4.5.sol-0.5.9-legacy.json | 0 .../dowhile-0.4.5.sol-0.6.0-compact.json | 0 .../dowhile-0.4.5.sol-0.6.0-legacy.json | 0 .../dowhile-0.4.5.sol-0.6.1-compact.json | 0 .../dowhile-0.4.5.sol-0.6.1-legacy.json | 0 .../dowhile-0.4.5.sol-0.6.10-compact.json | 0 .../dowhile-0.4.5.sol-0.6.10-legacy.json | 0 .../dowhile-0.4.5.sol-0.6.11-compact.json | 0 .../dowhile-0.4.5.sol-0.6.11-legacy.json | 0 .../dowhile-0.4.5.sol-0.6.12-compact.json | 0 .../dowhile-0.4.5.sol-0.6.12-legacy.json | 0 .../dowhile-0.4.5.sol-0.6.2-compact.json | 0 .../dowhile-0.4.5.sol-0.6.2-legacy.json | 0 .../dowhile-0.4.5.sol-0.6.3-compact.json | 0 .../dowhile-0.4.5.sol-0.6.3-legacy.json | 0 .../dowhile-0.4.5.sol-0.6.4-compact.json | 0 .../dowhile-0.4.5.sol-0.6.4-legacy.json | 0 .../dowhile-0.4.5.sol-0.6.5-compact.json | 0 .../dowhile-0.4.5.sol-0.6.5-legacy.json | 0 .../dowhile-0.4.5.sol-0.6.6-compact.json | 0 .../dowhile-0.4.5.sol-0.6.6-legacy.json | 0 .../dowhile-0.4.5.sol-0.6.7-compact.json | 0 .../dowhile-0.4.5.sol-0.6.7-legacy.json | 0 .../dowhile-0.4.5.sol-0.6.8-compact.json | 0 .../dowhile-0.4.5.sol-0.6.8-legacy.json | 0 .../dowhile-0.4.5.sol-0.6.9-compact.json | 0 .../dowhile-0.4.5.sol-0.6.9-legacy.json | 0 .../dowhile-0.4.5.sol-0.7.0-compact.json | 0 .../dowhile-0.4.5.sol-0.7.0-legacy.json | 0 .../dowhile-0.4.5.sol-0.7.1-compact.json | 0 .../dowhile-0.4.5.sol-0.7.1-legacy.json | 0 .../dowhile-0.4.5.sol-0.7.2-compact.json | 0 .../dowhile-0.4.5.sol-0.7.2-legacy.json | 0 .../dowhile-0.4.5.sol-0.7.3-compact.json | 0 .../dowhile-0.4.5.sol-0.7.3-legacy.json | 0 .../dowhile-0.4.5.sol-0.7.4-compact.json | 0 .../dowhile-0.4.5.sol-0.7.4-legacy.json | 0 .../dowhile-0.4.5.sol-0.7.5-compact.json | 0 .../dowhile-0.4.5.sol-0.7.5-legacy.json | 0 .../dowhile-0.4.5.sol-0.7.6-compact.json | 0 .../dowhile-0.4.5.sol-0.7.6-legacy.json | 0 .../dowhile-0.4.5.sol-0.8.0-compact.json | 0 .../dowhile-0.4.5.sol-0.8.1-compact.json | 0 .../dowhile-0.4.5.sol-0.8.10-compact.json | 0 .../dowhile-0.4.5.sol-0.8.11-compact.json | 0 .../dowhile-0.4.5.sol-0.8.12-compact.json | 0 .../dowhile-0.4.5.sol-0.8.13-compact.json | 0 .../dowhile-0.4.5.sol-0.8.14-compact.json | 0 .../dowhile-0.4.5.sol-0.8.15-compact.json | 0 .../dowhile-0.4.5.sol-0.8.2-compact.json | 0 .../dowhile-0.4.5.sol-0.8.3-compact.json | 0 .../dowhile-0.4.5.sol-0.8.4-compact.json | 0 .../dowhile-0.4.5.sol-0.8.5-compact.json | 0 .../dowhile-0.4.5.sol-0.8.6-compact.json | 0 .../dowhile-0.4.5.sol-0.8.7-compact.json | 0 .../dowhile-0.4.5.sol-0.8.8-compact.json | 0 .../dowhile-0.4.5.sol-0.8.9-compact.json | 0 .../emit-0.4.21.sol-0.4.21-compact.json | 0 .../emit-0.4.21.sol-0.4.21-legacy.json | 0 .../emit-0.4.21.sol-0.4.22-compact.json | 0 .../emit-0.4.21.sol-0.4.22-legacy.json | 0 .../emit-0.4.21.sol-0.4.23-compact.json | 0 .../emit-0.4.21.sol-0.4.23-legacy.json | 0 .../emit-0.4.21.sol-0.4.24-compact.json | 0 .../emit-0.4.21.sol-0.4.24-legacy.json | 0 .../emit-0.4.21.sol-0.4.25-compact.json | 0 .../emit-0.4.21.sol-0.4.25-legacy.json | 0 .../emit-0.4.21.sol-0.4.26-compact.json | 0 .../emit-0.4.21.sol-0.4.26-legacy.json | 0 .../emit-0.4.8.sol-0.4.8-compact.json | 0 .../expected/emit-0.4.8.sol-0.4.8-legacy.json | 0 .../emit-0.4.8.sol-0.4.9-compact.json | 0 .../expected/emit-0.4.8.sol-0.4.9-legacy.json | 0 .../emit-0.5.0.sol-0.5.0-compact.json | 0 .../expected/emit-0.5.0.sol-0.5.0-legacy.json | 0 .../emit-0.5.0.sol-0.5.1-compact.json | 0 .../expected/emit-0.5.0.sol-0.5.1-legacy.json | 0 .../emit-0.5.0.sol-0.5.10-compact.json | 0 .../emit-0.5.0.sol-0.5.10-legacy.json | 0 .../emit-0.5.0.sol-0.5.11-compact.json | 0 .../emit-0.5.0.sol-0.5.11-legacy.json | 0 .../emit-0.5.0.sol-0.5.12-compact.json | 0 .../emit-0.5.0.sol-0.5.12-legacy.json | 0 .../emit-0.5.0.sol-0.5.13-compact.json | 0 .../emit-0.5.0.sol-0.5.13-legacy.json | 0 .../emit-0.5.0.sol-0.5.14-compact.json | 0 .../emit-0.5.0.sol-0.5.14-legacy.json | 0 .../emit-0.5.0.sol-0.5.15-compact.json | 0 .../emit-0.5.0.sol-0.5.15-legacy.json | 0 .../emit-0.5.0.sol-0.5.16-compact.json | 0 .../emit-0.5.0.sol-0.5.16-legacy.json | 0 .../emit-0.5.0.sol-0.5.17-compact.json | 0 .../emit-0.5.0.sol-0.5.17-legacy.json | 0 .../emit-0.5.0.sol-0.5.2-compact.json | 0 .../expected/emit-0.5.0.sol-0.5.2-legacy.json | 0 .../emit-0.5.0.sol-0.5.3-compact.json | 0 .../expected/emit-0.5.0.sol-0.5.3-legacy.json | 0 .../emit-0.5.0.sol-0.5.4-compact.json | 0 .../expected/emit-0.5.0.sol-0.5.4-legacy.json | 0 .../emit-0.5.0.sol-0.5.5-compact.json | 0 .../expected/emit-0.5.0.sol-0.5.5-legacy.json | 0 .../emit-0.5.0.sol-0.5.6-compact.json | 0 .../expected/emit-0.5.0.sol-0.5.6-legacy.json | 0 .../emit-0.5.0.sol-0.5.7-compact.json | 0 .../expected/emit-0.5.0.sol-0.5.7-legacy.json | 0 .../emit-0.5.0.sol-0.5.8-compact.json | 0 .../expected/emit-0.5.0.sol-0.5.8-legacy.json | 0 .../emit-0.5.0.sol-0.5.9-compact.json | 0 .../expected/emit-0.5.0.sol-0.5.9-legacy.json | 0 .../emit-0.5.0.sol-0.6.0-compact.json | 0 .../expected/emit-0.5.0.sol-0.6.0-legacy.json | 0 .../emit-0.5.0.sol-0.6.1-compact.json | 0 .../expected/emit-0.5.0.sol-0.6.1-legacy.json | 0 .../emit-0.5.0.sol-0.6.10-compact.json | 0 .../emit-0.5.0.sol-0.6.10-legacy.json | 0 .../emit-0.5.0.sol-0.6.11-compact.json | 0 .../emit-0.5.0.sol-0.6.11-legacy.json | 0 .../emit-0.5.0.sol-0.6.12-compact.json | 0 .../emit-0.5.0.sol-0.6.12-legacy.json | 0 .../emit-0.5.0.sol-0.6.2-compact.json | 0 .../expected/emit-0.5.0.sol-0.6.2-legacy.json | 0 .../emit-0.5.0.sol-0.6.3-compact.json | 0 .../expected/emit-0.5.0.sol-0.6.3-legacy.json | 0 .../emit-0.5.0.sol-0.6.4-compact.json | 0 .../expected/emit-0.5.0.sol-0.6.4-legacy.json | 0 .../emit-0.5.0.sol-0.6.5-compact.json | 0 .../expected/emit-0.5.0.sol-0.6.5-legacy.json | 0 .../emit-0.5.0.sol-0.6.6-compact.json | 0 .../expected/emit-0.5.0.sol-0.6.6-legacy.json | 0 .../emit-0.5.0.sol-0.6.7-compact.json | 0 .../expected/emit-0.5.0.sol-0.6.7-legacy.json | 0 .../emit-0.5.0.sol-0.6.8-compact.json | 0 .../expected/emit-0.5.0.sol-0.6.8-legacy.json | 0 .../emit-0.5.0.sol-0.6.9-compact.json | 0 .../expected/emit-0.5.0.sol-0.6.9-legacy.json | 0 .../emit-0.5.0.sol-0.7.0-compact.json | 0 .../expected/emit-0.5.0.sol-0.7.0-legacy.json | 0 .../emit-0.5.0.sol-0.7.1-compact.json | 0 .../expected/emit-0.5.0.sol-0.7.1-legacy.json | 0 .../emit-0.5.0.sol-0.7.2-compact.json | 0 .../expected/emit-0.5.0.sol-0.7.2-legacy.json | 0 .../emit-0.5.0.sol-0.7.3-compact.json | 0 .../expected/emit-0.5.0.sol-0.7.3-legacy.json | 0 .../emit-0.5.0.sol-0.7.4-compact.json | 0 .../expected/emit-0.5.0.sol-0.7.4-legacy.json | 0 .../emit-0.5.0.sol-0.7.5-compact.json | 0 .../expected/emit-0.5.0.sol-0.7.5-legacy.json | 0 .../emit-0.5.0.sol-0.7.6-compact.json | 0 .../expected/emit-0.5.0.sol-0.7.6-legacy.json | 0 .../emit-0.5.0.sol-0.8.0-compact.json | 0 .../emit-0.5.0.sol-0.8.1-compact.json | 0 .../emit-0.5.0.sol-0.8.10-compact.json | 0 .../emit-0.5.0.sol-0.8.11-compact.json | 0 .../emit-0.5.0.sol-0.8.12-compact.json | 0 .../emit-0.5.0.sol-0.8.13-compact.json | 0 .../emit-0.5.0.sol-0.8.14-compact.json | 0 .../emit-0.5.0.sol-0.8.15-compact.json | 0 .../emit-0.5.0.sol-0.8.2-compact.json | 0 .../emit-0.5.0.sol-0.8.3-compact.json | 0 .../emit-0.5.0.sol-0.8.4-compact.json | 0 .../emit-0.5.0.sol-0.8.5-compact.json | 0 .../emit-0.5.0.sol-0.8.6-compact.json | 0 .../emit-0.5.0.sol-0.8.7-compact.json | 0 .../emit-0.5.0.sol-0.8.8-compact.json | 0 .../emit-0.5.0.sol-0.8.9-compact.json | 0 .../enum-0.4.0.sol-0.4.0-compact.json | 0 .../expected/enum-0.4.0.sol-0.4.0-legacy.json | 0 .../enum-0.4.0.sol-0.4.1-compact.json | 0 .../expected/enum-0.4.0.sol-0.4.1-legacy.json | 0 .../enum-0.4.0.sol-0.4.10-compact.json | 0 .../enum-0.4.0.sol-0.4.10-legacy.json | 0 .../enum-0.4.0.sol-0.4.11-compact.json | 0 .../enum-0.4.0.sol-0.4.11-legacy.json | 0 .../enum-0.4.0.sol-0.4.12-compact.json | 0 .../enum-0.4.0.sol-0.4.12-legacy.json | 0 .../enum-0.4.0.sol-0.4.13-compact.json | 0 .../enum-0.4.0.sol-0.4.13-legacy.json | 0 .../enum-0.4.0.sol-0.4.14-compact.json | 0 .../enum-0.4.0.sol-0.4.14-legacy.json | 0 .../enum-0.4.0.sol-0.4.15-compact.json | 0 .../enum-0.4.0.sol-0.4.15-legacy.json | 0 .../enum-0.4.0.sol-0.4.16-compact.json | 0 .../enum-0.4.0.sol-0.4.16-legacy.json | 0 .../enum-0.4.0.sol-0.4.17-compact.json | 0 .../enum-0.4.0.sol-0.4.17-legacy.json | 0 .../enum-0.4.0.sol-0.4.18-compact.json | 0 .../enum-0.4.0.sol-0.4.18-legacy.json | 0 .../enum-0.4.0.sol-0.4.19-compact.json | 0 .../enum-0.4.0.sol-0.4.19-legacy.json | 0 .../enum-0.4.0.sol-0.4.2-compact.json | 0 .../expected/enum-0.4.0.sol-0.4.2-legacy.json | 0 .../enum-0.4.0.sol-0.4.20-compact.json | 0 .../enum-0.4.0.sol-0.4.20-legacy.json | 0 .../enum-0.4.0.sol-0.4.21-compact.json | 0 .../enum-0.4.0.sol-0.4.21-legacy.json | 0 .../enum-0.4.0.sol-0.4.22-compact.json | 0 .../enum-0.4.0.sol-0.4.22-legacy.json | 0 .../enum-0.4.0.sol-0.4.23-compact.json | 0 .../enum-0.4.0.sol-0.4.23-legacy.json | 0 .../enum-0.4.0.sol-0.4.24-compact.json | 0 .../enum-0.4.0.sol-0.4.24-legacy.json | 0 .../enum-0.4.0.sol-0.4.25-compact.json | 0 .../enum-0.4.0.sol-0.4.25-legacy.json | 0 .../enum-0.4.0.sol-0.4.26-compact.json | 0 .../enum-0.4.0.sol-0.4.26-legacy.json | 0 .../enum-0.4.0.sol-0.4.3-compact.json | 0 .../expected/enum-0.4.0.sol-0.4.3-legacy.json | 0 .../enum-0.4.0.sol-0.4.4-compact.json | 0 .../expected/enum-0.4.0.sol-0.4.4-legacy.json | 0 .../enum-0.4.0.sol-0.4.5-compact.json | 0 .../expected/enum-0.4.0.sol-0.4.5-legacy.json | 0 .../enum-0.4.0.sol-0.4.6-compact.json | 0 .../expected/enum-0.4.0.sol-0.4.6-legacy.json | 0 .../enum-0.4.0.sol-0.4.7-compact.json | 0 .../expected/enum-0.4.0.sol-0.4.7-legacy.json | 0 .../enum-0.4.0.sol-0.4.8-compact.json | 0 .../expected/enum-0.4.0.sol-0.4.8-legacy.json | 0 .../enum-0.4.0.sol-0.4.9-compact.json | 0 .../expected/enum-0.4.0.sol-0.4.9-legacy.json | 0 .../enum-0.4.0.sol-0.5.0-compact.json | 0 .../expected/enum-0.4.0.sol-0.5.0-legacy.json | 0 .../enum-0.4.0.sol-0.5.1-compact.json | 0 .../expected/enum-0.4.0.sol-0.5.1-legacy.json | 0 .../enum-0.4.0.sol-0.5.10-compact.json | 0 .../enum-0.4.0.sol-0.5.10-legacy.json | 0 .../enum-0.4.0.sol-0.5.11-compact.json | 0 .../enum-0.4.0.sol-0.5.11-legacy.json | 0 .../enum-0.4.0.sol-0.5.12-compact.json | 0 .../enum-0.4.0.sol-0.5.12-legacy.json | 0 .../enum-0.4.0.sol-0.5.13-compact.json | 0 .../enum-0.4.0.sol-0.5.13-legacy.json | 0 .../enum-0.4.0.sol-0.5.14-compact.json | 0 .../enum-0.4.0.sol-0.5.14-legacy.json | 0 .../enum-0.4.0.sol-0.5.15-compact.json | 0 .../enum-0.4.0.sol-0.5.15-legacy.json | 0 .../enum-0.4.0.sol-0.5.16-compact.json | 0 .../enum-0.4.0.sol-0.5.16-legacy.json | 0 .../enum-0.4.0.sol-0.5.17-compact.json | 0 .../enum-0.4.0.sol-0.5.17-legacy.json | 0 .../enum-0.4.0.sol-0.5.2-compact.json | 0 .../expected/enum-0.4.0.sol-0.5.2-legacy.json | 0 .../enum-0.4.0.sol-0.5.3-compact.json | 0 .../expected/enum-0.4.0.sol-0.5.3-legacy.json | 0 .../enum-0.4.0.sol-0.5.4-compact.json | 0 .../expected/enum-0.4.0.sol-0.5.4-legacy.json | 0 .../enum-0.4.0.sol-0.5.5-compact.json | 0 .../expected/enum-0.4.0.sol-0.5.5-legacy.json | 0 .../enum-0.4.0.sol-0.5.6-compact.json | 0 .../expected/enum-0.4.0.sol-0.5.6-legacy.json | 0 .../enum-0.4.0.sol-0.5.7-compact.json | 0 .../expected/enum-0.4.0.sol-0.5.7-legacy.json | 0 .../enum-0.4.0.sol-0.5.8-compact.json | 0 .../expected/enum-0.4.0.sol-0.5.8-legacy.json | 0 .../enum-0.4.0.sol-0.5.9-compact.json | 0 .../expected/enum-0.4.0.sol-0.5.9-legacy.json | 0 .../enum-0.4.0.sol-0.6.0-compact.json | 0 .../expected/enum-0.4.0.sol-0.6.0-legacy.json | 0 .../enum-0.4.0.sol-0.6.1-compact.json | 0 .../expected/enum-0.4.0.sol-0.6.1-legacy.json | 0 .../enum-0.4.0.sol-0.6.10-compact.json | 0 .../enum-0.4.0.sol-0.6.10-legacy.json | 0 .../enum-0.4.0.sol-0.6.11-compact.json | 0 .../enum-0.4.0.sol-0.6.11-legacy.json | 0 .../enum-0.4.0.sol-0.6.12-compact.json | 0 .../enum-0.4.0.sol-0.6.12-legacy.json | 0 .../enum-0.4.0.sol-0.6.2-compact.json | 0 .../expected/enum-0.4.0.sol-0.6.2-legacy.json | 0 .../enum-0.4.0.sol-0.6.3-compact.json | 0 .../expected/enum-0.4.0.sol-0.6.3-legacy.json | 0 .../enum-0.4.0.sol-0.6.4-compact.json | 0 .../expected/enum-0.4.0.sol-0.6.4-legacy.json | 0 .../enum-0.4.0.sol-0.6.5-compact.json | 0 .../expected/enum-0.4.0.sol-0.6.5-legacy.json | 0 .../enum-0.4.0.sol-0.6.6-compact.json | 0 .../expected/enum-0.4.0.sol-0.6.6-legacy.json | 0 .../enum-0.4.0.sol-0.6.7-compact.json | 0 .../expected/enum-0.4.0.sol-0.6.7-legacy.json | 0 .../enum-0.4.0.sol-0.6.8-compact.json | 0 .../expected/enum-0.4.0.sol-0.6.8-legacy.json | 0 .../enum-0.4.0.sol-0.6.9-compact.json | 0 .../expected/enum-0.4.0.sol-0.6.9-legacy.json | 0 .../enum-0.4.0.sol-0.7.0-compact.json | 0 .../expected/enum-0.4.0.sol-0.7.0-legacy.json | 0 .../enum-0.4.0.sol-0.7.1-compact.json | 0 .../expected/enum-0.4.0.sol-0.7.1-legacy.json | 0 .../enum-0.4.0.sol-0.7.2-compact.json | 0 .../expected/enum-0.4.0.sol-0.7.2-legacy.json | 0 .../enum-0.4.0.sol-0.7.3-compact.json | 0 .../expected/enum-0.4.0.sol-0.7.3-legacy.json | 0 .../enum-0.4.0.sol-0.7.4-compact.json | 0 .../expected/enum-0.4.0.sol-0.7.4-legacy.json | 0 .../enum-0.4.0.sol-0.7.5-compact.json | 0 .../expected/enum-0.4.0.sol-0.7.5-legacy.json | 0 .../enum-0.4.0.sol-0.7.6-compact.json | 0 .../expected/enum-0.4.0.sol-0.7.6-legacy.json | 0 .../enum-0.8.0.sol-0.8.0-compact.json | 0 .../enum-0.8.0.sol-0.8.1-compact.json | 0 .../enum-0.8.0.sol-0.8.10-compact.json | 0 .../enum-0.8.0.sol-0.8.11-compact.json | 0 .../enum-0.8.0.sol-0.8.12-compact.json | 0 .../enum-0.8.0.sol-0.8.13-compact.json | 0 .../enum-0.8.0.sol-0.8.14-compact.json | 0 .../enum-0.8.0.sol-0.8.15-compact.json | 0 .../enum-0.8.0.sol-0.8.2-compact.json | 0 .../enum-0.8.0.sol-0.8.3-compact.json | 0 .../enum-0.8.0.sol-0.8.4-compact.json | 0 .../enum-0.8.0.sol-0.8.5-compact.json | 0 .../enum-0.8.0.sol-0.8.6-compact.json | 0 .../enum-0.8.0.sol-0.8.7-compact.json | 0 .../enum-0.8.0.sol-0.8.8-compact.json | 0 .../enum-0.8.0.sol-0.8.9-compact.json | 0 .../expected/event-all.sol-0.4.0-compact.json | 0 .../expected/event-all.sol-0.4.0-legacy.json | 0 .../expected/event-all.sol-0.4.1-compact.json | 0 .../expected/event-all.sol-0.4.1-legacy.json | 0 .../event-all.sol-0.4.10-compact.json | 0 .../expected/event-all.sol-0.4.10-legacy.json | 0 .../event-all.sol-0.4.11-compact.json | 0 .../expected/event-all.sol-0.4.11-legacy.json | 0 .../event-all.sol-0.4.12-compact.json | 0 .../expected/event-all.sol-0.4.12-legacy.json | 0 .../event-all.sol-0.4.13-compact.json | 0 .../expected/event-all.sol-0.4.13-legacy.json | 0 .../event-all.sol-0.4.14-compact.json | 0 .../expected/event-all.sol-0.4.14-legacy.json | 0 .../event-all.sol-0.4.15-compact.json | 0 .../expected/event-all.sol-0.4.15-legacy.json | 0 .../event-all.sol-0.4.16-compact.json | 0 .../expected/event-all.sol-0.4.16-legacy.json | 0 .../event-all.sol-0.4.17-compact.json | 0 .../expected/event-all.sol-0.4.17-legacy.json | 0 .../event-all.sol-0.4.18-compact.json | 0 .../expected/event-all.sol-0.4.18-legacy.json | 0 .../event-all.sol-0.4.19-compact.json | 0 .../expected/event-all.sol-0.4.19-legacy.json | 0 .../expected/event-all.sol-0.4.2-compact.json | 0 .../expected/event-all.sol-0.4.2-legacy.json | 0 .../event-all.sol-0.4.20-compact.json | 0 .../expected/event-all.sol-0.4.20-legacy.json | 0 .../event-all.sol-0.4.21-compact.json | 0 .../expected/event-all.sol-0.4.21-legacy.json | 0 .../event-all.sol-0.4.22-compact.json | 0 .../expected/event-all.sol-0.4.22-legacy.json | 0 .../event-all.sol-0.4.23-compact.json | 0 .../expected/event-all.sol-0.4.23-legacy.json | 0 .../event-all.sol-0.4.24-compact.json | 0 .../expected/event-all.sol-0.4.24-legacy.json | 0 .../event-all.sol-0.4.25-compact.json | 0 .../expected/event-all.sol-0.4.25-legacy.json | 0 .../event-all.sol-0.4.26-compact.json | 0 .../expected/event-all.sol-0.4.26-legacy.json | 0 .../expected/event-all.sol-0.4.3-compact.json | 0 .../expected/event-all.sol-0.4.3-legacy.json | 0 .../expected/event-all.sol-0.4.4-compact.json | 0 .../expected/event-all.sol-0.4.4-legacy.json | 0 .../expected/event-all.sol-0.4.5-compact.json | 0 .../expected/event-all.sol-0.4.5-legacy.json | 0 .../expected/event-all.sol-0.4.6-compact.json | 0 .../expected/event-all.sol-0.4.6-legacy.json | 0 .../expected/event-all.sol-0.4.7-compact.json | 0 .../expected/event-all.sol-0.4.7-legacy.json | 0 .../expected/event-all.sol-0.4.8-compact.json | 0 .../expected/event-all.sol-0.4.8-legacy.json | 0 .../expected/event-all.sol-0.4.9-compact.json | 0 .../expected/event-all.sol-0.4.9-legacy.json | 0 .../expected/event-all.sol-0.5.0-compact.json | 0 .../expected/event-all.sol-0.5.0-legacy.json | 0 .../expected/event-all.sol-0.5.1-compact.json | 0 .../expected/event-all.sol-0.5.1-legacy.json | 0 .../event-all.sol-0.5.10-compact.json | 0 .../expected/event-all.sol-0.5.10-legacy.json | 0 .../event-all.sol-0.5.11-compact.json | 0 .../expected/event-all.sol-0.5.11-legacy.json | 0 .../event-all.sol-0.5.12-compact.json | 0 .../expected/event-all.sol-0.5.12-legacy.json | 0 .../event-all.sol-0.5.13-compact.json | 0 .../expected/event-all.sol-0.5.13-legacy.json | 0 .../event-all.sol-0.5.14-compact.json | 0 .../expected/event-all.sol-0.5.14-legacy.json | 0 .../event-all.sol-0.5.15-compact.json | 0 .../expected/event-all.sol-0.5.15-legacy.json | 0 .../event-all.sol-0.5.16-compact.json | 0 .../expected/event-all.sol-0.5.16-legacy.json | 0 .../event-all.sol-0.5.17-compact.json | 0 .../expected/event-all.sol-0.5.17-legacy.json | 0 .../expected/event-all.sol-0.5.2-compact.json | 0 .../expected/event-all.sol-0.5.2-legacy.json | 0 .../expected/event-all.sol-0.5.3-compact.json | 0 .../expected/event-all.sol-0.5.3-legacy.json | 0 .../expected/event-all.sol-0.5.4-compact.json | 0 .../expected/event-all.sol-0.5.4-legacy.json | 0 .../expected/event-all.sol-0.5.5-compact.json | 0 .../expected/event-all.sol-0.5.5-legacy.json | 0 .../expected/event-all.sol-0.5.6-compact.json | 0 .../expected/event-all.sol-0.5.6-legacy.json | 0 .../expected/event-all.sol-0.5.7-compact.json | 0 .../expected/event-all.sol-0.5.7-legacy.json | 0 .../expected/event-all.sol-0.5.8-compact.json | 0 .../expected/event-all.sol-0.5.8-legacy.json | 0 .../expected/event-all.sol-0.5.9-compact.json | 0 .../expected/event-all.sol-0.5.9-legacy.json | 0 .../expected/event-all.sol-0.6.0-compact.json | 0 .../expected/event-all.sol-0.6.0-legacy.json | 0 .../expected/event-all.sol-0.6.1-compact.json | 0 .../expected/event-all.sol-0.6.1-legacy.json | 0 .../event-all.sol-0.6.10-compact.json | 0 .../expected/event-all.sol-0.6.10-legacy.json | 0 .../event-all.sol-0.6.11-compact.json | 0 .../expected/event-all.sol-0.6.11-legacy.json | 0 .../event-all.sol-0.6.12-compact.json | 0 .../expected/event-all.sol-0.6.12-legacy.json | 0 .../expected/event-all.sol-0.6.2-compact.json | 0 .../expected/event-all.sol-0.6.2-legacy.json | 0 .../expected/event-all.sol-0.6.3-compact.json | 0 .../expected/event-all.sol-0.6.3-legacy.json | 0 .../expected/event-all.sol-0.6.4-compact.json | 0 .../expected/event-all.sol-0.6.4-legacy.json | 0 .../expected/event-all.sol-0.6.5-compact.json | 0 .../expected/event-all.sol-0.6.5-legacy.json | 0 .../expected/event-all.sol-0.6.6-compact.json | 0 .../expected/event-all.sol-0.6.6-legacy.json | 0 .../expected/event-all.sol-0.6.7-compact.json | 0 .../expected/event-all.sol-0.6.7-legacy.json | 0 .../expected/event-all.sol-0.6.8-compact.json | 0 .../expected/event-all.sol-0.6.8-legacy.json | 0 .../expected/event-all.sol-0.6.9-compact.json | 0 .../expected/event-all.sol-0.6.9-legacy.json | 0 .../expected/event-all.sol-0.7.0-compact.json | 0 .../expected/event-all.sol-0.7.0-legacy.json | 0 .../expected/event-all.sol-0.7.1-compact.json | 0 .../expected/event-all.sol-0.7.1-legacy.json | 0 .../expected/event-all.sol-0.7.2-compact.json | 0 .../expected/event-all.sol-0.7.2-legacy.json | 0 .../expected/event-all.sol-0.7.3-compact.json | 0 .../expected/event-all.sol-0.7.3-legacy.json | 0 .../expected/event-all.sol-0.7.4-compact.json | 0 .../expected/event-all.sol-0.7.4-legacy.json | 0 .../expected/event-all.sol-0.7.5-compact.json | 0 .../expected/event-all.sol-0.7.5-legacy.json | 0 .../expected/event-all.sol-0.7.6-compact.json | 0 .../expected/event-all.sol-0.7.6-legacy.json | 0 .../expected/event-all.sol-0.8.0-compact.json | 0 .../expected/event-all.sol-0.8.1-compact.json | 0 .../event-all.sol-0.8.10-compact.json | 0 .../event-all.sol-0.8.11-compact.json | 0 .../event-all.sol-0.8.12-compact.json | 0 .../event-all.sol-0.8.13-compact.json | 0 .../event-all.sol-0.8.14-compact.json | 0 .../event-all.sol-0.8.15-compact.json | 0 .../expected/event-all.sol-0.8.2-compact.json | 0 .../expected/event-all.sol-0.8.3-compact.json | 0 .../expected/event-all.sol-0.8.4-compact.json | 0 .../expected/event-all.sol-0.8.5-compact.json | 0 .../expected/event-all.sol-0.8.6-compact.json | 0 .../expected/event-all.sol-0.8.7-compact.json | 0 .../expected/event-all.sol-0.8.8-compact.json | 0 .../expected/event-all.sol-0.8.9-compact.json | 0 .../expected/for-all.sol-0.4.0-compact.json | 0 .../expected/for-all.sol-0.4.0-legacy.json | 0 .../expected/for-all.sol-0.4.1-compact.json | 0 .../expected/for-all.sol-0.4.1-legacy.json | 0 .../expected/for-all.sol-0.4.10-compact.json | 0 .../expected/for-all.sol-0.4.10-legacy.json | 0 .../expected/for-all.sol-0.4.11-compact.json | 0 .../expected/for-all.sol-0.4.11-legacy.json | 0 .../expected/for-all.sol-0.4.12-compact.json | 0 .../expected/for-all.sol-0.4.12-legacy.json | 0 .../expected/for-all.sol-0.4.13-compact.json | 0 .../expected/for-all.sol-0.4.13-legacy.json | 0 .../expected/for-all.sol-0.4.14-compact.json | 0 .../expected/for-all.sol-0.4.14-legacy.json | 0 .../expected/for-all.sol-0.4.15-compact.json | 0 .../expected/for-all.sol-0.4.15-legacy.json | 0 .../expected/for-all.sol-0.4.16-compact.json | 0 .../expected/for-all.sol-0.4.16-legacy.json | 0 .../expected/for-all.sol-0.4.17-compact.json | 0 .../expected/for-all.sol-0.4.17-legacy.json | 0 .../expected/for-all.sol-0.4.18-compact.json | 0 .../expected/for-all.sol-0.4.18-legacy.json | 0 .../expected/for-all.sol-0.4.19-compact.json | 0 .../expected/for-all.sol-0.4.19-legacy.json | 0 .../expected/for-all.sol-0.4.2-compact.json | 0 .../expected/for-all.sol-0.4.2-legacy.json | 0 .../expected/for-all.sol-0.4.20-compact.json | 0 .../expected/for-all.sol-0.4.20-legacy.json | 0 .../expected/for-all.sol-0.4.21-compact.json | 0 .../expected/for-all.sol-0.4.21-legacy.json | 0 .../expected/for-all.sol-0.4.22-compact.json | 0 .../expected/for-all.sol-0.4.22-legacy.json | 0 .../expected/for-all.sol-0.4.23-compact.json | 0 .../expected/for-all.sol-0.4.23-legacy.json | 0 .../expected/for-all.sol-0.4.24-compact.json | 0 .../expected/for-all.sol-0.4.24-legacy.json | 0 .../expected/for-all.sol-0.4.25-compact.json | 0 .../expected/for-all.sol-0.4.25-legacy.json | 0 .../expected/for-all.sol-0.4.26-compact.json | 0 .../expected/for-all.sol-0.4.26-legacy.json | 0 .../expected/for-all.sol-0.4.3-compact.json | 0 .../expected/for-all.sol-0.4.3-legacy.json | 0 .../expected/for-all.sol-0.4.4-compact.json | 0 .../expected/for-all.sol-0.4.4-legacy.json | 0 .../expected/for-all.sol-0.4.5-compact.json | 0 .../expected/for-all.sol-0.4.5-legacy.json | 0 .../expected/for-all.sol-0.4.6-compact.json | 0 .../expected/for-all.sol-0.4.6-legacy.json | 0 .../expected/for-all.sol-0.4.7-compact.json | 0 .../expected/for-all.sol-0.4.7-legacy.json | 0 .../expected/for-all.sol-0.4.8-compact.json | 0 .../expected/for-all.sol-0.4.8-legacy.json | 0 .../expected/for-all.sol-0.4.9-compact.json | 0 .../expected/for-all.sol-0.4.9-legacy.json | 0 .../expected/for-all.sol-0.5.0-compact.json | 0 .../expected/for-all.sol-0.5.0-legacy.json | 0 .../expected/for-all.sol-0.5.1-compact.json | 0 .../expected/for-all.sol-0.5.1-legacy.json | 0 .../expected/for-all.sol-0.5.10-compact.json | 0 .../expected/for-all.sol-0.5.10-legacy.json | 0 .../expected/for-all.sol-0.5.11-compact.json | 0 .../expected/for-all.sol-0.5.11-legacy.json | 0 .../expected/for-all.sol-0.5.12-compact.json | 0 .../expected/for-all.sol-0.5.12-legacy.json | 0 .../expected/for-all.sol-0.5.13-compact.json | 0 .../expected/for-all.sol-0.5.13-legacy.json | 0 .../expected/for-all.sol-0.5.14-compact.json | 0 .../expected/for-all.sol-0.5.14-legacy.json | 0 .../expected/for-all.sol-0.5.15-compact.json | 0 .../expected/for-all.sol-0.5.15-legacy.json | 0 .../expected/for-all.sol-0.5.16-compact.json | 0 .../expected/for-all.sol-0.5.16-legacy.json | 0 .../expected/for-all.sol-0.5.17-compact.json | 0 .../expected/for-all.sol-0.5.17-legacy.json | 0 .../expected/for-all.sol-0.5.2-compact.json | 0 .../expected/for-all.sol-0.5.2-legacy.json | 0 .../expected/for-all.sol-0.5.3-compact.json | 0 .../expected/for-all.sol-0.5.3-legacy.json | 0 .../expected/for-all.sol-0.5.4-compact.json | 0 .../expected/for-all.sol-0.5.4-legacy.json | 0 .../expected/for-all.sol-0.5.5-compact.json | 0 .../expected/for-all.sol-0.5.5-legacy.json | 0 .../expected/for-all.sol-0.5.6-compact.json | 0 .../expected/for-all.sol-0.5.6-legacy.json | 0 .../expected/for-all.sol-0.5.7-compact.json | 0 .../expected/for-all.sol-0.5.7-legacy.json | 0 .../expected/for-all.sol-0.5.8-compact.json | 0 .../expected/for-all.sol-0.5.8-legacy.json | 0 .../expected/for-all.sol-0.5.9-compact.json | 0 .../expected/for-all.sol-0.5.9-legacy.json | 0 .../expected/for-all.sol-0.6.0-compact.json | 0 .../expected/for-all.sol-0.6.0-legacy.json | 0 .../expected/for-all.sol-0.6.1-compact.json | 0 .../expected/for-all.sol-0.6.1-legacy.json | 0 .../expected/for-all.sol-0.6.10-compact.json | 0 .../expected/for-all.sol-0.6.10-legacy.json | 0 .../expected/for-all.sol-0.6.11-compact.json | 0 .../expected/for-all.sol-0.6.11-legacy.json | 0 .../expected/for-all.sol-0.6.12-compact.json | 0 .../expected/for-all.sol-0.6.12-legacy.json | 0 .../expected/for-all.sol-0.6.2-compact.json | 0 .../expected/for-all.sol-0.6.2-legacy.json | 0 .../expected/for-all.sol-0.6.3-compact.json | 0 .../expected/for-all.sol-0.6.3-legacy.json | 0 .../expected/for-all.sol-0.6.4-compact.json | 0 .../expected/for-all.sol-0.6.4-legacy.json | 0 .../expected/for-all.sol-0.6.5-compact.json | 0 .../expected/for-all.sol-0.6.5-legacy.json | 0 .../expected/for-all.sol-0.6.6-compact.json | 0 .../expected/for-all.sol-0.6.6-legacy.json | 0 .../expected/for-all.sol-0.6.7-compact.json | 0 .../expected/for-all.sol-0.6.7-legacy.json | 0 .../expected/for-all.sol-0.6.8-compact.json | 0 .../expected/for-all.sol-0.6.8-legacy.json | 0 .../expected/for-all.sol-0.6.9-compact.json | 0 .../expected/for-all.sol-0.6.9-legacy.json | 0 .../expected/for-all.sol-0.7.0-compact.json | 0 .../expected/for-all.sol-0.7.0-legacy.json | 0 .../expected/for-all.sol-0.7.1-compact.json | 0 .../expected/for-all.sol-0.7.1-legacy.json | 0 .../expected/for-all.sol-0.7.2-compact.json | 0 .../expected/for-all.sol-0.7.2-legacy.json | 0 .../expected/for-all.sol-0.7.3-compact.json | 0 .../expected/for-all.sol-0.7.3-legacy.json | 0 .../expected/for-all.sol-0.7.4-compact.json | 0 .../expected/for-all.sol-0.7.4-legacy.json | 0 .../expected/for-all.sol-0.7.5-compact.json | 0 .../expected/for-all.sol-0.7.5-legacy.json | 0 .../expected/for-all.sol-0.7.6-compact.json | 0 .../expected/for-all.sol-0.7.6-legacy.json | 0 .../expected/for-all.sol-0.8.0-compact.json | 0 .../expected/for-all.sol-0.8.1-compact.json | 0 .../expected/for-all.sol-0.8.10-compact.json | 0 .../expected/for-all.sol-0.8.11-compact.json | 0 .../expected/for-all.sol-0.8.12-compact.json | 0 .../expected/for-all.sol-0.8.13-compact.json | 0 .../expected/for-all.sol-0.8.14-compact.json | 0 .../expected/for-all.sol-0.8.15-compact.json | 0 .../expected/for-all.sol-0.8.2-compact.json | 0 .../expected/for-all.sol-0.8.3-compact.json | 0 .../expected/for-all.sol-0.8.4-compact.json | 0 .../expected/for-all.sol-0.8.5-compact.json | 0 .../expected/for-all.sol-0.8.6-compact.json | 0 .../expected/for-all.sol-0.8.7-compact.json | 0 .../expected/for-all.sol-0.8.8-compact.json | 0 .../expected/for-all.sol-0.8.9-compact.json | 0 ...ibraries_from_free.sol-0.8.12-compact.json | 0 ...function_collision.sol-0.8.12-compact.json | 0 .../new_operator.sol-0.8.12-compact.json | 0 .../function-0.4.0.sol-0.4.0-compact.json | 0 .../function-0.4.0.sol-0.4.0-legacy.json | 0 .../function-0.4.0.sol-0.4.1-compact.json | 0 .../function-0.4.0.sol-0.4.1-legacy.json | 0 .../function-0.4.0.sol-0.4.10-compact.json | 0 .../function-0.4.0.sol-0.4.10-legacy.json | 0 .../function-0.4.0.sol-0.4.11-compact.json | 0 .../function-0.4.0.sol-0.4.11-legacy.json | 0 .../function-0.4.0.sol-0.4.12-compact.json | 0 .../function-0.4.0.sol-0.4.12-legacy.json | 0 .../function-0.4.0.sol-0.4.13-compact.json | 0 .../function-0.4.0.sol-0.4.13-legacy.json | 0 .../function-0.4.0.sol-0.4.14-compact.json | 0 .../function-0.4.0.sol-0.4.14-legacy.json | 0 .../function-0.4.0.sol-0.4.15-compact.json | 0 .../function-0.4.0.sol-0.4.15-legacy.json | 0 .../function-0.4.0.sol-0.4.2-compact.json | 0 .../function-0.4.0.sol-0.4.2-legacy.json | 0 .../function-0.4.0.sol-0.4.3-compact.json | 0 .../function-0.4.0.sol-0.4.3-legacy.json | 0 .../function-0.4.0.sol-0.4.4-compact.json | 0 .../function-0.4.0.sol-0.4.4-legacy.json | 0 .../function-0.4.0.sol-0.4.5-compact.json | 0 .../function-0.4.0.sol-0.4.5-legacy.json | 0 .../function-0.4.0.sol-0.4.6-compact.json | 0 .../function-0.4.0.sol-0.4.6-legacy.json | 0 .../function-0.4.0.sol-0.4.7-compact.json | 0 .../function-0.4.0.sol-0.4.7-legacy.json | 0 .../function-0.4.0.sol-0.4.8-compact.json | 0 .../function-0.4.0.sol-0.4.8-legacy.json | 0 .../function-0.4.0.sol-0.4.9-compact.json | 0 .../function-0.4.0.sol-0.4.9-legacy.json | 0 .../function-0.4.16.sol-0.4.16-compact.json | 0 .../function-0.4.16.sol-0.4.16-legacy.json | 0 .../function-0.4.16.sol-0.4.17-compact.json | 0 .../function-0.4.16.sol-0.4.17-legacy.json | 0 .../function-0.4.16.sol-0.4.18-compact.json | 0 .../function-0.4.16.sol-0.4.18-legacy.json | 0 .../function-0.4.16.sol-0.4.19-compact.json | 0 .../function-0.4.16.sol-0.4.19-legacy.json | 0 .../function-0.4.16.sol-0.4.20-compact.json | 0 .../function-0.4.16.sol-0.4.20-legacy.json | 0 .../function-0.4.16.sol-0.4.21-compact.json | 0 .../function-0.4.16.sol-0.4.21-legacy.json | 0 .../function-0.4.22.sol-0.4.22-compact.json | 0 .../function-0.4.22.sol-0.4.22-legacy.json | 0 .../function-0.4.23.sol-0.4.23-compact.json | 0 .../function-0.4.23.sol-0.4.23-legacy.json | 0 .../function-0.4.23.sol-0.4.24-compact.json | 0 .../function-0.4.23.sol-0.4.24-legacy.json | 0 .../function-0.4.23.sol-0.4.25-compact.json | 0 .../function-0.4.23.sol-0.4.25-legacy.json | 0 .../function-0.4.23.sol-0.4.26-compact.json | 0 .../function-0.4.23.sol-0.4.26-legacy.json | 0 .../function-0.5.0.sol-0.5.0-compact.json | 0 .../function-0.5.0.sol-0.5.0-legacy.json | 0 .../function-0.5.0.sol-0.5.1-compact.json | 0 .../function-0.5.0.sol-0.5.1-legacy.json | 0 .../function-0.5.0.sol-0.5.10-compact.json | 0 .../function-0.5.0.sol-0.5.10-legacy.json | 0 .../function-0.5.0.sol-0.5.11-compact.json | 0 .../function-0.5.0.sol-0.5.11-legacy.json | 0 .../function-0.5.0.sol-0.5.12-compact.json | 0 .../function-0.5.0.sol-0.5.12-legacy.json | 0 .../function-0.5.0.sol-0.5.13-compact.json | 0 .../function-0.5.0.sol-0.5.13-legacy.json | 0 .../function-0.5.0.sol-0.5.14-compact.json | 0 .../function-0.5.0.sol-0.5.14-legacy.json | 0 .../function-0.5.0.sol-0.5.15-compact.json | 0 .../function-0.5.0.sol-0.5.15-legacy.json | 0 .../function-0.5.0.sol-0.5.16-compact.json | 0 .../function-0.5.0.sol-0.5.16-legacy.json | 0 .../function-0.5.0.sol-0.5.17-compact.json | 0 .../function-0.5.0.sol-0.5.17-legacy.json | 0 .../function-0.5.0.sol-0.5.2-compact.json | 0 .../function-0.5.0.sol-0.5.2-legacy.json | 0 .../function-0.5.0.sol-0.5.3-compact.json | 0 .../function-0.5.0.sol-0.5.3-legacy.json | 0 .../function-0.5.0.sol-0.5.4-compact.json | 0 .../function-0.5.0.sol-0.5.4-legacy.json | 0 .../function-0.5.0.sol-0.5.5-compact.json | 0 .../function-0.5.0.sol-0.5.5-legacy.json | 0 .../function-0.5.0.sol-0.5.6-compact.json | 0 .../function-0.5.0.sol-0.5.6-legacy.json | 0 .../function-0.5.0.sol-0.5.7-compact.json | 0 .../function-0.5.0.sol-0.5.7-legacy.json | 0 .../function-0.5.0.sol-0.5.8-compact.json | 0 .../function-0.5.0.sol-0.5.8-legacy.json | 0 .../function-0.5.0.sol-0.5.9-compact.json | 0 .../function-0.5.0.sol-0.5.9-legacy.json | 0 .../function-0.6.0.sol-0.6.0-compact.json | 0 .../function-0.6.0.sol-0.6.1-compact.json | 0 .../function-0.6.0.sol-0.6.10-compact.json | 0 .../function-0.6.0.sol-0.6.11-compact.json | 0 .../function-0.6.0.sol-0.6.12-compact.json | 0 .../function-0.6.0.sol-0.6.2-compact.json | 0 .../function-0.6.0.sol-0.6.3-compact.json | 0 .../function-0.6.0.sol-0.6.4-compact.json | 0 .../function-0.6.0.sol-0.6.5-compact.json | 0 .../function-0.6.0.sol-0.6.6-compact.json | 0 .../function-0.6.0.sol-0.6.7-compact.json | 0 .../function-0.6.0.sol-0.6.8-compact.json | 0 .../function-0.6.0.sol-0.6.9-compact.json | 0 .../function-0.7.1.sol-0.7.1-compact.json | 0 .../function-0.7.1.sol-0.7.2-compact.json | 0 .../function-0.7.1.sol-0.7.3-compact.json | 0 .../function-0.7.1.sol-0.7.4-compact.json | 0 .../function-0.7.1.sol-0.7.5-compact.json | 0 .../function-0.7.1.sol-0.7.6-compact.json | 0 .../function-0.7.1.sol-0.8.0-compact.json | 0 .../function-0.7.1.sol-0.8.1-compact.json | 0 .../function-0.7.1.sol-0.8.10-compact.json | 0 .../function-0.7.1.sol-0.8.11-compact.json | 0 .../function-0.7.1.sol-0.8.12-compact.json | 0 .../function-0.7.1.sol-0.8.13-compact.json | 0 .../function-0.7.1.sol-0.8.14-compact.json | 0 .../function-0.7.1.sol-0.8.15-compact.json | 0 .../function-0.7.1.sol-0.8.2-compact.json | 0 .../function-0.7.1.sol-0.8.3-compact.json | 0 .../function-0.7.1.sol-0.8.4-compact.json | 0 .../function-0.7.1.sol-0.8.5-compact.json | 0 .../function-0.7.1.sol-0.8.6-compact.json | 0 .../function-0.7.1.sol-0.8.7-compact.json | 0 .../function-0.7.1.sol-0.8.8-compact.json | 0 .../function-0.7.1.sol-0.8.9-compact.json | 0 .../functioncall-0.4.0.sol-0.4.0-compact.json | 0 .../functioncall-0.4.0.sol-0.4.0-legacy.json | 0 .../functioncall-0.4.0.sol-0.4.1-compact.json | 0 .../functioncall-0.4.0.sol-0.4.1-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.10-compact.json | 0 .../functioncall-0.4.0.sol-0.4.10-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.11-compact.json | 0 .../functioncall-0.4.0.sol-0.4.11-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.12-compact.json | 0 .../functioncall-0.4.0.sol-0.4.12-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.13-compact.json | 0 .../functioncall-0.4.0.sol-0.4.13-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.14-compact.json | 0 .../functioncall-0.4.0.sol-0.4.14-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.15-compact.json | 0 .../functioncall-0.4.0.sol-0.4.15-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.16-compact.json | 0 .../functioncall-0.4.0.sol-0.4.16-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.17-compact.json | 0 .../functioncall-0.4.0.sol-0.4.17-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.18-compact.json | 0 .../functioncall-0.4.0.sol-0.4.18-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.19-compact.json | 0 .../functioncall-0.4.0.sol-0.4.19-legacy.json | 0 .../functioncall-0.4.0.sol-0.4.2-compact.json | 0 .../functioncall-0.4.0.sol-0.4.2-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.20-compact.json | 0 .../functioncall-0.4.0.sol-0.4.20-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.21-compact.json | 0 .../functioncall-0.4.0.sol-0.4.21-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.22-compact.json | 0 .../functioncall-0.4.0.sol-0.4.22-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.23-compact.json | 0 .../functioncall-0.4.0.sol-0.4.23-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.24-compact.json | 0 .../functioncall-0.4.0.sol-0.4.24-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.25-compact.json | 0 .../functioncall-0.4.0.sol-0.4.25-legacy.json | 0 ...functioncall-0.4.0.sol-0.4.26-compact.json | 0 .../functioncall-0.4.0.sol-0.4.26-legacy.json | 0 .../functioncall-0.4.0.sol-0.4.3-compact.json | 0 .../functioncall-0.4.0.sol-0.4.3-legacy.json | 0 .../functioncall-0.4.0.sol-0.4.4-compact.json | 0 .../functioncall-0.4.0.sol-0.4.4-legacy.json | 0 .../functioncall-0.4.0.sol-0.4.5-compact.json | 0 .../functioncall-0.4.0.sol-0.4.5-legacy.json | 0 .../functioncall-0.4.0.sol-0.4.6-compact.json | 0 .../functioncall-0.4.0.sol-0.4.6-legacy.json | 0 .../functioncall-0.4.0.sol-0.4.7-compact.json | 0 .../functioncall-0.4.0.sol-0.4.7-legacy.json | 0 .../functioncall-0.4.0.sol-0.4.8-compact.json | 0 .../functioncall-0.4.0.sol-0.4.8-legacy.json | 0 .../functioncall-0.4.0.sol-0.4.9-compact.json | 0 .../functioncall-0.4.0.sol-0.4.9-legacy.json | 0 .../functioncall-0.4.5.sol-0.4.5-compact.json | 0 .../functioncall-0.4.5.sol-0.4.5-legacy.json | 0 .../functioncall-0.4.5.sol-0.4.6-compact.json | 0 .../functioncall-0.4.5.sol-0.4.6-legacy.json | 0 .../functioncall-0.4.5.sol-0.4.7-compact.json | 0 .../functioncall-0.4.5.sol-0.4.7-legacy.json | 0 .../functioncall-0.4.5.sol-0.4.8-compact.json | 0 .../functioncall-0.4.5.sol-0.4.8-legacy.json | 0 .../functioncall-0.4.5.sol-0.4.9-compact.json | 0 .../functioncall-0.4.5.sol-0.4.9-legacy.json | 0 .../functioncall-0.5.0.sol-0.5.0-compact.json | 0 .../functioncall-0.5.0.sol-0.5.0-legacy.json | 0 .../functioncall-0.5.0.sol-0.5.1-compact.json | 0 .../functioncall-0.5.0.sol-0.5.1-legacy.json | 0 .../functioncall-0.5.0.sol-0.5.2-compact.json | 0 .../functioncall-0.5.0.sol-0.5.2-legacy.json | 0 ...functioncall-0.5.3.sol-0.5.10-compact.json | 0 .../functioncall-0.5.3.sol-0.5.10-legacy.json | 0 ...functioncall-0.5.3.sol-0.5.11-compact.json | 0 .../functioncall-0.5.3.sol-0.5.11-legacy.json | 0 ...functioncall-0.5.3.sol-0.5.12-compact.json | 0 .../functioncall-0.5.3.sol-0.5.12-legacy.json | 0 ...functioncall-0.5.3.sol-0.5.13-compact.json | 0 .../functioncall-0.5.3.sol-0.5.13-legacy.json | 0 ...functioncall-0.5.3.sol-0.5.14-compact.json | 0 .../functioncall-0.5.3.sol-0.5.14-legacy.json | 0 ...functioncall-0.5.3.sol-0.5.15-compact.json | 0 .../functioncall-0.5.3.sol-0.5.15-legacy.json | 0 ...functioncall-0.5.3.sol-0.5.16-compact.json | 0 .../functioncall-0.5.3.sol-0.5.16-legacy.json | 0 ...functioncall-0.5.3.sol-0.5.17-compact.json | 0 .../functioncall-0.5.3.sol-0.5.17-legacy.json | 0 .../functioncall-0.5.3.sol-0.5.3-compact.json | 0 .../functioncall-0.5.3.sol-0.5.3-legacy.json | 0 .../functioncall-0.5.3.sol-0.5.4-compact.json | 0 .../functioncall-0.5.3.sol-0.5.4-legacy.json | 0 .../functioncall-0.5.3.sol-0.5.5-compact.json | 0 .../functioncall-0.5.3.sol-0.5.5-legacy.json | 0 .../functioncall-0.5.3.sol-0.5.6-compact.json | 0 .../functioncall-0.5.3.sol-0.5.6-legacy.json | 0 .../functioncall-0.5.3.sol-0.5.7-compact.json | 0 .../functioncall-0.5.3.sol-0.5.7-legacy.json | 0 .../functioncall-0.5.3.sol-0.5.8-compact.json | 0 .../functioncall-0.5.3.sol-0.5.8-legacy.json | 0 .../functioncall-0.5.3.sol-0.5.9-compact.json | 0 .../functioncall-0.5.3.sol-0.5.9-legacy.json | 0 .../functioncall-0.6.0.sol-0.6.0-compact.json | 0 .../functioncall-0.6.0.sol-0.6.0-legacy.json | 0 .../functioncall-0.6.0.sol-0.6.1-compact.json | 0 .../functioncall-0.6.0.sol-0.6.1-legacy.json | 0 .../functioncall-0.6.2.sol-0.6.2-compact.json | 0 .../functioncall-0.6.2.sol-0.6.2-legacy.json | 0 .../functioncall-0.6.2.sol-0.6.3-compact.json | 0 .../functioncall-0.6.2.sol-0.6.3-legacy.json | 0 .../functioncall-0.6.2.sol-0.6.4-compact.json | 0 .../functioncall-0.6.2.sol-0.6.4-legacy.json | 0 .../functioncall-0.6.2.sol-0.6.5-compact.json | 0 .../functioncall-0.6.2.sol-0.6.5-legacy.json | 0 .../functioncall-0.6.2.sol-0.6.6-compact.json | 0 .../functioncall-0.6.2.sol-0.6.6-legacy.json | 0 .../functioncall-0.6.2.sol-0.6.7-compact.json | 0 .../functioncall-0.6.2.sol-0.6.7-legacy.json | 0 ...functioncall-0.6.8.sol-0.6.10-compact.json | 0 .../functioncall-0.6.8.sol-0.6.10-legacy.json | 0 ...functioncall-0.6.8.sol-0.6.11-compact.json | 0 .../functioncall-0.6.8.sol-0.6.11-legacy.json | 0 ...functioncall-0.6.8.sol-0.6.12-compact.json | 0 .../functioncall-0.6.8.sol-0.6.12-legacy.json | 0 .../functioncall-0.6.8.sol-0.6.8-compact.json | 0 .../functioncall-0.6.8.sol-0.6.8-legacy.json | 0 .../functioncall-0.6.8.sol-0.6.9-compact.json | 0 .../functioncall-0.6.8.sol-0.6.9-legacy.json | 0 .../functioncall-0.7.0.sol-0.7.0-compact.json | 0 .../functioncall-0.7.0.sol-0.7.0-legacy.json | 0 .../functioncall-0.7.0.sol-0.7.1-compact.json | 0 .../functioncall-0.7.0.sol-0.7.1-legacy.json | 0 .../functioncall-0.7.0.sol-0.7.2-compact.json | 0 .../functioncall-0.7.0.sol-0.7.2-legacy.json | 0 .../functioncall-0.7.0.sol-0.7.3-compact.json | 0 .../functioncall-0.7.0.sol-0.7.3-legacy.json | 0 .../functioncall-0.7.0.sol-0.7.4-compact.json | 0 .../functioncall-0.7.0.sol-0.7.4-legacy.json | 0 .../functioncall-0.7.0.sol-0.7.5-compact.json | 0 .../functioncall-0.7.0.sol-0.7.5-legacy.json | 0 .../functioncall-0.7.0.sol-0.7.6-compact.json | 0 .../functioncall-0.7.0.sol-0.7.6-legacy.json | 0 .../functioncall-0.8.0.sol-0.8.0-compact.json | 0 .../functioncall-0.8.0.sol-0.8.1-compact.json | 0 ...functioncall-0.8.0.sol-0.8.10-compact.json | 0 ...functioncall-0.8.0.sol-0.8.11-compact.json | 0 ...functioncall-0.8.0.sol-0.8.12-compact.json | 0 ...functioncall-0.8.0.sol-0.8.13-compact.json | 0 ...functioncall-0.8.0.sol-0.8.14-compact.json | 0 ...functioncall-0.8.0.sol-0.8.15-compact.json | 0 .../functioncall-0.8.0.sol-0.8.2-compact.json | 0 .../functioncall-0.8.0.sol-0.8.3-compact.json | 0 .../functioncall-0.8.0.sol-0.8.4-compact.json | 0 .../functioncall-0.8.0.sol-0.8.5-compact.json | 0 .../functioncall-0.8.0.sol-0.8.6-compact.json | 0 .../functioncall-0.8.0.sol-0.8.7-compact.json | 0 .../functioncall-0.8.0.sol-0.8.8-compact.json | 0 .../functioncall-0.8.0.sol-0.8.9-compact.json | 0 .../expected/if-all.sol-0.4.0-compact.json | 0 .../expected/if-all.sol-0.4.0-legacy.json | 0 .../expected/if-all.sol-0.4.1-compact.json | 0 .../expected/if-all.sol-0.4.1-legacy.json | 0 .../expected/if-all.sol-0.4.10-compact.json | 0 .../expected/if-all.sol-0.4.10-legacy.json | 0 .../expected/if-all.sol-0.4.11-compact.json | 0 .../expected/if-all.sol-0.4.11-legacy.json | 0 .../expected/if-all.sol-0.4.12-compact.json | 0 .../expected/if-all.sol-0.4.12-legacy.json | 0 .../expected/if-all.sol-0.4.13-compact.json | 0 .../expected/if-all.sol-0.4.13-legacy.json | 0 .../expected/if-all.sol-0.4.14-compact.json | 0 .../expected/if-all.sol-0.4.14-legacy.json | 0 .../expected/if-all.sol-0.4.15-compact.json | 0 .../expected/if-all.sol-0.4.15-legacy.json | 0 .../expected/if-all.sol-0.4.16-compact.json | 0 .../expected/if-all.sol-0.4.16-legacy.json | 0 .../expected/if-all.sol-0.4.17-compact.json | 0 .../expected/if-all.sol-0.4.17-legacy.json | 0 .../expected/if-all.sol-0.4.18-compact.json | 0 .../expected/if-all.sol-0.4.18-legacy.json | 0 .../expected/if-all.sol-0.4.19-compact.json | 0 .../expected/if-all.sol-0.4.19-legacy.json | 0 .../expected/if-all.sol-0.4.2-compact.json | 0 .../expected/if-all.sol-0.4.2-legacy.json | 0 .../expected/if-all.sol-0.4.20-compact.json | 0 .../expected/if-all.sol-0.4.20-legacy.json | 0 .../expected/if-all.sol-0.4.21-compact.json | 0 .../expected/if-all.sol-0.4.21-legacy.json | 0 .../expected/if-all.sol-0.4.22-compact.json | 0 .../expected/if-all.sol-0.4.22-legacy.json | 0 .../expected/if-all.sol-0.4.23-compact.json | 0 .../expected/if-all.sol-0.4.23-legacy.json | 0 .../expected/if-all.sol-0.4.24-compact.json | 0 .../expected/if-all.sol-0.4.24-legacy.json | 0 .../expected/if-all.sol-0.4.25-compact.json | 0 .../expected/if-all.sol-0.4.25-legacy.json | 0 .../expected/if-all.sol-0.4.26-compact.json | 0 .../expected/if-all.sol-0.4.26-legacy.json | 0 .../expected/if-all.sol-0.4.3-compact.json | 0 .../expected/if-all.sol-0.4.3-legacy.json | 0 .../expected/if-all.sol-0.4.4-compact.json | 0 .../expected/if-all.sol-0.4.4-legacy.json | 0 .../expected/if-all.sol-0.4.5-compact.json | 0 .../expected/if-all.sol-0.4.5-legacy.json | 0 .../expected/if-all.sol-0.4.6-compact.json | 0 .../expected/if-all.sol-0.4.6-legacy.json | 0 .../expected/if-all.sol-0.4.7-compact.json | 0 .../expected/if-all.sol-0.4.7-legacy.json | 0 .../expected/if-all.sol-0.4.8-compact.json | 0 .../expected/if-all.sol-0.4.8-legacy.json | 0 .../expected/if-all.sol-0.4.9-compact.json | 0 .../expected/if-all.sol-0.4.9-legacy.json | 0 .../expected/if-all.sol-0.5.0-compact.json | 0 .../expected/if-all.sol-0.5.0-legacy.json | 0 .../expected/if-all.sol-0.5.1-compact.json | 0 .../expected/if-all.sol-0.5.1-legacy.json | 0 .../expected/if-all.sol-0.5.10-compact.json | 0 .../expected/if-all.sol-0.5.10-legacy.json | 0 .../expected/if-all.sol-0.5.11-compact.json | 0 .../expected/if-all.sol-0.5.11-legacy.json | 0 .../expected/if-all.sol-0.5.12-compact.json | 0 .../expected/if-all.sol-0.5.12-legacy.json | 0 .../expected/if-all.sol-0.5.13-compact.json | 0 .../expected/if-all.sol-0.5.13-legacy.json | 0 .../expected/if-all.sol-0.5.14-compact.json | 0 .../expected/if-all.sol-0.5.14-legacy.json | 0 .../expected/if-all.sol-0.5.15-compact.json | 0 .../expected/if-all.sol-0.5.15-legacy.json | 0 .../expected/if-all.sol-0.5.16-compact.json | 0 .../expected/if-all.sol-0.5.16-legacy.json | 0 .../expected/if-all.sol-0.5.17-compact.json | 0 .../expected/if-all.sol-0.5.17-legacy.json | 0 .../expected/if-all.sol-0.5.2-compact.json | 0 .../expected/if-all.sol-0.5.2-legacy.json | 0 .../expected/if-all.sol-0.5.3-compact.json | 0 .../expected/if-all.sol-0.5.3-legacy.json | 0 .../expected/if-all.sol-0.5.4-compact.json | 0 .../expected/if-all.sol-0.5.4-legacy.json | 0 .../expected/if-all.sol-0.5.5-compact.json | 0 .../expected/if-all.sol-0.5.5-legacy.json | 0 .../expected/if-all.sol-0.5.6-compact.json | 0 .../expected/if-all.sol-0.5.6-legacy.json | 0 .../expected/if-all.sol-0.5.7-compact.json | 0 .../expected/if-all.sol-0.5.7-legacy.json | 0 .../expected/if-all.sol-0.5.8-compact.json | 0 .../expected/if-all.sol-0.5.8-legacy.json | 0 .../expected/if-all.sol-0.5.9-compact.json | 0 .../expected/if-all.sol-0.5.9-legacy.json | 0 .../expected/if-all.sol-0.6.0-compact.json | 0 .../expected/if-all.sol-0.6.0-legacy.json | 0 .../expected/if-all.sol-0.6.1-compact.json | 0 .../expected/if-all.sol-0.6.1-legacy.json | 0 .../expected/if-all.sol-0.6.10-compact.json | 0 .../expected/if-all.sol-0.6.10-legacy.json | 0 .../expected/if-all.sol-0.6.11-compact.json | 0 .../expected/if-all.sol-0.6.11-legacy.json | 0 .../expected/if-all.sol-0.6.12-compact.json | 0 .../expected/if-all.sol-0.6.12-legacy.json | 0 .../expected/if-all.sol-0.6.2-compact.json | 0 .../expected/if-all.sol-0.6.2-legacy.json | 0 .../expected/if-all.sol-0.6.3-compact.json | 0 .../expected/if-all.sol-0.6.3-legacy.json | 0 .../expected/if-all.sol-0.6.4-compact.json | 0 .../expected/if-all.sol-0.6.4-legacy.json | 0 .../expected/if-all.sol-0.6.5-compact.json | 0 .../expected/if-all.sol-0.6.5-legacy.json | 0 .../expected/if-all.sol-0.6.6-compact.json | 0 .../expected/if-all.sol-0.6.6-legacy.json | 0 .../expected/if-all.sol-0.6.7-compact.json | 0 .../expected/if-all.sol-0.6.7-legacy.json | 0 .../expected/if-all.sol-0.6.8-compact.json | 0 .../expected/if-all.sol-0.6.8-legacy.json | 0 .../expected/if-all.sol-0.6.9-compact.json | 0 .../expected/if-all.sol-0.6.9-legacy.json | 0 .../expected/if-all.sol-0.7.0-compact.json | 0 .../expected/if-all.sol-0.7.0-legacy.json | 0 .../expected/if-all.sol-0.7.1-compact.json | 0 .../expected/if-all.sol-0.7.1-legacy.json | 0 .../expected/if-all.sol-0.7.2-compact.json | 0 .../expected/if-all.sol-0.7.2-legacy.json | 0 .../expected/if-all.sol-0.7.3-compact.json | 0 .../expected/if-all.sol-0.7.3-legacy.json | 0 .../expected/if-all.sol-0.7.4-compact.json | 0 .../expected/if-all.sol-0.7.4-legacy.json | 0 .../expected/if-all.sol-0.7.5-compact.json | 0 .../expected/if-all.sol-0.7.5-legacy.json | 0 .../expected/if-all.sol-0.7.6-compact.json | 0 .../expected/if-all.sol-0.7.6-legacy.json | 0 .../expected/if-all.sol-0.8.0-compact.json | 0 .../expected/if-all.sol-0.8.1-compact.json | 0 .../expected/if-all.sol-0.8.10-compact.json | 0 .../expected/if-all.sol-0.8.11-compact.json | 0 .../expected/if-all.sol-0.8.12-compact.json | 0 .../expected/if-all.sol-0.8.13-compact.json | 0 .../expected/if-all.sol-0.8.14-compact.json | 0 .../expected/if-all.sol-0.8.15-compact.json | 0 .../expected/if-all.sol-0.8.2-compact.json | 0 .../expected/if-all.sol-0.8.3-compact.json | 0 .../expected/if-all.sol-0.8.4-compact.json | 0 .../expected/if-all.sol-0.8.5-compact.json | 0 .../expected/if-all.sol-0.8.6-compact.json | 0 .../expected/if-all.sol-0.8.7-compact.json | 0 .../expected/if-all.sol-0.8.8-compact.json | 0 .../expected/if-all.sol-0.8.9-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.0-compact.json | 0 ...from_top_level-0.4.0.sol-0.4.0-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.4.1-compact.json | 0 ...from_top_level-0.4.0.sol-0.4.1-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.10-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.10-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.11-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.11-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.12-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.12-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.13-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.13-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.14-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.14-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.15-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.15-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.16-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.16-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.17-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.17-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.18-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.18-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.19-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.19-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.4.2-compact.json | 0 ...from_top_level-0.4.0.sol-0.4.2-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.20-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.20-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.21-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.21-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.22-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.22-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.23-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.23-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.24-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.24-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.25-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.25-legacy.json | 0 ...om_top_level-0.4.0.sol-0.4.26-compact.json | 0 ...rom_top_level-0.4.0.sol-0.4.26-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.4.3-compact.json | 0 ...from_top_level-0.4.0.sol-0.4.3-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.4.4-compact.json | 0 ...from_top_level-0.4.0.sol-0.4.4-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.4.5-compact.json | 0 ...from_top_level-0.4.0.sol-0.4.5-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.4.6-compact.json | 0 ...from_top_level-0.4.0.sol-0.4.6-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.4.7-compact.json | 0 ...from_top_level-0.4.0.sol-0.4.7-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.4.8-compact.json | 0 ...from_top_level-0.4.0.sol-0.4.8-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.4.9-compact.json | 0 ...from_top_level-0.4.0.sol-0.4.9-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.5.0-compact.json | 0 ...from_top_level-0.4.0.sol-0.5.0-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.5.1-compact.json | 0 ...from_top_level-0.4.0.sol-0.5.1-legacy.json | 0 ...om_top_level-0.4.0.sol-0.5.10-compact.json | 0 ...rom_top_level-0.4.0.sol-0.5.10-legacy.json | 0 ...om_top_level-0.4.0.sol-0.5.11-compact.json | 0 ...rom_top_level-0.4.0.sol-0.5.11-legacy.json | 0 ...om_top_level-0.4.0.sol-0.5.12-compact.json | 0 ...rom_top_level-0.4.0.sol-0.5.12-legacy.json | 0 ...om_top_level-0.4.0.sol-0.5.13-compact.json | 0 ...rom_top_level-0.4.0.sol-0.5.13-legacy.json | 0 ...om_top_level-0.4.0.sol-0.5.14-compact.json | 0 ...rom_top_level-0.4.0.sol-0.5.14-legacy.json | 0 ...om_top_level-0.4.0.sol-0.5.15-compact.json | 0 ...rom_top_level-0.4.0.sol-0.5.15-legacy.json | 0 ...om_top_level-0.4.0.sol-0.5.16-compact.json | 0 ...rom_top_level-0.4.0.sol-0.5.16-legacy.json | 0 ...om_top_level-0.4.0.sol-0.5.17-compact.json | 0 ...rom_top_level-0.4.0.sol-0.5.17-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.5.2-compact.json | 0 ...from_top_level-0.4.0.sol-0.5.2-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.5.3-compact.json | 0 ...from_top_level-0.4.0.sol-0.5.3-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.5.4-compact.json | 0 ...from_top_level-0.4.0.sol-0.5.4-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.5.5-compact.json | 0 ...from_top_level-0.4.0.sol-0.5.5-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.5.6-compact.json | 0 ...from_top_level-0.4.0.sol-0.5.6-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.5.7-compact.json | 0 ...from_top_level-0.4.0.sol-0.5.7-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.5.8-compact.json | 0 ...from_top_level-0.4.0.sol-0.5.8-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.5.9-compact.json | 0 ...from_top_level-0.4.0.sol-0.5.9-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.6.0-compact.json | 0 ...from_top_level-0.4.0.sol-0.6.0-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.6.1-compact.json | 0 ...from_top_level-0.4.0.sol-0.6.1-legacy.json | 0 ...om_top_level-0.4.0.sol-0.6.10-compact.json | 0 ...rom_top_level-0.4.0.sol-0.6.10-legacy.json | 0 ...om_top_level-0.4.0.sol-0.6.11-compact.json | 0 ...rom_top_level-0.4.0.sol-0.6.11-legacy.json | 0 ...om_top_level-0.4.0.sol-0.6.12-compact.json | 0 ...rom_top_level-0.4.0.sol-0.6.12-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.6.2-compact.json | 0 ...from_top_level-0.4.0.sol-0.6.2-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.6.3-compact.json | 0 ...from_top_level-0.4.0.sol-0.6.3-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.6.4-compact.json | 0 ...from_top_level-0.4.0.sol-0.6.4-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.6.5-compact.json | 0 ...from_top_level-0.4.0.sol-0.6.5-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.6.6-compact.json | 0 ...from_top_level-0.4.0.sol-0.6.6-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.6.7-compact.json | 0 ...from_top_level-0.4.0.sol-0.6.7-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.6.8-compact.json | 0 ...from_top_level-0.4.0.sol-0.6.8-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.6.9-compact.json | 0 ...from_top_level-0.4.0.sol-0.6.9-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.7.0-compact.json | 0 ...from_top_level-0.4.0.sol-0.7.0-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.7.1-compact.json | 0 ...from_top_level-0.4.0.sol-0.7.1-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.7.2-compact.json | 0 ...from_top_level-0.4.0.sol-0.7.2-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.7.3-compact.json | 0 ...from_top_level-0.4.0.sol-0.7.3-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.7.4-compact.json | 0 ...from_top_level-0.4.0.sol-0.7.4-legacy.json | 0 ...rom_top_level-0.4.0.sol-0.7.5-compact.json | 0 ...from_top_level-0.4.0.sol-0.7.5-legacy.json | 0 ...rom_top_level-0.7.6.sol-0.7.6-compact.json | 0 ...from_top_level-0.7.6.sol-0.7.6-legacy.json | 0 ...rom_top_level-0.7.6.sol-0.8.0-compact.json | 0 ...rom_top_level-0.7.6.sol-0.8.1-compact.json | 0 ...om_top_level-0.7.6.sol-0.8.10-compact.json | 0 ...om_top_level-0.7.6.sol-0.8.11-compact.json | 0 ...om_top_level-0.7.6.sol-0.8.12-compact.json | 0 ...om_top_level-0.7.6.sol-0.8.13-compact.json | 0 ...om_top_level-0.7.6.sol-0.8.14-compact.json | 0 ...om_top_level-0.7.6.sol-0.8.15-compact.json | 0 ...rom_top_level-0.7.6.sol-0.8.2-compact.json | 0 ...rom_top_level-0.7.6.sol-0.8.3-compact.json | 0 ...rom_top_level-0.7.6.sol-0.8.4-compact.json | 0 ...rom_top_level-0.7.6.sol-0.8.5-compact.json | 0 ...rom_top_level-0.7.6.sol-0.8.6-compact.json | 0 ...rom_top_level-0.7.6.sol-0.8.7-compact.json | 0 ...rom_top_level-0.7.6.sol-0.8.8-compact.json | 0 ...rom_top_level-0.7.6.sol-0.8.9-compact.json | 0 .../indexaccess-all.sol-0.4.0-compact.json | 0 .../indexaccess-all.sol-0.4.0-legacy.json | 0 .../indexaccess-all.sol-0.4.1-compact.json | 0 .../indexaccess-all.sol-0.4.1-legacy.json | 0 .../indexaccess-all.sol-0.4.10-compact.json | 0 .../indexaccess-all.sol-0.4.10-legacy.json | 0 .../indexaccess-all.sol-0.4.11-compact.json | 0 .../indexaccess-all.sol-0.4.11-legacy.json | 0 .../indexaccess-all.sol-0.4.12-compact.json | 0 .../indexaccess-all.sol-0.4.12-legacy.json | 0 .../indexaccess-all.sol-0.4.13-compact.json | 0 .../indexaccess-all.sol-0.4.13-legacy.json | 0 .../indexaccess-all.sol-0.4.14-compact.json | 0 .../indexaccess-all.sol-0.4.14-legacy.json | 0 .../indexaccess-all.sol-0.4.15-compact.json | 0 .../indexaccess-all.sol-0.4.15-legacy.json | 0 .../indexaccess-all.sol-0.4.16-compact.json | 0 .../indexaccess-all.sol-0.4.16-legacy.json | 0 .../indexaccess-all.sol-0.4.17-compact.json | 0 .../indexaccess-all.sol-0.4.17-legacy.json | 0 .../indexaccess-all.sol-0.4.18-compact.json | 0 .../indexaccess-all.sol-0.4.18-legacy.json | 0 .../indexaccess-all.sol-0.4.19-compact.json | 0 .../indexaccess-all.sol-0.4.19-legacy.json | 0 .../indexaccess-all.sol-0.4.2-compact.json | 0 .../indexaccess-all.sol-0.4.2-legacy.json | 0 .../indexaccess-all.sol-0.4.20-compact.json | 0 .../indexaccess-all.sol-0.4.20-legacy.json | 0 .../indexaccess-all.sol-0.4.21-compact.json | 0 .../indexaccess-all.sol-0.4.21-legacy.json | 0 .../indexaccess-all.sol-0.4.22-compact.json | 0 .../indexaccess-all.sol-0.4.22-legacy.json | 0 .../indexaccess-all.sol-0.4.23-compact.json | 0 .../indexaccess-all.sol-0.4.23-legacy.json | 0 .../indexaccess-all.sol-0.4.24-compact.json | 0 .../indexaccess-all.sol-0.4.24-legacy.json | 0 .../indexaccess-all.sol-0.4.25-compact.json | 0 .../indexaccess-all.sol-0.4.25-legacy.json | 0 .../indexaccess-all.sol-0.4.26-compact.json | 0 .../indexaccess-all.sol-0.4.26-legacy.json | 0 .../indexaccess-all.sol-0.4.3-compact.json | 0 .../indexaccess-all.sol-0.4.3-legacy.json | 0 .../indexaccess-all.sol-0.4.4-compact.json | 0 .../indexaccess-all.sol-0.4.4-legacy.json | 0 .../indexaccess-all.sol-0.4.5-compact.json | 0 .../indexaccess-all.sol-0.4.5-legacy.json | 0 .../indexaccess-all.sol-0.4.6-compact.json | 0 .../indexaccess-all.sol-0.4.6-legacy.json | 0 .../indexaccess-all.sol-0.4.7-compact.json | 0 .../indexaccess-all.sol-0.4.7-legacy.json | 0 .../indexaccess-all.sol-0.4.8-compact.json | 0 .../indexaccess-all.sol-0.4.8-legacy.json | 0 .../indexaccess-all.sol-0.4.9-compact.json | 0 .../indexaccess-all.sol-0.4.9-legacy.json | 0 .../indexaccess-all.sol-0.5.0-compact.json | 0 .../indexaccess-all.sol-0.5.0-legacy.json | 0 .../indexaccess-all.sol-0.5.1-compact.json | 0 .../indexaccess-all.sol-0.5.1-legacy.json | 0 .../indexaccess-all.sol-0.5.10-compact.json | 0 .../indexaccess-all.sol-0.5.10-legacy.json | 0 .../indexaccess-all.sol-0.5.11-compact.json | 0 .../indexaccess-all.sol-0.5.11-legacy.json | 0 .../indexaccess-all.sol-0.5.12-compact.json | 0 .../indexaccess-all.sol-0.5.12-legacy.json | 0 .../indexaccess-all.sol-0.5.13-compact.json | 0 .../indexaccess-all.sol-0.5.13-legacy.json | 0 .../indexaccess-all.sol-0.5.14-compact.json | 0 .../indexaccess-all.sol-0.5.14-legacy.json | 0 .../indexaccess-all.sol-0.5.15-compact.json | 0 .../indexaccess-all.sol-0.5.15-legacy.json | 0 .../indexaccess-all.sol-0.5.16-compact.json | 0 .../indexaccess-all.sol-0.5.16-legacy.json | 0 .../indexaccess-all.sol-0.5.17-compact.json | 0 .../indexaccess-all.sol-0.5.17-legacy.json | 0 .../indexaccess-all.sol-0.5.2-compact.json | 0 .../indexaccess-all.sol-0.5.2-legacy.json | 0 .../indexaccess-all.sol-0.5.3-compact.json | 0 .../indexaccess-all.sol-0.5.3-legacy.json | 0 .../indexaccess-all.sol-0.5.4-compact.json | 0 .../indexaccess-all.sol-0.5.4-legacy.json | 0 .../indexaccess-all.sol-0.5.5-compact.json | 0 .../indexaccess-all.sol-0.5.5-legacy.json | 0 .../indexaccess-all.sol-0.5.6-compact.json | 0 .../indexaccess-all.sol-0.5.6-legacy.json | 0 .../indexaccess-all.sol-0.5.7-compact.json | 0 .../indexaccess-all.sol-0.5.7-legacy.json | 0 .../indexaccess-all.sol-0.5.8-compact.json | 0 .../indexaccess-all.sol-0.5.8-legacy.json | 0 .../indexaccess-all.sol-0.5.9-compact.json | 0 .../indexaccess-all.sol-0.5.9-legacy.json | 0 .../indexaccess-all.sol-0.6.0-compact.json | 0 .../indexaccess-all.sol-0.6.0-legacy.json | 0 .../indexaccess-all.sol-0.6.1-compact.json | 0 .../indexaccess-all.sol-0.6.1-legacy.json | 0 .../indexaccess-all.sol-0.6.10-compact.json | 0 .../indexaccess-all.sol-0.6.10-legacy.json | 0 .../indexaccess-all.sol-0.6.11-compact.json | 0 .../indexaccess-all.sol-0.6.11-legacy.json | 0 .../indexaccess-all.sol-0.6.12-compact.json | 0 .../indexaccess-all.sol-0.6.12-legacy.json | 0 .../indexaccess-all.sol-0.6.2-compact.json | 0 .../indexaccess-all.sol-0.6.2-legacy.json | 0 .../indexaccess-all.sol-0.6.3-compact.json | 0 .../indexaccess-all.sol-0.6.3-legacy.json | 0 .../indexaccess-all.sol-0.6.4-compact.json | 0 .../indexaccess-all.sol-0.6.4-legacy.json | 0 .../indexaccess-all.sol-0.6.5-compact.json | 0 .../indexaccess-all.sol-0.6.5-legacy.json | 0 .../indexaccess-all.sol-0.6.6-compact.json | 0 .../indexaccess-all.sol-0.6.6-legacy.json | 0 .../indexaccess-all.sol-0.6.7-compact.json | 0 .../indexaccess-all.sol-0.6.7-legacy.json | 0 .../indexaccess-all.sol-0.6.8-compact.json | 0 .../indexaccess-all.sol-0.6.8-legacy.json | 0 .../indexaccess-all.sol-0.6.9-compact.json | 0 .../indexaccess-all.sol-0.6.9-legacy.json | 0 .../indexaccess-all.sol-0.7.0-compact.json | 0 .../indexaccess-all.sol-0.7.0-legacy.json | 0 .../indexaccess-all.sol-0.7.1-compact.json | 0 .../indexaccess-all.sol-0.7.1-legacy.json | 0 .../indexaccess-all.sol-0.7.2-compact.json | 0 .../indexaccess-all.sol-0.7.2-legacy.json | 0 .../indexaccess-all.sol-0.7.3-compact.json | 0 .../indexaccess-all.sol-0.7.3-legacy.json | 0 .../indexaccess-all.sol-0.7.4-compact.json | 0 .../indexaccess-all.sol-0.7.4-legacy.json | 0 .../indexaccess-all.sol-0.7.5-compact.json | 0 .../indexaccess-all.sol-0.7.5-legacy.json | 0 .../indexaccess-all.sol-0.7.6-compact.json | 0 .../indexaccess-all.sol-0.7.6-legacy.json | 0 .../indexaccess-all.sol-0.8.0-compact.json | 0 .../indexaccess-all.sol-0.8.1-compact.json | 0 .../indexaccess-all.sol-0.8.10-compact.json | 0 .../indexaccess-all.sol-0.8.11-compact.json | 0 .../indexaccess-all.sol-0.8.12-compact.json | 0 .../indexaccess-all.sol-0.8.13-compact.json | 0 .../indexaccess-all.sol-0.8.14-compact.json | 0 .../indexaccess-all.sol-0.8.15-compact.json | 0 .../indexaccess-all.sol-0.8.2-compact.json | 0 .../indexaccess-all.sol-0.8.3-compact.json | 0 .../indexaccess-all.sol-0.8.4-compact.json | 0 .../indexaccess-all.sol-0.8.5-compact.json | 0 .../indexaccess-all.sol-0.8.6-compact.json | 0 .../indexaccess-all.sol-0.8.7-compact.json | 0 .../indexaccess-all.sol-0.8.8-compact.json | 0 .../indexaccess-all.sol-0.8.9-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.0-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.4.0-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.4.1-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.4.1-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.10-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.10-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.11-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.11-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.12-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.12-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.13-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.13-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.14-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.14-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.15-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.15-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.16-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.16-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.17-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.17-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.18-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.18-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.19-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.19-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.4.2-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.4.2-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.20-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.20-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.21-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.21-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.22-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.22-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.23-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.23-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.24-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.24-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.25-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.25-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.4.26-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.4.26-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.4.3-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.4.3-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.4.4-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.4.4-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.4.5-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.4.5-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.4.6-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.4.6-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.4.7-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.4.7-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.4.8-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.4.8-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.4.9-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.4.9-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.5.0-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.5.0-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.5.1-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.5.1-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.5.10-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.5.10-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.5.11-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.5.11-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.5.12-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.5.12-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.5.13-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.5.13-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.5.14-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.5.14-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.5.15-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.5.15-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.5.16-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.5.16-legacy.json | 0 ...xrangeaccess-0.4.0.sol-0.5.17-compact.json | 0 ...exrangeaccess-0.4.0.sol-0.5.17-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.5.2-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.5.2-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.5.3-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.5.3-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.5.4-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.5.4-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.5.5-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.5.5-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.5.6-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.5.6-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.5.7-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.5.7-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.5.8-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.5.8-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.5.9-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.5.9-legacy.json | 0 ...exrangeaccess-0.4.0.sol-0.6.0-compact.json | 0 ...dexrangeaccess-0.4.0.sol-0.6.0-legacy.json | 0 ...exrangeaccess-0.6.1.sol-0.6.1-compact.json | 0 ...xrangeaccess-0.6.1.sol-0.6.10-compact.json | 0 ...xrangeaccess-0.6.1.sol-0.6.11-compact.json | 0 ...xrangeaccess-0.6.1.sol-0.6.12-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.6.2-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.6.3-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.6.4-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.6.5-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.6.6-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.6.7-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.6.8-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.6.9-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.7.0-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.7.1-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.7.2-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.7.3-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.7.4-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.7.5-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.7.6-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.8.0-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.8.1-compact.json | 0 ...xrangeaccess-0.6.1.sol-0.8.10-compact.json | 0 ...xrangeaccess-0.6.1.sol-0.8.11-compact.json | 0 ...xrangeaccess-0.6.1.sol-0.8.12-compact.json | 0 ...xrangeaccess-0.6.1.sol-0.8.13-compact.json | 0 ...xrangeaccess-0.6.1.sol-0.8.14-compact.json | 0 ...xrangeaccess-0.6.1.sol-0.8.15-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.8.2-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.8.3-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.8.4-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.8.5-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.8.6-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.8.7-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.8.8-compact.json | 0 ...exrangeaccess-0.6.1.sol-0.8.9-compact.json | 0 ...brary_event-0.8.16.sol-0.8.16-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.0-compact.json | 0 ...cit_conversion-0.4.0.sol-0.4.0-legacy.json | 0 ...it_conversion-0.4.0.sol-0.4.1-compact.json | 0 ...cit_conversion-0.4.0.sol-0.4.1-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.10-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.10-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.11-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.11-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.12-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.12-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.13-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.13-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.14-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.14-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.15-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.15-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.16-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.16-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.17-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.17-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.18-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.18-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.19-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.19-legacy.json | 0 ...it_conversion-0.4.0.sol-0.4.2-compact.json | 0 ...cit_conversion-0.4.0.sol-0.4.2-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.20-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.20-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.21-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.21-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.22-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.22-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.23-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.23-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.24-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.24-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.25-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.25-legacy.json | 0 ...t_conversion-0.4.0.sol-0.4.26-compact.json | 0 ...it_conversion-0.4.0.sol-0.4.26-legacy.json | 0 ...it_conversion-0.4.0.sol-0.4.3-compact.json | 0 ...cit_conversion-0.4.0.sol-0.4.3-legacy.json | 0 ...it_conversion-0.4.0.sol-0.4.4-compact.json | 0 ...cit_conversion-0.4.0.sol-0.4.4-legacy.json | 0 ...it_conversion-0.4.0.sol-0.4.5-compact.json | 0 ...cit_conversion-0.4.0.sol-0.4.5-legacy.json | 0 ...it_conversion-0.4.0.sol-0.4.6-compact.json | 0 ...cit_conversion-0.4.0.sol-0.4.6-legacy.json | 0 ...it_conversion-0.4.0.sol-0.4.7-compact.json | 0 ...cit_conversion-0.4.0.sol-0.4.7-legacy.json | 0 ...it_conversion-0.4.0.sol-0.4.8-compact.json | 0 ...cit_conversion-0.4.0.sol-0.4.8-legacy.json | 0 ...it_conversion-0.4.0.sol-0.4.9-compact.json | 0 ...cit_conversion-0.4.0.sol-0.4.9-legacy.json | 0 ...it_conversion-0.5.0.sol-0.5.0-compact.json | 0 ...cit_conversion-0.5.0.sol-0.5.0-legacy.json | 0 ...it_conversion-0.5.0.sol-0.5.1-compact.json | 0 ...cit_conversion-0.5.0.sol-0.5.1-legacy.json | 0 ...t_conversion-0.5.0.sol-0.5.10-compact.json | 0 ...it_conversion-0.5.0.sol-0.5.10-legacy.json | 0 ...t_conversion-0.5.0.sol-0.5.11-compact.json | 0 ...it_conversion-0.5.0.sol-0.5.11-legacy.json | 0 ...t_conversion-0.5.0.sol-0.5.12-compact.json | 0 ...it_conversion-0.5.0.sol-0.5.12-legacy.json | 0 ...t_conversion-0.5.0.sol-0.5.13-compact.json | 0 ...it_conversion-0.5.0.sol-0.5.13-legacy.json | 0 ...t_conversion-0.5.0.sol-0.5.14-compact.json | 0 ...it_conversion-0.5.0.sol-0.5.14-legacy.json | 0 ...t_conversion-0.5.0.sol-0.5.15-compact.json | 0 ...it_conversion-0.5.0.sol-0.5.15-legacy.json | 0 ...t_conversion-0.5.0.sol-0.5.16-compact.json | 0 ...it_conversion-0.5.0.sol-0.5.16-legacy.json | 0 ...t_conversion-0.5.0.sol-0.5.17-compact.json | 0 ...it_conversion-0.5.0.sol-0.5.17-legacy.json | 0 ...it_conversion-0.5.0.sol-0.5.2-compact.json | 0 ...cit_conversion-0.5.0.sol-0.5.2-legacy.json | 0 ...it_conversion-0.5.0.sol-0.5.3-compact.json | 0 ...cit_conversion-0.5.0.sol-0.5.3-legacy.json | 0 ...it_conversion-0.5.0.sol-0.5.4-compact.json | 0 ...cit_conversion-0.5.0.sol-0.5.4-legacy.json | 0 ...it_conversion-0.5.0.sol-0.5.5-compact.json | 0 ...cit_conversion-0.5.0.sol-0.5.5-legacy.json | 0 ...it_conversion-0.5.0.sol-0.5.6-compact.json | 0 ...cit_conversion-0.5.0.sol-0.5.6-legacy.json | 0 ...it_conversion-0.5.0.sol-0.5.7-compact.json | 0 ...cit_conversion-0.5.0.sol-0.5.7-legacy.json | 0 ...it_conversion-0.5.0.sol-0.5.8-compact.json | 0 ...cit_conversion-0.5.0.sol-0.5.8-legacy.json | 0 ...it_conversion-0.5.0.sol-0.5.9-compact.json | 0 ...cit_conversion-0.5.0.sol-0.5.9-legacy.json | 0 ...it_conversion-0.5.0.sol-0.6.0-compact.json | 0 ...cit_conversion-0.5.0.sol-0.6.0-legacy.json | 0 ...it_conversion-0.5.0.sol-0.6.1-compact.json | 0 ...cit_conversion-0.5.0.sol-0.6.1-legacy.json | 0 ...t_conversion-0.5.0.sol-0.6.10-compact.json | 0 ...it_conversion-0.5.0.sol-0.6.10-legacy.json | 0 ...t_conversion-0.5.0.sol-0.6.11-compact.json | 0 ...it_conversion-0.5.0.sol-0.6.11-legacy.json | 0 ...t_conversion-0.5.0.sol-0.6.12-compact.json | 0 ...it_conversion-0.5.0.sol-0.6.12-legacy.json | 0 ...it_conversion-0.5.0.sol-0.6.2-compact.json | 0 ...cit_conversion-0.5.0.sol-0.6.2-legacy.json | 0 ...it_conversion-0.5.0.sol-0.6.3-compact.json | 0 ...cit_conversion-0.5.0.sol-0.6.3-legacy.json | 0 ...it_conversion-0.5.0.sol-0.6.4-compact.json | 0 ...cit_conversion-0.5.0.sol-0.6.4-legacy.json | 0 ...it_conversion-0.5.0.sol-0.6.5-compact.json | 0 ...cit_conversion-0.5.0.sol-0.6.5-legacy.json | 0 ...it_conversion-0.5.0.sol-0.6.6-compact.json | 0 ...cit_conversion-0.5.0.sol-0.6.6-legacy.json | 0 ...it_conversion-0.5.0.sol-0.6.7-compact.json | 0 ...cit_conversion-0.5.0.sol-0.6.7-legacy.json | 0 ...it_conversion-0.5.0.sol-0.6.8-compact.json | 0 ...cit_conversion-0.5.0.sol-0.6.8-legacy.json | 0 ...it_conversion-0.5.0.sol-0.6.9-compact.json | 0 ...cit_conversion-0.5.0.sol-0.6.9-legacy.json | 0 ...it_conversion-0.5.0.sol-0.7.0-compact.json | 0 ...cit_conversion-0.5.0.sol-0.7.0-legacy.json | 0 ...it_conversion-0.5.0.sol-0.7.1-compact.json | 0 ...cit_conversion-0.5.0.sol-0.7.1-legacy.json | 0 ...it_conversion-0.5.0.sol-0.7.2-compact.json | 0 ...cit_conversion-0.5.0.sol-0.7.2-legacy.json | 0 ...it_conversion-0.5.0.sol-0.7.3-compact.json | 0 ...cit_conversion-0.5.0.sol-0.7.3-legacy.json | 0 ...it_conversion-0.5.0.sol-0.7.4-compact.json | 0 ...cit_conversion-0.5.0.sol-0.7.4-legacy.json | 0 ...it_conversion-0.5.0.sol-0.7.5-compact.json | 0 ...cit_conversion-0.5.0.sol-0.7.5-legacy.json | 0 ...it_conversion-0.5.0.sol-0.7.6-compact.json | 0 ...cit_conversion-0.5.0.sol-0.7.6-legacy.json | 0 ...it_conversion-0.5.0.sol-0.8.0-compact.json | 0 ...it_conversion-0.5.0.sol-0.8.1-compact.json | 0 ...t_conversion-0.5.0.sol-0.8.10-compact.json | 0 ...t_conversion-0.5.0.sol-0.8.11-compact.json | 0 ...t_conversion-0.5.0.sol-0.8.12-compact.json | 0 ...t_conversion-0.5.0.sol-0.8.13-compact.json | 0 ...t_conversion-0.5.0.sol-0.8.14-compact.json | 0 ...t_conversion-0.5.0.sol-0.8.15-compact.json | 0 ...it_conversion-0.5.0.sol-0.8.2-compact.json | 0 ...it_conversion-0.5.0.sol-0.8.3-compact.json | 0 ...it_conversion-0.5.0.sol-0.8.4-compact.json | 0 ...it_conversion-0.5.0.sol-0.8.5-compact.json | 0 ...it_conversion-0.5.0.sol-0.8.6-compact.json | 0 ...it_conversion-0.5.0.sol-0.8.7-compact.json | 0 ...it_conversion-0.5.0.sol-0.8.8-compact.json | 0 ...it_conversion-0.5.0.sol-0.8.9-compact.json | 0 .../literal-0.4.0.sol-0.4.0-compact.json | 0 .../literal-0.4.0.sol-0.4.0-legacy.json | 0 .../literal-0.4.0.sol-0.4.1-compact.json | 0 .../literal-0.4.0.sol-0.4.1-legacy.json | 0 .../literal-0.4.0.sol-0.4.2-compact.json | 0 .../literal-0.4.0.sol-0.4.2-legacy.json | 0 .../literal-0.4.0.sol-0.4.3-compact.json | 0 .../literal-0.4.0.sol-0.4.3-legacy.json | 0 .../literal-0.4.0.sol-0.4.4-compact.json | 0 .../literal-0.4.0.sol-0.4.4-legacy.json | 0 .../literal-0.4.0.sol-0.4.5-compact.json | 0 .../literal-0.4.0.sol-0.4.5-legacy.json | 0 .../literal-0.4.0.sol-0.4.6-compact.json | 0 .../literal-0.4.0.sol-0.4.6-legacy.json | 0 .../literal-0.4.0.sol-0.4.7-compact.json | 0 .../literal-0.4.0.sol-0.4.7-legacy.json | 0 .../literal-0.4.0.sol-0.4.8-compact.json | 0 .../literal-0.4.0.sol-0.4.8-legacy.json | 0 .../literal-0.4.0.sol-0.4.9-compact.json | 0 .../literal-0.4.0.sol-0.4.9-legacy.json | 0 .../literal-0.4.10.sol-0.4.10-compact.json | 0 .../literal-0.4.10.sol-0.4.10-legacy.json | 0 .../literal-0.4.10.sol-0.4.11-compact.json | 0 .../literal-0.4.10.sol-0.4.11-legacy.json | 0 .../literal-0.4.10.sol-0.4.12-compact.json | 0 .../literal-0.4.10.sol-0.4.12-legacy.json | 0 .../literal-0.4.10.sol-0.4.13-compact.json | 0 .../literal-0.4.10.sol-0.4.13-legacy.json | 0 .../literal-0.4.10.sol-0.4.14-compact.json | 0 .../literal-0.4.10.sol-0.4.14-legacy.json | 0 .../literal-0.4.10.sol-0.4.15-compact.json | 0 .../literal-0.4.10.sol-0.4.15-legacy.json | 0 .../literal-0.4.10.sol-0.4.16-compact.json | 0 .../literal-0.4.10.sol-0.4.16-legacy.json | 0 .../literal-0.4.10.sol-0.4.17-compact.json | 0 .../literal-0.4.10.sol-0.4.17-legacy.json | 0 .../literal-0.4.10.sol-0.4.18-compact.json | 0 .../literal-0.4.10.sol-0.4.18-legacy.json | 0 .../literal-0.4.10.sol-0.4.19-compact.json | 0 .../literal-0.4.10.sol-0.4.19-legacy.json | 0 .../literal-0.4.10.sol-0.4.20-compact.json | 0 .../literal-0.4.10.sol-0.4.20-legacy.json | 0 .../literal-0.4.10.sol-0.4.21-compact.json | 0 .../literal-0.4.10.sol-0.4.21-legacy.json | 0 .../literal-0.4.10.sol-0.4.22-compact.json | 0 .../literal-0.4.10.sol-0.4.22-legacy.json | 0 .../literal-0.4.10.sol-0.4.23-compact.json | 0 .../literal-0.4.10.sol-0.4.23-legacy.json | 0 .../literal-0.4.10.sol-0.4.24-compact.json | 0 .../literal-0.4.10.sol-0.4.24-legacy.json | 0 .../literal-0.4.10.sol-0.4.25-compact.json | 0 .../literal-0.4.10.sol-0.4.25-legacy.json | 0 .../literal-0.4.10.sol-0.4.26-compact.json | 0 .../literal-0.4.10.sol-0.4.26-legacy.json | 0 .../literal-0.5.0.sol-0.5.0-compact.json | 0 .../literal-0.5.0.sol-0.5.0-legacy.json | 0 .../literal-0.5.0.sol-0.5.1-compact.json | 0 .../literal-0.5.0.sol-0.5.1-legacy.json | 0 .../literal-0.5.0.sol-0.5.10-compact.json | 0 .../literal-0.5.0.sol-0.5.10-legacy.json | 0 .../literal-0.5.0.sol-0.5.11-compact.json | 0 .../literal-0.5.0.sol-0.5.11-legacy.json | 0 .../literal-0.5.0.sol-0.5.12-compact.json | 0 .../literal-0.5.0.sol-0.5.12-legacy.json | 0 .../literal-0.5.0.sol-0.5.13-compact.json | 0 .../literal-0.5.0.sol-0.5.13-legacy.json | 0 .../literal-0.5.0.sol-0.5.14-compact.json | 0 .../literal-0.5.0.sol-0.5.14-legacy.json | 0 .../literal-0.5.0.sol-0.5.15-compact.json | 0 .../literal-0.5.0.sol-0.5.15-legacy.json | 0 .../literal-0.5.0.sol-0.5.16-compact.json | 0 .../literal-0.5.0.sol-0.5.16-legacy.json | 0 .../literal-0.5.0.sol-0.5.17-compact.json | 0 .../literal-0.5.0.sol-0.5.17-legacy.json | 0 .../literal-0.5.0.sol-0.5.2-compact.json | 0 .../literal-0.5.0.sol-0.5.2-legacy.json | 0 .../literal-0.5.0.sol-0.5.3-compact.json | 0 .../literal-0.5.0.sol-0.5.3-legacy.json | 0 .../literal-0.5.0.sol-0.5.4-compact.json | 0 .../literal-0.5.0.sol-0.5.4-legacy.json | 0 .../literal-0.5.0.sol-0.5.5-compact.json | 0 .../literal-0.5.0.sol-0.5.5-legacy.json | 0 .../literal-0.5.0.sol-0.5.6-compact.json | 0 .../literal-0.5.0.sol-0.5.6-legacy.json | 0 .../literal-0.5.0.sol-0.5.7-compact.json | 0 .../literal-0.5.0.sol-0.5.7-legacy.json | 0 .../literal-0.5.0.sol-0.5.8-compact.json | 0 .../literal-0.5.0.sol-0.5.8-legacy.json | 0 .../literal-0.5.0.sol-0.5.9-compact.json | 0 .../literal-0.5.0.sol-0.5.9-legacy.json | 0 .../literal-0.6.0.sol-0.6.0-compact.json | 0 .../literal-0.6.0.sol-0.6.0-legacy.json | 0 .../literal-0.6.0.sol-0.6.1-compact.json | 0 .../literal-0.6.0.sol-0.6.1-legacy.json | 0 .../literal-0.6.0.sol-0.6.10-compact.json | 0 .../literal-0.6.0.sol-0.6.10-legacy.json | 0 .../literal-0.6.0.sol-0.6.11-compact.json | 0 .../literal-0.6.0.sol-0.6.11-legacy.json | 0 .../literal-0.6.0.sol-0.6.12-compact.json | 0 .../literal-0.6.0.sol-0.6.12-legacy.json | 0 .../literal-0.6.0.sol-0.6.2-compact.json | 0 .../literal-0.6.0.sol-0.6.2-legacy.json | 0 .../literal-0.6.0.sol-0.6.3-compact.json | 0 .../literal-0.6.0.sol-0.6.3-legacy.json | 0 .../literal-0.6.0.sol-0.6.4-compact.json | 0 .../literal-0.6.0.sol-0.6.4-legacy.json | 0 .../literal-0.6.0.sol-0.6.5-compact.json | 0 .../literal-0.6.0.sol-0.6.5-legacy.json | 0 .../literal-0.6.0.sol-0.6.6-compact.json | 0 .../literal-0.6.0.sol-0.6.6-legacy.json | 0 .../literal-0.6.0.sol-0.6.7-compact.json | 0 .../literal-0.6.0.sol-0.6.7-legacy.json | 0 .../literal-0.6.0.sol-0.6.8-compact.json | 0 .../literal-0.6.0.sol-0.6.8-legacy.json | 0 .../literal-0.6.0.sol-0.6.9-compact.json | 0 .../literal-0.6.0.sol-0.6.9-legacy.json | 0 .../memberaccess-0.4.0.sol-0.4.0-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.0-legacy.json | 0 .../memberaccess-0.4.0.sol-0.4.1-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.1-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.10-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.10-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.11-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.11-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.12-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.12-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.13-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.13-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.14-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.14-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.15-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.15-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.16-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.16-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.17-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.17-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.18-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.18-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.19-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.19-legacy.json | 0 .../memberaccess-0.4.0.sol-0.4.2-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.2-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.20-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.20-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.21-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.21-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.22-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.22-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.23-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.23-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.24-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.24-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.25-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.25-legacy.json | 0 ...memberaccess-0.4.0.sol-0.4.26-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.26-legacy.json | 0 .../memberaccess-0.4.0.sol-0.4.3-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.3-legacy.json | 0 .../memberaccess-0.4.0.sol-0.4.4-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.4-legacy.json | 0 .../memberaccess-0.4.0.sol-0.4.5-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.5-legacy.json | 0 .../memberaccess-0.4.0.sol-0.4.6-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.6-legacy.json | 0 .../memberaccess-0.4.0.sol-0.4.7-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.7-legacy.json | 0 .../memberaccess-0.4.0.sol-0.4.8-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.8-legacy.json | 0 .../memberaccess-0.4.0.sol-0.4.9-compact.json | 0 .../memberaccess-0.4.0.sol-0.4.9-legacy.json | 0 .../memberaccess-0.4.0.sol-0.5.0-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.0-legacy.json | 0 .../memberaccess-0.4.0.sol-0.5.1-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.1-legacy.json | 0 ...memberaccess-0.4.0.sol-0.5.10-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.10-legacy.json | 0 ...memberaccess-0.4.0.sol-0.5.11-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.11-legacy.json | 0 ...memberaccess-0.4.0.sol-0.5.12-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.12-legacy.json | 0 ...memberaccess-0.4.0.sol-0.5.13-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.13-legacy.json | 0 ...memberaccess-0.4.0.sol-0.5.14-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.14-legacy.json | 0 ...memberaccess-0.4.0.sol-0.5.15-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.15-legacy.json | 0 ...memberaccess-0.4.0.sol-0.5.16-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.16-legacy.json | 0 ...memberaccess-0.4.0.sol-0.5.17-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.17-legacy.json | 0 .../memberaccess-0.4.0.sol-0.5.2-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.2-legacy.json | 0 .../memberaccess-0.4.0.sol-0.5.3-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.3-legacy.json | 0 .../memberaccess-0.4.0.sol-0.5.4-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.4-legacy.json | 0 .../memberaccess-0.4.0.sol-0.5.5-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.5-legacy.json | 0 .../memberaccess-0.4.0.sol-0.5.6-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.6-legacy.json | 0 .../memberaccess-0.4.0.sol-0.5.7-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.7-legacy.json | 0 .../memberaccess-0.4.0.sol-0.5.8-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.8-legacy.json | 0 .../memberaccess-0.4.0.sol-0.5.9-compact.json | 0 .../memberaccess-0.4.0.sol-0.5.9-legacy.json | 0 .../memberaccess-0.5.3.sol-0.5.3-compact.json | 0 .../memberaccess-0.5.3.sol-0.5.3-legacy.json | 0 .../memberaccess-0.5.3.sol-0.5.4-compact.json | 0 .../memberaccess-0.5.3.sol-0.5.4-legacy.json | 0 .../memberaccess-0.5.3.sol-0.5.5-compact.json | 0 .../memberaccess-0.5.3.sol-0.5.5-legacy.json | 0 .../memberaccess-0.5.3.sol-0.5.6-compact.json | 0 .../memberaccess-0.5.3.sol-0.5.6-legacy.json | 0 .../memberaccess-0.5.3.sol-0.5.7-compact.json | 0 .../memberaccess-0.5.3.sol-0.5.7-legacy.json | 0 .../memberaccess-0.5.3.sol-0.5.8-compact.json | 0 .../memberaccess-0.5.3.sol-0.5.8-legacy.json | 0 .../memberaccess-0.5.3.sol-0.5.9-compact.json | 0 .../memberaccess-0.5.3.sol-0.5.9-legacy.json | 0 .../memberaccess-0.5.3.sol-0.6.0-compact.json | 0 .../memberaccess-0.5.3.sol-0.6.1-compact.json | 0 ...memberaccess-0.5.3.sol-0.6.10-compact.json | 0 ...memberaccess-0.5.3.sol-0.6.11-compact.json | 0 ...memberaccess-0.5.3.sol-0.6.12-compact.json | 0 .../memberaccess-0.5.3.sol-0.6.2-compact.json | 0 .../memberaccess-0.5.3.sol-0.6.3-compact.json | 0 .../memberaccess-0.5.3.sol-0.6.4-compact.json | 0 .../memberaccess-0.5.3.sol-0.6.5-compact.json | 0 .../memberaccess-0.5.3.sol-0.6.6-compact.json | 0 .../memberaccess-0.5.3.sol-0.6.7-compact.json | 0 .../memberaccess-0.5.3.sol-0.6.8-compact.json | 0 .../memberaccess-0.5.3.sol-0.6.9-compact.json | 0 .../memberaccess-0.5.3.sol-0.7.0-compact.json | 0 .../memberaccess-0.5.3.sol-0.7.1-compact.json | 0 .../memberaccess-0.5.3.sol-0.7.2-compact.json | 0 .../memberaccess-0.5.3.sol-0.7.3-compact.json | 0 .../memberaccess-0.5.3.sol-0.7.4-compact.json | 0 .../memberaccess-0.5.3.sol-0.7.5-compact.json | 0 .../memberaccess-0.5.3.sol-0.7.6-compact.json | 0 .../memberaccess-0.5.3.sol-0.8.0-compact.json | 0 .../memberaccess-0.5.3.sol-0.8.1-compact.json | 0 ...memberaccess-0.5.3.sol-0.8.10-compact.json | 0 ...memberaccess-0.5.3.sol-0.8.11-compact.json | 0 ...memberaccess-0.5.3.sol-0.8.12-compact.json | 0 ...memberaccess-0.5.3.sol-0.8.13-compact.json | 0 ...memberaccess-0.5.3.sol-0.8.14-compact.json | 0 ...memberaccess-0.5.3.sol-0.8.15-compact.json | 0 .../memberaccess-0.5.3.sol-0.8.2-compact.json | 0 .../memberaccess-0.5.3.sol-0.8.3-compact.json | 0 .../memberaccess-0.5.3.sol-0.8.4-compact.json | 0 .../memberaccess-0.5.3.sol-0.8.5-compact.json | 0 .../memberaccess-0.5.3.sol-0.8.6-compact.json | 0 .../memberaccess-0.5.3.sol-0.8.7-compact.json | 0 .../memberaccess-0.5.3.sol-0.8.8-compact.json | 0 .../memberaccess-0.5.3.sol-0.8.9-compact.json | 0 .../minmax-0.4.0.sol-0.4.0-compact.json | 0 .../minmax-0.4.0.sol-0.4.0-legacy.json | 0 .../minmax-0.4.0.sol-0.4.1-compact.json | 0 .../minmax-0.4.0.sol-0.4.1-legacy.json | 0 .../minmax-0.4.0.sol-0.4.10-compact.json | 0 .../minmax-0.4.0.sol-0.4.10-legacy.json | 0 .../minmax-0.4.0.sol-0.4.11-compact.json | 0 .../minmax-0.4.0.sol-0.4.11-legacy.json | 0 .../minmax-0.4.0.sol-0.4.12-compact.json | 0 .../minmax-0.4.0.sol-0.4.12-legacy.json | 0 .../minmax-0.4.0.sol-0.4.13-compact.json | 0 .../minmax-0.4.0.sol-0.4.13-legacy.json | 0 .../minmax-0.4.0.sol-0.4.14-compact.json | 0 .../minmax-0.4.0.sol-0.4.14-legacy.json | 0 .../minmax-0.4.0.sol-0.4.15-compact.json | 0 .../minmax-0.4.0.sol-0.4.15-legacy.json | 0 .../minmax-0.4.0.sol-0.4.16-compact.json | 0 .../minmax-0.4.0.sol-0.4.16-legacy.json | 0 .../minmax-0.4.0.sol-0.4.17-compact.json | 0 .../minmax-0.4.0.sol-0.4.17-legacy.json | 0 .../minmax-0.4.0.sol-0.4.18-compact.json | 0 .../minmax-0.4.0.sol-0.4.18-legacy.json | 0 .../minmax-0.4.0.sol-0.4.19-compact.json | 0 .../minmax-0.4.0.sol-0.4.19-legacy.json | 0 .../minmax-0.4.0.sol-0.4.2-compact.json | 0 .../minmax-0.4.0.sol-0.4.2-legacy.json | 0 .../minmax-0.4.0.sol-0.4.20-compact.json | 0 .../minmax-0.4.0.sol-0.4.20-legacy.json | 0 .../minmax-0.4.0.sol-0.4.21-compact.json | 0 .../minmax-0.4.0.sol-0.4.21-legacy.json | 0 .../minmax-0.4.0.sol-0.4.22-compact.json | 0 .../minmax-0.4.0.sol-0.4.22-legacy.json | 0 .../minmax-0.4.0.sol-0.4.23-compact.json | 0 .../minmax-0.4.0.sol-0.4.23-legacy.json | 0 .../minmax-0.4.0.sol-0.4.24-compact.json | 0 .../minmax-0.4.0.sol-0.4.24-legacy.json | 0 .../minmax-0.4.0.sol-0.4.25-compact.json | 0 .../minmax-0.4.0.sol-0.4.25-legacy.json | 0 .../minmax-0.4.0.sol-0.4.26-compact.json | 0 .../minmax-0.4.0.sol-0.4.26-legacy.json | 0 .../minmax-0.4.0.sol-0.4.3-compact.json | 0 .../minmax-0.4.0.sol-0.4.3-legacy.json | 0 .../minmax-0.4.0.sol-0.4.4-compact.json | 0 .../minmax-0.4.0.sol-0.4.4-legacy.json | 0 .../minmax-0.4.0.sol-0.4.5-compact.json | 0 .../minmax-0.4.0.sol-0.4.5-legacy.json | 0 .../minmax-0.4.0.sol-0.4.6-compact.json | 0 .../minmax-0.4.0.sol-0.4.6-legacy.json | 0 .../minmax-0.4.0.sol-0.4.7-compact.json | 0 .../minmax-0.4.0.sol-0.4.7-legacy.json | 0 .../minmax-0.4.0.sol-0.4.8-compact.json | 0 .../minmax-0.4.0.sol-0.4.8-legacy.json | 0 .../minmax-0.4.0.sol-0.4.9-compact.json | 0 .../minmax-0.4.0.sol-0.4.9-legacy.json | 0 .../minmax-0.4.0.sol-0.5.0-compact.json | 0 .../minmax-0.4.0.sol-0.5.0-legacy.json | 0 .../minmax-0.4.0.sol-0.5.1-compact.json | 0 .../minmax-0.4.0.sol-0.5.1-legacy.json | 0 .../minmax-0.4.0.sol-0.5.10-compact.json | 0 .../minmax-0.4.0.sol-0.5.10-legacy.json | 0 .../minmax-0.4.0.sol-0.5.11-compact.json | 0 .../minmax-0.4.0.sol-0.5.11-legacy.json | 0 .../minmax-0.4.0.sol-0.5.12-compact.json | 0 .../minmax-0.4.0.sol-0.5.12-legacy.json | 0 .../minmax-0.4.0.sol-0.5.13-compact.json | 0 .../minmax-0.4.0.sol-0.5.13-legacy.json | 0 .../minmax-0.4.0.sol-0.5.14-compact.json | 0 .../minmax-0.4.0.sol-0.5.14-legacy.json | 0 .../minmax-0.4.0.sol-0.5.15-compact.json | 0 .../minmax-0.4.0.sol-0.5.15-legacy.json | 0 .../minmax-0.4.0.sol-0.5.16-compact.json | 0 .../minmax-0.4.0.sol-0.5.16-legacy.json | 0 .../minmax-0.4.0.sol-0.5.17-compact.json | 0 .../minmax-0.4.0.sol-0.5.17-legacy.json | 0 .../minmax-0.4.0.sol-0.5.2-compact.json | 0 .../minmax-0.4.0.sol-0.5.2-legacy.json | 0 .../minmax-0.4.0.sol-0.5.3-compact.json | 0 .../minmax-0.4.0.sol-0.5.3-legacy.json | 0 .../minmax-0.4.0.sol-0.5.4-compact.json | 0 .../minmax-0.4.0.sol-0.5.4-legacy.json | 0 .../minmax-0.4.0.sol-0.5.5-compact.json | 0 .../minmax-0.4.0.sol-0.5.5-legacy.json | 0 .../minmax-0.4.0.sol-0.5.6-compact.json | 0 .../minmax-0.4.0.sol-0.5.6-legacy.json | 0 .../minmax-0.4.0.sol-0.5.7-compact.json | 0 .../minmax-0.4.0.sol-0.5.7-legacy.json | 0 .../minmax-0.4.0.sol-0.5.8-compact.json | 0 .../minmax-0.4.0.sol-0.5.8-legacy.json | 0 .../minmax-0.4.0.sol-0.5.9-compact.json | 0 .../minmax-0.4.0.sol-0.5.9-legacy.json | 0 .../minmax-0.4.0.sol-0.6.0-compact.json | 0 .../minmax-0.4.0.sol-0.6.0-legacy.json | 0 .../minmax-0.4.0.sol-0.6.1-compact.json | 0 .../minmax-0.4.0.sol-0.6.1-legacy.json | 0 .../minmax-0.4.0.sol-0.6.10-compact.json | 0 .../minmax-0.4.0.sol-0.6.10-legacy.json | 0 .../minmax-0.4.0.sol-0.6.11-compact.json | 0 .../minmax-0.4.0.sol-0.6.11-legacy.json | 0 .../minmax-0.4.0.sol-0.6.12-compact.json | 0 .../minmax-0.4.0.sol-0.6.12-legacy.json | 0 .../minmax-0.4.0.sol-0.6.2-compact.json | 0 .../minmax-0.4.0.sol-0.6.2-legacy.json | 0 .../minmax-0.4.0.sol-0.6.3-compact.json | 0 .../minmax-0.4.0.sol-0.6.3-legacy.json | 0 .../minmax-0.4.0.sol-0.6.4-compact.json | 0 .../minmax-0.4.0.sol-0.6.4-legacy.json | 0 .../minmax-0.4.0.sol-0.6.5-compact.json | 0 .../minmax-0.4.0.sol-0.6.5-legacy.json | 0 .../minmax-0.4.0.sol-0.6.6-compact.json | 0 .../minmax-0.4.0.sol-0.6.6-legacy.json | 0 .../minmax-0.4.0.sol-0.6.7-compact.json | 0 .../minmax-0.4.0.sol-0.6.7-legacy.json | 0 .../minmax-0.4.0.sol-0.6.8-compact.json | 0 .../minmax-0.4.0.sol-0.6.8-legacy.json | 0 .../minmax-0.4.0.sol-0.6.9-compact.json | 0 .../minmax-0.4.0.sol-0.6.9-legacy.json | 0 .../minmax-0.6.8.sol-0.6.8-compact.json | 0 .../minmax-0.6.8.sol-0.6.8-legacy.json | 0 .../minmax-0.6.8.sol-0.6.9-compact.json | 0 .../minmax-0.6.8.sol-0.6.9-legacy.json | 0 .../minmax-0.6.8.sol-0.7.0-compact.json | 0 .../minmax-0.6.8.sol-0.7.0-legacy.json | 0 .../minmax-0.6.8.sol-0.7.1-compact.json | 0 .../minmax-0.6.8.sol-0.7.1-legacy.json | 0 .../minmax-0.6.8.sol-0.7.2-compact.json | 0 .../minmax-0.6.8.sol-0.7.2-legacy.json | 0 .../minmax-0.6.8.sol-0.7.3-compact.json | 0 .../minmax-0.6.8.sol-0.7.3-legacy.json | 0 .../minmax-0.6.8.sol-0.7.4-compact.json | 0 .../minmax-0.6.8.sol-0.7.4-legacy.json | 0 .../minmax-0.6.8.sol-0.7.5-compact.json | 0 .../minmax-0.6.8.sol-0.7.5-legacy.json | 0 .../minmax-0.6.8.sol-0.7.6-compact.json | 0 .../minmax-0.6.8.sol-0.7.6-legacy.json | 0 .../minmax-0.6.8.sol-0.8.0-compact.json | 0 .../minmax-0.6.8.sol-0.8.1-compact.json | 0 .../minmax-0.6.8.sol-0.8.10-compact.json | 0 .../minmax-0.6.8.sol-0.8.11-compact.json | 0 .../minmax-0.6.8.sol-0.8.12-compact.json | 0 .../minmax-0.6.8.sol-0.8.13-compact.json | 0 .../minmax-0.6.8.sol-0.8.14-compact.json | 0 .../minmax-0.6.8.sol-0.8.15-compact.json | 0 .../minmax-0.6.8.sol-0.8.2-compact.json | 0 .../minmax-0.6.8.sol-0.8.3-compact.json | 0 .../minmax-0.6.8.sol-0.8.4-compact.json | 0 .../minmax-0.6.8.sol-0.8.5-compact.json | 0 .../minmax-0.6.8.sol-0.8.6-compact.json | 0 .../minmax-0.6.8.sol-0.8.7-compact.json | 0 .../minmax-0.6.8.sol-0.8.8-compact.json | 0 .../minmax-0.6.8.sol-0.8.9-compact.json | 0 .../minmax-0.8.8.sol-0.8.10-compact.json | 0 .../minmax-0.8.8.sol-0.8.11-compact.json | 0 .../minmax-0.8.8.sol-0.8.12-compact.json | 0 .../minmax-0.8.8.sol-0.8.13-compact.json | 0 .../minmax-0.8.8.sol-0.8.14-compact.json | 0 .../minmax-0.8.8.sol-0.8.15-compact.json | 0 .../minmax-0.8.8.sol-0.8.8-compact.json | 0 .../minmax-0.8.8.sol-0.8.9-compact.json | 0 .../modifier-0.7.0.sol-0.7.0-compact.json | 0 .../modifier-0.7.0.sol-0.7.0-legacy.json | 0 .../modifier-0.7.0.sol-0.7.1-compact.json | 0 .../modifier-0.7.0.sol-0.7.1-legacy.json | 0 .../modifier-0.7.0.sol-0.7.2-compact.json | 0 .../modifier-0.7.0.sol-0.7.2-legacy.json | 0 .../modifier-0.7.0.sol-0.7.3-compact.json | 0 .../modifier-0.7.0.sol-0.7.3-legacy.json | 0 .../modifier-0.7.0.sol-0.7.4-compact.json | 0 .../modifier-0.7.0.sol-0.7.4-legacy.json | 0 .../modifier-0.7.0.sol-0.7.5-compact.json | 0 .../modifier-0.7.0.sol-0.7.5-legacy.json | 0 .../modifier-0.7.0.sol-0.7.6-compact.json | 0 .../modifier-0.7.0.sol-0.7.6-legacy.json | 0 .../modifier-0.7.0.sol-0.8.0-compact.json | 0 .../modifier-0.7.0.sol-0.8.1-compact.json | 0 .../modifier-0.7.0.sol-0.8.10-compact.json | 0 .../modifier-0.7.0.sol-0.8.11-compact.json | 0 .../modifier-0.7.0.sol-0.8.12-compact.json | 0 .../modifier-0.7.0.sol-0.8.13-compact.json | 0 .../modifier-0.7.0.sol-0.8.14-compact.json | 0 .../modifier-0.7.0.sol-0.8.15-compact.json | 0 .../modifier-0.7.0.sol-0.8.2-compact.json | 0 .../modifier-0.7.0.sol-0.8.3-compact.json | 0 .../modifier-0.7.0.sol-0.8.4-compact.json | 0 .../modifier-0.7.0.sol-0.8.5-compact.json | 0 .../modifier-0.7.0.sol-0.8.6-compact.json | 0 .../modifier-0.7.0.sol-0.8.7-compact.json | 0 .../modifier-0.7.0.sol-0.8.8-compact.json | 0 .../modifier-0.7.0.sol-0.8.9-compact.json | 0 .../modifier-all.sol-0.4.0-compact.json | 0 .../modifier-all.sol-0.4.0-legacy.json | 0 .../modifier-all.sol-0.4.1-compact.json | 0 .../modifier-all.sol-0.4.1-legacy.json | 0 .../modifier-all.sol-0.4.10-compact.json | 0 .../modifier-all.sol-0.4.10-legacy.json | 0 .../modifier-all.sol-0.4.11-compact.json | 0 .../modifier-all.sol-0.4.11-legacy.json | 0 .../modifier-all.sol-0.4.12-compact.json | 0 .../modifier-all.sol-0.4.12-legacy.json | 0 .../modifier-all.sol-0.4.13-compact.json | 0 .../modifier-all.sol-0.4.13-legacy.json | 0 .../modifier-all.sol-0.4.14-compact.json | 0 .../modifier-all.sol-0.4.14-legacy.json | 0 .../modifier-all.sol-0.4.15-compact.json | 0 .../modifier-all.sol-0.4.15-legacy.json | 0 .../modifier-all.sol-0.4.16-compact.json | 0 .../modifier-all.sol-0.4.16-legacy.json | 0 .../modifier-all.sol-0.4.17-compact.json | 0 .../modifier-all.sol-0.4.17-legacy.json | 0 .../modifier-all.sol-0.4.18-compact.json | 0 .../modifier-all.sol-0.4.18-legacy.json | 0 .../modifier-all.sol-0.4.19-compact.json | 0 .../modifier-all.sol-0.4.19-legacy.json | 0 .../modifier-all.sol-0.4.2-compact.json | 0 .../modifier-all.sol-0.4.2-legacy.json | 0 .../modifier-all.sol-0.4.20-compact.json | 0 .../modifier-all.sol-0.4.20-legacy.json | 0 .../modifier-all.sol-0.4.21-compact.json | 0 .../modifier-all.sol-0.4.21-legacy.json | 0 .../modifier-all.sol-0.4.22-compact.json | 0 .../modifier-all.sol-0.4.22-legacy.json | 0 .../modifier-all.sol-0.4.23-compact.json | 0 .../modifier-all.sol-0.4.23-legacy.json | 0 .../modifier-all.sol-0.4.24-compact.json | 0 .../modifier-all.sol-0.4.24-legacy.json | 0 .../modifier-all.sol-0.4.25-compact.json | 0 .../modifier-all.sol-0.4.25-legacy.json | 0 .../modifier-all.sol-0.4.26-compact.json | 0 .../modifier-all.sol-0.4.26-legacy.json | 0 .../modifier-all.sol-0.4.3-compact.json | 0 .../modifier-all.sol-0.4.3-legacy.json | 0 .../modifier-all.sol-0.4.4-compact.json | 0 .../modifier-all.sol-0.4.4-legacy.json | 0 .../modifier-all.sol-0.4.5-compact.json | 0 .../modifier-all.sol-0.4.5-legacy.json | 0 .../modifier-all.sol-0.4.6-compact.json | 0 .../modifier-all.sol-0.4.6-legacy.json | 0 .../modifier-all.sol-0.4.7-compact.json | 0 .../modifier-all.sol-0.4.7-legacy.json | 0 .../modifier-all.sol-0.4.8-compact.json | 0 .../modifier-all.sol-0.4.8-legacy.json | 0 .../modifier-all.sol-0.4.9-compact.json | 0 .../modifier-all.sol-0.4.9-legacy.json | 0 .../modifier-all.sol-0.5.0-compact.json | 0 .../modifier-all.sol-0.5.0-legacy.json | 0 .../modifier-all.sol-0.5.1-compact.json | 0 .../modifier-all.sol-0.5.1-legacy.json | 0 .../modifier-all.sol-0.5.10-compact.json | 0 .../modifier-all.sol-0.5.10-legacy.json | 0 .../modifier-all.sol-0.5.11-compact.json | 0 .../modifier-all.sol-0.5.11-legacy.json | 0 .../modifier-all.sol-0.5.12-compact.json | 0 .../modifier-all.sol-0.5.12-legacy.json | 0 .../modifier-all.sol-0.5.13-compact.json | 0 .../modifier-all.sol-0.5.13-legacy.json | 0 .../modifier-all.sol-0.5.14-compact.json | 0 .../modifier-all.sol-0.5.14-legacy.json | 0 .../modifier-all.sol-0.5.15-compact.json | 0 .../modifier-all.sol-0.5.15-legacy.json | 0 .../modifier-all.sol-0.5.16-compact.json | 0 .../modifier-all.sol-0.5.16-legacy.json | 0 .../modifier-all.sol-0.5.17-compact.json | 0 .../modifier-all.sol-0.5.17-legacy.json | 0 .../modifier-all.sol-0.5.2-compact.json | 0 .../modifier-all.sol-0.5.2-legacy.json | 0 .../modifier-all.sol-0.5.3-compact.json | 0 .../modifier-all.sol-0.5.3-legacy.json | 0 .../modifier-all.sol-0.5.4-compact.json | 0 .../modifier-all.sol-0.5.4-legacy.json | 0 .../modifier-all.sol-0.5.5-compact.json | 0 .../modifier-all.sol-0.5.5-legacy.json | 0 .../modifier-all.sol-0.5.6-compact.json | 0 .../modifier-all.sol-0.5.6-legacy.json | 0 .../modifier-all.sol-0.5.7-compact.json | 0 .../modifier-all.sol-0.5.7-legacy.json | 0 .../modifier-all.sol-0.5.8-compact.json | 0 .../modifier-all.sol-0.5.8-legacy.json | 0 .../modifier-all.sol-0.5.9-compact.json | 0 .../modifier-all.sol-0.5.9-legacy.json | 0 .../modifier-all.sol-0.6.0-compact.json | 0 .../modifier-all.sol-0.6.0-legacy.json | 0 .../modifier-all.sol-0.6.1-compact.json | 0 .../modifier-all.sol-0.6.1-legacy.json | 0 .../modifier-all.sol-0.6.10-compact.json | 0 .../modifier-all.sol-0.6.10-legacy.json | 0 .../modifier-all.sol-0.6.11-compact.json | 0 .../modifier-all.sol-0.6.11-legacy.json | 0 .../modifier-all.sol-0.6.12-compact.json | 0 .../modifier-all.sol-0.6.12-legacy.json | 0 .../modifier-all.sol-0.6.2-compact.json | 0 .../modifier-all.sol-0.6.2-legacy.json | 0 .../modifier-all.sol-0.6.3-compact.json | 0 .../modifier-all.sol-0.6.3-legacy.json | 0 .../modifier-all.sol-0.6.4-compact.json | 0 .../modifier-all.sol-0.6.4-legacy.json | 0 .../modifier-all.sol-0.6.5-compact.json | 0 .../modifier-all.sol-0.6.5-legacy.json | 0 .../modifier-all.sol-0.6.6-compact.json | 0 .../modifier-all.sol-0.6.6-legacy.json | 0 .../modifier-all.sol-0.6.7-compact.json | 0 .../modifier-all.sol-0.6.7-legacy.json | 0 .../modifier-all.sol-0.6.8-compact.json | 0 .../modifier-all.sol-0.6.8-legacy.json | 0 .../modifier-all.sol-0.6.9-compact.json | 0 .../modifier-all.sol-0.6.9-legacy.json | 0 .../modifier-all.sol-0.7.0-compact.json | 0 .../modifier-all.sol-0.7.0-legacy.json | 0 .../modifier-all.sol-0.7.1-compact.json | 0 .../modifier-all.sol-0.7.1-legacy.json | 0 .../modifier-all.sol-0.7.2-compact.json | 0 .../modifier-all.sol-0.7.2-legacy.json | 0 .../modifier-all.sol-0.7.3-compact.json | 0 .../modifier-all.sol-0.7.3-legacy.json | 0 .../modifier-all.sol-0.7.4-compact.json | 0 .../modifier-all.sol-0.7.4-legacy.json | 0 .../modifier-all.sol-0.7.5-compact.json | 0 .../modifier-all.sol-0.7.5-legacy.json | 0 .../modifier-all.sol-0.7.6-compact.json | 0 .../modifier-all.sol-0.7.6-legacy.json | 0 .../modifier-all.sol-0.8.0-compact.json | 0 .../modifier-all.sol-0.8.1-compact.json | 0 .../modifier-all.sol-0.8.10-compact.json | 0 .../modifier-all.sol-0.8.11-compact.json | 0 .../modifier-all.sol-0.8.12-compact.json | 0 .../modifier-all.sol-0.8.13-compact.json | 0 .../modifier-all.sol-0.8.14-compact.json | 0 .../modifier-all.sol-0.8.15-compact.json | 0 .../modifier-all.sol-0.8.2-compact.json | 0 .../modifier-all.sol-0.8.3-compact.json | 0 .../modifier-all.sol-0.8.4-compact.json | 0 .../modifier-all.sol-0.8.5-compact.json | 0 .../modifier-all.sol-0.8.6-compact.json | 0 .../modifier-all.sol-0.8.7-compact.json | 0 .../modifier-all.sol-0.8.8-compact.json | 0 .../modifier-all.sol-0.8.9-compact.json | 0 ...ier_identifier_path.sol-0.8.0-compact.json | 0 ...ier_identifier_path.sol-0.8.1-compact.json | 0 ...er_identifier_path.sol-0.8.10-compact.json | 0 ...er_identifier_path.sol-0.8.11-compact.json | 0 ...er_identifier_path.sol-0.8.12-compact.json | 0 ...er_identifier_path.sol-0.8.13-compact.json | 0 ...er_identifier_path.sol-0.8.14-compact.json | 0 ...er_identifier_path.sol-0.8.15-compact.json | 0 ...ier_identifier_path.sol-0.8.2-compact.json | 0 ...ier_identifier_path.sol-0.8.3-compact.json | 0 ...ier_identifier_path.sol-0.8.4-compact.json | 0 ...ier_identifier_path.sol-0.8.5-compact.json | 0 ...ier_identifier_path.sol-0.8.6-compact.json | 0 ...ier_identifier_path.sol-0.8.7-compact.json | 0 ...ier_identifier_path.sol-0.8.8-compact.json | 0 ...ier_identifier_path.sol-0.8.9-compact.json | 0 ...newexpression-0.4.0.sol-0.4.0-compact.json | 0 .../newexpression-0.4.0.sol-0.4.0-legacy.json | 0 ...newexpression-0.4.0.sol-0.4.1-compact.json | 0 .../newexpression-0.4.0.sol-0.4.1-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.10-compact.json | 0 ...newexpression-0.4.0.sol-0.4.10-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.11-compact.json | 0 ...newexpression-0.4.0.sol-0.4.11-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.12-compact.json | 0 ...newexpression-0.4.0.sol-0.4.12-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.13-compact.json | 0 ...newexpression-0.4.0.sol-0.4.13-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.14-compact.json | 0 ...newexpression-0.4.0.sol-0.4.14-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.15-compact.json | 0 ...newexpression-0.4.0.sol-0.4.15-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.16-compact.json | 0 ...newexpression-0.4.0.sol-0.4.16-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.17-compact.json | 0 ...newexpression-0.4.0.sol-0.4.17-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.18-compact.json | 0 ...newexpression-0.4.0.sol-0.4.18-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.19-compact.json | 0 ...newexpression-0.4.0.sol-0.4.19-legacy.json | 0 ...newexpression-0.4.0.sol-0.4.2-compact.json | 0 .../newexpression-0.4.0.sol-0.4.2-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.20-compact.json | 0 ...newexpression-0.4.0.sol-0.4.20-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.21-compact.json | 0 ...newexpression-0.4.0.sol-0.4.21-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.22-compact.json | 0 ...newexpression-0.4.0.sol-0.4.22-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.23-compact.json | 0 ...newexpression-0.4.0.sol-0.4.23-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.24-compact.json | 0 ...newexpression-0.4.0.sol-0.4.24-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.25-compact.json | 0 ...newexpression-0.4.0.sol-0.4.25-legacy.json | 0 ...ewexpression-0.4.0.sol-0.4.26-compact.json | 0 ...newexpression-0.4.0.sol-0.4.26-legacy.json | 0 ...newexpression-0.4.0.sol-0.4.3-compact.json | 0 .../newexpression-0.4.0.sol-0.4.3-legacy.json | 0 ...newexpression-0.4.0.sol-0.4.4-compact.json | 0 .../newexpression-0.4.0.sol-0.4.4-legacy.json | 0 ...newexpression-0.4.0.sol-0.4.5-compact.json | 0 .../newexpression-0.4.0.sol-0.4.5-legacy.json | 0 ...newexpression-0.4.0.sol-0.4.6-compact.json | 0 .../newexpression-0.4.0.sol-0.4.6-legacy.json | 0 ...newexpression-0.4.0.sol-0.4.7-compact.json | 0 .../newexpression-0.4.0.sol-0.4.7-legacy.json | 0 ...newexpression-0.4.0.sol-0.4.8-compact.json | 0 .../newexpression-0.4.0.sol-0.4.8-legacy.json | 0 ...newexpression-0.4.0.sol-0.4.9-compact.json | 0 .../newexpression-0.4.0.sol-0.4.9-legacy.json | 0 ...newexpression-0.5.0.sol-0.5.0-compact.json | 0 .../newexpression-0.5.0.sol-0.5.0-legacy.json | 0 ...newexpression-0.5.0.sol-0.5.1-compact.json | 0 .../newexpression-0.5.0.sol-0.5.1-legacy.json | 0 ...ewexpression-0.5.0.sol-0.5.10-compact.json | 0 ...newexpression-0.5.0.sol-0.5.10-legacy.json | 0 ...ewexpression-0.5.0.sol-0.5.11-compact.json | 0 ...newexpression-0.5.0.sol-0.5.11-legacy.json | 0 ...ewexpression-0.5.0.sol-0.5.12-compact.json | 0 ...newexpression-0.5.0.sol-0.5.12-legacy.json | 0 ...ewexpression-0.5.0.sol-0.5.13-compact.json | 0 ...newexpression-0.5.0.sol-0.5.13-legacy.json | 0 ...ewexpression-0.5.0.sol-0.5.14-compact.json | 0 ...newexpression-0.5.0.sol-0.5.14-legacy.json | 0 ...ewexpression-0.5.0.sol-0.5.15-compact.json | 0 ...newexpression-0.5.0.sol-0.5.15-legacy.json | 0 ...ewexpression-0.5.0.sol-0.5.16-compact.json | 0 ...newexpression-0.5.0.sol-0.5.16-legacy.json | 0 ...ewexpression-0.5.0.sol-0.5.17-compact.json | 0 ...newexpression-0.5.0.sol-0.5.17-legacy.json | 0 ...newexpression-0.5.0.sol-0.5.2-compact.json | 0 .../newexpression-0.5.0.sol-0.5.2-legacy.json | 0 ...newexpression-0.5.0.sol-0.5.3-compact.json | 0 .../newexpression-0.5.0.sol-0.5.3-legacy.json | 0 ...newexpression-0.5.0.sol-0.5.4-compact.json | 0 .../newexpression-0.5.0.sol-0.5.4-legacy.json | 0 ...newexpression-0.5.0.sol-0.5.5-compact.json | 0 .../newexpression-0.5.0.sol-0.5.5-legacy.json | 0 ...newexpression-0.5.0.sol-0.5.6-compact.json | 0 .../newexpression-0.5.0.sol-0.5.6-legacy.json | 0 ...newexpression-0.5.0.sol-0.5.7-compact.json | 0 .../newexpression-0.5.0.sol-0.5.7-legacy.json | 0 ...newexpression-0.5.0.sol-0.5.8-compact.json | 0 .../newexpression-0.5.0.sol-0.5.8-legacy.json | 0 ...newexpression-0.5.0.sol-0.5.9-compact.json | 0 .../newexpression-0.5.0.sol-0.5.9-legacy.json | 0 ...newexpression-0.5.0.sol-0.6.0-compact.json | 0 .../newexpression-0.5.0.sol-0.6.0-legacy.json | 0 ...newexpression-0.5.0.sol-0.6.1-compact.json | 0 .../newexpression-0.5.0.sol-0.6.1-legacy.json | 0 ...ewexpression-0.5.0.sol-0.6.10-compact.json | 0 ...newexpression-0.5.0.sol-0.6.10-legacy.json | 0 ...ewexpression-0.5.0.sol-0.6.11-compact.json | 0 ...newexpression-0.5.0.sol-0.6.11-legacy.json | 0 ...ewexpression-0.5.0.sol-0.6.12-compact.json | 0 ...newexpression-0.5.0.sol-0.6.12-legacy.json | 0 ...newexpression-0.5.0.sol-0.6.2-compact.json | 0 .../newexpression-0.5.0.sol-0.6.2-legacy.json | 0 ...newexpression-0.5.0.sol-0.6.3-compact.json | 0 .../newexpression-0.5.0.sol-0.6.3-legacy.json | 0 ...newexpression-0.5.0.sol-0.6.4-compact.json | 0 .../newexpression-0.5.0.sol-0.6.4-legacy.json | 0 ...newexpression-0.5.0.sol-0.6.5-compact.json | 0 .../newexpression-0.5.0.sol-0.6.5-legacy.json | 0 ...newexpression-0.5.0.sol-0.6.6-compact.json | 0 .../newexpression-0.5.0.sol-0.6.6-legacy.json | 0 ...newexpression-0.5.0.sol-0.6.7-compact.json | 0 .../newexpression-0.5.0.sol-0.6.7-legacy.json | 0 ...newexpression-0.5.0.sol-0.6.8-compact.json | 0 .../newexpression-0.5.0.sol-0.6.8-legacy.json | 0 ...newexpression-0.5.0.sol-0.6.9-compact.json | 0 .../newexpression-0.5.0.sol-0.6.9-legacy.json | 0 ...newexpression-0.5.0.sol-0.7.0-compact.json | 0 .../newexpression-0.5.0.sol-0.7.0-legacy.json | 0 ...newexpression-0.5.0.sol-0.7.1-compact.json | 0 .../newexpression-0.5.0.sol-0.7.1-legacy.json | 0 ...newexpression-0.5.0.sol-0.7.2-compact.json | 0 .../newexpression-0.5.0.sol-0.7.2-legacy.json | 0 ...newexpression-0.5.0.sol-0.7.3-compact.json | 0 .../newexpression-0.5.0.sol-0.7.3-legacy.json | 0 ...newexpression-0.5.0.sol-0.7.4-compact.json | 0 .../newexpression-0.5.0.sol-0.7.4-legacy.json | 0 ...newexpression-0.5.0.sol-0.7.5-compact.json | 0 .../newexpression-0.5.0.sol-0.7.5-legacy.json | 0 ...newexpression-0.5.0.sol-0.7.6-compact.json | 0 .../newexpression-0.5.0.sol-0.7.6-legacy.json | 0 ...newexpression-0.5.0.sol-0.8.0-compact.json | 0 ...newexpression-0.5.0.sol-0.8.1-compact.json | 0 ...ewexpression-0.5.0.sol-0.8.10-compact.json | 0 ...ewexpression-0.5.0.sol-0.8.11-compact.json | 0 ...ewexpression-0.5.0.sol-0.8.12-compact.json | 0 ...ewexpression-0.5.0.sol-0.8.13-compact.json | 0 ...ewexpression-0.5.0.sol-0.8.14-compact.json | 0 ...ewexpression-0.5.0.sol-0.8.15-compact.json | 0 ...newexpression-0.5.0.sol-0.8.2-compact.json | 0 ...newexpression-0.5.0.sol-0.8.3-compact.json | 0 ...newexpression-0.5.0.sol-0.8.4-compact.json | 0 ...newexpression-0.5.0.sol-0.8.5-compact.json | 0 ...newexpression-0.5.0.sol-0.8.6-compact.json | 0 ...newexpression-0.5.0.sol-0.8.7-compact.json | 0 ...newexpression-0.5.0.sol-0.8.8-compact.json | 0 ...newexpression-0.5.0.sol-0.8.9-compact.json | 0 .../pragma-0.4.0.sol-0.4.0-compact.json | 0 .../pragma-0.4.0.sol-0.4.0-legacy.json | 0 .../pragma-0.4.0.sol-0.4.1-compact.json | 0 .../pragma-0.4.0.sol-0.4.1-legacy.json | 0 .../pragma-0.4.0.sol-0.4.10-compact.json | 0 .../pragma-0.4.0.sol-0.4.10-legacy.json | 0 .../pragma-0.4.0.sol-0.4.11-compact.json | 0 .../pragma-0.4.0.sol-0.4.11-legacy.json | 0 .../pragma-0.4.0.sol-0.4.12-compact.json | 0 .../pragma-0.4.0.sol-0.4.12-legacy.json | 0 .../pragma-0.4.0.sol-0.4.13-compact.json | 0 .../pragma-0.4.0.sol-0.4.13-legacy.json | 0 .../pragma-0.4.0.sol-0.4.14-compact.json | 0 .../pragma-0.4.0.sol-0.4.14-legacy.json | 0 .../pragma-0.4.0.sol-0.4.15-compact.json | 0 .../pragma-0.4.0.sol-0.4.15-legacy.json | 0 .../pragma-0.4.0.sol-0.4.16-compact.json | 0 .../pragma-0.4.0.sol-0.4.16-legacy.json | 0 .../pragma-0.4.0.sol-0.4.17-compact.json | 0 .../pragma-0.4.0.sol-0.4.17-legacy.json | 0 .../pragma-0.4.0.sol-0.4.18-compact.json | 0 .../pragma-0.4.0.sol-0.4.18-legacy.json | 0 .../pragma-0.4.0.sol-0.4.19-compact.json | 0 .../pragma-0.4.0.sol-0.4.19-legacy.json | 0 .../pragma-0.4.0.sol-0.4.2-compact.json | 0 .../pragma-0.4.0.sol-0.4.2-legacy.json | 0 .../pragma-0.4.0.sol-0.4.20-compact.json | 0 .../pragma-0.4.0.sol-0.4.20-legacy.json | 0 .../pragma-0.4.0.sol-0.4.21-compact.json | 0 .../pragma-0.4.0.sol-0.4.21-legacy.json | 0 .../pragma-0.4.0.sol-0.4.22-compact.json | 0 .../pragma-0.4.0.sol-0.4.22-legacy.json | 0 .../pragma-0.4.0.sol-0.4.23-compact.json | 0 .../pragma-0.4.0.sol-0.4.23-legacy.json | 0 .../pragma-0.4.0.sol-0.4.24-compact.json | 0 .../pragma-0.4.0.sol-0.4.24-legacy.json | 0 .../pragma-0.4.0.sol-0.4.25-compact.json | 0 .../pragma-0.4.0.sol-0.4.25-legacy.json | 0 .../pragma-0.4.0.sol-0.4.26-compact.json | 0 .../pragma-0.4.0.sol-0.4.26-legacy.json | 0 .../pragma-0.4.0.sol-0.4.3-compact.json | 0 .../pragma-0.4.0.sol-0.4.3-legacy.json | 0 .../pragma-0.4.0.sol-0.4.4-compact.json | 0 .../pragma-0.4.0.sol-0.4.4-legacy.json | 0 .../pragma-0.4.0.sol-0.4.5-compact.json | 0 .../pragma-0.4.0.sol-0.4.5-legacy.json | 0 .../pragma-0.4.0.sol-0.4.6-compact.json | 0 .../pragma-0.4.0.sol-0.4.6-legacy.json | 0 .../pragma-0.4.0.sol-0.4.7-compact.json | 0 .../pragma-0.4.0.sol-0.4.7-legacy.json | 0 .../pragma-0.4.0.sol-0.4.8-compact.json | 0 .../pragma-0.4.0.sol-0.4.8-legacy.json | 0 .../pragma-0.4.0.sol-0.4.9-compact.json | 0 .../pragma-0.4.0.sol-0.4.9-legacy.json | 0 .../pragma-0.5.0.sol-0.5.0-compact.json | 0 .../pragma-0.5.0.sol-0.5.0-legacy.json | 0 .../pragma-0.5.0.sol-0.5.1-compact.json | 0 .../pragma-0.5.0.sol-0.5.1-legacy.json | 0 .../pragma-0.5.0.sol-0.5.10-compact.json | 0 .../pragma-0.5.0.sol-0.5.10-legacy.json | 0 .../pragma-0.5.0.sol-0.5.11-compact.json | 0 .../pragma-0.5.0.sol-0.5.11-legacy.json | 0 .../pragma-0.5.0.sol-0.5.12-compact.json | 0 .../pragma-0.5.0.sol-0.5.12-legacy.json | 0 .../pragma-0.5.0.sol-0.5.13-compact.json | 0 .../pragma-0.5.0.sol-0.5.13-legacy.json | 0 .../pragma-0.5.0.sol-0.5.14-compact.json | 0 .../pragma-0.5.0.sol-0.5.14-legacy.json | 0 .../pragma-0.5.0.sol-0.5.15-compact.json | 0 .../pragma-0.5.0.sol-0.5.15-legacy.json | 0 .../pragma-0.5.0.sol-0.5.16-compact.json | 0 .../pragma-0.5.0.sol-0.5.16-legacy.json | 0 .../pragma-0.5.0.sol-0.5.17-compact.json | 0 .../pragma-0.5.0.sol-0.5.17-legacy.json | 0 .../pragma-0.5.0.sol-0.5.2-compact.json | 0 .../pragma-0.5.0.sol-0.5.2-legacy.json | 0 .../pragma-0.5.0.sol-0.5.3-compact.json | 0 .../pragma-0.5.0.sol-0.5.3-legacy.json | 0 .../pragma-0.5.0.sol-0.5.4-compact.json | 0 .../pragma-0.5.0.sol-0.5.4-legacy.json | 0 .../pragma-0.5.0.sol-0.5.5-compact.json | 0 .../pragma-0.5.0.sol-0.5.5-legacy.json | 0 .../pragma-0.5.0.sol-0.5.6-compact.json | 0 .../pragma-0.5.0.sol-0.5.6-legacy.json | 0 .../pragma-0.5.0.sol-0.5.7-compact.json | 0 .../pragma-0.5.0.sol-0.5.7-legacy.json | 0 .../pragma-0.5.0.sol-0.5.8-compact.json | 0 .../pragma-0.5.0.sol-0.5.8-legacy.json | 0 .../pragma-0.5.0.sol-0.5.9-compact.json | 0 .../pragma-0.5.0.sol-0.5.9-legacy.json | 0 .../pragma-0.6.0.sol-0.6.0-compact.json | 0 .../pragma-0.6.0.sol-0.6.0-legacy.json | 0 .../pragma-0.6.0.sol-0.6.1-compact.json | 0 .../pragma-0.6.0.sol-0.6.1-legacy.json | 0 .../pragma-0.6.0.sol-0.6.10-compact.json | 0 .../pragma-0.6.0.sol-0.6.10-legacy.json | 0 .../pragma-0.6.0.sol-0.6.11-compact.json | 0 .../pragma-0.6.0.sol-0.6.11-legacy.json | 0 .../pragma-0.6.0.sol-0.6.12-compact.json | 0 .../pragma-0.6.0.sol-0.6.12-legacy.json | 0 .../pragma-0.6.0.sol-0.6.2-compact.json | 0 .../pragma-0.6.0.sol-0.6.2-legacy.json | 0 .../pragma-0.6.0.sol-0.6.3-compact.json | 0 .../pragma-0.6.0.sol-0.6.3-legacy.json | 0 .../pragma-0.6.0.sol-0.6.4-compact.json | 0 .../pragma-0.6.0.sol-0.6.4-legacy.json | 0 .../pragma-0.6.0.sol-0.6.5-compact.json | 0 .../pragma-0.6.0.sol-0.6.5-legacy.json | 0 .../pragma-0.6.0.sol-0.6.6-compact.json | 0 .../pragma-0.6.0.sol-0.6.6-legacy.json | 0 .../pragma-0.6.0.sol-0.6.7-compact.json | 0 .../pragma-0.6.0.sol-0.6.7-legacy.json | 0 .../pragma-0.6.0.sol-0.6.8-compact.json | 0 .../pragma-0.6.0.sol-0.6.8-legacy.json | 0 .../pragma-0.6.0.sol-0.6.9-compact.json | 0 .../pragma-0.6.0.sol-0.6.9-legacy.json | 0 .../pragma-0.7.0.sol-0.7.0-compact.json | 0 .../pragma-0.7.0.sol-0.7.0-legacy.json | 0 .../pragma-0.7.0.sol-0.7.1-compact.json | 0 .../pragma-0.7.0.sol-0.7.1-legacy.json | 0 .../pragma-0.7.0.sol-0.7.2-compact.json | 0 .../pragma-0.7.0.sol-0.7.2-legacy.json | 0 .../pragma-0.7.0.sol-0.7.3-compact.json | 0 .../pragma-0.7.0.sol-0.7.3-legacy.json | 0 .../pragma-0.7.0.sol-0.7.4-compact.json | 0 .../pragma-0.7.0.sol-0.7.4-legacy.json | 0 .../pragma-0.7.0.sol-0.7.5-compact.json | 0 .../pragma-0.7.0.sol-0.7.5-legacy.json | 0 .../pragma-0.7.0.sol-0.7.6-compact.json | 0 .../pragma-0.7.0.sol-0.7.6-legacy.json | 0 .../pragma-0.8.0.sol-0.8.0-compact.json | 0 .../pragma-0.8.0.sol-0.8.1-compact.json | 0 .../pragma-0.8.0.sol-0.8.10-compact.json | 0 .../pragma-0.8.0.sol-0.8.11-compact.json | 0 .../pragma-0.8.0.sol-0.8.12-compact.json | 0 .../pragma-0.8.0.sol-0.8.13-compact.json | 0 .../pragma-0.8.0.sol-0.8.14-compact.json | 0 .../pragma-0.8.0.sol-0.8.15-compact.json | 0 .../pragma-0.8.0.sol-0.8.2-compact.json | 0 .../pragma-0.8.0.sol-0.8.3-compact.json | 0 .../pragma-0.8.0.sol-0.8.4-compact.json | 0 .../pragma-0.8.0.sol-0.8.5-compact.json | 0 .../pragma-0.8.0.sol-0.8.6-compact.json | 0 .../pragma-0.8.0.sol-0.8.7-compact.json | 0 .../pragma-0.8.0.sol-0.8.8-compact.json | 0 .../pragma-0.8.0.sol-0.8.9-compact.json | 0 .../expected/push-all.sol-0.4.0-compact.json | 0 .../expected/push-all.sol-0.4.0-legacy.json | 0 .../expected/push-all.sol-0.4.1-compact.json | 0 .../expected/push-all.sol-0.4.1-legacy.json | 0 .../expected/push-all.sol-0.4.10-compact.json | 0 .../expected/push-all.sol-0.4.10-legacy.json | 0 .../expected/push-all.sol-0.4.11-compact.json | 0 .../expected/push-all.sol-0.4.11-legacy.json | 0 .../expected/push-all.sol-0.4.12-compact.json | 0 .../expected/push-all.sol-0.4.12-legacy.json | 0 .../expected/push-all.sol-0.4.13-compact.json | 0 .../expected/push-all.sol-0.4.13-legacy.json | 0 .../expected/push-all.sol-0.4.14-compact.json | 0 .../expected/push-all.sol-0.4.14-legacy.json | 0 .../expected/push-all.sol-0.4.15-compact.json | 0 .../expected/push-all.sol-0.4.15-legacy.json | 0 .../expected/push-all.sol-0.4.16-compact.json | 0 .../expected/push-all.sol-0.4.16-legacy.json | 0 .../expected/push-all.sol-0.4.17-compact.json | 0 .../expected/push-all.sol-0.4.17-legacy.json | 0 .../expected/push-all.sol-0.4.18-compact.json | 0 .../expected/push-all.sol-0.4.18-legacy.json | 0 .../expected/push-all.sol-0.4.19-compact.json | 0 .../expected/push-all.sol-0.4.19-legacy.json | 0 .../expected/push-all.sol-0.4.2-compact.json | 0 .../expected/push-all.sol-0.4.2-legacy.json | 0 .../expected/push-all.sol-0.4.20-compact.json | 0 .../expected/push-all.sol-0.4.20-legacy.json | 0 .../expected/push-all.sol-0.4.21-compact.json | 0 .../expected/push-all.sol-0.4.21-legacy.json | 0 .../expected/push-all.sol-0.4.22-compact.json | 0 .../expected/push-all.sol-0.4.22-legacy.json | 0 .../expected/push-all.sol-0.4.23-compact.json | 0 .../expected/push-all.sol-0.4.23-legacy.json | 0 .../expected/push-all.sol-0.4.24-compact.json | 0 .../expected/push-all.sol-0.4.24-legacy.json | 0 .../expected/push-all.sol-0.4.25-compact.json | 0 .../expected/push-all.sol-0.4.25-legacy.json | 0 .../expected/push-all.sol-0.4.26-compact.json | 0 .../expected/push-all.sol-0.4.26-legacy.json | 0 .../expected/push-all.sol-0.4.3-compact.json | 0 .../expected/push-all.sol-0.4.3-legacy.json | 0 .../expected/push-all.sol-0.4.4-compact.json | 0 .../expected/push-all.sol-0.4.4-legacy.json | 0 .../expected/push-all.sol-0.4.5-compact.json | 0 .../expected/push-all.sol-0.4.5-legacy.json | 0 .../expected/push-all.sol-0.4.6-compact.json | 0 .../expected/push-all.sol-0.4.6-legacy.json | 0 .../expected/push-all.sol-0.4.7-compact.json | 0 .../expected/push-all.sol-0.4.7-legacy.json | 0 .../expected/push-all.sol-0.4.8-compact.json | 0 .../expected/push-all.sol-0.4.8-legacy.json | 0 .../expected/push-all.sol-0.4.9-compact.json | 0 .../expected/push-all.sol-0.4.9-legacy.json | 0 .../expected/push-all.sol-0.5.0-compact.json | 0 .../expected/push-all.sol-0.5.0-legacy.json | 0 .../expected/push-all.sol-0.5.1-compact.json | 0 .../expected/push-all.sol-0.5.1-legacy.json | 0 .../expected/push-all.sol-0.5.10-compact.json | 0 .../expected/push-all.sol-0.5.10-legacy.json | 0 .../expected/push-all.sol-0.5.11-compact.json | 0 .../expected/push-all.sol-0.5.11-legacy.json | 0 .../expected/push-all.sol-0.5.12-compact.json | 0 .../expected/push-all.sol-0.5.12-legacy.json | 0 .../expected/push-all.sol-0.5.13-compact.json | 0 .../expected/push-all.sol-0.5.13-legacy.json | 0 .../expected/push-all.sol-0.5.14-compact.json | 0 .../expected/push-all.sol-0.5.14-legacy.json | 0 .../expected/push-all.sol-0.5.15-compact.json | 0 .../expected/push-all.sol-0.5.15-legacy.json | 0 .../expected/push-all.sol-0.5.16-compact.json | 0 .../expected/push-all.sol-0.5.16-legacy.json | 0 .../expected/push-all.sol-0.5.17-compact.json | 0 .../expected/push-all.sol-0.5.17-legacy.json | 0 .../expected/push-all.sol-0.5.2-compact.json | 0 .../expected/push-all.sol-0.5.2-legacy.json | 0 .../expected/push-all.sol-0.5.3-compact.json | 0 .../expected/push-all.sol-0.5.3-legacy.json | 0 .../expected/push-all.sol-0.5.4-compact.json | 0 .../expected/push-all.sol-0.5.4-legacy.json | 0 .../expected/push-all.sol-0.5.5-compact.json | 0 .../expected/push-all.sol-0.5.5-legacy.json | 0 .../expected/push-all.sol-0.5.6-compact.json | 0 .../expected/push-all.sol-0.5.6-legacy.json | 0 .../expected/push-all.sol-0.5.7-compact.json | 0 .../expected/push-all.sol-0.5.7-legacy.json | 0 .../expected/push-all.sol-0.5.8-compact.json | 0 .../expected/push-all.sol-0.5.8-legacy.json | 0 .../expected/push-all.sol-0.5.9-compact.json | 0 .../expected/push-all.sol-0.5.9-legacy.json | 0 .../expected/push-all.sol-0.6.0-compact.json | 0 .../expected/push-all.sol-0.6.0-legacy.json | 0 .../expected/push-all.sol-0.6.1-compact.json | 0 .../expected/push-all.sol-0.6.1-legacy.json | 0 .../expected/push-all.sol-0.6.10-compact.json | 0 .../expected/push-all.sol-0.6.10-legacy.json | 0 .../expected/push-all.sol-0.6.11-compact.json | 0 .../expected/push-all.sol-0.6.11-legacy.json | 0 .../expected/push-all.sol-0.6.12-compact.json | 0 .../expected/push-all.sol-0.6.12-legacy.json | 0 .../expected/push-all.sol-0.6.2-compact.json | 0 .../expected/push-all.sol-0.6.2-legacy.json | 0 .../expected/push-all.sol-0.6.3-compact.json | 0 .../expected/push-all.sol-0.6.3-legacy.json | 0 .../expected/push-all.sol-0.6.4-compact.json | 0 .../expected/push-all.sol-0.6.4-legacy.json | 0 .../expected/push-all.sol-0.6.5-compact.json | 0 .../expected/push-all.sol-0.6.5-legacy.json | 0 .../expected/push-all.sol-0.6.6-compact.json | 0 .../expected/push-all.sol-0.6.6-legacy.json | 0 .../expected/push-all.sol-0.6.7-compact.json | 0 .../expected/push-all.sol-0.6.7-legacy.json | 0 .../expected/push-all.sol-0.6.8-compact.json | 0 .../expected/push-all.sol-0.6.8-legacy.json | 0 .../expected/push-all.sol-0.6.9-compact.json | 0 .../expected/push-all.sol-0.6.9-legacy.json | 0 .../expected/push-all.sol-0.7.0-compact.json | 0 .../expected/push-all.sol-0.7.0-legacy.json | 0 .../expected/push-all.sol-0.7.1-compact.json | 0 .../expected/push-all.sol-0.7.1-legacy.json | 0 .../expected/push-all.sol-0.7.2-compact.json | 0 .../expected/push-all.sol-0.7.2-legacy.json | 0 .../expected/push-all.sol-0.7.3-compact.json | 0 .../expected/push-all.sol-0.7.3-legacy.json | 0 .../expected/push-all.sol-0.7.4-compact.json | 0 .../expected/push-all.sol-0.7.4-legacy.json | 0 .../expected/push-all.sol-0.7.5-compact.json | 0 .../expected/push-all.sol-0.7.5-legacy.json | 0 .../expected/push-all.sol-0.7.6-compact.json | 0 .../expected/push-all.sol-0.7.6-legacy.json | 0 .../expected/push-all.sol-0.8.0-compact.json | 0 .../expected/push-all.sol-0.8.1-compact.json | 0 .../expected/push-all.sol-0.8.10-compact.json | 0 .../expected/push-all.sol-0.8.11-compact.json | 0 .../expected/push-all.sol-0.8.12-compact.json | 0 .../expected/push-all.sol-0.8.13-compact.json | 0 .../expected/push-all.sol-0.8.14-compact.json | 0 .../expected/push-all.sol-0.8.15-compact.json | 0 .../expected/push-all.sol-0.8.2-compact.json | 0 .../expected/push-all.sol-0.8.3-compact.json | 0 .../expected/push-all.sol-0.8.4-compact.json | 0 .../expected/push-all.sol-0.8.5-compact.json | 0 .../expected/push-all.sol-0.8.6-compact.json | 0 .../expected/push-all.sol-0.8.7-compact.json | 0 .../expected/push-all.sol-0.8.8-compact.json | 0 .../expected/push-all.sol-0.8.9-compact.json | 0 .../return-all.sol-0.4.0-compact.json | 0 .../expected/return-all.sol-0.4.0-legacy.json | 0 .../return-all.sol-0.4.1-compact.json | 0 .../expected/return-all.sol-0.4.1-legacy.json | 0 .../return-all.sol-0.4.10-compact.json | 0 .../return-all.sol-0.4.10-legacy.json | 0 .../return-all.sol-0.4.11-compact.json | 0 .../return-all.sol-0.4.11-legacy.json | 0 .../return-all.sol-0.4.12-compact.json | 0 .../return-all.sol-0.4.12-legacy.json | 0 .../return-all.sol-0.4.13-compact.json | 0 .../return-all.sol-0.4.13-legacy.json | 0 .../return-all.sol-0.4.14-compact.json | 0 .../return-all.sol-0.4.14-legacy.json | 0 .../return-all.sol-0.4.15-compact.json | 0 .../return-all.sol-0.4.15-legacy.json | 0 .../return-all.sol-0.4.16-compact.json | 0 .../return-all.sol-0.4.16-legacy.json | 0 .../return-all.sol-0.4.17-compact.json | 0 .../return-all.sol-0.4.17-legacy.json | 0 .../return-all.sol-0.4.18-compact.json | 0 .../return-all.sol-0.4.18-legacy.json | 0 .../return-all.sol-0.4.19-compact.json | 0 .../return-all.sol-0.4.19-legacy.json | 0 .../return-all.sol-0.4.2-compact.json | 0 .../expected/return-all.sol-0.4.2-legacy.json | 0 .../return-all.sol-0.4.20-compact.json | 0 .../return-all.sol-0.4.20-legacy.json | 0 .../return-all.sol-0.4.21-compact.json | 0 .../return-all.sol-0.4.21-legacy.json | 0 .../return-all.sol-0.4.22-compact.json | 0 .../return-all.sol-0.4.22-legacy.json | 0 .../return-all.sol-0.4.23-compact.json | 0 .../return-all.sol-0.4.23-legacy.json | 0 .../return-all.sol-0.4.24-compact.json | 0 .../return-all.sol-0.4.24-legacy.json | 0 .../return-all.sol-0.4.25-compact.json | 0 .../return-all.sol-0.4.25-legacy.json | 0 .../return-all.sol-0.4.26-compact.json | 0 .../return-all.sol-0.4.26-legacy.json | 0 .../return-all.sol-0.4.3-compact.json | 0 .../expected/return-all.sol-0.4.3-legacy.json | 0 .../return-all.sol-0.4.4-compact.json | 0 .../expected/return-all.sol-0.4.4-legacy.json | 0 .../return-all.sol-0.4.5-compact.json | 0 .../expected/return-all.sol-0.4.5-legacy.json | 0 .../return-all.sol-0.4.6-compact.json | 0 .../expected/return-all.sol-0.4.6-legacy.json | 0 .../return-all.sol-0.4.7-compact.json | 0 .../expected/return-all.sol-0.4.7-legacy.json | 0 .../return-all.sol-0.4.8-compact.json | 0 .../expected/return-all.sol-0.4.8-legacy.json | 0 .../return-all.sol-0.4.9-compact.json | 0 .../expected/return-all.sol-0.4.9-legacy.json | 0 .../return-all.sol-0.5.0-compact.json | 0 .../expected/return-all.sol-0.5.0-legacy.json | 0 .../return-all.sol-0.5.1-compact.json | 0 .../expected/return-all.sol-0.5.1-legacy.json | 0 .../return-all.sol-0.5.10-compact.json | 0 .../return-all.sol-0.5.10-legacy.json | 0 .../return-all.sol-0.5.11-compact.json | 0 .../return-all.sol-0.5.11-legacy.json | 0 .../return-all.sol-0.5.12-compact.json | 0 .../return-all.sol-0.5.12-legacy.json | 0 .../return-all.sol-0.5.13-compact.json | 0 .../return-all.sol-0.5.13-legacy.json | 0 .../return-all.sol-0.5.14-compact.json | 0 .../return-all.sol-0.5.14-legacy.json | 0 .../return-all.sol-0.5.15-compact.json | 0 .../return-all.sol-0.5.15-legacy.json | 0 .../return-all.sol-0.5.16-compact.json | 0 .../return-all.sol-0.5.16-legacy.json | 0 .../return-all.sol-0.5.17-compact.json | 0 .../return-all.sol-0.5.17-legacy.json | 0 .../return-all.sol-0.5.2-compact.json | 0 .../expected/return-all.sol-0.5.2-legacy.json | 0 .../return-all.sol-0.5.3-compact.json | 0 .../expected/return-all.sol-0.5.3-legacy.json | 0 .../return-all.sol-0.5.4-compact.json | 0 .../expected/return-all.sol-0.5.4-legacy.json | 0 .../return-all.sol-0.5.5-compact.json | 0 .../expected/return-all.sol-0.5.5-legacy.json | 0 .../return-all.sol-0.5.6-compact.json | 0 .../expected/return-all.sol-0.5.6-legacy.json | 0 .../return-all.sol-0.5.7-compact.json | 0 .../expected/return-all.sol-0.5.7-legacy.json | 0 .../return-all.sol-0.5.8-compact.json | 0 .../expected/return-all.sol-0.5.8-legacy.json | 0 .../return-all.sol-0.5.9-compact.json | 0 .../expected/return-all.sol-0.5.9-legacy.json | 0 .../return-all.sol-0.6.0-compact.json | 0 .../expected/return-all.sol-0.6.0-legacy.json | 0 .../return-all.sol-0.6.1-compact.json | 0 .../expected/return-all.sol-0.6.1-legacy.json | 0 .../return-all.sol-0.6.10-compact.json | 0 .../return-all.sol-0.6.10-legacy.json | 0 .../return-all.sol-0.6.11-compact.json | 0 .../return-all.sol-0.6.11-legacy.json | 0 .../return-all.sol-0.6.12-compact.json | 0 .../return-all.sol-0.6.12-legacy.json | 0 .../return-all.sol-0.6.2-compact.json | 0 .../expected/return-all.sol-0.6.2-legacy.json | 0 .../return-all.sol-0.6.3-compact.json | 0 .../expected/return-all.sol-0.6.3-legacy.json | 0 .../return-all.sol-0.6.4-compact.json | 0 .../expected/return-all.sol-0.6.4-legacy.json | 0 .../return-all.sol-0.6.5-compact.json | 0 .../expected/return-all.sol-0.6.5-legacy.json | 0 .../return-all.sol-0.6.6-compact.json | 0 .../expected/return-all.sol-0.6.6-legacy.json | 0 .../return-all.sol-0.6.7-compact.json | 0 .../expected/return-all.sol-0.6.7-legacy.json | 0 .../return-all.sol-0.6.8-compact.json | 0 .../expected/return-all.sol-0.6.8-legacy.json | 0 .../return-all.sol-0.6.9-compact.json | 0 .../expected/return-all.sol-0.6.9-legacy.json | 0 .../return-all.sol-0.7.0-compact.json | 0 .../expected/return-all.sol-0.7.0-legacy.json | 0 .../return-all.sol-0.7.1-compact.json | 0 .../expected/return-all.sol-0.7.1-legacy.json | 0 .../return-all.sol-0.7.2-compact.json | 0 .../expected/return-all.sol-0.7.2-legacy.json | 0 .../return-all.sol-0.7.3-compact.json | 0 .../expected/return-all.sol-0.7.3-legacy.json | 0 .../return-all.sol-0.7.4-compact.json | 0 .../expected/return-all.sol-0.7.4-legacy.json | 0 .../return-all.sol-0.7.5-compact.json | 0 .../expected/return-all.sol-0.7.5-legacy.json | 0 .../return-all.sol-0.7.6-compact.json | 0 .../expected/return-all.sol-0.7.6-legacy.json | 0 .../return-all.sol-0.8.0-compact.json | 0 .../return-all.sol-0.8.1-compact.json | 0 .../return-all.sol-0.8.10-compact.json | 0 .../return-all.sol-0.8.11-compact.json | 0 .../return-all.sol-0.8.12-compact.json | 0 .../return-all.sol-0.8.13-compact.json | 0 .../return-all.sol-0.8.14-compact.json | 0 .../return-all.sol-0.8.15-compact.json | 0 .../return-all.sol-0.8.2-compact.json | 0 .../return-all.sol-0.8.3-compact.json | 0 .../return-all.sol-0.8.4-compact.json | 0 .../return-all.sol-0.8.5-compact.json | 0 .../return-all.sol-0.8.6-compact.json | 0 .../return-all.sol-0.8.7-compact.json | 0 .../return-all.sol-0.8.8-compact.json | 0 .../return-all.sol-0.8.9-compact.json | 0 .../scope-0.4.0.sol-0.4.0-compact.json | 0 .../scope-0.4.0.sol-0.4.0-legacy.json | 0 .../scope-0.4.0.sol-0.4.1-compact.json | 0 .../scope-0.4.0.sol-0.4.1-legacy.json | 0 .../scope-0.4.0.sol-0.4.10-compact.json | 0 .../scope-0.4.0.sol-0.4.10-legacy.json | 0 .../scope-0.4.0.sol-0.4.11-compact.json | 0 .../scope-0.4.0.sol-0.4.11-legacy.json | 0 .../scope-0.4.0.sol-0.4.12-compact.json | 0 .../scope-0.4.0.sol-0.4.12-legacy.json | 0 .../scope-0.4.0.sol-0.4.13-compact.json | 0 .../scope-0.4.0.sol-0.4.13-legacy.json | 0 .../scope-0.4.0.sol-0.4.14-compact.json | 0 .../scope-0.4.0.sol-0.4.14-legacy.json | 0 .../scope-0.4.0.sol-0.4.15-compact.json | 0 .../scope-0.4.0.sol-0.4.15-legacy.json | 0 .../scope-0.4.0.sol-0.4.16-compact.json | 0 .../scope-0.4.0.sol-0.4.16-legacy.json | 0 .../scope-0.4.0.sol-0.4.17-compact.json | 0 .../scope-0.4.0.sol-0.4.17-legacy.json | 0 .../scope-0.4.0.sol-0.4.18-compact.json | 0 .../scope-0.4.0.sol-0.4.18-legacy.json | 0 .../scope-0.4.0.sol-0.4.19-compact.json | 0 .../scope-0.4.0.sol-0.4.19-legacy.json | 0 .../scope-0.4.0.sol-0.4.2-compact.json | 0 .../scope-0.4.0.sol-0.4.2-legacy.json | 0 .../scope-0.4.0.sol-0.4.20-compact.json | 0 .../scope-0.4.0.sol-0.4.20-legacy.json | 0 .../scope-0.4.0.sol-0.4.21-compact.json | 0 .../scope-0.4.0.sol-0.4.21-legacy.json | 0 .../scope-0.4.0.sol-0.4.22-compact.json | 0 .../scope-0.4.0.sol-0.4.22-legacy.json | 0 .../scope-0.4.0.sol-0.4.23-compact.json | 0 .../scope-0.4.0.sol-0.4.23-legacy.json | 0 .../scope-0.4.0.sol-0.4.24-compact.json | 0 .../scope-0.4.0.sol-0.4.24-legacy.json | 0 .../scope-0.4.0.sol-0.4.25-compact.json | 0 .../scope-0.4.0.sol-0.4.25-legacy.json | 0 .../scope-0.4.0.sol-0.4.26-compact.json | 0 .../scope-0.4.0.sol-0.4.26-legacy.json | 0 .../scope-0.4.0.sol-0.4.3-compact.json | 0 .../scope-0.4.0.sol-0.4.3-legacy.json | 0 .../scope-0.4.0.sol-0.4.4-compact.json | 0 .../scope-0.4.0.sol-0.4.4-legacy.json | 0 .../scope-0.4.0.sol-0.4.5-compact.json | 0 .../scope-0.4.0.sol-0.4.5-legacy.json | 0 .../scope-0.4.0.sol-0.4.6-compact.json | 0 .../scope-0.4.0.sol-0.4.6-legacy.json | 0 .../scope-0.4.0.sol-0.4.7-compact.json | 0 .../scope-0.4.0.sol-0.4.7-legacy.json | 0 .../scope-0.4.0.sol-0.4.8-compact.json | 0 .../scope-0.4.0.sol-0.4.8-legacy.json | 0 .../scope-0.4.0.sol-0.4.9-compact.json | 0 .../scope-0.4.0.sol-0.4.9-legacy.json | 0 .../scope-0.5.0.sol-0.5.0-compact.json | 0 .../scope-0.5.0.sol-0.5.0-legacy.json | 0 .../scope-0.5.0.sol-0.5.1-compact.json | 0 .../scope-0.5.0.sol-0.5.1-legacy.json | 0 .../scope-0.5.0.sol-0.5.10-compact.json | 0 .../scope-0.5.0.sol-0.5.10-legacy.json | 0 .../scope-0.5.0.sol-0.5.11-compact.json | 0 .../scope-0.5.0.sol-0.5.11-legacy.json | 0 .../scope-0.5.0.sol-0.5.12-compact.json | 0 .../scope-0.5.0.sol-0.5.12-legacy.json | 0 .../scope-0.5.0.sol-0.5.13-compact.json | 0 .../scope-0.5.0.sol-0.5.13-legacy.json | 0 .../scope-0.5.0.sol-0.5.14-compact.json | 0 .../scope-0.5.0.sol-0.5.14-legacy.json | 0 .../scope-0.5.0.sol-0.5.15-compact.json | 0 .../scope-0.5.0.sol-0.5.15-legacy.json | 0 .../scope-0.5.0.sol-0.5.16-compact.json | 0 .../scope-0.5.0.sol-0.5.16-legacy.json | 0 .../scope-0.5.0.sol-0.5.17-compact.json | 0 .../scope-0.5.0.sol-0.5.17-legacy.json | 0 .../scope-0.5.0.sol-0.5.2-compact.json | 0 .../scope-0.5.0.sol-0.5.2-legacy.json | 0 .../scope-0.5.0.sol-0.5.3-compact.json | 0 .../scope-0.5.0.sol-0.5.3-legacy.json | 0 .../scope-0.5.0.sol-0.5.4-compact.json | 0 .../scope-0.5.0.sol-0.5.4-legacy.json | 0 .../scope-0.5.0.sol-0.5.5-compact.json | 0 .../scope-0.5.0.sol-0.5.5-legacy.json | 0 .../scope-0.5.0.sol-0.5.6-compact.json | 0 .../scope-0.5.0.sol-0.5.6-legacy.json | 0 .../scope-0.5.0.sol-0.5.7-compact.json | 0 .../scope-0.5.0.sol-0.5.7-legacy.json | 0 .../scope-0.5.0.sol-0.5.8-compact.json | 0 .../scope-0.5.0.sol-0.5.8-legacy.json | 0 .../scope-0.5.0.sol-0.5.9-compact.json | 0 .../scope-0.5.0.sol-0.5.9-legacy.json | 0 .../scope-0.5.0.sol-0.6.0-compact.json | 0 .../scope-0.5.0.sol-0.6.0-legacy.json | 0 .../scope-0.5.0.sol-0.6.1-compact.json | 0 .../scope-0.5.0.sol-0.6.1-legacy.json | 0 .../scope-0.5.0.sol-0.6.10-compact.json | 0 .../scope-0.5.0.sol-0.6.10-legacy.json | 0 .../scope-0.5.0.sol-0.6.11-compact.json | 0 .../scope-0.5.0.sol-0.6.11-legacy.json | 0 .../scope-0.5.0.sol-0.6.12-compact.json | 0 .../scope-0.5.0.sol-0.6.12-legacy.json | 0 .../scope-0.5.0.sol-0.6.2-compact.json | 0 .../scope-0.5.0.sol-0.6.2-legacy.json | 0 .../scope-0.5.0.sol-0.6.3-compact.json | 0 .../scope-0.5.0.sol-0.6.3-legacy.json | 0 .../scope-0.5.0.sol-0.6.4-compact.json | 0 .../scope-0.5.0.sol-0.6.4-legacy.json | 0 .../scope-0.5.0.sol-0.6.5-compact.json | 0 .../scope-0.5.0.sol-0.6.5-legacy.json | 0 .../scope-0.5.0.sol-0.6.6-compact.json | 0 .../scope-0.5.0.sol-0.6.6-legacy.json | 0 .../scope-0.5.0.sol-0.6.7-compact.json | 0 .../scope-0.5.0.sol-0.6.7-legacy.json | 0 .../scope-0.5.0.sol-0.6.8-compact.json | 0 .../scope-0.5.0.sol-0.6.8-legacy.json | 0 .../scope-0.5.0.sol-0.6.9-compact.json | 0 .../scope-0.5.0.sol-0.6.9-legacy.json | 0 .../scope-0.5.0.sol-0.7.0-compact.json | 0 .../scope-0.5.0.sol-0.7.0-legacy.json | 0 .../scope-0.5.0.sol-0.7.1-compact.json | 0 .../scope-0.5.0.sol-0.7.1-legacy.json | 0 .../scope-0.5.0.sol-0.7.2-compact.json | 0 .../scope-0.5.0.sol-0.7.2-legacy.json | 0 .../scope-0.5.0.sol-0.7.3-compact.json | 0 .../scope-0.5.0.sol-0.7.3-legacy.json | 0 .../scope-0.5.0.sol-0.7.4-compact.json | 0 .../scope-0.5.0.sol-0.7.4-legacy.json | 0 .../scope-0.5.0.sol-0.7.5-compact.json | 0 .../scope-0.5.0.sol-0.7.5-legacy.json | 0 .../scope-0.5.0.sol-0.7.6-compact.json | 0 .../scope-0.5.0.sol-0.7.6-legacy.json | 0 .../scope-0.5.0.sol-0.8.0-compact.json | 0 .../scope-0.5.0.sol-0.8.1-compact.json | 0 .../scope-0.5.0.sol-0.8.10-compact.json | 0 .../scope-0.5.0.sol-0.8.11-compact.json | 0 .../scope-0.5.0.sol-0.8.12-compact.json | 0 .../scope-0.5.0.sol-0.8.13-compact.json | 0 .../scope-0.5.0.sol-0.8.14-compact.json | 0 .../scope-0.5.0.sol-0.8.15-compact.json | 0 .../scope-0.5.0.sol-0.8.2-compact.json | 0 .../scope-0.5.0.sol-0.8.3-compact.json | 0 .../scope-0.5.0.sol-0.8.4-compact.json | 0 .../scope-0.5.0.sol-0.8.5-compact.json | 0 .../scope-0.5.0.sol-0.8.6-compact.json | 0 .../scope-0.5.0.sol-0.8.7-compact.json | 0 .../scope-0.5.0.sol-0.8.8-compact.json | 0 .../scope-0.5.0.sol-0.8.9-compact.json | 0 .../struct-0.4.0.sol-0.4.0-compact.json | 0 .../struct-0.4.0.sol-0.4.0-legacy.json | 0 .../struct-0.4.0.sol-0.4.1-compact.json | 0 .../struct-0.4.0.sol-0.4.1-legacy.json | 0 .../struct-0.4.0.sol-0.4.10-compact.json | 0 .../struct-0.4.0.sol-0.4.10-legacy.json | 0 .../struct-0.4.0.sol-0.4.11-compact.json | 0 .../struct-0.4.0.sol-0.4.11-legacy.json | 0 .../struct-0.4.0.sol-0.4.12-compact.json | 0 .../struct-0.4.0.sol-0.4.12-legacy.json | 0 .../struct-0.4.0.sol-0.4.13-compact.json | 0 .../struct-0.4.0.sol-0.4.13-legacy.json | 0 .../struct-0.4.0.sol-0.4.14-compact.json | 0 .../struct-0.4.0.sol-0.4.14-legacy.json | 0 .../struct-0.4.0.sol-0.4.15-compact.json | 0 .../struct-0.4.0.sol-0.4.15-legacy.json | 0 .../struct-0.4.0.sol-0.4.16-compact.json | 0 .../struct-0.4.0.sol-0.4.16-legacy.json | 0 .../struct-0.4.0.sol-0.4.17-compact.json | 0 .../struct-0.4.0.sol-0.4.17-legacy.json | 0 .../struct-0.4.0.sol-0.4.18-compact.json | 0 .../struct-0.4.0.sol-0.4.18-legacy.json | 0 .../struct-0.4.0.sol-0.4.19-compact.json | 0 .../struct-0.4.0.sol-0.4.19-legacy.json | 0 .../struct-0.4.0.sol-0.4.2-compact.json | 0 .../struct-0.4.0.sol-0.4.2-legacy.json | 0 .../struct-0.4.0.sol-0.4.20-compact.json | 0 .../struct-0.4.0.sol-0.4.20-legacy.json | 0 .../struct-0.4.0.sol-0.4.21-compact.json | 0 .../struct-0.4.0.sol-0.4.21-legacy.json | 0 .../struct-0.4.0.sol-0.4.22-compact.json | 0 .../struct-0.4.0.sol-0.4.22-legacy.json | 0 .../struct-0.4.0.sol-0.4.23-compact.json | 0 .../struct-0.4.0.sol-0.4.23-legacy.json | 0 .../struct-0.4.0.sol-0.4.24-compact.json | 0 .../struct-0.4.0.sol-0.4.24-legacy.json | 0 .../struct-0.4.0.sol-0.4.25-compact.json | 0 .../struct-0.4.0.sol-0.4.25-legacy.json | 0 .../struct-0.4.0.sol-0.4.26-compact.json | 0 .../struct-0.4.0.sol-0.4.26-legacy.json | 0 .../struct-0.4.0.sol-0.4.3-compact.json | 0 .../struct-0.4.0.sol-0.4.3-legacy.json | 0 .../struct-0.4.0.sol-0.4.4-compact.json | 0 .../struct-0.4.0.sol-0.4.4-legacy.json | 0 .../struct-0.4.0.sol-0.4.5-compact.json | 0 .../struct-0.4.0.sol-0.4.5-legacy.json | 0 .../struct-0.4.0.sol-0.4.6-compact.json | 0 .../struct-0.4.0.sol-0.4.6-legacy.json | 0 .../struct-0.4.0.sol-0.4.7-compact.json | 0 .../struct-0.4.0.sol-0.4.7-legacy.json | 0 .../struct-0.4.0.sol-0.4.8-compact.json | 0 .../struct-0.4.0.sol-0.4.8-legacy.json | 0 .../struct-0.4.0.sol-0.4.9-compact.json | 0 .../struct-0.4.0.sol-0.4.9-legacy.json | 0 .../struct-0.4.0.sol-0.5.0-compact.json | 0 .../struct-0.4.0.sol-0.5.0-legacy.json | 0 .../struct-0.4.0.sol-0.5.1-compact.json | 0 .../struct-0.4.0.sol-0.5.1-legacy.json | 0 .../struct-0.4.0.sol-0.5.10-compact.json | 0 .../struct-0.4.0.sol-0.5.10-legacy.json | 0 .../struct-0.4.0.sol-0.5.11-compact.json | 0 .../struct-0.4.0.sol-0.5.11-legacy.json | 0 .../struct-0.4.0.sol-0.5.12-compact.json | 0 .../struct-0.4.0.sol-0.5.12-legacy.json | 0 .../struct-0.4.0.sol-0.5.13-compact.json | 0 .../struct-0.4.0.sol-0.5.13-legacy.json | 0 .../struct-0.4.0.sol-0.5.14-compact.json | 0 .../struct-0.4.0.sol-0.5.14-legacy.json | 0 .../struct-0.4.0.sol-0.5.15-compact.json | 0 .../struct-0.4.0.sol-0.5.15-legacy.json | 0 .../struct-0.4.0.sol-0.5.16-compact.json | 0 .../struct-0.4.0.sol-0.5.16-legacy.json | 0 .../struct-0.4.0.sol-0.5.17-compact.json | 0 .../struct-0.4.0.sol-0.5.17-legacy.json | 0 .../struct-0.4.0.sol-0.5.2-compact.json | 0 .../struct-0.4.0.sol-0.5.2-legacy.json | 0 .../struct-0.4.0.sol-0.5.3-compact.json | 0 .../struct-0.4.0.sol-0.5.3-legacy.json | 0 .../struct-0.4.0.sol-0.5.4-compact.json | 0 .../struct-0.4.0.sol-0.5.4-legacy.json | 0 .../struct-0.4.0.sol-0.5.5-compact.json | 0 .../struct-0.4.0.sol-0.5.5-legacy.json | 0 .../struct-0.4.0.sol-0.5.6-compact.json | 0 .../struct-0.4.0.sol-0.5.6-legacy.json | 0 .../struct-0.4.0.sol-0.5.7-compact.json | 0 .../struct-0.4.0.sol-0.5.7-legacy.json | 0 .../struct-0.4.0.sol-0.5.8-compact.json | 0 .../struct-0.4.0.sol-0.5.8-legacy.json | 0 .../struct-0.4.0.sol-0.5.9-compact.json | 0 .../struct-0.4.0.sol-0.5.9-legacy.json | 0 .../struct-0.6.0.sol-0.6.0-compact.json | 0 .../struct-0.6.0.sol-0.6.1-compact.json | 0 .../struct-0.6.0.sol-0.6.10-compact.json | 0 .../struct-0.6.0.sol-0.6.11-compact.json | 0 .../struct-0.6.0.sol-0.6.12-compact.json | 0 .../struct-0.6.0.sol-0.6.2-compact.json | 0 .../struct-0.6.0.sol-0.6.3-compact.json | 0 .../struct-0.6.0.sol-0.6.4-compact.json | 0 .../struct-0.6.0.sol-0.6.5-compact.json | 0 .../struct-0.6.0.sol-0.6.6-compact.json | 0 .../struct-0.6.0.sol-0.6.7-compact.json | 0 .../struct-0.6.0.sol-0.6.8-compact.json | 0 .../struct-0.6.0.sol-0.6.9-compact.json | 0 .../struct-0.6.0.sol-0.7.0-compact.json | 0 .../struct-0.6.0.sol-0.7.1-compact.json | 0 .../struct-0.6.0.sol-0.7.2-compact.json | 0 .../struct-0.6.0.sol-0.7.3-compact.json | 0 .../struct-0.6.0.sol-0.7.4-compact.json | 0 .../struct-0.6.0.sol-0.7.5-compact.json | 0 .../struct-0.6.0.sol-0.7.6-compact.json | 0 .../struct-0.6.0.sol-0.8.0-compact.json | 0 .../struct-0.6.0.sol-0.8.1-compact.json | 0 .../struct-0.6.0.sol-0.8.10-compact.json | 0 .../struct-0.6.0.sol-0.8.11-compact.json | 0 .../struct-0.6.0.sol-0.8.12-compact.json | 0 .../struct-0.6.0.sol-0.8.13-compact.json | 0 .../struct-0.6.0.sol-0.8.14-compact.json | 0 .../struct-0.6.0.sol-0.8.15-compact.json | 0 .../struct-0.6.0.sol-0.8.2-compact.json | 0 .../struct-0.6.0.sol-0.8.3-compact.json | 0 .../struct-0.6.0.sol-0.8.4-compact.json | 0 .../struct-0.6.0.sol-0.8.5-compact.json | 0 .../struct-0.6.0.sol-0.8.6-compact.json | 0 .../struct-0.6.0.sol-0.8.7-compact.json | 0 .../struct-0.6.0.sol-0.8.8-compact.json | 0 .../struct-0.6.0.sol-0.8.9-compact.json | 0 .../ternary-with-max.sol-0.8.15-compact.json | 0 .../throw-0.4.0.sol-0.4.0-compact.json | 0 .../throw-0.4.0.sol-0.4.0-legacy.json | 0 .../throw-0.4.0.sol-0.4.1-compact.json | 0 .../throw-0.4.0.sol-0.4.1-legacy.json | 0 .../throw-0.4.0.sol-0.4.10-compact.json | 0 .../throw-0.4.0.sol-0.4.10-legacy.json | 0 .../throw-0.4.0.sol-0.4.11-compact.json | 0 .../throw-0.4.0.sol-0.4.11-legacy.json | 0 .../throw-0.4.0.sol-0.4.12-compact.json | 0 .../throw-0.4.0.sol-0.4.12-legacy.json | 0 .../throw-0.4.0.sol-0.4.13-compact.json | 0 .../throw-0.4.0.sol-0.4.13-legacy.json | 0 .../throw-0.4.0.sol-0.4.14-compact.json | 0 .../throw-0.4.0.sol-0.4.14-legacy.json | 0 .../throw-0.4.0.sol-0.4.15-compact.json | 0 .../throw-0.4.0.sol-0.4.15-legacy.json | 0 .../throw-0.4.0.sol-0.4.16-compact.json | 0 .../throw-0.4.0.sol-0.4.16-legacy.json | 0 .../throw-0.4.0.sol-0.4.17-compact.json | 0 .../throw-0.4.0.sol-0.4.17-legacy.json | 0 .../throw-0.4.0.sol-0.4.18-compact.json | 0 .../throw-0.4.0.sol-0.4.18-legacy.json | 0 .../throw-0.4.0.sol-0.4.19-compact.json | 0 .../throw-0.4.0.sol-0.4.19-legacy.json | 0 .../throw-0.4.0.sol-0.4.2-compact.json | 0 .../throw-0.4.0.sol-0.4.2-legacy.json | 0 .../throw-0.4.0.sol-0.4.20-compact.json | 0 .../throw-0.4.0.sol-0.4.20-legacy.json | 0 .../throw-0.4.0.sol-0.4.21-compact.json | 0 .../throw-0.4.0.sol-0.4.21-legacy.json | 0 .../throw-0.4.0.sol-0.4.22-compact.json | 0 .../throw-0.4.0.sol-0.4.22-legacy.json | 0 .../throw-0.4.0.sol-0.4.23-compact.json | 0 .../throw-0.4.0.sol-0.4.23-legacy.json | 0 .../throw-0.4.0.sol-0.4.24-compact.json | 0 .../throw-0.4.0.sol-0.4.24-legacy.json | 0 .../throw-0.4.0.sol-0.4.25-compact.json | 0 .../throw-0.4.0.sol-0.4.25-legacy.json | 0 .../throw-0.4.0.sol-0.4.26-compact.json | 0 .../throw-0.4.0.sol-0.4.26-legacy.json | 0 .../throw-0.4.0.sol-0.4.3-compact.json | 0 .../throw-0.4.0.sol-0.4.3-legacy.json | 0 .../throw-0.4.0.sol-0.4.4-compact.json | 0 .../throw-0.4.0.sol-0.4.4-legacy.json | 0 .../throw-0.4.0.sol-0.4.5-compact.json | 0 .../throw-0.4.0.sol-0.4.5-legacy.json | 0 .../throw-0.4.0.sol-0.4.6-compact.json | 0 .../throw-0.4.0.sol-0.4.6-legacy.json | 0 .../throw-0.4.0.sol-0.4.7-compact.json | 0 .../throw-0.4.0.sol-0.4.7-legacy.json | 0 .../throw-0.4.0.sol-0.4.8-compact.json | 0 .../throw-0.4.0.sol-0.4.8-legacy.json | 0 .../throw-0.4.0.sol-0.4.9-compact.json | 0 .../throw-0.4.0.sol-0.4.9-legacy.json | 0 .../throw-0.5.0.sol-0.5.0-compact.json | 0 .../throw-0.5.0.sol-0.5.0-legacy.json | 0 .../throw-0.5.0.sol-0.5.1-compact.json | 0 .../throw-0.5.0.sol-0.5.1-legacy.json | 0 .../throw-0.5.0.sol-0.5.10-compact.json | 0 .../throw-0.5.0.sol-0.5.10-legacy.json | 0 .../throw-0.5.0.sol-0.5.11-compact.json | 0 .../throw-0.5.0.sol-0.5.11-legacy.json | 0 .../throw-0.5.0.sol-0.5.12-compact.json | 0 .../throw-0.5.0.sol-0.5.12-legacy.json | 0 .../throw-0.5.0.sol-0.5.13-compact.json | 0 .../throw-0.5.0.sol-0.5.13-legacy.json | 0 .../throw-0.5.0.sol-0.5.14-compact.json | 0 .../throw-0.5.0.sol-0.5.14-legacy.json | 0 .../throw-0.5.0.sol-0.5.15-compact.json | 0 .../throw-0.5.0.sol-0.5.15-legacy.json | 0 .../throw-0.5.0.sol-0.5.16-compact.json | 0 .../throw-0.5.0.sol-0.5.16-legacy.json | 0 .../throw-0.5.0.sol-0.5.17-compact.json | 0 .../throw-0.5.0.sol-0.5.17-legacy.json | 0 .../throw-0.5.0.sol-0.5.2-compact.json | 0 .../throw-0.5.0.sol-0.5.2-legacy.json | 0 .../throw-0.5.0.sol-0.5.3-compact.json | 0 .../throw-0.5.0.sol-0.5.3-legacy.json | 0 .../throw-0.5.0.sol-0.5.4-compact.json | 0 .../throw-0.5.0.sol-0.5.4-legacy.json | 0 .../throw-0.5.0.sol-0.5.5-compact.json | 0 .../throw-0.5.0.sol-0.5.5-legacy.json | 0 .../throw-0.5.0.sol-0.5.6-compact.json | 0 .../throw-0.5.0.sol-0.5.6-legacy.json | 0 .../throw-0.5.0.sol-0.5.7-compact.json | 0 .../throw-0.5.0.sol-0.5.7-legacy.json | 0 .../throw-0.5.0.sol-0.5.8-compact.json | 0 .../throw-0.5.0.sol-0.5.8-legacy.json | 0 .../throw-0.5.0.sol-0.5.9-compact.json | 0 .../throw-0.5.0.sol-0.5.9-legacy.json | 0 .../throw-0.5.0.sol-0.6.0-compact.json | 0 .../throw-0.5.0.sol-0.6.0-legacy.json | 0 .../throw-0.5.0.sol-0.6.1-compact.json | 0 .../throw-0.5.0.sol-0.6.1-legacy.json | 0 .../throw-0.5.0.sol-0.6.10-compact.json | 0 .../throw-0.5.0.sol-0.6.10-legacy.json | 0 .../throw-0.5.0.sol-0.6.11-compact.json | 0 .../throw-0.5.0.sol-0.6.11-legacy.json | 0 .../throw-0.5.0.sol-0.6.12-compact.json | 0 .../throw-0.5.0.sol-0.6.12-legacy.json | 0 .../throw-0.5.0.sol-0.6.2-compact.json | 0 .../throw-0.5.0.sol-0.6.2-legacy.json | 0 .../throw-0.5.0.sol-0.6.3-compact.json | 0 .../throw-0.5.0.sol-0.6.3-legacy.json | 0 .../throw-0.5.0.sol-0.6.4-compact.json | 0 .../throw-0.5.0.sol-0.6.4-legacy.json | 0 .../throw-0.5.0.sol-0.6.5-compact.json | 0 .../throw-0.5.0.sol-0.6.5-legacy.json | 0 .../throw-0.5.0.sol-0.6.6-compact.json | 0 .../throw-0.5.0.sol-0.6.6-legacy.json | 0 .../throw-0.5.0.sol-0.6.7-compact.json | 0 .../throw-0.5.0.sol-0.6.7-legacy.json | 0 .../throw-0.5.0.sol-0.6.8-compact.json | 0 .../throw-0.5.0.sol-0.6.8-legacy.json | 0 .../throw-0.5.0.sol-0.6.9-compact.json | 0 .../throw-0.5.0.sol-0.6.9-legacy.json | 0 .../throw-0.5.0.sol-0.7.0-compact.json | 0 .../throw-0.5.0.sol-0.7.0-legacy.json | 0 .../throw-0.5.0.sol-0.7.1-compact.json | 0 .../throw-0.5.0.sol-0.7.1-legacy.json | 0 .../throw-0.5.0.sol-0.7.2-compact.json | 0 .../throw-0.5.0.sol-0.7.2-legacy.json | 0 .../throw-0.5.0.sol-0.7.3-compact.json | 0 .../throw-0.5.0.sol-0.7.3-legacy.json | 0 .../throw-0.5.0.sol-0.7.4-compact.json | 0 .../throw-0.5.0.sol-0.7.4-legacy.json | 0 .../throw-0.5.0.sol-0.7.5-compact.json | 0 .../throw-0.5.0.sol-0.7.5-legacy.json | 0 .../throw-0.5.0.sol-0.7.6-compact.json | 0 .../throw-0.5.0.sol-0.7.6-legacy.json | 0 .../throw-0.5.0.sol-0.8.0-compact.json | 0 .../throw-0.5.0.sol-0.8.1-compact.json | 0 .../throw-0.5.0.sol-0.8.10-compact.json | 0 .../throw-0.5.0.sol-0.8.11-compact.json | 0 .../throw-0.5.0.sol-0.8.12-compact.json | 0 .../throw-0.5.0.sol-0.8.13-compact.json | 0 .../throw-0.5.0.sol-0.8.14-compact.json | 0 .../throw-0.5.0.sol-0.8.15-compact.json | 0 .../throw-0.5.0.sol-0.8.2-compact.json | 0 .../throw-0.5.0.sol-0.8.3-compact.json | 0 .../throw-0.5.0.sol-0.8.4-compact.json | 0 .../throw-0.5.0.sol-0.8.5-compact.json | 0 .../throw-0.5.0.sol-0.8.6-compact.json | 0 .../throw-0.5.0.sol-0.8.7-compact.json | 0 .../throw-0.5.0.sol-0.8.8-compact.json | 0 .../throw-0.5.0.sol-0.8.9-compact.json | 0 .../top-level-0.4.0.sol-0.4.0-compact.json | 0 .../top-level-0.4.0.sol-0.4.0-legacy.json | 0 .../top-level-0.4.0.sol-0.4.1-compact.json | 0 .../top-level-0.4.0.sol-0.4.1-legacy.json | 0 .../top-level-0.4.0.sol-0.4.10-compact.json | 0 .../top-level-0.4.0.sol-0.4.10-legacy.json | 0 .../top-level-0.4.0.sol-0.4.11-compact.json | 0 .../top-level-0.4.0.sol-0.4.11-legacy.json | 0 .../top-level-0.4.0.sol-0.4.12-compact.json | 0 .../top-level-0.4.0.sol-0.4.12-legacy.json | 0 .../top-level-0.4.0.sol-0.4.13-compact.json | 0 .../top-level-0.4.0.sol-0.4.13-legacy.json | 0 .../top-level-0.4.0.sol-0.4.14-compact.json | 0 .../top-level-0.4.0.sol-0.4.14-legacy.json | 0 .../top-level-0.4.0.sol-0.4.15-compact.json | 0 .../top-level-0.4.0.sol-0.4.15-legacy.json | 0 .../top-level-0.4.0.sol-0.4.16-compact.json | 0 .../top-level-0.4.0.sol-0.4.16-legacy.json | 0 .../top-level-0.4.0.sol-0.4.17-compact.json | 0 .../top-level-0.4.0.sol-0.4.17-legacy.json | 0 .../top-level-0.4.0.sol-0.4.18-compact.json | 0 .../top-level-0.4.0.sol-0.4.18-legacy.json | 0 .../top-level-0.4.0.sol-0.4.19-compact.json | 0 .../top-level-0.4.0.sol-0.4.19-legacy.json | 0 .../top-level-0.4.0.sol-0.4.2-compact.json | 0 .../top-level-0.4.0.sol-0.4.2-legacy.json | 0 .../top-level-0.4.0.sol-0.4.20-compact.json | 0 .../top-level-0.4.0.sol-0.4.20-legacy.json | 0 .../top-level-0.4.0.sol-0.4.21-compact.json | 0 .../top-level-0.4.0.sol-0.4.21-legacy.json | 0 .../top-level-0.4.0.sol-0.4.22-compact.json | 0 .../top-level-0.4.0.sol-0.4.22-legacy.json | 0 .../top-level-0.4.0.sol-0.4.23-compact.json | 0 .../top-level-0.4.0.sol-0.4.23-legacy.json | 0 .../top-level-0.4.0.sol-0.4.24-compact.json | 0 .../top-level-0.4.0.sol-0.4.24-legacy.json | 0 .../top-level-0.4.0.sol-0.4.25-compact.json | 0 .../top-level-0.4.0.sol-0.4.25-legacy.json | 0 .../top-level-0.4.0.sol-0.4.26-compact.json | 0 .../top-level-0.4.0.sol-0.4.26-legacy.json | 0 .../top-level-0.4.0.sol-0.4.3-compact.json | 0 .../top-level-0.4.0.sol-0.4.3-legacy.json | 0 .../top-level-0.4.0.sol-0.4.4-compact.json | 0 .../top-level-0.4.0.sol-0.4.4-legacy.json | 0 .../top-level-0.4.0.sol-0.4.5-compact.json | 0 .../top-level-0.4.0.sol-0.4.5-legacy.json | 0 .../top-level-0.4.0.sol-0.4.6-compact.json | 0 .../top-level-0.4.0.sol-0.4.6-legacy.json | 0 .../top-level-0.4.0.sol-0.4.7-compact.json | 0 .../top-level-0.4.0.sol-0.4.7-legacy.json | 0 .../top-level-0.4.0.sol-0.4.8-compact.json | 0 .../top-level-0.4.0.sol-0.4.8-legacy.json | 0 .../top-level-0.4.0.sol-0.4.9-compact.json | 0 .../top-level-0.4.0.sol-0.4.9-legacy.json | 0 .../top-level-0.4.0.sol-0.5.0-compact.json | 0 .../top-level-0.4.0.sol-0.5.0-legacy.json | 0 .../top-level-0.4.0.sol-0.5.1-compact.json | 0 .../top-level-0.4.0.sol-0.5.1-legacy.json | 0 .../top-level-0.4.0.sol-0.5.10-compact.json | 0 .../top-level-0.4.0.sol-0.5.10-legacy.json | 0 .../top-level-0.4.0.sol-0.5.11-compact.json | 0 .../top-level-0.4.0.sol-0.5.11-legacy.json | 0 .../top-level-0.4.0.sol-0.5.12-compact.json | 0 .../top-level-0.4.0.sol-0.5.12-legacy.json | 0 .../top-level-0.4.0.sol-0.5.13-compact.json | 0 .../top-level-0.4.0.sol-0.5.13-legacy.json | 0 .../top-level-0.4.0.sol-0.5.14-compact.json | 0 .../top-level-0.4.0.sol-0.5.14-legacy.json | 0 .../top-level-0.4.0.sol-0.5.15-compact.json | 0 .../top-level-0.4.0.sol-0.5.15-legacy.json | 0 .../top-level-0.4.0.sol-0.5.16-compact.json | 0 .../top-level-0.4.0.sol-0.5.16-legacy.json | 0 .../top-level-0.4.0.sol-0.5.17-compact.json | 0 .../top-level-0.4.0.sol-0.5.17-legacy.json | 0 .../top-level-0.4.0.sol-0.5.2-compact.json | 0 .../top-level-0.4.0.sol-0.5.2-legacy.json | 0 .../top-level-0.4.0.sol-0.5.3-compact.json | 0 .../top-level-0.4.0.sol-0.5.3-legacy.json | 0 .../top-level-0.4.0.sol-0.5.4-compact.json | 0 .../top-level-0.4.0.sol-0.5.4-legacy.json | 0 .../top-level-0.4.0.sol-0.5.5-compact.json | 0 .../top-level-0.4.0.sol-0.5.5-legacy.json | 0 .../top-level-0.4.0.sol-0.5.6-compact.json | 0 .../top-level-0.4.0.sol-0.5.6-legacy.json | 0 .../top-level-0.4.0.sol-0.5.7-compact.json | 0 .../top-level-0.4.0.sol-0.5.7-legacy.json | 0 .../top-level-0.4.0.sol-0.5.8-compact.json | 0 .../top-level-0.4.0.sol-0.5.8-legacy.json | 0 .../top-level-0.4.0.sol-0.5.9-compact.json | 0 .../top-level-0.4.0.sol-0.5.9-legacy.json | 0 .../top-level-0.4.0.sol-0.6.0-compact.json | 0 .../top-level-0.4.0.sol-0.6.0-legacy.json | 0 .../top-level-0.4.0.sol-0.6.1-compact.json | 0 .../top-level-0.4.0.sol-0.6.1-legacy.json | 0 .../top-level-0.4.0.sol-0.6.10-compact.json | 0 .../top-level-0.4.0.sol-0.6.10-legacy.json | 0 .../top-level-0.4.0.sol-0.6.11-compact.json | 0 .../top-level-0.4.0.sol-0.6.11-legacy.json | 0 .../top-level-0.4.0.sol-0.6.12-compact.json | 0 .../top-level-0.4.0.sol-0.6.12-legacy.json | 0 .../top-level-0.4.0.sol-0.6.2-compact.json | 0 .../top-level-0.4.0.sol-0.6.2-legacy.json | 0 .../top-level-0.4.0.sol-0.6.3-compact.json | 0 .../top-level-0.4.0.sol-0.6.3-legacy.json | 0 .../top-level-0.4.0.sol-0.6.4-compact.json | 0 .../top-level-0.4.0.sol-0.6.4-legacy.json | 0 .../top-level-0.4.0.sol-0.6.5-compact.json | 0 .../top-level-0.4.0.sol-0.6.5-legacy.json | 0 .../top-level-0.4.0.sol-0.6.6-compact.json | 0 .../top-level-0.4.0.sol-0.6.6-legacy.json | 0 .../top-level-0.4.0.sol-0.6.7-compact.json | 0 .../top-level-0.4.0.sol-0.6.7-legacy.json | 0 .../top-level-0.4.0.sol-0.6.8-compact.json | 0 .../top-level-0.4.0.sol-0.6.8-legacy.json | 0 .../top-level-0.4.0.sol-0.6.9-compact.json | 0 .../top-level-0.4.0.sol-0.6.9-legacy.json | 0 .../top-level-0.4.0.sol-0.7.0-compact.json | 0 .../top-level-0.4.0.sol-0.7.0-legacy.json | 0 .../top-level-0.7.1.sol-0.7.1-compact.json | 0 .../top-level-0.7.1.sol-0.7.1-legacy.json | 0 .../top-level-0.7.1.sol-0.7.2-compact.json | 0 .../top-level-0.7.1.sol-0.7.2-legacy.json | 0 .../top-level-0.7.1.sol-0.7.3-compact.json | 0 .../top-level-0.7.1.sol-0.7.3-legacy.json | 0 .../top-level-0.7.4.sol-0.7.4-compact.json | 0 .../top-level-0.7.4.sol-0.7.4-legacy.json | 0 .../top-level-0.7.4.sol-0.7.5-compact.json | 0 .../top-level-0.7.4.sol-0.7.5-legacy.json | 0 .../top-level-0.7.4.sol-0.7.6-compact.json | 0 .../top-level-0.7.4.sol-0.7.6-legacy.json | 0 .../top-level-0.7.4.sol-0.8.0-compact.json | 0 .../top-level-0.7.4.sol-0.8.1-compact.json | 0 .../top-level-0.7.4.sol-0.8.10-compact.json | 0 .../top-level-0.7.4.sol-0.8.11-compact.json | 0 .../top-level-0.7.4.sol-0.8.12-compact.json | 0 .../top-level-0.7.4.sol-0.8.13-compact.json | 0 .../top-level-0.7.4.sol-0.8.14-compact.json | 0 .../top-level-0.7.4.sol-0.8.15-compact.json | 0 .../top-level-0.7.4.sol-0.8.2-compact.json | 0 .../top-level-0.7.4.sol-0.8.3-compact.json | 0 .../top-level-0.7.4.sol-0.8.4-compact.json | 0 .../top-level-0.7.4.sol-0.8.5-compact.json | 0 .../top-level-0.7.4.sol-0.8.6-compact.json | 0 .../top-level-0.7.4.sol-0.8.7-compact.json | 0 .../top-level-0.7.4.sol-0.8.8-compact.json | 0 .../top-level-0.7.4.sol-0.8.9-compact.json | 0 ...-level-import-0.4.0.sol-0.4.0-compact.json | 0 ...p-level-import-0.4.0.sol-0.4.0-legacy.json | 0 ...-level-import-0.4.0.sol-0.4.1-compact.json | 0 ...p-level-import-0.4.0.sol-0.4.1-legacy.json | 0 ...level-import-0.4.0.sol-0.4.10-compact.json | 0 ...-level-import-0.4.0.sol-0.4.10-legacy.json | 0 ...level-import-0.4.0.sol-0.4.11-compact.json | 0 ...-level-import-0.4.0.sol-0.4.11-legacy.json | 0 ...level-import-0.4.0.sol-0.4.12-compact.json | 0 ...-level-import-0.4.0.sol-0.4.12-legacy.json | 0 ...level-import-0.4.0.sol-0.4.13-compact.json | 0 ...-level-import-0.4.0.sol-0.4.13-legacy.json | 0 ...level-import-0.4.0.sol-0.4.14-compact.json | 0 ...-level-import-0.4.0.sol-0.4.14-legacy.json | 0 ...level-import-0.4.0.sol-0.4.15-compact.json | 0 ...-level-import-0.4.0.sol-0.4.15-legacy.json | 0 ...level-import-0.4.0.sol-0.4.16-compact.json | 0 ...-level-import-0.4.0.sol-0.4.16-legacy.json | 0 ...level-import-0.4.0.sol-0.4.17-compact.json | 0 ...-level-import-0.4.0.sol-0.4.17-legacy.json | 0 ...level-import-0.4.0.sol-0.4.18-compact.json | 0 ...-level-import-0.4.0.sol-0.4.18-legacy.json | 0 ...level-import-0.4.0.sol-0.4.19-compact.json | 0 ...-level-import-0.4.0.sol-0.4.19-legacy.json | 0 ...-level-import-0.4.0.sol-0.4.2-compact.json | 0 ...p-level-import-0.4.0.sol-0.4.2-legacy.json | 0 ...level-import-0.4.0.sol-0.4.20-compact.json | 0 ...-level-import-0.4.0.sol-0.4.20-legacy.json | 0 ...level-import-0.4.0.sol-0.4.21-compact.json | 0 ...-level-import-0.4.0.sol-0.4.21-legacy.json | 0 ...level-import-0.4.0.sol-0.4.22-compact.json | 0 ...-level-import-0.4.0.sol-0.4.22-legacy.json | 0 ...level-import-0.4.0.sol-0.4.23-compact.json | 0 ...-level-import-0.4.0.sol-0.4.23-legacy.json | 0 ...level-import-0.4.0.sol-0.4.24-compact.json | 0 ...-level-import-0.4.0.sol-0.4.24-legacy.json | 0 ...level-import-0.4.0.sol-0.4.25-compact.json | 0 ...-level-import-0.4.0.sol-0.4.25-legacy.json | 0 ...level-import-0.4.0.sol-0.4.26-compact.json | 0 ...-level-import-0.4.0.sol-0.4.26-legacy.json | 0 ...-level-import-0.4.0.sol-0.4.3-compact.json | 0 ...p-level-import-0.4.0.sol-0.4.3-legacy.json | 0 ...-level-import-0.4.0.sol-0.4.4-compact.json | 0 ...p-level-import-0.4.0.sol-0.4.4-legacy.json | 0 ...-level-import-0.4.0.sol-0.4.5-compact.json | 0 ...p-level-import-0.4.0.sol-0.4.5-legacy.json | 0 ...-level-import-0.4.0.sol-0.4.6-compact.json | 0 ...p-level-import-0.4.0.sol-0.4.6-legacy.json | 0 ...-level-import-0.4.0.sol-0.4.7-compact.json | 0 ...p-level-import-0.4.0.sol-0.4.7-legacy.json | 0 ...-level-import-0.4.0.sol-0.4.8-compact.json | 0 ...p-level-import-0.4.0.sol-0.4.8-legacy.json | 0 ...-level-import-0.4.0.sol-0.4.9-compact.json | 0 ...p-level-import-0.4.0.sol-0.4.9-legacy.json | 0 ...-level-import-0.4.0.sol-0.5.0-compact.json | 0 ...p-level-import-0.4.0.sol-0.5.0-legacy.json | 0 ...-level-import-0.4.0.sol-0.5.1-compact.json | 0 ...p-level-import-0.4.0.sol-0.5.1-legacy.json | 0 ...level-import-0.4.0.sol-0.5.10-compact.json | 0 ...-level-import-0.4.0.sol-0.5.10-legacy.json | 0 ...level-import-0.4.0.sol-0.5.11-compact.json | 0 ...-level-import-0.4.0.sol-0.5.11-legacy.json | 0 ...level-import-0.4.0.sol-0.5.12-compact.json | 0 ...-level-import-0.4.0.sol-0.5.12-legacy.json | 0 ...level-import-0.4.0.sol-0.5.13-compact.json | 0 ...-level-import-0.4.0.sol-0.5.13-legacy.json | 0 ...level-import-0.4.0.sol-0.5.14-compact.json | 0 ...-level-import-0.4.0.sol-0.5.14-legacy.json | 0 ...level-import-0.4.0.sol-0.5.15-compact.json | 0 ...-level-import-0.4.0.sol-0.5.15-legacy.json | 0 ...level-import-0.4.0.sol-0.5.16-compact.json | 0 ...-level-import-0.4.0.sol-0.5.16-legacy.json | 0 ...level-import-0.4.0.sol-0.5.17-compact.json | 0 ...-level-import-0.4.0.sol-0.5.17-legacy.json | 0 ...-level-import-0.4.0.sol-0.5.2-compact.json | 0 ...p-level-import-0.4.0.sol-0.5.2-legacy.json | 0 ...-level-import-0.4.0.sol-0.5.3-compact.json | 0 ...p-level-import-0.4.0.sol-0.5.3-legacy.json | 0 ...-level-import-0.4.0.sol-0.5.4-compact.json | 0 ...p-level-import-0.4.0.sol-0.5.4-legacy.json | 0 ...-level-import-0.4.0.sol-0.5.5-compact.json | 0 ...p-level-import-0.4.0.sol-0.5.5-legacy.json | 0 ...-level-import-0.4.0.sol-0.5.6-compact.json | 0 ...p-level-import-0.4.0.sol-0.5.6-legacy.json | 0 ...-level-import-0.4.0.sol-0.5.7-compact.json | 0 ...p-level-import-0.4.0.sol-0.5.7-legacy.json | 0 ...-level-import-0.4.0.sol-0.5.8-compact.json | 0 ...p-level-import-0.4.0.sol-0.5.8-legacy.json | 0 ...-level-import-0.4.0.sol-0.5.9-compact.json | 0 ...p-level-import-0.4.0.sol-0.5.9-legacy.json | 0 ...-level-import-0.4.0.sol-0.6.0-compact.json | 0 ...p-level-import-0.4.0.sol-0.6.0-legacy.json | 0 ...-level-import-0.4.0.sol-0.6.1-compact.json | 0 ...p-level-import-0.4.0.sol-0.6.1-legacy.json | 0 ...level-import-0.4.0.sol-0.6.10-compact.json | 0 ...-level-import-0.4.0.sol-0.6.10-legacy.json | 0 ...level-import-0.4.0.sol-0.6.11-compact.json | 0 ...-level-import-0.4.0.sol-0.6.11-legacy.json | 0 ...level-import-0.4.0.sol-0.6.12-compact.json | 0 ...-level-import-0.4.0.sol-0.6.12-legacy.json | 0 ...-level-import-0.4.0.sol-0.6.2-compact.json | 0 ...p-level-import-0.4.0.sol-0.6.2-legacy.json | 0 ...-level-import-0.4.0.sol-0.6.3-compact.json | 0 ...p-level-import-0.4.0.sol-0.6.3-legacy.json | 0 ...-level-import-0.4.0.sol-0.6.4-compact.json | 0 ...p-level-import-0.4.0.sol-0.6.4-legacy.json | 0 ...-level-import-0.4.0.sol-0.6.5-compact.json | 0 ...p-level-import-0.4.0.sol-0.6.5-legacy.json | 0 ...-level-import-0.4.0.sol-0.6.6-compact.json | 0 ...p-level-import-0.4.0.sol-0.6.6-legacy.json | 0 ...-level-import-0.4.0.sol-0.6.7-compact.json | 0 ...p-level-import-0.4.0.sol-0.6.7-legacy.json | 0 ...-level-import-0.4.0.sol-0.6.8-compact.json | 0 ...p-level-import-0.4.0.sol-0.6.8-legacy.json | 0 ...-level-import-0.4.0.sol-0.6.9-compact.json | 0 ...p-level-import-0.4.0.sol-0.6.9-legacy.json | 0 ...-level-import-0.4.0.sol-0.7.0-compact.json | 0 ...p-level-import-0.4.0.sol-0.7.0-legacy.json | 0 ...-level-import-0.7.1.sol-0.7.1-compact.json | 0 ...p-level-import-0.7.1.sol-0.7.1-legacy.json | 0 ...-level-import-0.7.1.sol-0.7.2-compact.json | 0 ...p-level-import-0.7.1.sol-0.7.2-legacy.json | 0 ...-level-import-0.7.1.sol-0.7.3-compact.json | 0 ...p-level-import-0.7.1.sol-0.7.3-legacy.json | 0 ...-level-import-0.7.1.sol-0.7.4-compact.json | 0 ...p-level-import-0.7.1.sol-0.7.4-legacy.json | 0 ...-level-import-0.7.1.sol-0.7.5-compact.json | 0 ...p-level-import-0.7.1.sol-0.7.5-legacy.json | 0 ...-level-import-0.7.1.sol-0.7.6-compact.json | 0 ...p-level-import-0.7.1.sol-0.7.6-legacy.json | 0 ...-level-import-0.7.1.sol-0.8.0-compact.json | 0 ...-level-import-0.7.1.sol-0.8.1-compact.json | 0 ...level-import-0.7.1.sol-0.8.10-compact.json | 0 ...level-import-0.7.1.sol-0.8.11-compact.json | 0 ...level-import-0.7.1.sol-0.8.12-compact.json | 0 ...level-import-0.7.1.sol-0.8.13-compact.json | 0 ...level-import-0.7.1.sol-0.8.14-compact.json | 0 ...level-import-0.7.1.sol-0.8.15-compact.json | 0 ...-level-import-0.7.1.sol-0.8.2-compact.json | 0 ...-level-import-0.7.1.sol-0.8.3-compact.json | 0 ...-level-import-0.7.1.sol-0.8.4-compact.json | 0 ...-level-import-0.7.1.sol-0.8.5-compact.json | 0 ...-level-import-0.7.1.sol-0.8.6-compact.json | 0 ...-level-import-0.7.1.sol-0.8.7-compact.json | 0 ...-level-import-0.7.1.sol-0.8.8-compact.json | 0 ...-level-import-0.7.1.sol-0.8.9-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.0-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.4.0-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.4.1-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.4.1-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.10-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.10-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.11-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.11-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.12-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.12-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.13-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.13-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.14-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.14-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.15-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.15-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.16-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.16-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.17-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.17-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.18-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.18-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.19-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.19-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.4.2-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.4.2-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.20-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.20-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.21-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.21-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.22-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.22-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.23-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.23-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.24-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.24-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.25-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.25-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.4.26-compact.json | 0 ...el-import-bis-0.4.0.sol-0.4.26-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.4.3-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.4.3-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.4.4-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.4.4-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.4.5-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.4.5-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.4.6-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.4.6-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.4.7-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.4.7-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.4.8-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.4.8-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.4.9-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.4.9-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.5.0-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.5.0-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.5.1-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.5.1-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.5.10-compact.json | 0 ...el-import-bis-0.4.0.sol-0.5.10-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.5.11-compact.json | 0 ...el-import-bis-0.4.0.sol-0.5.11-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.5.12-compact.json | 0 ...el-import-bis-0.4.0.sol-0.5.12-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.5.13-compact.json | 0 ...el-import-bis-0.4.0.sol-0.5.13-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.5.14-compact.json | 0 ...el-import-bis-0.4.0.sol-0.5.14-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.5.15-compact.json | 0 ...el-import-bis-0.4.0.sol-0.5.15-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.5.16-compact.json | 0 ...el-import-bis-0.4.0.sol-0.5.16-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.5.17-compact.json | 0 ...el-import-bis-0.4.0.sol-0.5.17-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.5.2-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.5.2-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.5.3-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.5.3-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.5.4-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.5.4-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.5.5-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.5.5-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.5.6-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.5.6-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.5.7-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.5.7-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.5.8-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.5.8-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.5.9-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.5.9-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.6.0-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.6.0-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.6.1-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.6.1-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.6.10-compact.json | 0 ...el-import-bis-0.4.0.sol-0.6.10-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.6.11-compact.json | 0 ...el-import-bis-0.4.0.sol-0.6.11-legacy.json | 0 ...l-import-bis-0.4.0.sol-0.6.12-compact.json | 0 ...el-import-bis-0.4.0.sol-0.6.12-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.6.2-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.6.2-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.6.3-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.6.3-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.6.4-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.6.4-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.6.5-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.6.5-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.6.6-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.6.6-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.6.7-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.6.7-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.6.8-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.6.8-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.6.9-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.6.9-legacy.json | 0 ...el-import-bis-0.4.0.sol-0.7.0-compact.json | 0 ...vel-import-bis-0.4.0.sol-0.7.0-legacy.json | 0 ...el-import-bis-0.7.1.sol-0.7.1-compact.json | 0 ...vel-import-bis-0.7.1.sol-0.7.1-legacy.json | 0 ...el-import-bis-0.7.1.sol-0.7.2-compact.json | 0 ...vel-import-bis-0.7.1.sol-0.7.2-legacy.json | 0 ...el-import-bis-0.7.1.sol-0.7.3-compact.json | 0 ...vel-import-bis-0.7.1.sol-0.7.3-legacy.json | 0 ...el-import-bis-0.7.1.sol-0.7.4-compact.json | 0 ...vel-import-bis-0.7.1.sol-0.7.4-legacy.json | 0 ...el-import-bis-0.7.1.sol-0.7.5-compact.json | 0 ...vel-import-bis-0.7.1.sol-0.7.5-legacy.json | 0 ...el-import-bis-0.7.1.sol-0.7.6-compact.json | 0 ...vel-import-bis-0.7.1.sol-0.7.6-legacy.json | 0 ...el-import-bis-0.7.1.sol-0.8.0-compact.json | 0 ...el-import-bis-0.7.1.sol-0.8.1-compact.json | 0 ...l-import-bis-0.7.1.sol-0.8.10-compact.json | 0 ...l-import-bis-0.7.1.sol-0.8.11-compact.json | 0 ...l-import-bis-0.7.1.sol-0.8.12-compact.json | 0 ...l-import-bis-0.7.1.sol-0.8.13-compact.json | 0 ...l-import-bis-0.7.1.sol-0.8.14-compact.json | 0 ...l-import-bis-0.7.1.sol-0.8.15-compact.json | 0 ...el-import-bis-0.7.1.sol-0.8.2-compact.json | 0 ...el-import-bis-0.7.1.sol-0.8.3-compact.json | 0 ...el-import-bis-0.7.1.sol-0.8.4-compact.json | 0 ...el-import-bis-0.7.1.sol-0.8.5-compact.json | 0 ...el-import-bis-0.7.1.sol-0.8.6-compact.json | 0 ...el-import-bis-0.7.1.sol-0.8.7-compact.json | 0 ...el-import-bis-0.7.1.sol-0.8.8-compact.json | 0 ...el-import-bis-0.7.1.sol-0.8.9-compact.json | 0 ...nested-import-0.4.0.sol-0.4.0-compact.json | 0 ...-nested-import-0.4.0.sol-0.4.0-legacy.json | 0 ...nested-import-0.4.0.sol-0.4.1-compact.json | 0 ...-nested-import-0.4.0.sol-0.4.1-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.10-compact.json | 0 ...nested-import-0.4.0.sol-0.4.10-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.11-compact.json | 0 ...nested-import-0.4.0.sol-0.4.11-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.12-compact.json | 0 ...nested-import-0.4.0.sol-0.4.12-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.13-compact.json | 0 ...nested-import-0.4.0.sol-0.4.13-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.14-compact.json | 0 ...nested-import-0.4.0.sol-0.4.14-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.15-compact.json | 0 ...nested-import-0.4.0.sol-0.4.15-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.16-compact.json | 0 ...nested-import-0.4.0.sol-0.4.16-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.17-compact.json | 0 ...nested-import-0.4.0.sol-0.4.17-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.18-compact.json | 0 ...nested-import-0.4.0.sol-0.4.18-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.19-compact.json | 0 ...nested-import-0.4.0.sol-0.4.19-legacy.json | 0 ...nested-import-0.4.0.sol-0.4.2-compact.json | 0 ...-nested-import-0.4.0.sol-0.4.2-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.20-compact.json | 0 ...nested-import-0.4.0.sol-0.4.20-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.21-compact.json | 0 ...nested-import-0.4.0.sol-0.4.21-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.22-compact.json | 0 ...nested-import-0.4.0.sol-0.4.22-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.23-compact.json | 0 ...nested-import-0.4.0.sol-0.4.23-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.24-compact.json | 0 ...nested-import-0.4.0.sol-0.4.24-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.25-compact.json | 0 ...nested-import-0.4.0.sol-0.4.25-legacy.json | 0 ...ested-import-0.4.0.sol-0.4.26-compact.json | 0 ...nested-import-0.4.0.sol-0.4.26-legacy.json | 0 ...nested-import-0.4.0.sol-0.4.3-compact.json | 0 ...-nested-import-0.4.0.sol-0.4.3-legacy.json | 0 ...nested-import-0.4.0.sol-0.4.4-compact.json | 0 ...-nested-import-0.4.0.sol-0.4.4-legacy.json | 0 ...nested-import-0.4.0.sol-0.4.5-compact.json | 0 ...-nested-import-0.4.0.sol-0.4.5-legacy.json | 0 ...nested-import-0.4.0.sol-0.4.6-compact.json | 0 ...-nested-import-0.4.0.sol-0.4.6-legacy.json | 0 ...nested-import-0.4.0.sol-0.4.7-compact.json | 0 ...-nested-import-0.4.0.sol-0.4.7-legacy.json | 0 ...nested-import-0.4.0.sol-0.4.8-compact.json | 0 ...-nested-import-0.4.0.sol-0.4.8-legacy.json | 0 ...nested-import-0.4.0.sol-0.4.9-compact.json | 0 ...-nested-import-0.4.0.sol-0.4.9-legacy.json | 0 ...nested-import-0.4.0.sol-0.5.0-compact.json | 0 ...-nested-import-0.4.0.sol-0.5.0-legacy.json | 0 ...nested-import-0.4.0.sol-0.5.1-compact.json | 0 ...-nested-import-0.4.0.sol-0.5.1-legacy.json | 0 ...ested-import-0.4.0.sol-0.5.10-compact.json | 0 ...nested-import-0.4.0.sol-0.5.10-legacy.json | 0 ...ested-import-0.4.0.sol-0.5.11-compact.json | 0 ...nested-import-0.4.0.sol-0.5.11-legacy.json | 0 ...ested-import-0.4.0.sol-0.5.12-compact.json | 0 ...nested-import-0.4.0.sol-0.5.12-legacy.json | 0 ...ested-import-0.4.0.sol-0.5.13-compact.json | 0 ...nested-import-0.4.0.sol-0.5.13-legacy.json | 0 ...ested-import-0.4.0.sol-0.5.14-compact.json | 0 ...nested-import-0.4.0.sol-0.5.14-legacy.json | 0 ...ested-import-0.4.0.sol-0.5.15-compact.json | 0 ...nested-import-0.4.0.sol-0.5.15-legacy.json | 0 ...ested-import-0.4.0.sol-0.5.16-compact.json | 0 ...nested-import-0.4.0.sol-0.5.16-legacy.json | 0 ...ested-import-0.4.0.sol-0.5.17-compact.json | 0 ...nested-import-0.4.0.sol-0.5.17-legacy.json | 0 ...nested-import-0.4.0.sol-0.5.2-compact.json | 0 ...-nested-import-0.4.0.sol-0.5.2-legacy.json | 0 ...nested-import-0.4.0.sol-0.5.3-compact.json | 0 ...-nested-import-0.4.0.sol-0.5.3-legacy.json | 0 ...nested-import-0.4.0.sol-0.5.4-compact.json | 0 ...-nested-import-0.4.0.sol-0.5.4-legacy.json | 0 ...nested-import-0.4.0.sol-0.5.5-compact.json | 0 ...-nested-import-0.4.0.sol-0.5.5-legacy.json | 0 ...nested-import-0.4.0.sol-0.5.6-compact.json | 0 ...-nested-import-0.4.0.sol-0.5.6-legacy.json | 0 ...nested-import-0.4.0.sol-0.5.7-compact.json | 0 ...-nested-import-0.4.0.sol-0.5.7-legacy.json | 0 ...nested-import-0.4.0.sol-0.5.8-compact.json | 0 ...-nested-import-0.4.0.sol-0.5.8-legacy.json | 0 ...nested-import-0.4.0.sol-0.5.9-compact.json | 0 ...-nested-import-0.4.0.sol-0.5.9-legacy.json | 0 ...nested-import-0.4.0.sol-0.6.0-compact.json | 0 ...-nested-import-0.4.0.sol-0.6.0-legacy.json | 0 ...nested-import-0.4.0.sol-0.6.1-compact.json | 0 ...-nested-import-0.4.0.sol-0.6.1-legacy.json | 0 ...ested-import-0.4.0.sol-0.6.10-compact.json | 0 ...nested-import-0.4.0.sol-0.6.10-legacy.json | 0 ...ested-import-0.4.0.sol-0.6.11-compact.json | 0 ...nested-import-0.4.0.sol-0.6.11-legacy.json | 0 ...ested-import-0.4.0.sol-0.6.12-compact.json | 0 ...nested-import-0.4.0.sol-0.6.12-legacy.json | 0 ...nested-import-0.4.0.sol-0.6.2-compact.json | 0 ...-nested-import-0.4.0.sol-0.6.2-legacy.json | 0 ...nested-import-0.4.0.sol-0.6.3-compact.json | 0 ...-nested-import-0.4.0.sol-0.6.3-legacy.json | 0 ...nested-import-0.4.0.sol-0.6.4-compact.json | 0 ...-nested-import-0.4.0.sol-0.6.4-legacy.json | 0 ...nested-import-0.4.0.sol-0.6.5-compact.json | 0 ...-nested-import-0.4.0.sol-0.6.5-legacy.json | 0 ...nested-import-0.4.0.sol-0.6.6-compact.json | 0 ...-nested-import-0.4.0.sol-0.6.6-legacy.json | 0 ...nested-import-0.4.0.sol-0.6.7-compact.json | 0 ...-nested-import-0.4.0.sol-0.6.7-legacy.json | 0 ...nested-import-0.4.0.sol-0.6.8-compact.json | 0 ...-nested-import-0.4.0.sol-0.6.8-legacy.json | 0 ...nested-import-0.4.0.sol-0.6.9-compact.json | 0 ...-nested-import-0.4.0.sol-0.6.9-legacy.json | 0 ...nested-import-0.4.0.sol-0.7.0-compact.json | 0 ...-nested-import-0.4.0.sol-0.7.0-legacy.json | 0 ...nested-import-0.7.1.sol-0.7.1-compact.json | 0 ...-nested-import-0.7.1.sol-0.7.1-legacy.json | 0 ...nested-import-0.7.1.sol-0.7.2-compact.json | 0 ...-nested-import-0.7.1.sol-0.7.2-legacy.json | 0 ...nested-import-0.7.1.sol-0.7.3-compact.json | 0 ...-nested-import-0.7.1.sol-0.7.3-legacy.json | 0 ...nested-import-0.7.1.sol-0.7.4-compact.json | 0 ...-nested-import-0.7.1.sol-0.7.4-legacy.json | 0 ...nested-import-0.7.1.sol-0.7.5-compact.json | 0 ...-nested-import-0.7.1.sol-0.7.5-legacy.json | 0 ...nested-import-0.7.1.sol-0.7.6-compact.json | 0 ...-nested-import-0.7.1.sol-0.7.6-legacy.json | 0 ...nested-import-0.7.1.sol-0.8.0-compact.json | 0 ...nested-import-0.7.1.sol-0.8.1-compact.json | 0 ...ested-import-0.7.1.sol-0.8.10-compact.json | 0 ...ested-import-0.7.1.sol-0.8.11-compact.json | 0 ...ested-import-0.7.1.sol-0.8.12-compact.json | 0 ...ested-import-0.7.1.sol-0.8.13-compact.json | 0 ...ested-import-0.7.1.sol-0.8.14-compact.json | 0 ...ested-import-0.7.1.sol-0.8.15-compact.json | 0 ...nested-import-0.7.1.sol-0.8.2-compact.json | 0 ...nested-import-0.7.1.sol-0.8.3-compact.json | 0 ...nested-import-0.7.1.sol-0.8.4-compact.json | 0 ...nested-import-0.7.1.sol-0.8.5-compact.json | 0 ...nested-import-0.7.1.sol-0.8.6-compact.json | 0 ...nested-import-0.7.1.sol-0.8.7-compact.json | 0 ...nested-import-0.7.1.sol-0.8.8-compact.json | 0 ...nested-import-0.7.1.sol-0.8.9-compact.json | 0 ...-level-struct-0.8.0.sol-0.8.0-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.0-compact.json | 0 ...level_variable-0.4.0.sol-0.4.0-legacy.json | 0 ...evel_variable-0.4.0.sol-0.4.1-compact.json | 0 ...level_variable-0.4.0.sol-0.4.1-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.10-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.10-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.11-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.11-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.12-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.12-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.13-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.13-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.14-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.14-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.15-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.15-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.16-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.16-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.17-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.17-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.18-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.18-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.19-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.19-legacy.json | 0 ...evel_variable-0.4.0.sol-0.4.2-compact.json | 0 ...level_variable-0.4.0.sol-0.4.2-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.20-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.20-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.21-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.21-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.22-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.22-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.23-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.23-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.24-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.24-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.25-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.25-legacy.json | 0 ...vel_variable-0.4.0.sol-0.4.26-compact.json | 0 ...evel_variable-0.4.0.sol-0.4.26-legacy.json | 0 ...evel_variable-0.4.0.sol-0.4.3-compact.json | 0 ...level_variable-0.4.0.sol-0.4.3-legacy.json | 0 ...evel_variable-0.4.0.sol-0.4.4-compact.json | 0 ...level_variable-0.4.0.sol-0.4.4-legacy.json | 0 ...evel_variable-0.4.0.sol-0.4.5-compact.json | 0 ...level_variable-0.4.0.sol-0.4.5-legacy.json | 0 ...evel_variable-0.4.0.sol-0.4.6-compact.json | 0 ...level_variable-0.4.0.sol-0.4.6-legacy.json | 0 ...evel_variable-0.4.0.sol-0.4.7-compact.json | 0 ...level_variable-0.4.0.sol-0.4.7-legacy.json | 0 ...evel_variable-0.4.0.sol-0.4.8-compact.json | 0 ...level_variable-0.4.0.sol-0.4.8-legacy.json | 0 ...evel_variable-0.4.0.sol-0.4.9-compact.json | 0 ...level_variable-0.4.0.sol-0.4.9-legacy.json | 0 ...evel_variable-0.4.0.sol-0.5.0-compact.json | 0 ...level_variable-0.4.0.sol-0.5.0-legacy.json | 0 ...evel_variable-0.4.0.sol-0.5.1-compact.json | 0 ...level_variable-0.4.0.sol-0.5.1-legacy.json | 0 ...vel_variable-0.4.0.sol-0.5.10-compact.json | 0 ...evel_variable-0.4.0.sol-0.5.10-legacy.json | 0 ...vel_variable-0.4.0.sol-0.5.11-compact.json | 0 ...evel_variable-0.4.0.sol-0.5.11-legacy.json | 0 ...vel_variable-0.4.0.sol-0.5.12-compact.json | 0 ...evel_variable-0.4.0.sol-0.5.12-legacy.json | 0 ...vel_variable-0.4.0.sol-0.5.13-compact.json | 0 ...evel_variable-0.4.0.sol-0.5.13-legacy.json | 0 ...vel_variable-0.4.0.sol-0.5.14-compact.json | 0 ...evel_variable-0.4.0.sol-0.5.14-legacy.json | 0 ...vel_variable-0.4.0.sol-0.5.15-compact.json | 0 ...evel_variable-0.4.0.sol-0.5.15-legacy.json | 0 ...vel_variable-0.4.0.sol-0.5.16-compact.json | 0 ...evel_variable-0.4.0.sol-0.5.16-legacy.json | 0 ...vel_variable-0.4.0.sol-0.5.17-compact.json | 0 ...evel_variable-0.4.0.sol-0.5.17-legacy.json | 0 ...evel_variable-0.4.0.sol-0.5.2-compact.json | 0 ...level_variable-0.4.0.sol-0.5.2-legacy.json | 0 ...evel_variable-0.4.0.sol-0.5.3-compact.json | 0 ...level_variable-0.4.0.sol-0.5.3-legacy.json | 0 ...evel_variable-0.4.0.sol-0.5.4-compact.json | 0 ...level_variable-0.4.0.sol-0.5.4-legacy.json | 0 ...evel_variable-0.4.0.sol-0.5.5-compact.json | 0 ...level_variable-0.4.0.sol-0.5.5-legacy.json | 0 ...evel_variable-0.4.0.sol-0.5.6-compact.json | 0 ...level_variable-0.4.0.sol-0.5.6-legacy.json | 0 ...evel_variable-0.4.0.sol-0.5.7-compact.json | 0 ...level_variable-0.4.0.sol-0.5.7-legacy.json | 0 ...evel_variable-0.4.0.sol-0.5.8-compact.json | 0 ...level_variable-0.4.0.sol-0.5.8-legacy.json | 0 ...evel_variable-0.4.0.sol-0.5.9-compact.json | 0 ...level_variable-0.4.0.sol-0.5.9-legacy.json | 0 ...evel_variable-0.4.0.sol-0.6.0-compact.json | 0 ...level_variable-0.4.0.sol-0.6.0-legacy.json | 0 ...evel_variable-0.4.0.sol-0.6.1-compact.json | 0 ...level_variable-0.4.0.sol-0.6.1-legacy.json | 0 ...vel_variable-0.4.0.sol-0.6.10-compact.json | 0 ...evel_variable-0.4.0.sol-0.6.10-legacy.json | 0 ...vel_variable-0.4.0.sol-0.6.11-compact.json | 0 ...evel_variable-0.4.0.sol-0.6.11-legacy.json | 0 ...vel_variable-0.4.0.sol-0.6.12-compact.json | 0 ...evel_variable-0.4.0.sol-0.6.12-legacy.json | 0 ...evel_variable-0.4.0.sol-0.6.2-compact.json | 0 ...level_variable-0.4.0.sol-0.6.2-legacy.json | 0 ...evel_variable-0.4.0.sol-0.6.3-compact.json | 0 ...level_variable-0.4.0.sol-0.6.3-legacy.json | 0 ...evel_variable-0.4.0.sol-0.6.4-compact.json | 0 ...level_variable-0.4.0.sol-0.6.4-legacy.json | 0 ...evel_variable-0.4.0.sol-0.6.5-compact.json | 0 ...level_variable-0.4.0.sol-0.6.5-legacy.json | 0 ...evel_variable-0.4.0.sol-0.6.6-compact.json | 0 ...level_variable-0.4.0.sol-0.6.6-legacy.json | 0 ...evel_variable-0.4.0.sol-0.6.7-compact.json | 0 ...level_variable-0.4.0.sol-0.6.7-legacy.json | 0 ...evel_variable-0.4.0.sol-0.6.8-compact.json | 0 ...level_variable-0.4.0.sol-0.6.8-legacy.json | 0 ...evel_variable-0.4.0.sol-0.6.9-compact.json | 0 ...level_variable-0.4.0.sol-0.6.9-legacy.json | 0 ...evel_variable-0.4.0.sol-0.7.0-compact.json | 0 ...level_variable-0.4.0.sol-0.7.0-legacy.json | 0 ...evel_variable-0.4.0.sol-0.7.1-compact.json | 0 ...level_variable-0.4.0.sol-0.7.1-legacy.json | 0 ...evel_variable-0.4.0.sol-0.7.2-compact.json | 0 ...level_variable-0.4.0.sol-0.7.2-legacy.json | 0 ...evel_variable-0.4.0.sol-0.7.3-compact.json | 0 ...level_variable-0.4.0.sol-0.7.3-legacy.json | 0 ...evel_variable-0.4.0.sol-0.7.4-compact.json | 0 ...level_variable-0.4.0.sol-0.7.4-legacy.json | 0 ...evel_variable-0.4.0.sol-0.7.5-compact.json | 0 ...level_variable-0.4.0.sol-0.7.5-legacy.json | 0 ...evel_variable-0.4.0.sol-0.7.6-compact.json | 0 ...level_variable-0.4.0.sol-0.7.6-legacy.json | 0 ...evel_variable-0.8.0.sol-0.8.0-compact.json | 0 ...evel_variable-0.8.0.sol-0.8.1-compact.json | 0 ...vel_variable-0.8.0.sol-0.8.10-compact.json | 0 ...vel_variable-0.8.0.sol-0.8.11-compact.json | 0 ...vel_variable-0.8.0.sol-0.8.12-compact.json | 0 ...vel_variable-0.8.0.sol-0.8.13-compact.json | 0 ...vel_variable-0.8.0.sol-0.8.14-compact.json | 0 ...vel_variable-0.8.0.sol-0.8.15-compact.json | 0 ...evel_variable-0.8.0.sol-0.8.2-compact.json | 0 ...evel_variable-0.8.0.sol-0.8.3-compact.json | 0 ...evel_variable-0.8.0.sol-0.8.4-compact.json | 0 ...evel_variable-0.8.0.sol-0.8.5-compact.json | 0 ...evel_variable-0.8.0.sol-0.8.6-compact.json | 0 ...evel_variable-0.8.0.sol-0.8.7-compact.json | 0 ...evel_variable-0.8.0.sol-0.8.8-compact.json | 0 ...evel_variable-0.8.0.sol-0.8.9-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.0-compact.json | 0 ...evel_variable2-0.4.0.sol-0.4.0-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.4.1-compact.json | 0 ...evel_variable2-0.4.0.sol-0.4.1-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.10-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.10-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.11-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.11-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.12-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.12-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.13-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.13-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.14-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.14-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.15-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.15-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.16-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.16-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.17-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.17-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.18-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.18-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.19-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.19-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.4.2-compact.json | 0 ...evel_variable2-0.4.0.sol-0.4.2-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.20-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.20-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.21-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.21-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.22-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.22-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.23-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.23-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.24-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.24-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.25-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.25-legacy.json | 0 ...el_variable2-0.4.0.sol-0.4.26-compact.json | 0 ...vel_variable2-0.4.0.sol-0.4.26-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.4.3-compact.json | 0 ...evel_variable2-0.4.0.sol-0.4.3-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.4.4-compact.json | 0 ...evel_variable2-0.4.0.sol-0.4.4-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.4.5-compact.json | 0 ...evel_variable2-0.4.0.sol-0.4.5-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.4.6-compact.json | 0 ...evel_variable2-0.4.0.sol-0.4.6-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.4.7-compact.json | 0 ...evel_variable2-0.4.0.sol-0.4.7-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.4.8-compact.json | 0 ...evel_variable2-0.4.0.sol-0.4.8-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.4.9-compact.json | 0 ...evel_variable2-0.4.0.sol-0.4.9-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.5.0-compact.json | 0 ...evel_variable2-0.4.0.sol-0.5.0-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.5.1-compact.json | 0 ...evel_variable2-0.4.0.sol-0.5.1-legacy.json | 0 ...el_variable2-0.4.0.sol-0.5.10-compact.json | 0 ...vel_variable2-0.4.0.sol-0.5.10-legacy.json | 0 ...el_variable2-0.4.0.sol-0.5.11-compact.json | 0 ...vel_variable2-0.4.0.sol-0.5.11-legacy.json | 0 ...el_variable2-0.4.0.sol-0.5.12-compact.json | 0 ...vel_variable2-0.4.0.sol-0.5.12-legacy.json | 0 ...el_variable2-0.4.0.sol-0.5.13-compact.json | 0 ...vel_variable2-0.4.0.sol-0.5.13-legacy.json | 0 ...el_variable2-0.4.0.sol-0.5.14-compact.json | 0 ...vel_variable2-0.4.0.sol-0.5.14-legacy.json | 0 ...el_variable2-0.4.0.sol-0.5.15-compact.json | 0 ...vel_variable2-0.4.0.sol-0.5.15-legacy.json | 0 ...el_variable2-0.4.0.sol-0.5.16-compact.json | 0 ...vel_variable2-0.4.0.sol-0.5.16-legacy.json | 0 ...el_variable2-0.4.0.sol-0.5.17-compact.json | 0 ...vel_variable2-0.4.0.sol-0.5.17-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.5.2-compact.json | 0 ...evel_variable2-0.4.0.sol-0.5.2-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.5.3-compact.json | 0 ...evel_variable2-0.4.0.sol-0.5.3-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.5.4-compact.json | 0 ...evel_variable2-0.4.0.sol-0.5.4-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.5.5-compact.json | 0 ...evel_variable2-0.4.0.sol-0.5.5-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.5.6-compact.json | 0 ...evel_variable2-0.4.0.sol-0.5.6-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.5.7-compact.json | 0 ...evel_variable2-0.4.0.sol-0.5.7-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.5.8-compact.json | 0 ...evel_variable2-0.4.0.sol-0.5.8-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.5.9-compact.json | 0 ...evel_variable2-0.4.0.sol-0.5.9-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.6.0-compact.json | 0 ...evel_variable2-0.4.0.sol-0.6.0-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.6.1-compact.json | 0 ...evel_variable2-0.4.0.sol-0.6.1-legacy.json | 0 ...el_variable2-0.4.0.sol-0.6.10-compact.json | 0 ...vel_variable2-0.4.0.sol-0.6.10-legacy.json | 0 ...el_variable2-0.4.0.sol-0.6.11-compact.json | 0 ...vel_variable2-0.4.0.sol-0.6.11-legacy.json | 0 ...el_variable2-0.4.0.sol-0.6.12-compact.json | 0 ...vel_variable2-0.4.0.sol-0.6.12-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.6.2-compact.json | 0 ...evel_variable2-0.4.0.sol-0.6.2-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.6.3-compact.json | 0 ...evel_variable2-0.4.0.sol-0.6.3-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.6.4-compact.json | 0 ...evel_variable2-0.4.0.sol-0.6.4-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.6.5-compact.json | 0 ...evel_variable2-0.4.0.sol-0.6.5-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.6.6-compact.json | 0 ...evel_variable2-0.4.0.sol-0.6.6-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.6.7-compact.json | 0 ...evel_variable2-0.4.0.sol-0.6.7-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.6.8-compact.json | 0 ...evel_variable2-0.4.0.sol-0.6.8-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.6.9-compact.json | 0 ...evel_variable2-0.4.0.sol-0.6.9-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.7.0-compact.json | 0 ...evel_variable2-0.4.0.sol-0.7.0-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.7.1-compact.json | 0 ...evel_variable2-0.4.0.sol-0.7.1-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.7.2-compact.json | 0 ...evel_variable2-0.4.0.sol-0.7.2-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.7.3-compact.json | 0 ...evel_variable2-0.4.0.sol-0.7.3-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.7.4-compact.json | 0 ...evel_variable2-0.4.0.sol-0.7.4-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.7.5-compact.json | 0 ...evel_variable2-0.4.0.sol-0.7.5-legacy.json | 0 ...vel_variable2-0.4.0.sol-0.7.6-compact.json | 0 ...evel_variable2-0.4.0.sol-0.7.6-legacy.json | 0 ...vel_variable2-0.8.0.sol-0.8.0-compact.json | 0 ...vel_variable2-0.8.0.sol-0.8.1-compact.json | 0 ...el_variable2-0.8.0.sol-0.8.10-compact.json | 0 ...el_variable2-0.8.0.sol-0.8.11-compact.json | 0 ...el_variable2-0.8.0.sol-0.8.12-compact.json | 0 ...el_variable2-0.8.0.sol-0.8.13-compact.json | 0 ...el_variable2-0.8.0.sol-0.8.14-compact.json | 0 ...el_variable2-0.8.0.sol-0.8.15-compact.json | 0 ...vel_variable2-0.8.0.sol-0.8.2-compact.json | 0 ...vel_variable2-0.8.0.sol-0.8.3-compact.json | 0 ...vel_variable2-0.8.0.sol-0.8.4-compact.json | 0 ...vel_variable2-0.8.0.sol-0.8.5-compact.json | 0 ...vel_variable2-0.8.0.sol-0.8.6-compact.json | 0 ...vel_variable2-0.8.0.sol-0.8.7-compact.json | 0 ...vel_variable2-0.8.0.sol-0.8.8-compact.json | 0 ...vel_variable2-0.8.0.sol-0.8.9-compact.json | 0 .../trycatch-0.4.0.sol-0.4.0-compact.json | 0 .../trycatch-0.4.0.sol-0.4.0-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.1-compact.json | 0 .../trycatch-0.4.0.sol-0.4.1-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.10-compact.json | 0 .../trycatch-0.4.0.sol-0.4.10-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.11-compact.json | 0 .../trycatch-0.4.0.sol-0.4.11-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.12-compact.json | 0 .../trycatch-0.4.0.sol-0.4.12-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.13-compact.json | 0 .../trycatch-0.4.0.sol-0.4.13-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.14-compact.json | 0 .../trycatch-0.4.0.sol-0.4.14-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.15-compact.json | 0 .../trycatch-0.4.0.sol-0.4.15-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.16-compact.json | 0 .../trycatch-0.4.0.sol-0.4.16-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.17-compact.json | 0 .../trycatch-0.4.0.sol-0.4.17-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.18-compact.json | 0 .../trycatch-0.4.0.sol-0.4.18-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.19-compact.json | 0 .../trycatch-0.4.0.sol-0.4.19-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.2-compact.json | 0 .../trycatch-0.4.0.sol-0.4.2-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.20-compact.json | 0 .../trycatch-0.4.0.sol-0.4.20-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.21-compact.json | 0 .../trycatch-0.4.0.sol-0.4.21-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.22-compact.json | 0 .../trycatch-0.4.0.sol-0.4.22-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.23-compact.json | 0 .../trycatch-0.4.0.sol-0.4.23-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.24-compact.json | 0 .../trycatch-0.4.0.sol-0.4.24-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.25-compact.json | 0 .../trycatch-0.4.0.sol-0.4.25-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.26-compact.json | 0 .../trycatch-0.4.0.sol-0.4.26-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.3-compact.json | 0 .../trycatch-0.4.0.sol-0.4.3-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.4-compact.json | 0 .../trycatch-0.4.0.sol-0.4.4-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.5-compact.json | 0 .../trycatch-0.4.0.sol-0.4.5-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.6-compact.json | 0 .../trycatch-0.4.0.sol-0.4.6-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.7-compact.json | 0 .../trycatch-0.4.0.sol-0.4.7-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.8-compact.json | 0 .../trycatch-0.4.0.sol-0.4.8-legacy.json | 0 .../trycatch-0.4.0.sol-0.4.9-compact.json | 0 .../trycatch-0.4.0.sol-0.4.9-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.0-compact.json | 0 .../trycatch-0.4.0.sol-0.5.0-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.1-compact.json | 0 .../trycatch-0.4.0.sol-0.5.1-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.10-compact.json | 0 .../trycatch-0.4.0.sol-0.5.10-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.11-compact.json | 0 .../trycatch-0.4.0.sol-0.5.11-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.12-compact.json | 0 .../trycatch-0.4.0.sol-0.5.12-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.13-compact.json | 0 .../trycatch-0.4.0.sol-0.5.13-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.14-compact.json | 0 .../trycatch-0.4.0.sol-0.5.14-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.15-compact.json | 0 .../trycatch-0.4.0.sol-0.5.15-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.16-compact.json | 0 .../trycatch-0.4.0.sol-0.5.16-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.17-compact.json | 0 .../trycatch-0.4.0.sol-0.5.17-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.2-compact.json | 0 .../trycatch-0.4.0.sol-0.5.2-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.3-compact.json | 0 .../trycatch-0.4.0.sol-0.5.3-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.4-compact.json | 0 .../trycatch-0.4.0.sol-0.5.4-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.5-compact.json | 0 .../trycatch-0.4.0.sol-0.5.5-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.6-compact.json | 0 .../trycatch-0.4.0.sol-0.5.6-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.7-compact.json | 0 .../trycatch-0.4.0.sol-0.5.7-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.8-compact.json | 0 .../trycatch-0.4.0.sol-0.5.8-legacy.json | 0 .../trycatch-0.4.0.sol-0.5.9-compact.json | 0 .../trycatch-0.4.0.sol-0.5.9-legacy.json | 0 .../trycatch-0.6.0.sol-0.6.0-compact.json | 0 .../trycatch-0.6.0.sol-0.6.1-compact.json | 0 .../trycatch-0.6.0.sol-0.6.10-compact.json | 0 .../trycatch-0.6.0.sol-0.6.11-compact.json | 0 .../trycatch-0.6.0.sol-0.6.12-compact.json | 0 .../trycatch-0.6.0.sol-0.6.2-compact.json | 0 .../trycatch-0.6.0.sol-0.6.3-compact.json | 0 .../trycatch-0.6.0.sol-0.6.4-compact.json | 0 .../trycatch-0.6.0.sol-0.6.5-compact.json | 0 .../trycatch-0.6.0.sol-0.6.6-compact.json | 0 .../trycatch-0.6.0.sol-0.6.7-compact.json | 0 .../trycatch-0.6.0.sol-0.6.8-compact.json | 0 .../trycatch-0.6.0.sol-0.6.9-compact.json | 0 .../trycatch-0.6.0.sol-0.7.0-compact.json | 0 .../trycatch-0.6.0.sol-0.7.1-compact.json | 0 .../trycatch-0.6.0.sol-0.7.2-compact.json | 0 .../trycatch-0.6.0.sol-0.7.3-compact.json | 0 .../trycatch-0.6.0.sol-0.7.4-compact.json | 0 .../trycatch-0.6.0.sol-0.7.5-compact.json | 0 .../trycatch-0.6.0.sol-0.7.6-compact.json | 0 .../trycatch-0.6.0.sol-0.8.0-compact.json | 0 .../trycatch-0.6.0.sol-0.8.1-compact.json | 0 .../trycatch-0.6.0.sol-0.8.10-compact.json | 0 .../trycatch-0.6.0.sol-0.8.11-compact.json | 0 .../trycatch-0.6.0.sol-0.8.12-compact.json | 0 .../trycatch-0.6.0.sol-0.8.13-compact.json | 0 .../trycatch-0.6.0.sol-0.8.14-compact.json | 0 .../trycatch-0.6.0.sol-0.8.15-compact.json | 0 .../trycatch-0.6.0.sol-0.8.2-compact.json | 0 .../trycatch-0.6.0.sol-0.8.3-compact.json | 0 .../trycatch-0.6.0.sol-0.8.4-compact.json | 0 .../trycatch-0.6.0.sol-0.8.5-compact.json | 0 .../trycatch-0.6.0.sol-0.8.6-compact.json | 0 .../trycatch-0.6.0.sol-0.8.7-compact.json | 0 .../trycatch-0.6.0.sol-0.8.8-compact.json | 0 .../trycatch-0.6.0.sol-0.8.9-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.0-compact.json | 0 ...upleexpression-0.4.0.sol-0.4.0-legacy.json | 0 ...pleexpression-0.4.0.sol-0.4.1-compact.json | 0 ...upleexpression-0.4.0.sol-0.4.1-legacy.json | 0 ...leexpression-0.4.0.sol-0.4.10-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.10-legacy.json | 0 ...leexpression-0.4.0.sol-0.4.11-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.11-legacy.json | 0 ...leexpression-0.4.0.sol-0.4.12-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.12-legacy.json | 0 ...leexpression-0.4.0.sol-0.4.13-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.13-legacy.json | 0 ...leexpression-0.4.0.sol-0.4.14-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.14-legacy.json | 0 ...leexpression-0.4.0.sol-0.4.15-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.15-legacy.json | 0 ...leexpression-0.4.0.sol-0.4.16-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.16-legacy.json | 0 ...leexpression-0.4.0.sol-0.4.17-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.17-legacy.json | 0 ...leexpression-0.4.0.sol-0.4.18-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.18-legacy.json | 0 ...leexpression-0.4.0.sol-0.4.19-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.19-legacy.json | 0 ...pleexpression-0.4.0.sol-0.4.2-compact.json | 0 ...upleexpression-0.4.0.sol-0.4.2-legacy.json | 0 ...leexpression-0.4.0.sol-0.4.20-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.20-legacy.json | 0 ...leexpression-0.4.0.sol-0.4.21-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.21-legacy.json | 0 ...leexpression-0.4.0.sol-0.4.22-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.22-legacy.json | 0 ...leexpression-0.4.0.sol-0.4.23-compact.json | 0 ...pleexpression-0.4.0.sol-0.4.23-legacy.json | 0 ...pleexpression-0.4.0.sol-0.4.3-compact.json | 0 ...upleexpression-0.4.0.sol-0.4.3-legacy.json | 0 ...pleexpression-0.4.0.sol-0.4.4-compact.json | 0 ...upleexpression-0.4.0.sol-0.4.4-legacy.json | 0 ...pleexpression-0.4.0.sol-0.4.5-compact.json | 0 ...upleexpression-0.4.0.sol-0.4.5-legacy.json | 0 ...pleexpression-0.4.0.sol-0.4.6-compact.json | 0 ...upleexpression-0.4.0.sol-0.4.6-legacy.json | 0 ...pleexpression-0.4.0.sol-0.4.7-compact.json | 0 ...upleexpression-0.4.0.sol-0.4.7-legacy.json | 0 ...pleexpression-0.4.0.sol-0.4.8-compact.json | 0 ...upleexpression-0.4.0.sol-0.4.8-legacy.json | 0 ...pleexpression-0.4.0.sol-0.4.9-compact.json | 0 ...upleexpression-0.4.0.sol-0.4.9-legacy.json | 0 ...eexpression-0.4.24.sol-0.4.24-compact.json | 0 ...leexpression-0.4.24.sol-0.4.24-legacy.json | 0 ...eexpression-0.4.24.sol-0.4.25-compact.json | 0 ...leexpression-0.4.24.sol-0.4.25-legacy.json | 0 ...eexpression-0.4.24.sol-0.4.26-compact.json | 0 ...leexpression-0.4.24.sol-0.4.26-legacy.json | 0 ...leexpression-0.4.24.sol-0.5.0-compact.json | 0 ...pleexpression-0.4.24.sol-0.5.0-legacy.json | 0 ...leexpression-0.4.24.sol-0.5.1-compact.json | 0 ...pleexpression-0.4.24.sol-0.5.1-legacy.json | 0 ...eexpression-0.4.24.sol-0.5.10-compact.json | 0 ...leexpression-0.4.24.sol-0.5.10-legacy.json | 0 ...eexpression-0.4.24.sol-0.5.11-compact.json | 0 ...leexpression-0.4.24.sol-0.5.11-legacy.json | 0 ...eexpression-0.4.24.sol-0.5.12-compact.json | 0 ...leexpression-0.4.24.sol-0.5.12-legacy.json | 0 ...eexpression-0.4.24.sol-0.5.13-compact.json | 0 ...leexpression-0.4.24.sol-0.5.13-legacy.json | 0 ...eexpression-0.4.24.sol-0.5.14-compact.json | 0 ...leexpression-0.4.24.sol-0.5.14-legacy.json | 0 ...eexpression-0.4.24.sol-0.5.15-compact.json | 0 ...leexpression-0.4.24.sol-0.5.15-legacy.json | 0 ...eexpression-0.4.24.sol-0.5.16-compact.json | 0 ...leexpression-0.4.24.sol-0.5.16-legacy.json | 0 ...eexpression-0.4.24.sol-0.5.17-compact.json | 0 ...leexpression-0.4.24.sol-0.5.17-legacy.json | 0 ...leexpression-0.4.24.sol-0.5.2-compact.json | 0 ...pleexpression-0.4.24.sol-0.5.2-legacy.json | 0 ...leexpression-0.4.24.sol-0.5.3-compact.json | 0 ...pleexpression-0.4.24.sol-0.5.3-legacy.json | 0 ...leexpression-0.4.24.sol-0.5.4-compact.json | 0 ...pleexpression-0.4.24.sol-0.5.4-legacy.json | 0 ...leexpression-0.4.24.sol-0.5.5-compact.json | 0 ...pleexpression-0.4.24.sol-0.5.5-legacy.json | 0 ...leexpression-0.4.24.sol-0.5.6-compact.json | 0 ...pleexpression-0.4.24.sol-0.5.6-legacy.json | 0 ...leexpression-0.4.24.sol-0.5.7-compact.json | 0 ...pleexpression-0.4.24.sol-0.5.7-legacy.json | 0 ...leexpression-0.4.24.sol-0.5.8-compact.json | 0 ...pleexpression-0.4.24.sol-0.5.8-legacy.json | 0 ...leexpression-0.4.24.sol-0.5.9-compact.json | 0 ...pleexpression-0.4.24.sol-0.5.9-legacy.json | 0 ...pleexpression-0.5.3.sol-0.5.3-compact.json | 0 ...upleexpression-0.5.3.sol-0.5.3-legacy.json | 0 ...pleexpression-0.5.3.sol-0.5.4-compact.json | 0 ...upleexpression-0.5.3.sol-0.5.4-legacy.json | 0 ...pleexpression-0.5.3.sol-0.5.5-compact.json | 0 ...upleexpression-0.5.3.sol-0.5.5-legacy.json | 0 ...pleexpression-0.5.3.sol-0.5.6-compact.json | 0 ...upleexpression-0.5.3.sol-0.5.6-legacy.json | 0 ...pleexpression-0.5.3.sol-0.5.7-compact.json | 0 ...upleexpression-0.5.3.sol-0.5.7-legacy.json | 0 ...pleexpression-0.5.3.sol-0.5.8-compact.json | 0 ...upleexpression-0.5.3.sol-0.5.8-legacy.json | 0 ...pleexpression-0.5.3.sol-0.5.9-compact.json | 0 ...upleexpression-0.5.3.sol-0.5.9-legacy.json | 0 ...pleexpression-0.5.3.sol-0.6.0-compact.json | 0 ...upleexpression-0.5.3.sol-0.6.0-legacy.json | 0 ...pleexpression-0.5.3.sol-0.6.1-compact.json | 0 ...upleexpression-0.5.3.sol-0.6.1-legacy.json | 0 ...leexpression-0.5.3.sol-0.6.10-compact.json | 0 ...pleexpression-0.5.3.sol-0.6.10-legacy.json | 0 ...leexpression-0.5.3.sol-0.6.11-compact.json | 0 ...pleexpression-0.5.3.sol-0.6.11-legacy.json | 0 ...leexpression-0.5.3.sol-0.6.12-compact.json | 0 ...pleexpression-0.5.3.sol-0.6.12-legacy.json | 0 ...pleexpression-0.5.3.sol-0.6.2-compact.json | 0 ...upleexpression-0.5.3.sol-0.6.2-legacy.json | 0 ...pleexpression-0.5.3.sol-0.6.3-compact.json | 0 ...upleexpression-0.5.3.sol-0.6.3-legacy.json | 0 ...pleexpression-0.5.3.sol-0.6.4-compact.json | 0 ...upleexpression-0.5.3.sol-0.6.4-legacy.json | 0 ...pleexpression-0.5.3.sol-0.6.5-compact.json | 0 ...upleexpression-0.5.3.sol-0.6.5-legacy.json | 0 ...pleexpression-0.5.3.sol-0.6.6-compact.json | 0 ...upleexpression-0.5.3.sol-0.6.6-legacy.json | 0 ...pleexpression-0.5.3.sol-0.6.7-compact.json | 0 ...upleexpression-0.5.3.sol-0.6.7-legacy.json | 0 ...pleexpression-0.5.3.sol-0.6.8-compact.json | 0 ...upleexpression-0.5.3.sol-0.6.8-legacy.json | 0 ...pleexpression-0.5.3.sol-0.6.9-compact.json | 0 ...upleexpression-0.5.3.sol-0.6.9-legacy.json | 0 ...pleexpression-0.5.3.sol-0.7.0-compact.json | 0 ...upleexpression-0.5.3.sol-0.7.0-legacy.json | 0 ...pleexpression-0.5.3.sol-0.7.1-compact.json | 0 ...upleexpression-0.5.3.sol-0.7.1-legacy.json | 0 ...pleexpression-0.5.3.sol-0.7.2-compact.json | 0 ...upleexpression-0.5.3.sol-0.7.2-legacy.json | 0 ...pleexpression-0.5.3.sol-0.7.3-compact.json | 0 ...upleexpression-0.5.3.sol-0.7.3-legacy.json | 0 ...pleexpression-0.5.3.sol-0.7.4-compact.json | 0 ...upleexpression-0.5.3.sol-0.7.4-legacy.json | 0 ...pleexpression-0.5.3.sol-0.7.5-compact.json | 0 ...upleexpression-0.5.3.sol-0.7.5-legacy.json | 0 ...pleexpression-0.5.3.sol-0.7.6-compact.json | 0 ...upleexpression-0.5.3.sol-0.7.6-legacy.json | 0 ...pleexpression-0.5.3.sol-0.8.0-compact.json | 0 ...pleexpression-0.5.3.sol-0.8.1-compact.json | 0 ...leexpression-0.5.3.sol-0.8.10-compact.json | 0 ...leexpression-0.5.3.sol-0.8.11-compact.json | 0 ...leexpression-0.5.3.sol-0.8.12-compact.json | 0 ...leexpression-0.5.3.sol-0.8.13-compact.json | 0 ...leexpression-0.5.3.sol-0.8.14-compact.json | 0 ...leexpression-0.5.3.sol-0.8.15-compact.json | 0 ...pleexpression-0.5.3.sol-0.8.2-compact.json | 0 ...pleexpression-0.5.3.sol-0.8.3-compact.json | 0 ...pleexpression-0.5.3.sol-0.8.4-compact.json | 0 ...pleexpression-0.5.3.sol-0.8.5-compact.json | 0 ...pleexpression-0.5.3.sol-0.8.6-compact.json | 0 ...pleexpression-0.5.3.sol-0.8.7-compact.json | 0 ...pleexpression-0.5.3.sol-0.8.8-compact.json | 0 ...pleexpression-0.5.3.sol-0.8.9-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.0-compact.json | 0 ...naryexpression-0.4.0.sol-0.4.0-legacy.json | 0 ...aryexpression-0.4.0.sol-0.4.1-compact.json | 0 ...naryexpression-0.4.0.sol-0.4.1-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.10-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.10-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.11-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.11-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.12-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.12-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.13-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.13-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.14-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.14-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.15-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.15-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.16-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.16-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.17-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.17-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.18-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.18-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.19-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.19-legacy.json | 0 ...aryexpression-0.4.0.sol-0.4.2-compact.json | 0 ...naryexpression-0.4.0.sol-0.4.2-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.20-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.20-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.21-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.21-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.22-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.22-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.23-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.23-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.24-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.24-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.25-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.25-legacy.json | 0 ...ryexpression-0.4.0.sol-0.4.26-compact.json | 0 ...aryexpression-0.4.0.sol-0.4.26-legacy.json | 0 ...aryexpression-0.4.0.sol-0.4.3-compact.json | 0 ...naryexpression-0.4.0.sol-0.4.3-legacy.json | 0 ...aryexpression-0.4.0.sol-0.4.4-compact.json | 0 ...naryexpression-0.4.0.sol-0.4.4-legacy.json | 0 ...aryexpression-0.4.0.sol-0.4.5-compact.json | 0 ...naryexpression-0.4.0.sol-0.4.5-legacy.json | 0 ...aryexpression-0.4.0.sol-0.4.6-compact.json | 0 ...naryexpression-0.4.0.sol-0.4.6-legacy.json | 0 ...aryexpression-0.4.0.sol-0.4.7-compact.json | 0 ...naryexpression-0.4.0.sol-0.4.7-legacy.json | 0 ...aryexpression-0.4.0.sol-0.4.8-compact.json | 0 ...naryexpression-0.4.0.sol-0.4.8-legacy.json | 0 ...aryexpression-0.4.0.sol-0.4.9-compact.json | 0 ...naryexpression-0.4.0.sol-0.4.9-legacy.json | 0 ...aryexpression-0.5.0.sol-0.5.0-compact.json | 0 ...naryexpression-0.5.0.sol-0.5.0-legacy.json | 0 ...aryexpression-0.5.0.sol-0.5.1-compact.json | 0 ...naryexpression-0.5.0.sol-0.5.1-legacy.json | 0 ...ryexpression-0.5.0.sol-0.5.10-compact.json | 0 ...aryexpression-0.5.0.sol-0.5.10-legacy.json | 0 ...ryexpression-0.5.0.sol-0.5.11-compact.json | 0 ...aryexpression-0.5.0.sol-0.5.11-legacy.json | 0 ...ryexpression-0.5.0.sol-0.5.12-compact.json | 0 ...aryexpression-0.5.0.sol-0.5.12-legacy.json | 0 ...ryexpression-0.5.0.sol-0.5.13-compact.json | 0 ...aryexpression-0.5.0.sol-0.5.13-legacy.json | 0 ...ryexpression-0.5.0.sol-0.5.14-compact.json | 0 ...aryexpression-0.5.0.sol-0.5.14-legacy.json | 0 ...ryexpression-0.5.0.sol-0.5.15-compact.json | 0 ...aryexpression-0.5.0.sol-0.5.15-legacy.json | 0 ...ryexpression-0.5.0.sol-0.5.16-compact.json | 0 ...aryexpression-0.5.0.sol-0.5.16-legacy.json | 0 ...ryexpression-0.5.0.sol-0.5.17-compact.json | 0 ...aryexpression-0.5.0.sol-0.5.17-legacy.json | 0 ...aryexpression-0.5.0.sol-0.5.2-compact.json | 0 ...naryexpression-0.5.0.sol-0.5.2-legacy.json | 0 ...aryexpression-0.5.0.sol-0.5.3-compact.json | 0 ...naryexpression-0.5.0.sol-0.5.3-legacy.json | 0 ...aryexpression-0.5.0.sol-0.5.4-compact.json | 0 ...naryexpression-0.5.0.sol-0.5.4-legacy.json | 0 ...aryexpression-0.5.0.sol-0.5.5-compact.json | 0 ...naryexpression-0.5.0.sol-0.5.5-legacy.json | 0 ...aryexpression-0.5.0.sol-0.5.6-compact.json | 0 ...naryexpression-0.5.0.sol-0.5.6-legacy.json | 0 ...aryexpression-0.5.0.sol-0.5.7-compact.json | 0 ...naryexpression-0.5.0.sol-0.5.7-legacy.json | 0 ...aryexpression-0.5.0.sol-0.5.8-compact.json | 0 ...naryexpression-0.5.0.sol-0.5.8-legacy.json | 0 ...aryexpression-0.5.0.sol-0.5.9-compact.json | 0 ...naryexpression-0.5.0.sol-0.5.9-legacy.json | 0 ...aryexpression-0.5.0.sol-0.6.0-compact.json | 0 ...naryexpression-0.5.0.sol-0.6.0-legacy.json | 0 ...aryexpression-0.5.0.sol-0.6.1-compact.json | 0 ...naryexpression-0.5.0.sol-0.6.1-legacy.json | 0 ...ryexpression-0.5.0.sol-0.6.10-compact.json | 0 ...aryexpression-0.5.0.sol-0.6.10-legacy.json | 0 ...ryexpression-0.5.0.sol-0.6.11-compact.json | 0 ...aryexpression-0.5.0.sol-0.6.11-legacy.json | 0 ...ryexpression-0.5.0.sol-0.6.12-compact.json | 0 ...aryexpression-0.5.0.sol-0.6.12-legacy.json | 0 ...aryexpression-0.5.0.sol-0.6.2-compact.json | 0 ...naryexpression-0.5.0.sol-0.6.2-legacy.json | 0 ...aryexpression-0.5.0.sol-0.6.3-compact.json | 0 ...naryexpression-0.5.0.sol-0.6.3-legacy.json | 0 ...aryexpression-0.5.0.sol-0.6.4-compact.json | 0 ...naryexpression-0.5.0.sol-0.6.4-legacy.json | 0 ...aryexpression-0.5.0.sol-0.6.5-compact.json | 0 ...naryexpression-0.5.0.sol-0.6.5-legacy.json | 0 ...aryexpression-0.5.0.sol-0.6.6-compact.json | 0 ...naryexpression-0.5.0.sol-0.6.6-legacy.json | 0 ...aryexpression-0.5.0.sol-0.6.7-compact.json | 0 ...naryexpression-0.5.0.sol-0.6.7-legacy.json | 0 ...aryexpression-0.5.0.sol-0.6.8-compact.json | 0 ...naryexpression-0.5.0.sol-0.6.8-legacy.json | 0 ...aryexpression-0.5.0.sol-0.6.9-compact.json | 0 ...naryexpression-0.5.0.sol-0.6.9-legacy.json | 0 ...aryexpression-0.5.0.sol-0.7.0-compact.json | 0 ...naryexpression-0.5.0.sol-0.7.0-legacy.json | 0 ...aryexpression-0.5.0.sol-0.7.1-compact.json | 0 ...naryexpression-0.5.0.sol-0.7.1-legacy.json | 0 ...aryexpression-0.5.0.sol-0.7.2-compact.json | 0 ...naryexpression-0.5.0.sol-0.7.2-legacy.json | 0 ...aryexpression-0.5.0.sol-0.7.3-compact.json | 0 ...naryexpression-0.5.0.sol-0.7.3-legacy.json | 0 ...aryexpression-0.5.0.sol-0.7.4-compact.json | 0 ...naryexpression-0.5.0.sol-0.7.4-legacy.json | 0 ...aryexpression-0.5.0.sol-0.7.5-compact.json | 0 ...naryexpression-0.5.0.sol-0.7.5-legacy.json | 0 ...aryexpression-0.5.0.sol-0.7.6-compact.json | 0 ...naryexpression-0.5.0.sol-0.7.6-legacy.json | 0 ...aryexpression-0.5.0.sol-0.8.0-compact.json | 0 ...aryexpression-0.5.0.sol-0.8.1-compact.json | 0 ...ryexpression-0.5.0.sol-0.8.10-compact.json | 0 ...ryexpression-0.5.0.sol-0.8.11-compact.json | 0 ...ryexpression-0.5.0.sol-0.8.12-compact.json | 0 ...ryexpression-0.5.0.sol-0.8.13-compact.json | 0 ...ryexpression-0.5.0.sol-0.8.14-compact.json | 0 ...ryexpression-0.5.0.sol-0.8.15-compact.json | 0 ...aryexpression-0.5.0.sol-0.8.2-compact.json | 0 ...aryexpression-0.5.0.sol-0.8.3-compact.json | 0 ...aryexpression-0.5.0.sol-0.8.4-compact.json | 0 ...aryexpression-0.5.0.sol-0.8.5-compact.json | 0 ...aryexpression-0.5.0.sol-0.8.6-compact.json | 0 ...aryexpression-0.5.0.sol-0.8.7-compact.json | 0 ...aryexpression-0.5.0.sol-0.8.8-compact.json | 0 ...aryexpression-0.5.0.sol-0.8.9-compact.json | 0 .../unchecked-0.4.0.sol-0.4.0-compact.json | 0 .../unchecked-0.4.0.sol-0.4.0-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.1-compact.json | 0 .../unchecked-0.4.0.sol-0.4.1-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.10-compact.json | 0 .../unchecked-0.4.0.sol-0.4.10-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.11-compact.json | 0 .../unchecked-0.4.0.sol-0.4.11-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.12-compact.json | 0 .../unchecked-0.4.0.sol-0.4.12-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.13-compact.json | 0 .../unchecked-0.4.0.sol-0.4.13-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.14-compact.json | 0 .../unchecked-0.4.0.sol-0.4.14-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.15-compact.json | 0 .../unchecked-0.4.0.sol-0.4.15-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.16-compact.json | 0 .../unchecked-0.4.0.sol-0.4.16-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.17-compact.json | 0 .../unchecked-0.4.0.sol-0.4.17-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.18-compact.json | 0 .../unchecked-0.4.0.sol-0.4.18-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.19-compact.json | 0 .../unchecked-0.4.0.sol-0.4.19-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.2-compact.json | 0 .../unchecked-0.4.0.sol-0.4.2-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.20-compact.json | 0 .../unchecked-0.4.0.sol-0.4.20-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.21-compact.json | 0 .../unchecked-0.4.0.sol-0.4.21-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.22-compact.json | 0 .../unchecked-0.4.0.sol-0.4.22-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.23-compact.json | 0 .../unchecked-0.4.0.sol-0.4.23-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.24-compact.json | 0 .../unchecked-0.4.0.sol-0.4.24-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.25-compact.json | 0 .../unchecked-0.4.0.sol-0.4.25-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.26-compact.json | 0 .../unchecked-0.4.0.sol-0.4.26-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.3-compact.json | 0 .../unchecked-0.4.0.sol-0.4.3-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.4-compact.json | 0 .../unchecked-0.4.0.sol-0.4.4-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.5-compact.json | 0 .../unchecked-0.4.0.sol-0.4.5-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.6-compact.json | 0 .../unchecked-0.4.0.sol-0.4.6-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.7-compact.json | 0 .../unchecked-0.4.0.sol-0.4.7-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.8-compact.json | 0 .../unchecked-0.4.0.sol-0.4.8-legacy.json | 0 .../unchecked-0.4.0.sol-0.4.9-compact.json | 0 .../unchecked-0.4.0.sol-0.4.9-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.0-compact.json | 0 .../unchecked-0.4.0.sol-0.5.0-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.1-compact.json | 0 .../unchecked-0.4.0.sol-0.5.1-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.10-compact.json | 0 .../unchecked-0.4.0.sol-0.5.10-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.11-compact.json | 0 .../unchecked-0.4.0.sol-0.5.11-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.12-compact.json | 0 .../unchecked-0.4.0.sol-0.5.12-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.13-compact.json | 0 .../unchecked-0.4.0.sol-0.5.13-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.14-compact.json | 0 .../unchecked-0.4.0.sol-0.5.14-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.15-compact.json | 0 .../unchecked-0.4.0.sol-0.5.15-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.16-compact.json | 0 .../unchecked-0.4.0.sol-0.5.16-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.17-compact.json | 0 .../unchecked-0.4.0.sol-0.5.17-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.2-compact.json | 0 .../unchecked-0.4.0.sol-0.5.2-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.3-compact.json | 0 .../unchecked-0.4.0.sol-0.5.3-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.4-compact.json | 0 .../unchecked-0.4.0.sol-0.5.4-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.5-compact.json | 0 .../unchecked-0.4.0.sol-0.5.5-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.6-compact.json | 0 .../unchecked-0.4.0.sol-0.5.6-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.7-compact.json | 0 .../unchecked-0.4.0.sol-0.5.7-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.8-compact.json | 0 .../unchecked-0.4.0.sol-0.5.8-legacy.json | 0 .../unchecked-0.4.0.sol-0.5.9-compact.json | 0 .../unchecked-0.4.0.sol-0.5.9-legacy.json | 0 .../unchecked-0.4.0.sol-0.6.0-compact.json | 0 .../unchecked-0.4.0.sol-0.6.0-legacy.json | 0 .../unchecked-0.4.0.sol-0.6.1-compact.json | 0 .../unchecked-0.4.0.sol-0.6.1-legacy.json | 0 .../unchecked-0.4.0.sol-0.6.10-compact.json | 0 .../unchecked-0.4.0.sol-0.6.10-legacy.json | 0 .../unchecked-0.4.0.sol-0.6.11-compact.json | 0 .../unchecked-0.4.0.sol-0.6.11-legacy.json | 0 .../unchecked-0.4.0.sol-0.6.12-compact.json | 0 .../unchecked-0.4.0.sol-0.6.12-legacy.json | 0 .../unchecked-0.4.0.sol-0.6.2-compact.json | 0 .../unchecked-0.4.0.sol-0.6.2-legacy.json | 0 .../unchecked-0.4.0.sol-0.6.3-compact.json | 0 .../unchecked-0.4.0.sol-0.6.3-legacy.json | 0 .../unchecked-0.4.0.sol-0.6.4-compact.json | 0 .../unchecked-0.4.0.sol-0.6.4-legacy.json | 0 .../unchecked-0.4.0.sol-0.6.5-compact.json | 0 .../unchecked-0.4.0.sol-0.6.5-legacy.json | 0 .../unchecked-0.4.0.sol-0.6.6-compact.json | 0 .../unchecked-0.4.0.sol-0.6.6-legacy.json | 0 .../unchecked-0.4.0.sol-0.6.7-compact.json | 0 .../unchecked-0.4.0.sol-0.6.7-legacy.json | 0 .../unchecked-0.4.0.sol-0.6.8-compact.json | 0 .../unchecked-0.4.0.sol-0.6.8-legacy.json | 0 .../unchecked-0.4.0.sol-0.6.9-compact.json | 0 .../unchecked-0.4.0.sol-0.6.9-legacy.json | 0 .../unchecked-0.4.0.sol-0.7.0-compact.json | 0 .../unchecked-0.4.0.sol-0.7.0-legacy.json | 0 .../unchecked-0.4.0.sol-0.7.1-compact.json | 0 .../unchecked-0.4.0.sol-0.7.1-legacy.json | 0 .../unchecked-0.4.0.sol-0.7.2-compact.json | 0 .../unchecked-0.4.0.sol-0.7.2-legacy.json | 0 .../unchecked-0.4.0.sol-0.7.3-compact.json | 0 .../unchecked-0.4.0.sol-0.7.3-legacy.json | 0 .../unchecked-0.4.0.sol-0.7.4-compact.json | 0 .../unchecked-0.4.0.sol-0.7.4-legacy.json | 0 .../unchecked-0.4.0.sol-0.7.5-compact.json | 0 .../unchecked-0.4.0.sol-0.7.5-legacy.json | 0 .../unchecked-0.4.0.sol-0.7.6-compact.json | 0 .../unchecked-0.4.0.sol-0.7.6-legacy.json | 0 .../unchecked-0.8.0.sol-0.8.0-compact.json | 0 .../unchecked-0.8.0.sol-0.8.1-compact.json | 0 .../unchecked-0.8.0.sol-0.8.10-compact.json | 0 .../unchecked-0.8.0.sol-0.8.11-compact.json | 0 .../unchecked-0.8.0.sol-0.8.12-compact.json | 0 .../unchecked-0.8.0.sol-0.8.13-compact.json | 0 .../unchecked-0.8.0.sol-0.8.14-compact.json | 0 .../unchecked-0.8.0.sol-0.8.15-compact.json | 0 .../unchecked-0.8.0.sol-0.8.2-compact.json | 0 .../unchecked-0.8.0.sol-0.8.3-compact.json | 0 .../unchecked-0.8.0.sol-0.8.4-compact.json | 0 .../unchecked-0.8.0.sol-0.8.5-compact.json | 0 .../unchecked-0.8.0.sol-0.8.6-compact.json | 0 .../unchecked-0.8.0.sol-0.8.7-compact.json | 0 .../unchecked-0.8.0.sol-0.8.8-compact.json | 0 .../unchecked-0.8.0.sol-0.8.9-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.0-compact.json | 0 ...obal_variables-0.4.0.sol-0.4.0-legacy.json | 0 ...bal_variables-0.4.0.sol-0.4.1-compact.json | 0 ...obal_variables-0.4.0.sol-0.4.1-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.10-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.10-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.11-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.11-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.12-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.12-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.13-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.13-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.14-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.14-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.15-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.15-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.16-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.16-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.17-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.17-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.18-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.18-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.19-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.19-legacy.json | 0 ...bal_variables-0.4.0.sol-0.4.2-compact.json | 0 ...obal_variables-0.4.0.sol-0.4.2-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.20-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.20-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.21-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.21-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.22-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.22-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.23-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.23-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.24-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.24-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.25-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.25-legacy.json | 0 ...al_variables-0.4.0.sol-0.4.26-compact.json | 0 ...bal_variables-0.4.0.sol-0.4.26-legacy.json | 0 ...bal_variables-0.4.0.sol-0.4.3-compact.json | 0 ...obal_variables-0.4.0.sol-0.4.3-legacy.json | 0 ...bal_variables-0.4.0.sol-0.4.4-compact.json | 0 ...obal_variables-0.4.0.sol-0.4.4-legacy.json | 0 ...bal_variables-0.4.0.sol-0.4.5-compact.json | 0 ...obal_variables-0.4.0.sol-0.4.5-legacy.json | 0 ...bal_variables-0.4.0.sol-0.4.6-compact.json | 0 ...obal_variables-0.4.0.sol-0.4.6-legacy.json | 0 ...bal_variables-0.4.0.sol-0.4.7-compact.json | 0 ...obal_variables-0.4.0.sol-0.4.7-legacy.json | 0 ...bal_variables-0.4.0.sol-0.4.8-compact.json | 0 ...obal_variables-0.4.0.sol-0.4.8-legacy.json | 0 ...bal_variables-0.4.0.sol-0.4.9-compact.json | 0 ...obal_variables-0.4.0.sol-0.4.9-legacy.json | 0 ...bal_variables-0.5.0.sol-0.5.0-compact.json | 0 ...obal_variables-0.5.0.sol-0.5.0-legacy.json | 0 ...bal_variables-0.5.0.sol-0.5.1-compact.json | 0 ...obal_variables-0.5.0.sol-0.5.1-legacy.json | 0 ...bal_variables-0.5.0.sol-0.5.2-compact.json | 0 ...obal_variables-0.5.0.sol-0.5.2-legacy.json | 0 ...bal_variables-0.5.0.sol-0.5.3-compact.json | 0 ...obal_variables-0.5.0.sol-0.5.3-legacy.json | 0 ...al_variables-0.5.4.sol-0.5.10-compact.json | 0 ...bal_variables-0.5.4.sol-0.5.10-legacy.json | 0 ...al_variables-0.5.4.sol-0.5.11-compact.json | 0 ...bal_variables-0.5.4.sol-0.5.11-legacy.json | 0 ...al_variables-0.5.4.sol-0.5.12-compact.json | 0 ...bal_variables-0.5.4.sol-0.5.12-legacy.json | 0 ...al_variables-0.5.4.sol-0.5.13-compact.json | 0 ...bal_variables-0.5.4.sol-0.5.13-legacy.json | 0 ...al_variables-0.5.4.sol-0.5.14-compact.json | 0 ...bal_variables-0.5.4.sol-0.5.14-legacy.json | 0 ...al_variables-0.5.4.sol-0.5.15-compact.json | 0 ...bal_variables-0.5.4.sol-0.5.15-legacy.json | 0 ...al_variables-0.5.4.sol-0.5.16-compact.json | 0 ...bal_variables-0.5.4.sol-0.5.16-legacy.json | 0 ...al_variables-0.5.4.sol-0.5.17-compact.json | 0 ...bal_variables-0.5.4.sol-0.5.17-legacy.json | 0 ...bal_variables-0.5.4.sol-0.5.4-compact.json | 0 ...obal_variables-0.5.4.sol-0.5.4-legacy.json | 0 ...bal_variables-0.5.4.sol-0.5.5-compact.json | 0 ...obal_variables-0.5.4.sol-0.5.5-legacy.json | 0 ...bal_variables-0.5.4.sol-0.5.6-compact.json | 0 ...obal_variables-0.5.4.sol-0.5.6-legacy.json | 0 ...bal_variables-0.5.4.sol-0.5.7-compact.json | 0 ...obal_variables-0.5.4.sol-0.5.7-legacy.json | 0 ...bal_variables-0.5.4.sol-0.5.8-compact.json | 0 ...obal_variables-0.5.4.sol-0.5.8-legacy.json | 0 ...bal_variables-0.5.4.sol-0.5.9-compact.json | 0 ...obal_variables-0.5.4.sol-0.5.9-legacy.json | 0 ...bal_variables-0.6.0.sol-0.6.0-compact.json | 0 ...obal_variables-0.6.0.sol-0.6.0-legacy.json | 0 ...bal_variables-0.6.0.sol-0.6.1-compact.json | 0 ...obal_variables-0.6.0.sol-0.6.1-legacy.json | 0 ...al_variables-0.6.0.sol-0.6.10-compact.json | 0 ...bal_variables-0.6.0.sol-0.6.10-legacy.json | 0 ...al_variables-0.6.0.sol-0.6.11-compact.json | 0 ...bal_variables-0.6.0.sol-0.6.11-legacy.json | 0 ...al_variables-0.6.0.sol-0.6.12-compact.json | 0 ...bal_variables-0.6.0.sol-0.6.12-legacy.json | 0 ...bal_variables-0.6.0.sol-0.6.2-compact.json | 0 ...obal_variables-0.6.0.sol-0.6.2-legacy.json | 0 ...bal_variables-0.6.0.sol-0.6.3-compact.json | 0 ...obal_variables-0.6.0.sol-0.6.3-legacy.json | 0 ...bal_variables-0.6.0.sol-0.6.4-compact.json | 0 ...obal_variables-0.6.0.sol-0.6.4-legacy.json | 0 ...bal_variables-0.6.0.sol-0.6.5-compact.json | 0 ...obal_variables-0.6.0.sol-0.6.5-legacy.json | 0 ...bal_variables-0.6.0.sol-0.6.6-compact.json | 0 ...obal_variables-0.6.0.sol-0.6.6-legacy.json | 0 ...bal_variables-0.6.0.sol-0.6.7-compact.json | 0 ...obal_variables-0.6.0.sol-0.6.7-legacy.json | 0 ...bal_variables-0.6.0.sol-0.6.8-compact.json | 0 ...obal_variables-0.6.0.sol-0.6.8-legacy.json | 0 ...bal_variables-0.6.0.sol-0.6.9-compact.json | 0 ...obal_variables-0.6.0.sol-0.6.9-legacy.json | 0 ...bal_variables-0.7.0.sol-0.7.0-compact.json | 0 ...obal_variables-0.7.0.sol-0.7.0-legacy.json | 0 ...bal_variables-0.7.0.sol-0.7.1-compact.json | 0 ...obal_variables-0.7.0.sol-0.7.1-legacy.json | 0 ...bal_variables-0.7.0.sol-0.7.2-compact.json | 0 ...obal_variables-0.7.0.sol-0.7.2-legacy.json | 0 ...bal_variables-0.7.0.sol-0.7.3-compact.json | 0 ...obal_variables-0.7.0.sol-0.7.3-legacy.json | 0 ...bal_variables-0.7.0.sol-0.7.4-compact.json | 0 ...obal_variables-0.7.0.sol-0.7.4-legacy.json | 0 ...bal_variables-0.7.0.sol-0.7.5-compact.json | 0 ...obal_variables-0.7.0.sol-0.7.5-legacy.json | 0 ...bal_variables-0.7.0.sol-0.7.6-compact.json | 0 ...obal_variables-0.7.0.sol-0.7.6-legacy.json | 0 ...bal_variables-0.8.0.sol-0.8.0-compact.json | 0 ...bal_variables-0.8.0.sol-0.8.1-compact.json | 0 ...al_variables-0.8.0.sol-0.8.10-compact.json | 0 ...al_variables-0.8.0.sol-0.8.11-compact.json | 0 ...al_variables-0.8.0.sol-0.8.12-compact.json | 0 ...al_variables-0.8.0.sol-0.8.13-compact.json | 0 ...al_variables-0.8.0.sol-0.8.14-compact.json | 0 ...al_variables-0.8.0.sol-0.8.15-compact.json | 0 ...bal_variables-0.8.0.sol-0.8.2-compact.json | 0 ...bal_variables-0.8.0.sol-0.8.3-compact.json | 0 ...bal_variables-0.8.0.sol-0.8.4-compact.json | 0 ...bal_variables-0.8.0.sol-0.8.5-compact.json | 0 ...bal_variables-0.8.0.sol-0.8.6-compact.json | 0 ...bal_variables-0.8.0.sol-0.8.7-compact.json | 0 ...bal_variables-0.8.0.sol-0.8.8-compact.json | 0 ...bal_variables-0.8.0.sol-0.8.9-compact.json | 0 ...bal_variables-0.8.4.sol-0.8.4-compact.json | 0 ...bal_variables-0.8.4.sol-0.8.5-compact.json | 0 ...bal_variables-0.8.4.sol-0.8.6-compact.json | 0 ...bal_variables-0.8.7.sol-0.8.7-compact.json | 0 ...bal_variables-0.8.7.sol-0.8.8-compact.json | 0 ...bal_variables-0.8.7.sol-0.8.9-compact.json | 0 ...user_defined_types.sol-0.8.10-compact.json | 0 ...user_defined_types.sol-0.8.11-compact.json | 0 ...user_defined_types.sol-0.8.12-compact.json | 0 .../user_defined_types.sol-0.8.8-compact.json | 0 .../argument-0.8.8.sol-0.8.10-compact.json | 0 .../argument-0.8.8.sol-0.8.11-compact.json | 0 .../argument-0.8.8.sol-0.8.12-compact.json | 0 .../argument-0.8.8.sol-0.8.13-compact.json | 0 .../argument-0.8.8.sol-0.8.14-compact.json | 0 .../argument-0.8.8.sol-0.8.15-compact.json | 0 .../argument-0.8.8.sol-0.8.8-compact.json | 0 .../calldata-0.8.8.sol-0.8.10-compact.json | 0 .../calldata-0.8.8.sol-0.8.11-compact.json | 0 .../calldata-0.8.8.sol-0.8.12-compact.json | 0 .../calldata-0.8.8.sol-0.8.13-compact.json | 0 .../calldata-0.8.8.sol-0.8.14-compact.json | 0 .../calldata-0.8.8.sol-0.8.15-compact.json | 0 .../calldata-0.8.8.sol-0.8.8-compact.json | 0 .../constant-0.8.8.sol-0.8.10-compact.json | 0 .../constant-0.8.8.sol-0.8.11-compact.json | 0 .../constant-0.8.8.sol-0.8.12-compact.json | 0 .../constant-0.8.8.sol-0.8.13-compact.json | 0 .../constant-0.8.8.sol-0.8.14-compact.json | 0 .../constant-0.8.8.sol-0.8.15-compact.json | 0 .../constant-0.8.8.sol-0.8.8-compact.json | 0 .../erc20-0.8.8.sol-0.8.10-compact.json | 0 .../erc20-0.8.8.sol-0.8.11-compact.json | 0 .../erc20-0.8.8.sol-0.8.12-compact.json | 0 .../erc20-0.8.8.sol-0.8.13-compact.json | 0 .../erc20-0.8.8.sol-0.8.14-compact.json | 0 .../erc20-0.8.8.sol-0.8.15-compact.json | 0 .../erc20-0.8.8.sol-0.8.8-compact.json | 0 ..._parenthesis-0.8.8.sol-0.8.10-compact.json | 0 ..._parenthesis-0.8.8.sol-0.8.11-compact.json | 0 ..._parenthesis-0.8.8.sol-0.8.12-compact.json | 0 ..._parenthesis-0.8.8.sol-0.8.13-compact.json | 0 ..._parenthesis-0.8.8.sol-0.8.14-compact.json | 0 ..._parenthesis-0.8.8.sol-0.8.15-compact.json | 0 ...n_parenthesis-0.8.8.sol-0.8.8-compact.json | 0 .../top-level-0.8.8.sol-0.8.10-compact.json | 0 .../top-level-0.8.8.sol-0.8.11-compact.json | 0 .../top-level-0.8.8.sol-0.8.12-compact.json | 0 .../top-level-0.8.8.sol-0.8.13-compact.json | 0 .../top-level-0.8.8.sol-0.8.14-compact.json | 0 .../top-level-0.8.8.sol-0.8.15-compact.json | 0 .../top-level-0.8.8.sol-0.8.8-compact.json | 0 ...efined_types-0.8.8.sol-0.8.10-compact.json | 0 ...efined_types-0.8.8.sol-0.8.11-compact.json | 0 ...efined_types-0.8.8.sol-0.8.12-compact.json | 0 ...efined_types-0.8.8.sol-0.8.13-compact.json | 0 ...efined_types-0.8.8.sol-0.8.14-compact.json | 0 ...efined_types-0.8.8.sol-0.8.15-compact.json | 0 ...defined_types-0.8.8.sol-0.8.8-compact.json | 0 .../using-for-0.8.8.sol-0.8.10-compact.json | 0 .../using-for-0.8.8.sol-0.8.11-compact.json | 0 .../using-for-0.8.8.sol-0.8.12-compact.json | 0 .../using-for-0.8.8.sol-0.8.13-compact.json | 0 .../using-for-0.8.8.sol-0.8.14-compact.json | 0 .../using-for-0.8.8.sol-0.8.15-compact.json | 0 .../using-for-0.8.8.sol-0.8.8-compact.json | 0 .../using-for-0.4.0.sol-0.4.0-compact.json | 0 .../using-for-0.4.0.sol-0.4.0-legacy.json | 0 .../using-for-0.4.1.sol-0.4.1-compact.json | 0 .../using-for-0.4.1.sol-0.4.1-legacy.json | 0 .../using-for-0.4.1.sol-0.4.10-compact.json | 0 .../using-for-0.4.1.sol-0.4.10-legacy.json | 0 .../using-for-0.4.1.sol-0.4.11-compact.json | 0 .../using-for-0.4.1.sol-0.4.11-legacy.json | 0 .../using-for-0.4.1.sol-0.4.12-compact.json | 0 .../using-for-0.4.1.sol-0.4.12-legacy.json | 0 .../using-for-0.4.1.sol-0.4.13-compact.json | 0 .../using-for-0.4.1.sol-0.4.13-legacy.json | 0 .../using-for-0.4.1.sol-0.4.14-compact.json | 0 .../using-for-0.4.1.sol-0.4.14-legacy.json | 0 .../using-for-0.4.1.sol-0.4.15-compact.json | 0 .../using-for-0.4.1.sol-0.4.15-legacy.json | 0 .../using-for-0.4.1.sol-0.4.16-compact.json | 0 .../using-for-0.4.1.sol-0.4.16-legacy.json | 0 .../using-for-0.4.1.sol-0.4.17-compact.json | 0 .../using-for-0.4.1.sol-0.4.17-legacy.json | 0 .../using-for-0.4.1.sol-0.4.18-compact.json | 0 .../using-for-0.4.1.sol-0.4.18-legacy.json | 0 .../using-for-0.4.1.sol-0.4.19-compact.json | 0 .../using-for-0.4.1.sol-0.4.19-legacy.json | 0 .../using-for-0.4.1.sol-0.4.2-compact.json | 0 .../using-for-0.4.1.sol-0.4.2-legacy.json | 0 .../using-for-0.4.1.sol-0.4.20-compact.json | 0 .../using-for-0.4.1.sol-0.4.20-legacy.json | 0 .../using-for-0.4.1.sol-0.4.21-compact.json | 0 .../using-for-0.4.1.sol-0.4.21-legacy.json | 0 .../using-for-0.4.1.sol-0.4.22-compact.json | 0 .../using-for-0.4.1.sol-0.4.22-legacy.json | 0 .../using-for-0.4.1.sol-0.4.23-compact.json | 0 .../using-for-0.4.1.sol-0.4.23-legacy.json | 0 .../using-for-0.4.1.sol-0.4.24-compact.json | 0 .../using-for-0.4.1.sol-0.4.24-legacy.json | 0 .../using-for-0.4.1.sol-0.4.25-compact.json | 0 .../using-for-0.4.1.sol-0.4.25-legacy.json | 0 .../using-for-0.4.1.sol-0.4.26-compact.json | 0 .../using-for-0.4.1.sol-0.4.26-legacy.json | 0 .../using-for-0.4.1.sol-0.4.3-compact.json | 0 .../using-for-0.4.1.sol-0.4.3-legacy.json | 0 .../using-for-0.4.1.sol-0.4.4-compact.json | 0 .../using-for-0.4.1.sol-0.4.4-legacy.json | 0 .../using-for-0.4.1.sol-0.4.5-compact.json | 0 .../using-for-0.4.1.sol-0.4.5-legacy.json | 0 .../using-for-0.4.1.sol-0.4.6-compact.json | 0 .../using-for-0.4.1.sol-0.4.6-legacy.json | 0 .../using-for-0.4.1.sol-0.4.7-compact.json | 0 .../using-for-0.4.1.sol-0.4.7-legacy.json | 0 .../using-for-0.4.1.sol-0.4.8-compact.json | 0 .../using-for-0.4.1.sol-0.4.8-legacy.json | 0 .../using-for-0.4.1.sol-0.4.9-compact.json | 0 .../using-for-0.4.1.sol-0.4.9-legacy.json | 0 .../using-for-0.4.1.sol-0.5.0-compact.json | 0 .../using-for-0.4.1.sol-0.5.0-legacy.json | 0 .../using-for-0.4.1.sol-0.5.1-compact.json | 0 .../using-for-0.4.1.sol-0.5.1-legacy.json | 0 .../using-for-0.4.1.sol-0.5.10-compact.json | 0 .../using-for-0.4.1.sol-0.5.10-legacy.json | 0 .../using-for-0.4.1.sol-0.5.11-compact.json | 0 .../using-for-0.4.1.sol-0.5.11-legacy.json | 0 .../using-for-0.4.1.sol-0.5.12-compact.json | 0 .../using-for-0.4.1.sol-0.5.12-legacy.json | 0 .../using-for-0.4.1.sol-0.5.13-compact.json | 0 .../using-for-0.4.1.sol-0.5.13-legacy.json | 0 .../using-for-0.4.1.sol-0.5.14-compact.json | 0 .../using-for-0.4.1.sol-0.5.14-legacy.json | 0 .../using-for-0.4.1.sol-0.5.15-compact.json | 0 .../using-for-0.4.1.sol-0.5.15-legacy.json | 0 .../using-for-0.4.1.sol-0.5.16-compact.json | 0 .../using-for-0.4.1.sol-0.5.16-legacy.json | 0 .../using-for-0.4.1.sol-0.5.17-compact.json | 0 .../using-for-0.4.1.sol-0.5.17-legacy.json | 0 .../using-for-0.4.1.sol-0.5.2-compact.json | 0 .../using-for-0.4.1.sol-0.5.2-legacy.json | 0 .../using-for-0.4.1.sol-0.5.3-compact.json | 0 .../using-for-0.4.1.sol-0.5.3-legacy.json | 0 .../using-for-0.4.1.sol-0.5.4-compact.json | 0 .../using-for-0.4.1.sol-0.5.4-legacy.json | 0 .../using-for-0.4.1.sol-0.5.5-compact.json | 0 .../using-for-0.4.1.sol-0.5.5-legacy.json | 0 .../using-for-0.4.1.sol-0.5.6-compact.json | 0 .../using-for-0.4.1.sol-0.5.6-legacy.json | 0 .../using-for-0.4.1.sol-0.5.7-compact.json | 0 .../using-for-0.4.1.sol-0.5.7-legacy.json | 0 .../using-for-0.4.1.sol-0.5.8-compact.json | 0 .../using-for-0.4.1.sol-0.5.8-legacy.json | 0 .../using-for-0.4.1.sol-0.5.9-compact.json | 0 .../using-for-0.4.1.sol-0.5.9-legacy.json | 0 .../using-for-0.4.1.sol-0.6.0-compact.json | 0 .../using-for-0.4.1.sol-0.6.0-legacy.json | 0 .../using-for-0.4.1.sol-0.6.1-compact.json | 0 .../using-for-0.4.1.sol-0.6.1-legacy.json | 0 .../using-for-0.4.1.sol-0.6.10-compact.json | 0 .../using-for-0.4.1.sol-0.6.10-legacy.json | 0 .../using-for-0.4.1.sol-0.6.11-compact.json | 0 .../using-for-0.4.1.sol-0.6.11-legacy.json | 0 .../using-for-0.4.1.sol-0.6.12-compact.json | 0 .../using-for-0.4.1.sol-0.6.12-legacy.json | 0 .../using-for-0.4.1.sol-0.6.2-compact.json | 0 .../using-for-0.4.1.sol-0.6.2-legacy.json | 0 .../using-for-0.4.1.sol-0.6.3-compact.json | 0 .../using-for-0.4.1.sol-0.6.3-legacy.json | 0 .../using-for-0.4.1.sol-0.6.4-compact.json | 0 .../using-for-0.4.1.sol-0.6.4-legacy.json | 0 .../using-for-0.4.1.sol-0.6.5-compact.json | 0 .../using-for-0.4.1.sol-0.6.5-legacy.json | 0 .../using-for-0.4.1.sol-0.6.6-compact.json | 0 .../using-for-0.4.1.sol-0.6.6-legacy.json | 0 .../using-for-0.4.1.sol-0.6.7-compact.json | 0 .../using-for-0.4.1.sol-0.6.7-legacy.json | 0 .../using-for-0.4.1.sol-0.6.8-compact.json | 0 .../using-for-0.4.1.sol-0.6.8-legacy.json | 0 .../using-for-0.4.1.sol-0.6.9-compact.json | 0 .../using-for-0.4.1.sol-0.6.9-legacy.json | 0 .../using-for-0.4.1.sol-0.7.0-compact.json | 0 .../using-for-0.4.1.sol-0.7.0-legacy.json | 0 .../using-for-0.4.1.sol-0.7.1-compact.json | 0 .../using-for-0.4.1.sol-0.7.1-legacy.json | 0 .../using-for-0.4.1.sol-0.7.2-compact.json | 0 .../using-for-0.4.1.sol-0.7.2-legacy.json | 0 .../using-for-0.4.1.sol-0.7.3-compact.json | 0 .../using-for-0.4.1.sol-0.7.3-legacy.json | 0 .../using-for-0.4.1.sol-0.7.4-compact.json | 0 .../using-for-0.4.1.sol-0.7.4-legacy.json | 0 .../using-for-0.4.1.sol-0.7.5-compact.json | 0 .../using-for-0.4.1.sol-0.7.5-legacy.json | 0 .../using-for-0.4.1.sol-0.7.6-compact.json | 0 .../using-for-0.4.1.sol-0.7.6-legacy.json | 0 .../using-for-0.4.1.sol-0.8.0-compact.json | 0 .../using-for-0.4.1.sol-0.8.1-compact.json | 0 .../using-for-0.4.1.sol-0.8.10-compact.json | 0 .../using-for-0.4.1.sol-0.8.11-compact.json | 0 .../using-for-0.4.1.sol-0.8.12-compact.json | 0 .../using-for-0.4.1.sol-0.8.13-compact.json | 0 .../using-for-0.4.1.sol-0.8.14-compact.json | 0 .../using-for-0.4.1.sol-0.8.15-compact.json | 0 .../using-for-0.4.1.sol-0.8.2-compact.json | 0 .../using-for-0.4.1.sol-0.8.3-compact.json | 0 .../using-for-0.4.1.sol-0.8.4-compact.json | 0 .../using-for-0.4.1.sol-0.8.5-compact.json | 0 .../using-for-0.4.1.sol-0.8.6-compact.json | 0 .../using-for-0.4.1.sol-0.8.7-compact.json | 0 .../using-for-0.4.1.sol-0.8.8-compact.json | 0 .../using-for-0.4.1.sol-0.8.9-compact.json | 0 .../using-for-1-0.8.0.sol-0.8.15-compact.json | 0 .../using-for-2-0.8.0.sol-0.8.15-compact.json | 0 .../using-for-3-0.8.0.sol-0.8.15-compact.json | 0 .../using-for-4-0.8.0.sol-0.8.15-compact.json | 0 ...ias-contract-0.8.0.sol-0.8.15-compact.json | 0 ...as-top-level-0.8.0.sol-0.8.15-compact.json | 0 ...tions-list-1-0.8.0.sol-0.8.15-compact.json | 0 ...tions-list-2-0.8.0.sol-0.8.15-compact.json | 0 ...tions-list-3-0.8.0.sol-0.8.15-compact.json | 0 ...tions-list-4-0.8.0.sol-0.8.15-compact.json | 0 ...g-for-global-0.8.0.sol-0.8.15-compact.json | 0 ...r-in-library-0.8.0.sol-0.8.15-compact.json | 0 .../variable-0.4.0.sol-0.4.0-compact.json | 0 .../variable-0.4.0.sol-0.4.0-legacy.json | 0 .../variable-0.4.0.sol-0.4.1-compact.json | 0 .../variable-0.4.0.sol-0.4.1-legacy.json | 0 .../variable-0.4.0.sol-0.4.10-compact.json | 0 .../variable-0.4.0.sol-0.4.10-legacy.json | 0 .../variable-0.4.0.sol-0.4.11-compact.json | 0 .../variable-0.4.0.sol-0.4.11-legacy.json | 0 .../variable-0.4.0.sol-0.4.12-compact.json | 0 .../variable-0.4.0.sol-0.4.12-legacy.json | 0 .../variable-0.4.0.sol-0.4.13-compact.json | 0 .../variable-0.4.0.sol-0.4.13-legacy.json | 0 .../variable-0.4.0.sol-0.4.14-compact.json | 0 .../variable-0.4.0.sol-0.4.14-legacy.json | 0 .../variable-0.4.0.sol-0.4.15-compact.json | 0 .../variable-0.4.0.sol-0.4.15-legacy.json | 0 .../variable-0.4.0.sol-0.4.16-compact.json | 0 .../variable-0.4.0.sol-0.4.16-legacy.json | 0 .../variable-0.4.0.sol-0.4.17-compact.json | 0 .../variable-0.4.0.sol-0.4.17-legacy.json | 0 .../variable-0.4.0.sol-0.4.18-compact.json | 0 .../variable-0.4.0.sol-0.4.18-legacy.json | 0 .../variable-0.4.0.sol-0.4.19-compact.json | 0 .../variable-0.4.0.sol-0.4.19-legacy.json | 0 .../variable-0.4.0.sol-0.4.2-compact.json | 0 .../variable-0.4.0.sol-0.4.2-legacy.json | 0 .../variable-0.4.0.sol-0.4.20-compact.json | 0 .../variable-0.4.0.sol-0.4.20-legacy.json | 0 .../variable-0.4.0.sol-0.4.21-compact.json | 0 .../variable-0.4.0.sol-0.4.21-legacy.json | 0 .../variable-0.4.0.sol-0.4.22-compact.json | 0 .../variable-0.4.0.sol-0.4.22-legacy.json | 0 .../variable-0.4.0.sol-0.4.23-compact.json | 0 .../variable-0.4.0.sol-0.4.23-legacy.json | 0 .../variable-0.4.0.sol-0.4.24-compact.json | 0 .../variable-0.4.0.sol-0.4.24-legacy.json | 0 .../variable-0.4.0.sol-0.4.25-compact.json | 0 .../variable-0.4.0.sol-0.4.25-legacy.json | 0 .../variable-0.4.0.sol-0.4.26-compact.json | 0 .../variable-0.4.0.sol-0.4.26-legacy.json | 0 .../variable-0.4.0.sol-0.4.3-compact.json | 0 .../variable-0.4.0.sol-0.4.3-legacy.json | 0 .../variable-0.4.0.sol-0.4.4-compact.json | 0 .../variable-0.4.0.sol-0.4.4-legacy.json | 0 .../variable-0.4.0.sol-0.4.5-compact.json | 0 .../variable-0.4.0.sol-0.4.5-legacy.json | 0 .../variable-0.4.0.sol-0.4.6-compact.json | 0 .../variable-0.4.0.sol-0.4.6-legacy.json | 0 .../variable-0.4.0.sol-0.4.7-compact.json | 0 .../variable-0.4.0.sol-0.4.7-legacy.json | 0 .../variable-0.4.0.sol-0.4.8-compact.json | 0 .../variable-0.4.0.sol-0.4.8-legacy.json | 0 .../variable-0.4.0.sol-0.4.9-compact.json | 0 .../variable-0.4.0.sol-0.4.9-legacy.json | 0 .../variable-0.4.14.sol-0.4.14-compact.json | 0 .../variable-0.4.14.sol-0.4.14-legacy.json | 0 .../variable-0.4.14.sol-0.4.15-compact.json | 0 .../variable-0.4.14.sol-0.4.15-legacy.json | 0 .../variable-0.4.16.sol-0.4.16-compact.json | 0 .../variable-0.4.16.sol-0.4.16-legacy.json | 0 .../variable-0.4.16.sol-0.4.17-compact.json | 0 .../variable-0.4.16.sol-0.4.17-legacy.json | 0 .../variable-0.4.16.sol-0.4.18-compact.json | 0 .../variable-0.4.16.sol-0.4.18-legacy.json | 0 .../variable-0.4.16.sol-0.4.19-compact.json | 0 .../variable-0.4.16.sol-0.4.19-legacy.json | 0 .../variable-0.4.16.sol-0.4.20-compact.json | 0 .../variable-0.4.16.sol-0.4.20-legacy.json | 0 .../variable-0.4.16.sol-0.4.21-compact.json | 0 .../variable-0.4.16.sol-0.4.21-legacy.json | 0 .../variable-0.4.16.sol-0.4.22-compact.json | 0 .../variable-0.4.16.sol-0.4.22-legacy.json | 0 .../variable-0.4.16.sol-0.4.23-compact.json | 0 .../variable-0.4.16.sol-0.4.23-legacy.json | 0 .../variable-0.4.16.sol-0.4.24-compact.json | 0 .../variable-0.4.16.sol-0.4.24-legacy.json | 0 .../variable-0.4.16.sol-0.4.25-compact.json | 0 .../variable-0.4.16.sol-0.4.25-legacy.json | 0 .../variable-0.4.16.sol-0.4.26-compact.json | 0 .../variable-0.4.16.sol-0.4.26-legacy.json | 0 .../variable-0.4.5.sol-0.4.10-compact.json | 0 .../variable-0.4.5.sol-0.4.10-legacy.json | 0 .../variable-0.4.5.sol-0.4.11-compact.json | 0 .../variable-0.4.5.sol-0.4.11-legacy.json | 0 .../variable-0.4.5.sol-0.4.12-compact.json | 0 .../variable-0.4.5.sol-0.4.12-legacy.json | 0 .../variable-0.4.5.sol-0.4.13-compact.json | 0 .../variable-0.4.5.sol-0.4.13-legacy.json | 0 .../variable-0.4.5.sol-0.4.5-compact.json | 0 .../variable-0.4.5.sol-0.4.5-legacy.json | 0 .../variable-0.4.5.sol-0.4.6-compact.json | 0 .../variable-0.4.5.sol-0.4.6-legacy.json | 0 .../variable-0.4.5.sol-0.4.7-compact.json | 0 .../variable-0.4.5.sol-0.4.7-legacy.json | 0 .../variable-0.4.5.sol-0.4.8-compact.json | 0 .../variable-0.4.5.sol-0.4.8-legacy.json | 0 .../variable-0.4.5.sol-0.4.9-compact.json | 0 .../variable-0.4.5.sol-0.4.9-legacy.json | 0 .../variable-0.5.0.sol-0.5.0-compact.json | 0 .../variable-0.5.0.sol-0.5.0-legacy.json | 0 .../variable-0.5.0.sol-0.5.1-compact.json | 0 .../variable-0.5.0.sol-0.5.1-legacy.json | 0 .../variable-0.5.0.sol-0.5.10-compact.json | 0 .../variable-0.5.0.sol-0.5.10-legacy.json | 0 .../variable-0.5.0.sol-0.5.11-compact.json | 0 .../variable-0.5.0.sol-0.5.11-legacy.json | 0 .../variable-0.5.0.sol-0.5.12-compact.json | 0 .../variable-0.5.0.sol-0.5.12-legacy.json | 0 .../variable-0.5.0.sol-0.5.13-compact.json | 0 .../variable-0.5.0.sol-0.5.13-legacy.json | 0 .../variable-0.5.0.sol-0.5.14-compact.json | 0 .../variable-0.5.0.sol-0.5.14-legacy.json | 0 .../variable-0.5.0.sol-0.5.15-compact.json | 0 .../variable-0.5.0.sol-0.5.15-legacy.json | 0 .../variable-0.5.0.sol-0.5.16-compact.json | 0 .../variable-0.5.0.sol-0.5.16-legacy.json | 0 .../variable-0.5.0.sol-0.5.17-compact.json | 0 .../variable-0.5.0.sol-0.5.17-legacy.json | 0 .../variable-0.5.0.sol-0.5.2-compact.json | 0 .../variable-0.5.0.sol-0.5.2-legacy.json | 0 .../variable-0.5.0.sol-0.5.3-compact.json | 0 .../variable-0.5.0.sol-0.5.3-legacy.json | 0 .../variable-0.5.0.sol-0.5.4-compact.json | 0 .../variable-0.5.0.sol-0.5.4-legacy.json | 0 .../variable-0.5.0.sol-0.5.5-compact.json | 0 .../variable-0.5.0.sol-0.5.5-legacy.json | 0 .../variable-0.5.0.sol-0.5.6-compact.json | 0 .../variable-0.5.0.sol-0.5.6-legacy.json | 0 .../variable-0.5.0.sol-0.5.7-compact.json | 0 .../variable-0.5.0.sol-0.5.7-legacy.json | 0 .../variable-0.5.0.sol-0.5.8-compact.json | 0 .../variable-0.5.0.sol-0.5.8-legacy.json | 0 .../variable-0.5.0.sol-0.5.9-compact.json | 0 .../variable-0.5.0.sol-0.5.9-legacy.json | 0 .../variable-0.5.0.sol-0.6.0-compact.json | 0 .../variable-0.5.0.sol-0.6.0-legacy.json | 0 .../variable-0.5.0.sol-0.6.1-compact.json | 0 .../variable-0.5.0.sol-0.6.1-legacy.json | 0 .../variable-0.5.0.sol-0.6.2-compact.json | 0 .../variable-0.5.0.sol-0.6.2-legacy.json | 0 .../variable-0.5.0.sol-0.6.3-compact.json | 0 .../variable-0.5.0.sol-0.6.3-legacy.json | 0 .../variable-0.5.0.sol-0.6.4-compact.json | 0 .../variable-0.5.0.sol-0.6.4-legacy.json | 0 .../variable-0.6.5.sol-0.6.5-compact.json | 0 .../variable-0.6.5.sol-0.6.5-legacy.json | 0 .../variable-0.6.5.sol-0.6.6-compact.json | 0 .../variable-0.6.5.sol-0.6.6-legacy.json | 0 .../variable-0.6.5.sol-0.6.7-compact.json | 0 .../variable-0.6.5.sol-0.6.7-legacy.json | 0 .../variable-0.6.5.sol-0.6.8-compact.json | 0 .../variable-0.6.5.sol-0.6.8-legacy.json | 0 .../variable-0.6.9.sol-0.6.10-compact.json | 0 .../variable-0.6.9.sol-0.6.10-legacy.json | 0 .../variable-0.6.9.sol-0.6.11-compact.json | 0 .../variable-0.6.9.sol-0.6.11-legacy.json | 0 .../variable-0.6.9.sol-0.6.12-compact.json | 0 .../variable-0.6.9.sol-0.6.12-legacy.json | 0 .../variable-0.6.9.sol-0.6.9-compact.json | 0 .../variable-0.6.9.sol-0.6.9-legacy.json | 0 .../variable-0.6.9.sol-0.7.0-compact.json | 0 .../variable-0.6.9.sol-0.7.0-legacy.json | 0 .../variable-0.6.9.sol-0.7.1-compact.json | 0 .../variable-0.6.9.sol-0.7.1-legacy.json | 0 .../variable-0.6.9.sol-0.7.2-compact.json | 0 .../variable-0.6.9.sol-0.7.2-legacy.json | 0 .../variable-0.6.9.sol-0.7.3-compact.json | 0 .../variable-0.6.9.sol-0.7.3-legacy.json | 0 .../variable-0.6.9.sol-0.7.4-compact.json | 0 .../variable-0.6.9.sol-0.7.4-legacy.json | 0 .../variable-0.6.9.sol-0.7.5-compact.json | 0 .../variable-0.6.9.sol-0.7.5-legacy.json | 0 .../variable-0.6.9.sol-0.7.6-compact.json | 0 .../variable-0.6.9.sol-0.7.6-legacy.json | 0 .../variable-0.8.0.sol-0.8.0-compact.json | 0 .../variable-0.8.0.sol-0.8.1-compact.json | 0 .../variable-0.8.0.sol-0.8.10-compact.json | 0 .../variable-0.8.0.sol-0.8.11-compact.json | 0 .../variable-0.8.0.sol-0.8.12-compact.json | 0 .../variable-0.8.0.sol-0.8.13-compact.json | 0 .../variable-0.8.0.sol-0.8.14-compact.json | 0 .../variable-0.8.0.sol-0.8.15-compact.json | 0 .../variable-0.8.0.sol-0.8.2-compact.json | 0 .../variable-0.8.0.sol-0.8.3-compact.json | 0 .../variable-0.8.0.sol-0.8.4-compact.json | 0 .../variable-0.8.0.sol-0.8.5-compact.json | 0 .../variable-0.8.0.sol-0.8.6-compact.json | 0 .../variable-0.8.0.sol-0.8.7-compact.json | 0 .../variable-0.8.0.sol-0.8.8-compact.json | 0 .../variable-0.8.0.sol-0.8.9-compact.json | 0 ...ledeclaration-0.5.0.sol-0.5.0-compact.json | 0 ...ledeclaration-0.5.0.sol-0.5.1-compact.json | 0 ...edeclaration-0.5.0.sol-0.5.10-compact.json | 0 ...edeclaration-0.5.0.sol-0.5.11-compact.json | 0 ...edeclaration-0.5.0.sol-0.5.12-compact.json | 0 ...edeclaration-0.5.0.sol-0.5.13-compact.json | 0 ...edeclaration-0.5.0.sol-0.5.14-compact.json | 0 ...edeclaration-0.5.0.sol-0.5.15-compact.json | 0 ...edeclaration-0.5.0.sol-0.5.16-compact.json | 0 ...edeclaration-0.5.0.sol-0.5.17-compact.json | 0 ...ledeclaration-0.5.0.sol-0.5.2-compact.json | 0 ...ledeclaration-0.5.0.sol-0.5.3-compact.json | 0 ...ledeclaration-0.5.0.sol-0.5.4-compact.json | 0 ...ledeclaration-0.5.0.sol-0.5.5-compact.json | 0 ...ledeclaration-0.5.0.sol-0.5.6-compact.json | 0 ...ledeclaration-0.5.0.sol-0.5.7-compact.json | 0 ...ledeclaration-0.5.0.sol-0.5.8-compact.json | 0 ...ledeclaration-0.5.0.sol-0.5.9-compact.json | 0 ...ledeclaration-0.5.0.sol-0.6.0-compact.json | 0 ...ledeclaration-0.5.0.sol-0.6.1-compact.json | 0 ...edeclaration-0.5.0.sol-0.6.10-compact.json | 0 ...edeclaration-0.5.0.sol-0.6.11-compact.json | 0 ...edeclaration-0.5.0.sol-0.6.12-compact.json | 0 ...ledeclaration-0.5.0.sol-0.6.2-compact.json | 0 ...ledeclaration-0.5.0.sol-0.6.3-compact.json | 0 ...ledeclaration-0.5.0.sol-0.6.4-compact.json | 0 ...ledeclaration-0.5.0.sol-0.6.5-compact.json | 0 ...ledeclaration-0.5.0.sol-0.6.6-compact.json | 0 ...ledeclaration-0.5.0.sol-0.6.7-compact.json | 0 ...ledeclaration-0.5.0.sol-0.6.8-compact.json | 0 ...ledeclaration-0.5.0.sol-0.6.9-compact.json | 0 ...ledeclaration-0.5.0.sol-0.7.0-compact.json | 0 ...ledeclaration-0.5.0.sol-0.7.1-compact.json | 0 ...ledeclaration-0.5.0.sol-0.7.2-compact.json | 0 ...ledeclaration-0.5.0.sol-0.7.3-compact.json | 0 ...ledeclaration-0.5.0.sol-0.7.4-compact.json | 0 ...ledeclaration-0.5.0.sol-0.7.5-compact.json | 0 ...ledeclaration-0.5.0.sol-0.7.6-compact.json | 0 ...ledeclaration-0.5.0.sol-0.8.0-compact.json | 0 ...ledeclaration-0.5.0.sol-0.8.1-compact.json | 0 ...edeclaration-0.5.0.sol-0.8.10-compact.json | 0 ...edeclaration-0.5.0.sol-0.8.11-compact.json | 0 ...edeclaration-0.5.0.sol-0.8.12-compact.json | 0 ...edeclaration-0.5.0.sol-0.8.13-compact.json | 0 ...edeclaration-0.5.0.sol-0.8.14-compact.json | 0 ...edeclaration-0.5.0.sol-0.8.15-compact.json | 0 ...ledeclaration-0.5.0.sol-0.8.2-compact.json | 0 ...ledeclaration-0.5.0.sol-0.8.3-compact.json | 0 ...ledeclaration-0.5.0.sol-0.8.4-compact.json | 0 ...ledeclaration-0.5.0.sol-0.8.5-compact.json | 0 ...ledeclaration-0.5.0.sol-0.8.6-compact.json | 0 ...ledeclaration-0.5.0.sol-0.8.7-compact.json | 0 ...ledeclaration-0.5.0.sol-0.8.8-compact.json | 0 ...ledeclaration-0.5.0.sol-0.8.9-compact.json | 0 .../expected/while-all.sol-0.4.0-compact.json | 0 .../expected/while-all.sol-0.4.0-legacy.json | 0 .../expected/while-all.sol-0.4.1-compact.json | 0 .../expected/while-all.sol-0.4.1-legacy.json | 0 .../while-all.sol-0.4.10-compact.json | 0 .../expected/while-all.sol-0.4.10-legacy.json | 0 .../while-all.sol-0.4.11-compact.json | 0 .../expected/while-all.sol-0.4.11-legacy.json | 0 .../while-all.sol-0.4.12-compact.json | 0 .../expected/while-all.sol-0.4.12-legacy.json | 0 .../while-all.sol-0.4.13-compact.json | 0 .../expected/while-all.sol-0.4.13-legacy.json | 0 .../while-all.sol-0.4.14-compact.json | 0 .../expected/while-all.sol-0.4.14-legacy.json | 0 .../while-all.sol-0.4.15-compact.json | 0 .../expected/while-all.sol-0.4.15-legacy.json | 0 .../while-all.sol-0.4.16-compact.json | 0 .../expected/while-all.sol-0.4.16-legacy.json | 0 .../while-all.sol-0.4.17-compact.json | 0 .../expected/while-all.sol-0.4.17-legacy.json | 0 .../while-all.sol-0.4.18-compact.json | 0 .../expected/while-all.sol-0.4.18-legacy.json | 0 .../while-all.sol-0.4.19-compact.json | 0 .../expected/while-all.sol-0.4.19-legacy.json | 0 .../expected/while-all.sol-0.4.2-compact.json | 0 .../expected/while-all.sol-0.4.2-legacy.json | 0 .../while-all.sol-0.4.20-compact.json | 0 .../expected/while-all.sol-0.4.20-legacy.json | 0 .../while-all.sol-0.4.21-compact.json | 0 .../expected/while-all.sol-0.4.21-legacy.json | 0 .../while-all.sol-0.4.22-compact.json | 0 .../expected/while-all.sol-0.4.22-legacy.json | 0 .../while-all.sol-0.4.23-compact.json | 0 .../expected/while-all.sol-0.4.23-legacy.json | 0 .../while-all.sol-0.4.24-compact.json | 0 .../expected/while-all.sol-0.4.24-legacy.json | 0 .../while-all.sol-0.4.25-compact.json | 0 .../expected/while-all.sol-0.4.25-legacy.json | 0 .../while-all.sol-0.4.26-compact.json | 0 .../expected/while-all.sol-0.4.26-legacy.json | 0 .../expected/while-all.sol-0.4.3-compact.json | 0 .../expected/while-all.sol-0.4.3-legacy.json | 0 .../expected/while-all.sol-0.4.4-compact.json | 0 .../expected/while-all.sol-0.4.4-legacy.json | 0 .../expected/while-all.sol-0.4.5-compact.json | 0 .../expected/while-all.sol-0.4.5-legacy.json | 0 .../expected/while-all.sol-0.4.6-compact.json | 0 .../expected/while-all.sol-0.4.6-legacy.json | 0 .../expected/while-all.sol-0.4.7-compact.json | 0 .../expected/while-all.sol-0.4.7-legacy.json | 0 .../expected/while-all.sol-0.4.8-compact.json | 0 .../expected/while-all.sol-0.4.8-legacy.json | 0 .../expected/while-all.sol-0.4.9-compact.json | 0 .../expected/while-all.sol-0.4.9-legacy.json | 0 .../expected/while-all.sol-0.5.0-compact.json | 0 .../expected/while-all.sol-0.5.0-legacy.json | 0 .../expected/while-all.sol-0.5.1-compact.json | 0 .../expected/while-all.sol-0.5.1-legacy.json | 0 .../while-all.sol-0.5.10-compact.json | 0 .../expected/while-all.sol-0.5.10-legacy.json | 0 .../while-all.sol-0.5.11-compact.json | 0 .../expected/while-all.sol-0.5.11-legacy.json | 0 .../while-all.sol-0.5.12-compact.json | 0 .../expected/while-all.sol-0.5.12-legacy.json | 0 .../while-all.sol-0.5.13-compact.json | 0 .../expected/while-all.sol-0.5.13-legacy.json | 0 .../while-all.sol-0.5.14-compact.json | 0 .../expected/while-all.sol-0.5.14-legacy.json | 0 .../while-all.sol-0.5.15-compact.json | 0 .../expected/while-all.sol-0.5.15-legacy.json | 0 .../while-all.sol-0.5.16-compact.json | 0 .../expected/while-all.sol-0.5.16-legacy.json | 0 .../while-all.sol-0.5.17-compact.json | 0 .../expected/while-all.sol-0.5.17-legacy.json | 0 .../expected/while-all.sol-0.5.2-compact.json | 0 .../expected/while-all.sol-0.5.2-legacy.json | 0 .../expected/while-all.sol-0.5.3-compact.json | 0 .../expected/while-all.sol-0.5.3-legacy.json | 0 .../expected/while-all.sol-0.5.4-compact.json | 0 .../expected/while-all.sol-0.5.4-legacy.json | 0 .../expected/while-all.sol-0.5.5-compact.json | 0 .../expected/while-all.sol-0.5.5-legacy.json | 0 .../expected/while-all.sol-0.5.6-compact.json | 0 .../expected/while-all.sol-0.5.6-legacy.json | 0 .../expected/while-all.sol-0.5.7-compact.json | 0 .../expected/while-all.sol-0.5.7-legacy.json | 0 .../expected/while-all.sol-0.5.8-compact.json | 0 .../expected/while-all.sol-0.5.8-legacy.json | 0 .../expected/while-all.sol-0.5.9-compact.json | 0 .../expected/while-all.sol-0.5.9-legacy.json | 0 .../expected/while-all.sol-0.6.0-compact.json | 0 .../expected/while-all.sol-0.6.0-legacy.json | 0 .../expected/while-all.sol-0.6.1-compact.json | 0 .../expected/while-all.sol-0.6.1-legacy.json | 0 .../while-all.sol-0.6.10-compact.json | 0 .../expected/while-all.sol-0.6.10-legacy.json | 0 .../while-all.sol-0.6.11-compact.json | 0 .../expected/while-all.sol-0.6.11-legacy.json | 0 .../while-all.sol-0.6.12-compact.json | 0 .../expected/while-all.sol-0.6.12-legacy.json | 0 .../expected/while-all.sol-0.6.2-compact.json | 0 .../expected/while-all.sol-0.6.2-legacy.json | 0 .../expected/while-all.sol-0.6.3-compact.json | 0 .../expected/while-all.sol-0.6.3-legacy.json | 0 .../expected/while-all.sol-0.6.4-compact.json | 0 .../expected/while-all.sol-0.6.4-legacy.json | 0 .../expected/while-all.sol-0.6.5-compact.json | 0 .../expected/while-all.sol-0.6.5-legacy.json | 0 .../expected/while-all.sol-0.6.6-compact.json | 0 .../expected/while-all.sol-0.6.6-legacy.json | 0 .../expected/while-all.sol-0.6.7-compact.json | 0 .../expected/while-all.sol-0.6.7-legacy.json | 0 .../expected/while-all.sol-0.6.8-compact.json | 0 .../expected/while-all.sol-0.6.8-legacy.json | 0 .../expected/while-all.sol-0.6.9-compact.json | 0 .../expected/while-all.sol-0.6.9-legacy.json | 0 .../expected/while-all.sol-0.7.0-compact.json | 0 .../expected/while-all.sol-0.7.0-legacy.json | 0 .../expected/while-all.sol-0.7.1-compact.json | 0 .../expected/while-all.sol-0.7.1-legacy.json | 0 .../expected/while-all.sol-0.7.2-compact.json | 0 .../expected/while-all.sol-0.7.2-legacy.json | 0 .../expected/while-all.sol-0.7.3-compact.json | 0 .../expected/while-all.sol-0.7.3-legacy.json | 0 .../expected/while-all.sol-0.7.4-compact.json | 0 .../expected/while-all.sol-0.7.4-legacy.json | 0 .../expected/while-all.sol-0.7.5-compact.json | 0 .../expected/while-all.sol-0.7.5-legacy.json | 0 .../expected/while-all.sol-0.7.6-compact.json | 0 .../expected/while-all.sol-0.7.6-legacy.json | 0 .../expected/while-all.sol-0.8.0-compact.json | 0 .../expected/while-all.sol-0.8.1-compact.json | 0 .../while-all.sol-0.8.10-compact.json | 0 .../while-all.sol-0.8.11-compact.json | 0 .../while-all.sol-0.8.12-compact.json | 0 .../while-all.sol-0.8.13-compact.json | 0 .../while-all.sol-0.8.14-compact.json | 0 .../while-all.sol-0.8.15-compact.json | 0 .../expected/while-all.sol-0.8.2-compact.json | 0 .../expected/while-all.sol-0.8.3-compact.json | 0 .../expected/while-all.sol-0.8.4-compact.json | 0 .../expected/while-all.sol-0.8.5-compact.json | 0 .../expected/while-all.sol-0.8.6-compact.json | 0 .../expected/while-all.sol-0.8.7-compact.json | 0 .../expected/while-all.sol-0.8.8-compact.json | 0 .../expected/while-all.sol-0.8.9-compact.json | 0 .../expected/yul-0.4.0.sol-0.4.0-compact.json | 0 .../expected/yul-0.4.0.sol-0.4.0-legacy.json | 0 .../expected/yul-0.4.1.sol-0.4.1-compact.json | 0 .../expected/yul-0.4.1.sol-0.4.1-legacy.json | 0 .../yul-0.4.1.sol-0.4.10-compact.json | 0 .../expected/yul-0.4.1.sol-0.4.10-legacy.json | 0 .../expected/yul-0.4.1.sol-0.4.2-compact.json | 0 .../expected/yul-0.4.1.sol-0.4.2-legacy.json | 0 .../expected/yul-0.4.1.sol-0.4.3-compact.json | 0 .../expected/yul-0.4.1.sol-0.4.3-legacy.json | 0 .../expected/yul-0.4.1.sol-0.4.4-compact.json | 0 .../expected/yul-0.4.1.sol-0.4.4-legacy.json | 0 .../expected/yul-0.4.1.sol-0.4.5-compact.json | 0 .../expected/yul-0.4.1.sol-0.4.5-legacy.json | 0 .../expected/yul-0.4.1.sol-0.4.6-compact.json | 0 .../expected/yul-0.4.1.sol-0.4.6-legacy.json | 0 .../expected/yul-0.4.1.sol-0.4.7-compact.json | 0 .../expected/yul-0.4.1.sol-0.4.7-legacy.json | 0 .../expected/yul-0.4.1.sol-0.4.8-compact.json | 0 .../expected/yul-0.4.1.sol-0.4.8-legacy.json | 0 .../expected/yul-0.4.1.sol-0.4.9-compact.json | 0 .../expected/yul-0.4.1.sol-0.4.9-legacy.json | 0 .../yul-0.4.11.sol-0.4.11-compact.json | 0 .../yul-0.4.11.sol-0.4.11-legacy.json | 0 .../yul-0.4.11.sol-0.4.12-compact.json | 0 .../yul-0.4.11.sol-0.4.12-legacy.json | 0 .../yul-0.4.11.sol-0.4.13-compact.json | 0 .../yul-0.4.11.sol-0.4.13-legacy.json | 0 .../yul-0.4.11.sol-0.4.14-compact.json | 0 .../yul-0.4.11.sol-0.4.14-legacy.json | 0 .../yul-0.4.11.sol-0.4.15-compact.json | 0 .../yul-0.4.11.sol-0.4.15-legacy.json | 0 .../yul-0.4.11.sol-0.4.16-compact.json | 0 .../yul-0.4.11.sol-0.4.16-legacy.json | 0 .../yul-0.4.11.sol-0.4.17-compact.json | 0 .../yul-0.4.11.sol-0.4.17-legacy.json | 0 .../yul-0.4.11.sol-0.4.18-compact.json | 0 .../yul-0.4.11.sol-0.4.18-legacy.json | 0 .../yul-0.4.11.sol-0.4.19-compact.json | 0 .../yul-0.4.11.sol-0.4.19-legacy.json | 0 .../yul-0.4.11.sol-0.4.20-compact.json | 0 .../yul-0.4.11.sol-0.4.20-legacy.json | 0 .../yul-0.4.11.sol-0.4.21-compact.json | 0 .../yul-0.4.11.sol-0.4.21-legacy.json | 0 .../yul-0.4.11.sol-0.4.22-compact.json | 0 .../yul-0.4.11.sol-0.4.22-legacy.json | 0 .../yul-0.4.11.sol-0.4.23-compact.json | 0 .../yul-0.4.11.sol-0.4.23-legacy.json | 0 .../yul-0.4.11.sol-0.4.24-compact.json | 0 .../yul-0.4.11.sol-0.4.24-legacy.json | 0 .../yul-0.4.11.sol-0.4.25-compact.json | 0 .../yul-0.4.11.sol-0.4.25-legacy.json | 0 .../yul-0.4.11.sol-0.4.26-compact.json | 0 .../yul-0.4.11.sol-0.4.26-legacy.json | 0 .../yul-0.4.11.sol-0.5.0-compact.json | 0 .../expected/yul-0.4.11.sol-0.5.0-legacy.json | 0 .../yul-0.4.11.sol-0.5.1-compact.json | 0 .../expected/yul-0.4.11.sol-0.5.1-legacy.json | 0 .../yul-0.4.11.sol-0.5.10-compact.json | 0 .../yul-0.4.11.sol-0.5.10-legacy.json | 0 .../yul-0.4.11.sol-0.5.11-compact.json | 0 .../yul-0.4.11.sol-0.5.11-legacy.json | 0 .../yul-0.4.11.sol-0.5.12-compact.json | 0 .../yul-0.4.11.sol-0.5.12-legacy.json | 0 .../yul-0.4.11.sol-0.5.13-compact.json | 0 .../yul-0.4.11.sol-0.5.13-legacy.json | 0 .../yul-0.4.11.sol-0.5.14-compact.json | 0 .../yul-0.4.11.sol-0.5.14-legacy.json | 0 .../yul-0.4.11.sol-0.5.15-compact.json | 0 .../yul-0.4.11.sol-0.5.15-legacy.json | 0 .../yul-0.4.11.sol-0.5.16-compact.json | 0 .../yul-0.4.11.sol-0.5.16-legacy.json | 0 .../yul-0.4.11.sol-0.5.17-compact.json | 0 .../yul-0.4.11.sol-0.5.17-legacy.json | 0 .../yul-0.4.11.sol-0.5.2-compact.json | 0 .../expected/yul-0.4.11.sol-0.5.2-legacy.json | 0 .../yul-0.4.11.sol-0.5.3-compact.json | 0 .../expected/yul-0.4.11.sol-0.5.3-legacy.json | 0 .../yul-0.4.11.sol-0.5.4-compact.json | 0 .../expected/yul-0.4.11.sol-0.5.4-legacy.json | 0 .../yul-0.4.11.sol-0.5.5-compact.json | 0 .../expected/yul-0.4.11.sol-0.5.5-legacy.json | 0 .../yul-0.4.11.sol-0.5.6-compact.json | 0 .../expected/yul-0.4.11.sol-0.5.6-legacy.json | 0 .../yul-0.4.11.sol-0.5.7-compact.json | 0 .../expected/yul-0.4.11.sol-0.5.7-legacy.json | 0 .../yul-0.4.11.sol-0.5.8-compact.json | 0 .../expected/yul-0.4.11.sol-0.5.8-legacy.json | 0 .../yul-0.4.11.sol-0.5.9-compact.json | 0 .../expected/yul-0.4.11.sol-0.5.9-legacy.json | 0 .../yul-0.4.11.sol-0.6.0-compact.json | 0 .../expected/yul-0.4.11.sol-0.6.0-legacy.json | 0 .../yul-0.4.11.sol-0.6.1-compact.json | 0 .../expected/yul-0.4.11.sol-0.6.1-legacy.json | 0 .../yul-0.4.11.sol-0.6.10-compact.json | 0 .../yul-0.4.11.sol-0.6.10-legacy.json | 0 .../yul-0.4.11.sol-0.6.11-compact.json | 0 .../yul-0.4.11.sol-0.6.11-legacy.json | 0 .../yul-0.4.11.sol-0.6.12-compact.json | 0 .../yul-0.4.11.sol-0.6.12-legacy.json | 0 .../yul-0.4.11.sol-0.6.2-compact.json | 0 .../expected/yul-0.4.11.sol-0.6.2-legacy.json | 0 .../yul-0.4.11.sol-0.6.3-compact.json | 0 .../expected/yul-0.4.11.sol-0.6.3-legacy.json | 0 .../yul-0.4.11.sol-0.6.4-compact.json | 0 .../expected/yul-0.4.11.sol-0.6.4-legacy.json | 0 .../yul-0.4.11.sol-0.6.5-compact.json | 0 .../expected/yul-0.4.11.sol-0.6.5-legacy.json | 0 .../yul-0.4.11.sol-0.6.6-compact.json | 0 .../expected/yul-0.4.11.sol-0.6.6-legacy.json | 0 .../yul-0.4.11.sol-0.6.7-compact.json | 0 .../expected/yul-0.4.11.sol-0.6.7-legacy.json | 0 .../yul-0.4.11.sol-0.6.8-compact.json | 0 .../expected/yul-0.4.11.sol-0.6.8-legacy.json | 0 .../yul-0.4.11.sol-0.6.9-compact.json | 0 .../expected/yul-0.4.11.sol-0.6.9-legacy.json | 0 .../expected/yul-0.7.0.sol-0.7.0-compact.json | 0 .../expected/yul-0.7.0.sol-0.7.0-legacy.json | 0 .../expected/yul-0.7.0.sol-0.7.1-compact.json | 0 .../expected/yul-0.7.0.sol-0.7.1-legacy.json | 0 .../expected/yul-0.7.0.sol-0.7.2-compact.json | 0 .../expected/yul-0.7.0.sol-0.7.2-legacy.json | 0 .../expected/yul-0.7.0.sol-0.7.3-compact.json | 0 .../expected/yul-0.7.0.sol-0.7.3-legacy.json | 0 .../expected/yul-0.7.0.sol-0.7.4-compact.json | 0 .../expected/yul-0.7.0.sol-0.7.4-legacy.json | 0 .../expected/yul-0.7.5.sol-0.7.5-compact.json | 0 .../expected/yul-0.7.5.sol-0.7.5-legacy.json | 0 .../expected/yul-0.7.5.sol-0.7.6-compact.json | 0 .../expected/yul-0.7.5.sol-0.7.6-legacy.json | 0 .../expected/yul-0.8.0.sol-0.8.0-compact.json | 0 .../expected/yul-0.8.0.sol-0.8.1-compact.json | 0 .../yul-0.8.0.sol-0.8.10-compact.json | 0 .../yul-0.8.0.sol-0.8.11-compact.json | 0 .../yul-0.8.0.sol-0.8.12-compact.json | 0 .../yul-0.8.0.sol-0.8.13-compact.json | 0 .../yul-0.8.0.sol-0.8.14-compact.json | 0 .../yul-0.8.0.sol-0.8.15-compact.json | 0 .../expected/yul-0.8.0.sol-0.8.2-compact.json | 0 .../expected/yul-0.8.0.sol-0.8.3-compact.json | 0 .../expected/yul-0.8.0.sol-0.8.4-compact.json | 0 .../expected/yul-0.8.0.sol-0.8.5-compact.json | 0 .../expected/yul-0.8.0.sol-0.8.6-compact.json | 0 .../expected/yul-0.8.0.sol-0.8.7-compact.json | 0 .../expected/yul-0.8.0.sol-0.8.8-compact.json | 0 .../expected/yul-0.8.0.sol-0.8.9-compact.json | 0 ...te-constant-access.sol-0.8.16-compact.json | 0 .../solc_parsing/test_data}/for-all.sol | 0 .../free_functions/libraries_from_free.sol | 0 .../library_constant_function_collision.sol | 0 .../free_functions/new_operator.sol | 0 .../test_data}/function-0.4.0.sol | 0 .../test_data}/function-0.4.16.sol | 0 .../test_data}/function-0.4.22.sol | 0 .../test_data}/function-0.4.23.sol | 0 .../test_data}/function-0.5.0.sol | 0 .../test_data}/function-0.6.0.sol | 0 .../test_data}/function-0.7.0.sol | 0 .../test_data}/function-0.7.1.sol | 0 .../test_data}/functioncall-0.4.0.sol | 0 .../test_data}/functioncall-0.4.22.sol | 0 .../test_data}/functioncall-0.4.5.sol | 0 .../test_data}/functioncall-0.5.0.sol | 0 .../test_data}/functioncall-0.5.3.sol | 0 .../test_data}/functioncall-0.6.0.sol | 0 .../test_data}/functioncall-0.6.2.sol | 0 .../test_data}/functioncall-0.6.8.sol | 0 .../test_data}/functioncall-0.7.0.sol | 0 .../test_data}/functioncall-0.8.0.sol | 0 .../solc_parsing/test_data}/helper/helper.sol | 0 .../test_data}/helper/import-1.sol | 0 .../test_data}/helper/import-2.sol | 0 .../helper/interface_with_struct.sol | 0 .../test_data}/helper/nested_import.sol | 0 .../solc_parsing/test_data}/if-all.sol | 0 .../solc_parsing/test_data}/import-0.4.0.sol | 0 .../solc_parsing/test_data}/import-0.4.3.sol | 0 ...rface_with_struct_from_top_level-0.4.0.sol | 0 ...rface_with_struct_from_top_level-0.7.6.sol | 0 .../test_data}/indexaccess-all.sol | 0 .../test_data}/indexrangeaccess-0.4.0.sol | 0 .../test_data}/indexrangeaccess-0.6.1.sol | 0 .../test_data}/library_event-0.8.16.sol | 0 .../library_implicit_conversion-0.4.0.sol | 0 .../library_implicit_conversion-0.5.0.sol | 0 .../solc_parsing/test_data}/literal-0.4.0.sol | 0 .../test_data}/literal-0.4.10.sol | 0 .../solc_parsing/test_data}/literal-0.5.0.sol | 0 .../solc_parsing/test_data}/literal-0.6.0.sol | 0 .../solc_parsing/test_data}/literal-0.7.0.sol | 0 .../test_data}/memberaccess-0.4.0.sol | 0 .../test_data}/memberaccess-0.5.14.sol | 0 .../test_data}/memberaccess-0.5.3.sol | 0 .../test_data}/memberaccess-0.6.7.sol | 0 .../test_data}/memberaccess-0.6.8.sol | 0 .../solc_parsing/test_data}/minmax-0.4.0.sol | 0 .../solc_parsing/test_data}/minmax-0.6.8.sol | 0 .../solc_parsing/test_data}/minmax-0.8.8.sol | 0 .../test_data}/modifier-0.7.0.sol | 0 .../solc_parsing/test_data}/modifier-all.sol | 0 .../test_data}/modifier_identifier_path.sol | 0 .../test_data}/newexpression-0.4.0.sol | 0 .../test_data}/newexpression-0.5.0.sol | 0 .../solc_parsing/test_data}/pragma-0.4.0.sol | 0 .../solc_parsing/test_data}/pragma-0.5.0.sol | 0 .../solc_parsing/test_data}/pragma-0.6.0.sol | 0 .../solc_parsing/test_data}/pragma-0.7.0.sol | 0 .../solc_parsing/test_data}/pragma-0.8.0.sol | 0 .../solc_parsing/test_data}/push-all.sol | 0 .../solc_parsing/test_data}/return-all.sol | 0 .../solc_parsing/test_data}/scope-0.4.0.sol | 0 .../solc_parsing/test_data}/scope-0.5.0.sol | 0 .../solc_parsing/test_data}/struct-0.4.0.sol | 0 .../solc_parsing/test_data}/struct-0.6.0.sol | 0 .../test_data}/ternary-with-max.sol | 0 .../solc_parsing/test_data}/throw-0.4.0.sol | 0 .../solc_parsing/test_data}/throw-0.5.0.sol | 0 .../test_data}/top-level-0.4.0.sol | 0 .../test_data}/top-level-0.7.1.sol | 0 .../test_data}/top-level-0.7.4.sol | 0 .../test_data}/top-level-import-0.4.0.sol | 0 .../test_data}/top-level-import-0.7.1.sol | 0 .../test_data}/top-level-import-bis-0.4.0.sol | 0 .../test_data}/top-level-import-bis-0.7.1.sol | 0 .../top-level-nested-import-0.4.0.sol | 0 .../top-level-nested-import-0.7.1.sol | 0 .../test_data}/top-level-struct-0.8.0.sol | 0 .../test_data}/top_level_variable-0.4.0.sol | 0 .../test_data}/top_level_variable-0.8.0.sol | 0 .../test_data}/top_level_variable2-0.4.0.sol | 0 .../test_data}/top_level_variable2-0.8.0.sol | 0 .../test_data}/trycatch-0.4.0.sol | 0 .../test_data}/trycatch-0.6.0.sol | 0 .../test_data}/tupleexpression-0.4.0.sol | 0 .../test_data}/tupleexpression-0.4.24.sol | 0 .../test_data}/tupleexpression-0.5.3.sol | 0 .../test_data}/unaryexpression-0.4.0.sol | 0 .../test_data}/unaryexpression-0.5.0.sol | 0 .../test_data}/unchecked-0.4.0.sol | 0 .../test_data}/unchecked-0.8.0.sol | 0 .../units_and_global_variables-0.4.0.sol | 0 .../units_and_global_variables-0.5.0.sol | 0 .../units_and_global_variables-0.5.4.sol | 0 .../units_and_global_variables-0.6.0.sol | 0 .../units_and_global_variables-0.7.0.sol | 0 .../units_and_global_variables-0.8.0.sol | 0 .../units_and_global_variables-0.8.12.sol | 0 .../units_and_global_variables-0.8.4.sol | 0 .../units_and_global_variables-0.8.7.sol | 0 .../argument-0.8.8.sol | 0 .../calldata-0.8.8.sol | 0 .../constant-0.8.8.sol | 0 .../user_defined_value_type/erc20-0.8.8.sol | 0 .../in_parenthesis-0.8.8.sol | 0 .../top-level-0.8.8.sol | 0 .../user_defined_types-0.8.8.sol | 0 .../using-for-0.8.8.sol | 0 .../test_data}/using-for-0.4.0.sol | 0 .../test_data}/using-for-0.4.1.sol | 0 .../test_data}/using-for-1-0.8.0.sol | 0 .../test_data}/using-for-2-0.8.0.sol | 0 .../test_data}/using-for-3-0.8.0.sol | 0 .../test_data}/using-for-4-0.8.0.sol | 0 .../using-for-alias-contract-0.8.0.sol | 0 .../test_data}/using-for-alias-dep1.sol | 0 .../test_data}/using-for-alias-dep2.sol | 0 .../using-for-alias-top-level-0.8.0.sol | 0 .../using-for-functions-list-1-0.8.0.sol | 0 .../using-for-functions-list-2-0.8.0.sol | 0 .../using-for-functions-list-3-0.8.0.sol | 0 .../using-for-functions-list-4-0.8.0.sol | 0 .../test_data}/using-for-global-0.8.0.sol | 0 .../test_data}/using-for-in-library-0.8.0.sol | 0 .../test_data}/using-for-library-0.8.0.sol | 0 .../test_data}/variable-0.4.0.sol | 0 .../test_data}/variable-0.4.14.sol | 0 .../test_data}/variable-0.4.16.sol | 0 .../test_data}/variable-0.4.5.sol | 0 .../test_data}/variable-0.5.0.sol | 0 .../test_data}/variable-0.6.5.sol | 0 .../test_data}/variable-0.6.9.sol | 0 .../test_data}/variable-0.8.0.sol | 0 .../test_data}/variabledeclaration-0.4.0.sol | 0 .../test_data}/variabledeclaration-0.4.24.sol | 0 .../test_data}/variabledeclaration-0.5.0.sol | 0 .../solc_parsing/test_data}/while-all.sol | 0 .../solc_parsing/test_data}/yul-0.4.0.sol | 0 .../solc_parsing/test_data}/yul-0.4.1.sol | 0 .../solc_parsing/test_data}/yul-0.4.11.sol | 0 .../solc_parsing/test_data}/yul-0.7.0.sol | 0 .../solc_parsing/test_data}/yul-0.7.5.sol | 0 .../solc_parsing/test_data}/yul-0.8.0.sol | 0 .../test_data}/yul-state-constant-access.sol | 0 .../test_data}/yul-top-level-0.8.0.sol | 0 14734 files changed, 41769 insertions(+), 39577 deletions(-) delete mode 100644 tests/detectors/rtlo/0.4.25/right_to_left_override.sol.0.4.25.RightToLeftOverride.json delete mode 100644 tests/detectors/rtlo/0.5.16/right_to_left_override.sol.0.5.16.RightToLeftOverride.json delete mode 100644 tests/detectors/rtlo/0.6.11/right_to_left_override.sol.0.6.11.RightToLeftOverride.json delete mode 100644 tests/detectors/rtlo/0.8.0/unicode_direction_override.sol.0.8.0.RightToLeftOverride.json delete mode 100644 tests/detectors/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json delete mode 100644 tests/detectors/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json delete mode 100644 tests/detectors/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json rename tests/{detectors => e2e/detectors/test_data}/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol.0.4.25.ABIEncoderV2Array.json (85%) rename tests/{detectors => e2e/detectors/test_data}/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol.0.5.10.ABIEncoderV2Array.json (100%) rename tests/{detectors => e2e/detectors/test_data}/abiencoderv2-array/0.5.11/storage_ABIEncoderV2_array.sol.0.5.11.ABIEncoderV2Array.json (100%) rename tests/{detectors => e2e/detectors/test_data}/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol.0.5.9.ABIEncoderV2Array.json (85%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol.0.4.25.ArbitrarySendErc20Permit.json (77%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol.0.5.16.ArbitrarySendErc20Permit.json (77%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol.0.6.11.ArbitrarySendErc20Permit.json (77%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol.0.7.6.ArbitrarySendErc20Permit.json (77%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol.0.8.0.ArbitrarySendErc20Permit.json (77%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol.0.4.25.ArbitrarySendErc20NoPermit.json (82%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol.0.5.16.ArbitrarySendErc20NoPermit.json (82%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol.0.6.11.ArbitrarySendErc20NoPermit.json (82%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol.0.7.6.ArbitrarySendErc20NoPermit.json (82%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol.0.8.0.ArbitrarySendErc20NoPermit.json (82%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol.0.8.0.ArbitrarySendErc20NoPermit.json (67%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol.0.4.25.ArbitrarySendEth.json (78%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol.0.5.16.ArbitrarySendEth.json (78%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol.0.6.11.ArbitrarySendEth.json (78%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol.0.7.6.ArbitrarySendEth.json (78%) rename tests/{detectors => e2e/detectors/test_data}/array-by-reference/0.4.25/array_by_reference.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/array-by-reference/0.4.25/array_by_reference.sol.0.4.25.ArrayByReference.json (76%) rename tests/{detectors => e2e/detectors/test_data}/array-by-reference/0.5.16/array_by_reference.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/array-by-reference/0.5.16/array_by_reference.sol.0.5.16.ArrayByReference.json (76%) rename tests/{detectors => e2e/detectors/test_data}/array-by-reference/0.6.11/array_by_reference.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/array-by-reference/0.6.11/array_by_reference.sol.0.6.11.ArrayByReference.json (76%) rename tests/{detectors => e2e/detectors/test_data}/array-by-reference/0.7.6/array_by_reference.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/array-by-reference/0.7.6/array_by_reference.sol.0.7.6.ArrayByReference.json (76%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.4.25/inline_assembly_contract.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.4.25/inline_assembly_contract.sol.0.4.25.Assembly.json (78%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.4.25/inline_assembly_library.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.4.25/inline_assembly_library.sol.0.4.25.Assembly.json (83%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.5.16/inline_assembly_contract.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.5.16/inline_assembly_contract.sol.0.5.16.Assembly.json (78%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.5.16/inline_assembly_library.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.5.16/inline_assembly_library.sol.0.5.16.Assembly.json (83%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.6.11/inline_assembly_contract.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.6.11/inline_assembly_contract.sol.0.6.11.Assembly.json (78%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.6.11/inline_assembly_library.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.6.11/inline_assembly_library.sol.0.6.11.Assembly.json (83%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.7.6/inline_assembly_contract.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.7.6/inline_assembly_contract.sol.0.7.6.Assembly.json (78%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.7.6/inline_assembly_library.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/assembly/0.7.6/inline_assembly_library.sol.0.7.6.Assembly.json (83%) rename tests/{detectors => e2e/detectors/test_data}/assert-state-change/0.4.25/assert_state_change.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/assert-state-change/0.4.25/assert_state_change.sol.0.4.25.AssertStateChange.json (77%) rename tests/{detectors => e2e/detectors/test_data}/assert-state-change/0.5.16/assert_state_change.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/assert-state-change/0.5.16/assert_state_change.sol.0.5.16.AssertStateChange.json (77%) rename tests/{detectors => e2e/detectors/test_data}/assert-state-change/0.6.11/assert_state_change.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/assert-state-change/0.6.11/assert_state_change.sol.0.6.11.AssertStateChange.json (77%) rename tests/{detectors => e2e/detectors/test_data}/assert-state-change/0.7.6/assert_state_change.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/assert-state-change/0.7.6/assert_state_change.sol.0.7.6.AssertStateChange.json (77%) rename tests/{detectors => e2e/detectors/test_data}/backdoor/0.4.25/backdoor.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/backdoor/0.4.25/backdoor.sol.0.4.25.Backdoor.json (74%) rename tests/{detectors => e2e/detectors/test_data}/backdoor/0.5.16/backdoor.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/backdoor/0.5.16/backdoor.sol.0.5.16.Backdoor.json (74%) rename tests/{detectors => e2e/detectors/test_data}/backdoor/0.6.11/backdoor.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/backdoor/0.6.11/backdoor.sol.0.6.11.Backdoor.json (74%) rename tests/{detectors => e2e/detectors/test_data}/backdoor/0.7.6/backdoor.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/backdoor/0.7.6/backdoor.sol.0.7.6.Backdoor.json (74%) rename tests/{detectors => e2e/detectors/test_data}/boolean-cst/0.4.25/boolean-constant-misuse.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/boolean-cst/0.4.25/boolean-constant-misuse.sol.0.4.25.BooleanConstantMisuse.json (80%) rename tests/{detectors => e2e/detectors/test_data}/boolean-cst/0.5.16/boolean-constant-misuse.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/boolean-cst/0.5.16/boolean-constant-misuse.sol.0.5.16.BooleanConstantMisuse.json (80%) rename tests/{detectors => e2e/detectors/test_data}/boolean-cst/0.6.11/boolean-constant-misuse.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/boolean-cst/0.6.11/boolean-constant-misuse.sol.0.6.11.BooleanConstantMisuse.json (80%) rename tests/{detectors => e2e/detectors/test_data}/boolean-cst/0.7.6/boolean-constant-misuse.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/boolean-cst/0.7.6/boolean-constant-misuse.sol.0.7.6.BooleanConstantMisuse.json (80%) rename tests/{detectors => e2e/detectors/test_data}/boolean-equal/0.4.25/boolean-constant-equality.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/boolean-equal/0.4.25/boolean-constant-equality.sol.0.4.25.BooleanEquality.json (76%) rename tests/{detectors => e2e/detectors/test_data}/boolean-equal/0.5.16/boolean-constant-equality.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/boolean-equal/0.5.16/boolean-constant-equality.sol.0.5.16.BooleanEquality.json (76%) rename tests/{detectors => e2e/detectors/test_data}/boolean-equal/0.6.11/boolean-constant-equality.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/boolean-equal/0.6.11/boolean-constant-equality.sol.0.6.11.BooleanEquality.json (76%) rename tests/{detectors => e2e/detectors/test_data}/boolean-equal/0.7.6/boolean-constant-equality.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/boolean-equal/0.7.6/boolean-constant-equality.sol.0.7.6.BooleanEquality.json (76%) rename tests/{detectors => e2e/detectors/test_data}/calls-loop/0.4.25/multiple_calls_in_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/calls-loop/0.4.25/multiple_calls_in_loop.sol.0.4.25.MultipleCallsInLoop.json (77%) rename tests/{detectors => e2e/detectors/test_data}/calls-loop/0.5.16/multiple_calls_in_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/calls-loop/0.5.16/multiple_calls_in_loop.sol.0.5.16.MultipleCallsInLoop.json (77%) rename tests/{detectors => e2e/detectors/test_data}/calls-loop/0.6.11/multiple_calls_in_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/calls-loop/0.6.11/multiple_calls_in_loop.sol.0.6.11.MultipleCallsInLoop.json (77%) rename tests/{detectors => e2e/detectors/test_data}/calls-loop/0.7.6/multiple_calls_in_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/calls-loop/0.7.6/multiple_calls_in_loop.sol.0.7.6.MultipleCallsInLoop.json (77%) rename tests/{detectors => e2e/detectors/test_data}/constable-states/0.4.25/const_state_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/constable-states/0.4.25/const_state_variables.sol.0.4.25.CouldBeConstant.json (69%) rename tests/{detectors => e2e/detectors/test_data}/constable-states/0.5.16/const_state_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/constable-states/0.5.16/const_state_variables.sol.0.5.16.CouldBeConstant.json (70%) rename tests/{detectors => e2e/detectors/test_data}/constable-states/0.6.11/const_state_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/constable-states/0.6.11/const_state_variables.sol.0.6.11.CouldBeConstant.json (70%) rename tests/{detectors => e2e/detectors/test_data}/constable-states/0.7.6/const_state_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/constable-states/0.7.6/const_state_variables.sol.0.7.6.CouldBeConstant.json (70%) rename tests/{detectors => e2e/detectors/test_data}/constable-states/0.8.0/const_state_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/constable-states/0.8.0/const_state_variables.sol.0.8.0.CouldBeConstant.json (70%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-asm/0.4.25/constant.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-asm/0.4.25/constant.sol.0.4.25.ConstantFunctionsAsm.json (75%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-asm/0.5.16/constant.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-asm/0.5.16/constant.sol.0.5.16.ConstantFunctionsAsm.json (100%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-asm/0.6.11/constant.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-asm/0.6.11/constant.sol.0.6.11.ConstantFunctionsAsm.json (100%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-asm/0.7.6/constant.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-asm/0.7.6/constant.sol.0.7.6.ConstantFunctionsAsm.json (100%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-state/0.4.25/constant.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-state/0.4.25/constant.sol.0.4.25.ConstantFunctionsState.json (75%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-state/0.5.16/constant.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-state/0.5.16/constant.sol.0.5.16.ConstantFunctionsState.json (100%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-state/0.6.11/constant.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-state/0.6.11/constant.sol.0.6.11.ConstantFunctionsState.json (100%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-state/0.7.6/constant.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/constant-function-state/0.7.6/constant.sol.0.7.6.ConstantFunctionsState.json (100%) rename tests/{detectors => e2e/detectors/test_data}/controlled-array-length/0.4.25/array_length_assignment.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/controlled-array-length/0.4.25/array_length_assignment.sol.0.4.25.ArrayLengthAssignment.json (80%) rename tests/{detectors => e2e/detectors/test_data}/controlled-array-length/0.5.16/array_length_assignment.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/controlled-array-length/0.5.16/array_length_assignment.sol.0.5.16.ArrayLengthAssignment.json (80%) rename tests/{detectors => e2e/detectors/test_data}/controlled-delegatecall/0.4.25/controlled_delegatecall.sol (100%) rename tests/{detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol.0.7.6.ControlledDelegateCall.json => e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol.0.4.25.ControlledDelegateCall.json} (73%) rename tests/{detectors => e2e/detectors/test_data}/controlled-delegatecall/0.5.16/controlled_delegatecall.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/controlled-delegatecall/0.5.16/controlled_delegatecall.sol.0.5.16.ControlledDelegateCall.json (73%) rename tests/{detectors => e2e/detectors/test_data}/controlled-delegatecall/0.6.11/controlled_delegatecall.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/controlled-delegatecall/0.6.11/controlled_delegatecall.sol.0.6.11.ControlledDelegateCall.json (73%) rename tests/{detectors => e2e/detectors/test_data}/controlled-delegatecall/0.7.6/controlled_delegatecall.sol (100%) rename tests/{detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol.0.4.25.ControlledDelegateCall.json => e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol.0.7.6.ControlledDelegateCall.json} (74%) rename tests/{detectors => e2e/detectors/test_data}/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol.0.4.25.CostlyOperationsInLoop.json (79%) rename tests/{detectors => e2e/detectors/test_data}/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol.0.5.16.CostlyOperationsInLoop.json (79%) rename tests/{detectors => e2e/detectors/test_data}/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol.0.6.11.CostlyOperationsInLoop.json (79%) rename tests/{detectors => e2e/detectors/test_data}/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol.0.7.6.CostlyOperationsInLoop.json (79%) rename tests/{detectors => e2e/detectors/test_data}/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json (77%) rename tests/{detectors => e2e/detectors/test_data}/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json (100%) rename tests/{detectors => e2e/detectors/test_data}/dead-code/0.8.0/dead-code.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/dead-code/0.8.0/dead-code.sol.0.8.0.DeadCode.json (68%) rename tests/{detectors => e2e/detectors/test_data}/delegatecall-loop/0.4.25/delegatecall_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/delegatecall-loop/0.4.25/delegatecall_loop.sol.0.4.25.DelegatecallInLoop.json (77%) rename tests/{detectors => e2e/detectors/test_data}/delegatecall-loop/0.5.16/delegatecall_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/delegatecall-loop/0.5.16/delegatecall_loop.sol.0.5.16.DelegatecallInLoop.json (77%) rename tests/{detectors => e2e/detectors/test_data}/delegatecall-loop/0.6.11/delegatecall_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/delegatecall-loop/0.6.11/delegatecall_loop.sol.0.6.11.DelegatecallInLoop.json (77%) rename tests/{detectors => e2e/detectors/test_data}/delegatecall-loop/0.7.6/delegatecall_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/delegatecall-loop/0.7.6/delegatecall_loop.sol.0.7.6.DelegatecallInLoop.json (77%) rename tests/{detectors => e2e/detectors/test_data}/delegatecall-loop/0.8.0/delegatecall_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/delegatecall-loop/0.8.0/delegatecall_loop.sol.0.8.0.DelegatecallInLoop.json (77%) rename tests/{detectors => e2e/detectors/test_data}/deprecated-standards/0.4.25/deprecated_calls.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/deprecated-standards/0.4.25/deprecated_calls.sol.0.4.25.DeprecatedStandards.json (74%) rename tests/{detectors => e2e/detectors/test_data}/divide-before-multiply/0.4.25/divide_before_multiply.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/divide-before-multiply/0.4.25/divide_before_multiply.sol.0.4.25.DivideBeforeMultiply.json (68%) rename tests/{detectors => e2e/detectors/test_data}/divide-before-multiply/0.5.16/divide_before_multiply.sol (100%) rename tests/{detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol.0.7.6.DivideBeforeMultiply.json => e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol.0.5.16.DivideBeforeMultiply.json} (68%) rename tests/{detectors => e2e/detectors/test_data}/divide-before-multiply/0.6.11/divide_before_multiply.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/divide-before-multiply/0.6.11/divide_before_multiply.sol.0.6.11.DivideBeforeMultiply.json (68%) rename tests/{detectors => e2e/detectors/test_data}/divide-before-multiply/0.7.6/divide_before_multiply.sol (100%) rename tests/{detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol.0.5.16.DivideBeforeMultiply.json => e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol.0.7.6.DivideBeforeMultiply.json} (68%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.4.25/permit_domain_collision.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.4.25/permit_domain_collision.sol.0.4.25.DomainSeparatorCollision.json (90%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol.0.4.25.DomainSeparatorCollision.json (89%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol.0.4.25.DomainSeparatorCollision.json (89%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.5.16/permit_domain_collision.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.5.16/permit_domain_collision.sol.0.5.16.DomainSeparatorCollision.json (90%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol.0.5.16.DomainSeparatorCollision.json (89%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol.0.5.16.DomainSeparatorCollision.json (89%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.6.11/permit_domain_collision.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.6.11/permit_domain_collision.sol.0.6.11.DomainSeparatorCollision.json (90%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol.0.6.11.DomainSeparatorCollision.json (89%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol.0.6.11.DomainSeparatorCollision.json (89%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.7.6/permit_domain_collision.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.7.6/permit_domain_collision.sol.0.7.6.DomainSeparatorCollision.json (90%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol.0.7.6.DomainSeparatorCollision.json (89%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol.0.7.6.DomainSeparatorCollision.json (89%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.8.0/permit_domain_collision.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.8.0/permit_domain_collision.sol.0.8.0.DomainSeparatorCollision.json (90%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol.0.8.0.DomainSeparatorCollision.json (89%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol.0.8.0.DomainSeparatorCollision.json (89%) rename tests/{detectors => e2e/detectors/test_data}/enum-conversion/0.4.2/enum_conversion.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/enum-conversion/0.4.2/enum_conversion.sol.0.4.2.EnumConversion.json (100%) rename tests/{detectors => e2e/detectors/test_data}/erc20-indexed/0.4.25/erc20_indexed.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/erc20-indexed/0.4.25/erc20_indexed.sol.0.4.25.UnindexedERC20EventParameters.json (72%) rename tests/{detectors => e2e/detectors/test_data}/erc20-indexed/0.5.16/erc20_indexed.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/erc20-indexed/0.5.16/erc20_indexed.sol.0.5.16.UnindexedERC20EventParameters.json (72%) rename tests/{detectors => e2e/detectors/test_data}/erc20-indexed/0.6.11/erc20_indexed.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/erc20-indexed/0.6.11/erc20_indexed.sol.0.6.11.UnindexedERC20EventParameters.json (72%) rename tests/{detectors => e2e/detectors/test_data}/erc20-indexed/0.7.6/erc20_indexed.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/erc20-indexed/0.7.6/erc20_indexed.sol.0.7.6.UnindexedERC20EventParameters.json (72%) rename tests/{detectors => e2e/detectors/test_data}/erc20-interface/0.4.25/incorrect_erc20_interface.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/erc20-interface/0.4.25/incorrect_erc20_interface.sol.0.4.25.IncorrectERC20InterfaceDetection.json (63%) rename tests/{detectors => e2e/detectors/test_data}/erc20-interface/0.5.16/incorrect_erc20_interface.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/erc20-interface/0.5.16/incorrect_erc20_interface.sol.0.5.16.IncorrectERC20InterfaceDetection.json (63%) rename tests/{detectors => e2e/detectors/test_data}/erc20-interface/0.6.11/incorrect_erc20_interface.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/erc20-interface/0.6.11/incorrect_erc20_interface.sol.0.6.11.IncorrectERC20InterfaceDetection.json (63%) rename tests/{detectors => e2e/detectors/test_data}/erc20-interface/0.7.6/incorrect_erc20_interface.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/erc20-interface/0.7.6/incorrect_erc20_interface.sol.0.7.6.IncorrectERC20InterfaceDetection.json (64%) rename tests/{detectors => e2e/detectors/test_data}/erc721-interface/0.4.25/incorrect_erc721_interface.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/erc721-interface/0.4.25/incorrect_erc721_interface.sol.0.4.25.IncorrectERC721InterfaceDetection.json (65%) rename tests/{detectors => e2e/detectors/test_data}/erc721-interface/0.5.16/incorrect_erc721_interface.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/erc721-interface/0.5.16/incorrect_erc721_interface.sol.0.5.16.IncorrectERC721InterfaceDetection.json (65%) rename tests/{detectors => e2e/detectors/test_data}/erc721-interface/0.6.11/incorrect_erc721_interface.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/erc721-interface/0.6.11/incorrect_erc721_interface.sol.0.6.11.IncorrectERC721InterfaceDetection.json (65%) rename tests/{detectors => e2e/detectors/test_data}/erc721-interface/0.7.6/incorrect_erc721_interface.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/erc721-interface/0.7.6/incorrect_erc721_interface.sol.0.7.6.IncorrectERC721InterfaceDetection.json (65%) rename tests/{detectors => e2e/detectors/test_data}/events-access/0.4.25/missing_events_access_control.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/events-access/0.4.25/missing_events_access_control.sol.0.4.25.MissingEventsAccessControl.json (80%) rename tests/{detectors => e2e/detectors/test_data}/events-access/0.5.16/missing_events_access_control.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/events-access/0.5.16/missing_events_access_control.sol.0.5.16.MissingEventsAccessControl.json (80%) rename tests/{detectors => e2e/detectors/test_data}/events-access/0.6.11/missing_events_access_control.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/events-access/0.6.11/missing_events_access_control.sol.0.6.11.MissingEventsAccessControl.json (80%) rename tests/{detectors => e2e/detectors/test_data}/events-access/0.7.6/missing_events_access_control.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/events-access/0.7.6/missing_events_access_control.sol.0.7.6.MissingEventsAccessControl.json (80%) rename tests/{detectors => e2e/detectors/test_data}/events-maths/0.4.25/missing_events_arithmetic.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/events-maths/0.4.25/missing_events_arithmetic.sol.0.4.25.MissingEventsArithmetic.json (83%) rename tests/{detectors => e2e/detectors/test_data}/events-maths/0.5.16/missing_events_arithmetic.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/events-maths/0.5.16/missing_events_arithmetic.sol.0.5.16.MissingEventsArithmetic.json (83%) rename tests/{detectors => e2e/detectors/test_data}/events-maths/0.6.11/missing_events_arithmetic.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/events-maths/0.6.11/missing_events_arithmetic.sol.0.6.11.MissingEventsArithmetic.json (83%) rename tests/{detectors => e2e/detectors/test_data}/events-maths/0.7.6/missing_events_arithmetic.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/events-maths/0.7.6/missing_events_arithmetic.sol.0.7.6.MissingEventsArithmetic.json (84%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.4.25/external_function.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.4.25/external_function.sol.0.4.25.ExternalFunction.json (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.4.25/external_function_2.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.4.25/external_function_2.sol.0.4.25.ExternalFunction.json (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.4.25/external_function_3.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.4.25/external_function_3.sol.0.4.25.ExternalFunction.json (71%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.4.25/external_function_import.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.5.16/external_function.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.5.16/external_function.sol.0.5.16.ExternalFunction.json (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.5.16/external_function_2.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.5.16/external_function_2.sol.0.5.16.ExternalFunction.json (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.5.16/external_function_3.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.5.16/external_function_3.sol.0.5.16.ExternalFunction.json (68%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.5.16/external_function_import.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.6.11/external_function.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.6.11/external_function.sol.0.6.11.ExternalFunction.json (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.6.11/external_function_2.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.6.11/external_function_2.sol.0.6.11.ExternalFunction.json (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.6.11/external_function_3.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.6.11/external_function_3.sol.0.6.11.ExternalFunction.json (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.6.11/external_function_import.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.7.6/external_function.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.7.6/external_function.sol.0.7.6.ExternalFunction.json (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.7.6/external_function_2.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.7.6/external_function_2.sol.0.7.6.ExternalFunction.json (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.7.6/external_function_3.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.7.6/external_function_3.sol.0.7.6.ExternalFunction.json (100%) rename tests/{detectors => e2e/detectors/test_data}/external-function/0.7.6/external_function_import.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/function-init-state/0.4.25/function_init_state_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/function-init-state/0.4.25/function_init_state_variables.sol.0.4.25.FunctionInitializedState.json (73%) rename tests/{detectors => e2e/detectors/test_data}/function-init-state/0.5.16/function_init_state_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/function-init-state/0.5.16/function_init_state_variables.sol.0.5.16.FunctionInitializedState.json (73%) rename tests/{detectors => e2e/detectors/test_data}/function-init-state/0.6.11/function_init_state_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/function-init-state/0.6.11/function_init_state_variables.sol.0.6.11.FunctionInitializedState.json (73%) rename tests/{detectors => e2e/detectors/test_data}/function-init-state/0.7.6/function_init_state_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/function-init-state/0.7.6/function_init_state_variables.sol.0.7.6.FunctionInitializedState.json (73%) rename tests/{detectors => e2e/detectors/test_data}/immutable-states/0.4.25/immut_state_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/immutable-states/0.4.25/immut_state_variables.sol.0.4.25.CouldBeImmutable.json (100%) rename tests/{detectors => e2e/detectors/test_data}/immutable-states/0.5.16/immut_state_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/immutable-states/0.5.16/immut_state_variables.sol.0.5.16.CouldBeImmutable.json (100%) rename tests/{detectors => e2e/detectors/test_data}/immutable-states/0.6.11/immut_state_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/immutable-states/0.6.11/immut_state_variables.sol.0.6.11.CouldBeImmutable.json (70%) rename tests/{detectors => e2e/detectors/test_data}/immutable-states/0.7.6/immut_state_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/immutable-states/0.7.6/immut_state_variables.sol.0.7.6.CouldBeImmutable.json (70%) rename tests/{detectors => e2e/detectors/test_data}/immutable-states/0.8.0/immut_state_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/immutable-states/0.8.0/immut_state_variables.sol.0.8.0.CouldBeImmutable.json (71%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-equality/0.4.25/incorrect_equality.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-equality/0.4.25/incorrect_equality.sol.0.4.25.IncorrectStrictEquality.json (81%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-equality/0.5.16/incorrect_equality.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-equality/0.5.16/incorrect_equality.sol.0.5.16.IncorrectStrictEquality.json (81%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-equality/0.6.11/incorrect_equality.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-equality/0.6.11/incorrect_equality.sol.0.6.11.IncorrectStrictEquality.json (81%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-equality/0.7.6/incorrect_equality.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-equality/0.7.6/incorrect_equality.sol.0.7.6.IncorrectStrictEquality.json (81%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-modifier/0.4.25/modifier_default.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-modifier/0.4.25/modifier_default.sol.0.4.25.ModifierDefaultDetection.json (80%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-modifier/0.5.16/modifier_default.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-modifier/0.5.16/modifier_default.sol.0.5.16.ModifierDefaultDetection.json (80%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-modifier/0.6.11/modifier_default.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-modifier/0.6.11/modifier_default.sol.0.6.11.ModifierDefaultDetection.json (80%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-modifier/0.7.6/modifier_default.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-modifier/0.7.6/modifier_default.sol.0.7.6.ModifierDefaultDetection.json (80%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-shift/0.4.25/shift_parameter_mixup.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-shift/0.4.25/shift_parameter_mixup.sol.0.4.25.ShiftParameterMixup.json (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-shift/0.5.16/shift_parameter_mixup.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-shift/0.5.16/shift_parameter_mixup.sol.0.5.16.ShiftParameterMixup.json (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-shift/0.6.11/shift_parameter_mixup.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-shift/0.6.11/shift_parameter_mixup.sol.0.6.11.ShiftParameterMixup.json (71%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-shift/0.7.6/shift_parameter_mixup.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-shift/0.7.6/shift_parameter_mixup.sol.0.7.6.ShiftParameterMixup.json (71%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-unary/0.4.25/invalid_unary_expression.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/incorrect-unary/0.4.25/invalid_unary_expression.sol.0.4.25.IncorrectUnaryExpressionDetection.json (74%) rename tests/{detectors => e2e/detectors/test_data}/locked-ether/0.4.25/locked_ether.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/locked-ether/0.4.25/locked_ether.sol.0.4.25.LockedEther.json (65%) rename tests/{detectors => e2e/detectors/test_data}/locked-ether/0.5.16/locked_ether.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/locked-ether/0.5.16/locked_ether.sol.0.5.16.LockedEther.json (65%) rename tests/{detectors => e2e/detectors/test_data}/locked-ether/0.6.11/locked_ether.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/locked-ether/0.6.11/locked_ether.sol.0.6.11.LockedEther.json (65%) rename tests/{detectors => e2e/detectors/test_data}/locked-ether/0.7.6/locked_ether.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/locked-ether/0.7.6/locked_ether.sol.0.7.6.LockedEther.json (65%) rename tests/{detectors => e2e/detectors/test_data}/low-level-calls/0.4.25/low_level_calls.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/low-level-calls/0.4.25/low_level_calls.sol.0.4.25.LowLevelCalls.json (71%) rename tests/{detectors => e2e/detectors/test_data}/low-level-calls/0.5.16/low_level_calls.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/low-level-calls/0.5.16/low_level_calls.sol.0.5.16.LowLevelCalls.json (71%) rename tests/{detectors => e2e/detectors/test_data}/low-level-calls/0.6.11/low_level_calls.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/low-level-calls/0.6.11/low_level_calls.sol.0.6.11.LowLevelCalls.json (71%) rename tests/{detectors => e2e/detectors/test_data}/low-level-calls/0.7.6/low_level_calls.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/low-level-calls/0.7.6/low_level_calls.sol.0.7.6.LowLevelCalls.json (72%) rename tests/{detectors => e2e/detectors/test_data}/mapping-deletion/0.4.25/MappingDeletion.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/mapping-deletion/0.4.25/MappingDeletion.sol.0.4.25.MappingDeletionDetection.json (76%) rename tests/{detectors => e2e/detectors/test_data}/mapping-deletion/0.5.16/MappingDeletion.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/mapping-deletion/0.5.16/MappingDeletion.sol.0.5.16.MappingDeletionDetection.json (76%) rename tests/{detectors => e2e/detectors/test_data}/mapping-deletion/0.6.11/MappingDeletion.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/mapping-deletion/0.6.11/MappingDeletion.sol.0.6.11.MappingDeletionDetection.json (76%) rename tests/{detectors => e2e/detectors/test_data}/mapping-deletion/0.7.6/MappingDeletion.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/mapping-deletion/0.7.6/MappingDeletion.sol.0.7.6.MappingDeletionDetection.json (76%) rename tests/{detectors => e2e/detectors/test_data}/missing-inheritance/0.4.25/unimplemented_interface.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/missing-inheritance/0.4.25/unimplemented_interface.sol.0.4.25.MissingInheritance.json (57%) rename tests/{detectors => e2e/detectors/test_data}/missing-inheritance/0.5.16/unimplemented_interface.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/missing-inheritance/0.5.16/unimplemented_interface.sol.0.5.16.MissingInheritance.json (57%) rename tests/{detectors => e2e/detectors/test_data}/missing-inheritance/0.6.11/unimplemented_interface.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/missing-inheritance/0.6.11/unimplemented_interface.sol.0.6.11.MissingInheritance.json (57%) rename tests/{detectors => e2e/detectors/test_data}/missing-inheritance/0.7.6/unimplemented_interface.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/missing-inheritance/0.7.6/unimplemented_interface.sol.0.7.6.MissingInheritance.json (57%) rename tests/{detectors => e2e/detectors/test_data}/missing-zero-check/0.4.25/missing_zero_address_validation.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/missing-zero-check/0.4.25/missing_zero_address_validation.sol.0.4.25.MissingZeroAddressValidation.json (83%) rename tests/{detectors => e2e/detectors/test_data}/missing-zero-check/0.5.16/missing_zero_address_validation.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/missing-zero-check/0.5.16/missing_zero_address_validation.sol.0.5.16.MissingZeroAddressValidation.json (83%) rename tests/{detectors => e2e/detectors/test_data}/missing-zero-check/0.6.11/missing_zero_address_validation.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/missing-zero-check/0.6.11/missing_zero_address_validation.sol.0.6.11.MissingZeroAddressValidation.json (83%) rename tests/{detectors => e2e/detectors/test_data}/missing-zero-check/0.7.6/missing_zero_address_validation.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/missing-zero-check/0.7.6/missing_zero_address_validation.sol.0.7.6.MissingZeroAddressValidation.json (84%) rename tests/{detectors => e2e/detectors/test_data}/msg-value-loop/0.4.25/msg_value_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/msg-value-loop/0.4.25/msg_value_loop.sol.0.4.25.MsgValueInLoop.json (78%) rename tests/{detectors => e2e/detectors/test_data}/msg-value-loop/0.5.16/msg_value_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/msg-value-loop/0.5.16/msg_value_loop.sol.0.5.16.MsgValueInLoop.json (78%) rename tests/{detectors => e2e/detectors/test_data}/msg-value-loop/0.6.11/msg_value_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/msg-value-loop/0.6.11/msg_value_loop.sol.0.6.11.MsgValueInLoop.json (78%) rename tests/{detectors => e2e/detectors/test_data}/msg-value-loop/0.7.6/msg_value_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/msg-value-loop/0.7.6/msg_value_loop.sol.0.7.6.MsgValueInLoop.json (78%) rename tests/{detectors => e2e/detectors/test_data}/msg-value-loop/0.8.0/msg_value_loop.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/msg-value-loop/0.8.0/msg_value_loop.sol.0.8.0.MsgValueInLoop.json (78%) rename tests/{detectors => e2e/detectors/test_data}/multiple-constructors/0.4.22/multiple_constructor_schemes.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/multiple-constructors/0.4.22/multiple_constructor_schemes.sol.0.4.22.MultipleConstructorSchemes.json (67%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.4.25/naming_convention.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.4.25/naming_convention.sol.0.4.25.NamingConvention.json (77%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.4.25/naming_convention_ignore.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.4.25/no_warning_for_public_constants.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.4.25/no_warning_for_public_constants.sol.0.4.25.NamingConvention.json (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.5.16/naming_convention.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.5.16/naming_convention.sol.0.5.16.NamingConvention.json (77%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.5.16/naming_convention_ignore.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.5.16/no_warning_for_public_constants.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.5.16/no_warning_for_public_constants.sol.0.5.16.NamingConvention.json (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.6.11/naming_convention.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.6.11/naming_convention.sol.0.6.11.NamingConvention.json (77%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.6.11/naming_convention_ignore.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.6.11/no_warning_for_public_constants.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.6.11/no_warning_for_public_constants.sol.0.6.11.NamingConvention.json (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.7.6/naming_convention.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.7.6/naming_convention.sol.0.7.6.NamingConvention.json (77%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.7.6/naming_convention_ignore.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.7.6/no_warning_for_public_constants.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/naming-convention/0.7.6/no_warning_for_public_constants.sol.0.7.6.NamingConvention.json (100%) rename tests/{detectors => e2e/detectors/test_data}/pragma/0.4.25/pragma.0.4.24.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/pragma/0.4.25/pragma.0.4.25.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/pragma/0.4.25/pragma.0.4.25.sol.0.4.25.ConstantPragma.json (69%) rename tests/{detectors => e2e/detectors/test_data}/pragma/0.5.16/pragma.0.5.15.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/pragma/0.5.16/pragma.0.5.16.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/pragma/0.5.16/pragma.0.5.16.sol.0.5.16.ConstantPragma.json (69%) rename tests/{detectors => e2e/detectors/test_data}/pragma/0.6.11/pragma.0.6.10.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/pragma/0.6.11/pragma.0.6.11.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/pragma/0.6.11/pragma.0.6.11.sol.0.6.11.ConstantPragma.json (69%) rename tests/{detectors => e2e/detectors/test_data}/pragma/0.7.6/pragma.0.7.5.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/pragma/0.7.6/pragma.0.7.6.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/pragma/0.7.6/pragma.0.7.6.sol.0.7.6.ConstantPragma.json (67%) rename tests/{detectors => e2e/detectors/test_data}/protected-vars/0.8.2/comment.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/protected-vars/0.8.2/comment.sol.0.8.2.ProtectedVariables.json (77%) rename tests/{detectors => e2e/detectors/test_data}/public-mappings-nested/0.4.25/public_mappings_nested.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/public-mappings-nested/0.4.25/public_mappings_nested.sol.0.4.25.PublicMappingNested.json (68%) rename tests/{detectors => e2e/detectors/test_data}/redundant-statements/0.4.25/redundant_statements.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/redundant-statements/0.4.25/redundant_statements.sol.0.4.25.RedundantStatements.json (73%) rename tests/{detectors => e2e/detectors/test_data}/redundant-statements/0.5.16/redundant_statements.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/redundant-statements/0.5.16/redundant_statements.sol.0.5.16.RedundantStatements.json (73%) rename tests/{detectors => e2e/detectors/test_data}/redundant-statements/0.6.11/redundant_statements.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/redundant-statements/0.6.11/redundant_statements.sol.0.6.11.RedundantStatements.json (73%) rename tests/{detectors => e2e/detectors/test_data}/redundant-statements/0.7.6/redundant_statements.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/redundant-statements/0.7.6/redundant_statements.sol.0.7.6.RedundantStatements.json (73%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-benign/0.4.25/reentrancy-benign.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-benign/0.4.25/reentrancy-benign.sol.0.4.25.ReentrancyBenign.json (86%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-benign/0.5.16/reentrancy-benign.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json (86%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-benign/0.6.11/reentrancy-benign.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json (86%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-benign/0.7.6/reentrancy-benign.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json (82%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.4.25/DAO.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.4.25/DAO.sol.0.4.25.ReentrancyEth.json (94%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.4.25/reentrancy.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.4.25/reentrancy.sol.0.4.25.ReentrancyEth.json (78%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.4.25/reentrancy_indirect.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.4.25/reentrancy_indirect.sol.0.4.25.ReentrancyEth.json (74%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.5.16/reentrancy.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.5.16/reentrancy.sol.0.5.16.ReentrancyEth.json (78%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.5.16/reentrancy_indirect.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.5.16/reentrancy_indirect.sol.0.5.16.ReentrancyEth.json (74%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.6.11/reentrancy.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.6.11/reentrancy.sol.0.6.11.ReentrancyEth.json (78%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.6.11/reentrancy_indirect.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.6.11/reentrancy_indirect.sol.0.6.11.ReentrancyEth.json (74%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.7.6/reentrancy.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.7.6/reentrancy.sol.0.7.6.ReentrancyEth.json (78%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.7.6/reentrancy_indirect.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.7.6/reentrancy_indirect.sol.0.7.6.ReentrancyEth.json (74%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol.0.8.10.ReentrancyEth.json (70%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol.0.8.10.ReentrancyEth.json (73%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-events/0.5.16/reentrancy-events.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-events/0.5.16/reentrancy-events.sol.0.5.16.ReentrancyEvent.json (75%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-events/0.6.11/reentrancy-events.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-events/0.6.11/reentrancy-events.sol.0.6.11.ReentrancyEvent.json (75%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-events/0.7.6/reentrancy-events.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-events/0.7.6/reentrancy-events.sol.0.7.6.ReentrancyEvent.json (75%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.4.25/DAO.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.4.25/DAO.sol.0.4.25.ReentrancyReadBeforeWritten.json (95%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.4.25/reentrancy-write.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.4.25/reentrancy-write.sol.0.4.25.ReentrancyReadBeforeWritten.json (78%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol.0.5.16.ReentrancyReadBeforeWritten.json (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.5.16/reentrancy-write.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.5.16/reentrancy-write.sol.0.5.16.ReentrancyReadBeforeWritten.json (78%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol.0.6.11.ReentrancyReadBeforeWritten.json (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.6.11/reentrancy-write.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.6.11/reentrancy-write.sol.0.6.11.ReentrancyReadBeforeWritten.json (78%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol.0.7.6.ReentrancyReadBeforeWritten.json (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.7.6/reentrancy-write.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.7.6/reentrancy-write.sol.0.7.6.ReentrancyReadBeforeWritten.json (78%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.8.2/comment.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reentrancy-no-eth/0.8.2/comment.sol.0.8.2.ReentrancyReadBeforeWritten.json (100%) rename tests/{detectors => e2e/detectors/test_data}/reused-constructor/0.4.21/reused_base_constructor.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reused-constructor/0.4.21/reused_base_constructor.sol.0.4.21.ReusedBaseConstructor.json (59%) rename tests/{detectors => e2e/detectors/test_data}/reused-constructor/0.4.25/reused_base_constructor.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/reused-constructor/0.4.25/reused_base_constructor.sol.0.4.25.ReusedBaseConstructor.json (59%) rename tests/{detectors => e2e/detectors/test_data}/rtlo/0.4.25/right_to_left_override.sol (100%) create mode 100644 tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol.0.4.25.RightToLeftOverride.json rename tests/{detectors => e2e/detectors/test_data}/rtlo/0.5.16/right_to_left_override.sol (100%) create mode 100644 tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol.0.5.16.RightToLeftOverride.json rename tests/{detectors => e2e/detectors/test_data}/rtlo/0.6.11/right_to_left_override.sol (100%) create mode 100644 tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol.0.6.11.RightToLeftOverride.json rename tests/{detectors => e2e/detectors/test_data}/rtlo/0.8.0/unicode_direction_override.sol (100%) create mode 100644 tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol.0.8.0.RightToLeftOverride.json rename tests/{detectors => e2e/detectors/test_data}/shadowing-abstract/0.4.25/shadowing_abstract.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-abstract/0.4.25/shadowing_abstract.sol.0.4.25.ShadowingAbstractDetection.json (64%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-abstract/0.5.16/shadowing_abstract.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-abstract/0.5.16/shadowing_abstract.sol.0.5.16.ShadowingAbstractDetection.json (64%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-abstract/0.7.5/public_gap_variable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-abstract/0.7.5/public_gap_variable.sol.0.7.5.ShadowingAbstractDetection.json (64%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-abstract/0.7.5/shadowing_state_variable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-abstract/0.7.5/shadowing_state_variable.sol.0.7.5.ShadowingAbstractDetection.json (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol.0.4.25.BuiltinSymbolShadowing.json (68%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol.0.5.16.BuiltinSymbolShadowing.json (68%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-local/0.4.25/shadowing_local_variable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-local/0.4.25/shadowing_local_variable.sol.0.4.25.LocalShadowing.json (71%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-local/0.5.16/shadowing_local_variable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-local/0.5.16/shadowing_local_variable.sol.0.5.16.LocalShadowing.json (72%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-local/0.6.11/shadowing_local_variable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-local/0.6.11/shadowing_local_variable.sol.0.6.11.LocalShadowing.json (73%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-local/0.7.6/shadowing_local_variable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-local/0.7.6/shadowing_local_variable.sol.0.7.6.LocalShadowing.json (73%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-state/0.4.25/shadowing_state_variable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-state/0.4.25/shadowing_state_variable.sol.0.4.25.StateShadowing.json (67%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-state/0.5.16/shadowing_state_variable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-state/0.5.16/shadowing_state_variable.sol.0.5.16.StateShadowing.json (67%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-state/0.6.11/shadowing_state_variable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-state/0.6.11/shadowing_state_variable.sol.0.6.11.StateShadowing.json (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-state/0.7.5/public_gap_variable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-state/0.7.5/public_gap_variable.sol.0.7.5.StateShadowing.json (65%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-state/0.7.5/shadowing_state_variable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-state/0.7.5/shadowing_state_variable.sol.0.7.5.StateShadowing.json (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-state/0.7.6/shadowing_state_variable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/shadowing-state/0.7.6/shadowing_state_variable.sol.0.7.6.StateShadowing.json (100%) rename tests/{detectors => e2e/detectors/test_data}/similar-names/0.4.25/similar_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/similar-names/0.4.25/similar_variables.sol.0.4.25.SimilarVarsDetection.json (77%) rename tests/{detectors => e2e/detectors/test_data}/similar-names/0.5.16/similar_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/similar-names/0.5.16/similar_variables.sol.0.5.16.SimilarVarsDetection.json (77%) rename tests/{detectors => e2e/detectors/test_data}/similar-names/0.6.11/similar_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/similar-names/0.6.11/similar_variables.sol.0.6.11.SimilarVarsDetection.json (77%) rename tests/{detectors => e2e/detectors/test_data}/similar-names/0.7.6/similar_variables.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/similar-names/0.7.6/similar_variables.sol.0.7.6.SimilarVarsDetection.json (77%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.4.25/static.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.4.25/static.sol.0.4.25.IncorrectSolc.json (67%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.5.14/static.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.5.14/static.sol.0.5.14.IncorrectSolc.json (64%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.5.16/dynamic_1.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json (57%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.5.16/dynamic_2.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json (57%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.5.16/static.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json (67%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.6.10/static.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.6.10/static.sol.0.6.10.IncorrectSolc.json (67%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.6.11/dynamic_1.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json (57%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.6.11/dynamic_2.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json (57%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.6.11/static.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json (67%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.7.4/static.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.7.4/static.sol.0.7.4.IncorrectSolc.json (67%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.7.6/dynamic_1.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json (57%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.7.6/dynamic_2.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json (62%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.7.6/static.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json (67%) rename tests/{detectors => e2e/detectors/test_data}/storage-array/0.5.10/storage_signed_integer_array.sol (100%) create mode 100644 tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json rename tests/{detectors => e2e/detectors/test_data}/storage-array/0.5.16/storage_signed_integer_array.sol (100%) create mode 100644 tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json rename tests/{detectors => e2e/detectors/test_data}/suicidal/0.4.25/suicidal.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/suicidal/0.4.25/suicidal.sol.0.4.25.Suicidal.json (68%) rename tests/{detectors => e2e/detectors/test_data}/suicidal/0.5.16/suicidal.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/suicidal/0.5.16/suicidal.sol.0.5.16.Suicidal.json (68%) rename tests/{detectors => e2e/detectors/test_data}/suicidal/0.6.11/suicidal.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/suicidal/0.6.11/suicidal.sol.0.6.11.Suicidal.json (68%) rename tests/{detectors => e2e/detectors/test_data}/suicidal/0.7.6/suicidal.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/suicidal/0.7.6/suicidal.sol.0.7.6.Suicidal.json (69%) rename tests/{detectors => e2e/detectors/test_data}/tautology/0.4.25/type_based_tautology.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/tautology/0.4.25/type_based_tautology.sol.0.4.25.TypeBasedTautology.json (73%) rename tests/{detectors => e2e/detectors/test_data}/tautology/0.5.16/type_based_tautology.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/tautology/0.5.16/type_based_tautology.sol.0.5.16.TypeBasedTautology.json (73%) rename tests/{detectors => e2e/detectors/test_data}/tautology/0.6.11/type_based_tautology.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/tautology/0.6.11/type_based_tautology.sol.0.6.11.TypeBasedTautology.json (73%) rename tests/{detectors => e2e/detectors/test_data}/tautology/0.7.6/type_based_tautology.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/tautology/0.7.6/type_based_tautology.sol.0.7.6.TypeBasedTautology.json (73%) rename tests/{detectors => e2e/detectors/test_data}/timestamp/0.4.25/timestamp.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/timestamp/0.4.25/timestamp.sol.0.4.25.Timestamp.json (76%) rename tests/{detectors => e2e/detectors/test_data}/timestamp/0.5.16/timestamp.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/timestamp/0.5.16/timestamp.sol.0.5.16.Timestamp.json (76%) rename tests/{detectors => e2e/detectors/test_data}/timestamp/0.6.11/timestamp.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/timestamp/0.6.11/timestamp.sol.0.6.11.Timestamp.json (76%) rename tests/{detectors => e2e/detectors/test_data}/timestamp/0.7.6/timestamp.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/timestamp/0.7.6/timestamp.sol.0.7.6.Timestamp.json (76%) rename tests/{detectors => e2e/detectors/test_data}/too-many-digits/0.4.25/too_many_digits.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/too-many-digits/0.4.25/too_many_digits.sol.0.4.25.TooManyDigits.json (80%) rename tests/{detectors => e2e/detectors/test_data}/too-many-digits/0.5.16/too_many_digits.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/too-many-digits/0.5.16/too_many_digits.sol.0.5.16.TooManyDigits.json (80%) rename tests/{detectors => e2e/detectors/test_data}/too-many-digits/0.6.11/too_many_digits.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/too-many-digits/0.6.11/too_many_digits.sol.0.6.11.TooManyDigits.json (80%) rename tests/{detectors => e2e/detectors/test_data}/too-many-digits/0.7.6/too_many_digits.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/too-many-digits/0.7.6/too_many_digits.sol.0.7.6.TooManyDigits.json (80%) rename tests/{detectors => e2e/detectors/test_data}/tx-origin/0.4.25/tx_origin.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/tx-origin/0.4.25/tx_origin.sol.0.4.25.TxOrigin.json (78%) rename tests/{detectors => e2e/detectors/test_data}/tx-origin/0.5.16/tx_origin.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/tx-origin/0.5.16/tx_origin.sol.0.5.16.TxOrigin.json (78%) rename tests/{detectors => e2e/detectors/test_data}/tx-origin/0.6.11/tx_origin.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/tx-origin/0.6.11/tx_origin.sol.0.6.11.TxOrigin.json (78%) rename tests/{detectors => e2e/detectors/test_data}/tx-origin/0.7.6/tx_origin.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/tx-origin/0.7.6/tx_origin.sol.0.7.6.TxOrigin.json (78%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol.0.4.25.UncheckedLowLevel.json (71%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol.0.5.16.UncheckedLowLevel.json (71%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol.0.6.11.UncheckedLowLevel.json (71%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol.0.7.6.UncheckedLowLevel.json (71%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-send/0.4.25/unchecked_send.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-send/0.4.25/unchecked_send.sol.0.4.25.UncheckedSend.json (75%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-send/0.5.16/unchecked_send.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-send/0.5.16/unchecked_send.sol.0.5.16.UncheckedSend.json (75%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-send/0.6.11/unchecked_send.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-send/0.6.11/unchecked_send.sol.0.6.11.UncheckedSend.json (75%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-send/0.7.6/unchecked_send.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-send/0.7.6/unchecked_send.sol.0.7.6.UncheckedSend.json (75%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-transfer/0.7.6/unused_return_transfers.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unchecked-transfer/0.7.6/unused_return_transfers.sol.0.7.6.UncheckedTransfer.json (80%) rename tests/{detectors => e2e/detectors/test_data}/unimplemented-functions/0.4.25/unimplemented.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unimplemented-functions/0.4.25/unimplemented.sol.0.4.25.UnimplementedFunctionDetection.json (63%) rename tests/{detectors => e2e/detectors/test_data}/unimplemented-functions/0.5.16/unimplemented.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unimplemented-functions/0.5.16/unimplemented.sol.0.5.16.UnimplementedFunctionDetection.json (63%) rename tests/{detectors => e2e/detectors/test_data}/unimplemented-functions/0.5.16/unimplemented_interfaces.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unimplemented-functions/0.5.16/unimplemented_interfaces.sol.0.5.16.UnimplementedFunctionDetection.json (100%) rename tests/{detectors => e2e/detectors/test_data}/unimplemented-functions/0.6.11/unimplemented.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unimplemented-functions/0.6.11/unimplemented.sol.0.6.11.UnimplementedFunctionDetection.json (63%) rename tests/{detectors => e2e/detectors/test_data}/unimplemented-functions/0.6.11/unimplemented_interfaces.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unimplemented-functions/0.6.11/unimplemented_interfaces.sol.0.6.11.UnimplementedFunctionDetection.json (100%) rename tests/{detectors => e2e/detectors/test_data}/unimplemented-functions/0.7.6/unimplemented.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unimplemented-functions/0.7.6/unimplemented.sol.0.7.6.UnimplementedFunctionDetection.json (63%) rename tests/{detectors => e2e/detectors/test_data}/unimplemented-functions/0.7.6/unimplemented_interfaces.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unimplemented-functions/0.7.6/unimplemented_interfaces.sol.0.7.6.UnimplementedFunctionDetection.json (100%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol (100%) rename tests/{detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol.0.5.8.UninitializedFunctionPtrsConstructor.json => e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol.0.4.25.UninitializedFunctionPtrsConstructor.json} (65%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol (100%) create mode 100644 tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json rename tests/{detectors => e2e/detectors/test_data}/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol (100%) rename tests/{detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol.0.4.25.UninitializedFunctionPtrsConstructor.json => e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol.0.5.8.UninitializedFunctionPtrsConstructor.json} (66%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-local/0.4.25/uninitialized_local_variable.sol (100%) rename tests/{detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol.0.7.6.UninitializedLocalVars.json => e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol.0.4.25.UninitializedLocalVars.json} (74%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-local/0.5.16/uninitialized_local_variable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-local/0.5.16/uninitialized_local_variable.sol.0.5.16.UninitializedLocalVars.json (74%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-local/0.6.11/uninitialized_local_variable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-local/0.6.11/uninitialized_local_variable.sol.0.6.11.UninitializedLocalVars.json (74%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-local/0.7.6/uninitialized_local_variable.sol (100%) rename tests/{detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol.0.4.25.UninitializedLocalVars.json => e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol.0.7.6.UninitializedLocalVars.json} (74%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-state/0.4.25/uninitialized.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-state/0.4.25/uninitialized.sol.0.4.25.UninitializedStateVarsDetection.json (70%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-state/0.5.16/uninitialized.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-state/0.5.16/uninitialized.sol.0.5.16.UninitializedStateVarsDetection.json (70%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-state/0.6.11/uninitialized.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-state/0.6.11/uninitialized.sol.0.6.11.UninitializedStateVarsDetection.json (70%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-state/0.7.6/uninitialized.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-state/0.7.6/uninitialized.sol.0.7.6.UninitializedStateVarsDetection.json (70%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol.0.4.25.UninitializedStorageVars.json (72%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol.0.8.19.UninitializedStorageVars.json (73%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.4.25/Buggy.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.4.25/Buggy.sol.0.4.25.UnprotectedUpgradeable.json (70%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.4.25/Fixed.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.4.25/Fixed.sol.0.4.25.UnprotectedUpgradeable.json (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.4.25/Initializable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.4.25/OnlyProxy.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.4.25/whitelisted.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.4.25/whitelisted.sol.0.4.25.UnprotectedUpgradeable.json (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.5.16/Buggy.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.5.16/Buggy.sol.0.5.16.UnprotectedUpgradeable.json (70%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.5.16/Fixed.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.5.16/Fixed.sol.0.5.16.UnprotectedUpgradeable.json (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.5.16/Initializable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.5.16/OnlyProxy.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.5.16/whitelisted.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.5.16/whitelisted.sol.0.5.16.UnprotectedUpgradeable.json (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.6.11/Buggy.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.6.11/Buggy.sol.0.6.11.UnprotectedUpgradeable.json (70%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.6.11/Fixed.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.6.11/Fixed.sol.0.6.11.UnprotectedUpgradeable.json (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.6.11/Initializable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.6.11/OnlyProxy.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.6.11/whitelisted.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.6.11/whitelisted.sol.0.6.11.UnprotectedUpgradeable.json (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.7.6/Buggy.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.7.6/Buggy.sol.0.7.6.UnprotectedUpgradeable.json (70%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.7.6/Fixed.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.7.6/Fixed.sol.0.7.6.UnprotectedUpgradeable.json (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.7.6/Initializable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.7.6/OnlyProxy.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.7.6/whitelisted.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.7.6/whitelisted.sol.0.7.6.UnprotectedUpgradeable.json (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.8.15/Buggy.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.8.15/Buggy.sol.0.8.15.UnprotectedUpgradeable.json (69%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.8.15/Fixed.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.8.15/Fixed.sol.0.8.15.UnprotectedUpgradeable.json (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.8.15/Initializable.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.8.15/OnlyProxy.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.8.15/whitelisted.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unprotected-upgrade/0.8.15/whitelisted.sol.0.8.15.UnprotectedUpgradeable.json (100%) rename tests/{detectors => e2e/detectors/test_data}/unused-return/0.4.25/unused_return.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unused-return/0.4.25/unused_return.sol.0.4.25.UnusedReturnValues.json (77%) rename tests/{detectors => e2e/detectors/test_data}/unused-return/0.5.16/unused_return.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unused-return/0.5.16/unused_return.sol.0.5.16.UnusedReturnValues.json (77%) rename tests/{detectors => e2e/detectors/test_data}/unused-return/0.6.11/unused_return.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unused-return/0.6.11/unused_return.sol.0.6.11.UnusedReturnValues.json (77%) rename tests/{detectors => e2e/detectors/test_data}/unused-return/0.7.6/unused_return.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unused-return/0.7.6/unused_return.sol.0.7.6.UnusedReturnValues.json (78%) rename tests/{detectors => e2e/detectors/test_data}/unused-state/0.4.25/unused_state.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unused-state/0.4.25/unused_state.sol.0.4.25.UnusedStateVars.json (66%) rename tests/{detectors => e2e/detectors/test_data}/unused-state/0.5.16/unused_state.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unused-state/0.5.16/unused_state.sol.0.5.16.UnusedStateVars.json (66%) rename tests/{detectors => e2e/detectors/test_data}/unused-state/0.6.11/unused_state.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unused-state/0.6.11/unused_state.sol.0.6.11.UnusedStateVars.json (66%) rename tests/{detectors => e2e/detectors/test_data}/unused-state/0.7.6/unused_state.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/unused-state/0.7.6/unused_state.sol.0.7.6.UnusedStateVars.json (67%) rename tests/{detectors => e2e/detectors/test_data}/var-read-using-this/0.4.25/var_read_using_this.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/var-read-using-this/0.4.25/var_read_using_this.sol.0.4.25.VarReadUsingThis.json (100%) rename tests/{detectors => e2e/detectors/test_data}/var-read-using-this/0.5.16/var_read_using_this.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/var-read-using-this/0.5.16/var_read_using_this.sol.0.5.16.VarReadUsingThis.json (79%) rename tests/{detectors => e2e/detectors/test_data}/var-read-using-this/0.6.11/var_read_using_this.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/var-read-using-this/0.6.11/var_read_using_this.sol.0.6.11.VarReadUsingThis.json (79%) rename tests/{detectors => e2e/detectors/test_data}/var-read-using-this/0.7.6/var_read_using_this.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/var-read-using-this/0.7.6/var_read_using_this.sol.0.7.6.VarReadUsingThis.json (79%) rename tests/{detectors => e2e/detectors/test_data}/var-read-using-this/0.8.15/var_read_using_this.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/var-read-using-this/0.8.15/var_read_using_this.sol.0.8.15.VarReadUsingThis.json (79%) rename tests/{detectors => e2e/detectors/test_data}/variable-scope/0.4.25/predeclaration_usage_local.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/variable-scope/0.4.25/predeclaration_usage_local.sol.0.4.25.PredeclarationUsageLocal.json (77%) rename tests/{detectors => e2e/detectors/test_data}/void-cst/0.4.25/void-cst.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/void-cst/0.4.25/void-cst.sol.0.4.25.VoidConstructor.json (75%) rename tests/{detectors => e2e/detectors/test_data}/void-cst/0.5.16/void-cst.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/void-cst/0.5.16/void-cst.sol.0.5.16.VoidConstructor.json (75%) rename tests/{detectors => e2e/detectors/test_data}/void-cst/0.6.11/void-cst.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/void-cst/0.6.11/void-cst.sol.0.6.11.VoidConstructor.json (75%) rename tests/{detectors => e2e/detectors/test_data}/void-cst/0.7.6/void-cst.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/void-cst/0.7.6/void-cst.sol.0.7.6.VoidConstructor.json (75%) rename tests/{detectors => e2e/detectors/test_data}/weak-prng/0.4.25/bad_prng.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/weak-prng/0.4.25/bad_prng.sol.0.4.25.BadPRNG.json (79%) rename tests/{detectors => e2e/detectors/test_data}/weak-prng/0.5.16/bad_prng.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/weak-prng/0.5.16/bad_prng.sol.0.5.16.BadPRNG.json (79%) rename tests/{detectors => e2e/detectors/test_data}/weak-prng/0.6.11/bad_prng.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/weak-prng/0.6.11/bad_prng.sol.0.6.11.BadPRNG.json (79%) rename tests/{detectors => e2e/detectors/test_data}/weak-prng/0.7.6/bad_prng.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/weak-prng/0.7.6/bad_prng.sol.0.7.6.BadPRNG.json (79%) rename tests/{detectors => e2e/detectors/test_data}/write-after-write/0.8.0/write-after-write.sol (100%) rename tests/{detectors => e2e/detectors/test_data}/write-after-write/0.8.0/write-after-write.sol.0.8.0.WriteAfterWrite.json (84%) rename tests/{ => e2e/detectors}/test_detectors.py (99%) rename tests/{ => e2e/solc_parsing}/test_ast_parsing.py (99%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/assembly-all.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/assignment-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/assignment-0.4.7.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/binaryoperation-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/binaryoperation-0.4.7.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/break-all.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/bytes_call.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/call_to_variable-all.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/comment-all.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assembly-all.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/assignment-0.4.7.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/binaryoperation-0.4.7.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/break-all.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/bytes_call.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/call_to_variable-all.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/comment-all.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases/test.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/complex_imports/import_free/Caller.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/conditional-all.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/continue-all.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.4.22.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/contract-0.6.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom-error-selector.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom-error-selector.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom-error-selector.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom-error-selector.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom-error-selector.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom-error-selector.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom-error-selector.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom-error-selector.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom-error-selector.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom-error-selector.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom-error-selector.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom-error-selector.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.4.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.8.4.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.8.4.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.8.4.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.8.4.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.8.4.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.8.4.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.8.4.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.8.4.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.8.4.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.8.4.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.8.4.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error-0.8.4.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error_with_state_variable.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error_with_state_variable.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error_with_state_variable.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error_with_state_variable.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error_with_state_variable.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error_with_state_variable.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error_with_state_variable.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error_with_state_variable.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/custom_error_with_state_variable.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/dowhile-0.4.5.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.21.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.21.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.21.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.21.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.21.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.21.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.21.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.21.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.21.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.21.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.21.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.21.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.4.8.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/emit-0.5.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.4.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/enum-0.8.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/event-all.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/for-all.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/free_functions/libraries_from_free.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/free_functions/library_constant_function_collision.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/free_functions/new_operator.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.16.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.16.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.16.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.16.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.16.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.16.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.16.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.16.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.16.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.16.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.16.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.16.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.22.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.22.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.23.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.23.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.23.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.23.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.23.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.23.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.23.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.4.23.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.5.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.6.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.6.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.6.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.6.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.6.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.6.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.6.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.6.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.6.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.6.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.6.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.6.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.6.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/function-0.7.1.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.5.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.5.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.5.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.5.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.4.5.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.5.3.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.2.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.2.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.2.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.2.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.2.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.2.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.2.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.2.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.2.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.2.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.2.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.2.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.8.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.8.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.8.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.8.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.8.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.8.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.8.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.8.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.8.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.6.8.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.7.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.7.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.7.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.7.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.7.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.7.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.7.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.7.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.7.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.7.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.7.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.7.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.7.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.7.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/functioncall-0.8.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/if-all.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexaccess-all.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.4.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/indexrangeaccess-0.6.1.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_event-0.8.16.sol-0.8.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/library_implicit_conversion-0.5.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.4.10.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.5.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/literal-0.6.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/memberaccess-0.5.3.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.4.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.6.8.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.8.8.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.8.8.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.8.8.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.8.8.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.8.8.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.8.8.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.8.8.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/minmax-0.8.8.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-0.7.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier-all.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/modifier_identifier_path.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/newexpression-0.5.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.5.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.6.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.7.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.7.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.7.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.7.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.7.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.7.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.7.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.7.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.7.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.7.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.7.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.7.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.7.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.7.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/pragma-0.8.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/push-all.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/return-all.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/scope-0.5.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/struct-0.6.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/ternary-with-max.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/throw-0.5.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.4.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.1.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.1.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.1.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.1.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.1.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.1.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-0.7.4.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.4.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-0.7.1.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.4.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-import-bis-0.7.1.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.4.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-nested-import-0.7.1.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top-level-struct-0.8.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.4.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable-0.8.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.4.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/top_level_variable2-0.8.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/trycatch-0.6.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.4.24.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/tupleexpression-0.5.3.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unaryexpression-0.5.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.4.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/unchecked-0.8.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.5.4.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.6.0.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.7.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.7.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.7.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.7.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.7.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.7.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.7.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.7.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.7.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.7.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.7.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.7.0.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.7.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.7.0.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.4.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.4.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.4.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.7.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.7.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/units_and_global_variables-0.8.7.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-0.4.1.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-1-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-2-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-3-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-4-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-alias-contract-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-alias-top-level-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-functions-list-1-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-functions-list-2-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-functions-list-3-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-functions-list-4-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-global-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/using-for-in-library-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.0.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.14.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.14.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.14.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.14.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.16.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.5.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.5.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.5.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.5.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.5.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.5.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.5.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.5.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.5.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.5.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.4.5.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.5.0.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.5.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.5.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.5.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.5.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.5.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.5.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.5.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.5.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.6.9.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variable-0.8.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.0.sol-0.4.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.24.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.24.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.4.24.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/variabledeclaration-0.5.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/while-all.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.0.sol-0.4.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.1.sol-0.4.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.1.sol-0.4.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.1.sol-0.4.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.1.sol-0.4.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.1.sol-0.4.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.1.sol-0.4.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.1.sol-0.4.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.1.sol-0.4.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.1.sol-0.4.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.1.sol-0.4.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.18-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.18-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.19-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.19-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.20-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.20-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.21-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.21-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.22-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.22-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.23-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.23-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.24-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.24-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.25-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.25-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.26-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.4.26-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.13-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.14-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.15-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.16-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.17-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.17-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.5.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.10-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.11-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.12-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.7-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.8-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.4.11.sol-0.6.9-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.7.0.sol-0.7.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.7.0.sol-0.7.0-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.7.0.sol-0.7.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.7.0.sol-0.7.1-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.7.0.sol-0.7.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.7.0.sol-0.7.2-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.7.0.sol-0.7.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.7.0.sol-0.7.3-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.7.0.sol-0.7.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.7.0.sol-0.7.4-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.7.5.sol-0.7.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.7.5.sol-0.7.5-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.7.5.sol-0.7.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.7.5.sol-0.7.6-legacy.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.1-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.10-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.11-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.12-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.13-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.14-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.15-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.2-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.3-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.4-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.5-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.6-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.7-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.8-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-0.8.0.sol-0.8.9-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-state-constant-access.sol-0.8.16-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/compile/yul-top-level-0.8.0.sol-0.8.0-compact.zip (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/complex_imports/FreeFuns.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/complex_imports/import_aliases/import.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/complex_imports/import_aliases/test.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/complex_imports/import_aliases_issue_1319/import.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/complex_imports/import_aliases_issue_1319/test.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/complex_imports/import_aliases_issue_1319/test_fail.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/complex_imports/import_free/Caller.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/conditional-all.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/continue-all.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/contract-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/contract-0.4.22.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/contract-0.6.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/custom-error-selector.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/custom_error-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/custom_error-0.8.4.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/custom_error_with_state_variable.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/dowhile-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/dowhile-0.4.5.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/emit-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/emit-0.4.21.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/emit-0.4.8.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/emit-0.5.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/enum-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/enum-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/event-all.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assembly-all.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/assignment-0.4.7.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/binaryoperation-0.4.7.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/break-all.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/bytes_call.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/call_to_variable-all.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/comment-all.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases/test.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/complex_imports/import_free/Caller.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/conditional-all.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/continue-all.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.4.22.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/contract-0.6.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom-error-selector.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom-error-selector.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom-error-selector.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom-error-selector.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom-error-selector.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom-error-selector.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom-error-selector.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom-error-selector.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom-error-selector.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom-error-selector.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom-error-selector.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom-error-selector.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.4.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.8.4.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.8.4.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.8.4.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.8.4.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.8.4.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.8.4.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.8.4.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.8.4.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.8.4.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.8.4.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.8.4.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error-0.8.4.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error_with_state_variable.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error_with_state_variable.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error_with_state_variable.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error_with_state_variable.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error_with_state_variable.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error_with_state_variable.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error_with_state_variable.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error_with_state_variable.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/custom_error_with_state_variable.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/dowhile-0.4.5.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.21.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.21.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.21.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.21.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.21.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.21.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.21.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.21.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.21.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.21.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.21.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.21.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.8.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.8.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.8.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.4.8.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/emit-0.5.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.4.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/enum-0.8.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/event-all.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/for-all.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/free_functions/libraries_from_free.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/free_functions/library_constant_function_collision.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/free_functions/new_operator.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.16.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.16.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.16.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.16.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.16.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.16.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.16.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.16.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.16.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.16.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.16.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.16.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.22.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.22.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.23.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.23.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.23.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.23.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.23.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.23.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.23.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.4.23.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.5.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.6.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.6.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.6.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.6.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.6.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.6.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.6.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.6.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.6.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.6.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.6.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.6.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.6.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/function-0.7.1.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.5.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.5.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.5.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.5.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.5.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.5.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.5.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.5.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.5.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.4.5.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.5.3.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.2.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.2.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.2.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.2.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.2.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.2.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.2.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.2.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.2.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.2.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.2.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.2.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.8.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.8.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.8.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.8.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.8.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.8.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.8.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.8.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.8.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.6.8.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.7.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.7.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.7.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.7.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.7.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.7.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.7.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.7.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.7.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.7.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.7.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.7.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.7.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.7.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/functioncall-0.8.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/if-all.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexaccess-all.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.4.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/indexrangeaccess-0.6.1.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_event-0.8.16.sol-0.8.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/library_implicit_conversion-0.5.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.4.10.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.5.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/literal-0.6.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/memberaccess-0.5.3.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.4.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.6.8.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.8.8.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.8.8.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.8.8.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.8.8.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.8.8.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.8.8.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.8.8.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/minmax-0.8.8.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-0.7.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier-all.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/modifier_identifier_path.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/newexpression-0.5.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.5.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.6.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.7.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.7.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.7.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.7.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.7.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.7.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.7.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.7.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.7.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.7.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.7.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.7.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.7.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.7.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/pragma-0.8.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/push-all.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/return-all.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/scope-0.5.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/struct-0.6.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/ternary-with-max.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/throw-0.5.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.4.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.1.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.1.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.1.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.1.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.1.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.1.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-0.7.4.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.4.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-0.7.1.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.4.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-import-bis-0.7.1.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.4.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-nested-import-0.7.1.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top-level-struct-0.8.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.4.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable-0.8.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.4.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/top_level_variable2-0.8.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/trycatch-0.6.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.4.24.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/tupleexpression-0.5.3.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unaryexpression-0.5.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.4.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/unchecked-0.8.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.5.4.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.6.0.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.7.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.7.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.7.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.7.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.7.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.7.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.7.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.7.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.7.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.7.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.7.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.7.0.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.7.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.7.0.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.4.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.4.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.4.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.7.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.7.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/units_and_global_variables-0.8.7.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_types.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_types.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_types.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_types.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-0.4.1.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-1-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-2-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-3-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-4-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-alias-contract-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-alias-top-level-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-functions-list-1-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-functions-list-2-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-functions-list-3-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-functions-list-4-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-global-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/using-for-in-library-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.0.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.14.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.14.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.14.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.14.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.16.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.4.5.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.5.0.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.5.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.5.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.5.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.5.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.5.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.5.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.5.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.5.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.6.9.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variable-0.8.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/variabledeclaration-0.5.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/while-all.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.0.sol-0.4.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.0.sol-0.4.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.1.sol-0.4.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.18-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.18-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.19-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.19-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.20-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.20-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.21-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.21-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.22-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.22-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.23-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.23-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.24-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.24-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.25-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.25-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.26-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.4.26-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.13-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.14-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.15-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.16-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.17-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.17-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.5.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.10-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.11-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.12-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.7-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.8-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.4.11.sol-0.6.9-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.7.0.sol-0.7.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.7.0.sol-0.7.0-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.7.0.sol-0.7.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.7.0.sol-0.7.1-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.7.0.sol-0.7.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.7.0.sol-0.7.2-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.7.0.sol-0.7.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.7.0.sol-0.7.3-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.7.0.sol-0.7.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.7.0.sol-0.7.4-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.7.5.sol-0.7.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.7.5.sol-0.7.5-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.7.5.sol-0.7.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.7.5.sol-0.7.6-legacy.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.0-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.1-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.10-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.11-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.12-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.13-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.14-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.15-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.2-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.3-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.4-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.5-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.6-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.7-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.8-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-0.8.0.sol-0.8.9-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/expected/yul-state-constant-access.sol-0.8.16-compact.json (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/for-all.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/free_functions/libraries_from_free.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/free_functions/library_constant_function_collision.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/free_functions/new_operator.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/function-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/function-0.4.16.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/function-0.4.22.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/function-0.4.23.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/function-0.5.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/function-0.6.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/function-0.7.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/function-0.7.1.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/functioncall-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/functioncall-0.4.22.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/functioncall-0.4.5.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/functioncall-0.5.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/functioncall-0.5.3.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/functioncall-0.6.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/functioncall-0.6.2.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/functioncall-0.6.8.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/functioncall-0.7.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/functioncall-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/helper/helper.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/helper/import-1.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/helper/import-2.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/helper/interface_with_struct.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/helper/nested_import.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/if-all.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/import-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/import-0.4.3.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/import_interface_with_struct_from_top_level-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/import_interface_with_struct_from_top_level-0.7.6.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/indexaccess-all.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/indexrangeaccess-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/indexrangeaccess-0.6.1.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/library_event-0.8.16.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/library_implicit_conversion-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/library_implicit_conversion-0.5.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/literal-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/literal-0.4.10.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/literal-0.5.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/literal-0.6.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/literal-0.7.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/memberaccess-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/memberaccess-0.5.14.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/memberaccess-0.5.3.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/memberaccess-0.6.7.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/memberaccess-0.6.8.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/minmax-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/minmax-0.6.8.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/minmax-0.8.8.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/modifier-0.7.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/modifier-all.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/modifier_identifier_path.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/newexpression-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/newexpression-0.5.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/pragma-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/pragma-0.5.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/pragma-0.6.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/pragma-0.7.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/pragma-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/push-all.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/return-all.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/scope-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/scope-0.5.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/struct-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/struct-0.6.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/ternary-with-max.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/throw-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/throw-0.5.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/top-level-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/top-level-0.7.1.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/top-level-0.7.4.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/top-level-import-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/top-level-import-0.7.1.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/top-level-import-bis-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/top-level-import-bis-0.7.1.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/top-level-nested-import-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/top-level-nested-import-0.7.1.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/top-level-struct-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/top_level_variable-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/top_level_variable-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/top_level_variable2-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/top_level_variable2-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/trycatch-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/trycatch-0.6.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/tupleexpression-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/tupleexpression-0.4.24.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/tupleexpression-0.5.3.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/unaryexpression-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/unaryexpression-0.5.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/unchecked-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/unchecked-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/units_and_global_variables-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/units_and_global_variables-0.5.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/units_and_global_variables-0.5.4.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/units_and_global_variables-0.6.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/units_and_global_variables-0.7.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/units_and_global_variables-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/units_and_global_variables-0.8.12.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/units_and_global_variables-0.8.4.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/units_and_global_variables-0.8.7.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/user_defined_value_type/argument-0.8.8.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/user_defined_value_type/calldata-0.8.8.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/user_defined_value_type/constant-0.8.8.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/user_defined_value_type/erc20-0.8.8.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/user_defined_value_type/in_parenthesis-0.8.8.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/user_defined_value_type/top-level-0.8.8.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/user_defined_value_type/user_defined_types-0.8.8.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/user_defined_value_type/using-for-0.8.8.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-0.4.1.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-1-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-2-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-3-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-4-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-alias-contract-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-alias-dep1.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-alias-dep2.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-alias-top-level-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-functions-list-1-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-functions-list-2-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-functions-list-3-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-functions-list-4-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-global-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-in-library-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/using-for-library-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/variable-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/variable-0.4.14.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/variable-0.4.16.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/variable-0.4.5.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/variable-0.5.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/variable-0.6.5.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/variable-0.6.9.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/variable-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/variabledeclaration-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/variabledeclaration-0.4.24.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/variabledeclaration-0.5.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/while-all.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/yul-0.4.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/yul-0.4.1.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/yul-0.4.11.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/yul-0.7.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/yul-0.7.5.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/yul-0.8.0.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/yul-state-constant-access.sol (100%) rename tests/{ast-parsing => e2e/solc_parsing/test_data}/yul-top-level-0.8.0.sol (100%) diff --git a/tests/detectors/rtlo/0.4.25/right_to_left_override.sol.0.4.25.RightToLeftOverride.json b/tests/detectors/rtlo/0.4.25/right_to_left_override.sol.0.4.25.RightToLeftOverride.json deleted file mode 100644 index d78db7c2d..000000000 --- a/tests/detectors/rtlo/0.4.25/right_to_left_override.sol.0.4.25.RightToLeftOverride.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "other", - "name": "rtlo-character", - "source_mapping": { - "start": 96, - "length": 3, - "filename_relative": "tests/detectors/rtlo/0.4.25/right_to_left_override.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/rtlo/0.4.25/right_to_left_override.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 18, - "ending_column": 21 - } - } - ], - "description": "tests/detectors/rtlo/0.4.25/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", - "markdown": "tests/detectors/rtlo/0.4.25/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", - "first_markdown_element": "", - "id": "02545af9e98ed496f7c9e2b2de0f66bcf8e8e31c25a2a2626b5bad92619b1f85", - "check": "rtlo", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/detectors/rtlo/0.5.16/right_to_left_override.sol.0.5.16.RightToLeftOverride.json b/tests/detectors/rtlo/0.5.16/right_to_left_override.sol.0.5.16.RightToLeftOverride.json deleted file mode 100644 index ab3554e53..000000000 --- a/tests/detectors/rtlo/0.5.16/right_to_left_override.sol.0.5.16.RightToLeftOverride.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "other", - "name": "rtlo-character", - "source_mapping": { - "start": 96, - "length": 3, - "filename_relative": "tests/detectors/rtlo/0.5.16/right_to_left_override.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/rtlo/0.5.16/right_to_left_override.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 18, - "ending_column": 21 - } - } - ], - "description": "tests/detectors/rtlo/0.5.16/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", - "markdown": "tests/detectors/rtlo/0.5.16/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", - "first_markdown_element": "", - "id": "d347f1cb6d791b00f8a6ad65c201eeaa527636f2bf2c5529102441c56e994b33", - "check": "rtlo", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/detectors/rtlo/0.6.11/right_to_left_override.sol.0.6.11.RightToLeftOverride.json b/tests/detectors/rtlo/0.6.11/right_to_left_override.sol.0.6.11.RightToLeftOverride.json deleted file mode 100644 index 4c3c1fd07..000000000 --- a/tests/detectors/rtlo/0.6.11/right_to_left_override.sol.0.6.11.RightToLeftOverride.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "other", - "name": "rtlo-character", - "source_mapping": { - "start": 96, - "length": 3, - "filename_relative": "tests/detectors/rtlo/0.6.11/right_to_left_override.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/rtlo/0.6.11/right_to_left_override.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 18, - "ending_column": 21 - } - } - ], - "description": "tests/detectors/rtlo/0.6.11/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", - "markdown": "tests/detectors/rtlo/0.6.11/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", - "first_markdown_element": "", - "id": "2cc2fa8e55fae035ed2ebc4798c488d64e92c7c9875fe6699e39103c0b95c264", - "check": "rtlo", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/detectors/rtlo/0.8.0/unicode_direction_override.sol.0.8.0.RightToLeftOverride.json b/tests/detectors/rtlo/0.8.0/unicode_direction_override.sol.0.8.0.RightToLeftOverride.json deleted file mode 100644 index 0ea71a81f..000000000 --- a/tests/detectors/rtlo/0.8.0/unicode_direction_override.sol.0.8.0.RightToLeftOverride.json +++ /dev/null @@ -1,88 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "other", - "name": "rtlo-character", - "source_mapping": { - "start": 336, - "length": 3, - "filename_relative": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 14, - "ending_column": 17 - } - } - ], - "description": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 336:\n\t- b' /*ok \\xe2\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", - "markdown": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 336:\n\t- b' /*ok \\xe2\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", - "first_markdown_element": "", - "id": "2407672dea557be27d0c488ba9c714e6a7f21dd3f7759058e718c1984e142f95", - "check": "rtlo", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "other", - "name": "rtlo-character", - "source_mapping": { - "start": 348, - "length": 3, - "filename_relative": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 26, - "ending_column": 29 - } - } - ], - "description": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 348:\n\t- b'\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", - "markdown": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 348:\n\t- b'\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", - "first_markdown_element": "", - "id": "477e54031d4d30d485b9cdc2d7ef3e9ae3de52640364505df8eb9619c2bcde6b", - "check": "rtlo", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "other", - "name": "rtlo-character", - "source_mapping": { - "start": 342, - "length": 3, - "filename_relative": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 20, - "ending_column": 23 - } - } - ], - "description": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 342:\n\t- b'\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", - "markdown": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 342:\n\t- b'\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", - "first_markdown_element": "", - "id": "9dd23585bb0ff1f244f749281b27f62978e0bb5b0ae58c8c9cb6d3f9c7e82253", - "check": "rtlo", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/detectors/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json b/tests/detectors/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/detectors/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/detectors/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json b/tests/detectors/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/detectors/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/detectors/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json b/tests/detectors/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/detectors/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol b/tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol similarity index 100% rename from tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol rename to tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol diff --git a/tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol.0.4.25.ABIEncoderV2Array.json b/tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol.0.4.25.ABIEncoderV2Array.json similarity index 85% rename from tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol.0.4.25.ABIEncoderV2Array.json rename to tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol.0.4.25.ABIEncoderV2Array.json index 9260ee2b9..ee268cdaa 100644 --- a/tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol.0.4.25.ABIEncoderV2Array.json +++ b/tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol.0.4.25.ABIEncoderV2Array.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1076, "length": 154, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 39, @@ -27,9 +27,9 @@ "source_mapping": { "start": 35, "length": 2982, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -143,9 +143,9 @@ "source_mapping": { "start": 1195, "length": 30, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 40 @@ -160,9 +160,9 @@ "source_mapping": { "start": 1076, "length": 154, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 39, @@ -179,9 +179,9 @@ "source_mapping": { "start": 35, "length": 2982, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -292,10 +292,10 @@ } } ], - "description": "Function A.bad3() (tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#39-41) trigger an abi encoding bug:\n\t- b = abi.encode(s) (tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#40)\n", - "markdown": "Function [A.bad3()](tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L39-L41) trigger an abi encoding bug:\n\t- [b = abi.encode(s)](tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L40)\n", - "first_markdown_element": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L39-L41", - "id": "0c50cf7f7b16d965ef04035beb09d25f3fa1fa4afeeb079ea42f2db879e8f1e9", + "description": "Function A.bad3() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#39-41) trigger an abi encoding bug:\n\t- b = abi.encode(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#40)\n", + "markdown": "Function [A.bad3()](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L39-L41) trigger an abi encoding bug:\n\t- [b = abi.encode(s)](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L40)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L39-L41", + "id": "263bbb90844d3204496ff3dbf6cefcde2cd43fb91414e0c31340a3307bb1e61e", "check": "abiencoderv2-array", "impact": "High", "confidence": "High" @@ -304,18 +304,18 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad0", "source_mapping": { - "start": 1296, - "length": 148, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "start": 540, + "length": 61, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 44, - 45, - 46 + 21, + 22, + 23 ], "starting_column": 3, "ending_column": 4 @@ -327,9 +327,9 @@ "source_mapping": { "start": 35, "length": 2982, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -434,40 +434,40 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad0()" } }, { "type": "node", - "name": "event1_bad(bad_arr)", + "name": "this.bad0_external(bad_arr)", "source_mapping": { - "start": 1415, - "length": 24, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "start": 569, + "length": 27, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 45 + 22 ], "starting_column": 5, - "ending_column": 29 + "ending_column": 32 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad0", "source_mapping": { - "start": 1296, - "length": 148, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "start": 540, + "length": 61, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 44, - 45, - 46 + 21, + 22, + 23 ], "starting_column": 3, "ending_column": 4 @@ -479,9 +479,9 @@ "source_mapping": { "start": 35, "length": 2982, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -586,16 +586,16 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad0()" } } } } ], - "description": "Function A.bad4() (tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#44-46) trigger an abi encoding bug:\n\t- event1_bad(bad_arr) (tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#45)\n", - "markdown": "Function [A.bad4()](tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L44-L46) trigger an abi encoding bug:\n\t- [event1_bad(bad_arr)](tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L45)\n", - "first_markdown_element": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L44-L46", - "id": "144c77aebb4037fe38c2864892ecb888a4fb7d5e92e321e664b2d2226658a166", + "description": "Function A.bad0() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#21-23) trigger an abi encoding bug:\n\t- this.bad0_external(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#22)\n", + "markdown": "Function [A.bad0()](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L21-L23) trigger an abi encoding bug:\n\t- [this.bad0_external(bad_arr)](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L21-L23", + "id": "2bbe072d30eb95e463ffdaaf3b5578622f10c36e6c65322a5c3a56ede8ace5f1", "check": "abiencoderv2-array", "impact": "High", "confidence": "High" @@ -604,18 +604,18 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad4", "source_mapping": { - "start": 540, - "length": 61, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "start": 1296, + "length": 148, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 21, - 22, - 23 + 44, + 45, + 46 ], "starting_column": 3, "ending_column": 4 @@ -627,9 +627,9 @@ "source_mapping": { "start": 35, "length": 2982, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -734,40 +734,40 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad4()" } }, { "type": "node", - "name": "this.bad0_external(bad_arr)", + "name": "event1_bad(bad_arr)", "source_mapping": { - "start": 569, - "length": 27, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "start": 1415, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 22 + 45 ], "starting_column": 5, - "ending_column": 32 + "ending_column": 29 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad4", "source_mapping": { - "start": 540, - "length": 61, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "start": 1296, + "length": 148, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 21, - 22, - 23 + 44, + 45, + 46 ], "starting_column": 3, "ending_column": 4 @@ -779,9 +779,9 @@ "source_mapping": { "start": 35, "length": 2982, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -886,16 +886,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad4()" } } } } ], - "description": "Function A.bad0() (tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#21-23) trigger an abi encoding bug:\n\t- this.bad0_external(bad_arr) (tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#22)\n", - "markdown": "Function [A.bad0()](tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L21-L23) trigger an abi encoding bug:\n\t- [this.bad0_external(bad_arr)](tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L22)\n", - "first_markdown_element": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L21-L23", - "id": "3752da45df0ba78cc9ac01a10b398e4ad74e6ddd572764cf2f361e523a43a998", + "description": "Function A.bad4() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#44-46) trigger an abi encoding bug:\n\t- event1_bad(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#45)\n", + "markdown": "Function [A.bad4()](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L44-L46) trigger an abi encoding bug:\n\t- [event1_bad(bad_arr)](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L45)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L44-L46", + "id": "35ffb290cd1c192cf8cb6d07a80648a5d31785a6c7864bf07ebfb455b9334d19", "check": "abiencoderv2-array", "impact": "High", "confidence": "High" @@ -904,18 +904,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 726, - "length": 63, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "start": 852, + "length": 160, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 29, - 30, - 31 + 34, + 35, + 36 ], "starting_column": 3, "ending_column": 4 @@ -927,9 +927,9 @@ "source_mapping": { "start": 35, "length": 2982, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -1034,40 +1034,40 @@ "ending_column": 2 } }, - "signature": "bad1(A.S[3])" + "signature": "bad2()" } }, { "type": "node", - "name": "this.bad1_external(s)", + "name": "b = abi.encode(bad_arr)", "source_mapping": { - "start": 763, - "length": 21, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "start": 971, + "length": 36, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 30 + 35 ], "starting_column": 5, - "ending_column": 26 + "ending_column": 41 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 726, - "length": 63, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "start": 852, + "length": 160, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 29, - 30, - 31 + 34, + 35, + 36 ], "starting_column": 3, "ending_column": 4 @@ -1079,9 +1079,9 @@ "source_mapping": { "start": 35, "length": 2982, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -1186,16 +1186,16 @@ "ending_column": 2 } }, - "signature": "bad1(A.S[3])" + "signature": "bad2()" } } } } ], - "description": "Function A.bad1(A.S[3]) (tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#29-31) trigger an abi encoding bug:\n\t- this.bad1_external(s) (tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#30)\n", - "markdown": "Function [A.bad1(A.S[3])](tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L29-L31) trigger an abi encoding bug:\n\t- [this.bad1_external(s)](tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L30)\n", - "first_markdown_element": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L29-L31", - "id": "3febdd98f71332c80290c9557c5ef89ea9dbea4f520a084b0307f21b00da5010", + "description": "Function A.bad2() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#34-36) trigger an abi encoding bug:\n\t- b = abi.encode(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#35)\n", + "markdown": "Function [A.bad2()](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L34-L36) trigger an abi encoding bug:\n\t- [b = abi.encode(bad_arr)](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L35)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L34-L36", + "id": "57a54f648776db8c80377afd961a3a141378dd19f6b32e13c215cc7539492b1b", "check": "abiencoderv2-array", "impact": "High", "confidence": "High" @@ -1204,18 +1204,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad1", "source_mapping": { - "start": 852, - "length": 160, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "start": 726, + "length": 63, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 34, - 35, - 36 + 29, + 30, + 31 ], "starting_column": 3, "ending_column": 4 @@ -1227,9 +1227,9 @@ "source_mapping": { "start": 35, "length": 2982, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -1334,40 +1334,40 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad1(A.S[3])" } }, { "type": "node", - "name": "b = abi.encode(bad_arr)", + "name": "this.bad1_external(s)", "source_mapping": { - "start": 971, - "length": 36, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "start": 763, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 35 + 30 ], "starting_column": 5, - "ending_column": 41 + "ending_column": 26 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad1", "source_mapping": { - "start": 852, - "length": 160, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "start": 726, + "length": 63, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 34, - 35, - 36 + 29, + 30, + 31 ], "starting_column": 3, "ending_column": 4 @@ -1379,9 +1379,9 @@ "source_mapping": { "start": 35, "length": 2982, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -1486,16 +1486,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad1(A.S[3])" } } } } ], - "description": "Function A.bad2() (tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#34-36) trigger an abi encoding bug:\n\t- b = abi.encode(bad_arr) (tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#35)\n", - "markdown": "Function [A.bad2()](tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L34-L36) trigger an abi encoding bug:\n\t- [b = abi.encode(bad_arr)](tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L35)\n", - "first_markdown_element": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L34-L36", - "id": "d5860309d331920d1e3f44508fea706df75a4a7c2e93666ca96ca00ef32d7e01", + "description": "Function A.bad1(A.S[3]) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#29-31) trigger an abi encoding bug:\n\t- this.bad1_external(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#30)\n", + "markdown": "Function [A.bad1(A.S[3])](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L29-L31) trigger an abi encoding bug:\n\t- [this.bad1_external(s)](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L30)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L29-L31", + "id": "86c66f3b307767eebada0cab8bf3a0a839ca10996314da44d69b6c9ed507a38a", "check": "abiencoderv2-array", "impact": "High", "confidence": "High" @@ -1508,9 +1508,9 @@ "source_mapping": { "start": 1511, "length": 142, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 49, @@ -1527,9 +1527,9 @@ "source_mapping": { "start": 35, "length": 2982, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -1643,9 +1643,9 @@ "source_mapping": { "start": 1630, "length": 18, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 50 @@ -1660,9 +1660,9 @@ "source_mapping": { "start": 1511, "length": 142, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 49, @@ -1679,9 +1679,9 @@ "source_mapping": { "start": 35, "length": 2982, - "filename_relative": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -1792,10 +1792,10 @@ } } ], - "description": "Function A.bad5() (tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#49-51) trigger an abi encoding bug:\n\t- event2_bad(s) (tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#50)\n", - "markdown": "Function [A.bad5()](tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L49-L51) trigger an abi encoding bug:\n\t- [event2_bad(s)](tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L50)\n", - "first_markdown_element": "tests/detectors/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L49-L51", - "id": "e77767c95f4548636027a859ca0c63402cfb50af242f116dd3cfc5b038a4128e", + "description": "Function A.bad5() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#49-51) trigger an abi encoding bug:\n\t- event2_bad(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#50)\n", + "markdown": "Function [A.bad5()](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L49-L51) trigger an abi encoding bug:\n\t- [event2_bad(s)](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L50)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L49-L51", + "id": "ae66161ced7aeecdd34531dd955380a0c0d8b8eb2a968a36de943b394d9ddaa7", "check": "abiencoderv2-array", "impact": "High", "confidence": "High" diff --git a/tests/detectors/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol b/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol similarity index 100% rename from tests/detectors/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol rename to tests/e2e/detectors/test_data/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol diff --git a/tests/detectors/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol.0.5.10.ABIEncoderV2Array.json b/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol.0.5.10.ABIEncoderV2Array.json similarity index 100% rename from tests/detectors/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol.0.5.10.ABIEncoderV2Array.json rename to tests/e2e/detectors/test_data/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol.0.5.10.ABIEncoderV2Array.json diff --git a/tests/detectors/abiencoderv2-array/0.5.11/storage_ABIEncoderV2_array.sol.0.5.11.ABIEncoderV2Array.json b/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.11/storage_ABIEncoderV2_array.sol.0.5.11.ABIEncoderV2Array.json similarity index 100% rename from tests/detectors/abiencoderv2-array/0.5.11/storage_ABIEncoderV2_array.sol.0.5.11.ABIEncoderV2Array.json rename to tests/e2e/detectors/test_data/abiencoderv2-array/0.5.11/storage_ABIEncoderV2_array.sol.0.5.11.ABIEncoderV2Array.json diff --git a/tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol b/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol similarity index 100% rename from tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol rename to tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol diff --git a/tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol.0.5.9.ABIEncoderV2Array.json b/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol.0.5.9.ABIEncoderV2Array.json similarity index 85% rename from tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol.0.5.9.ABIEncoderV2Array.json rename to tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol.0.5.9.ABIEncoderV2Array.json index 8b6cdd17f..a91595864 100644 --- a/tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol.0.5.9.ABIEncoderV2Array.json +++ b/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol.0.5.9.ABIEncoderV2Array.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad5", "source_mapping": { - "start": 744, - "length": 70, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 1536, + "length": 142, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 29, - 30, - 31 + 49, + 50, + 51 ], "starting_column": 3, "ending_column": 4 @@ -27,9 +27,9 @@ "source_mapping": { "start": 35, "length": 3044, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -134,40 +134,40 @@ "ending_column": 2 } }, - "signature": "bad1(A.S[3])" + "signature": "bad5()" } }, { "type": "node", - "name": "this.bad1_external(s)", + "name": "event2_bad(s)", "source_mapping": { - "start": 788, - "length": 21, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 1655, + "length": 18, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 30 + 50 ], "starting_column": 5, - "ending_column": 26 + "ending_column": 23 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad5", "source_mapping": { - "start": 744, - "length": 70, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 1536, + "length": 142, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 29, - 30, - 31 + 49, + 50, + 51 ], "starting_column": 3, "ending_column": 4 @@ -179,9 +179,9 @@ "source_mapping": { "start": 35, "length": 3044, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -286,16 +286,16 @@ "ending_column": 2 } }, - "signature": "bad1(A.S[3])" + "signature": "bad5()" } } } } ], - "description": "Function A.bad1(A.S[3]) (tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#29-31) trigger an abi encoding bug:\n\t- this.bad1_external(s) (tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#30)\n", - "markdown": "Function [A.bad1(A.S[3])](tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L29-L31) trigger an abi encoding bug:\n\t- [this.bad1_external(s)](tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L30)\n", - "first_markdown_element": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L29-L31", - "id": "04f20a6b780d160f34e95fca8f1dc426e8d05eaf7a452340a809bdeafcb84efb", + "description": "Function A.bad5() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#49-51) trigger an abi encoding bug:\n\t- event2_bad(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#50)\n", + "markdown": "Function [A.bad5()](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L49-L51) trigger an abi encoding bug:\n\t- [event2_bad(s)](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L50)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L49-L51", + "id": "0bff4fdfffcfca62d7e949088e4f93613d96721addf90e93f6873969654792fb", "check": "abiencoderv2-array", "impact": "High", "confidence": "High" @@ -304,18 +304,18 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad0", "source_mapping": { - "start": 1101, - "length": 154, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 549, + "length": 61, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 39, - 40, - 41 + 21, + 22, + 23 ], "starting_column": 3, "ending_column": 4 @@ -327,9 +327,9 @@ "source_mapping": { "start": 35, "length": 3044, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -434,40 +434,40 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad0()" } }, { "type": "node", - "name": "b = abi.encode(s)", + "name": "this.bad0_external(bad_arr)", "source_mapping": { - "start": 1220, - "length": 30, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 578, + "length": 27, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 40 + 22 ], "starting_column": 5, - "ending_column": 35 + "ending_column": 32 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad0", "source_mapping": { - "start": 1101, - "length": 154, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 549, + "length": 61, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 39, - 40, - 41 + 21, + 22, + 23 ], "starting_column": 3, "ending_column": 4 @@ -479,9 +479,9 @@ "source_mapping": { "start": 35, "length": 3044, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -586,16 +586,16 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad0()" } } } } ], - "description": "Function A.bad3() (tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#39-41) trigger an abi encoding bug:\n\t- b = abi.encode(s) (tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#40)\n", - "markdown": "Function [A.bad3()](tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L39-L41) trigger an abi encoding bug:\n\t- [b = abi.encode(s)](tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L40)\n", - "first_markdown_element": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L39-L41", - "id": "37e980d8d34fcffe10d2533052de986dd57c1d45700f02234332b275b532c71d", + "description": "Function A.bad0() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#21-23) trigger an abi encoding bug:\n\t- this.bad0_external(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#22)\n", + "markdown": "Function [A.bad0()](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L21-L23) trigger an abi encoding bug:\n\t- [this.bad0_external(bad_arr)](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L21-L23", + "id": "2b87f0298c47e810103ba2f06c6b042c1b3faef47996231ec0d884afd82cb99c", "check": "abiencoderv2-array", "impact": "High", "confidence": "High" @@ -604,18 +604,18 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad4", "source_mapping": { - "start": 549, - "length": 61, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 1321, + "length": 148, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 21, - 22, - 23 + 44, + 45, + 46 ], "starting_column": 3, "ending_column": 4 @@ -627,9 +627,9 @@ "source_mapping": { "start": 35, "length": 3044, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -734,40 +734,40 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad4()" } }, { "type": "node", - "name": "this.bad0_external(bad_arr)", + "name": "event1_bad(bad_arr)", "source_mapping": { - "start": 578, - "length": 27, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 1440, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 22 + 45 ], "starting_column": 5, - "ending_column": 32 + "ending_column": 29 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad4", "source_mapping": { - "start": 549, - "length": 61, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 1321, + "length": 148, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 21, - 22, - 23 + 44, + 45, + 46 ], "starting_column": 3, "ending_column": 4 @@ -779,9 +779,9 @@ "source_mapping": { "start": 35, "length": 3044, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -886,16 +886,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad4()" } } } } ], - "description": "Function A.bad0() (tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#21-23) trigger an abi encoding bug:\n\t- this.bad0_external(bad_arr) (tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#22)\n", - "markdown": "Function [A.bad0()](tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L21-L23) trigger an abi encoding bug:\n\t- [this.bad0_external(bad_arr)](tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L22)\n", - "first_markdown_element": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L21-L23", - "id": "4755c0ac779753117c13ea710352c179c82da332c5be5f08ea5da28efa4c63b6", + "description": "Function A.bad4() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#44-46) trigger an abi encoding bug:\n\t- event1_bad(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#45)\n", + "markdown": "Function [A.bad4()](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L44-L46) trigger an abi encoding bug:\n\t- [event1_bad(bad_arr)](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L45)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L44-L46", + "id": "3f05ebbaa8f7def9cf1d5619665846ab87d44ebc682887934c3906413cc05455", "check": "abiencoderv2-array", "impact": "High", "confidence": "High" @@ -904,18 +904,18 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad2", "source_mapping": { - "start": 1321, - "length": 148, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 877, + "length": 160, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 44, - 45, - 46 + 34, + 35, + 36 ], "starting_column": 3, "ending_column": 4 @@ -927,9 +927,9 @@ "source_mapping": { "start": 35, "length": 3044, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -1034,40 +1034,40 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad2()" } }, { "type": "node", - "name": "event1_bad(bad_arr)", + "name": "b = abi.encode(bad_arr)", "source_mapping": { - "start": 1440, - "length": 24, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 996, + "length": 36, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 45 + 35 ], "starting_column": 5, - "ending_column": 29 + "ending_column": 41 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad2", "source_mapping": { - "start": 1321, - "length": 148, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 877, + "length": 160, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 44, - 45, - 46 + 34, + 35, + 36 ], "starting_column": 3, "ending_column": 4 @@ -1079,9 +1079,9 @@ "source_mapping": { "start": 35, "length": 3044, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -1186,16 +1186,16 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad2()" } } } } ], - "description": "Function A.bad4() (tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#44-46) trigger an abi encoding bug:\n\t- event1_bad(bad_arr) (tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#45)\n", - "markdown": "Function [A.bad4()](tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L44-L46) trigger an abi encoding bug:\n\t- [event1_bad(bad_arr)](tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L45)\n", - "first_markdown_element": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L44-L46", - "id": "6e9dfeb7f6ea7c989276fa8c5e27d71ab0f6b63ee878fb3f761dab9d07942246", + "description": "Function A.bad2() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#34-36) trigger an abi encoding bug:\n\t- b = abi.encode(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#35)\n", + "markdown": "Function [A.bad2()](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L34-L36) trigger an abi encoding bug:\n\t- [b = abi.encode(bad_arr)](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L35)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L34-L36", + "id": "4a39131a0c51a364367a9c41ded3d7fa8fd529985bc27ce975fd1fdacabc6f5f", "check": "abiencoderv2-array", "impact": "High", "confidence": "High" @@ -1204,18 +1204,18 @@ "elements": [ { "type": "function", - "name": "bad5", + "name": "bad1", "source_mapping": { - "start": 1536, - "length": 142, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 744, + "length": 70, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 49, - 50, - 51 + 29, + 30, + 31 ], "starting_column": 3, "ending_column": 4 @@ -1227,9 +1227,9 @@ "source_mapping": { "start": 35, "length": 3044, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -1334,40 +1334,40 @@ "ending_column": 2 } }, - "signature": "bad5()" + "signature": "bad1(A.S[3])" } }, { "type": "node", - "name": "event2_bad(s)", + "name": "this.bad1_external(s)", "source_mapping": { - "start": 1655, - "length": 18, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 788, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 50 + 30 ], "starting_column": 5, - "ending_column": 23 + "ending_column": 26 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad1", "source_mapping": { - "start": 1536, - "length": 142, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 744, + "length": 70, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 49, - 50, - 51 + 29, + 30, + 31 ], "starting_column": 3, "ending_column": 4 @@ -1379,9 +1379,9 @@ "source_mapping": { "start": 35, "length": 3044, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -1486,16 +1486,16 @@ "ending_column": 2 } }, - "signature": "bad5()" + "signature": "bad1(A.S[3])" } } } } ], - "description": "Function A.bad5() (tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#49-51) trigger an abi encoding bug:\n\t- event2_bad(s) (tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#50)\n", - "markdown": "Function [A.bad5()](tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L49-L51) trigger an abi encoding bug:\n\t- [event2_bad(s)](tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L50)\n", - "first_markdown_element": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L49-L51", - "id": "9c6da636be98419174c8e81e73efc09e7b942f9cf477cf0de793fb92c88fc976", + "description": "Function A.bad1(A.S[3]) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#29-31) trigger an abi encoding bug:\n\t- this.bad1_external(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#30)\n", + "markdown": "Function [A.bad1(A.S[3])](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L29-L31) trigger an abi encoding bug:\n\t- [this.bad1_external(s)](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L30)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L29-L31", + "id": "d7bba349f36a4dd00be0005454b0e7bfa536958075ca7575ef3d95b2d2666f40", "check": "abiencoderv2-array", "impact": "High", "confidence": "High" @@ -1504,18 +1504,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad3", "source_mapping": { - "start": 877, - "length": 160, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 1101, + "length": 154, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 34, - 35, - 36 + 39, + 40, + 41 ], "starting_column": 3, "ending_column": 4 @@ -1527,9 +1527,9 @@ "source_mapping": { "start": 35, "length": 3044, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -1634,40 +1634,40 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad3()" } }, { "type": "node", - "name": "b = abi.encode(bad_arr)", + "name": "b = abi.encode(s)", "source_mapping": { - "start": 996, - "length": 36, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 1220, + "length": 30, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 35 + 40 ], "starting_column": 5, - "ending_column": 41 + "ending_column": 35 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad3", "source_mapping": { - "start": 877, - "length": 160, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "start": 1101, + "length": 154, + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ - 34, - 35, - 36 + 39, + 40, + 41 ], "starting_column": 3, "ending_column": 4 @@ -1679,9 +1679,9 @@ "source_mapping": { "start": 35, "length": 3044, - "filename_relative": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", + "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", "is_dependency": false, "lines": [ 3, @@ -1786,16 +1786,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad3()" } } } } ], - "description": "Function A.bad2() (tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#34-36) trigger an abi encoding bug:\n\t- b = abi.encode(bad_arr) (tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#35)\n", - "markdown": "Function [A.bad2()](tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L34-L36) trigger an abi encoding bug:\n\t- [b = abi.encode(bad_arr)](tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L35)\n", - "first_markdown_element": "tests/detectors/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L34-L36", - "id": "e976cd11118a9f5aaacfe5715cef990140fd67c7a35682446aedc878b63b3b24", + "description": "Function A.bad3() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#39-41) trigger an abi encoding bug:\n\t- b = abi.encode(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#40)\n", + "markdown": "Function [A.bad3()](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L39-L41) trigger an abi encoding bug:\n\t- [b = abi.encode(s)](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L40)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L39-L41", + "id": "e6edc83d2902d4acb3d71593f26211658f88d3266d483632eab9380566ccee9d", "check": "abiencoderv2-array", "impact": "High", "confidence": "High" diff --git a/tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol similarity index 100% rename from tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol rename to tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol diff --git a/tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol.0.4.25.ArbitrarySendErc20Permit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol.0.4.25.ArbitrarySendErc20Permit.json similarity index 77% rename from tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol.0.4.25.ArbitrarySendErc20Permit.json rename to tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol.0.4.25.ArbitrarySendErc20Permit.json index d31a3f423..d04fd7781 100644 --- a/tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol.0.4.25.ArbitrarySendErc20Permit.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol.0.4.25.ArbitrarySendErc20Permit.json @@ -4,19 +4,19 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "int_transferFrom", "source_mapping": { - "start": 1794, - "length": 249, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "start": 1294, + "length": 246, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 52, - 53, - 54, - 55 + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -28,9 +28,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -77,41 +77,41 @@ "ending_column": 2 } }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,value)", + "name": "erc20.transferFrom(from,to,value)", "source_mapping": { - "start": 1986, - "length": 50, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "start": 1498, + "length": 35, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 54 + 44 ], "starting_column": 9, - "ending_column": 59 + "ending_column": 44 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "int_transferFrom", "source_mapping": { - "start": 1794, - "length": 249, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "start": 1294, + "length": 246, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 52, - 53, - 54, - 55 + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -123,9 +123,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -172,16 +172,16 @@ "ending_column": 2 } }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#54)\n", - "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L54)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L52-L55", - "id": "22de0efa869fce1767af15469c8bcc95616478aec05625ab72283df0ad9fae55", + "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#44)\n", + "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L44)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L42-L45", + "id": "1ba817d0291e4f5d7fafb55c6278c82bcc093ececc435866bb7c9fec4df70948", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -190,19 +190,19 @@ "elements": [ { "type": "function", - "name": "int_transferFrom", + "name": "bad3", "source_mapping": { - "start": 1294, - "length": 246, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "start": 1546, + "length": 238, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 42, - 43, - 44, - 45 + 47, + 48, + 49, + 50 ], "starting_column": 5, "ending_column": 6 @@ -214,9 +214,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -263,41 +263,41 @@ "ending_column": 2 } }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", - "name": "erc20.transferFrom(from,to,value)", + "name": "erc20.safeTransferFrom(from,to,value)", "source_mapping": { - "start": 1498, - "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "start": 1738, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 44 + 49 ], "starting_column": 9, - "ending_column": 44 + "ending_column": 48 }, "type_specific_fields": { "parent": { "type": "function", - "name": "int_transferFrom", + "name": "bad3", "source_mapping": { - "start": 1294, - "length": 246, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "start": 1546, + "length": 238, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 42, - 43, - 44, - 45 + 47, + 48, + 49, + 50 ], "starting_column": 5, "ending_column": 6 @@ -309,9 +309,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -358,16 +358,16 @@ "ending_column": 2 } }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#44)\n", - "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L44)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L42-L45", - "id": "408ea319adfb46be330fd7775c13abf56f9d106eebcbcfe6574760309d93927e", + "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#49)\n", + "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L49)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L47-L50", + "id": "54c86f8d5446e55e63466d1752a36ca614c0912786158f0d4d190c3fefb8b56f", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -376,19 +376,19 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad4", "source_mapping": { - "start": 843, - "length": 232, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "start": 1794, + "length": 249, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 52, + 53, + 54, + 55 ], "starting_column": 5, "ending_column": 6 @@ -400,9 +400,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -449,41 +449,41 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", - "name": "erc20.transferFrom(from,to,value)", + "name": "SafeERC20.safeTransferFrom(erc20,from,to,value)", "source_mapping": { - "start": 1033, - "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "start": 1986, + "length": 50, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 34 + 54 ], "starting_column": 9, - "ending_column": 44 + "ending_column": 59 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad4", "source_mapping": { - "start": 843, - "length": 232, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "start": 1794, + "length": 249, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 52, + 53, + 54, + 55 ], "starting_column": 5, "ending_column": 6 @@ -495,9 +495,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -544,16 +544,16 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#34)\n", - "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L34)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L32-L35", - "id": "82a43f5bf554d897b270abaac0ee62650383fe341adeff0d9c1c95b0040548a2", + "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#54)\n", + "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L54)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L52-L55", + "id": "5d4e5fdce01109b3256e917c8586a8559ad4dde6b6b007c3cb85d99242ce18a6", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -562,19 +562,19 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 1546, - "length": 238, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "start": 843, + "length": 232, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -586,9 +586,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -635,41 +635,41 @@ "ending_column": 2 } }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", - "name": "erc20.safeTransferFrom(from,to,value)", + "name": "erc20.transferFrom(from,to,value)", "source_mapping": { - "start": 1738, - "length": 39, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "start": 1033, + "length": 35, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 49 + 34 ], "starting_column": 9, - "ending_column": 48 + "ending_column": 44 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 1546, - "length": 238, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "start": 843, + "length": 232, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -681,9 +681,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -730,16 +730,16 @@ "ending_column": 2 } }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#49)\n", - "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L49)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L47-L50", - "id": "f7695706feb3a8409e367a88028dfad8c64e1000f1f71d6e55074d0dcfbc2305", + "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#34)\n", + "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L34)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L32-L35", + "id": "fbbbc2ddd5f43443a8377441ac0ff5b1175fb3bed023f63576e053a59d4ba863", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol similarity index 100% rename from tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol rename to tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol diff --git a/tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol.0.5.16.ArbitrarySendErc20Permit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol.0.5.16.ArbitrarySendErc20Permit.json similarity index 77% rename from tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol.0.5.16.ArbitrarySendErc20Permit.json rename to tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol.0.5.16.ArbitrarySendErc20Permit.json index cd4b2cb69..13cabeb3e 100644 --- a/tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol.0.5.16.ArbitrarySendErc20Permit.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol.0.5.16.ArbitrarySendErc20Permit.json @@ -4,19 +4,19 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "int_transferFrom", "source_mapping": { - "start": 1794, - "length": 249, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "start": 1294, + "length": 246, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 52, - 53, - 54, - 55 + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -28,9 +28,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -77,41 +77,41 @@ "ending_column": 2 } }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,value)", + "name": "erc20.transferFrom(from,to,value)", "source_mapping": { - "start": 1986, - "length": 50, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "start": 1498, + "length": 35, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 54 + 44 ], "starting_column": 9, - "ending_column": 59 + "ending_column": 44 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "int_transferFrom", "source_mapping": { - "start": 1794, - "length": 249, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "start": 1294, + "length": 246, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 52, - 53, - 54, - 55 + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -123,9 +123,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -172,16 +172,16 @@ "ending_column": 2 } }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#54)\n", - "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L54)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L52-L55", - "id": "57068db07fd7e67d0b63035936fad5a373fcb8f84bb6a58aa463278143db43fa", + "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#44)\n", + "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L44)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L42-L45", + "id": "34abef96609043142b210115d49159561a631b0df81ee31f8d310267293a70d7", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -190,19 +190,19 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad4", "source_mapping": { - "start": 843, - "length": 232, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "start": 1794, + "length": 249, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 52, + 53, + 54, + 55 ], "starting_column": 5, "ending_column": 6 @@ -214,9 +214,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -263,41 +263,41 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", - "name": "erc20.transferFrom(from,to,value)", + "name": "SafeERC20.safeTransferFrom(erc20,from,to,value)", "source_mapping": { - "start": 1033, - "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "start": 1986, + "length": 50, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 34 + 54 ], "starting_column": 9, - "ending_column": 44 + "ending_column": 59 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad4", "source_mapping": { - "start": 843, - "length": 232, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "start": 1794, + "length": 249, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 52, + 53, + 54, + 55 ], "starting_column": 5, "ending_column": 6 @@ -309,9 +309,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -358,16 +358,16 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#34)\n", - "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L34)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L32-L35", - "id": "5983458eee02cf7d5484a82e17422dcdbd7b990305579e17d1252c0bb31e1cac", + "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#54)\n", + "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L54)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L52-L55", + "id": "5352ac253454c7ac5139d18b3068024bfd1adb2a3ba50e91846e685b87bebcab", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -380,9 +380,9 @@ "source_mapping": { "start": 1546, "length": 238, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 47, @@ -400,9 +400,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -458,9 +458,9 @@ "source_mapping": { "start": 1738, "length": 39, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 49 @@ -475,9 +475,9 @@ "source_mapping": { "start": 1546, "length": 238, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 47, @@ -495,9 +495,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -550,10 +550,10 @@ } } ], - "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#49)\n", - "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L49)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L47-L50", - "id": "a8f319ba65d6c81726b72d7593eb089ce9819d22856387250e009a43a98cf1c3", + "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#49)\n", + "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L49)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L47-L50", + "id": "97f68819cc099478a29e275378f30c57fc2bf8154cb8cb86c9b58788909e2486", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -562,19 +562,19 @@ "elements": [ { "type": "function", - "name": "int_transferFrom", + "name": "bad1", "source_mapping": { - "start": 1294, - "length": 246, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "start": 843, + "length": 232, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 42, - 43, - 44, - 45 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -586,9 +586,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -635,21 +635,21 @@ "ending_column": 2 } }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", "name": "erc20.transferFrom(from,to,value)", "source_mapping": { - "start": 1498, + "start": 1033, "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 44 + 34 ], "starting_column": 9, "ending_column": 44 @@ -657,19 +657,19 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "int_transferFrom", + "name": "bad1", "source_mapping": { - "start": 1294, - "length": 246, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "start": 843, + "length": 232, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 42, - 43, - 44, - 45 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -681,9 +681,9 @@ "source_mapping": { "start": 613, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -730,16 +730,16 @@ "ending_column": 2 } }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#44)\n", - "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L44)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L42-L45", - "id": "e3ed372c52b219322ca290ecfa79be96d7ea1b019af329a515c6c10b7a1cf03b", + "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#34)\n", + "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L34)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L32-L35", + "id": "eb616b56a991c8b3a6cb8f800394d615932a404f56814163c989dbf4f9307f9a", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol similarity index 100% rename from tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol rename to tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol diff --git a/tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol.0.6.11.ArbitrarySendErc20Permit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol.0.6.11.ArbitrarySendErc20Permit.json similarity index 77% rename from tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol.0.6.11.ArbitrarySendErc20Permit.json rename to tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol.0.6.11.ArbitrarySendErc20Permit.json index 16cad916f..0a59ae426 100644 --- a/tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol.0.6.11.ArbitrarySendErc20Permit.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol.0.6.11.ArbitrarySendErc20Permit.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1564, "length": 238, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 47, @@ -28,9 +28,9 @@ "source_mapping": { "start": 631, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -86,9 +86,9 @@ "source_mapping": { "start": 1756, "length": 39, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 49 @@ -103,9 +103,9 @@ "source_mapping": { "start": 1564, "length": 238, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 47, @@ -123,9 +123,9 @@ "source_mapping": { "start": 631, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -178,10 +178,10 @@ } } ], - "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#49)\n", - "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L49)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L47-L50", - "id": "1caf8efb7dd42f74884b4ee8d8b44585eeaa5758776ef8ac1e31b8aa749eac26", + "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#49)\n", + "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L49)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L47-L50", + "id": "3b940dbd72bf4a925e83d4f699604f18cef6703b0febc33fd0c0d0e3ac5ca328", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -194,9 +194,9 @@ "source_mapping": { "start": 1812, "length": 249, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 52, @@ -214,9 +214,9 @@ "source_mapping": { "start": 631, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -272,9 +272,9 @@ "source_mapping": { "start": 2004, "length": 50, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 54 @@ -289,9 +289,9 @@ "source_mapping": { "start": 1812, "length": 249, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 52, @@ -309,9 +309,9 @@ "source_mapping": { "start": 631, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -364,10 +364,10 @@ } } ], - "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#54)\n", - "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L54)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L52-L55", - "id": "cc58852f92580ac18db192412ec7e50667bf56d986349ae8fe6990f0b04f9f62", + "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#54)\n", + "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L54)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L52-L55", + "id": "7a0eb93cb62ee8dc1b21e0ac12f91f44457b306216d02b04c020adadd622a0ac", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -380,9 +380,9 @@ "source_mapping": { "start": 1312, "length": 246, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 42, @@ -400,9 +400,9 @@ "source_mapping": { "start": 631, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -458,9 +458,9 @@ "source_mapping": { "start": 1516, "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 44 @@ -475,9 +475,9 @@ "source_mapping": { "start": 1312, "length": 246, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 42, @@ -495,9 +495,9 @@ "source_mapping": { "start": 631, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -550,10 +550,10 @@ } } ], - "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#44)\n", - "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L44)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L42-L45", - "id": "f75bec4e068adbca017ad00b355347aa0c337b30a807fa8e1b80577b031e68fd", + "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#44)\n", + "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L44)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L42-L45", + "id": "7ee86024ca60eb5d5ad3be15c21fc9d7c301fa2a3a2700520459180a919c511f", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -566,9 +566,9 @@ "source_mapping": { "start": 861, "length": 232, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 32, @@ -586,9 +586,9 @@ "source_mapping": { "start": 631, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -644,9 +644,9 @@ "source_mapping": { "start": 1051, "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 34 @@ -661,9 +661,9 @@ "source_mapping": { "start": 861, "length": 232, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 32, @@ -681,9 +681,9 @@ "source_mapping": { "start": 631, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -736,10 +736,10 @@ } } ], - "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#34)\n", - "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L34)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L32-L35", - "id": "f90e97c676187cd6d727064001123d8537f5d8253d0a66ab6798b4a1c250a425", + "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#34)\n", + "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L34)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L32-L35", + "id": "fd1b8e822c71a24134a578815d9c495b60348cdf5eb2037d875bec85113d1278", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol similarity index 100% rename from tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol rename to tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol diff --git a/tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol.0.7.6.ArbitrarySendErc20Permit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol.0.7.6.ArbitrarySendErc20Permit.json similarity index 77% rename from tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol.0.7.6.ArbitrarySendErc20Permit.json rename to tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol.0.7.6.ArbitrarySendErc20Permit.json index d243657e2..b02284556 100644 --- a/tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol.0.7.6.ArbitrarySendErc20Permit.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol.0.7.6.ArbitrarySendErc20Permit.json @@ -4,19 +4,19 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "int_transferFrom", "source_mapping": { - "start": 1563, - "length": 238, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "start": 1311, + "length": 246, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50 + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -28,9 +28,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -77,41 +77,41 @@ "ending_column": 2 } }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", - "name": "erc20.safeTransferFrom(from,to,value)", + "name": "erc20.transferFrom(from,to,value)", "source_mapping": { - "start": 1755, - "length": 39, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "start": 1515, + "length": 35, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 49 + 44 ], "starting_column": 9, - "ending_column": 48 + "ending_column": 44 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "int_transferFrom", "source_mapping": { - "start": 1563, - "length": 238, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "start": 1311, + "length": 246, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50 + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -123,9 +123,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -172,16 +172,16 @@ "ending_column": 2 } }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#49)\n", - "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L49)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L47-L50", - "id": "63dc39bd9025d9fa7d39e07342e5652c010ff424e6d31ed9d1559f225c417956", + "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#44)\n", + "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L44)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L42-L45", + "id": "05d766e5d9c761b562f761e6ee1e97c7b826967943e2d3b2a286a87bd7f34b3e", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -190,19 +190,19 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad1", "source_mapping": { - "start": 1811, - "length": 249, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "start": 860, + "length": 232, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 52, - 53, - 54, - 55 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -214,9 +214,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -263,41 +263,41 @@ "ending_column": 2 } }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,value)", + "name": "erc20.transferFrom(from,to,value)", "source_mapping": { - "start": 2003, - "length": 50, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "start": 1050, + "length": 35, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 54 + 34 ], "starting_column": 9, - "ending_column": 59 + "ending_column": 44 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad1", "source_mapping": { - "start": 1811, - "length": 249, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "start": 860, + "length": 232, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 52, - 53, - 54, - 55 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -309,9 +309,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -358,16 +358,16 @@ "ending_column": 2 } }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#54)\n", - "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L54)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L52-L55", - "id": "7ebee7b534acb9d9502df84ba56fd0e90223cd262964c77cb9bee798eabd674b", + "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#34)\n", + "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L34)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L32-L35", + "id": "2c296d80100d63f511472381b87d4d0b6b0f97344ba63542faf7f5ec09138bd3", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -376,19 +376,19 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad4", "source_mapping": { - "start": 860, - "length": 232, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "start": 1811, + "length": 249, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 52, + 53, + 54, + 55 ], "starting_column": 5, "ending_column": 6 @@ -400,9 +400,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -449,41 +449,41 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", - "name": "erc20.transferFrom(from,to,value)", + "name": "SafeERC20.safeTransferFrom(erc20,from,to,value)", "source_mapping": { - "start": 1050, - "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "start": 2003, + "length": 50, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 34 + 54 ], "starting_column": 9, - "ending_column": 44 + "ending_column": 59 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad4", "source_mapping": { - "start": 860, - "length": 232, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "start": 1811, + "length": 249, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 52, + 53, + 54, + 55 ], "starting_column": 5, "ending_column": 6 @@ -495,9 +495,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -544,16 +544,16 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#34)\n", - "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L34)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L32-L35", - "id": "ba2c627103717a52a46b52714313000eb4f9d96f57dfac874854a3747ace5a13", + "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#54)\n", + "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L54)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L52-L55", + "id": "820447a866858955ff2d6be25ff0a2e0acbd0586d9ee18a28cddc3d863b113a6", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -562,19 +562,19 @@ "elements": [ { "type": "function", - "name": "int_transferFrom", + "name": "bad3", "source_mapping": { - "start": 1311, - "length": 246, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "start": 1563, + "length": 238, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 42, - 43, - 44, - 45 + 47, + 48, + 49, + 50 ], "starting_column": 5, "ending_column": 6 @@ -586,9 +586,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -635,41 +635,41 @@ "ending_column": 2 } }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", - "name": "erc20.transferFrom(from,to,value)", + "name": "erc20.safeTransferFrom(from,to,value)", "source_mapping": { - "start": 1515, - "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "start": 1755, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 44 + 49 ], "starting_column": 9, - "ending_column": 44 + "ending_column": 48 }, "type_specific_fields": { "parent": { "type": "function", - "name": "int_transferFrom", + "name": "bad3", "source_mapping": { - "start": 1311, - "length": 246, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "start": 1563, + "length": 238, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 42, - 43, - 44, - 45 + 47, + 48, + 49, + 50 ], "starting_column": 5, "ending_column": 6 @@ -681,9 +681,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -730,16 +730,16 @@ "ending_column": 2 } }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#44)\n", - "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L44)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L42-L45", - "id": "d56199ce2b7249389dffba8e53278f5ae32fbdda8a51cae8b5eb1cf2c09a0578", + "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#49)\n", + "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L49)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L47-L50", + "id": "fe60744fd1115f5cab695c8a4cef91187c6594b8b9133d9c8c42871a69bc44b1", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol similarity index 100% rename from tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol rename to tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol diff --git a/tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol.0.8.0.ArbitrarySendErc20Permit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol.0.8.0.ArbitrarySendErc20Permit.json similarity index 77% rename from tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol.0.8.0.ArbitrarySendErc20Permit.json rename to tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol.0.8.0.ArbitrarySendErc20Permit.json index 9533e8bd0..d744eeec7 100644 --- a/tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol.0.8.0.ArbitrarySendErc20Permit.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol.0.8.0.ArbitrarySendErc20Permit.json @@ -4,19 +4,19 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad3", "source_mapping": { - "start": 1811, - "length": 249, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "start": 1563, + "length": 238, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 52, - 53, - 54, - 55 + 47, + 48, + 49, + 50 ], "starting_column": 5, "ending_column": 6 @@ -28,9 +28,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -77,41 +77,41 @@ "ending_column": 2 } }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,value)", + "name": "erc20.safeTransferFrom(from,to,value)", "source_mapping": { - "start": 2003, - "length": 50, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "start": 1755, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 54 + 49 ], "starting_column": 9, - "ending_column": 59 + "ending_column": 48 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad3", "source_mapping": { - "start": 1811, - "length": 249, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "start": 1563, + "length": 238, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 52, - 53, - 54, - 55 + 47, + 48, + 49, + 50 ], "starting_column": 5, "ending_column": 6 @@ -123,9 +123,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -172,16 +172,16 @@ "ending_column": 2 } }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#54)\n", - "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L54)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L52-L55", - "id": "136a1b6c001d3ca4b1aab662556139786307e1bf4cb929f4c507d592eb38cb72", + "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#49)\n", + "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L49)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L47-L50", + "id": "42f3ef187f63f7af5b0d861ce439907349e82c4feee026975dac0919e31e6ccb", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -190,19 +190,19 @@ "elements": [ { "type": "function", - "name": "int_transferFrom", + "name": "bad4", "source_mapping": { - "start": 1311, - "length": 246, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "start": 1811, + "length": 249, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 42, - 43, - 44, - 45 + 52, + 53, + 54, + 55 ], "starting_column": 5, "ending_column": 6 @@ -214,9 +214,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -263,41 +263,41 @@ "ending_column": 2 } }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", - "name": "erc20.transferFrom(from,to,value)", + "name": "SafeERC20.safeTransferFrom(erc20,from,to,value)", "source_mapping": { - "start": 1515, - "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "start": 2003, + "length": 50, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 44 + 54 ], "starting_column": 9, - "ending_column": 44 + "ending_column": 59 }, "type_specific_fields": { "parent": { "type": "function", - "name": "int_transferFrom", + "name": "bad4", "source_mapping": { - "start": 1311, - "length": 246, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "start": 1811, + "length": 249, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 42, - 43, - 44, - 45 + 52, + 53, + 54, + 55 ], "starting_column": 5, "ending_column": 6 @@ -309,9 +309,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -358,16 +358,16 @@ "ending_column": 2 } }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#44)\n", - "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L44)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L42-L45", - "id": "398cc3de119232bd6688c797ddfb4f84d7587dbf9f72f3056898bfc442a5fd85", + "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#54)\n", + "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L54)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L52-L55", + "id": "e32264ced59dae2e3c1b6628c7e6877c4a29fd69e9f798b897b3d6bda04dc70d", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -376,19 +376,19 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "int_transferFrom", "source_mapping": { - "start": 860, - "length": 232, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "start": 1311, + "length": 246, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -400,9 +400,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -449,21 +449,21 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", "name": "erc20.transferFrom(from,to,value)", "source_mapping": { - "start": 1050, + "start": 1515, "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 34 + 44 ], "starting_column": 9, "ending_column": 44 @@ -471,19 +471,19 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "int_transferFrom", "source_mapping": { - "start": 860, - "length": 232, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "start": 1311, + "length": 246, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -495,9 +495,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -544,16 +544,16 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#34)\n", - "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L34)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L32-L35", - "id": "429dd8afad02f0e6869b1de2a82bf36ab35aaf74ba5909de5facd767f4642f32", + "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#44)\n", + "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L44)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L42-L45", + "id": "e9b4e54b9329b9564418eb9152c19271a5cfe4f8f6785f213dd324b219ba9dbb", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" @@ -562,19 +562,19 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 1563, - "length": 238, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "start": 860, + "length": 232, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -586,9 +586,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -635,41 +635,41 @@ "ending_column": 2 } }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" } }, { "type": "node", - "name": "erc20.safeTransferFrom(from,to,value)", + "name": "erc20.transferFrom(from,to,value)", "source_mapping": { - "start": 1755, - "length": 39, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "start": 1050, + "length": 35, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 49 + 34 ], "starting_column": 9, - "ending_column": 48 + "ending_column": 44 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 1563, - "length": 238, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "start": 860, + "length": 232, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -681,9 +681,9 @@ "source_mapping": { "start": 630, "length": 1433, - "filename_relative": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", "is_dependency": false, "lines": [ 19, @@ -730,16 +730,16 @@ "ending_column": 2 } }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" + "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" } } } } ], - "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#49)\n", - "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L49)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L47-L50", - "id": "7841a86248d8345520e98b963d59de36814b25e5fa3cef9e031c61d05a7feb2a", + "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#34)\n", + "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L34)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L32-L35", + "id": "efbc4aede4068fb46033ea04969b6584f373d9fa8d1047834b951aaa1207b7a2", "check": "arbitrary-send-erc20-permit", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol similarity index 100% rename from tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol rename to tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol diff --git a/tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol.0.4.25.ArbitrarySendErc20NoPermit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol.0.4.25.ArbitrarySendErc20NoPermit.json similarity index 82% rename from tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol.0.4.25.ArbitrarySendErc20NoPermit.json rename to tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol.0.4.25.ArbitrarySendErc20NoPermit.json index 8330b947c..b1a43d405 100644 --- a/tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol.0.4.25.ArbitrarySendErc20NoPermit.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol.0.4.25.ArbitrarySendErc20NoPermit.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad4", "source_mapping": { - "start": 780, - "length": 97, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "start": 1702, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 35, - 36, - 37 + 65, + 66, + 67 ], "starting_column": 5, "ending_column": 6 @@ -27,9 +27,9 @@ "source_mapping": { "start": 394, "length": 1717, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -98,40 +98,40 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256)" + "signature": "bad4(address,address,uint256)" } }, { "type": "node", - "name": "erc20.transferFrom(notsend,to,am)", + "name": "SafeERC20.safeTransferFrom(erc20,from,to,amount)", "source_mapping": { - "start": 835, - "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "start": 1777, + "length": 51, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 36 + 66 ], "starting_column": 9, - "ending_column": 44 + "ending_column": 60 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad4", "source_mapping": { - "start": 780, - "length": 97, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "start": 1702, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 35, - 36, - 37 + 65, + 66, + 67 ], "starting_column": 5, "ending_column": 6 @@ -143,9 +143,9 @@ "source_mapping": { "start": 394, "length": 1717, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -214,16 +214,16 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256)" + "signature": "bad4(address,address,uint256)" } } } } ], - "description": "C.bad1(address,uint256) (tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#36)\n", - "markdown": "[C.bad1(address,uint256)](tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L36)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L35-L37", - "id": "430afa4e7855d25b1262162894fa21d58eea2571578d45de5399baf3eb438038", + "description": "C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#66)\n", + "markdown": "[C.bad4(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L66)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L65-L67", + "id": "782ac6309a674c4c454f4addc1aa90d361333653e69ef1ae8931414391e8d29f", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" @@ -232,18 +232,18 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad1", "source_mapping": { - "start": 1702, - "length": 133, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "start": 780, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 65, - 66, - 67 + 35, + 36, + 37 ], "starting_column": 5, "ending_column": 6 @@ -255,9 +255,9 @@ "source_mapping": { "start": 394, "length": 1717, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -326,40 +326,40 @@ "ending_column": 2 } }, - "signature": "bad4(address,address,uint256)" + "signature": "bad1(address,uint256)" } }, { "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,amount)", + "name": "erc20.transferFrom(notsend,to,am)", "source_mapping": { - "start": 1777, - "length": 51, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "start": 835, + "length": 35, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 66 + 36 ], "starting_column": 9, - "ending_column": 60 + "ending_column": 44 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad1", "source_mapping": { - "start": 1702, - "length": 133, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "start": 780, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 65, - 66, - 67 + 35, + 36, + 37 ], "starting_column": 5, "ending_column": 6 @@ -371,9 +371,9 @@ "source_mapping": { "start": 394, "length": 1717, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -442,16 +442,16 @@ "ending_column": 2 } }, - "signature": "bad4(address,address,uint256)" + "signature": "bad1(address,uint256)" } } } } ], - "description": "C.bad4(address,address,uint256) (tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#66)\n", - "markdown": "[C.bad4(address,address,uint256)](tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L66)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L65-L67", - "id": "b2557d6385585034271b9873559de9cde4972e3207c43f260663f3d0e2a4d4a0", + "description": "C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#36)\n", + "markdown": "[C.bad1(address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L36)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L35-L37", + "id": "d8d440df76ab0715158f642a7390c91f0ab28ca9f0a1df990a8115f489a62e55", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" @@ -464,9 +464,9 @@ "source_mapping": { "start": 1434, "length": 122, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 57, @@ -483,9 +483,9 @@ "source_mapping": { "start": 394, "length": 1717, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -563,9 +563,9 @@ "source_mapping": { "start": 1509, "length": 40, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 58 @@ -580,9 +580,9 @@ "source_mapping": { "start": 1434, "length": 122, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 57, @@ -599,9 +599,9 @@ "source_mapping": { "start": 394, "length": 1717, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -676,10 +676,10 @@ } } ], - "description": "C.bad3(address,address,uint256) (tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#58)\n", - "markdown": "[C.bad3(address,address,uint256)](tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L58)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L57-L59", - "id": "e7271d3fa958d20a025419c070ea1010431487e98e30fa2db65db9bf54a13665", + "description": "C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#58)\n", + "markdown": "[C.bad3(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L58)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L57-L59", + "id": "f6dc295bfacef59e39a209c62d7a9c4a4470255c0098e7cc23d084ed666e29f0", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" diff --git a/tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol similarity index 100% rename from tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol rename to tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol diff --git a/tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol.0.5.16.ArbitrarySendErc20NoPermit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol.0.5.16.ArbitrarySendErc20NoPermit.json similarity index 82% rename from tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol.0.5.16.ArbitrarySendErc20NoPermit.json rename to tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol.0.5.16.ArbitrarySendErc20NoPermit.json index c1ccea8b5..b58297d0d 100644 --- a/tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol.0.5.16.ArbitrarySendErc20NoPermit.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol.0.5.16.ArbitrarySendErc20NoPermit.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1702, "length": 133, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 65, @@ -27,9 +27,9 @@ "source_mapping": { "start": 394, "length": 1717, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -107,9 +107,9 @@ "source_mapping": { "start": 1777, "length": 51, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 66 @@ -124,9 +124,9 @@ "source_mapping": { "start": 1702, "length": 133, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 65, @@ -143,9 +143,9 @@ "source_mapping": { "start": 394, "length": 1717, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -220,10 +220,10 @@ } } ], - "description": "C.bad4(address,address,uint256) (tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#66)\n", - "markdown": "[C.bad4(address,address,uint256)](tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L66)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L65-L67", - "id": "15a810d738734100851211c7e6bff65724d553eb693869575ec3d9c9bf47081c", + "description": "C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#66)\n", + "markdown": "[C.bad4(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L66)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L65-L67", + "id": "032453562de7f764a4207b76aa3ec875a21980644c4d3418fc186ec0a19a74f7", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" @@ -232,18 +232,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad3", "source_mapping": { - "start": 780, - "length": 97, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "start": 1434, + "length": 122, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 35, - 36, - 37 + 57, + 58, + 59 ], "starting_column": 5, "ending_column": 6 @@ -255,9 +255,9 @@ "source_mapping": { "start": 394, "length": 1717, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -326,40 +326,40 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256)" + "signature": "bad3(address,address,uint256)" } }, { "type": "node", - "name": "erc20.transferFrom(notsend,to,am)", + "name": "erc20.safeTransferFrom(from,to,amount)", "source_mapping": { - "start": 835, - "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "start": 1509, + "length": 40, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 36 + 58 ], "starting_column": 9, - "ending_column": 44 + "ending_column": 49 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad3", "source_mapping": { - "start": 780, - "length": 97, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "start": 1434, + "length": 122, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 35, - 36, - 37 + 57, + 58, + 59 ], "starting_column": 5, "ending_column": 6 @@ -371,9 +371,9 @@ "source_mapping": { "start": 394, "length": 1717, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -442,16 +442,16 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256)" + "signature": "bad3(address,address,uint256)" } } } } ], - "description": "C.bad1(address,uint256) (tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#36)\n", - "markdown": "[C.bad1(address,uint256)](tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L36)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L35-L37", - "id": "6ca6aea5c4506ac7fa421c049e0bd41faa74317e303b94721bc64c2fc6e8f128", + "description": "C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#58)\n", + "markdown": "[C.bad3(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L58)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L57-L59", + "id": "24af03aa72fded3faedf8cd9a6078c8d34d43e50b001678c983d7e85ff28a70f", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" @@ -460,18 +460,18 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 1434, - "length": 122, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "start": 780, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 57, - 58, - 59 + 35, + 36, + 37 ], "starting_column": 5, "ending_column": 6 @@ -483,9 +483,9 @@ "source_mapping": { "start": 394, "length": 1717, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -554,40 +554,40 @@ "ending_column": 2 } }, - "signature": "bad3(address,address,uint256)" + "signature": "bad1(address,uint256)" } }, { "type": "node", - "name": "erc20.safeTransferFrom(from,to,amount)", + "name": "erc20.transferFrom(notsend,to,am)", "source_mapping": { - "start": 1509, - "length": 40, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "start": 835, + "length": 35, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 58 + 36 ], "starting_column": 9, - "ending_column": 49 + "ending_column": 44 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 1434, - "length": 122, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "start": 780, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 57, - 58, - 59 + 35, + 36, + 37 ], "starting_column": 5, "ending_column": 6 @@ -599,9 +599,9 @@ "source_mapping": { "start": 394, "length": 1717, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -670,16 +670,16 @@ "ending_column": 2 } }, - "signature": "bad3(address,address,uint256)" + "signature": "bad1(address,uint256)" } } } } ], - "description": "C.bad3(address,address,uint256) (tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#58)\n", - "markdown": "[C.bad3(address,address,uint256)](tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L58)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L57-L59", - "id": "773c84f15f90123743b54aca858695d11603109f4da52c487ee4ae161f09411b", + "description": "C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#36)\n", + "markdown": "[C.bad1(address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L36)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L35-L37", + "id": "fdb4385a68f2d66f61e29e141233b969c36b21bcc2c57da25bd49f77a0c22c14", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" diff --git a/tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol similarity index 100% rename from tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol rename to tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol diff --git a/tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol.0.6.11.ArbitrarySendErc20NoPermit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol.0.6.11.ArbitrarySendErc20NoPermit.json similarity index 82% rename from tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol.0.6.11.ArbitrarySendErc20NoPermit.json rename to tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol.0.6.11.ArbitrarySendErc20NoPermit.json index 0e722340e..1f87d7e93 100644 --- a/tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol.0.6.11.ArbitrarySendErc20NoPermit.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol.0.6.11.ArbitrarySendErc20NoPermit.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 789, "length": 97, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 35, @@ -27,9 +27,9 @@ "source_mapping": { "start": 403, "length": 1721, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -107,9 +107,9 @@ "source_mapping": { "start": 844, "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 36 @@ -124,9 +124,9 @@ "source_mapping": { "start": 789, "length": 97, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 35, @@ -143,9 +143,9 @@ "source_mapping": { "start": 403, "length": 1721, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -220,10 +220,10 @@ } } ], - "description": "C.bad1(address,uint256) (tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#36)\n", - "markdown": "[C.bad1(address,uint256)](tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L36)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L35-L37", - "id": "040cf50981f6e1dea1f7a19f0115811be1347e0637f0ca85d789ae612a509322", + "description": "C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#36)\n", + "markdown": "[C.bad1(address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L36)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L35-L37", + "id": "3ee4e04cb082e655c1efd1510b30cdf4eb6a482b260ea7201c9169fba4ab9b85", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" @@ -232,18 +232,18 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad3", "source_mapping": { - "start": 1711, - "length": 133, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "start": 1443, + "length": 122, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 65, - 66, - 67 + 57, + 58, + 59 ], "starting_column": 5, "ending_column": 6 @@ -255,9 +255,9 @@ "source_mapping": { "start": 403, "length": 1721, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -326,40 +326,40 @@ "ending_column": 2 } }, - "signature": "bad4(address,address,uint256)" + "signature": "bad3(address,address,uint256)" } }, { "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,amount)", + "name": "erc20.safeTransferFrom(from,to,amount)", "source_mapping": { - "start": 1786, - "length": 51, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "start": 1518, + "length": 40, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 66 + 58 ], "starting_column": 9, - "ending_column": 60 + "ending_column": 49 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad3", "source_mapping": { - "start": 1711, - "length": 133, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "start": 1443, + "length": 122, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 65, - 66, - 67 + 57, + 58, + 59 ], "starting_column": 5, "ending_column": 6 @@ -371,9 +371,9 @@ "source_mapping": { "start": 403, "length": 1721, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -442,16 +442,16 @@ "ending_column": 2 } }, - "signature": "bad4(address,address,uint256)" + "signature": "bad3(address,address,uint256)" } } } } ], - "description": "C.bad4(address,address,uint256) (tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#66)\n", - "markdown": "[C.bad4(address,address,uint256)](tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L66)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L65-L67", - "id": "61438092d2da6c23ecfa13e5e55c489e538249e47bddd9335b533d28a242aea1", + "description": "C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#58)\n", + "markdown": "[C.bad3(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L58)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L57-L59", + "id": "de8b51ae7497fbc596bd29f45432f5e9894574af684b3b65dae7ddd45cb8c71a", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" @@ -460,18 +460,18 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 1443, - "length": 122, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "start": 1711, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 57, - 58, - 59 + 65, + 66, + 67 ], "starting_column": 5, "ending_column": 6 @@ -483,9 +483,9 @@ "source_mapping": { "start": 403, "length": 1721, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -554,40 +554,40 @@ "ending_column": 2 } }, - "signature": "bad3(address,address,uint256)" + "signature": "bad4(address,address,uint256)" } }, { "type": "node", - "name": "erc20.safeTransferFrom(from,to,amount)", + "name": "SafeERC20.safeTransferFrom(erc20,from,to,amount)", "source_mapping": { - "start": 1518, - "length": 40, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "start": 1786, + "length": 51, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 58 + 66 ], "starting_column": 9, - "ending_column": 49 + "ending_column": 60 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 1443, - "length": 122, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "start": 1711, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 57, - 58, - 59 + 65, + 66, + 67 ], "starting_column": 5, "ending_column": 6 @@ -599,9 +599,9 @@ "source_mapping": { "start": 403, "length": 1721, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -670,16 +670,16 @@ "ending_column": 2 } }, - "signature": "bad3(address,address,uint256)" + "signature": "bad4(address,address,uint256)" } } } } ], - "description": "C.bad3(address,address,uint256) (tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#58)\n", - "markdown": "[C.bad3(address,address,uint256)](tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L58)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L57-L59", - "id": "8551e9d33fdd4f73f1eb7776480b2e8cd2cf9c897b52285c3a287caab6822ce3", + "description": "C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#66)\n", + "markdown": "[C.bad4(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L66)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L65-L67", + "id": "f8361d02867f34ef252d248d5c7c1d0d4570210ce04b6a4f07f921950d80233b", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" diff --git a/tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol similarity index 100% rename from tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol rename to tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol diff --git a/tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol.0.7.6.ArbitrarySendErc20NoPermit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol.0.7.6.ArbitrarySendErc20NoPermit.json similarity index 82% rename from tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol.0.7.6.ArbitrarySendErc20NoPermit.json rename to tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol.0.7.6.ArbitrarySendErc20NoPermit.json index 6ce6f095e..4ce050420 100644 --- a/tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol.0.7.6.ArbitrarySendErc20NoPermit.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol.0.7.6.ArbitrarySendErc20NoPermit.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 1435, - "length": 122, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "start": 1703, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 57, - 58, - 59 + 65, + 66, + 67 ], "starting_column": 5, "ending_column": 6 @@ -27,9 +27,9 @@ "source_mapping": { "start": 402, "length": 1710, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -98,40 +98,40 @@ "ending_column": 2 } }, - "signature": "bad3(address,address,uint256)" + "signature": "bad4(address,address,uint256)" } }, { "type": "node", - "name": "erc20.safeTransferFrom(from,to,amount)", + "name": "SafeERC20.safeTransferFrom(erc20,from,to,amount)", "source_mapping": { - "start": 1510, - "length": 40, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "start": 1778, + "length": 51, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 58 + 66 ], "starting_column": 9, - "ending_column": 49 + "ending_column": 60 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 1435, - "length": 122, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "start": 1703, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 57, - 58, - 59 + 65, + 66, + 67 ], "starting_column": 5, "ending_column": 6 @@ -143,9 +143,9 @@ "source_mapping": { "start": 402, "length": 1710, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -214,16 +214,16 @@ "ending_column": 2 } }, - "signature": "bad3(address,address,uint256)" + "signature": "bad4(address,address,uint256)" } } } } ], - "description": "C.bad3(address,address,uint256) (tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#58)\n", - "markdown": "[C.bad3(address,address,uint256)](tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L58)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L57-L59", - "id": "27c4a0e1a038beb0c01c86e07f1aef592f96907d330bcf899bde6632a9022327", + "description": "C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#66)\n", + "markdown": "[C.bad4(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L66)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L65-L67", + "id": "a6cc1c7767af60c53ded524a69ea19d45f030de39ca0d5838f9b9790c40d52fc", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" @@ -232,18 +232,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad3", "source_mapping": { - "start": 781, - "length": 97, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "start": 1435, + "length": 122, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 35, - 36, - 37 + 57, + 58, + 59 ], "starting_column": 5, "ending_column": 6 @@ -255,9 +255,9 @@ "source_mapping": { "start": 402, "length": 1710, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -326,40 +326,40 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256)" + "signature": "bad3(address,address,uint256)" } }, { "type": "node", - "name": "erc20.transferFrom(notsend,to,am)", + "name": "erc20.safeTransferFrom(from,to,amount)", "source_mapping": { - "start": 836, - "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "start": 1510, + "length": 40, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 36 + 58 ], "starting_column": 9, - "ending_column": 44 + "ending_column": 49 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad3", "source_mapping": { - "start": 781, - "length": 97, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "start": 1435, + "length": 122, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 35, - 36, - 37 + 57, + 58, + 59 ], "starting_column": 5, "ending_column": 6 @@ -371,9 +371,9 @@ "source_mapping": { "start": 402, "length": 1710, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -442,16 +442,16 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256)" + "signature": "bad3(address,address,uint256)" } } } } ], - "description": "C.bad1(address,uint256) (tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#36)\n", - "markdown": "[C.bad1(address,uint256)](tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L36)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L35-L37", - "id": "820841ccd8aee0469f9719d62ad01054b71a758a1d6924ed6a19ea078ff8350a", + "description": "C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#58)\n", + "markdown": "[C.bad3(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L58)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L57-L59", + "id": "d08a69b25eee59446b955d7dc80198afec5c7c05562f489dac38ad172f318e87", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" @@ -460,18 +460,18 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad1", "source_mapping": { - "start": 1703, - "length": 133, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "start": 781, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 65, - 66, - 67 + 35, + 36, + 37 ], "starting_column": 5, "ending_column": 6 @@ -483,9 +483,9 @@ "source_mapping": { "start": 402, "length": 1710, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -554,40 +554,40 @@ "ending_column": 2 } }, - "signature": "bad4(address,address,uint256)" + "signature": "bad1(address,uint256)" } }, { "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,amount)", + "name": "erc20.transferFrom(notsend,to,am)", "source_mapping": { - "start": 1778, - "length": 51, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "start": 836, + "length": 35, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 66 + 36 ], "starting_column": 9, - "ending_column": 60 + "ending_column": 44 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad1", "source_mapping": { - "start": 1703, - "length": 133, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "start": 781, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 65, - 66, - 67 + 35, + 36, + 37 ], "starting_column": 5, "ending_column": 6 @@ -599,9 +599,9 @@ "source_mapping": { "start": 402, "length": 1710, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -670,16 +670,16 @@ "ending_column": 2 } }, - "signature": "bad4(address,address,uint256)" + "signature": "bad1(address,uint256)" } } } } ], - "description": "C.bad4(address,address,uint256) (tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#66)\n", - "markdown": "[C.bad4(address,address,uint256)](tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L66)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L65-L67", - "id": "9ecb2b9df9554b9ebdbcfd058eb44ba4f1524b285b676063432d5ede48aee5ad", + "description": "C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#36)\n", + "markdown": "[C.bad1(address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L36)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L35-L37", + "id": "e2456673798cea3df117f0bf62c3394f4361a4f0ff4e924ae9dfbd9908f19a20", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" diff --git a/tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol similarity index 100% rename from tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol rename to tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol diff --git a/tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol.0.8.0.ArbitrarySendErc20NoPermit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol.0.8.0.ArbitrarySendErc20NoPermit.json similarity index 82% rename from tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol.0.8.0.ArbitrarySendErc20NoPermit.json rename to tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol.0.8.0.ArbitrarySendErc20NoPermit.json index 740c797d8..530c866dc 100644 --- a/tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol.0.8.0.ArbitrarySendErc20NoPermit.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol.0.8.0.ArbitrarySendErc20NoPermit.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 1435, - "length": 122, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "start": 781, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 57, - 58, - 59 + 35, + 36, + 37 ], "starting_column": 5, "ending_column": 6 @@ -27,9 +27,9 @@ "source_mapping": { "start": 402, "length": 1710, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -98,40 +98,40 @@ "ending_column": 2 } }, - "signature": "bad3(address,address,uint256)" + "signature": "bad1(address,uint256)" } }, { "type": "node", - "name": "erc20.safeTransferFrom(from,to,amount)", + "name": "erc20.transferFrom(notsend,to,am)", "source_mapping": { - "start": 1510, - "length": 40, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "start": 836, + "length": 35, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 58 + 36 ], "starting_column": 9, - "ending_column": 49 + "ending_column": 44 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 1435, - "length": 122, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "start": 781, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 57, - 58, - 59 + 35, + 36, + 37 ], "starting_column": 5, "ending_column": 6 @@ -143,9 +143,9 @@ "source_mapping": { "start": 402, "length": 1710, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -214,16 +214,16 @@ "ending_column": 2 } }, - "signature": "bad3(address,address,uint256)" + "signature": "bad1(address,uint256)" } } } } ], - "description": "C.bad3(address,address,uint256) (tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#58)\n", - "markdown": "[C.bad3(address,address,uint256)](tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L58)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L57-L59", - "id": "196b46419f55696599f4a533ea4915c3b1c39be679d8e2ab15a60b7a0238d52c", + "description": "C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#36)\n", + "markdown": "[C.bad1(address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L36)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L35-L37", + "id": "27d7e29cffdefedcd7bda099409891a2046976d0b7a2f64eaa28877112df7b7e", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" @@ -232,18 +232,18 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad3", "source_mapping": { - "start": 1703, - "length": 133, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "start": 1435, + "length": 122, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 65, - 66, - 67 + 57, + 58, + 59 ], "starting_column": 5, "ending_column": 6 @@ -255,9 +255,9 @@ "source_mapping": { "start": 402, "length": 1710, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -326,40 +326,40 @@ "ending_column": 2 } }, - "signature": "bad4(address,address,uint256)" + "signature": "bad3(address,address,uint256)" } }, { "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,amount)", + "name": "erc20.safeTransferFrom(from,to,amount)", "source_mapping": { - "start": 1778, - "length": 51, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "start": 1510, + "length": 40, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 66 + 58 ], "starting_column": 9, - "ending_column": 60 + "ending_column": 49 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad3", "source_mapping": { - "start": 1703, - "length": 133, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "start": 1435, + "length": 122, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 65, - 66, - 67 + 57, + 58, + 59 ], "starting_column": 5, "ending_column": 6 @@ -371,9 +371,9 @@ "source_mapping": { "start": 402, "length": 1710, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -442,16 +442,16 @@ "ending_column": 2 } }, - "signature": "bad4(address,address,uint256)" + "signature": "bad3(address,address,uint256)" } } } } ], - "description": "C.bad4(address,address,uint256) (tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#66)\n", - "markdown": "[C.bad4(address,address,uint256)](tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L66)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L65-L67", - "id": "6ba2ac6eeef603310a4b4f7931ab44fadb3a242517096e17c5f1e39f0f4b83cf", + "description": "C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#58)\n", + "markdown": "[C.bad3(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L58)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L57-L59", + "id": "42ab0e5179e6f2a124a6cb4812054d724422d55c2032dd0708bc72c05a66e98d", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" @@ -460,18 +460,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad4", "source_mapping": { - "start": 781, - "length": 97, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "start": 1703, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 35, - 36, - 37 + 65, + 66, + 67 ], "starting_column": 5, "ending_column": 6 @@ -483,9 +483,9 @@ "source_mapping": { "start": 402, "length": 1710, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -554,40 +554,40 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256)" + "signature": "bad4(address,address,uint256)" } }, { "type": "node", - "name": "erc20.transferFrom(notsend,to,am)", + "name": "SafeERC20.safeTransferFrom(erc20,from,to,amount)", "source_mapping": { - "start": 836, - "length": 35, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "start": 1778, + "length": 51, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 36 + 66 ], "starting_column": 9, - "ending_column": 44 + "ending_column": 60 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad4", "source_mapping": { - "start": 781, - "length": 97, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "start": 1703, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ - 35, - 36, - 37 + 65, + 66, + 67 ], "starting_column": 5, "ending_column": 6 @@ -599,9 +599,9 @@ "source_mapping": { "start": 402, "length": 1710, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", "is_dependency": false, "lines": [ 17, @@ -670,16 +670,16 @@ "ending_column": 2 } }, - "signature": "bad1(address,uint256)" + "signature": "bad4(address,address,uint256)" } } } } ], - "description": "C.bad1(address,uint256) (tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#36)\n", - "markdown": "[C.bad1(address,uint256)](tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L36)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L35-L37", - "id": "8972d014c645b3a3783400fb2a6a38b20ea38973481025b6f99b3c15c9e63868", + "description": "C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#66)\n", + "markdown": "[C.bad4(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L66)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L65-L67", + "id": "5b4614fc9fd5c01b1ca3f3713366e33d7b87b516646cc349aa3b383a2d4cef6b", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" diff --git a/tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol similarity index 100% rename from tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol rename to tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol diff --git a/tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol.0.8.0.ArbitrarySendErc20NoPermit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol.0.8.0.ArbitrarySendErc20NoPermit.json similarity index 67% rename from tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol.0.8.0.ArbitrarySendErc20NoPermit.json rename to tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol.0.8.0.ArbitrarySendErc20NoPermit.json index ca64318a1..c4d181524 100644 --- a/tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol.0.8.0.ArbitrarySendErc20NoPermit.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol.0.8.0.ArbitrarySendErc20NoPermit.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 196, "length": 88, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", "is_dependency": false, "lines": [ 11, @@ -27,9 +27,9 @@ "source_mapping": { "start": 138, "length": 149, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", "is_dependency": false, "lines": [ 7, @@ -54,9 +54,9 @@ "source_mapping": { "start": 234, "length": 46, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", "is_dependency": false, "lines": [ 12 @@ -71,9 +71,9 @@ "source_mapping": { "start": 196, "length": 88, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", "is_dependency": false, "lines": [ 11, @@ -90,9 +90,9 @@ "source_mapping": { "start": 138, "length": 149, - "filename_relative": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", "is_dependency": false, "lines": [ 7, @@ -114,10 +114,10 @@ } } ], - "description": "T.bad(address) (tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#11-13) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,address(0x1),90) (tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#12)\n", - "markdown": "[T.bad(address)](tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#L11-L13) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,address(0x1),90)](tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#L12)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#L11-L13", - "id": "51845f69be45c4d9b97ff3e01cbc5bf55d1c1cddcc4776f39e22dd803a241e46", + "description": "T.bad(address) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#11-13) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,address(0x1),90) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#12)\n", + "markdown": "[T.bad(address)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#L11-L13) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,address(0x1),90)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#L12)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#L11-L13", + "id": "60e953d6175f0ac988d7896f836c2963387efc3064ea8dc46e7f5a88b1792d0a", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" diff --git a/tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol similarity index 100% rename from tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol rename to tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol diff --git a/tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol.0.4.25.ArbitrarySendEth.json b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol.0.4.25.ArbitrarySendEth.json similarity index 78% rename from tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol.0.4.25.ArbitrarySendEth.json rename to tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol.0.4.25.ArbitrarySendEth.json index aafd7c264..c65a497fd 100644 --- a/tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol.0.4.25.ArbitrarySendEth.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol.0.4.25.ArbitrarySendEth.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "direct", + "name": "indirect", "source_mapping": { - "start": 147, - "length": 79, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "start": 301, + "length": 82, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13 + 19, + 20, + 21 ], "starting_column": 5, "ending_column": 6 @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 869, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -78,40 +78,40 @@ "ending_column": 2 } }, - "signature": "direct()" + "signature": "indirect()" } }, { "type": "node", - "name": "msg.sender.send(address(this).balance)", + "name": "destination.send(address(this).balance)", "source_mapping": { - "start": 181, - "length": 38, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "start": 337, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ - 12 + 20 ], "starting_column": 9, - "ending_column": 47 + "ending_column": 48 }, "type_specific_fields": { "parent": { "type": "function", - "name": "direct", + "name": "indirect", "source_mapping": { - "start": 147, - "length": 79, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "start": 301, + "length": 82, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13 + 19, + 20, + 21 ], "starting_column": 5, "ending_column": 6 @@ -123,9 +123,9 @@ "source_mapping": { "start": 0, "length": 869, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -174,16 +174,16 @@ "ending_column": 2 } }, - "signature": "direct()" + "signature": "indirect()" } } } } ], - "description": "Test.direct() (tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user\n\tDangerous calls:\n\t- msg.sender.send(address(this).balance) (tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#12)\n", - "markdown": "[Test.direct()](tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L11-L13) sends eth to arbitrary user\n\tDangerous calls:\n\t- [msg.sender.send(address(this).balance)](tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L12)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L11-L13", - "id": "672bdccd2e85fb88deee03d312d533259b73ca932965ae09e5b24a3b546c4ad2", + "description": "Test.indirect() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user\n\tDangerous calls:\n\t- destination.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#20)\n", + "markdown": "[Test.indirect()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L19-L21) sends eth to arbitrary user\n\tDangerous calls:\n\t- [destination.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L20)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L19-L21", + "id": "a117e017d88dcf44b5a68050b9cc79263760734b6e9fa1c5627484395035afab", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium" @@ -192,18 +192,18 @@ "elements": [ { "type": "function", - "name": "indirect", + "name": "direct", "source_mapping": { - "start": 301, - "length": 82, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "start": 147, + "length": 79, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 11, + 12, + 13 ], "starting_column": 5, "ending_column": 6 @@ -215,9 +215,9 @@ "source_mapping": { "start": 0, "length": 869, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -266,40 +266,40 @@ "ending_column": 2 } }, - "signature": "indirect()" + "signature": "direct()" } }, { "type": "node", - "name": "destination.send(address(this).balance)", + "name": "msg.sender.send(address(this).balance)", "source_mapping": { - "start": 337, - "length": 39, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "start": 181, + "length": 38, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ - 20 + 12 ], "starting_column": 9, - "ending_column": 48 + "ending_column": 47 }, "type_specific_fields": { "parent": { "type": "function", - "name": "indirect", + "name": "direct", "source_mapping": { - "start": 301, - "length": 82, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "start": 147, + "length": 79, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 11, + 12, + 13 ], "starting_column": 5, "ending_column": 6 @@ -311,9 +311,9 @@ "source_mapping": { "start": 0, "length": 869, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -362,16 +362,16 @@ "ending_column": 2 } }, - "signature": "indirect()" + "signature": "direct()" } } } } ], - "description": "Test.indirect() (tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user\n\tDangerous calls:\n\t- destination.send(address(this).balance) (tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#20)\n", - "markdown": "[Test.indirect()](tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L19-L21) sends eth to arbitrary user\n\tDangerous calls:\n\t- [destination.send(address(this).balance)](tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L20)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L19-L21", - "id": "9d50facc8382e844e7381f8ca9e389061bd0302345047de2407e0ad7b046687d", + "description": "Test.direct() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user\n\tDangerous calls:\n\t- msg.sender.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#12)\n", + "markdown": "[Test.direct()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L11-L13) sends eth to arbitrary user\n\tDangerous calls:\n\t- [msg.sender.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L12)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L11-L13", + "id": "a3f691d79400cfbc468d13a348697863660c3460ceebfea85a6f5c07c9f93a1f", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol similarity index 100% rename from tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol rename to tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol diff --git a/tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol.0.5.16.ArbitrarySendEth.json b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol.0.5.16.ArbitrarySendEth.json similarity index 78% rename from tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol.0.5.16.ArbitrarySendEth.json rename to tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol.0.5.16.ArbitrarySendEth.json index 6700ed92c..0e85e427f 100644 --- a/tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol.0.5.16.ArbitrarySendEth.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol.0.5.16.ArbitrarySendEth.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 162, "length": 79, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 11, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 884, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -87,9 +87,9 @@ "source_mapping": { "start": 196, "length": 38, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 12 @@ -104,9 +104,9 @@ "source_mapping": { "start": 162, "length": 79, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 11, @@ -123,9 +123,9 @@ "source_mapping": { "start": 0, "length": 884, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -180,10 +180,10 @@ } } ], - "description": "Test.direct() (tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user\n\tDangerous calls:\n\t- msg.sender.send(address(this).balance) (tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#12)\n", - "markdown": "[Test.direct()](tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L11-L13) sends eth to arbitrary user\n\tDangerous calls:\n\t- [msg.sender.send(address(this).balance)](tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L12)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L11-L13", - "id": "7ded1859293ad51d129850d2f19669c7d38f4687a6e2afa8d93534d5f2a9a0ad", + "description": "Test.direct() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user\n\tDangerous calls:\n\t- msg.sender.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#12)\n", + "markdown": "[Test.direct()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L11-L13) sends eth to arbitrary user\n\tDangerous calls:\n\t- [msg.sender.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L12)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L11-L13", + "id": "4ccd608ef16f83d45efea33bbe26da98fa322c8551e1ce4dfcc718511a328f94", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium" @@ -196,9 +196,9 @@ "source_mapping": { "start": 316, "length": 82, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 19, @@ -215,9 +215,9 @@ "source_mapping": { "start": 0, "length": 884, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -275,9 +275,9 @@ "source_mapping": { "start": 352, "length": 39, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 20 @@ -292,9 +292,9 @@ "source_mapping": { "start": 316, "length": 82, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 19, @@ -311,9 +311,9 @@ "source_mapping": { "start": 0, "length": 884, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -368,10 +368,10 @@ } } ], - "description": "Test.indirect() (tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user\n\tDangerous calls:\n\t- destination.send(address(this).balance) (tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#20)\n", - "markdown": "[Test.indirect()](tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L19-L21) sends eth to arbitrary user\n\tDangerous calls:\n\t- [destination.send(address(this).balance)](tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L20)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L19-L21", - "id": "d27379ff48eebb6c568308104d444dc8f6b5ed5eae53f6c937aec9fb15cf6464", + "description": "Test.indirect() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user\n\tDangerous calls:\n\t- destination.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#20)\n", + "markdown": "[Test.indirect()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L19-L21) sends eth to arbitrary user\n\tDangerous calls:\n\t- [destination.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L20)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L19-L21", + "id": "8e28e46dabfb6c22ddc3d768097fd8c1a9c5331cba0480e540df2173a35db644", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol similarity index 100% rename from tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol rename to tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol diff --git a/tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol.0.6.11.ArbitrarySendEth.json b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol.0.6.11.ArbitrarySendEth.json similarity index 78% rename from tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol.0.6.11.ArbitrarySendEth.json rename to tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol.0.6.11.ArbitrarySendEth.json index 289c78c69..de345d832 100644 --- a/tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol.0.6.11.ArbitrarySendEth.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol.0.6.11.ArbitrarySendEth.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 316, "length": 82, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 19, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 884, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -87,9 +87,9 @@ "source_mapping": { "start": 352, "length": 39, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 20 @@ -104,9 +104,9 @@ "source_mapping": { "start": 316, "length": 82, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 19, @@ -123,9 +123,9 @@ "source_mapping": { "start": 0, "length": 884, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -180,10 +180,10 @@ } } ], - "description": "Test.indirect() (tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user\n\tDangerous calls:\n\t- destination.send(address(this).balance) (tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#20)\n", - "markdown": "[Test.indirect()](tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L19-L21) sends eth to arbitrary user\n\tDangerous calls:\n\t- [destination.send(address(this).balance)](tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L20)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L19-L21", - "id": "0ec491130aac4e23e6d47193bff49ed6029330bca373454b4e34ffba0a2baea6", + "description": "Test.indirect() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user\n\tDangerous calls:\n\t- destination.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#20)\n", + "markdown": "[Test.indirect()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L19-L21) sends eth to arbitrary user\n\tDangerous calls:\n\t- [destination.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L20)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L19-L21", + "id": "5ba8311b7d5a57cdfdf3009f594b708dcee0e532b6789fa2602b1e497cab78ff", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium" @@ -196,9 +196,9 @@ "source_mapping": { "start": 162, "length": 79, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 11, @@ -215,9 +215,9 @@ "source_mapping": { "start": 0, "length": 884, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -275,9 +275,9 @@ "source_mapping": { "start": 196, "length": 38, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 12 @@ -292,9 +292,9 @@ "source_mapping": { "start": 162, "length": 79, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 11, @@ -311,9 +311,9 @@ "source_mapping": { "start": 0, "length": 884, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -368,10 +368,10 @@ } } ], - "description": "Test.direct() (tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user\n\tDangerous calls:\n\t- msg.sender.send(address(this).balance) (tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#12)\n", - "markdown": "[Test.direct()](tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L11-L13) sends eth to arbitrary user\n\tDangerous calls:\n\t- [msg.sender.send(address(this).balance)](tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L12)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L11-L13", - "id": "51e87e03fc48363e666bb99c1d15beccb50464e1c170eeea5b76ec6fcde643e7", + "description": "Test.direct() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user\n\tDangerous calls:\n\t- msg.sender.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#12)\n", + "markdown": "[Test.direct()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L11-L13) sends eth to arbitrary user\n\tDangerous calls:\n\t- [msg.sender.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L12)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L11-L13", + "id": "f0e0b1ffc69d83ae26e2036986f8e50b1fd7b6b38bcd00becc5505cc83ea59f7", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol similarity index 100% rename from tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol rename to tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol diff --git a/tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol.0.7.6.ArbitrarySendEth.json b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol.0.7.6.ArbitrarySendEth.json similarity index 78% rename from tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol.0.7.6.ArbitrarySendEth.json rename to tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol.0.7.6.ArbitrarySendEth.json index 693344ce9..cc93e1ec2 100644 --- a/tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol.0.7.6.ArbitrarySendEth.json +++ b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol.0.7.6.ArbitrarySendEth.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "indirect", + "name": "direct", "source_mapping": { - "start": 316, - "length": 82, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "start": 162, + "length": 79, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 11, + 12, + 13 ], "starting_column": 5, "ending_column": 6 @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 884, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -78,40 +78,40 @@ "ending_column": 2 } }, - "signature": "indirect()" + "signature": "direct()" } }, { "type": "node", - "name": "destination.send(address(this).balance)", + "name": "msg.sender.send(address(this).balance)", "source_mapping": { - "start": 352, - "length": 39, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "start": 196, + "length": 38, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ - 20 + 12 ], "starting_column": 9, - "ending_column": 48 + "ending_column": 47 }, "type_specific_fields": { "parent": { "type": "function", - "name": "indirect", + "name": "direct", "source_mapping": { - "start": 316, - "length": 82, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "start": 162, + "length": 79, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 11, + 12, + 13 ], "starting_column": 5, "ending_column": 6 @@ -123,9 +123,9 @@ "source_mapping": { "start": 0, "length": 884, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -174,16 +174,16 @@ "ending_column": 2 } }, - "signature": "indirect()" + "signature": "direct()" } } } } ], - "description": "Test.indirect() (tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user\n\tDangerous calls:\n\t- destination.send(address(this).balance) (tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#20)\n", - "markdown": "[Test.indirect()](tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L19-L21) sends eth to arbitrary user\n\tDangerous calls:\n\t- [destination.send(address(this).balance)](tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L20)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L19-L21", - "id": "2e1bd6d1260cf35450734eb2027a2d964f61858a3aabd0cb459c22cb4da9956b", + "description": "Test.direct() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user\n\tDangerous calls:\n\t- msg.sender.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#12)\n", + "markdown": "[Test.direct()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L11-L13) sends eth to arbitrary user\n\tDangerous calls:\n\t- [msg.sender.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L12)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L11-L13", + "id": "21e5bba25b77457329b8b6b5257f9977083960c2c9b693579477999f9aceacdd", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium" @@ -192,18 +192,18 @@ "elements": [ { "type": "function", - "name": "direct", + "name": "indirect", "source_mapping": { - "start": 162, - "length": 79, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "start": 316, + "length": 82, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13 + 19, + 20, + 21 ], "starting_column": 5, "ending_column": 6 @@ -215,9 +215,9 @@ "source_mapping": { "start": 0, "length": 884, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -266,40 +266,40 @@ "ending_column": 2 } }, - "signature": "direct()" + "signature": "indirect()" } }, { "type": "node", - "name": "msg.sender.send(address(this).balance)", + "name": "destination.send(address(this).balance)", "source_mapping": { - "start": 196, - "length": 38, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "start": 352, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ - 12 + 20 ], "starting_column": 9, - "ending_column": 47 + "ending_column": 48 }, "type_specific_fields": { "parent": { "type": "function", - "name": "direct", + "name": "indirect", "source_mapping": { - "start": 162, - "length": 79, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "start": 316, + "length": 82, + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13 + 19, + 20, + 21 ], "starting_column": 5, "ending_column": 6 @@ -311,9 +311,9 @@ "source_mapping": { "start": 0, "length": 884, - "filename_relative": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", + "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", "is_dependency": false, "lines": [ 1, @@ -362,16 +362,16 @@ "ending_column": 2 } }, - "signature": "direct()" + "signature": "indirect()" } } } } ], - "description": "Test.direct() (tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user\n\tDangerous calls:\n\t- msg.sender.send(address(this).balance) (tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#12)\n", - "markdown": "[Test.direct()](tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L11-L13) sends eth to arbitrary user\n\tDangerous calls:\n\t- [msg.sender.send(address(this).balance)](tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L12)\n", - "first_markdown_element": "tests/detectors/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L11-L13", - "id": "76af03df5e6d33df8978a2cc00dfe944236aca69ad1b7f107580da1b76121082", + "description": "Test.indirect() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user\n\tDangerous calls:\n\t- destination.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#20)\n", + "markdown": "[Test.indirect()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L19-L21) sends eth to arbitrary user\n\tDangerous calls:\n\t- [destination.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L20)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L19-L21", + "id": "6094c4914d5770617670fa1fb7e3debc390308148f7957380c6675d4d20ba328", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/array-by-reference/0.4.25/array_by_reference.sol b/tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol similarity index 100% rename from tests/detectors/array-by-reference/0.4.25/array_by_reference.sol rename to tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol diff --git a/tests/detectors/array-by-reference/0.4.25/array_by_reference.sol.0.4.25.ArrayByReference.json b/tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol.0.4.25.ArrayByReference.json similarity index 76% rename from tests/detectors/array-by-reference/0.4.25/array_by_reference.sol.0.4.25.ArrayByReference.json rename to tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol.0.4.25.ArrayByReference.json index 8ad16bf1e..525bdd272 100644 --- a/tests/detectors/array-by-reference/0.4.25/array_by_reference.sol.0.4.25.ArrayByReference.json +++ b/tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol.0.4.25.ArrayByReference.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 855, "length": 269, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 42, @@ -31,9 +31,9 @@ "source_mapping": { "start": 688, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -72,9 +72,9 @@ "source_mapping": { "start": 822, "length": 9, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 39 @@ -89,9 +89,9 @@ "source_mapping": { "start": 688, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -129,9 +129,9 @@ "source_mapping": { "start": 571, "length": 113, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 25, @@ -149,9 +149,9 @@ "source_mapping": { "start": 0, "length": 686, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -192,9 +192,9 @@ } } ], - "description": "D.f() (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#42-48) passes array D.x (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[D.f()](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L42-L48) passes array [D.x](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L39)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L42-L48", + "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#25-28)which only takes arrays by value\n", + "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L39)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L25-L28)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L42-L48", "id": "019912974eabe7e8b1e67ca05b342e5106de13fa93fa0adf599a4259c425bd54", "check": "array-by-reference", "impact": "High", @@ -208,9 +208,9 @@ "source_mapping": { "start": 855, "length": 269, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 42, @@ -231,9 +231,9 @@ "source_mapping": { "start": 688, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -272,9 +272,9 @@ "source_mapping": { "start": 822, "length": 9, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 39 @@ -289,9 +289,9 @@ "source_mapping": { "start": 688, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -329,9 +329,9 @@ "source_mapping": { "start": 498, "length": 67, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 21, @@ -348,9 +348,9 @@ "source_mapping": { "start": 0, "length": 686, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -391,9 +391,9 @@ } } ], - "description": "D.f() (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#42-48) passes array D.x (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[D.f()](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L42-L48) passes array [D.x](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L39)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L42-L48", + "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#21-23)which only takes arrays by value\n", + "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L39)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L21-L23)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L42-L48", "id": "1520955a53c36e391abbaf648a91a5a12d432f0f4746b0a8187d0988a6a66846", "check": "array-by-reference", "impact": "High", @@ -407,9 +407,9 @@ "source_mapping": { "start": 40, "length": 167, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 4, @@ -428,9 +428,9 @@ "source_mapping": { "start": 0, "length": 686, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -476,9 +476,9 @@ "source_mapping": { "start": 17, "length": 16, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 2 @@ -493,9 +493,9 @@ "source_mapping": { "start": 0, "length": 686, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -540,9 +540,9 @@ "source_mapping": { "start": 498, "length": 67, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 21, @@ -559,9 +559,9 @@ "source_mapping": { "start": 0, "length": 686, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -602,9 +602,9 @@ } } ], - "description": "C.f() (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#4-8) passes array C.x (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.f()](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L4-L8) passes array [C.x](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L2)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L4-L8", + "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#21-23)which only takes arrays by value\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L2)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L21-L23)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L4-L8", "id": "79a462bf06ae529ad099f2170100298da30766fcc06884e03436d2b53110d208", "check": "array-by-reference", "impact": "High", @@ -618,9 +618,9 @@ "source_mapping": { "start": 40, "length": 167, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 4, @@ -639,9 +639,9 @@ "source_mapping": { "start": 0, "length": 686, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -687,9 +687,9 @@ "source_mapping": { "start": 17, "length": 16, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 2 @@ -704,9 +704,9 @@ "source_mapping": { "start": 0, "length": 686, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -751,9 +751,9 @@ "source_mapping": { "start": 571, "length": 113, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 25, @@ -771,9 +771,9 @@ "source_mapping": { "start": 0, "length": 686, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -814,9 +814,9 @@ } } ], - "description": "C.f() (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#4-8) passes array C.x (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.f()](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L4-L8) passes array [C.x](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L2)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L4-L8", + "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#25-28)which only takes arrays by value\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L2)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L25-L28)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L4-L8", "id": "7f1eda9be40002affd2e8e31d172d3ee3374f37b1106118c79f4add7a133bbd0", "check": "array-by-reference", "impact": "High", @@ -830,9 +830,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -852,9 +852,9 @@ "source_mapping": { "start": 0, "length": 686, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -900,9 +900,9 @@ "source_mapping": { "start": 243, "length": 21, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 11 @@ -917,9 +917,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -939,9 +939,9 @@ "source_mapping": { "start": 0, "length": 686, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -989,9 +989,9 @@ "source_mapping": { "start": 571, "length": 113, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 25, @@ -1009,9 +1009,9 @@ "source_mapping": { "start": 0, "length": 686, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1052,9 +1052,9 @@ } } ], - "description": "C.g() (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#10-15) passes array C.g().y (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.g()](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L11)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L10-L15", + "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#25-28)which only takes arrays by value\n", + "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L11)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L25-L28)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L10-L15", "id": "8655e8acd84a6e8152acd2d9730ea0dfdda0723e09b2dcbfdbbeb8da8bd04fa5", "check": "array-by-reference", "impact": "High", @@ -1068,9 +1068,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -1090,9 +1090,9 @@ "source_mapping": { "start": 0, "length": 686, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1138,9 +1138,9 @@ "source_mapping": { "start": 243, "length": 21, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 11 @@ -1155,9 +1155,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -1177,9 +1177,9 @@ "source_mapping": { "start": 0, "length": 686, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1227,9 +1227,9 @@ "source_mapping": { "start": 498, "length": 67, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 21, @@ -1246,9 +1246,9 @@ "source_mapping": { "start": 0, "length": 686, - "filename_relative": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1289,9 +1289,9 @@ } } ], - "description": "C.g() (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#10-15) passes array C.g().y (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.g()](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L11)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.4.25/array_by_reference.sol#L10-L15", + "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#21-23)which only takes arrays by value\n", + "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L11)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L21-L23)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L10-L15", "id": "d039169712808e785bf2e53f322c1c6fcd6b93a0a0c17f1a701addd09ed83996", "check": "array-by-reference", "impact": "High", diff --git a/tests/detectors/array-by-reference/0.5.16/array_by_reference.sol b/tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol similarity index 100% rename from tests/detectors/array-by-reference/0.5.16/array_by_reference.sol rename to tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol diff --git a/tests/detectors/array-by-reference/0.5.16/array_by_reference.sol.0.5.16.ArrayByReference.json b/tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol.0.5.16.ArrayByReference.json similarity index 76% rename from tests/detectors/array-by-reference/0.5.16/array_by_reference.sol.0.5.16.ArrayByReference.json rename to tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol.0.5.16.ArrayByReference.json index db06736f7..3b56351ab 100644 --- a/tests/detectors/array-by-reference/0.5.16/array_by_reference.sol.0.5.16.ArrayByReference.json +++ b/tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol.0.5.16.ArrayByReference.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 869, "length": 269, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 42, @@ -31,9 +31,9 @@ "source_mapping": { "start": 702, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -72,9 +72,9 @@ "source_mapping": { "start": 836, "length": 9, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 39 @@ -89,9 +89,9 @@ "source_mapping": { "start": 702, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -129,9 +129,9 @@ "source_mapping": { "start": 578, "length": 120, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 25, @@ -149,9 +149,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -192,9 +192,9 @@ } } ], - "description": "D.f() (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#42-48) passes array D.x (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[D.f()](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L42-L48) passes array [D.x](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L39)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L42-L48", + "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#25-28)which only takes arrays by value\n", + "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L39)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L25-L28)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L42-L48", "id": "019912974eabe7e8b1e67ca05b342e5106de13fa93fa0adf599a4259c425bd54", "check": "array-by-reference", "impact": "High", @@ -208,9 +208,9 @@ "source_mapping": { "start": 869, "length": 269, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 42, @@ -231,9 +231,9 @@ "source_mapping": { "start": 702, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -272,9 +272,9 @@ "source_mapping": { "start": 836, "length": 9, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 39 @@ -289,9 +289,9 @@ "source_mapping": { "start": 702, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -329,9 +329,9 @@ "source_mapping": { "start": 498, "length": 74, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 21, @@ -348,9 +348,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -391,9 +391,9 @@ } } ], - "description": "D.f() (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#42-48) passes array D.x (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[D.f()](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L42-L48) passes array [D.x](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L39)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L42-L48", + "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#21-23)which only takes arrays by value\n", + "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L39)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L21-L23)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L42-L48", "id": "1520955a53c36e391abbaf648a91a5a12d432f0f4746b0a8187d0988a6a66846", "check": "array-by-reference", "impact": "High", @@ -407,9 +407,9 @@ "source_mapping": { "start": 40, "length": 167, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 4, @@ -428,9 +428,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -476,9 +476,9 @@ "source_mapping": { "start": 17, "length": 16, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 2 @@ -493,9 +493,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -540,9 +540,9 @@ "source_mapping": { "start": 498, "length": 74, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 21, @@ -559,9 +559,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -602,9 +602,9 @@ } } ], - "description": "C.f() (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#4-8) passes array C.x (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.f()](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L4-L8) passes array [C.x](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L2)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L4-L8", + "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#21-23)which only takes arrays by value\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L2)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L21-L23)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L4-L8", "id": "79a462bf06ae529ad099f2170100298da30766fcc06884e03436d2b53110d208", "check": "array-by-reference", "impact": "High", @@ -618,9 +618,9 @@ "source_mapping": { "start": 40, "length": 167, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 4, @@ -639,9 +639,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -687,9 +687,9 @@ "source_mapping": { "start": 17, "length": 16, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 2 @@ -704,9 +704,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -751,9 +751,9 @@ "source_mapping": { "start": 578, "length": 120, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 25, @@ -771,9 +771,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -814,9 +814,9 @@ } } ], - "description": "C.f() (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#4-8) passes array C.x (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.f()](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L4-L8) passes array [C.x](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L2)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L4-L8", + "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#25-28)which only takes arrays by value\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L2)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L25-L28)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L4-L8", "id": "7f1eda9be40002affd2e8e31d172d3ee3374f37b1106118c79f4add7a133bbd0", "check": "array-by-reference", "impact": "High", @@ -830,9 +830,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -852,9 +852,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -900,9 +900,9 @@ "source_mapping": { "start": 243, "length": 21, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 11 @@ -917,9 +917,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -939,9 +939,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -989,9 +989,9 @@ "source_mapping": { "start": 578, "length": 120, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 25, @@ -1009,9 +1009,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1052,9 +1052,9 @@ } } ], - "description": "C.g() (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#10-15) passes array C.g().y (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.g()](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L11)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L10-L15", + "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#25-28)which only takes arrays by value\n", + "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L11)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L25-L28)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L10-L15", "id": "8655e8acd84a6e8152acd2d9730ea0dfdda0723e09b2dcbfdbbeb8da8bd04fa5", "check": "array-by-reference", "impact": "High", @@ -1068,9 +1068,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -1090,9 +1090,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1138,9 +1138,9 @@ "source_mapping": { "start": 243, "length": 21, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 11 @@ -1155,9 +1155,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -1177,9 +1177,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1227,9 +1227,9 @@ "source_mapping": { "start": 498, "length": 74, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 21, @@ -1246,9 +1246,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1289,9 +1289,9 @@ } } ], - "description": "C.g() (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#10-15) passes array C.g().y (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.g()](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L11)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.5.16/array_by_reference.sol#L10-L15", + "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#21-23)which only takes arrays by value\n", + "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L11)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L21-L23)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L10-L15", "id": "d039169712808e785bf2e53f322c1c6fcd6b93a0a0c17f1a701addd09ed83996", "check": "array-by-reference", "impact": "High", diff --git a/tests/detectors/array-by-reference/0.6.11/array_by_reference.sol b/tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol similarity index 100% rename from tests/detectors/array-by-reference/0.6.11/array_by_reference.sol rename to tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol diff --git a/tests/detectors/array-by-reference/0.6.11/array_by_reference.sol.0.6.11.ArrayByReference.json b/tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol.0.6.11.ArrayByReference.json similarity index 76% rename from tests/detectors/array-by-reference/0.6.11/array_by_reference.sol.0.6.11.ArrayByReference.json rename to tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol.0.6.11.ArrayByReference.json index 5cac825a3..c004a12aa 100644 --- a/tests/detectors/array-by-reference/0.6.11/array_by_reference.sol.0.6.11.ArrayByReference.json +++ b/tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol.0.6.11.ArrayByReference.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 869, "length": 269, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 42, @@ -31,9 +31,9 @@ "source_mapping": { "start": 702, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -72,9 +72,9 @@ "source_mapping": { "start": 836, "length": 9, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 39 @@ -89,9 +89,9 @@ "source_mapping": { "start": 702, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -129,9 +129,9 @@ "source_mapping": { "start": 578, "length": 120, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 25, @@ -149,9 +149,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -192,9 +192,9 @@ } } ], - "description": "D.f() (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#42-48) passes array D.x (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[D.f()](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L42-L48) passes array [D.x](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L39)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L42-L48", + "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#25-28)which only takes arrays by value\n", + "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L39)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L25-L28)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L42-L48", "id": "019912974eabe7e8b1e67ca05b342e5106de13fa93fa0adf599a4259c425bd54", "check": "array-by-reference", "impact": "High", @@ -208,9 +208,9 @@ "source_mapping": { "start": 869, "length": 269, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 42, @@ -231,9 +231,9 @@ "source_mapping": { "start": 702, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -272,9 +272,9 @@ "source_mapping": { "start": 836, "length": 9, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 39 @@ -289,9 +289,9 @@ "source_mapping": { "start": 702, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -329,9 +329,9 @@ "source_mapping": { "start": 498, "length": 74, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 21, @@ -348,9 +348,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -391,9 +391,9 @@ } } ], - "description": "D.f() (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#42-48) passes array D.x (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[D.f()](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L42-L48) passes array [D.x](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L39)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L42-L48", + "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#21-23)which only takes arrays by value\n", + "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L39)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L21-L23)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L42-L48", "id": "1520955a53c36e391abbaf648a91a5a12d432f0f4746b0a8187d0988a6a66846", "check": "array-by-reference", "impact": "High", @@ -407,9 +407,9 @@ "source_mapping": { "start": 40, "length": 167, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 4, @@ -428,9 +428,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -476,9 +476,9 @@ "source_mapping": { "start": 17, "length": 16, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 2 @@ -493,9 +493,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -540,9 +540,9 @@ "source_mapping": { "start": 498, "length": 74, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 21, @@ -559,9 +559,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -602,9 +602,9 @@ } } ], - "description": "C.f() (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#4-8) passes array C.x (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.f()](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L4-L8) passes array [C.x](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L2)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L4-L8", + "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#21-23)which only takes arrays by value\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L2)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L21-L23)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L4-L8", "id": "79a462bf06ae529ad099f2170100298da30766fcc06884e03436d2b53110d208", "check": "array-by-reference", "impact": "High", @@ -618,9 +618,9 @@ "source_mapping": { "start": 40, "length": 167, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 4, @@ -639,9 +639,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -687,9 +687,9 @@ "source_mapping": { "start": 17, "length": 16, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 2 @@ -704,9 +704,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -751,9 +751,9 @@ "source_mapping": { "start": 578, "length": 120, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 25, @@ -771,9 +771,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -814,9 +814,9 @@ } } ], - "description": "C.f() (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#4-8) passes array C.x (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.f()](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L4-L8) passes array [C.x](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L2)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L4-L8", + "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#25-28)which only takes arrays by value\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L2)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L25-L28)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L4-L8", "id": "7f1eda9be40002affd2e8e31d172d3ee3374f37b1106118c79f4add7a133bbd0", "check": "array-by-reference", "impact": "High", @@ -830,9 +830,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -852,9 +852,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -900,9 +900,9 @@ "source_mapping": { "start": 243, "length": 21, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 11 @@ -917,9 +917,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -939,9 +939,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -989,9 +989,9 @@ "source_mapping": { "start": 578, "length": 120, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 25, @@ -1009,9 +1009,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1052,9 +1052,9 @@ } } ], - "description": "C.g() (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#10-15) passes array C.g().y (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.g()](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L11)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L10-L15", + "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#25-28)which only takes arrays by value\n", + "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L11)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L25-L28)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L10-L15", "id": "8655e8acd84a6e8152acd2d9730ea0dfdda0723e09b2dcbfdbbeb8da8bd04fa5", "check": "array-by-reference", "impact": "High", @@ -1068,9 +1068,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -1090,9 +1090,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1138,9 +1138,9 @@ "source_mapping": { "start": 243, "length": 21, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 11 @@ -1155,9 +1155,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -1177,9 +1177,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1227,9 +1227,9 @@ "source_mapping": { "start": 498, "length": 74, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 21, @@ -1246,9 +1246,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1289,9 +1289,9 @@ } } ], - "description": "C.g() (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#10-15) passes array C.g().y (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.g()](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L11)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.6.11/array_by_reference.sol#L10-L15", + "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#21-23)which only takes arrays by value\n", + "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L11)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L21-L23)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L10-L15", "id": "d039169712808e785bf2e53f322c1c6fcd6b93a0a0c17f1a701addd09ed83996", "check": "array-by-reference", "impact": "High", diff --git a/tests/detectors/array-by-reference/0.7.6/array_by_reference.sol b/tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol similarity index 100% rename from tests/detectors/array-by-reference/0.7.6/array_by_reference.sol rename to tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol diff --git a/tests/detectors/array-by-reference/0.7.6/array_by_reference.sol.0.7.6.ArrayByReference.json b/tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol.0.7.6.ArrayByReference.json similarity index 76% rename from tests/detectors/array-by-reference/0.7.6/array_by_reference.sol.0.7.6.ArrayByReference.json rename to tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol.0.7.6.ArrayByReference.json index 571870ade..9ed9b8ac8 100644 --- a/tests/detectors/array-by-reference/0.7.6/array_by_reference.sol.0.7.6.ArrayByReference.json +++ b/tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol.0.7.6.ArrayByReference.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 869, "length": 269, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 42, @@ -31,9 +31,9 @@ "source_mapping": { "start": 702, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -72,9 +72,9 @@ "source_mapping": { "start": 836, "length": 9, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 39 @@ -89,9 +89,9 @@ "source_mapping": { "start": 702, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -129,9 +129,9 @@ "source_mapping": { "start": 578, "length": 120, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 25, @@ -149,9 +149,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -192,9 +192,9 @@ } } ], - "description": "D.f() (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#42-48) passes array D.x (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[D.f()](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L42-L48) passes array [D.x](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L39)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L42-L48", + "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#25-28)which only takes arrays by value\n", + "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L39)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L25-L28)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L42-L48", "id": "019912974eabe7e8b1e67ca05b342e5106de13fa93fa0adf599a4259c425bd54", "check": "array-by-reference", "impact": "High", @@ -208,9 +208,9 @@ "source_mapping": { "start": 869, "length": 269, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 42, @@ -231,9 +231,9 @@ "source_mapping": { "start": 702, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -272,9 +272,9 @@ "source_mapping": { "start": 836, "length": 9, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 39 @@ -289,9 +289,9 @@ "source_mapping": { "start": 702, "length": 440, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 31, @@ -329,9 +329,9 @@ "source_mapping": { "start": 498, "length": 74, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 21, @@ -348,9 +348,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -391,9 +391,9 @@ } } ], - "description": "D.f() (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#42-48) passes array D.x (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[D.f()](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L42-L48) passes array [D.x](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L39)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L42-L48", + "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#21-23)which only takes arrays by value\n", + "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L39)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L21-L23)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L42-L48", "id": "1520955a53c36e391abbaf648a91a5a12d432f0f4746b0a8187d0988a6a66846", "check": "array-by-reference", "impact": "High", @@ -407,9 +407,9 @@ "source_mapping": { "start": 40, "length": 167, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 4, @@ -428,9 +428,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -476,9 +476,9 @@ "source_mapping": { "start": 17, "length": 16, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 2 @@ -493,9 +493,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -540,9 +540,9 @@ "source_mapping": { "start": 498, "length": 74, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 21, @@ -559,9 +559,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -602,9 +602,9 @@ } } ], - "description": "C.f() (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#4-8) passes array C.x (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.f()](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L4-L8) passes array [C.x](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L2)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L4-L8", + "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#21-23)which only takes arrays by value\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L2)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L21-L23)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L4-L8", "id": "79a462bf06ae529ad099f2170100298da30766fcc06884e03436d2b53110d208", "check": "array-by-reference", "impact": "High", @@ -618,9 +618,9 @@ "source_mapping": { "start": 40, "length": 167, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 4, @@ -639,9 +639,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -687,9 +687,9 @@ "source_mapping": { "start": 17, "length": 16, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 2 @@ -704,9 +704,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -751,9 +751,9 @@ "source_mapping": { "start": 578, "length": 120, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 25, @@ -771,9 +771,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -814,9 +814,9 @@ } } ], - "description": "C.f() (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#4-8) passes array C.x (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.f()](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L4-L8) passes array [C.x](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L2)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L4-L8", + "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#25-28)which only takes arrays by value\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L2)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L25-L28)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L4-L8", "id": "7f1eda9be40002affd2e8e31d172d3ee3374f37b1106118c79f4add7a133bbd0", "check": "array-by-reference", "impact": "High", @@ -830,9 +830,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -852,9 +852,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -900,9 +900,9 @@ "source_mapping": { "start": 243, "length": 21, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 11 @@ -917,9 +917,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -939,9 +939,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -989,9 +989,9 @@ "source_mapping": { "start": 578, "length": 120, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 25, @@ -1009,9 +1009,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1052,9 +1052,9 @@ } } ], - "description": "C.g() (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#10-15) passes array C.g().y (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.g()](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L11)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L10-L15", + "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#25-28)which only takes arrays by value\n", + "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L11)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L25-L28)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L10-L15", "id": "8655e8acd84a6e8152acd2d9730ea0dfdda0723e09b2dcbfdbbeb8da8bd04fa5", "check": "array-by-reference", "impact": "High", @@ -1068,9 +1068,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -1090,9 +1090,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1138,9 +1138,9 @@ "source_mapping": { "start": 243, "length": 21, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 11 @@ -1155,9 +1155,9 @@ "source_mapping": { "start": 213, "length": 198, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 10, @@ -1177,9 +1177,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1227,9 +1227,9 @@ "source_mapping": { "start": 498, "length": 74, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 21, @@ -1246,9 +1246,9 @@ "source_mapping": { "start": 0, "length": 700, - "filename_relative": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol", + "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", "is_dependency": false, "lines": [ 1, @@ -1289,9 +1289,9 @@ } } ], - "description": "C.g() (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#10-15) passes array C.g().y (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.g()](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L11)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/detectors/array-by-reference/0.7.6/array_by_reference.sol#L10-L15", + "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#21-23)which only takes arrays by value\n", + "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L11)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L21-L23)which only takes arrays by value\n", + "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L10-L15", "id": "d039169712808e785bf2e53f322c1c6fcd6b93a0a0c17f1a701addd09ed83996", "check": "array-by-reference", "impact": "High", diff --git a/tests/detectors/assembly/0.4.25/inline_assembly_contract.sol b/tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol similarity index 100% rename from tests/detectors/assembly/0.4.25/inline_assembly_contract.sol rename to tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol diff --git a/tests/detectors/assembly/0.4.25/inline_assembly_contract.sol.0.4.25.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol.0.4.25.Assembly.json similarity index 78% rename from tests/detectors/assembly/0.4.25/inline_assembly_contract.sol.0.4.25.Assembly.json rename to tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol.0.4.25.Assembly.json index df189604b..586412476 100644 --- a/tests/detectors/assembly/0.4.25/inline_assembly_contract.sol.0.4.25.Assembly.json +++ b/tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol.0.4.25.Assembly.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 119, "length": 700, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 6, @@ -39,9 +39,9 @@ "source_mapping": { "start": 97, "length": 724, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 5, @@ -75,9 +75,9 @@ "source_mapping": { "start": 191, "length": 628, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 7, @@ -105,9 +105,9 @@ "source_mapping": { "start": 119, "length": 700, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 6, @@ -136,9 +136,9 @@ "source_mapping": { "start": 97, "length": 724, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 5, @@ -169,10 +169,10 @@ } } ], - "description": "GetCode.at(address) (tests/detectors/assembly/0.4.25/inline_assembly_contract.sol#6-20) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/0.4.25/inline_assembly_contract.sol#7-20)\n", - "markdown": "[GetCode.at(address)](tests/detectors/assembly/0.4.25/inline_assembly_contract.sol#L6-L20) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/0.4.25/inline_assembly_contract.sol#L7-L20)\n", - "first_markdown_element": "tests/detectors/assembly/0.4.25/inline_assembly_contract.sol#L6-L20", - "id": "37ca62e9af93d1648d3a1aa845426ec5395eab836277e3a8baa52621bf1df7c3", + "description": "GetCode.at(address) (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol#6-20) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol#7-20)\n", + "markdown": "[GetCode.at(address)](tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol#L6-L20) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol#L7-L20)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol#L6-L20", + "id": "a5eefe2a5488a11d79ceabd14aa54ce8edc1de512b733d39c25a38909a64bcf6", "check": "assembly", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/assembly/0.4.25/inline_assembly_library.sol b/tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol similarity index 100% rename from tests/detectors/assembly/0.4.25/inline_assembly_library.sol rename to tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol diff --git a/tests/detectors/assembly/0.4.25/inline_assembly_library.sol.0.4.25.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol.0.4.25.Assembly.json similarity index 83% rename from tests/detectors/assembly/0.4.25/inline_assembly_library.sol.0.4.25.Assembly.json rename to tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol.0.4.25.Assembly.json index 23e574e22..1e398fdb9 100644 --- a/tests/detectors/assembly/0.4.25/inline_assembly_library.sol.0.4.25.Assembly.json +++ b/tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol.0.4.25.Assembly.json @@ -4,22 +4,38 @@ "elements": [ { "type": "function", - "name": "sumAsm", + "name": "sumPureAsm", "source_mapping": { - "start": 593, - "length": 247, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "start": 923, + "length": 754, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 ], "starting_column": 5, "ending_column": 6 @@ -31,9 +47,9 @@ "source_mapping": { "start": 98, "length": 1581, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "is_dependency": false, "lines": [ 5, @@ -85,47 +101,81 @@ "ending_column": 2 } }, - "signature": "sumAsm(uint256[])" + "signature": "sumPureAsm(uint256[])" } }, { "type": "node", "name": "", "source_mapping": { - "start": 720, - "length": 114, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "start": 1000, + "length": 677, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 18, - 19, - 20, - 21 + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 ], - "starting_column": 13, - "ending_column": 10 + "starting_column": 9, + "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "function", - "name": "sumAsm", + "name": "sumPureAsm", "source_mapping": { - "start": 593, - "length": 247, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "start": 923, + "length": 754, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 ], "starting_column": 5, "ending_column": 6 @@ -137,9 +187,9 @@ "source_mapping": { "start": 98, "length": 1581, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "is_dependency": false, "lines": [ 5, @@ -191,16 +241,16 @@ "ending_column": 2 } }, - "signature": "sumAsm(uint256[])" + "signature": "sumPureAsm(uint256[])" } } } } ], - "description": "VectorSum.sumAsm(uint256[]) (tests/detectors/assembly/0.4.25/inline_assembly_library.sol#16-22) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/0.4.25/inline_assembly_library.sol#18-21)\n", - "markdown": "[VectorSum.sumAsm(uint256[])](tests/detectors/assembly/0.4.25/inline_assembly_library.sol#L16-L22) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/0.4.25/inline_assembly_library.sol#L18-L21)\n", - "first_markdown_element": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol#L16-L22", - "id": "7009ef6498fa29901fbf3e9e1971a19f6fa48c87be3b2592c632e05a4321e1d3", + "description": "VectorSum.sumPureAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#25-47) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#26-47)\n", + "markdown": "[VectorSum.sumPureAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#L25-L47) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#L26-L47)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#L25-L47", + "id": "31db8c5aa923499030eeaff5c0eb368570cb2e9e497a982b5325ded49b9ed6b9", "check": "assembly", "impact": "Informational", "confidence": "High" @@ -209,38 +259,22 @@ "elements": [ { "type": "function", - "name": "sumPureAsm", + "name": "sumAsm", "source_mapping": { - "start": 923, - "length": 754, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "start": 593, + "length": 247, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -252,9 +286,9 @@ "source_mapping": { "start": 98, "length": 1581, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "is_dependency": false, "lines": [ 5, @@ -306,81 +340,47 @@ "ending_column": 2 } }, - "signature": "sumPureAsm(uint256[])" + "signature": "sumAsm(uint256[])" } }, { "type": "node", "name": "", "source_mapping": { - "start": 1000, - "length": 677, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "start": 720, + "length": 114, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 + 18, + 19, + 20, + 21 ], - "starting_column": 9, - "ending_column": 6 + "starting_column": 13, + "ending_column": 10 }, "type_specific_fields": { "parent": { "type": "function", - "name": "sumPureAsm", + "name": "sumAsm", "source_mapping": { - "start": 923, - "length": 754, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "start": 593, + "length": 247, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -392,9 +392,9 @@ "source_mapping": { "start": 98, "length": 1581, - "filename_relative": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", "is_dependency": false, "lines": [ 5, @@ -446,16 +446,16 @@ "ending_column": 2 } }, - "signature": "sumPureAsm(uint256[])" + "signature": "sumAsm(uint256[])" } } } } ], - "description": "VectorSum.sumPureAsm(uint256[]) (tests/detectors/assembly/0.4.25/inline_assembly_library.sol#25-47) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/0.4.25/inline_assembly_library.sol#26-47)\n", - "markdown": "[VectorSum.sumPureAsm(uint256[])](tests/detectors/assembly/0.4.25/inline_assembly_library.sol#L25-L47) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/0.4.25/inline_assembly_library.sol#L26-L47)\n", - "first_markdown_element": "tests/detectors/assembly/0.4.25/inline_assembly_library.sol#L25-L47", - "id": "e6c5e2eab9e98c206f4092988fc006a6333e737680610667cba168fe739a3cf6", + "description": "VectorSum.sumAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#16-22) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#18-21)\n", + "markdown": "[VectorSum.sumAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#L16-L22) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#L18-L21)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#L16-L22", + "id": "a5b0d4efa6e09d7f5c00cc759efb20a0f423ad31277f4362952371e2e7f03b78", "check": "assembly", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/assembly/0.5.16/inline_assembly_contract.sol b/tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol similarity index 100% rename from tests/detectors/assembly/0.5.16/inline_assembly_contract.sol rename to tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol diff --git a/tests/detectors/assembly/0.5.16/inline_assembly_contract.sol.0.5.16.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol.0.5.16.Assembly.json similarity index 78% rename from tests/detectors/assembly/0.5.16/inline_assembly_contract.sol.0.5.16.Assembly.json rename to tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol.0.5.16.Assembly.json index 78dd0929c..3a129af92 100644 --- a/tests/detectors/assembly/0.5.16/inline_assembly_contract.sol.0.5.16.Assembly.json +++ b/tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol.0.5.16.Assembly.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 119, "length": 707, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 6, @@ -39,9 +39,9 @@ "source_mapping": { "start": 97, "length": 731, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 5, @@ -75,9 +75,9 @@ "source_mapping": { "start": 198, "length": 622, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 7, @@ -104,9 +104,9 @@ "source_mapping": { "start": 119, "length": 707, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 6, @@ -135,9 +135,9 @@ "source_mapping": { "start": 97, "length": 731, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 5, @@ -168,10 +168,10 @@ } } ], - "description": "GetCode.at(address) (tests/detectors/assembly/0.5.16/inline_assembly_contract.sol#6-20) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/0.5.16/inline_assembly_contract.sol#7-19)\n", - "markdown": "[GetCode.at(address)](tests/detectors/assembly/0.5.16/inline_assembly_contract.sol#L6-L20) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/0.5.16/inline_assembly_contract.sol#L7-L19)\n", - "first_markdown_element": "tests/detectors/assembly/0.5.16/inline_assembly_contract.sol#L6-L20", - "id": "ac5f8f89c2d7459785200d5d861616e04a1bbcfbb2a39cef8bef6a03222c7c21", + "description": "GetCode.at(address) (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol#6-20) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol#7-19)\n", + "markdown": "[GetCode.at(address)](tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol#L6-L20) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol#L7-L19)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol#L6-L20", + "id": "7e730dca96d8dd17fdd704eb383af584599385cf12fd7a6d70c64fca8a0c49d5", "check": "assembly", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/assembly/0.5.16/inline_assembly_library.sol b/tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol similarity index 100% rename from tests/detectors/assembly/0.5.16/inline_assembly_library.sol rename to tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol diff --git a/tests/detectors/assembly/0.5.16/inline_assembly_library.sol.0.5.16.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol.0.5.16.Assembly.json similarity index 83% rename from tests/detectors/assembly/0.5.16/inline_assembly_library.sol.0.5.16.Assembly.json rename to tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol.0.5.16.Assembly.json index 5c5045dce..4c2c748f6 100644 --- a/tests/detectors/assembly/0.5.16/inline_assembly_library.sol.0.5.16.Assembly.json +++ b/tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol.0.5.16.Assembly.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 599, "length": 254, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "is_dependency": false, "lines": [ 16, @@ -31,9 +31,9 @@ "source_mapping": { "start": 97, "length": 1602, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "is_dependency": false, "lines": [ 5, @@ -94,9 +94,9 @@ "source_mapping": { "start": 733, "length": 104, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "is_dependency": false, "lines": [ 18, @@ -113,9 +113,9 @@ "source_mapping": { "start": 599, "length": 254, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "is_dependency": false, "lines": [ 16, @@ -136,9 +136,9 @@ "source_mapping": { "start": 97, "length": 1602, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "is_dependency": false, "lines": [ 5, @@ -196,10 +196,10 @@ } } ], - "description": "VectorSum.sumAsm(uint256[]) (tests/detectors/assembly/0.5.16/inline_assembly_library.sol#16-22) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/0.5.16/inline_assembly_library.sol#18-20)\n", - "markdown": "[VectorSum.sumAsm(uint256[])](tests/detectors/assembly/0.5.16/inline_assembly_library.sol#L16-L22) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/0.5.16/inline_assembly_library.sol#L18-L20)\n", - "first_markdown_element": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol#L16-L22", - "id": "abf9dce26719358da77702aa40f23104cc83044d0b1cffb492e318360fb72b6f", + "description": "VectorSum.sumAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#16-22) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#18-20)\n", + "markdown": "[VectorSum.sumAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#L16-L22) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#L18-L20)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#L16-L22", + "id": "aad9895206cb105eedd9a8327006b68c94866521e678fe76a905398370db9c6c", "check": "assembly", "impact": "Informational", "confidence": "High" @@ -212,9 +212,9 @@ "source_mapping": { "start": 936, "length": 761, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "is_dependency": false, "lines": [ 25, @@ -251,9 +251,9 @@ "source_mapping": { "start": 97, "length": 1602, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "is_dependency": false, "lines": [ 5, @@ -314,9 +314,9 @@ "source_mapping": { "start": 1020, "length": 671, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "is_dependency": false, "lines": [ 26, @@ -351,9 +351,9 @@ "source_mapping": { "start": 936, "length": 761, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "is_dependency": false, "lines": [ 25, @@ -390,9 +390,9 @@ "source_mapping": { "start": 97, "length": 1602, - "filename_relative": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", "is_dependency": false, "lines": [ 5, @@ -450,10 +450,10 @@ } } ], - "description": "VectorSum.sumPureAsm(uint256[]) (tests/detectors/assembly/0.5.16/inline_assembly_library.sol#25-47) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/0.5.16/inline_assembly_library.sol#26-46)\n", - "markdown": "[VectorSum.sumPureAsm(uint256[])](tests/detectors/assembly/0.5.16/inline_assembly_library.sol#L25-L47) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/0.5.16/inline_assembly_library.sol#L26-L46)\n", - "first_markdown_element": "tests/detectors/assembly/0.5.16/inline_assembly_library.sol#L25-L47", - "id": "c0078585e7d2fe02dda5ea48ddb48b40916db51afbee078f77bea648d1aa0315", + "description": "VectorSum.sumPureAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#25-47) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#26-46)\n", + "markdown": "[VectorSum.sumPureAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#L25-L47) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#L26-L46)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#L25-L47", + "id": "d7f5f72e9eb7d7421e9b2dee649d13448ca39c59a5c1150e158e6101e14a4c7d", "check": "assembly", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/assembly/0.6.11/inline_assembly_contract.sol b/tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol similarity index 100% rename from tests/detectors/assembly/0.6.11/inline_assembly_contract.sol rename to tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol diff --git a/tests/detectors/assembly/0.6.11/inline_assembly_contract.sol.0.6.11.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol.0.6.11.Assembly.json similarity index 78% rename from tests/detectors/assembly/0.6.11/inline_assembly_contract.sol.0.6.11.Assembly.json rename to tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol.0.6.11.Assembly.json index c9f88cdc7..fde8557cc 100644 --- a/tests/detectors/assembly/0.6.11/inline_assembly_contract.sol.0.6.11.Assembly.json +++ b/tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol.0.6.11.Assembly.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 94, "length": 707, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 4, @@ -39,9 +39,9 @@ "source_mapping": { "start": 72, "length": 731, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 3, @@ -75,9 +75,9 @@ "source_mapping": { "start": 173, "length": 622, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 5, @@ -104,9 +104,9 @@ "source_mapping": { "start": 94, "length": 707, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 4, @@ -135,9 +135,9 @@ "source_mapping": { "start": 72, "length": 731, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 3, @@ -168,10 +168,10 @@ } } ], - "description": "GetCode.at(address) (tests/detectors/assembly/0.6.11/inline_assembly_contract.sol#4-18) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/0.6.11/inline_assembly_contract.sol#5-17)\n", - "markdown": "[GetCode.at(address)](tests/detectors/assembly/0.6.11/inline_assembly_contract.sol#L4-L18) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/0.6.11/inline_assembly_contract.sol#L5-L17)\n", - "first_markdown_element": "tests/detectors/assembly/0.6.11/inline_assembly_contract.sol#L4-L18", - "id": "00e51f7f223289ebaad73cd6e77329b37ff5be360d9a682614cb6b72b8e3d9b4", + "description": "GetCode.at(address) (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol#4-18) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol#5-17)\n", + "markdown": "[GetCode.at(address)](tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol#L4-L18) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol#L5-L17)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol#L4-L18", + "id": "9ac1d15ba6758a010743a284c8db880d40b6a09a41e814ec89808c20ae33bd53", "check": "assembly", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/assembly/0.6.11/inline_assembly_library.sol b/tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol similarity index 100% rename from tests/detectors/assembly/0.6.11/inline_assembly_library.sol rename to tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol diff --git a/tests/detectors/assembly/0.6.11/inline_assembly_library.sol.0.6.11.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol.0.6.11.Assembly.json similarity index 83% rename from tests/detectors/assembly/0.6.11/inline_assembly_library.sol.0.6.11.Assembly.json rename to tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol.0.6.11.Assembly.json index 755e33a76..8844c8efa 100644 --- a/tests/detectors/assembly/0.6.11/inline_assembly_library.sol.0.6.11.Assembly.json +++ b/tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol.0.6.11.Assembly.json @@ -4,38 +4,22 @@ "elements": [ { "type": "function", - "name": "sumPureAsm", + "name": "sumAsm", "source_mapping": { - "start": 911, - "length": 761, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "start": 574, + "length": 254, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 + 14, + 15, + 16, + 17, + 18, + 19, + 20 ], "starting_column": 5, "ending_column": 6 @@ -47,9 +31,9 @@ "source_mapping": { "start": 72, "length": 1602, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "is_dependency": false, "lines": [ 3, @@ -101,80 +85,46 @@ "ending_column": 2 } }, - "signature": "sumPureAsm(uint256[])" + "signature": "sumAsm(uint256[])" } }, { "type": "node", "name": "", "source_mapping": { - "start": 995, - "length": 671, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "start": 708, + "length": 104, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 + 16, + 17, + 18 ], - "starting_column": 9, - "ending_column": 10 + "starting_column": 13, + "ending_column": 14 }, "type_specific_fields": { "parent": { "type": "function", - "name": "sumPureAsm", + "name": "sumAsm", "source_mapping": { - "start": 911, - "length": 761, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "start": 574, + "length": 254, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 + 14, + 15, + 16, + 17, + 18, + 19, + 20 ], "starting_column": 5, "ending_column": 6 @@ -186,9 +136,9 @@ "source_mapping": { "start": 72, "length": 1602, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "is_dependency": false, "lines": [ 3, @@ -240,16 +190,16 @@ "ending_column": 2 } }, - "signature": "sumPureAsm(uint256[])" + "signature": "sumAsm(uint256[])" } } } } ], - "description": "VectorSum.sumPureAsm(uint256[]) (tests/detectors/assembly/0.6.11/inline_assembly_library.sol#23-45) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/0.6.11/inline_assembly_library.sol#24-44)\n", - "markdown": "[VectorSum.sumPureAsm(uint256[])](tests/detectors/assembly/0.6.11/inline_assembly_library.sol#L23-L45) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/0.6.11/inline_assembly_library.sol#L24-L44)\n", - "first_markdown_element": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol#L23-L45", - "id": "5964c7440a9efb78bf78544bcdc60c789e3d9dff73438108bcb07ac98d60876a", + "description": "VectorSum.sumAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#14-20) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#16-18)\n", + "markdown": "[VectorSum.sumAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#L14-L20) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#L16-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#L14-L20", + "id": "3a556efa86f5a82c92e78104a1aeba089a5af8401b31e183c798c3db5f8a35c1", "check": "assembly", "impact": "Informational", "confidence": "High" @@ -258,22 +208,38 @@ "elements": [ { "type": "function", - "name": "sumAsm", + "name": "sumPureAsm", "source_mapping": { - "start": 574, - "length": 254, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "start": 911, + "length": 761, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20 + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -285,9 +251,9 @@ "source_mapping": { "start": 72, "length": 1602, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "is_dependency": false, "lines": [ 3, @@ -339,46 +305,80 @@ "ending_column": 2 } }, - "signature": "sumAsm(uint256[])" + "signature": "sumPureAsm(uint256[])" } }, { "type": "node", "name": "", "source_mapping": { - "start": 708, - "length": 104, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "start": 995, + "length": 671, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18 + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 ], - "starting_column": 13, - "ending_column": 14 + "starting_column": 9, + "ending_column": 10 }, "type_specific_fields": { "parent": { "type": "function", - "name": "sumAsm", + "name": "sumPureAsm", "source_mapping": { - "start": 574, - "length": 254, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "start": 911, + "length": 761, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20 + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -390,9 +390,9 @@ "source_mapping": { "start": 72, "length": 1602, - "filename_relative": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", "is_dependency": false, "lines": [ 3, @@ -444,16 +444,16 @@ "ending_column": 2 } }, - "signature": "sumAsm(uint256[])" + "signature": "sumPureAsm(uint256[])" } } } } ], - "description": "VectorSum.sumAsm(uint256[]) (tests/detectors/assembly/0.6.11/inline_assembly_library.sol#14-20) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/0.6.11/inline_assembly_library.sol#16-18)\n", - "markdown": "[VectorSum.sumAsm(uint256[])](tests/detectors/assembly/0.6.11/inline_assembly_library.sol#L14-L20) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/0.6.11/inline_assembly_library.sol#L16-L18)\n", - "first_markdown_element": "tests/detectors/assembly/0.6.11/inline_assembly_library.sol#L14-L20", - "id": "a8d71513166310212c49c4edecbdf8fbc3040b1cb5b5756f0ad1971ae7d4cdb1", + "description": "VectorSum.sumPureAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#23-45) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#24-44)\n", + "markdown": "[VectorSum.sumPureAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#L23-L45) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#L24-L44)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#L23-L45", + "id": "8bb9c27f9e5cc1884401e4b4157b915e950ab4d2b7610b0e946ab4dd0bb5ef0b", "check": "assembly", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/assembly/0.7.6/inline_assembly_contract.sol b/tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol similarity index 100% rename from tests/detectors/assembly/0.7.6/inline_assembly_contract.sol rename to tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol diff --git a/tests/detectors/assembly/0.7.6/inline_assembly_contract.sol.0.7.6.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol.0.7.6.Assembly.json similarity index 78% rename from tests/detectors/assembly/0.7.6/inline_assembly_contract.sol.0.7.6.Assembly.json rename to tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol.0.7.6.Assembly.json index 44096ea47..60cf11f34 100644 --- a/tests/detectors/assembly/0.7.6/inline_assembly_contract.sol.0.7.6.Assembly.json +++ b/tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol.0.7.6.Assembly.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 94, "length": 707, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 4, @@ -39,9 +39,9 @@ "source_mapping": { "start": 72, "length": 731, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 3, @@ -75,9 +75,9 @@ "source_mapping": { "start": 173, "length": 622, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 5, @@ -104,9 +104,9 @@ "source_mapping": { "start": 94, "length": 707, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 4, @@ -135,9 +135,9 @@ "source_mapping": { "start": 72, "length": 731, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_contract.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_contract.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", "is_dependency": false, "lines": [ 3, @@ -168,10 +168,10 @@ } } ], - "description": "GetCode.at(address) (tests/detectors/assembly/0.7.6/inline_assembly_contract.sol#4-18) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/0.7.6/inline_assembly_contract.sol#5-17)\n", - "markdown": "[GetCode.at(address)](tests/detectors/assembly/0.7.6/inline_assembly_contract.sol#L4-L18) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/0.7.6/inline_assembly_contract.sol#L5-L17)\n", - "first_markdown_element": "tests/detectors/assembly/0.7.6/inline_assembly_contract.sol#L4-L18", - "id": "3b2ace4ab64f4fdd4436ae22d38a7db3efe8d2b65dca270af7fb18f281323670", + "description": "GetCode.at(address) (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol#4-18) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol#5-17)\n", + "markdown": "[GetCode.at(address)](tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol#L4-L18) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol#L5-L17)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol#L4-L18", + "id": "8572a4fe623eebe88b13623bb1b58a261447fbf761f30bca58f0401703257883", "check": "assembly", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/assembly/0.7.6/inline_assembly_library.sol b/tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol similarity index 100% rename from tests/detectors/assembly/0.7.6/inline_assembly_library.sol rename to tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol diff --git a/tests/detectors/assembly/0.7.6/inline_assembly_library.sol.0.7.6.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol.0.7.6.Assembly.json similarity index 83% rename from tests/detectors/assembly/0.7.6/inline_assembly_library.sol.0.7.6.Assembly.json rename to tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol.0.7.6.Assembly.json index ca7efe695..361640626 100644 --- a/tests/detectors/assembly/0.7.6/inline_assembly_library.sol.0.7.6.Assembly.json +++ b/tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol.0.7.6.Assembly.json @@ -4,38 +4,22 @@ "elements": [ { "type": "function", - "name": "sumPureAsm", + "name": "sumAsm", "source_mapping": { - "start": 911, - "length": 761, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "start": 574, + "length": 254, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 + 14, + 15, + 16, + 17, + 18, + 19, + 20 ], "starting_column": 5, "ending_column": 6 @@ -47,9 +31,9 @@ "source_mapping": { "start": 72, "length": 1602, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "is_dependency": false, "lines": [ 3, @@ -101,80 +85,46 @@ "ending_column": 2 } }, - "signature": "sumPureAsm(uint256[])" + "signature": "sumAsm(uint256[])" } }, { "type": "node", "name": "", "source_mapping": { - "start": 995, - "length": 671, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "start": 708, + "length": 104, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 + 16, + 17, + 18 ], - "starting_column": 9, - "ending_column": 10 + "starting_column": 13, + "ending_column": 14 }, "type_specific_fields": { "parent": { "type": "function", - "name": "sumPureAsm", + "name": "sumAsm", "source_mapping": { - "start": 911, - "length": 761, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "start": 574, + "length": 254, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 + 14, + 15, + 16, + 17, + 18, + 19, + 20 ], "starting_column": 5, "ending_column": 6 @@ -186,9 +136,9 @@ "source_mapping": { "start": 72, "length": 1602, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "is_dependency": false, "lines": [ 3, @@ -240,16 +190,16 @@ "ending_column": 2 } }, - "signature": "sumPureAsm(uint256[])" + "signature": "sumAsm(uint256[])" } } } } ], - "description": "VectorSum.sumPureAsm(uint256[]) (tests/detectors/assembly/0.7.6/inline_assembly_library.sol#23-45) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/0.7.6/inline_assembly_library.sol#24-44)\n", - "markdown": "[VectorSum.sumPureAsm(uint256[])](tests/detectors/assembly/0.7.6/inline_assembly_library.sol#L23-L45) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/0.7.6/inline_assembly_library.sol#L24-L44)\n", - "first_markdown_element": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol#L23-L45", - "id": "5cafb3e9d7d87c17203cf2c296eeec7de6b774b2a8d71908f8cfc9b8d916cb4b", + "description": "VectorSum.sumAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#14-20) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#16-18)\n", + "markdown": "[VectorSum.sumAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#L14-L20) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#L16-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#L14-L20", + "id": "01781f60fc7e3b09baa45df51cea8cb01176741056315ec6b32be610b0e4f27f", "check": "assembly", "impact": "Informational", "confidence": "High" @@ -258,22 +208,38 @@ "elements": [ { "type": "function", - "name": "sumAsm", + "name": "sumPureAsm", "source_mapping": { - "start": 574, - "length": 254, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "start": 911, + "length": 761, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20 + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -285,9 +251,9 @@ "source_mapping": { "start": 72, "length": 1602, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "is_dependency": false, "lines": [ 3, @@ -339,46 +305,80 @@ "ending_column": 2 } }, - "signature": "sumAsm(uint256[])" + "signature": "sumPureAsm(uint256[])" } }, { "type": "node", "name": "", "source_mapping": { - "start": 708, - "length": 104, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "start": 995, + "length": 671, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18 + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 ], - "starting_column": 13, - "ending_column": 14 + "starting_column": 9, + "ending_column": 10 }, "type_specific_fields": { "parent": { "type": "function", - "name": "sumAsm", + "name": "sumPureAsm", "source_mapping": { - "start": 574, - "length": 254, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "start": 911, + "length": 761, + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20 + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -390,9 +390,9 @@ "source_mapping": { "start": 72, "length": 1602, - "filename_relative": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol", + "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", "is_dependency": false, "lines": [ 3, @@ -444,16 +444,16 @@ "ending_column": 2 } }, - "signature": "sumAsm(uint256[])" + "signature": "sumPureAsm(uint256[])" } } } } ], - "description": "VectorSum.sumAsm(uint256[]) (tests/detectors/assembly/0.7.6/inline_assembly_library.sol#14-20) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/0.7.6/inline_assembly_library.sol#16-18)\n", - "markdown": "[VectorSum.sumAsm(uint256[])](tests/detectors/assembly/0.7.6/inline_assembly_library.sol#L14-L20) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/0.7.6/inline_assembly_library.sol#L16-L18)\n", - "first_markdown_element": "tests/detectors/assembly/0.7.6/inline_assembly_library.sol#L14-L20", - "id": "a83582beb2c0460617fa82fbdfc38a050004e285749b17141b63e8051062248b", + "description": "VectorSum.sumPureAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#23-45) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#24-44)\n", + "markdown": "[VectorSum.sumPureAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#L23-L45) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#L24-L44)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#L23-L45", + "id": "85808e86367fa259711d41c48f23ea18a68773f92124e3aad598acb6d45ac69e", "check": "assembly", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/assert-state-change/0.4.25/assert_state_change.sol b/tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol similarity index 100% rename from tests/detectors/assert-state-change/0.4.25/assert_state_change.sol rename to tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol diff --git a/tests/detectors/assert-state-change/0.4.25/assert_state_change.sol.0.4.25.AssertStateChange.json b/tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol.0.4.25.AssertStateChange.json similarity index 77% rename from tests/detectors/assert-state-change/0.4.25/assert_state_change.sol.0.4.25.AssertStateChange.json rename to tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol.0.4.25.AssertStateChange.json index 17c63551c..6ae5f7d92 100644 --- a/tests/detectors/assert-state-change/0.4.25/assert_state_change.sol.0.4.25.AssertStateChange.json +++ b/tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol.0.4.25.AssertStateChange.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 398, "length": 55, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ 19, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -85,9 +85,9 @@ "source_mapping": { "start": 427, "length": 21, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ 20 @@ -102,9 +102,9 @@ "source_mapping": { "start": 398, "length": 55, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ 19, @@ -121,9 +121,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -176,10 +176,10 @@ } } ], - "description": "A.bad2() (tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#19-21) has an assert() call which possibly changes state.\n\t-assert(bool)(bad2_callee()) (tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#20)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad2()](tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#L19-L21) has an assert() call which possibly changes state.\n\t-[assert(bool)(bad2_callee())](tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#L20)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#L19-L21", - "id": "47c8c39b084f8d339822d44f892cb049c1a3834f52fd48d2dcef80bac56996a3", + "description": "A.bad2() (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#19-21) has an assert() call which possibly changes state.\n\t-assert(bool)(bad2_callee()) (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#20)\nConsider using require() or change the invariant to not modify the state.\n", + "markdown": "[A.bad2()](tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L19-L21) has an assert() call which possibly changes state.\n\t-[assert(bool)(bad2_callee())](tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L20)\nConsider using require() or change the invariant to not modify the state.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L19-L21", + "id": "85979ffbc3cf8c2e71c54ee1cd498165a330c7e02389732170dee1c14008a72b", "check": "assert-state-change", "impact": "Informational", "confidence": "High" @@ -188,18 +188,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 186, - "length": 66, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "start": 77, + "length": 57, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13 + 6, + 7, + 8 ], "starting_column": 3, "ending_column": 4 @@ -211,9 +211,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -260,21 +260,21 @@ "ending_column": 2 } }, - "signature": "bad1(uint256)" + "signature": "bad0()" } }, { "type": "node", - "name": "assert(bool)((s_a += a) > 10)", + "name": "assert(bool)((s_a += 1) > 10)", "source_mapping": { - "start": 224, + "start": 106, "length": 23, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ - 12 + 7 ], "starting_column": 5, "ending_column": 28 @@ -282,18 +282,18 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 186, - "length": 66, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "start": 77, + "length": 57, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13 + 6, + 7, + 8 ], "starting_column": 3, "ending_column": 4 @@ -305,9 +305,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -354,16 +354,16 @@ "ending_column": 2 } }, - "signature": "bad1(uint256)" + "signature": "bad0()" } } } } ], - "description": "A.bad1(uint256) (tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#11-13) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += a) > 10) (tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#12)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad1(uint256)](tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#L11-L13) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += a) > 10)](tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#L12)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#L11-L13", - "id": "849934acf882563bb79caed681f16909f03795bbbbe8338455d104d66a52314c", + "description": "A.bad0() (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#6-8) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += 1) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#7)\nConsider using require() or change the invariant to not modify the state.\n", + "markdown": "[A.bad0()](tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L6-L8) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += 1) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L7)\nConsider using require() or change the invariant to not modify the state.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L6-L8", + "id": "88a3e2b76097a01a39053337640c9105227317e018b08c603bf154883d054d5c", "check": "assert-state-change", "impact": "Informational", "confidence": "High" @@ -372,18 +372,18 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 77, - "length": 57, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "start": 186, + "length": 66, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ - 6, - 7, - 8 + 11, + 12, + 13 ], "starting_column": 3, "ending_column": 4 @@ -395,9 +395,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -444,21 +444,21 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad1(uint256)" } }, { "type": "node", - "name": "assert(bool)((s_a += 1) > 10)", + "name": "assert(bool)((s_a += a) > 10)", "source_mapping": { - "start": 106, + "start": 224, "length": 23, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ - 7 + 12 ], "starting_column": 5, "ending_column": 28 @@ -466,18 +466,18 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 77, - "length": 57, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "start": 186, + "length": 66, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ - 6, - 7, - 8 + 11, + 12, + 13 ], "starting_column": 3, "ending_column": 4 @@ -489,9 +489,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -538,16 +538,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad1(uint256)" } } } } ], - "description": "A.bad0() (tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#6-8) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += 1) > 10) (tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#7)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad0()](tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#L6-L8) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += 1) > 10)](tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#L7)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/detectors/assert-state-change/0.4.25/assert_state_change.sol#L6-L8", - "id": "a01104ede08ddc5107a2d63d851930d477642029aeef70d6cb44eb2a640b282a", + "description": "A.bad1(uint256) (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#11-13) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += a) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#12)\nConsider using require() or change the invariant to not modify the state.\n", + "markdown": "[A.bad1(uint256)](tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L11-L13) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += a) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L12)\nConsider using require() or change the invariant to not modify the state.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L11-L13", + "id": "8c2bfb124ed74f4b532b06c3a88b5d014cf2d19a81ad22b0ca561545965c0e2b", "check": "assert-state-change", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/assert-state-change/0.5.16/assert_state_change.sol b/tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol similarity index 100% rename from tests/detectors/assert-state-change/0.5.16/assert_state_change.sol rename to tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol diff --git a/tests/detectors/assert-state-change/0.5.16/assert_state_change.sol.0.5.16.AssertStateChange.json b/tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol.0.5.16.AssertStateChange.json similarity index 77% rename from tests/detectors/assert-state-change/0.5.16/assert_state_change.sol.0.5.16.AssertStateChange.json rename to tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol.0.5.16.AssertStateChange.json index 8b36fabfe..9abeed7f2 100644 --- a/tests/detectors/assert-state-change/0.5.16/assert_state_change.sol.0.5.16.AssertStateChange.json +++ b/tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol.0.5.16.AssertStateChange.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 186, "length": 66, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ 11, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -85,9 +85,9 @@ "source_mapping": { "start": 224, "length": 23, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ 12 @@ -102,9 +102,9 @@ "source_mapping": { "start": 186, "length": 66, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ 11, @@ -121,9 +121,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -176,10 +176,10 @@ } } ], - "description": "A.bad1(uint256) (tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#11-13) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += a) > 10) (tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#12)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad1(uint256)](tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#L11-L13) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += a) > 10)](tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#L12)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#L11-L13", - "id": "ea912d34e8adabfd2ce93ecd5723df8d2e7ebec7e66de5fc56f3304c780488b3", + "description": "A.bad1(uint256) (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#11-13) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += a) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#12)\nConsider using require() or change the invariant to not modify the state.\n", + "markdown": "[A.bad1(uint256)](tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L11-L13) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += a) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L12)\nConsider using require() or change the invariant to not modify the state.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L11-L13", + "id": "06b536c1f6f37d0b7ef3459055c7757375e371d3dfbd6c17012bcc2c7991bfc7", "check": "assert-state-change", "impact": "Informational", "confidence": "High" @@ -188,18 +188,18 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad2", "source_mapping": { - "start": 77, - "length": 57, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "start": 398, + "length": 55, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ - 6, - 7, - 8 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -211,9 +211,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -260,40 +260,40 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad2()" } }, { "type": "node", - "name": "assert(bool)((s_a += 1) > 10)", + "name": "assert(bool)(bad2_callee())", "source_mapping": { - "start": 106, - "length": 23, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "start": 427, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ - 7 + 20 ], "starting_column": 5, - "ending_column": 28 + "ending_column": 26 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad2", "source_mapping": { - "start": 77, - "length": 57, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "start": 398, + "length": 55, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ - 6, - 7, - 8 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -305,9 +305,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -354,16 +354,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad2()" } } } } ], - "description": "A.bad0() (tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#6-8) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += 1) > 10) (tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#7)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad0()](tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#L6-L8) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += 1) > 10)](tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#L7)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#L6-L8", - "id": "ed7344e23d057576887c7e524b215bd0b52464ce035f686bab51b271460e43a0", + "description": "A.bad2() (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#19-21) has an assert() call which possibly changes state.\n\t-assert(bool)(bad2_callee()) (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#20)\nConsider using require() or change the invariant to not modify the state.\n", + "markdown": "[A.bad2()](tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L19-L21) has an assert() call which possibly changes state.\n\t-[assert(bool)(bad2_callee())](tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L20)\nConsider using require() or change the invariant to not modify the state.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L19-L21", + "id": "58c5e6106ba6566aacedc2e05143de4a6b8befba4ef5de931581f5cf09ccbcaf", "check": "assert-state-change", "impact": "Informational", "confidence": "High" @@ -372,18 +372,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad0", "source_mapping": { - "start": 398, - "length": 55, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "start": 77, + "length": 57, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 6, + 7, + 8 ], "starting_column": 3, "ending_column": 4 @@ -395,9 +395,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -444,40 +444,40 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad0()" } }, { "type": "node", - "name": "assert(bool)(bad2_callee())", + "name": "assert(bool)((s_a += 1) > 10)", "source_mapping": { - "start": 427, - "length": 21, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "start": 106, + "length": 23, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ - 20 + 7 ], "starting_column": 5, - "ending_column": 26 + "ending_column": 28 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad0", "source_mapping": { - "start": 398, - "length": 55, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "start": 77, + "length": 57, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 6, + 7, + 8 ], "starting_column": 3, "ending_column": 4 @@ -489,9 +489,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -538,16 +538,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad0()" } } } } ], - "description": "A.bad2() (tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#19-21) has an assert() call which possibly changes state.\n\t-assert(bool)(bad2_callee()) (tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#20)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad2()](tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#L19-L21) has an assert() call which possibly changes state.\n\t-[assert(bool)(bad2_callee())](tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#L20)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/detectors/assert-state-change/0.5.16/assert_state_change.sol#L19-L21", - "id": "feb1fef411c094fe2d2dac33e4932217dd550b8a89548417ef8a4da2fe99eea2", + "description": "A.bad0() (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#6-8) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += 1) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#7)\nConsider using require() or change the invariant to not modify the state.\n", + "markdown": "[A.bad0()](tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L6-L8) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += 1) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L7)\nConsider using require() or change the invariant to not modify the state.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L6-L8", + "id": "6b042fd4a2a0d41b27bc01260a09db3c4387ec65ca23d9d9df1230f54f53681a", "check": "assert-state-change", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/assert-state-change/0.6.11/assert_state_change.sol b/tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol similarity index 100% rename from tests/detectors/assert-state-change/0.6.11/assert_state_change.sol rename to tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol diff --git a/tests/detectors/assert-state-change/0.6.11/assert_state_change.sol.0.6.11.AssertStateChange.json b/tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol.0.6.11.AssertStateChange.json similarity index 77% rename from tests/detectors/assert-state-change/0.6.11/assert_state_change.sol.0.6.11.AssertStateChange.json rename to tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol.0.6.11.AssertStateChange.json index 7cca66562..35fb8b687 100644 --- a/tests/detectors/assert-state-change/0.6.11/assert_state_change.sol.0.6.11.AssertStateChange.json +++ b/tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol.0.6.11.AssertStateChange.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 77, "length": 57, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ 6, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -85,9 +85,9 @@ "source_mapping": { "start": 106, "length": 23, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ 7 @@ -102,9 +102,9 @@ "source_mapping": { "start": 77, "length": 57, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ 6, @@ -121,9 +121,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -176,10 +176,10 @@ } } ], - "description": "A.bad0() (tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#6-8) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += 1) > 10) (tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#7)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad0()](tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#L6-L8) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += 1) > 10)](tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#L7)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#L6-L8", - "id": "5b8574d24925d841b9f041ba70166cc219ea6bcdd06c27d2f570740722b38380", + "description": "A.bad0() (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#6-8) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += 1) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#7)\nConsider using require() or change the invariant to not modify the state.\n", + "markdown": "[A.bad0()](tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L6-L8) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += 1) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L7)\nConsider using require() or change the invariant to not modify the state.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L6-L8", + "id": "0855817bbb19b59c76156f29f217db4196244311d133ee0f88b4fe586abc7488", "check": "assert-state-change", "impact": "Informational", "confidence": "High" @@ -188,18 +188,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad1", "source_mapping": { - "start": 398, - "length": 55, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "start": 186, + "length": 66, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 11, + 12, + 13 ], "starting_column": 3, "ending_column": 4 @@ -211,9 +211,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -260,40 +260,40 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad1(uint256)" } }, { "type": "node", - "name": "assert(bool)(bad2_callee())", + "name": "assert(bool)((s_a += a) > 10)", "source_mapping": { - "start": 427, - "length": 21, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "start": 224, + "length": 23, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ - 20 + 12 ], "starting_column": 5, - "ending_column": 26 + "ending_column": 28 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad1", "source_mapping": { - "start": 398, - "length": 55, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "start": 186, + "length": 66, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 11, + 12, + 13 ], "starting_column": 3, "ending_column": 4 @@ -305,9 +305,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -354,16 +354,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad1(uint256)" } } } } ], - "description": "A.bad2() (tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#19-21) has an assert() call which possibly changes state.\n\t-assert(bool)(bad2_callee()) (tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#20)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad2()](tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#L19-L21) has an assert() call which possibly changes state.\n\t-[assert(bool)(bad2_callee())](tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#L20)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#L19-L21", - "id": "6f4b2360043bf3035cc152b583d3462d8cc98e91de8577091fe3a0af569d5285", + "description": "A.bad1(uint256) (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#11-13) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += a) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#12)\nConsider using require() or change the invariant to not modify the state.\n", + "markdown": "[A.bad1(uint256)](tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L11-L13) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += a) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L12)\nConsider using require() or change the invariant to not modify the state.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L11-L13", + "id": "579536e4b54c9a38337b1b974bfe04be3e63cd7e749f68fb9b7fa4a97c2b35a7", "check": "assert-state-change", "impact": "Informational", "confidence": "High" @@ -372,18 +372,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 186, - "length": 66, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "start": 398, + "length": 55, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -395,9 +395,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -444,40 +444,40 @@ "ending_column": 2 } }, - "signature": "bad1(uint256)" + "signature": "bad2()" } }, { "type": "node", - "name": "assert(bool)((s_a += a) > 10)", + "name": "assert(bool)(bad2_callee())", "source_mapping": { - "start": 224, - "length": 23, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "start": 427, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ - 12 + 20 ], "starting_column": 5, - "ending_column": 28 + "ending_column": 26 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 186, - "length": 66, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "start": 398, + "length": 55, + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -489,9 +489,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -538,16 +538,16 @@ "ending_column": 2 } }, - "signature": "bad1(uint256)" + "signature": "bad2()" } } } } ], - "description": "A.bad1(uint256) (tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#11-13) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += a) > 10) (tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#12)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad1(uint256)](tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#L11-L13) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += a) > 10)](tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#L12)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/detectors/assert-state-change/0.6.11/assert_state_change.sol#L11-L13", - "id": "c27ede68d9d7c6159032f3aef6bf9fa491390317da33307fa783a93c1b675bd7", + "description": "A.bad2() (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#19-21) has an assert() call which possibly changes state.\n\t-assert(bool)(bad2_callee()) (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#20)\nConsider using require() or change the invariant to not modify the state.\n", + "markdown": "[A.bad2()](tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L19-L21) has an assert() call which possibly changes state.\n\t-[assert(bool)(bad2_callee())](tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L20)\nConsider using require() or change the invariant to not modify the state.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L19-L21", + "id": "a1813bb52d5a82887885c8c90d8fa10c4e80612143752aeaad86a261855ef2e7", "check": "assert-state-change", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/assert-state-change/0.7.6/assert_state_change.sol b/tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol similarity index 100% rename from tests/detectors/assert-state-change/0.7.6/assert_state_change.sol rename to tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol diff --git a/tests/detectors/assert-state-change/0.7.6/assert_state_change.sol.0.7.6.AssertStateChange.json b/tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol.0.7.6.AssertStateChange.json similarity index 77% rename from tests/detectors/assert-state-change/0.7.6/assert_state_change.sol.0.7.6.AssertStateChange.json rename to tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol.0.7.6.AssertStateChange.json index a77ef95d5..f42a95cfa 100644 --- a/tests/detectors/assert-state-change/0.7.6/assert_state_change.sol.0.7.6.AssertStateChange.json +++ b/tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol.0.7.6.AssertStateChange.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 398, "length": 55, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 19, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -85,9 +85,9 @@ "source_mapping": { "start": 427, "length": 21, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 20 @@ -102,9 +102,9 @@ "source_mapping": { "start": 398, "length": 55, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 19, @@ -121,9 +121,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -176,10 +176,10 @@ } } ], - "description": "A.bad2() (tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#19-21) has an assert() call which possibly changes state.\n\t-assert(bool)(bad2_callee()) (tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#20)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad2()](tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#L19-L21) has an assert() call which possibly changes state.\n\t-[assert(bool)(bad2_callee())](tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#L20)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#L19-L21", - "id": "4b31923b05dec7d68f1bf133b986b4ec06fcc82ff3b8f0414d3ee3d623b69265", + "description": "A.bad2() (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#19-21) has an assert() call which possibly changes state.\n\t-assert(bool)(bad2_callee()) (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#20)\nConsider using require() or change the invariant to not modify the state.\n", + "markdown": "[A.bad2()](tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L19-L21) has an assert() call which possibly changes state.\n\t-[assert(bool)(bad2_callee())](tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L20)\nConsider using require() or change the invariant to not modify the state.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L19-L21", + "id": "007f2bdbef5004ed854ea288a36b2bbcf31c2ecfdc41896a7f978d274bff6fc1", "check": "assert-state-change", "impact": "Informational", "confidence": "High" @@ -192,9 +192,9 @@ "source_mapping": { "start": 186, "length": 66, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 11, @@ -211,9 +211,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -269,9 +269,9 @@ "source_mapping": { "start": 224, "length": 23, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 12 @@ -286,9 +286,9 @@ "source_mapping": { "start": 186, "length": 66, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 11, @@ -305,9 +305,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -360,10 +360,10 @@ } } ], - "description": "A.bad1(uint256) (tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#11-13) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += a) > 10) (tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#12)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad1(uint256)](tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#L11-L13) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += a) > 10)](tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#L12)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#L11-L13", - "id": "60ad080e2f9647b400851918171383a9aac2900cc0828121e441db4240911fba", + "description": "A.bad1(uint256) (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#11-13) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += a) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#12)\nConsider using require() or change the invariant to not modify the state.\n", + "markdown": "[A.bad1(uint256)](tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L11-L13) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += a) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L12)\nConsider using require() or change the invariant to not modify the state.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L11-L13", + "id": "139e739308fb37177087443177ea3ca24788c9ad0391de3d8d331046daf8988a", "check": "assert-state-change", "impact": "Informational", "confidence": "High" @@ -376,9 +376,9 @@ "source_mapping": { "start": 77, "length": 57, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 6, @@ -395,9 +395,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -453,9 +453,9 @@ "source_mapping": { "start": 106, "length": 23, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 7 @@ -470,9 +470,9 @@ "source_mapping": { "start": 77, "length": 57, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 6, @@ -489,9 +489,9 @@ "source_mapping": { "start": 0, "length": 759, - "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", + "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 1, @@ -544,10 +544,10 @@ } } ], - "description": "A.bad0() (tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#6-8) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += 1) > 10) (tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#7)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad0()](tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#L6-L8) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += 1) > 10)](tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#L7)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol#L6-L8", - "id": "a710d11e5510f0eb3acb2c1ec524779253f25bf2931bce4cb9c5c048ec586b80", + "description": "A.bad0() (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#6-8) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += 1) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#7)\nConsider using require() or change the invariant to not modify the state.\n", + "markdown": "[A.bad0()](tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L6-L8) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += 1) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L7)\nConsider using require() or change the invariant to not modify the state.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L6-L8", + "id": "5ce92f244b7d1f6be8a6098e0abd5c69b15ea8353a42e21be1837a68915ead44", "check": "assert-state-change", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/backdoor/0.4.25/backdoor.sol b/tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol similarity index 100% rename from tests/detectors/backdoor/0.4.25/backdoor.sol rename to tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol diff --git a/tests/detectors/backdoor/0.4.25/backdoor.sol.0.4.25.Backdoor.json b/tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol.0.4.25.Backdoor.json similarity index 74% rename from tests/detectors/backdoor/0.4.25/backdoor.sol.0.4.25.Backdoor.json rename to tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol.0.4.25.Backdoor.json index ff6fcc3e7..2cff131a2 100644 --- a/tests/detectors/backdoor/0.4.25/backdoor.sol.0.4.25.Backdoor.json +++ b/tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol.0.4.25.Backdoor.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 18, "length": 74, - "filename_relative": "tests/detectors/backdoor/0.4.25/backdoor.sol", + "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/backdoor/0.4.25/backdoor.sol", + "filename_short": "tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol", "is_dependency": false, "lines": [ 4, @@ -27,9 +27,9 @@ "source_mapping": { "start": 1, "length": 94, - "filename_relative": "tests/detectors/backdoor/0.4.25/backdoor.sol", + "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/backdoor/0.4.25/backdoor.sol", + "filename_short": "tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol", "is_dependency": false, "lines": [ 2, @@ -48,9 +48,9 @@ } } ], - "description": "Backdoor function found in C.i_am_a_backdoor() (tests/detectors/backdoor/0.4.25/backdoor.sol#4-6)\n", - "markdown": "Backdoor function found in [C.i_am_a_backdoor()](tests/detectors/backdoor/0.4.25/backdoor.sol#L4-L6)\n", - "first_markdown_element": "tests/detectors/backdoor/0.4.25/backdoor.sol#L4-L6", + "description": "Backdoor function found in C.i_am_a_backdoor() (tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol#4-6)\n", + "markdown": "Backdoor function found in [C.i_am_a_backdoor()](tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol#L4-L6)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol#L4-L6", "id": "8a9008f2f5cd23b34feb0235dcc30ecb8d09a10eff151b522939caead117ef7a", "check": "backdoor", "impact": "High", diff --git a/tests/detectors/backdoor/0.5.16/backdoor.sol b/tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol similarity index 100% rename from tests/detectors/backdoor/0.5.16/backdoor.sol rename to tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol diff --git a/tests/detectors/backdoor/0.5.16/backdoor.sol.0.5.16.Backdoor.json b/tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol.0.5.16.Backdoor.json similarity index 74% rename from tests/detectors/backdoor/0.5.16/backdoor.sol.0.5.16.Backdoor.json rename to tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol.0.5.16.Backdoor.json index a21e52748..cb901fd31 100644 --- a/tests/detectors/backdoor/0.5.16/backdoor.sol.0.5.16.Backdoor.json +++ b/tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol.0.5.16.Backdoor.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 18, "length": 74, - "filename_relative": "tests/detectors/backdoor/0.5.16/backdoor.sol", + "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/backdoor/0.5.16/backdoor.sol", + "filename_short": "tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol", "is_dependency": false, "lines": [ 4, @@ -27,9 +27,9 @@ "source_mapping": { "start": 1, "length": 94, - "filename_relative": "tests/detectors/backdoor/0.5.16/backdoor.sol", + "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/backdoor/0.5.16/backdoor.sol", + "filename_short": "tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol", "is_dependency": false, "lines": [ 2, @@ -48,9 +48,9 @@ } } ], - "description": "Backdoor function found in C.i_am_a_backdoor() (tests/detectors/backdoor/0.5.16/backdoor.sol#4-6)\n", - "markdown": "Backdoor function found in [C.i_am_a_backdoor()](tests/detectors/backdoor/0.5.16/backdoor.sol#L4-L6)\n", - "first_markdown_element": "tests/detectors/backdoor/0.5.16/backdoor.sol#L4-L6", + "description": "Backdoor function found in C.i_am_a_backdoor() (tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol#4-6)\n", + "markdown": "Backdoor function found in [C.i_am_a_backdoor()](tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol#L4-L6)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol#L4-L6", "id": "8a9008f2f5cd23b34feb0235dcc30ecb8d09a10eff151b522939caead117ef7a", "check": "backdoor", "impact": "High", diff --git a/tests/detectors/backdoor/0.6.11/backdoor.sol b/tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol similarity index 100% rename from tests/detectors/backdoor/0.6.11/backdoor.sol rename to tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol diff --git a/tests/detectors/backdoor/0.6.11/backdoor.sol.0.6.11.Backdoor.json b/tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol.0.6.11.Backdoor.json similarity index 74% rename from tests/detectors/backdoor/0.6.11/backdoor.sol.0.6.11.Backdoor.json rename to tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol.0.6.11.Backdoor.json index 2e254f013..1b2ed3305 100644 --- a/tests/detectors/backdoor/0.6.11/backdoor.sol.0.6.11.Backdoor.json +++ b/tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol.0.6.11.Backdoor.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 18, "length": 74, - "filename_relative": "tests/detectors/backdoor/0.6.11/backdoor.sol", + "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/backdoor/0.6.11/backdoor.sol", + "filename_short": "tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol", "is_dependency": false, "lines": [ 4, @@ -27,9 +27,9 @@ "source_mapping": { "start": 1, "length": 94, - "filename_relative": "tests/detectors/backdoor/0.6.11/backdoor.sol", + "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/backdoor/0.6.11/backdoor.sol", + "filename_short": "tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol", "is_dependency": false, "lines": [ 2, @@ -48,9 +48,9 @@ } } ], - "description": "Backdoor function found in C.i_am_a_backdoor() (tests/detectors/backdoor/0.6.11/backdoor.sol#4-6)\n", - "markdown": "Backdoor function found in [C.i_am_a_backdoor()](tests/detectors/backdoor/0.6.11/backdoor.sol#L4-L6)\n", - "first_markdown_element": "tests/detectors/backdoor/0.6.11/backdoor.sol#L4-L6", + "description": "Backdoor function found in C.i_am_a_backdoor() (tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol#4-6)\n", + "markdown": "Backdoor function found in [C.i_am_a_backdoor()](tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol#L4-L6)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol#L4-L6", "id": "8a9008f2f5cd23b34feb0235dcc30ecb8d09a10eff151b522939caead117ef7a", "check": "backdoor", "impact": "High", diff --git a/tests/detectors/backdoor/0.7.6/backdoor.sol b/tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol similarity index 100% rename from tests/detectors/backdoor/0.7.6/backdoor.sol rename to tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol diff --git a/tests/detectors/backdoor/0.7.6/backdoor.sol.0.7.6.Backdoor.json b/tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol.0.7.6.Backdoor.json similarity index 74% rename from tests/detectors/backdoor/0.7.6/backdoor.sol.0.7.6.Backdoor.json rename to tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol.0.7.6.Backdoor.json index b09263321..83a7eaa78 100644 --- a/tests/detectors/backdoor/0.7.6/backdoor.sol.0.7.6.Backdoor.json +++ b/tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol.0.7.6.Backdoor.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 18, "length": 74, - "filename_relative": "tests/detectors/backdoor/0.7.6/backdoor.sol", + "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/backdoor/0.7.6/backdoor.sol", + "filename_short": "tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol", "is_dependency": false, "lines": [ 4, @@ -27,9 +27,9 @@ "source_mapping": { "start": 1, "length": 94, - "filename_relative": "tests/detectors/backdoor/0.7.6/backdoor.sol", + "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/backdoor/0.7.6/backdoor.sol", + "filename_short": "tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol", "is_dependency": false, "lines": [ 2, @@ -48,9 +48,9 @@ } } ], - "description": "Backdoor function found in C.i_am_a_backdoor() (tests/detectors/backdoor/0.7.6/backdoor.sol#4-6)\n", - "markdown": "Backdoor function found in [C.i_am_a_backdoor()](tests/detectors/backdoor/0.7.6/backdoor.sol#L4-L6)\n", - "first_markdown_element": "tests/detectors/backdoor/0.7.6/backdoor.sol#L4-L6", + "description": "Backdoor function found in C.i_am_a_backdoor() (tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol#4-6)\n", + "markdown": "Backdoor function found in [C.i_am_a_backdoor()](tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol#L4-L6)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol#L4-L6", "id": "8a9008f2f5cd23b34feb0235dcc30ecb8d09a10eff151b522939caead117ef7a", "check": "backdoor", "impact": "High", diff --git a/tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol b/tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol similarity index 100% rename from tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol rename to tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol diff --git a/tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol.0.4.25.BooleanConstantMisuse.json b/tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol.0.4.25.BooleanConstantMisuse.json similarity index 80% rename from tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol.0.4.25.BooleanConstantMisuse.json rename to tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol.0.4.25.BooleanConstantMisuse.json index 00a4712df..0eb9f8d92 100644 --- a/tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol.0.4.25.BooleanConstantMisuse.json +++ b/tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol.0.4.25.BooleanConstantMisuse.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 162, "length": 84, - "filename_relative": "tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 9, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 923, - "filename_relative": "tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 1, @@ -93,9 +93,9 @@ "source_mapping": { "start": 221, "length": 18, - "filename_relative": "tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 10 @@ -110,9 +110,9 @@ "source_mapping": { "start": 162, "length": 84, - "filename_relative": "tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 9, @@ -129,9 +129,9 @@ "source_mapping": { "start": 0, "length": 923, - "filename_relative": "tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 1, @@ -192,10 +192,10 @@ } } ], - "description": "MyConc.bad1(bool) (tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly:\n\t-(b || true) (tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol#10)\n", - "markdown": "[MyConc.bad1(bool)](tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol#L9-L11) uses a Boolean constant improperly:\n\t-[(b || true)](tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol#L10)\n", - "first_markdown_element": "tests/detectors/boolean-cst/0.4.25/boolean-constant-misuse.sol#L9-L11", - "id": "4b8abd9aa6870f3044de67a84b3139e4a79c9ac13b4c0ed4f0772713f12c709b", + "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly:\n\t-(b || true) (tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol#10)\n", + "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol#L9-L11) uses a Boolean constant improperly:\n\t-[(b || true)](tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol#L9-L11", + "id": "09a51b67337dcc1a44f1b71413dc86887509771b9f6d854a5a5aaef94b590da0", "check": "boolean-cst", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol b/tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol similarity index 100% rename from tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol rename to tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol diff --git a/tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol.0.5.16.BooleanConstantMisuse.json b/tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol.0.5.16.BooleanConstantMisuse.json similarity index 80% rename from tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol.0.5.16.BooleanConstantMisuse.json rename to tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol.0.5.16.BooleanConstantMisuse.json index 8c66dccf6..686621446 100644 --- a/tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol.0.5.16.BooleanConstantMisuse.json +++ b/tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol.0.5.16.BooleanConstantMisuse.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 162, "length": 84, - "filename_relative": "tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 9, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 923, - "filename_relative": "tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 1, @@ -93,9 +93,9 @@ "source_mapping": { "start": 221, "length": 18, - "filename_relative": "tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 10 @@ -110,9 +110,9 @@ "source_mapping": { "start": 162, "length": 84, - "filename_relative": "tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 9, @@ -129,9 +129,9 @@ "source_mapping": { "start": 0, "length": 923, - "filename_relative": "tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 1, @@ -192,10 +192,10 @@ } } ], - "description": "MyConc.bad1(bool) (tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly:\n\t-(b || true) (tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol#10)\n", - "markdown": "[MyConc.bad1(bool)](tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol#L9-L11) uses a Boolean constant improperly:\n\t-[(b || true)](tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol#L10)\n", - "first_markdown_element": "tests/detectors/boolean-cst/0.5.16/boolean-constant-misuse.sol#L9-L11", - "id": "bd4514763d71bc7fcb2a681b1fe98928e9d1dd92882c5fe0480e52cba9130cfe", + "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly:\n\t-(b || true) (tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol#10)\n", + "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol#L9-L11) uses a Boolean constant improperly:\n\t-[(b || true)](tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol#L9-L11", + "id": "c460c0b8dd321a4461e2dcea9085607d80b3a205325797025a5429d0c75cb79b", "check": "boolean-cst", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol b/tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol similarity index 100% rename from tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol rename to tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol diff --git a/tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol.0.6.11.BooleanConstantMisuse.json b/tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol.0.6.11.BooleanConstantMisuse.json similarity index 80% rename from tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol.0.6.11.BooleanConstantMisuse.json rename to tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol.0.6.11.BooleanConstantMisuse.json index 54f6ad089..9dc762660 100644 --- a/tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol.0.6.11.BooleanConstantMisuse.json +++ b/tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol.0.6.11.BooleanConstantMisuse.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 162, "length": 84, - "filename_relative": "tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 9, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 923, - "filename_relative": "tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 1, @@ -93,9 +93,9 @@ "source_mapping": { "start": 221, "length": 18, - "filename_relative": "tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 10 @@ -110,9 +110,9 @@ "source_mapping": { "start": 162, "length": 84, - "filename_relative": "tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 9, @@ -129,9 +129,9 @@ "source_mapping": { "start": 0, "length": 923, - "filename_relative": "tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 1, @@ -192,10 +192,10 @@ } } ], - "description": "MyConc.bad1(bool) (tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly:\n\t-(b || true) (tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol#10)\n", - "markdown": "[MyConc.bad1(bool)](tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol#L9-L11) uses a Boolean constant improperly:\n\t-[(b || true)](tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol#L10)\n", - "first_markdown_element": "tests/detectors/boolean-cst/0.6.11/boolean-constant-misuse.sol#L9-L11", - "id": "81067a443028f22790f44718bff947b7ec6de12b929bd89147d3b34044b3890d", + "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly:\n\t-(b || true) (tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol#10)\n", + "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol#L9-L11) uses a Boolean constant improperly:\n\t-[(b || true)](tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol#L9-L11", + "id": "fc02b6246c48038bd59be2cbf3717e8445d6ce6b1a9981696bce11e23589f63c", "check": "boolean-cst", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol b/tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol similarity index 100% rename from tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol rename to tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol diff --git a/tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol.0.7.6.BooleanConstantMisuse.json b/tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol.0.7.6.BooleanConstantMisuse.json similarity index 80% rename from tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol.0.7.6.BooleanConstantMisuse.json rename to tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol.0.7.6.BooleanConstantMisuse.json index 66487e917..347b13f6e 100644 --- a/tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol.0.7.6.BooleanConstantMisuse.json +++ b/tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol.0.7.6.BooleanConstantMisuse.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 162, "length": 84, - "filename_relative": "tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 9, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 923, - "filename_relative": "tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 1, @@ -93,9 +93,9 @@ "source_mapping": { "start": 221, "length": 18, - "filename_relative": "tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 10 @@ -110,9 +110,9 @@ "source_mapping": { "start": 162, "length": 84, - "filename_relative": "tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 9, @@ -129,9 +129,9 @@ "source_mapping": { "start": 0, "length": 923, - "filename_relative": "tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", "is_dependency": false, "lines": [ 1, @@ -192,10 +192,10 @@ } } ], - "description": "MyConc.bad1(bool) (tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly:\n\t-(b || true) (tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol#10)\n", - "markdown": "[MyConc.bad1(bool)](tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol#L9-L11) uses a Boolean constant improperly:\n\t-[(b || true)](tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol#L10)\n", - "first_markdown_element": "tests/detectors/boolean-cst/0.7.6/boolean-constant-misuse.sol#L9-L11", - "id": "d96572f8601700902d157c2b4ad0b66254eba7a6d9c83710f26ea8cbdf2085fa", + "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly:\n\t-(b || true) (tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol#10)\n", + "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol#L9-L11) uses a Boolean constant improperly:\n\t-[(b || true)](tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol#L9-L11", + "id": "9e4c23f1bdd358acadcd6b0460f26e62cfae9d0f4570df2c540a65f55e47ada0", "check": "boolean-cst", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol b/tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol similarity index 100% rename from tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol rename to tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol diff --git a/tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol.0.4.25.BooleanEquality.json b/tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol.0.4.25.BooleanEquality.json similarity index 76% rename from tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol.0.4.25.BooleanEquality.json rename to tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol.0.4.25.BooleanEquality.json index e97707d56..300e85634 100644 --- a/tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol.0.4.25.BooleanEquality.json +++ b/tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol.0.4.25.BooleanEquality.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 139, "length": 84, - "filename_relative": "tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 7, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 578, - "filename_relative": "tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 1, @@ -74,9 +74,9 @@ "source_mapping": { "start": 198, "length": 18, - "filename_relative": "tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 8 @@ -91,9 +91,9 @@ "source_mapping": { "start": 139, "length": 84, - "filename_relative": "tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 7, @@ -110,9 +110,9 @@ "source_mapping": { "start": 0, "length": 578, - "filename_relative": "tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 1, @@ -154,10 +154,10 @@ } } ], - "description": "MyConc.bad1(bool) (tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol#7-9) compares to a boolean constant:\n\t-(b == true) (tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol#8)\n", - "markdown": "[MyConc.bad1(bool)](tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol#L7-L9) compares to a boolean constant:\n\t-[(b == true)](tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol#L8)\n", - "first_markdown_element": "tests/detectors/boolean-equal/0.4.25/boolean-constant-equality.sol#L7-L9", - "id": "55ba7d7edfd3cc9012d1fbd9d2ba12a488d950a885c3664fe080b90288a2c715", + "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol#7-9) compares to a boolean constant:\n\t-(b == true) (tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol#8)\n", + "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol#L7-L9) compares to a boolean constant:\n\t-[(b == true)](tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol#L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol#L7-L9", + "id": "a5db2afbaf09297a0a2f82a2b331ad7897fb9d351c751370fdb21b75432a1e61", "check": "boolean-equal", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol b/tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol similarity index 100% rename from tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol rename to tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol diff --git a/tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol.0.5.16.BooleanEquality.json b/tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol.0.5.16.BooleanEquality.json similarity index 76% rename from tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol.0.5.16.BooleanEquality.json rename to tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol.0.5.16.BooleanEquality.json index ff61bd74e..6d479dedd 100644 --- a/tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol.0.5.16.BooleanEquality.json +++ b/tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol.0.5.16.BooleanEquality.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 139, "length": 84, - "filename_relative": "tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 7, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 578, - "filename_relative": "tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 1, @@ -74,9 +74,9 @@ "source_mapping": { "start": 198, "length": 18, - "filename_relative": "tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 8 @@ -91,9 +91,9 @@ "source_mapping": { "start": 139, "length": 84, - "filename_relative": "tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 7, @@ -110,9 +110,9 @@ "source_mapping": { "start": 0, "length": 578, - "filename_relative": "tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 1, @@ -154,10 +154,10 @@ } } ], - "description": "MyConc.bad1(bool) (tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol#7-9) compares to a boolean constant:\n\t-(b == true) (tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol#8)\n", - "markdown": "[MyConc.bad1(bool)](tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol#L7-L9) compares to a boolean constant:\n\t-[(b == true)](tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol#L8)\n", - "first_markdown_element": "tests/detectors/boolean-equal/0.5.16/boolean-constant-equality.sol#L7-L9", - "id": "be01fe651d102dc47ca3eb623ba9078138896f662948665b8d4e03780305c085", + "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol#7-9) compares to a boolean constant:\n\t-(b == true) (tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol#8)\n", + "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol#L7-L9) compares to a boolean constant:\n\t-[(b == true)](tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol#L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol#L7-L9", + "id": "deeaa11969ba009e66a9ad06eb8ee15a359b785673d245669f54cbe397b7d1b6", "check": "boolean-equal", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol b/tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol similarity index 100% rename from tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol rename to tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol diff --git a/tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol.0.6.11.BooleanEquality.json b/tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol.0.6.11.BooleanEquality.json similarity index 76% rename from tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol.0.6.11.BooleanEquality.json rename to tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol.0.6.11.BooleanEquality.json index 9d09a172b..c9a808c64 100644 --- a/tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol.0.6.11.BooleanEquality.json +++ b/tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol.0.6.11.BooleanEquality.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 139, "length": 84, - "filename_relative": "tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 7, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 578, - "filename_relative": "tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 1, @@ -74,9 +74,9 @@ "source_mapping": { "start": 198, "length": 18, - "filename_relative": "tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 8 @@ -91,9 +91,9 @@ "source_mapping": { "start": 139, "length": 84, - "filename_relative": "tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 7, @@ -110,9 +110,9 @@ "source_mapping": { "start": 0, "length": 578, - "filename_relative": "tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 1, @@ -154,10 +154,10 @@ } } ], - "description": "MyConc.bad1(bool) (tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol#7-9) compares to a boolean constant:\n\t-(b == true) (tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol#8)\n", - "markdown": "[MyConc.bad1(bool)](tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol#L7-L9) compares to a boolean constant:\n\t-[(b == true)](tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol#L8)\n", - "first_markdown_element": "tests/detectors/boolean-equal/0.6.11/boolean-constant-equality.sol#L7-L9", - "id": "0f863694c7b456673256b0f8002c9ac9f050b89b9ec3c86936c6399b3eb4b2e1", + "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol#7-9) compares to a boolean constant:\n\t-(b == true) (tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol#8)\n", + "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol#L7-L9) compares to a boolean constant:\n\t-[(b == true)](tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol#L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol#L7-L9", + "id": "71051c6206bde91cead25076a2ea429b95f552f468ca348b481d0af1ac178b34", "check": "boolean-equal", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol b/tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol similarity index 100% rename from tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol rename to tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol diff --git a/tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol.0.7.6.BooleanEquality.json b/tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol.0.7.6.BooleanEquality.json similarity index 76% rename from tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol.0.7.6.BooleanEquality.json rename to tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol.0.7.6.BooleanEquality.json index 47518ce83..43ba5ff8b 100644 --- a/tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol.0.7.6.BooleanEquality.json +++ b/tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol.0.7.6.BooleanEquality.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 139, "length": 84, - "filename_relative": "tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 7, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 578, - "filename_relative": "tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 1, @@ -74,9 +74,9 @@ "source_mapping": { "start": 198, "length": 18, - "filename_relative": "tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 8 @@ -91,9 +91,9 @@ "source_mapping": { "start": 139, "length": 84, - "filename_relative": "tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 7, @@ -110,9 +110,9 @@ "source_mapping": { "start": 0, "length": 578, - "filename_relative": "tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol", + "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", "is_dependency": false, "lines": [ 1, @@ -154,10 +154,10 @@ } } ], - "description": "MyConc.bad1(bool) (tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol#7-9) compares to a boolean constant:\n\t-(b == true) (tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol#8)\n", - "markdown": "[MyConc.bad1(bool)](tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol#L7-L9) compares to a boolean constant:\n\t-[(b == true)](tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol#L8)\n", - "first_markdown_element": "tests/detectors/boolean-equal/0.7.6/boolean-constant-equality.sol#L7-L9", - "id": "7c89c8f828e73eb875b8f06bb1404ed2271cc5806f167d621604c23f62705f60", + "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol#7-9) compares to a boolean constant:\n\t-(b == true) (tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol#8)\n", + "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol#L7-L9) compares to a boolean constant:\n\t-[(b == true)](tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol#L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol#L7-L9", + "id": "a5ef55035c29649a345f5fce2b02fd6b0a1e5bf69ef05b6c725247da59487715", "check": "boolean-equal", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol b/tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol similarity index 100% rename from tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol rename to tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol diff --git a/tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol.0.4.25.MultipleCallsInLoop.json b/tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol.0.4.25.MultipleCallsInLoop.json similarity index 77% rename from tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol.0.4.25.MultipleCallsInLoop.json rename to tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol.0.4.25.MultipleCallsInLoop.json index 866fd948e..d25176dee 100644 --- a/tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol.0.4.25.MultipleCallsInLoop.json +++ b/tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol.0.4.25.MultipleCallsInLoop.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 530, "length": 135, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 24, @@ -29,9 +29,9 @@ "source_mapping": { "start": 327, "length": 831, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -82,9 +82,9 @@ "source_mapping": { "start": 621, "length": 27, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 26 @@ -99,9 +99,9 @@ "source_mapping": { "start": 530, "length": 135, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 24, @@ -120,9 +120,9 @@ "source_mapping": { "start": 327, "length": 831, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -170,10 +170,194 @@ } } ], - "description": "CallInLoop.bad() (tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: destinations[i].transfer(i) (tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#26)\n", - "markdown": "[CallInLoop.bad()](tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#L24-L28) has external calls inside a loop: [destinations[i].transfer(i)](tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#L26)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#L24-L28", - "id": "257715445371826f92add7e2202ff42cb445394069844c805c9bd7c46d0e0c78", + "description": "CallInLoop.bad() (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: destinations[i].transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#26)\n", + "markdown": "[CallInLoop.bad()](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L24-L28) has external calls inside a loop: [destinations[i].transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L24-L28", + "id": "1197eb6c89b4a380337811e1230958b352d5ad960cc4aca0d2be23ec1ad1d25b", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "bad2", + "source_mapping": { + "start": 671, + "length": 245, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CallInLoop", + "source_mapping": { + "start": 327, + "length": 831, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad2()" + } + }, + { + "type": "node", + "name": "destinations[i].transfer(i)", + "source_mapping": { + "start": 872, + "length": 27, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 35 + ], + "starting_column": 13, + "ending_column": 40 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad2", + "source_mapping": { + "start": 671, + "length": 245, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CallInLoop", + "source_mapping": { + "start": 327, + "length": 831, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad2()" + } + } + } + } + ], + "description": "CallInLoop.bad2() (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: destinations[i].transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#35)\n", + "markdown": "[CallInLoop.bad2()](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L30-L37) has external calls inside a loop: [destinations[i].transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L35)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L30-L37", + "id": "6d5acd9c0dade132f780c57e2c61ea603daf15bb0ef1615b903c760d14abe073", "check": "calls-loop", "impact": "Low", "confidence": "Medium" @@ -186,9 +370,9 @@ "source_mapping": { "start": 1074, "length": 81, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 45, @@ -205,9 +389,9 @@ "source_mapping": { "start": 327, "length": 831, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -258,9 +442,9 @@ "source_mapping": { "start": 1135, "length": 13, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 46 @@ -275,9 +459,9 @@ "source_mapping": { "start": 1074, "length": 81, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 45, @@ -294,9 +478,9 @@ "source_mapping": { "start": 327, "length": 831, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -344,10 +528,10 @@ } } ], - "description": "CallInLoop.bad3_internal(address,uint256) (tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: a.transfer(i) (tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#46)\n", - "markdown": "[CallInLoop.bad3_internal(address,uint256)](tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#L45-L47) has external calls inside a loop: [a.transfer(i)](tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#L46)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#L45-L47", - "id": "29874ab93647beebd98e69e6e02bfb9e8d07d22d82990b77e1e33ea9d64caddc", + "description": "CallInLoop.bad3_internal(address,uint256) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: a.transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#46)\n", + "markdown": "[CallInLoop.bad3_internal(address,uint256)](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L45-L47) has external calls inside a loop: [a.transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L46)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L45-L47", + "id": "a922522f13366eaeef7e9ae009527e6436193ee6c1cea040f3dc3021ece8c103", "check": "calls-loop", "impact": "Low", "confidence": "Medium" @@ -360,9 +544,9 @@ "source_mapping": { "start": 173, "length": 150, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 9, @@ -381,9 +565,9 @@ "source_mapping": { "start": 0, "length": 325, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 1, @@ -414,9 +598,9 @@ "source_mapping": { "start": 274, "length": 32, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 11 @@ -431,9 +615,9 @@ "source_mapping": { "start": 173, "length": 150, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 9, @@ -452,9 +636,9 @@ "source_mapping": { "start": 0, "length": 325, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 1, @@ -482,194 +666,10 @@ } } ], - "description": "CallInLoopBase.bad_base() (tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: destinations_base[i].transfer(i) (tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#11)\n", - "markdown": "[CallInLoopBase.bad_base()](tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#L9-L13) has external calls inside a loop: [destinations_base[i].transfer(i)](tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#L11)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#L9-L13", - "id": "66e6cb3d36ce6385ebe80eb42e75cfcc0be03eee32eb49b287c75258de7433f6", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 671, - "length": 245, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 327, - "length": 831, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "destinations[i].transfer(i)", - "source_mapping": { - "start": 872, - "length": 27, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 35 - ], - "starting_column": 13, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 671, - "length": 245, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 327, - "length": 831, - "filename_relative": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "CallInLoop.bad2() (tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: destinations[i].transfer(i) (tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#35)\n", - "markdown": "[CallInLoop.bad2()](tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#L30-L37) has external calls inside a loop: [destinations[i].transfer(i)](tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#L35)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.4.25/multiple_calls_in_loop.sol#L30-L37", - "id": "bcf4888be2bdca9c6e3794ed50d3a0c4cbffe97f6cafdd8c9f6b2a940f92330d", + "description": "CallInLoopBase.bad_base() (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: destinations_base[i].transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#11)\n", + "markdown": "[CallInLoopBase.bad_base()](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L9-L13) has external calls inside a loop: [destinations_base[i].transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L9-L13", + "id": "b24075894bde55b95eadde9cb759a84d2378e5191ca36b49daf3efd570906af5", "check": "calls-loop", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol b/tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol similarity index 100% rename from tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol rename to tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol diff --git a/tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol.0.5.16.MultipleCallsInLoop.json b/tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol.0.5.16.MultipleCallsInLoop.json similarity index 77% rename from tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol.0.5.16.MultipleCallsInLoop.json rename to tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol.0.5.16.MultipleCallsInLoop.json index 7044ba0c0..cba104d4c 100644 --- a/tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol.0.5.16.MultipleCallsInLoop.json +++ b/tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol.0.5.16.MultipleCallsInLoop.json @@ -4,23 +4,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad3_internal", "source_mapping": { - "start": 721, - "length": 263, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "start": 1142, + "length": 99, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 + 45, + 46, + 47 ], "starting_column": 5, "ending_column": 6 @@ -32,9 +27,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -76,45 +71,40 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad3_internal(address,uint256)" } }, { "type": "node", - "name": "address(uint160(destinations[i])).transfer(i)", + "name": "address(uint160(a)).transfer(i)", "source_mapping": { - "start": 922, - "length": 45, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "start": 1203, + "length": 31, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ - 35 + 46 ], - "starting_column": 13, - "ending_column": 58 + "starting_column": 9, + "ending_column": 40 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad3_internal", "source_mapping": { - "start": 721, - "length": 263, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "start": 1142, + "length": 99, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 + 45, + 46, + 47 ], "starting_column": 5, "ending_column": 6 @@ -126,9 +116,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -170,154 +160,16 @@ "ending_column": 2 } }, - "signature": "bad2()" - } - } - } - } - ], - "description": "CallInLoop.bad2() (tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#35)\n", - "markdown": "[CallInLoop.bad2()](tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#L30-L37) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#L35)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#L30-L37", - "id": "25c86080b32e786ebc200a68d29ce99aac3f426760b120f9bd359930a78e1e31", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 180, - "length": 168, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoopBase", - "source_mapping": { - "start": 0, - "length": 350, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - }, - { - "type": "node", - "name": "address(uint160(destinations_base[i])).transfer(i)", - "source_mapping": { - "start": 281, - "length": 50, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 13, - "ending_column": 63 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 180, - "length": 168, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoopBase", - "source_mapping": { - "start": 0, - "length": 350, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" + "signature": "bad3_internal(address,uint256)" } } } } ], - "description": "CallInLoopBase.bad_base() (tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: address(uint160(destinations_base[i])).transfer(i) (tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#11)\n", - "markdown": "[CallInLoopBase.bad_base()](tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#L9-L13) has external calls inside a loop: [address(uint160(destinations_base[i])).transfer(i)](tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#L11)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#L9-L13", - "id": "5d659f8e891bf51f3542d3726e0d26bd7e5c23a48baba9356b6204fda561eb77", + "description": "CallInLoop.bad3_internal(address,uint256) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: address(uint160(a)).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#46)\n", + "markdown": "[CallInLoop.bad3_internal(address,uint256)](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L45-L47) has external calls inside a loop: [address(uint160(a)).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L46)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L45-L47", + "id": "59ef861c065e12f93ab520961e7f5806731ee2d9d4601a784d96e9c629bfd451", "check": "calls-loop", "impact": "Low", "confidence": "Medium" @@ -330,9 +182,9 @@ "source_mapping": { "start": 562, "length": 153, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 24, @@ -351,9 +203,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -404,9 +256,9 @@ "source_mapping": { "start": 653, "length": 45, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 26 @@ -421,9 +273,9 @@ "source_mapping": { "start": 562, "length": 153, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 24, @@ -442,9 +294,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -492,10 +344,10 @@ } } ], - "description": "CallInLoop.bad() (tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#26)\n", - "markdown": "[CallInLoop.bad()](tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#L24-L28) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#L26)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#L24-L28", - "id": "6cced5074b9c311682f603c75163ced753ba6a4ecca39cf4d565eef3f05b30f8", + "description": "CallInLoop.bad() (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#26)\n", + "markdown": "[CallInLoop.bad()](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L24-L28) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L24-L28", + "id": "6be8c6293c3db4b794b589ec91a9fd957f589bd30464dadc4f7dcd95db2e8ba4", "check": "calls-loop", "impact": "Low", "confidence": "Medium" @@ -504,18 +356,23 @@ "elements": [ { "type": "function", - "name": "bad3_internal", + "name": "bad2", "source_mapping": { - "start": 1142, - "length": 99, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "start": 721, + "length": 263, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ - 45, - 46, - 47 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 ], "starting_column": 5, "ending_column": 6 @@ -527,9 +384,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -571,40 +428,45 @@ "ending_column": 2 } }, - "signature": "bad3_internal(address,uint256)" + "signature": "bad2()" } }, { "type": "node", - "name": "address(uint160(a)).transfer(i)", + "name": "address(uint160(destinations[i])).transfer(i)", "source_mapping": { - "start": 1203, - "length": 31, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "start": 922, + "length": 45, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ - 46 + 35 ], - "starting_column": 9, - "ending_column": 40 + "starting_column": 13, + "ending_column": 58 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3_internal", + "name": "bad2", "source_mapping": { - "start": 1142, - "length": 99, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "start": 721, + "length": 263, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ - 45, - 46, - 47 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 ], "starting_column": 5, "ending_column": 6 @@ -616,9 +478,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -660,16 +522,154 @@ "ending_column": 2 } }, - "signature": "bad3_internal(address,uint256)" + "signature": "bad2()" + } + } + } + } + ], + "description": "CallInLoop.bad2() (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#35)\n", + "markdown": "[CallInLoop.bad2()](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L30-L37) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L35)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L30-L37", + "id": "95493082ccca79b3a3a5d15594928f164b1e2f66813d69c44dcaf264679fce5e", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "bad_base", + "source_mapping": { + "start": 180, + "length": 168, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 9, + 10, + 11, + 12, + 13 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CallInLoopBase", + "source_mapping": { + "start": 0, + "length": 350, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad_base()" + } + }, + { + "type": "node", + "name": "address(uint160(destinations_base[i])).transfer(i)", + "source_mapping": { + "start": 281, + "length": 50, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 11 + ], + "starting_column": 13, + "ending_column": 63 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad_base", + "source_mapping": { + "start": 180, + "length": 168, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 9, + 10, + 11, + 12, + 13 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CallInLoopBase", + "source_mapping": { + "start": 0, + "length": 350, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad_base()" } } } } ], - "description": "CallInLoop.bad3_internal(address,uint256) (tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: address(uint160(a)).transfer(i) (tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#46)\n", - "markdown": "[CallInLoop.bad3_internal(address,uint256)](tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#L45-L47) has external calls inside a loop: [address(uint160(a)).transfer(i)](tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#L46)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.5.16/multiple_calls_in_loop.sol#L45-L47", - "id": "a1df0d2cf47c14477c09214cc502b7706bf41258ef6f47452fa80dc24dea5647", + "description": "CallInLoopBase.bad_base() (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: address(uint160(destinations_base[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#11)\n", + "markdown": "[CallInLoopBase.bad_base()](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L9-L13) has external calls inside a loop: [address(uint160(destinations_base[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L9-L13", + "id": "ae7775e429b863310f0e884b47c7b03cbf94e5db6b9dbb7c24d5b49b6748b24b", "check": "calls-loop", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol b/tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol similarity index 100% rename from tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol rename to tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol diff --git a/tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol.0.6.11.MultipleCallsInLoop.json b/tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol.0.6.11.MultipleCallsInLoop.json similarity index 77% rename from tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol.0.6.11.MultipleCallsInLoop.json rename to tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol.0.6.11.MultipleCallsInLoop.json index 5cff7537b..f4c58469b 100644 --- a/tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol.0.6.11.MultipleCallsInLoop.json +++ b/tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol.0.6.11.MultipleCallsInLoop.json @@ -4,23 +4,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad3_internal", "source_mapping": { - "start": 721, - "length": 263, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "start": 1142, + "length": 99, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 + 45, + 46, + 47 ], "starting_column": 5, "ending_column": 6 @@ -32,9 +27,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -76,45 +71,40 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad3_internal(address,uint256)" } }, { "type": "node", - "name": "address(uint160(destinations[i])).transfer(i)", + "name": "address(uint160(a)).transfer(i)", "source_mapping": { - "start": 922, - "length": 45, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "start": 1203, + "length": 31, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ - 35 + 46 ], - "starting_column": 13, - "ending_column": 58 + "starting_column": 9, + "ending_column": 40 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad3_internal", "source_mapping": { - "start": 721, - "length": 263, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "start": 1142, + "length": 99, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 + 45, + 46, + 47 ], "starting_column": 5, "ending_column": 6 @@ -126,9 +116,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -170,16 +160,154 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad3_internal(address,uint256)" + } + } + } + } + ], + "description": "CallInLoop.bad3_internal(address,uint256) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: address(uint160(a)).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#46)\n", + "markdown": "[CallInLoop.bad3_internal(address,uint256)](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L45-L47) has external calls inside a loop: [address(uint160(a)).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L46)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L45-L47", + "id": "1275fac0d6d8334883dd78ed0b1b2e65781ea34bf7febaf226e85d3e5181ee2a", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "bad_base", + "source_mapping": { + "start": 180, + "length": 168, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 9, + 10, + 11, + 12, + 13 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CallInLoopBase", + "source_mapping": { + "start": 0, + "length": 350, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad_base()" + } + }, + { + "type": "node", + "name": "address(uint160(destinations_base[i])).transfer(i)", + "source_mapping": { + "start": 281, + "length": 50, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 11 + ], + "starting_column": 13, + "ending_column": 63 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad_base", + "source_mapping": { + "start": 180, + "length": 168, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 9, + 10, + 11, + 12, + 13 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CallInLoopBase", + "source_mapping": { + "start": 0, + "length": 350, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad_base()" } } } } ], - "description": "CallInLoop.bad2() (tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#35)\n", - "markdown": "[CallInLoop.bad2()](tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#L30-L37) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#L35)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#L30-L37", - "id": "3b1948778e97667e6e749205edf70beeac8b8db364e68da43900136e2e7f4c8b", + "description": "CallInLoopBase.bad_base() (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: address(uint160(destinations_base[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#11)\n", + "markdown": "[CallInLoopBase.bad_base()](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L9-L13) has external calls inside a loop: [address(uint160(destinations_base[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L9-L13", + "id": "1c841cf5332b7dc52c8ff653431ef284e000bcc14523dd09cbbf3f74dc715cc6", "check": "calls-loop", "impact": "Low", "confidence": "Medium" @@ -192,9 +320,9 @@ "source_mapping": { "start": 562, "length": 153, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 24, @@ -213,9 +341,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -266,9 +394,9 @@ "source_mapping": { "start": 653, "length": 45, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 26 @@ -283,9 +411,9 @@ "source_mapping": { "start": 562, "length": 153, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 24, @@ -304,9 +432,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -354,10 +482,10 @@ } } ], - "description": "CallInLoop.bad() (tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#26)\n", - "markdown": "[CallInLoop.bad()](tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#L24-L28) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#L26)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#L24-L28", - "id": "5aef9fe610ef0caca726874226906ac1246d969d2d8ed6cde33e09601d0c7117", + "description": "CallInLoop.bad() (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#26)\n", + "markdown": "[CallInLoop.bad()](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L24-L28) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L24-L28", + "id": "d9a385d84b697d514f78bac230816bfd8f859bbdc1a46cfec44bc2b9f96772c6", "check": "calls-loop", "impact": "Low", "confidence": "Medium" @@ -366,156 +494,23 @@ "elements": [ { "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 180, - "length": 168, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoopBase", - "source_mapping": { - "start": 0, - "length": 350, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - }, - { - "type": "node", - "name": "address(uint160(destinations_base[i])).transfer(i)", - "source_mapping": { - "start": 281, - "length": 50, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 13, - "ending_column": 63 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 180, - "length": 168, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoopBase", - "source_mapping": { - "start": 0, - "length": 350, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - } - } - } - ], - "description": "CallInLoopBase.bad_base() (tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: address(uint160(destinations_base[i])).transfer(i) (tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#11)\n", - "markdown": "[CallInLoopBase.bad_base()](tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#L9-L13) has external calls inside a loop: [address(uint160(destinations_base[i])).transfer(i)](tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#L11)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#L9-L13", - "id": "676f5509699708442e5b513a2250f8e0e64781b139d2eafd86273c17528a16ce", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3_internal", + "name": "bad2", "source_mapping": { - "start": 1142, - "length": 99, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "start": 721, + "length": 263, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ - 45, - 46, - 47 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 ], "starting_column": 5, "ending_column": 6 @@ -527,9 +522,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -571,40 +566,45 @@ "ending_column": 2 } }, - "signature": "bad3_internal(address,uint256)" + "signature": "bad2()" } }, { "type": "node", - "name": "address(uint160(a)).transfer(i)", + "name": "address(uint160(destinations[i])).transfer(i)", "source_mapping": { - "start": 1203, - "length": 31, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "start": 922, + "length": 45, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ - 46 + 35 ], - "starting_column": 9, - "ending_column": 40 + "starting_column": 13, + "ending_column": 58 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3_internal", + "name": "bad2", "source_mapping": { - "start": 1142, - "length": 99, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "start": 721, + "length": 263, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ - 45, - 46, - 47 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 ], "starting_column": 5, "ending_column": 6 @@ -616,9 +616,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -660,16 +660,16 @@ "ending_column": 2 } }, - "signature": "bad3_internal(address,uint256)" + "signature": "bad2()" } } } } ], - "description": "CallInLoop.bad3_internal(address,uint256) (tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: address(uint160(a)).transfer(i) (tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#46)\n", - "markdown": "[CallInLoop.bad3_internal(address,uint256)](tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#L45-L47) has external calls inside a loop: [address(uint160(a)).transfer(i)](tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#L46)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.6.11/multiple_calls_in_loop.sol#L45-L47", - "id": "cc16e95c30a63cb84d8ed1c59e3cc1fd338d861e8c8a2973764e017df3c2f38f", + "description": "CallInLoop.bad2() (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#35)\n", + "markdown": "[CallInLoop.bad2()](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L30-L37) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L35)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L30-L37", + "id": "ea1a84f07ae33b86a4de95eea2c87a684edaa037e4391a948acab36fc08169f4", "check": "calls-loop", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol b/tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol similarity index 100% rename from tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol rename to tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol diff --git a/tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol.0.7.6.MultipleCallsInLoop.json b/tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol.0.7.6.MultipleCallsInLoop.json similarity index 77% rename from tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol.0.7.6.MultipleCallsInLoop.json rename to tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol.0.7.6.MultipleCallsInLoop.json index dda5cd492..de318ce9f 100644 --- a/tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol.0.7.6.MultipleCallsInLoop.json +++ b/tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol.0.7.6.MultipleCallsInLoop.json @@ -1,5 +1,183 @@ [ [ + { + "elements": [ + { + "type": "function", + "name": "bad", + "source_mapping": { + "start": 562, + "length": 153, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 24, + 25, + 26, + 27, + 28 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CallInLoop", + "source_mapping": { + "start": 352, + "length": 892, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad()" + } + }, + { + "type": "node", + "name": "address(uint160(destinations[i])).transfer(i)", + "source_mapping": { + "start": 653, + "length": 45, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 26 + ], + "starting_column": 13, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad", + "source_mapping": { + "start": 562, + "length": 153, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 24, + 25, + 26, + 27, + 28 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CallInLoop", + "source_mapping": { + "start": 352, + "length": 892, + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "is_dependency": false, + "lines": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad()" + } + } + } + } + ], + "description": "CallInLoop.bad() (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#26)\n", + "markdown": "[CallInLoop.bad()](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L24-L28) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L24-L28", + "id": "05e47489f317ba821a515f42e75e88afd06d13e4a4e28df3de13e9b08c5c82e6", + "check": "calls-loop", + "impact": "Low", + "confidence": "Medium" + }, { "elements": [ { @@ -8,9 +186,9 @@ "source_mapping": { "start": 1142, "length": 99, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 45, @@ -27,9 +205,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -80,9 +258,9 @@ "source_mapping": { "start": 1203, "length": 31, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 46 @@ -97,9 +275,9 @@ "source_mapping": { "start": 1142, "length": 99, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 45, @@ -116,9 +294,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -166,10 +344,10 @@ } } ], - "description": "CallInLoop.bad3_internal(address,uint256) (tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: address(uint160(a)).transfer(i) (tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#46)\n", - "markdown": "[CallInLoop.bad3_internal(address,uint256)](tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#L45-L47) has external calls inside a loop: [address(uint160(a)).transfer(i)](tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#L46)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#L45-L47", - "id": "2834a80b6dbcd04a8c58bd803038e5f03936c886067d1ee39d0a31d0bb9e88ae", + "description": "CallInLoop.bad3_internal(address,uint256) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: address(uint160(a)).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#46)\n", + "markdown": "[CallInLoop.bad3_internal(address,uint256)](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L45-L47) has external calls inside a loop: [address(uint160(a)).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L46)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L45-L47", + "id": "25f60430b97bcd867b254ba08df9477befadb17e5ba8451fbe8223132246a2f1", "check": "calls-loop", "impact": "Low", "confidence": "Medium" @@ -182,9 +360,9 @@ "source_mapping": { "start": 180, "length": 168, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 9, @@ -203,9 +381,9 @@ "source_mapping": { "start": 0, "length": 350, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 1, @@ -236,9 +414,9 @@ "source_mapping": { "start": 281, "length": 50, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 11 @@ -253,9 +431,9 @@ "source_mapping": { "start": 180, "length": 168, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 9, @@ -274,9 +452,9 @@ "source_mapping": { "start": 0, "length": 350, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 1, @@ -304,10 +482,10 @@ } } ], - "description": "CallInLoopBase.bad_base() (tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: address(uint160(destinations_base[i])).transfer(i) (tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#11)\n", - "markdown": "[CallInLoopBase.bad_base()](tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#L9-L13) has external calls inside a loop: [address(uint160(destinations_base[i])).transfer(i)](tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#L11)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#L9-L13", - "id": "2cb70798cc39fa47453799bd93bf9275930f21bcbfb2746e57cf2b77700b8cd8", + "description": "CallInLoopBase.bad_base() (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: address(uint160(destinations_base[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#11)\n", + "markdown": "[CallInLoopBase.bad_base()](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L9-L13) has external calls inside a loop: [address(uint160(destinations_base[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L9-L13", + "id": "c605d70888ef228103bd47badf6f2df4426d02a6389045289a750996776c6e32", "check": "calls-loop", "impact": "Low", "confidence": "Medium" @@ -320,9 +498,9 @@ "source_mapping": { "start": 721, "length": 263, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 30, @@ -344,9 +522,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -397,9 +575,9 @@ "source_mapping": { "start": 922, "length": 45, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 35 @@ -414,9 +592,9 @@ "source_mapping": { "start": 721, "length": 263, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 30, @@ -438,9 +616,9 @@ "source_mapping": { "start": 352, "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", "is_dependency": false, "lines": [ 16, @@ -488,188 +666,10 @@ } } ], - "description": "CallInLoop.bad2() (tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#35)\n", - "markdown": "[CallInLoop.bad2()](tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#L30-L37) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#L35)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#L30-L37", - "id": "3a39574e82d2f7f3b099bb034e0ff24b44e59a22109608d09a9ff3316409b1d2", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 562, - "length": 153, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - }, - { - "type": "node", - "name": "address(uint160(destinations[i])).transfer(i)", - "source_mapping": { - "start": 653, - "length": 45, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 13, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 562, - "length": 153, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - } - } - } - ], - "description": "CallInLoop.bad() (tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#26)\n", - "markdown": "[CallInLoop.bad()](tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#L24-L28) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#L26)\n", - "first_markdown_element": "tests/detectors/calls-loop/0.7.6/multiple_calls_in_loop.sol#L24-L28", - "id": "f11a3c532d51a71adce3b5df738ce354d0a70ea3be928459582028cb72b5fdbd", + "description": "CallInLoop.bad2() (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#35)\n", + "markdown": "[CallInLoop.bad2()](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L30-L37) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L35)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L30-L37", + "id": "d44cd63abfefcfac88d0bdde0429428c81cde6706d9e890cbe3b6f2dcdd7cb96", "check": "calls-loop", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/constable-states/0.4.25/const_state_variables.sol b/tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol similarity index 100% rename from tests/detectors/constable-states/0.4.25/const_state_variables.sol rename to tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol diff --git a/tests/detectors/constable-states/0.4.25/const_state_variables.sol.0.4.25.CouldBeConstant.json b/tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol.0.4.25.CouldBeConstant.json similarity index 69% rename from tests/detectors/constable-states/0.4.25/const_state_variables.sol.0.4.25.CouldBeConstant.json rename to tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol.0.4.25.CouldBeConstant.json index 51a485f5b..fed1ecaf8 100644 --- a/tests/detectors/constable-states/0.4.25/const_state_variables.sol.0.4.25.CouldBeConstant.json +++ b/tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol.0.4.25.CouldBeConstant.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 333, "length": 20, - "filename_relative": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "is_dependency": false, "lines": [ 14 @@ -25,9 +25,9 @@ "source_mapping": { "start": 29, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "is_dependency": false, "lines": [ 4, @@ -56,9 +56,9 @@ } } ], - "description": "A.text2 (tests/detectors/constable-states/0.4.25/const_state_variables.sol#14) should be constant \n", - "markdown": "[A.text2](tests/detectors/constable-states/0.4.25/const_state_variables.sol#L14) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.4.25/const_state_variables.sol#L14", + "description": "A.text2 (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#14) should be constant \n", + "markdown": "[A.text2](tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L14) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L14", "id": "2f06e04545cea7e7a8998c65d5419f335bf2579a6ce6a832eac9c87392fd5c1a", "check": "constable-states", "impact": "Optimization", @@ -72,9 +72,9 @@ "source_mapping": { "start": 496, "length": 76, - "filename_relative": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "is_dependency": false, "lines": [ 26 @@ -89,9 +89,9 @@ "source_mapping": { "start": 473, "length": 271, - "filename_relative": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "is_dependency": false, "lines": [ 24, @@ -116,9 +116,9 @@ } } ], - "description": "B.mySistersAddress (tests/detectors/constable-states/0.4.25/const_state_variables.sol#26) should be constant \n", - "markdown": "[B.mySistersAddress](tests/detectors/constable-states/0.4.25/const_state_variables.sol#L26) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.4.25/const_state_variables.sol#L26", + "description": "B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#26) should be constant \n", + "markdown": "[B.mySistersAddress](tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L26) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L26", "id": "3b5bff93954a48a79387e7981e8c45d78edc575a0988a10f1c7f439b9f930539", "check": "constable-states", "impact": "Optimization", @@ -132,9 +132,9 @@ "source_mapping": { "start": 132, "length": 76, - "filename_relative": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "is_dependency": false, "lines": [ 7 @@ -149,9 +149,9 @@ "source_mapping": { "start": 29, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "is_dependency": false, "lines": [ 4, @@ -180,9 +180,9 @@ } } ], - "description": "A.myFriendsAddress (tests/detectors/constable-states/0.4.25/const_state_variables.sol#7) should be constant \n", - "markdown": "[A.myFriendsAddress](tests/detectors/constable-states/0.4.25/const_state_variables.sol#L7) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.4.25/const_state_variables.sol#L7", + "description": "A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#7) should be constant \n", + "markdown": "[A.myFriendsAddress](tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L7) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L7", "id": "52fd72f6870c4b504d1bcf9fb44249658e2077474d66208a33a47d2668b8db49", "check": "constable-states", "impact": "Optimization", @@ -196,9 +196,9 @@ "source_mapping": { "start": 793, "length": 42, - "filename_relative": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "is_dependency": false, "lines": [ 42 @@ -213,9 +213,9 @@ "source_mapping": { "start": 746, "length": 423, - "filename_relative": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "is_dependency": false, "lines": [ 39, @@ -245,9 +245,9 @@ } } ], - "description": "MyConc.should_be_constant (tests/detectors/constable-states/0.4.25/const_state_variables.sol#42) should be constant \n", - "markdown": "[MyConc.should_be_constant](tests/detectors/constable-states/0.4.25/const_state_variables.sol#L42) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.4.25/const_state_variables.sol#L42", + "description": "MyConc.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#42) should be constant \n", + "markdown": "[MyConc.should_be_constant](tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L42) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L42", "id": "8d08797efc8230b480ec669c7e2bf53c3b3d16bc59bf7770934b34fd892934f8", "check": "constable-states", "impact": "Optimization", @@ -261,9 +261,9 @@ "source_mapping": { "start": 841, "length": 33, - "filename_relative": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "is_dependency": false, "lines": [ 43 @@ -278,9 +278,9 @@ "source_mapping": { "start": 746, "length": 423, - "filename_relative": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "is_dependency": false, "lines": [ 39, @@ -310,9 +310,9 @@ } } ], - "description": "MyConc.should_be_constant_2 (tests/detectors/constable-states/0.4.25/const_state_variables.sol#43) should be constant \n", - "markdown": "[MyConc.should_be_constant_2](tests/detectors/constable-states/0.4.25/const_state_variables.sol#L43) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.4.25/const_state_variables.sol#L43", + "description": "MyConc.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#43) should be constant \n", + "markdown": "[MyConc.should_be_constant_2](tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L43) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L43", "id": "d08c6d1e331083b42c45c222691dd1e6d880814c66d114971875337ca61ba9c9", "check": "constable-states", "impact": "Optimization", @@ -326,9 +326,9 @@ "source_mapping": { "start": 237, "length": 20, - "filename_relative": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "is_dependency": false, "lines": [ 10 @@ -343,9 +343,9 @@ "source_mapping": { "start": 29, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.4.25/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", "is_dependency": false, "lines": [ 4, @@ -374,9 +374,9 @@ } } ], - "description": "A.test (tests/detectors/constable-states/0.4.25/const_state_variables.sol#10) should be constant \n", - "markdown": "[A.test](tests/detectors/constable-states/0.4.25/const_state_variables.sol#L10) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.4.25/const_state_variables.sol#L10", + "description": "A.test (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#10) should be constant \n", + "markdown": "[A.test](tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L10) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L10", "id": "e407a1b57b4d25949ef7c4e6d97197605857099a94774a9c7a848d7dd3463668", "check": "constable-states", "impact": "Optimization", diff --git a/tests/detectors/constable-states/0.5.16/const_state_variables.sol b/tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol similarity index 100% rename from tests/detectors/constable-states/0.5.16/const_state_variables.sol rename to tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol diff --git a/tests/detectors/constable-states/0.5.16/const_state_variables.sol.0.5.16.CouldBeConstant.json b/tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol.0.5.16.CouldBeConstant.json similarity index 70% rename from tests/detectors/constable-states/0.5.16/const_state_variables.sol.0.5.16.CouldBeConstant.json rename to tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol.0.5.16.CouldBeConstant.json index f9ed17eb1..f760111fc 100644 --- a/tests/detectors/constable-states/0.5.16/const_state_variables.sol.0.5.16.CouldBeConstant.json +++ b/tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol.0.5.16.CouldBeConstant.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 880, "length": 38, - "filename_relative": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "is_dependency": false, "lines": [ 44 @@ -25,9 +25,9 @@ "source_mapping": { "start": 746, "length": 467, - "filename_relative": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "is_dependency": false, "lines": [ 39, @@ -58,9 +58,9 @@ } } ], - "description": "MyConc.should_be_constant_3 (tests/detectors/constable-states/0.5.16/const_state_variables.sol#44) should be constant \n", - "markdown": "[MyConc.should_be_constant_3](tests/detectors/constable-states/0.5.16/const_state_variables.sol#L44) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.5.16/const_state_variables.sol#L44", + "description": "MyConc.should_be_constant_3 (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#44) should be constant \n", + "markdown": "[MyConc.should_be_constant_3](tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L44) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L44", "id": "29247b0a9939e854ad51bf3b2f58705156aa8b7e446e646b1832467d362b5b3e", "check": "constable-states", "impact": "Optimization", @@ -74,9 +74,9 @@ "source_mapping": { "start": 333, "length": 20, - "filename_relative": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "is_dependency": false, "lines": [ 14 @@ -91,9 +91,9 @@ "source_mapping": { "start": 29, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "is_dependency": false, "lines": [ 4, @@ -122,9 +122,9 @@ } } ], - "description": "A.text2 (tests/detectors/constable-states/0.5.16/const_state_variables.sol#14) should be constant \n", - "markdown": "[A.text2](tests/detectors/constable-states/0.5.16/const_state_variables.sol#L14) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.5.16/const_state_variables.sol#L14", + "description": "A.text2 (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#14) should be constant \n", + "markdown": "[A.text2](tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L14) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L14", "id": "2f06e04545cea7e7a8998c65d5419f335bf2579a6ce6a832eac9c87392fd5c1a", "check": "constable-states", "impact": "Optimization", @@ -138,9 +138,9 @@ "source_mapping": { "start": 496, "length": 76, - "filename_relative": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "is_dependency": false, "lines": [ 26 @@ -155,9 +155,9 @@ "source_mapping": { "start": 473, "length": 271, - "filename_relative": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "is_dependency": false, "lines": [ 24, @@ -182,9 +182,9 @@ } } ], - "description": "B.mySistersAddress (tests/detectors/constable-states/0.5.16/const_state_variables.sol#26) should be constant \n", - "markdown": "[B.mySistersAddress](tests/detectors/constable-states/0.5.16/const_state_variables.sol#L26) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.5.16/const_state_variables.sol#L26", + "description": "B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#26) should be constant \n", + "markdown": "[B.mySistersAddress](tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L26) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L26", "id": "3b5bff93954a48a79387e7981e8c45d78edc575a0988a10f1c7f439b9f930539", "check": "constable-states", "impact": "Optimization", @@ -198,9 +198,9 @@ "source_mapping": { "start": 132, "length": 76, - "filename_relative": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "is_dependency": false, "lines": [ 7 @@ -215,9 +215,9 @@ "source_mapping": { "start": 29, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "is_dependency": false, "lines": [ 4, @@ -246,9 +246,9 @@ } } ], - "description": "A.myFriendsAddress (tests/detectors/constable-states/0.5.16/const_state_variables.sol#7) should be constant \n", - "markdown": "[A.myFriendsAddress](tests/detectors/constable-states/0.5.16/const_state_variables.sol#L7) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.5.16/const_state_variables.sol#L7", + "description": "A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#7) should be constant \n", + "markdown": "[A.myFriendsAddress](tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L7) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L7", "id": "52fd72f6870c4b504d1bcf9fb44249658e2077474d66208a33a47d2668b8db49", "check": "constable-states", "impact": "Optimization", @@ -262,9 +262,9 @@ "source_mapping": { "start": 793, "length": 42, - "filename_relative": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "is_dependency": false, "lines": [ 42 @@ -279,9 +279,9 @@ "source_mapping": { "start": 746, "length": 467, - "filename_relative": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "is_dependency": false, "lines": [ 39, @@ -312,9 +312,9 @@ } } ], - "description": "MyConc.should_be_constant (tests/detectors/constable-states/0.5.16/const_state_variables.sol#42) should be constant \n", - "markdown": "[MyConc.should_be_constant](tests/detectors/constable-states/0.5.16/const_state_variables.sol#L42) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.5.16/const_state_variables.sol#L42", + "description": "MyConc.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#42) should be constant \n", + "markdown": "[MyConc.should_be_constant](tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L42) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L42", "id": "8d08797efc8230b480ec669c7e2bf53c3b3d16bc59bf7770934b34fd892934f8", "check": "constable-states", "impact": "Optimization", @@ -328,9 +328,9 @@ "source_mapping": { "start": 841, "length": 33, - "filename_relative": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "is_dependency": false, "lines": [ 43 @@ -345,9 +345,9 @@ "source_mapping": { "start": 746, "length": 467, - "filename_relative": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "is_dependency": false, "lines": [ 39, @@ -378,9 +378,9 @@ } } ], - "description": "MyConc.should_be_constant_2 (tests/detectors/constable-states/0.5.16/const_state_variables.sol#43) should be constant \n", - "markdown": "[MyConc.should_be_constant_2](tests/detectors/constable-states/0.5.16/const_state_variables.sol#L43) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.5.16/const_state_variables.sol#L43", + "description": "MyConc.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#43) should be constant \n", + "markdown": "[MyConc.should_be_constant_2](tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L43) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L43", "id": "d08c6d1e331083b42c45c222691dd1e6d880814c66d114971875337ca61ba9c9", "check": "constable-states", "impact": "Optimization", @@ -394,9 +394,9 @@ "source_mapping": { "start": 237, "length": 20, - "filename_relative": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "is_dependency": false, "lines": [ 10 @@ -411,9 +411,9 @@ "source_mapping": { "start": 29, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.5.16/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", "is_dependency": false, "lines": [ 4, @@ -442,9 +442,9 @@ } } ], - "description": "A.test (tests/detectors/constable-states/0.5.16/const_state_variables.sol#10) should be constant \n", - "markdown": "[A.test](tests/detectors/constable-states/0.5.16/const_state_variables.sol#L10) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.5.16/const_state_variables.sol#L10", + "description": "A.test (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#10) should be constant \n", + "markdown": "[A.test](tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L10) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L10", "id": "e407a1b57b4d25949ef7c4e6d97197605857099a94774a9c7a848d7dd3463668", "check": "constable-states", "impact": "Optimization", diff --git a/tests/detectors/constable-states/0.6.11/const_state_variables.sol b/tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol similarity index 100% rename from tests/detectors/constable-states/0.6.11/const_state_variables.sol rename to tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol diff --git a/tests/detectors/constable-states/0.6.11/const_state_variables.sol.0.6.11.CouldBeConstant.json b/tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol.0.6.11.CouldBeConstant.json similarity index 70% rename from tests/detectors/constable-states/0.6.11/const_state_variables.sol.0.6.11.CouldBeConstant.json rename to tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol.0.6.11.CouldBeConstant.json index ac3608f81..702bda7b9 100644 --- a/tests/detectors/constable-states/0.6.11/const_state_variables.sol.0.6.11.CouldBeConstant.json +++ b/tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol.0.6.11.CouldBeConstant.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 305, "length": 20, - "filename_relative": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "is_dependency": false, "lines": [ 12 @@ -25,9 +25,9 @@ "source_mapping": { "start": 1, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "is_dependency": false, "lines": [ 2, @@ -56,9 +56,9 @@ } } ], - "description": "A.text2 (tests/detectors/constable-states/0.6.11/const_state_variables.sol#12) should be constant \n", - "markdown": "[A.text2](tests/detectors/constable-states/0.6.11/const_state_variables.sol#L12) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.6.11/const_state_variables.sol#L12", + "description": "A.text2 (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#12) should be constant \n", + "markdown": "[A.text2](tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L12) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L12", "id": "2f06e04545cea7e7a8998c65d5419f335bf2579a6ce6a832eac9c87392fd5c1a", "check": "constable-states", "impact": "Optimization", @@ -72,9 +72,9 @@ "source_mapping": { "start": 811, "length": 33, - "filename_relative": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "is_dependency": false, "lines": [ 41 @@ -89,9 +89,9 @@ "source_mapping": { "start": 718, "length": 539, - "filename_relative": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -123,9 +123,9 @@ } } ], - "description": "Bad.should_be_constant_2 (tests/detectors/constable-states/0.6.11/const_state_variables.sol#41) should be constant \n", - "markdown": "[Bad.should_be_constant_2](tests/detectors/constable-states/0.6.11/const_state_variables.sol#L41) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.6.11/const_state_variables.sol#L41", + "description": "Bad.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#41) should be constant \n", + "markdown": "[Bad.should_be_constant_2](tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L41) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L41", "id": "3a8b682f7960750cd8228d6cd3d0bb5d7d6f9faaf1a044de2fa7069d8e475af2", "check": "constable-states", "impact": "Optimization", @@ -139,9 +139,9 @@ "source_mapping": { "start": 468, "length": 76, - "filename_relative": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "is_dependency": false, "lines": [ 24 @@ -156,9 +156,9 @@ "source_mapping": { "start": 445, "length": 271, - "filename_relative": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "is_dependency": false, "lines": [ 22, @@ -183,9 +183,9 @@ } } ], - "description": "B.mySistersAddress (tests/detectors/constable-states/0.6.11/const_state_variables.sol#24) should be constant \n", - "markdown": "[B.mySistersAddress](tests/detectors/constable-states/0.6.11/const_state_variables.sol#L24) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.6.11/const_state_variables.sol#L24", + "description": "B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#24) should be constant \n", + "markdown": "[B.mySistersAddress](tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L24) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L24", "id": "3b5bff93954a48a79387e7981e8c45d78edc575a0988a10f1c7f439b9f930539", "check": "constable-states", "impact": "Optimization", @@ -199,9 +199,9 @@ "source_mapping": { "start": 104, "length": 76, - "filename_relative": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "is_dependency": false, "lines": [ 5 @@ -216,9 +216,9 @@ "source_mapping": { "start": 1, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "is_dependency": false, "lines": [ 2, @@ -247,9 +247,9 @@ } } ], - "description": "A.myFriendsAddress (tests/detectors/constable-states/0.6.11/const_state_variables.sol#5) should be constant \n", - "markdown": "[A.myFriendsAddress](tests/detectors/constable-states/0.6.11/const_state_variables.sol#L5) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.6.11/const_state_variables.sol#L5", + "description": "A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#5) should be constant \n", + "markdown": "[A.myFriendsAddress](tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L5) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L5", "id": "52fd72f6870c4b504d1bcf9fb44249658e2077474d66208a33a47d2668b8db49", "check": "constable-states", "impact": "Optimization", @@ -263,9 +263,9 @@ "source_mapping": { "start": 763, "length": 42, - "filename_relative": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "is_dependency": false, "lines": [ 40 @@ -280,9 +280,9 @@ "source_mapping": { "start": 718, "length": 539, - "filename_relative": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -314,9 +314,9 @@ } } ], - "description": "Bad.should_be_constant (tests/detectors/constable-states/0.6.11/const_state_variables.sol#40) should be constant \n", - "markdown": "[Bad.should_be_constant](tests/detectors/constable-states/0.6.11/const_state_variables.sol#L40) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.6.11/const_state_variables.sol#L40", + "description": "Bad.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#40) should be constant \n", + "markdown": "[Bad.should_be_constant](tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L40) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L40", "id": "87097c03d57b72ad7c15336eb44e5a30054c50f8daff32e08bc4fbd97852961c", "check": "constable-states", "impact": "Optimization", @@ -330,9 +330,9 @@ "source_mapping": { "start": 850, "length": 38, - "filename_relative": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "is_dependency": false, "lines": [ 42 @@ -347,9 +347,9 @@ "source_mapping": { "start": 718, "length": 539, - "filename_relative": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -381,9 +381,9 @@ } } ], - "description": "Bad.should_be_constant_3 (tests/detectors/constable-states/0.6.11/const_state_variables.sol#42) should be constant \n", - "markdown": "[Bad.should_be_constant_3](tests/detectors/constable-states/0.6.11/const_state_variables.sol#L42) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.6.11/const_state_variables.sol#L42", + "description": "Bad.should_be_constant_3 (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#42) should be constant \n", + "markdown": "[Bad.should_be_constant_3](tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L42) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L42", "id": "8e991c1370b1adb10f01f2d7e48f341dee92a98b91b56ccb291d9149d2da97d0", "check": "constable-states", "impact": "Optimization", @@ -397,9 +397,9 @@ "source_mapping": { "start": 209, "length": 20, - "filename_relative": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "is_dependency": false, "lines": [ 8 @@ -414,9 +414,9 @@ "source_mapping": { "start": 1, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.6.11/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", "is_dependency": false, "lines": [ 2, @@ -445,9 +445,9 @@ } } ], - "description": "A.test (tests/detectors/constable-states/0.6.11/const_state_variables.sol#8) should be constant \n", - "markdown": "[A.test](tests/detectors/constable-states/0.6.11/const_state_variables.sol#L8) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.6.11/const_state_variables.sol#L8", + "description": "A.test (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#8) should be constant \n", + "markdown": "[A.test](tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L8) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L8", "id": "e407a1b57b4d25949ef7c4e6d97197605857099a94774a9c7a848d7dd3463668", "check": "constable-states", "impact": "Optimization", diff --git a/tests/detectors/constable-states/0.7.6/const_state_variables.sol b/tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol similarity index 100% rename from tests/detectors/constable-states/0.7.6/const_state_variables.sol rename to tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol diff --git a/tests/detectors/constable-states/0.7.6/const_state_variables.sol.0.7.6.CouldBeConstant.json b/tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol.0.7.6.CouldBeConstant.json similarity index 70% rename from tests/detectors/constable-states/0.7.6/const_state_variables.sol.0.7.6.CouldBeConstant.json rename to tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol.0.7.6.CouldBeConstant.json index d54beb405..4b8e88864 100644 --- a/tests/detectors/constable-states/0.7.6/const_state_variables.sol.0.7.6.CouldBeConstant.json +++ b/tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol.0.7.6.CouldBeConstant.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 305, "length": 20, - "filename_relative": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "is_dependency": false, "lines": [ 12 @@ -25,9 +25,9 @@ "source_mapping": { "start": 1, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "is_dependency": false, "lines": [ 2, @@ -56,9 +56,9 @@ } } ], - "description": "A.text2 (tests/detectors/constable-states/0.7.6/const_state_variables.sol#12) should be constant \n", - "markdown": "[A.text2](tests/detectors/constable-states/0.7.6/const_state_variables.sol#L12) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.7.6/const_state_variables.sol#L12", + "description": "A.text2 (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#12) should be constant \n", + "markdown": "[A.text2](tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L12) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L12", "id": "2f06e04545cea7e7a8998c65d5419f335bf2579a6ce6a832eac9c87392fd5c1a", "check": "constable-states", "impact": "Optimization", @@ -72,9 +72,9 @@ "source_mapping": { "start": 811, "length": 33, - "filename_relative": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "is_dependency": false, "lines": [ 41 @@ -89,9 +89,9 @@ "source_mapping": { "start": 718, "length": 531, - "filename_relative": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -122,9 +122,9 @@ } } ], - "description": "Bad.should_be_constant_2 (tests/detectors/constable-states/0.7.6/const_state_variables.sol#41) should be constant \n", - "markdown": "[Bad.should_be_constant_2](tests/detectors/constable-states/0.7.6/const_state_variables.sol#L41) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.7.6/const_state_variables.sol#L41", + "description": "Bad.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#41) should be constant \n", + "markdown": "[Bad.should_be_constant_2](tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L41) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L41", "id": "3a8b682f7960750cd8228d6cd3d0bb5d7d6f9faaf1a044de2fa7069d8e475af2", "check": "constable-states", "impact": "Optimization", @@ -138,9 +138,9 @@ "source_mapping": { "start": 468, "length": 76, - "filename_relative": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "is_dependency": false, "lines": [ 24 @@ -155,9 +155,9 @@ "source_mapping": { "start": 445, "length": 271, - "filename_relative": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "is_dependency": false, "lines": [ 22, @@ -182,9 +182,9 @@ } } ], - "description": "B.mySistersAddress (tests/detectors/constable-states/0.7.6/const_state_variables.sol#24) should be constant \n", - "markdown": "[B.mySistersAddress](tests/detectors/constable-states/0.7.6/const_state_variables.sol#L24) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.7.6/const_state_variables.sol#L24", + "description": "B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#24) should be constant \n", + "markdown": "[B.mySistersAddress](tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L24) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L24", "id": "3b5bff93954a48a79387e7981e8c45d78edc575a0988a10f1c7f439b9f930539", "check": "constable-states", "impact": "Optimization", @@ -198,9 +198,9 @@ "source_mapping": { "start": 104, "length": 76, - "filename_relative": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "is_dependency": false, "lines": [ 5 @@ -215,9 +215,9 @@ "source_mapping": { "start": 1, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "is_dependency": false, "lines": [ 2, @@ -246,9 +246,9 @@ } } ], - "description": "A.myFriendsAddress (tests/detectors/constable-states/0.7.6/const_state_variables.sol#5) should be constant \n", - "markdown": "[A.myFriendsAddress](tests/detectors/constable-states/0.7.6/const_state_variables.sol#L5) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.7.6/const_state_variables.sol#L5", + "description": "A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#5) should be constant \n", + "markdown": "[A.myFriendsAddress](tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L5) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L5", "id": "52fd72f6870c4b504d1bcf9fb44249658e2077474d66208a33a47d2668b8db49", "check": "constable-states", "impact": "Optimization", @@ -262,9 +262,9 @@ "source_mapping": { "start": 763, "length": 42, - "filename_relative": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "is_dependency": false, "lines": [ 40 @@ -279,9 +279,9 @@ "source_mapping": { "start": 718, "length": 531, - "filename_relative": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -312,9 +312,9 @@ } } ], - "description": "Bad.should_be_constant (tests/detectors/constable-states/0.7.6/const_state_variables.sol#40) should be constant \n", - "markdown": "[Bad.should_be_constant](tests/detectors/constable-states/0.7.6/const_state_variables.sol#L40) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.7.6/const_state_variables.sol#L40", + "description": "Bad.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#40) should be constant \n", + "markdown": "[Bad.should_be_constant](tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L40) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L40", "id": "87097c03d57b72ad7c15336eb44e5a30054c50f8daff32e08bc4fbd97852961c", "check": "constable-states", "impact": "Optimization", @@ -328,9 +328,9 @@ "source_mapping": { "start": 850, "length": 38, - "filename_relative": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "is_dependency": false, "lines": [ 42 @@ -345,9 +345,9 @@ "source_mapping": { "start": 718, "length": 531, - "filename_relative": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -378,9 +378,9 @@ } } ], - "description": "Bad.should_be_constant_3 (tests/detectors/constable-states/0.7.6/const_state_variables.sol#42) should be constant \n", - "markdown": "[Bad.should_be_constant_3](tests/detectors/constable-states/0.7.6/const_state_variables.sol#L42) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.7.6/const_state_variables.sol#L42", + "description": "Bad.should_be_constant_3 (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#42) should be constant \n", + "markdown": "[Bad.should_be_constant_3](tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L42) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L42", "id": "8e991c1370b1adb10f01f2d7e48f341dee92a98b91b56ccb291d9149d2da97d0", "check": "constable-states", "impact": "Optimization", @@ -394,9 +394,9 @@ "source_mapping": { "start": 209, "length": 20, - "filename_relative": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "is_dependency": false, "lines": [ 8 @@ -411,9 +411,9 @@ "source_mapping": { "start": 1, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.7.6/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", "is_dependency": false, "lines": [ 2, @@ -442,9 +442,9 @@ } } ], - "description": "A.test (tests/detectors/constable-states/0.7.6/const_state_variables.sol#8) should be constant \n", - "markdown": "[A.test](tests/detectors/constable-states/0.7.6/const_state_variables.sol#L8) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.7.6/const_state_variables.sol#L8", + "description": "A.test (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#8) should be constant \n", + "markdown": "[A.test](tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L8) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L8", "id": "e407a1b57b4d25949ef7c4e6d97197605857099a94774a9c7a848d7dd3463668", "check": "constable-states", "impact": "Optimization", diff --git a/tests/detectors/constable-states/0.8.0/const_state_variables.sol b/tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol similarity index 100% rename from tests/detectors/constable-states/0.8.0/const_state_variables.sol rename to tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol diff --git a/tests/detectors/constable-states/0.8.0/const_state_variables.sol.0.8.0.CouldBeConstant.json b/tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol.0.8.0.CouldBeConstant.json similarity index 70% rename from tests/detectors/constable-states/0.8.0/const_state_variables.sol.0.8.0.CouldBeConstant.json rename to tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol.0.8.0.CouldBeConstant.json index 7febfd637..6cc26123a 100644 --- a/tests/detectors/constable-states/0.8.0/const_state_variables.sol.0.8.0.CouldBeConstant.json +++ b/tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol.0.8.0.CouldBeConstant.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 305, "length": 20, - "filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "is_dependency": false, "lines": [ 12 @@ -25,9 +25,9 @@ "source_mapping": { "start": 1, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "is_dependency": false, "lines": [ 2, @@ -56,9 +56,9 @@ } } ], - "description": "A.text2 (tests/detectors/constable-states/0.8.0/const_state_variables.sol#12) should be constant \n", - "markdown": "[A.text2](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L12) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L12", + "description": "A.text2 (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#12) should be constant \n", + "markdown": "[A.text2](tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L12) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L12", "id": "2f06e04545cea7e7a8998c65d5419f335bf2579a6ce6a832eac9c87392fd5c1a", "check": "constable-states", "impact": "Optimization", @@ -72,9 +72,9 @@ "source_mapping": { "start": 811, "length": 33, - "filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "is_dependency": false, "lines": [ 41 @@ -89,9 +89,9 @@ "source_mapping": { "start": 718, "length": 493, - "filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -122,9 +122,9 @@ } } ], - "description": "Bad.should_be_constant_2 (tests/detectors/constable-states/0.8.0/const_state_variables.sol#41) should be constant \n", - "markdown": "[Bad.should_be_constant_2](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L41) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L41", + "description": "Bad.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#41) should be constant \n", + "markdown": "[Bad.should_be_constant_2](tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L41) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L41", "id": "3a8b682f7960750cd8228d6cd3d0bb5d7d6f9faaf1a044de2fa7069d8e475af2", "check": "constable-states", "impact": "Optimization", @@ -138,9 +138,9 @@ "source_mapping": { "start": 468, "length": 76, - "filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "is_dependency": false, "lines": [ 24 @@ -155,9 +155,9 @@ "source_mapping": { "start": 445, "length": 271, - "filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "is_dependency": false, "lines": [ 22, @@ -182,9 +182,9 @@ } } ], - "description": "B.mySistersAddress (tests/detectors/constable-states/0.8.0/const_state_variables.sol#24) should be constant \n", - "markdown": "[B.mySistersAddress](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L24) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L24", + "description": "B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#24) should be constant \n", + "markdown": "[B.mySistersAddress](tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L24) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L24", "id": "3b5bff93954a48a79387e7981e8c45d78edc575a0988a10f1c7f439b9f930539", "check": "constable-states", "impact": "Optimization", @@ -198,9 +198,9 @@ "source_mapping": { "start": 104, "length": 76, - "filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "is_dependency": false, "lines": [ 5 @@ -215,9 +215,9 @@ "source_mapping": { "start": 1, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "is_dependency": false, "lines": [ 2, @@ -246,9 +246,9 @@ } } ], - "description": "A.myFriendsAddress (tests/detectors/constable-states/0.8.0/const_state_variables.sol#5) should be constant \n", - "markdown": "[A.myFriendsAddress](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L5) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L5", + "description": "A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#5) should be constant \n", + "markdown": "[A.myFriendsAddress](tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L5) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L5", "id": "52fd72f6870c4b504d1bcf9fb44249658e2077474d66208a33a47d2668b8db49", "check": "constable-states", "impact": "Optimization", @@ -262,9 +262,9 @@ "source_mapping": { "start": 763, "length": 42, - "filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "is_dependency": false, "lines": [ 40 @@ -279,9 +279,9 @@ "source_mapping": { "start": 718, "length": 493, - "filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -312,9 +312,9 @@ } } ], - "description": "Bad.should_be_constant (tests/detectors/constable-states/0.8.0/const_state_variables.sol#40) should be constant \n", - "markdown": "[Bad.should_be_constant](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L40) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L40", + "description": "Bad.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#40) should be constant \n", + "markdown": "[Bad.should_be_constant](tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L40) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L40", "id": "87097c03d57b72ad7c15336eb44e5a30054c50f8daff32e08bc4fbd97852961c", "check": "constable-states", "impact": "Optimization", @@ -328,9 +328,9 @@ "source_mapping": { "start": 850, "length": 38, - "filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "is_dependency": false, "lines": [ 42 @@ -345,9 +345,9 @@ "source_mapping": { "start": 718, "length": 493, - "filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -378,9 +378,9 @@ } } ], - "description": "Bad.should_be_constant_3 (tests/detectors/constable-states/0.8.0/const_state_variables.sol#42) should be constant \n", - "markdown": "[Bad.should_be_constant_3](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L42) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L42", + "description": "Bad.should_be_constant_3 (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#42) should be constant \n", + "markdown": "[Bad.should_be_constant_3](tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L42) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L42", "id": "8e991c1370b1adb10f01f2d7e48f341dee92a98b91b56ccb291d9149d2da97d0", "check": "constable-states", "impact": "Optimization", @@ -394,9 +394,9 @@ "source_mapping": { "start": 209, "length": 20, - "filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "is_dependency": false, "lines": [ 8 @@ -411,9 +411,9 @@ "source_mapping": { "start": 1, "length": 441, - "filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", "is_dependency": false, "lines": [ 2, @@ -442,9 +442,9 @@ } } ], - "description": "A.test (tests/detectors/constable-states/0.8.0/const_state_variables.sol#8) should be constant \n", - "markdown": "[A.test](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L8) should be constant \n", - "first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L8", + "description": "A.test (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#8) should be constant \n", + "markdown": "[A.test](tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L8) should be constant \n", + "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L8", "id": "e407a1b57b4d25949ef7c4e6d97197605857099a94774a9c7a848d7dd3463668", "check": "constable-states", "impact": "Optimization", diff --git a/tests/detectors/constant-function-asm/0.4.25/constant.sol b/tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol similarity index 100% rename from tests/detectors/constant-function-asm/0.4.25/constant.sol rename to tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol diff --git a/tests/detectors/constant-function-asm/0.4.25/constant.sol.0.4.25.ConstantFunctionsAsm.json b/tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol.0.4.25.ConstantFunctionsAsm.json similarity index 75% rename from tests/detectors/constant-function-asm/0.4.25/constant.sol.0.4.25.ConstantFunctionsAsm.json rename to tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol.0.4.25.ConstantFunctionsAsm.json index 0287cd134..92f3c6d28 100644 --- a/tests/detectors/constant-function-asm/0.4.25/constant.sol.0.4.25.ConstantFunctionsAsm.json +++ b/tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol.0.4.25.ConstantFunctionsAsm.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 324, "length": 66, - "filename_relative": "tests/detectors/constant-function-asm/0.4.25/constant.sol", + "filename_relative": "tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constant-function-asm/0.4.25/constant.sol", + "filename_short": "tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol", "is_dependency": false, "lines": [ 22, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 392, - "filename_relative": "tests/detectors/constant-function-asm/0.4.25/constant.sol", + "filename_relative": "tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constant-function-asm/0.4.25/constant.sol", + "filename_short": "tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol", "is_dependency": false, "lines": [ 1, @@ -66,9 +66,9 @@ } } ], - "description": "Constant.test_assembly_bug() (tests/detectors/constant-function-asm/0.4.25/constant.sol#22-24) is declared view but contains assembly code\n", - "markdown": "[Constant.test_assembly_bug()](tests/detectors/constant-function-asm/0.4.25/constant.sol#L22-L24) is declared view but contains assembly code\n", - "first_markdown_element": "tests/detectors/constant-function-asm/0.4.25/constant.sol#L22-L24", + "description": "Constant.test_assembly_bug() (tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol#22-24) is declared view but contains assembly code\n", + "markdown": "[Constant.test_assembly_bug()](tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol#L22-L24) is declared view but contains assembly code\n", + "first_markdown_element": "tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol#L22-L24", "id": "1f892cae08b89096bdc4d6ecdf55a3adc4b4314390e054fe2547d9c8e9f76e23", "additional_fields": { "contains_assembly": true diff --git a/tests/detectors/constant-function-asm/0.5.16/constant.sol b/tests/e2e/detectors/test_data/constant-function-asm/0.5.16/constant.sol similarity index 100% rename from tests/detectors/constant-function-asm/0.5.16/constant.sol rename to tests/e2e/detectors/test_data/constant-function-asm/0.5.16/constant.sol diff --git a/tests/detectors/constant-function-asm/0.5.16/constant.sol.0.5.16.ConstantFunctionsAsm.json b/tests/e2e/detectors/test_data/constant-function-asm/0.5.16/constant.sol.0.5.16.ConstantFunctionsAsm.json similarity index 100% rename from tests/detectors/constant-function-asm/0.5.16/constant.sol.0.5.16.ConstantFunctionsAsm.json rename to tests/e2e/detectors/test_data/constant-function-asm/0.5.16/constant.sol.0.5.16.ConstantFunctionsAsm.json diff --git a/tests/detectors/constant-function-asm/0.6.11/constant.sol b/tests/e2e/detectors/test_data/constant-function-asm/0.6.11/constant.sol similarity index 100% rename from tests/detectors/constant-function-asm/0.6.11/constant.sol rename to tests/e2e/detectors/test_data/constant-function-asm/0.6.11/constant.sol diff --git a/tests/detectors/constant-function-asm/0.6.11/constant.sol.0.6.11.ConstantFunctionsAsm.json b/tests/e2e/detectors/test_data/constant-function-asm/0.6.11/constant.sol.0.6.11.ConstantFunctionsAsm.json similarity index 100% rename from tests/detectors/constant-function-asm/0.6.11/constant.sol.0.6.11.ConstantFunctionsAsm.json rename to tests/e2e/detectors/test_data/constant-function-asm/0.6.11/constant.sol.0.6.11.ConstantFunctionsAsm.json diff --git a/tests/detectors/constant-function-asm/0.7.6/constant.sol b/tests/e2e/detectors/test_data/constant-function-asm/0.7.6/constant.sol similarity index 100% rename from tests/detectors/constant-function-asm/0.7.6/constant.sol rename to tests/e2e/detectors/test_data/constant-function-asm/0.7.6/constant.sol diff --git a/tests/detectors/constant-function-asm/0.7.6/constant.sol.0.7.6.ConstantFunctionsAsm.json b/tests/e2e/detectors/test_data/constant-function-asm/0.7.6/constant.sol.0.7.6.ConstantFunctionsAsm.json similarity index 100% rename from tests/detectors/constant-function-asm/0.7.6/constant.sol.0.7.6.ConstantFunctionsAsm.json rename to tests/e2e/detectors/test_data/constant-function-asm/0.7.6/constant.sol.0.7.6.ConstantFunctionsAsm.json diff --git a/tests/detectors/constant-function-state/0.4.25/constant.sol b/tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol similarity index 100% rename from tests/detectors/constant-function-state/0.4.25/constant.sol rename to tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol diff --git a/tests/detectors/constant-function-state/0.4.25/constant.sol.0.4.25.ConstantFunctionsState.json b/tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol.0.4.25.ConstantFunctionsState.json similarity index 75% rename from tests/detectors/constant-function-state/0.4.25/constant.sol.0.4.25.ConstantFunctionsState.json rename to tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol.0.4.25.ConstantFunctionsState.json index dc2dbc591..60d55ca83 100644 --- a/tests/detectors/constant-function-state/0.4.25/constant.sol.0.4.25.ConstantFunctionsState.json +++ b/tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol.0.4.25.ConstantFunctionsState.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 113, "length": 66, - "filename_relative": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "is_dependency": false, "lines": [ 9, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 392, - "filename_relative": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "is_dependency": false, "lines": [ 1, @@ -71,9 +71,9 @@ "source_mapping": { "start": 28, "length": 6, - "filename_relative": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "is_dependency": false, "lines": [ 3 @@ -88,9 +88,9 @@ "source_mapping": { "start": 0, "length": 392, - "filename_relative": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "is_dependency": false, "lines": [ 1, @@ -126,9 +126,9 @@ } } ], - "description": "Constant.test_constant_bug() (tests/detectors/constant-function-state/0.4.25/constant.sol#9-11) is declared view but changes state variables:\n\t- Constant.a (tests/detectors/constant-function-state/0.4.25/constant.sol#3)\n", - "markdown": "[Constant.test_constant_bug()](tests/detectors/constant-function-state/0.4.25/constant.sol#L9-L11) is declared view but changes state variables:\n\t- [Constant.a](tests/detectors/constant-function-state/0.4.25/constant.sol#L3)\n", - "first_markdown_element": "tests/detectors/constant-function-state/0.4.25/constant.sol#L9-L11", + "description": "Constant.test_constant_bug() (tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#9-11) is declared view but changes state variables:\n\t- Constant.a (tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#3)\n", + "markdown": "[Constant.test_constant_bug()](tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#L9-L11) is declared view but changes state variables:\n\t- [Constant.a](tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#L9-L11", "id": "145e2d34dfc5b932c8d67d480c0eaec9baa8c728e2a310529572c0c4a5c6046a", "additional_fields": { "contains_assembly": false @@ -145,9 +145,9 @@ "source_mapping": { "start": 45, "length": 58, - "filename_relative": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "is_dependency": false, "lines": [ 5, @@ -164,9 +164,9 @@ "source_mapping": { "start": 0, "length": 392, - "filename_relative": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "is_dependency": false, "lines": [ 1, @@ -208,9 +208,9 @@ "source_mapping": { "start": 28, "length": 6, - "filename_relative": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "is_dependency": false, "lines": [ 3 @@ -225,9 +225,9 @@ "source_mapping": { "start": 0, "length": 392, - "filename_relative": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/constant-function-state/0.4.25/constant.sol", + "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", "is_dependency": false, "lines": [ 1, @@ -263,9 +263,9 @@ } } ], - "description": "Constant.test_view_bug() (tests/detectors/constant-function-state/0.4.25/constant.sol#5-7) is declared view but changes state variables:\n\t- Constant.a (tests/detectors/constant-function-state/0.4.25/constant.sol#3)\n", - "markdown": "[Constant.test_view_bug()](tests/detectors/constant-function-state/0.4.25/constant.sol#L5-L7) is declared view but changes state variables:\n\t- [Constant.a](tests/detectors/constant-function-state/0.4.25/constant.sol#L3)\n", - "first_markdown_element": "tests/detectors/constant-function-state/0.4.25/constant.sol#L5-L7", + "description": "Constant.test_view_bug() (tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#5-7) is declared view but changes state variables:\n\t- Constant.a (tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#3)\n", + "markdown": "[Constant.test_view_bug()](tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#L5-L7) is declared view but changes state variables:\n\t- [Constant.a](tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#L5-L7", "id": "4dee61d8835d20c6f1f7c195d8bd1e9de5dbcc096396a5b8db391136f9f5fdf1", "additional_fields": { "contains_assembly": false diff --git a/tests/detectors/constant-function-state/0.5.16/constant.sol b/tests/e2e/detectors/test_data/constant-function-state/0.5.16/constant.sol similarity index 100% rename from tests/detectors/constant-function-state/0.5.16/constant.sol rename to tests/e2e/detectors/test_data/constant-function-state/0.5.16/constant.sol diff --git a/tests/detectors/constant-function-state/0.5.16/constant.sol.0.5.16.ConstantFunctionsState.json b/tests/e2e/detectors/test_data/constant-function-state/0.5.16/constant.sol.0.5.16.ConstantFunctionsState.json similarity index 100% rename from tests/detectors/constant-function-state/0.5.16/constant.sol.0.5.16.ConstantFunctionsState.json rename to tests/e2e/detectors/test_data/constant-function-state/0.5.16/constant.sol.0.5.16.ConstantFunctionsState.json diff --git a/tests/detectors/constant-function-state/0.6.11/constant.sol b/tests/e2e/detectors/test_data/constant-function-state/0.6.11/constant.sol similarity index 100% rename from tests/detectors/constant-function-state/0.6.11/constant.sol rename to tests/e2e/detectors/test_data/constant-function-state/0.6.11/constant.sol diff --git a/tests/detectors/constant-function-state/0.6.11/constant.sol.0.6.11.ConstantFunctionsState.json b/tests/e2e/detectors/test_data/constant-function-state/0.6.11/constant.sol.0.6.11.ConstantFunctionsState.json similarity index 100% rename from tests/detectors/constant-function-state/0.6.11/constant.sol.0.6.11.ConstantFunctionsState.json rename to tests/e2e/detectors/test_data/constant-function-state/0.6.11/constant.sol.0.6.11.ConstantFunctionsState.json diff --git a/tests/detectors/constant-function-state/0.7.6/constant.sol b/tests/e2e/detectors/test_data/constant-function-state/0.7.6/constant.sol similarity index 100% rename from tests/detectors/constant-function-state/0.7.6/constant.sol rename to tests/e2e/detectors/test_data/constant-function-state/0.7.6/constant.sol diff --git a/tests/detectors/constant-function-state/0.7.6/constant.sol.0.7.6.ConstantFunctionsState.json b/tests/e2e/detectors/test_data/constant-function-state/0.7.6/constant.sol.0.7.6.ConstantFunctionsState.json similarity index 100% rename from tests/detectors/constant-function-state/0.7.6/constant.sol.0.7.6.ConstantFunctionsState.json rename to tests/e2e/detectors/test_data/constant-function-state/0.7.6/constant.sol.0.7.6.ConstantFunctionsState.json diff --git a/tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol b/tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol similarity index 100% rename from tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol rename to tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol diff --git a/tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol.0.4.25.ArrayLengthAssignment.json b/tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol.0.4.25.ArrayLengthAssignment.json similarity index 80% rename from tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol.0.4.25.ArrayLengthAssignment.json rename to tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol.0.4.25.ArrayLengthAssignment.json index 12a682297..1937a8561 100644 --- a/tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol.0.4.25.ArrayLengthAssignment.json +++ b/tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol.0.4.25.ArrayLengthAssignment.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 0, "length": 1055, - "filename_relative": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "is_dependency": false, "lines": [ 1, @@ -66,19 +66,19 @@ }, { "type": "node", - "name": "arr.length = param", + "name": "b.subStruct.x.length = param + 1", "source_mapping": { - "start": 527, - "length": 18, - "filename_relative": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "start": 964, + "length": 32, + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "is_dependency": false, "lines": [ - 26 + 41 ], - "starting_column": 13, - "ending_column": 31 + "starting_column": 9, + "ending_column": 41 }, "type_specific_fields": { "parent": { @@ -87,9 +87,9 @@ "source_mapping": { "start": 406, "length": 647, - "filename_relative": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "is_dependency": false, "lines": [ 22, @@ -127,9 +127,9 @@ "source_mapping": { "start": 0, "length": 1055, - "filename_relative": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "is_dependency": false, "lines": [ 1, @@ -189,10 +189,10 @@ } } ], - "description": "ArrayLengthAssignment (tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- arr.length = param (tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#26)\n", - "markdown": "[ArrayLengthAssignment](tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [arr.length = param](tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#L26)\n", - "first_markdown_element": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46", - "id": "13e0633277a811f9416912f4404d805c1aaaaaacbc94989215c41de964718b0b", + "description": "ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- b.subStruct.x.length = param + 1 (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#41)\n", + "markdown": "[ArrayLengthAssignment](tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [b.subStruct.x.length = param + 1](tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L41)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46", + "id": "44bb04e6400492458571a12394273c37a5c0083181ea31f644d895c0ce7eca83", "check": "controlled-array-length", "impact": "High", "confidence": "Medium" @@ -205,9 +205,9 @@ "source_mapping": { "start": 0, "length": 1055, - "filename_relative": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "is_dependency": false, "lines": [ 1, @@ -263,19 +263,19 @@ }, { "type": "node", - "name": "b.subStruct.x.length = param + 1", + "name": "a.x.length = param", "source_mapping": { - "start": 964, - "length": 32, - "filename_relative": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "start": 818, + "length": 18, + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "is_dependency": false, "lines": [ - 41 + 36 ], "starting_column": 9, - "ending_column": 41 + "ending_column": 27 }, "type_specific_fields": { "parent": { @@ -284,9 +284,9 @@ "source_mapping": { "start": 406, "length": 647, - "filename_relative": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "is_dependency": false, "lines": [ 22, @@ -324,9 +324,9 @@ "source_mapping": { "start": 0, "length": 1055, - "filename_relative": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "is_dependency": false, "lines": [ 1, @@ -386,10 +386,10 @@ } } ], - "description": "ArrayLengthAssignment (tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- b.subStruct.x.length = param + 1 (tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#41)\n", - "markdown": "[ArrayLengthAssignment](tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [b.subStruct.x.length = param + 1](tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#L41)\n", - "first_markdown_element": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46", - "id": "82175a5c24c40a1afe4c59f4271a2c12e577ad25e89e6e319e47b4f8f2a76943", + "description": "ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- a.x.length = param (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#36)\n", + "markdown": "[ArrayLengthAssignment](tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [a.x.length = param](tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L36)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46", + "id": "88eeaf5d76f62d05e6350ef5e6623c947f7225d240fbf6fb77e73e6d0fcfbfe4", "check": "controlled-array-length", "impact": "High", "confidence": "Medium" @@ -402,9 +402,9 @@ "source_mapping": { "start": 0, "length": 1055, - "filename_relative": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "is_dependency": false, "lines": [ 1, @@ -460,19 +460,19 @@ }, { "type": "node", - "name": "a.x.length = param", + "name": "arr.length = param", "source_mapping": { - "start": 818, + "start": 527, "length": 18, - "filename_relative": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "is_dependency": false, "lines": [ - 36 + 26 ], - "starting_column": 9, - "ending_column": 27 + "starting_column": 13, + "ending_column": 31 }, "type_specific_fields": { "parent": { @@ -481,9 +481,9 @@ "source_mapping": { "start": 406, "length": 647, - "filename_relative": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "is_dependency": false, "lines": [ 22, @@ -521,9 +521,9 @@ "source_mapping": { "start": 0, "length": 1055, - "filename_relative": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", "is_dependency": false, "lines": [ 1, @@ -583,10 +583,10 @@ } } ], - "description": "ArrayLengthAssignment (tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- a.x.length = param (tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#36)\n", - "markdown": "[ArrayLengthAssignment](tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [a.x.length = param](tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#L36)\n", - "first_markdown_element": "tests/detectors/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46", - "id": "f455c672028771f21282b59fb58b5eac51185eae4ac44e65a2e1f4df6db0c6e4", + "description": "ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- arr.length = param (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#26)\n", + "markdown": "[ArrayLengthAssignment](tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [arr.length = param](tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46", + "id": "9c110476c2adc3d4357e5d5b4c072caf4d32b84e7dfa1649a111c4a16980a10a", "check": "controlled-array-length", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol b/tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol similarity index 100% rename from tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol rename to tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol diff --git a/tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol.0.5.16.ArrayLengthAssignment.json b/tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol.0.5.16.ArrayLengthAssignment.json similarity index 80% rename from tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol.0.5.16.ArrayLengthAssignment.json rename to tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol.0.5.16.ArrayLengthAssignment.json index bc644569c..e038f3ee0 100644 --- a/tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol.0.5.16.ArrayLengthAssignment.json +++ b/tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol.0.5.16.ArrayLengthAssignment.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 0, "length": 1055, - "filename_relative": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "is_dependency": false, "lines": [ 1, @@ -66,19 +66,19 @@ }, { "type": "node", - "name": "a.x.length = param", + "name": "b.subStruct.x.length = param + 1", "source_mapping": { - "start": 818, - "length": 18, - "filename_relative": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "start": 964, + "length": 32, + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "is_dependency": false, "lines": [ - 36 + 41 ], "starting_column": 9, - "ending_column": 27 + "ending_column": 41 }, "type_specific_fields": { "parent": { @@ -87,9 +87,9 @@ "source_mapping": { "start": 406, "length": 647, - "filename_relative": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "is_dependency": false, "lines": [ 22, @@ -127,9 +127,9 @@ "source_mapping": { "start": 0, "length": 1055, - "filename_relative": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "is_dependency": false, "lines": [ 1, @@ -189,10 +189,10 @@ } } ], - "description": "ArrayLengthAssignment (tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- a.x.length = param (tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#36)\n", - "markdown": "[ArrayLengthAssignment](tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [a.x.length = param](tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#L36)\n", - "first_markdown_element": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46", - "id": "3ee7c4c1f07506f88bcd3b42a86641b32b24a3978768cbcb99301bd8a1fcb975", + "description": "ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- b.subStruct.x.length = param + 1 (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#41)\n", + "markdown": "[ArrayLengthAssignment](tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [b.subStruct.x.length = param + 1](tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L41)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46", + "id": "2ea862d7feccb7b474adb7b90db7f3f80358ea2633da296801c126fff1494499", "check": "controlled-array-length", "impact": "High", "confidence": "Medium" @@ -205,9 +205,9 @@ "source_mapping": { "start": 0, "length": 1055, - "filename_relative": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "is_dependency": false, "lines": [ 1, @@ -263,19 +263,19 @@ }, { "type": "node", - "name": "arr.length = param", + "name": "a.x.length = param", "source_mapping": { - "start": 527, + "start": 818, "length": 18, - "filename_relative": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "is_dependency": false, "lines": [ - 26 + 36 ], - "starting_column": 13, - "ending_column": 31 + "starting_column": 9, + "ending_column": 27 }, "type_specific_fields": { "parent": { @@ -284,9 +284,9 @@ "source_mapping": { "start": 406, "length": 647, - "filename_relative": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "is_dependency": false, "lines": [ 22, @@ -324,9 +324,9 @@ "source_mapping": { "start": 0, "length": 1055, - "filename_relative": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "is_dependency": false, "lines": [ 1, @@ -386,10 +386,10 @@ } } ], - "description": "ArrayLengthAssignment (tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- arr.length = param (tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#26)\n", - "markdown": "[ArrayLengthAssignment](tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [arr.length = param](tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#L26)\n", - "first_markdown_element": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46", - "id": "5120add82e5b674971638ddcd430301e4fd0ff0abc12b425d78bb09baa519dd0", + "description": "ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- a.x.length = param (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#36)\n", + "markdown": "[ArrayLengthAssignment](tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [a.x.length = param](tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L36)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46", + "id": "3ec83c3dd1c28c95b196590b7366b8c41d39691efa57d6e6353722625790ca2a", "check": "controlled-array-length", "impact": "High", "confidence": "Medium" @@ -402,9 +402,9 @@ "source_mapping": { "start": 0, "length": 1055, - "filename_relative": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "is_dependency": false, "lines": [ 1, @@ -460,19 +460,19 @@ }, { "type": "node", - "name": "b.subStruct.x.length = param + 1", + "name": "arr.length = param", "source_mapping": { - "start": 964, - "length": 32, - "filename_relative": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "start": 527, + "length": 18, + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "is_dependency": false, "lines": [ - 41 + 26 ], - "starting_column": 9, - "ending_column": 41 + "starting_column": 13, + "ending_column": 31 }, "type_specific_fields": { "parent": { @@ -481,9 +481,9 @@ "source_mapping": { "start": 406, "length": 647, - "filename_relative": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "is_dependency": false, "lines": [ 22, @@ -521,9 +521,9 @@ "source_mapping": { "start": 0, "length": 1055, - "filename_relative": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", "is_dependency": false, "lines": [ 1, @@ -583,10 +583,10 @@ } } ], - "description": "ArrayLengthAssignment (tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- b.subStruct.x.length = param + 1 (tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#41)\n", - "markdown": "[ArrayLengthAssignment](tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [b.subStruct.x.length = param + 1](tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#L41)\n", - "first_markdown_element": "tests/detectors/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46", - "id": "ba005d0d2665bc40c7c33b2a6a32bf426b4a5ccea38e75a6265976a20c9b7ae3", + "description": "ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- arr.length = param (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#26)\n", + "markdown": "[ArrayLengthAssignment](tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [arr.length = param](tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46", + "id": "d47bf9358fd65537009e786d169e7d955c5ac5a0af6fa98a712e450aec9519c2", "check": "controlled-array-length", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol b/tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol similarity index 100% rename from tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol rename to tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol diff --git a/tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol.0.7.6.ControlledDelegateCall.json b/tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol.0.4.25.ControlledDelegateCall.json similarity index 73% rename from tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol.0.7.6.ControlledDelegateCall.json rename to tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol.0.4.25.ControlledDelegateCall.json index b7d1946cf..362afc13b 100644 --- a/tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol.0.7.6.ControlledDelegateCall.json +++ b/tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol.0.4.25.ControlledDelegateCall.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 337, "length": 118, - "filename_relative": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 18, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -71,9 +71,9 @@ "source_mapping": { "start": 400, "length": 48, - "filename_relative": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 19 @@ -88,9 +88,9 @@ "source_mapping": { "start": 337, "length": 118, - "filename_relative": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 18, @@ -107,9 +107,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -148,10 +148,10 @@ } } ], - "description": "C.bad_delegate_call2(bytes) (tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(abi.encode(func_id,data)) (tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#19)\n", - "markdown": "[C.bad_delegate_call2(bytes)](tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L18-L20) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(abi.encode(func_id,data))](tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L19)\n", - "first_markdown_element": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L18-L20", - "id": "04a4aed45b4c803d9fa03d70198a8f6d7f4228d2fd5e06bd61c4c68431be2c90", + "description": "C.bad_delegate_call2(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(abi.encode(func_id,data)) (tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#19)\n", + "markdown": "[C.bad_delegate_call2(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L18-L20) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(abi.encode(func_id,data))](tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L19)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L18-L20", + "id": "3697b4818f32b2f323e0193ab5d1395358842f1acd9aa6d9a7115adc432d2218", "check": "controlled-delegatecall", "impact": "High", "confidence": "Medium" @@ -164,9 +164,9 @@ "source_mapping": { "start": 101, "length": 134, - "filename_relative": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 8, @@ -184,9 +184,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -228,9 +228,9 @@ "source_mapping": { "start": 201, "length": 27, - "filename_relative": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 10 @@ -245,9 +245,9 @@ "source_mapping": { "start": 101, "length": 134, - "filename_relative": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 8, @@ -265,9 +265,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -306,10 +306,10 @@ } } ], - "description": "C.bad_delegate_call(bytes) (tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(data) (tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#10)\n", - "markdown": "[C.bad_delegate_call(bytes)](tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L8-L11) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(data)](tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L10)\n", - "first_markdown_element": "tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L8-L11", - "id": "59a70e53c14de214629ffde4abab9700cbb3bc66a99e281954e3b9f285a28c2d", + "description": "C.bad_delegate_call(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(data) (tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#10)\n", + "markdown": "[C.bad_delegate_call(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L8-L11) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(data)](tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L8-L11", + "id": "b617d62fff5914c10899af7ded0495ef5029a952eaf0fd28694a639c556c6532", "check": "controlled-delegatecall", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol b/tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol similarity index 100% rename from tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol rename to tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol diff --git a/tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol.0.5.16.ControlledDelegateCall.json b/tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol.0.5.16.ControlledDelegateCall.json similarity index 73% rename from tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol.0.5.16.ControlledDelegateCall.json rename to tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol.0.5.16.ControlledDelegateCall.json index 669002ce0..7d31e4a32 100644 --- a/tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol.0.5.16.ControlledDelegateCall.json +++ b/tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol.0.5.16.ControlledDelegateCall.json @@ -4,19 +4,18 @@ "elements": [ { "type": "function", - "name": "bad_delegate_call", + "name": "bad_delegate_call2", "source_mapping": { - "start": 101, - "length": 134, - "filename_relative": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "start": 337, + "length": 118, + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10, - 11 + 18, + 19, + 20 ], "starting_column": 5, "ending_column": 6 @@ -28,9 +27,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -63,41 +62,40 @@ "ending_column": 2 } }, - "signature": "bad_delegate_call(bytes)" + "signature": "bad_delegate_call2(bytes)" } }, { "type": "node", - "name": "addr_bad.delegatecall(data)", + "name": "addr_bad.delegatecall(abi.encode(func_id,data))", "source_mapping": { - "start": 201, - "length": 27, - "filename_relative": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "start": 400, + "length": 48, + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "is_dependency": false, "lines": [ - 10 + 19 ], "starting_column": 9, - "ending_column": 36 + "ending_column": 57 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad_delegate_call", + "name": "bad_delegate_call2", "source_mapping": { - "start": 101, - "length": 134, - "filename_relative": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "start": 337, + "length": 118, + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10, - 11 + 18, + 19, + 20 ], "starting_column": 5, "ending_column": 6 @@ -109,9 +107,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -144,16 +142,16 @@ "ending_column": 2 } }, - "signature": "bad_delegate_call(bytes)" + "signature": "bad_delegate_call2(bytes)" } } } } ], - "description": "C.bad_delegate_call(bytes) (tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(data) (tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#10)\n", - "markdown": "[C.bad_delegate_call(bytes)](tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L8-L11) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(data)](tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L10)\n", - "first_markdown_element": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L8-L11", - "id": "5ffc12fd6e122f0e70986a5d7f8d14c087f538145910100ea15192a63391a2b7", + "description": "C.bad_delegate_call2(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(abi.encode(func_id,data)) (tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#19)\n", + "markdown": "[C.bad_delegate_call2(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L18-L20) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(abi.encode(func_id,data))](tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L19)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L18-L20", + "id": "71847bef70b5fc4fbfb7cf94bdbaf96464d6ca55a2e9ac618ee8af77902eb7f6", "check": "controlled-delegatecall", "impact": "High", "confidence": "Medium" @@ -162,18 +160,19 @@ "elements": [ { "type": "function", - "name": "bad_delegate_call2", + "name": "bad_delegate_call", "source_mapping": { - "start": 337, - "length": 118, - "filename_relative": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "start": 101, + "length": 134, + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "is_dependency": false, "lines": [ - 18, - 19, - 20 + 8, + 9, + 10, + 11 ], "starting_column": 5, "ending_column": 6 @@ -185,9 +184,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -220,40 +219,41 @@ "ending_column": 2 } }, - "signature": "bad_delegate_call2(bytes)" + "signature": "bad_delegate_call(bytes)" } }, { "type": "node", - "name": "addr_bad.delegatecall(abi.encode(func_id,data))", + "name": "addr_bad.delegatecall(data)", "source_mapping": { - "start": 400, - "length": 48, - "filename_relative": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "start": 201, + "length": 27, + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "is_dependency": false, "lines": [ - 19 + 10 ], "starting_column": 9, - "ending_column": 57 + "ending_column": 36 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad_delegate_call2", + "name": "bad_delegate_call", "source_mapping": { - "start": 337, - "length": 118, - "filename_relative": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "start": 101, + "length": 134, + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "is_dependency": false, "lines": [ - 18, - 19, - 20 + 8, + 9, + 10, + 11 ], "starting_column": 5, "ending_column": 6 @@ -265,9 +265,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -300,16 +300,16 @@ "ending_column": 2 } }, - "signature": "bad_delegate_call2(bytes)" + "signature": "bad_delegate_call(bytes)" } } } } ], - "description": "C.bad_delegate_call2(bytes) (tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(abi.encode(func_id,data)) (tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#19)\n", - "markdown": "[C.bad_delegate_call2(bytes)](tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L18-L20) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(abi.encode(func_id,data))](tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L19)\n", - "first_markdown_element": "tests/detectors/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L18-L20", - "id": "a8749733eb415695ac990f9045813c8c1aadfb54f6de912cff1927db64a6d8d6", + "description": "C.bad_delegate_call(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(data) (tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#10)\n", + "markdown": "[C.bad_delegate_call(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L8-L11) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(data)](tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L8-L11", + "id": "d1e5184cc93dcb07350d84ed12a87623ac434ddcaf33404d7cfb6e0a5347877f", "check": "controlled-delegatecall", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol b/tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol similarity index 100% rename from tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol rename to tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol diff --git a/tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol.0.6.11.ControlledDelegateCall.json b/tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol.0.6.11.ControlledDelegateCall.json similarity index 73% rename from tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol.0.6.11.ControlledDelegateCall.json rename to tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol.0.6.11.ControlledDelegateCall.json index baebee91b..7325d9e53 100644 --- a/tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol.0.6.11.ControlledDelegateCall.json +++ b/tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol.0.6.11.ControlledDelegateCall.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 337, "length": 118, - "filename_relative": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 18, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -71,9 +71,9 @@ "source_mapping": { "start": 400, "length": 48, - "filename_relative": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 19 @@ -88,9 +88,9 @@ "source_mapping": { "start": 337, "length": 118, - "filename_relative": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 18, @@ -107,9 +107,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -148,10 +148,10 @@ } } ], - "description": "C.bad_delegate_call2(bytes) (tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(abi.encode(func_id,data)) (tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#19)\n", - "markdown": "[C.bad_delegate_call2(bytes)](tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L18-L20) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(abi.encode(func_id,data))](tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L19)\n", - "first_markdown_element": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L18-L20", - "id": "82fc8a33f6b16eff457087ec9961f2bce3c61289628dac8284009c8275cea790", + "description": "C.bad_delegate_call2(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(abi.encode(func_id,data)) (tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#19)\n", + "markdown": "[C.bad_delegate_call2(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L18-L20) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(abi.encode(func_id,data))](tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L19)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L18-L20", + "id": "df6abc237722d57d7f972379f03f529a1f16bc8fb448c18e72cd5a7a5566ace8", "check": "controlled-delegatecall", "impact": "High", "confidence": "Medium" @@ -164,9 +164,9 @@ "source_mapping": { "start": 101, "length": 134, - "filename_relative": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 8, @@ -184,9 +184,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -228,9 +228,9 @@ "source_mapping": { "start": 201, "length": 27, - "filename_relative": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 10 @@ -245,9 +245,9 @@ "source_mapping": { "start": 101, "length": 134, - "filename_relative": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 8, @@ -265,9 +265,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -306,10 +306,10 @@ } } ], - "description": "C.bad_delegate_call(bytes) (tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(data) (tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#10)\n", - "markdown": "[C.bad_delegate_call(bytes)](tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L8-L11) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(data)](tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L10)\n", - "first_markdown_element": "tests/detectors/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L8-L11", - "id": "bed67f615a2f3a872e24eedf23fdedbdfbe5a540dc3f3ea4ca1430581997a8f6", + "description": "C.bad_delegate_call(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(data) (tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#10)\n", + "markdown": "[C.bad_delegate_call(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L8-L11) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(data)](tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L8-L11", + "id": "f995ba96b9af5b9dc54b0fd20a5f09de00b4eafcf39004df3c017c147e659d69", "check": "controlled-delegatecall", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol b/tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol similarity index 100% rename from tests/detectors/controlled-delegatecall/0.7.6/controlled_delegatecall.sol rename to tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol diff --git a/tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol.0.4.25.ControlledDelegateCall.json b/tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol.0.7.6.ControlledDelegateCall.json similarity index 74% rename from tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol.0.4.25.ControlledDelegateCall.json rename to tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol.0.7.6.ControlledDelegateCall.json index 330fd4386..5ed46e0f8 100644 --- a/tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol.0.4.25.ControlledDelegateCall.json +++ b/tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol.0.7.6.ControlledDelegateCall.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 337, "length": 118, - "filename_relative": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 18, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -71,9 +71,9 @@ "source_mapping": { "start": 400, "length": 48, - "filename_relative": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 19 @@ -88,9 +88,9 @@ "source_mapping": { "start": 337, "length": 118, - "filename_relative": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 18, @@ -107,9 +107,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -148,10 +148,10 @@ } } ], - "description": "C.bad_delegate_call2(bytes) (tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(abi.encode(func_id,data)) (tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#19)\n", - "markdown": "[C.bad_delegate_call2(bytes)](tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L18-L20) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(abi.encode(func_id,data))](tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L19)\n", - "first_markdown_element": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L18-L20", - "id": "12d6ba2d0139326b442352b37028ff77dfbdc625870a5ae858e6107cfa89cfbb", + "description": "C.bad_delegate_call2(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(abi.encode(func_id,data)) (tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#19)\n", + "markdown": "[C.bad_delegate_call2(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L18-L20) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(abi.encode(func_id,data))](tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L19)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L18-L20", + "id": "c8768eb975167e98d2def963b7ccc58753b5636e215fcd3628f922e9862e92be", "check": "controlled-delegatecall", "impact": "High", "confidence": "Medium" @@ -164,9 +164,9 @@ "source_mapping": { "start": 101, "length": 134, - "filename_relative": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 8, @@ -184,9 +184,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -228,9 +228,9 @@ "source_mapping": { "start": 201, "length": 27, - "filename_relative": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 10 @@ -245,9 +245,9 @@ "source_mapping": { "start": 101, "length": 134, - "filename_relative": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 8, @@ -265,9 +265,9 @@ "source_mapping": { "start": 0, "length": 585, - "filename_relative": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", + "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", "is_dependency": false, "lines": [ 1, @@ -306,10 +306,10 @@ } } ], - "description": "C.bad_delegate_call(bytes) (tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(data) (tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#10)\n", - "markdown": "[C.bad_delegate_call(bytes)](tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L8-L11) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(data)](tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L10)\n", - "first_markdown_element": "tests/detectors/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L8-L11", - "id": "90d4f387ca3c669975a3ed4d7a5b09665b786a1078e16ced61adf1c3f9f6efb8", + "description": "C.bad_delegate_call(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(data) (tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#10)\n", + "markdown": "[C.bad_delegate_call(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L8-L11) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(data)](tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L8-L11", + "id": "e53105cd8d6d703dfe261317fa5e1d94a7cc5cb513b57a258420dc1adde928c4", "check": "controlled-delegatecall", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol b/tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol similarity index 100% rename from tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol rename to tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol diff --git a/tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol.0.4.25.CostlyOperationsInLoop.json b/tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol.0.4.25.CostlyOperationsInLoop.json similarity index 79% rename from tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol.0.4.25.CostlyOperationsInLoop.json rename to tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol.0.4.25.CostlyOperationsInLoop.json index 94d44141c..31ce64c79 100644 --- a/tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol.0.4.25.CostlyOperationsInLoop.json +++ b/tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol.0.4.25.CostlyOperationsInLoop.json @@ -4,23 +4,150 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad_base", "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "start": 102, + "length": 389, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 + 5, + 6, + 7, + 8, + 9 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CostlyOperationsInLoopBase", + "source_mapping": { + "start": 0, + "length": 494, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "is_dependency": false, + "lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad_base()" + } + }, + { + "type": "node", + "name": "state_variable_base ++", + "source_mapping": { + "start": 271, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "is_dependency": false, + "lines": [ + 7 + ], + "starting_column": 7, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad_base", + "source_mapping": { + "start": 102, + "length": 389, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "is_dependency": false, + "lines": [ + 5, + 6, + 7, + 8, + 9 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CostlyOperationsInLoopBase", + "source_mapping": { + "start": 0, + "length": 494, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "is_dependency": false, + "lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad_base()" + } + } + } + } + ], + "description": "CostlyOperationsInLoopBase.bad_base() (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop:\n\t- state_variable_base ++ (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#7)\n", + "markdown": "[CostlyOperationsInLoopBase.bad_base()](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L5-L9) has costly operations inside a loop:\n\t- [state_variable_base ++](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L5-L9", + "id": "682092df85849634793ee896cd88d83ac2564469f298c20f7f0c6da45d4d49f9", + "check": "costly-loop", + "impact": "Informational", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "bad3_internal", + "source_mapping": { + "start": 1855, + "length": 60, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "is_dependency": false, + "lines": [ + 41, + 42, + 43 ], "starting_column": 3, "ending_column": 4 @@ -32,9 +159,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -94,45 +221,40 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad3_internal()" } }, { "type": "node", "name": "state_variable ++", "source_mapping": { - "start": 1363, + "start": 1894, "length": 16, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 31 + 42 ], - "starting_column": 7, - "ending_column": 23 + "starting_column": 5, + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad3_internal", "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "start": 1855, + "length": 60, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 + 41, + 42, + 43 ], "starting_column": 3, "ending_column": 4 @@ -144,9 +266,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -206,16 +328,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad3_internal()" } } } } ], - "description": "CostlyOperationsInLoop.bad2() (tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop:\n\t- state_variable ++ (tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#31)\n", - "markdown": "[CostlyOperationsInLoop.bad2()](tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L26-L33) has costly operations inside a loop:\n\t- [state_variable ++](tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L31)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L26-L33", - "id": "0cde1ae7c1410e0eb0d07ff2c21adc20b1c7f7a654780c8d41069ad3a34e73b4", + "description": "CostlyOperationsInLoop.bad3_internal() (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#42)\n", + "markdown": "[CostlyOperationsInLoop.bad3_internal()](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L41-L43) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L42)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L41-L43", + "id": "68476a702cb89df131f596097e8c896fd99d83f88916077e6992866632e33ae8", "check": "costly-loop", "impact": "Informational", "confidence": "Medium" @@ -224,20 +346,23 @@ "elements": [ { "type": "function", - "name": "bad", + "name": "bad2", "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "start": 1131, + "length": 343, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 ], "starting_column": 3, "ending_column": 4 @@ -249,9 +374,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -311,21 +436,21 @@ "ending_column": 2 } }, - "signature": "bad()" + "signature": "bad2()" } }, { "type": "node", "name": "state_variable ++", "source_mapping": { - "start": 912, + "start": 1363, "length": 16, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 22 + 31 ], "starting_column": 7, "ending_column": 23 @@ -333,20 +458,23 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad", + "name": "bad2", "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "start": 1131, + "length": 343, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 ], "starting_column": 3, "ending_column": 4 @@ -358,9 +486,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -420,148 +548,16 @@ "ending_column": 2 } }, - "signature": "bad()" - } - } - } - } - ], - "description": "CostlyOperationsInLoop.bad() (tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop:\n\t- state_variable ++ (tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#22)\n", - "markdown": "[CostlyOperationsInLoop.bad()](tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L20-L24) has costly operations inside a loop:\n\t- [state_variable ++](tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L22)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L20-L24", - "id": "92dbac16da1c357bad3a24661de0e92213ac3a701d80655fadb64359ff98d21d", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 102, - "length": 389, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoopBase", - "source_mapping": { - "start": 0, - "length": 494, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - }, - { - "type": "node", - "name": "state_variable_base ++", - "source_mapping": { - "start": 271, - "length": 21, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 7, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 102, - "length": 389, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoopBase", - "source_mapping": { - "start": 0, - "length": 494, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" + "signature": "bad2()" } } } } ], - "description": "CostlyOperationsInLoopBase.bad_base() (tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop:\n\t- state_variable_base ++ (tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#7)\n", - "markdown": "[CostlyOperationsInLoopBase.bad_base()](tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L5-L9) has costly operations inside a loop:\n\t- [state_variable_base ++](tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L7)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L5-L9", - "id": "a5134568bf722ac31d7c4d41595c23e1a5ff9b79902e9502f78ccfe9a430b87a", + "description": "CostlyOperationsInLoop.bad2() (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#31)\n", + "markdown": "[CostlyOperationsInLoop.bad2()](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L26-L33) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L31)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L26-L33", + "id": "c2062080a3b845bae3725cc508857ae8f6f0bf8053081dda37ec642613692d5f", "check": "costly-loop", "impact": "Informational", "confidence": "Medium" @@ -570,18 +566,20 @@ "elements": [ { "type": "function", - "name": "bad3_internal", + "name": "bad", "source_mapping": { - "start": 1855, - "length": 60, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "start": 754, + "length": 373, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 3, "ending_column": 4 @@ -593,9 +591,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -655,40 +653,42 @@ "ending_column": 2 } }, - "signature": "bad3_internal()" + "signature": "bad()" } }, { "type": "node", "name": "state_variable ++", "source_mapping": { - "start": 1894, + "start": 912, "length": 16, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 42 + 22 ], - "starting_column": 5, - "ending_column": 21 + "starting_column": 7, + "ending_column": 23 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3_internal", + "name": "bad", "source_mapping": { - "start": 1855, - "length": 60, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "start": 754, + "length": 373, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 3, "ending_column": 4 @@ -700,9 +700,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -762,16 +762,16 @@ "ending_column": 2 } }, - "signature": "bad3_internal()" + "signature": "bad()" } } } } ], - "description": "CostlyOperationsInLoop.bad3_internal() (tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop:\n\t- state_variable ++ (tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#42)\n", - "markdown": "[CostlyOperationsInLoop.bad3_internal()](tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L41-L43) has costly operations inside a loop:\n\t- [state_variable ++](tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L42)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L41-L43", - "id": "d92f330b3f0aafe1dd0a8c4d79935664297b8d73741df8970e132423d20a1c08", + "description": "CostlyOperationsInLoop.bad() (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#22)\n", + "markdown": "[CostlyOperationsInLoop.bad()](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L20-L24) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L20-L24", + "id": "e99bef3af22b3031c130f4f4e4ef4c669971ca94c7cbe7bfe001c34ed7fdae32", "check": "costly-loop", "impact": "Informational", "confidence": "Medium" diff --git a/tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol b/tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol similarity index 100% rename from tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol rename to tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol diff --git a/tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol.0.5.16.CostlyOperationsInLoop.json b/tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol.0.5.16.CostlyOperationsInLoop.json similarity index 79% rename from tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol.0.5.16.CostlyOperationsInLoop.json rename to tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol.0.5.16.CostlyOperationsInLoop.json index 1780300b1..d3aa09a68 100644 --- a/tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol.0.5.16.CostlyOperationsInLoop.json +++ b/tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol.0.5.16.CostlyOperationsInLoop.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 102, "length": 389, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 5, @@ -29,9 +29,9 @@ "source_mapping": { "start": 0, "length": 494, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 1, @@ -59,9 +59,9 @@ "source_mapping": { "start": 271, "length": 21, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 7 @@ -76,9 +76,9 @@ "source_mapping": { "start": 102, "length": 389, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 5, @@ -97,9 +97,9 @@ "source_mapping": { "start": 0, "length": 494, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 1, @@ -124,10 +124,10 @@ } } ], - "description": "CostlyOperationsInLoopBase.bad_base() (tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop:\n\t- state_variable_base ++ (tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#7)\n", - "markdown": "[CostlyOperationsInLoopBase.bad_base()](tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L5-L9) has costly operations inside a loop:\n\t- [state_variable_base ++](tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L7)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L5-L9", - "id": "37bb0ca67ffcfb1625ffbea095bba93ea031ed6f483bb80a976c7c68309872dd", + "description": "CostlyOperationsInLoopBase.bad_base() (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop:\n\t- state_variable_base ++ (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#7)\n", + "markdown": "[CostlyOperationsInLoopBase.bad_base()](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L5-L9) has costly operations inside a loop:\n\t- [state_variable_base ++](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L5-L9", + "id": "66117c82ffb5c56591c676ef6f04a88358f99e307fddd1c6a6a427458ac3086e", "check": "costly-loop", "impact": "Informational", "confidence": "Medium" @@ -136,18 +136,23 @@ "elements": [ { "type": "function", - "name": "bad3_internal", + "name": "bad2", "source_mapping": { - "start": 1855, - "length": 60, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "start": 1131, + "length": 343, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43 + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 ], "starting_column": 3, "ending_column": 4 @@ -159,9 +164,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -221,40 +226,45 @@ "ending_column": 2 } }, - "signature": "bad3_internal()" + "signature": "bad2()" } }, { "type": "node", "name": "state_variable ++", "source_mapping": { - "start": 1894, + "start": 1363, "length": 16, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 42 + 31 ], - "starting_column": 5, - "ending_column": 21 + "starting_column": 7, + "ending_column": 23 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3_internal", + "name": "bad2", "source_mapping": { - "start": 1855, - "length": 60, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "start": 1131, + "length": 343, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43 + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 ], "starting_column": 3, "ending_column": 4 @@ -266,9 +276,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -328,16 +338,16 @@ "ending_column": 2 } }, - "signature": "bad3_internal()" + "signature": "bad2()" } } } } ], - "description": "CostlyOperationsInLoop.bad3_internal() (tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop:\n\t- state_variable ++ (tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#42)\n", - "markdown": "[CostlyOperationsInLoop.bad3_internal()](tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L41-L43) has costly operations inside a loop:\n\t- [state_variable ++](tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L42)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L41-L43", - "id": "6ebf2ecedb330a477079a9b72f1ba6ffc5717e08017f700538ec42d3eeab355b", + "description": "CostlyOperationsInLoop.bad2() (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#31)\n", + "markdown": "[CostlyOperationsInLoop.bad2()](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L26-L33) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L31)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L26-L33", + "id": "aae62985e3789b65bf370fb554018244b5b2e724b243f83447ed214fff715b3d", "check": "costly-loop", "impact": "Informational", "confidence": "Medium" @@ -346,20 +356,18 @@ "elements": [ { "type": "function", - "name": "bad", + "name": "bad3_internal", "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "start": 1855, + "length": 60, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 41, + 42, + 43 ], "starting_column": 3, "ending_column": 4 @@ -371,9 +379,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -433,42 +441,40 @@ "ending_column": 2 } }, - "signature": "bad()" + "signature": "bad3_internal()" } }, { "type": "node", "name": "state_variable ++", "source_mapping": { - "start": 912, + "start": 1894, "length": 16, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 22 + 42 ], - "starting_column": 7, - "ending_column": 23 + "starting_column": 5, + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad", + "name": "bad3_internal", "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "start": 1855, + "length": 60, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 41, + 42, + 43 ], "starting_column": 3, "ending_column": 4 @@ -480,9 +486,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -542,16 +548,16 @@ "ending_column": 2 } }, - "signature": "bad()" + "signature": "bad3_internal()" } } } } ], - "description": "CostlyOperationsInLoop.bad() (tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop:\n\t- state_variable ++ (tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#22)\n", - "markdown": "[CostlyOperationsInLoop.bad()](tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L20-L24) has costly operations inside a loop:\n\t- [state_variable ++](tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L22)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L20-L24", - "id": "94a7ffd0d3ada78ae8ace1304b276d677415a08dcdff51fc05889122e14633da", + "description": "CostlyOperationsInLoop.bad3_internal() (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#42)\n", + "markdown": "[CostlyOperationsInLoop.bad3_internal()](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L41-L43) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L42)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L41-L43", + "id": "ead6abba24ab0c905968b6355e45b67e7af9aafcca9b8bf35db39caaff27cd20", "check": "costly-loop", "impact": "Informational", "confidence": "Medium" @@ -560,23 +566,20 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad", "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "start": 754, + "length": 373, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 3, "ending_column": 4 @@ -588,9 +591,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -650,21 +653,21 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad()" } }, { "type": "node", "name": "state_variable ++", "source_mapping": { - "start": 1363, + "start": 912, "length": 16, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 31 + 22 ], "starting_column": 7, "ending_column": 23 @@ -672,23 +675,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad", "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "start": 754, + "length": 373, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 3, "ending_column": 4 @@ -700,9 +700,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -762,16 +762,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad()" } } } } ], - "description": "CostlyOperationsInLoop.bad2() (tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop:\n\t- state_variable ++ (tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#31)\n", - "markdown": "[CostlyOperationsInLoop.bad2()](tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L26-L33) has costly operations inside a loop:\n\t- [state_variable ++](tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L31)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L26-L33", - "id": "c0c91898e5b5af12af49b6aefdc4790190101774bffad8e446ba9c857ff86525", + "description": "CostlyOperationsInLoop.bad() (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#22)\n", + "markdown": "[CostlyOperationsInLoop.bad()](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L20-L24) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L20-L24", + "id": "fe584345def19a4dd4b80f3733e1b512baff0db924c65966422c3abdeb08fe78", "check": "costly-loop", "impact": "Informational", "confidence": "Medium" diff --git a/tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol b/tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol similarity index 100% rename from tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol rename to tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol diff --git a/tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol.0.6.11.CostlyOperationsInLoop.json b/tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol.0.6.11.CostlyOperationsInLoop.json similarity index 79% rename from tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol.0.6.11.CostlyOperationsInLoop.json rename to tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol.0.6.11.CostlyOperationsInLoop.json index 0a4fd2c89..a86e7f879 100644 --- a/tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol.0.6.11.CostlyOperationsInLoop.json +++ b/tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol.0.6.11.CostlyOperationsInLoop.json @@ -4,23 +4,20 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad", "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "start": 754, + "length": 373, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 3, "ending_column": 4 @@ -32,9 +29,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -94,21 +91,21 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad()" } }, { "type": "node", "name": "state_variable ++", "source_mapping": { - "start": 1363, + "start": 912, "length": 16, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 31 + 22 ], "starting_column": 7, "ending_column": 23 @@ -116,23 +113,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad", "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "start": 754, + "length": 373, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 3, "ending_column": 4 @@ -144,9 +138,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -206,16 +200,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad()" } } } } ], - "description": "CostlyOperationsInLoop.bad2() (tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop:\n\t- state_variable ++ (tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#31)\n", - "markdown": "[CostlyOperationsInLoop.bad2()](tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L26-L33) has costly operations inside a loop:\n\t- [state_variable ++](tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L31)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L26-L33", - "id": "3a1b0ff0bee83dfad403a074eb81c6d845c5da8e99e98433004ba72c1b2c624c", + "description": "CostlyOperationsInLoop.bad() (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#22)\n", + "markdown": "[CostlyOperationsInLoop.bad()](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L20-L24) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L20-L24", + "id": "27325f48eb30596a899c7c4d2d597cc8632225de694afb44f1a04c21fb556e6b", "check": "costly-loop", "impact": "Informational", "confidence": "Medium" @@ -224,18 +218,23 @@ "elements": [ { "type": "function", - "name": "bad3_internal", + "name": "bad2", "source_mapping": { - "start": 1855, - "length": 60, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "start": 1131, + "length": 343, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43 + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 ], "starting_column": 3, "ending_column": 4 @@ -247,9 +246,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -309,40 +308,45 @@ "ending_column": 2 } }, - "signature": "bad3_internal()" + "signature": "bad2()" } }, { "type": "node", "name": "state_variable ++", "source_mapping": { - "start": 1894, + "start": 1363, "length": 16, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 42 + 31 ], - "starting_column": 5, - "ending_column": 21 + "starting_column": 7, + "ending_column": 23 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3_internal", + "name": "bad2", "source_mapping": { - "start": 1855, - "length": 60, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "start": 1131, + "length": 343, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43 + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 ], "starting_column": 3, "ending_column": 4 @@ -354,9 +358,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -416,148 +420,16 @@ "ending_column": 2 } }, - "signature": "bad3_internal()" - } - } - } - } - ], - "description": "CostlyOperationsInLoop.bad3_internal() (tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop:\n\t- state_variable ++ (tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#42)\n", - "markdown": "[CostlyOperationsInLoop.bad3_internal()](tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L41-L43) has costly operations inside a loop:\n\t- [state_variable ++](tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L42)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L41-L43", - "id": "4bb89ccd252e2233f67cccaf8b40354da7edcb7c5b36df1edfeab0cafed05b74", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 102, - "length": 389, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoopBase", - "source_mapping": { - "start": 0, - "length": 494, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - }, - { - "type": "node", - "name": "state_variable_base ++", - "source_mapping": { - "start": 271, - "length": 21, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 7, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 102, - "length": 389, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoopBase", - "source_mapping": { - "start": 0, - "length": 494, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" + "signature": "bad2()" } } } } ], - "description": "CostlyOperationsInLoopBase.bad_base() (tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop:\n\t- state_variable_base ++ (tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#7)\n", - "markdown": "[CostlyOperationsInLoopBase.bad_base()](tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L5-L9) has costly operations inside a loop:\n\t- [state_variable_base ++](tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L7)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L5-L9", - "id": "53602b905c8ae68d5325f0c11263f1c9b905406799ec70ca13638f4b1094c37f", + "description": "CostlyOperationsInLoop.bad2() (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#31)\n", + "markdown": "[CostlyOperationsInLoop.bad2()](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L26-L33) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L31)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L26-L33", + "id": "396d71671ee31a8296212d18098a3a49185f5c6304b7210c6c1710d373867bc9", "check": "costly-loop", "impact": "Informational", "confidence": "Medium" @@ -566,20 +438,18 @@ "elements": [ { "type": "function", - "name": "bad", + "name": "bad3_internal", "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "start": 1855, + "length": 60, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 41, + 42, + 43 ], "starting_column": 3, "ending_column": 4 @@ -591,9 +461,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -653,42 +523,40 @@ "ending_column": 2 } }, - "signature": "bad()" + "signature": "bad3_internal()" } }, { "type": "node", "name": "state_variable ++", "source_mapping": { - "start": 912, + "start": 1894, "length": 16, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 22 + 42 ], - "starting_column": 7, - "ending_column": 23 + "starting_column": 5, + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad", + "name": "bad3_internal", "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "start": 1855, + "length": 60, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 41, + 42, + 43 ], "starting_column": 3, "ending_column": 4 @@ -700,9 +568,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -762,16 +630,148 @@ "ending_column": 2 } }, - "signature": "bad()" + "signature": "bad3_internal()" + } + } + } + } + ], + "description": "CostlyOperationsInLoop.bad3_internal() (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#42)\n", + "markdown": "[CostlyOperationsInLoop.bad3_internal()](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L41-L43) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L42)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L41-L43", + "id": "47695c707cb0a40551bc13d81e7d29fe4f28b22601772d6c0171ae55d7b3ff04", + "check": "costly-loop", + "impact": "Informational", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "bad_base", + "source_mapping": { + "start": 102, + "length": 389, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "is_dependency": false, + "lines": [ + 5, + 6, + 7, + 8, + 9 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CostlyOperationsInLoopBase", + "source_mapping": { + "start": 0, + "length": 494, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "is_dependency": false, + "lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad_base()" + } + }, + { + "type": "node", + "name": "state_variable_base ++", + "source_mapping": { + "start": 271, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "is_dependency": false, + "lines": [ + 7 + ], + "starting_column": 7, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad_base", + "source_mapping": { + "start": 102, + "length": 389, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "is_dependency": false, + "lines": [ + 5, + 6, + 7, + 8, + 9 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CostlyOperationsInLoopBase", + "source_mapping": { + "start": 0, + "length": 494, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", + "is_dependency": false, + "lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad_base()" } } } } ], - "description": "CostlyOperationsInLoop.bad() (tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop:\n\t- state_variable ++ (tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#22)\n", - "markdown": "[CostlyOperationsInLoop.bad()](tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L20-L24) has costly operations inside a loop:\n\t- [state_variable ++](tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L22)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L20-L24", - "id": "a4f559a14007167a13506a3c865345fb2c050b8d2c660804cc5e301db553822a", + "description": "CostlyOperationsInLoopBase.bad_base() (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop:\n\t- state_variable_base ++ (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#7)\n", + "markdown": "[CostlyOperationsInLoopBase.bad_base()](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L5-L9) has costly operations inside a loop:\n\t- [state_variable_base ++](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L5-L9", + "id": "5ec78c14e179002e40fd9511c749aa5ca38809c7b64160f88b11f70a7ef4f61f", "check": "costly-loop", "impact": "Informational", "confidence": "Medium" diff --git a/tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol b/tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol similarity index 100% rename from tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol rename to tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol diff --git a/tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol.0.7.6.CostlyOperationsInLoop.json b/tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol.0.7.6.CostlyOperationsInLoop.json similarity index 79% rename from tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol.0.7.6.CostlyOperationsInLoop.json rename to tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol.0.7.6.CostlyOperationsInLoop.json index 5658e59fa..7bb08cbb8 100644 --- a/tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol.0.7.6.CostlyOperationsInLoop.json +++ b/tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol.0.7.6.CostlyOperationsInLoop.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1855, "length": 60, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 41, @@ -27,9 +27,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -98,9 +98,9 @@ "source_mapping": { "start": 1894, "length": 16, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 42 @@ -115,9 +115,9 @@ "source_mapping": { "start": 1855, "length": 60, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 41, @@ -134,9 +134,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -202,10 +202,10 @@ } } ], - "description": "CostlyOperationsInLoop.bad3_internal() (tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop:\n\t- state_variable ++ (tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#42)\n", - "markdown": "[CostlyOperationsInLoop.bad3_internal()](tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L41-L43) has costly operations inside a loop:\n\t- [state_variable ++](tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L42)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L41-L43", - "id": "77bb0a1e0308312bb9696553d6384270c433fcbebd6311e053c6979d4bdc2128", + "description": "CostlyOperationsInLoop.bad3_internal() (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#42)\n", + "markdown": "[CostlyOperationsInLoop.bad3_internal()](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L41-L43) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L42)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L41-L43", + "id": "0a74da2f3ac1efea52b795c82e6c5cc0cda69591fce40359b61dc9eba6b1be84", "check": "costly-loop", "impact": "Informational", "confidence": "Medium" @@ -218,9 +218,9 @@ "source_mapping": { "start": 102, "length": 389, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 5, @@ -239,9 +239,9 @@ "source_mapping": { "start": 0, "length": 494, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 1, @@ -269,9 +269,9 @@ "source_mapping": { "start": 271, "length": 21, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 7 @@ -286,9 +286,9 @@ "source_mapping": { "start": 102, "length": 389, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 5, @@ -307,9 +307,9 @@ "source_mapping": { "start": 0, "length": 494, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 1, @@ -334,10 +334,10 @@ } } ], - "description": "CostlyOperationsInLoopBase.bad_base() (tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop:\n\t- state_variable_base ++ (tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#7)\n", - "markdown": "[CostlyOperationsInLoopBase.bad_base()](tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L5-L9) has costly operations inside a loop:\n\t- [state_variable_base ++](tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L7)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L5-L9", - "id": "a150cde3056e29877ab4fc8d64ce48a08db143bcb5dc2bcccae8f7848e666940", + "description": "CostlyOperationsInLoopBase.bad_base() (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop:\n\t- state_variable_base ++ (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#7)\n", + "markdown": "[CostlyOperationsInLoopBase.bad_base()](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L5-L9) has costly operations inside a loop:\n\t- [state_variable_base ++](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L5-L9", + "id": "0bdf1f5aac98091f9f48992b477699d9f08b770bd2598c66a0f4ded1154078f0", "check": "costly-loop", "impact": "Informational", "confidence": "Medium" @@ -346,20 +346,23 @@ "elements": [ { "type": "function", - "name": "bad", + "name": "bad2", "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "start": 1131, + "length": 343, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 ], "starting_column": 3, "ending_column": 4 @@ -371,9 +374,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -433,21 +436,21 @@ "ending_column": 2 } }, - "signature": "bad()" + "signature": "bad2()" } }, { "type": "node", "name": "state_variable ++", "source_mapping": { - "start": 912, + "start": 1363, "length": 16, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 22 + 31 ], "starting_column": 7, "ending_column": 23 @@ -455,20 +458,23 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad", + "name": "bad2", "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "start": 1131, + "length": 343, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 ], "starting_column": 3, "ending_column": 4 @@ -480,9 +486,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -542,16 +548,16 @@ "ending_column": 2 } }, - "signature": "bad()" + "signature": "bad2()" } } } } ], - "description": "CostlyOperationsInLoop.bad() (tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop:\n\t- state_variable ++ (tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#22)\n", - "markdown": "[CostlyOperationsInLoop.bad()](tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L20-L24) has costly operations inside a loop:\n\t- [state_variable ++](tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L22)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L20-L24", - "id": "c92490750428b640ff46202b5fe9d0eb62ab98a70419cef5ca80530c15b14180", + "description": "CostlyOperationsInLoop.bad2() (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#31)\n", + "markdown": "[CostlyOperationsInLoop.bad2()](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L26-L33) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L31)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L26-L33", + "id": "63e17db491a0aee4534c9a79a79cde901cab73d7f99b432bf235f6824d2062f9", "check": "costly-loop", "impact": "Informational", "confidence": "Medium" @@ -560,23 +566,20 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad", "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "start": 754, + "length": 373, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 3, "ending_column": 4 @@ -588,9 +591,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -650,21 +653,21 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad()" } }, { "type": "node", "name": "state_variable ++", "source_mapping": { - "start": 1363, + "start": 912, "length": 16, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 31 + 22 ], "starting_column": 7, "ending_column": 23 @@ -672,23 +675,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad", "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "start": 754, + "length": 373, + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 3, "ending_column": 4 @@ -700,9 +700,9 @@ "source_mapping": { "start": 496, "length": 1899, - "filename_relative": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", "is_dependency": false, "lines": [ 13, @@ -762,16 +762,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad()" } } } } ], - "description": "CostlyOperationsInLoop.bad2() (tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop:\n\t- state_variable ++ (tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#31)\n", - "markdown": "[CostlyOperationsInLoop.bad2()](tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L26-L33) has costly operations inside a loop:\n\t- [state_variable ++](tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L31)\n", - "first_markdown_element": "tests/detectors/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L26-L33", - "id": "f7ebc0c37f31c1a68b8fbfe7530fd66f3c590e5631478cc88d03eeaa8c09f6a6", + "description": "CostlyOperationsInLoop.bad() (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#22)\n", + "markdown": "[CostlyOperationsInLoop.bad()](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L20-L24) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L20-L24", + "id": "c360d08ee1ae166d2088f069079fbb267ff31dcc5a2b3502193dee7cb27ad75a", "check": "costly-loop", "impact": "Informational", "confidence": "Medium" diff --git a/tests/detectors/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol b/tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol similarity index 100% rename from tests/detectors/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol rename to tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol diff --git a/tests/detectors/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json b/tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json similarity index 77% rename from tests/detectors/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json rename to tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json index e6e370ac3..472f9a0ba 100644 --- a/tests/detectors/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json +++ b/tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 244, "length": 536, - "filename_relative": "tests/detectors/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol", + "filename_relative": "tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol", + "filename_short": "tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol", "is_dependency": false, "lines": [ 17, @@ -39,9 +39,9 @@ "source_mapping": { "start": 25, "length": 757, - "filename_relative": "tests/detectors/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol", + "filename_relative": "tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol", + "filename_short": "tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol", "is_dependency": false, "lines": [ 3, @@ -84,9 +84,9 @@ } } ], - "description": "HighCyclomaticComplexity.highCC() (tests/detectors/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol#17-31) has a high cyclomatic complexity (12).\n", - "markdown": "[HighCyclomaticComplexity.highCC()](tests/detectors/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol#L17-L31) has a high cyclomatic complexity (12).\n", - "first_markdown_element": "tests/detectors/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol#L17-L31", + "description": "HighCyclomaticComplexity.highCC() (tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol#17-31) has a high cyclomatic complexity (12).\n", + "markdown": "[HighCyclomaticComplexity.highCC()](tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol#L17-L31) has a high cyclomatic complexity (12).\n", + "first_markdown_element": "tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol#L17-L31", "id": "405b9e7f5697539c75171d728f0a10b6ebb7fe08441c445b0e63c33982c98e2d", "check": "cyclomatic-complexity", "impact": "Informational", diff --git a/tests/detectors/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol b/tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol similarity index 100% rename from tests/detectors/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol rename to tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol diff --git a/tests/detectors/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json b/tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json similarity index 100% rename from tests/detectors/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json rename to tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json diff --git a/tests/detectors/dead-code/0.8.0/dead-code.sol b/tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol similarity index 100% rename from tests/detectors/dead-code/0.8.0/dead-code.sol rename to tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol diff --git a/tests/detectors/dead-code/0.8.0/dead-code.sol.0.8.0.DeadCode.json b/tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol.0.8.0.DeadCode.json similarity index 68% rename from tests/detectors/dead-code/0.8.0/dead-code.sol.0.8.0.DeadCode.json rename to tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol.0.8.0.DeadCode.json index 43ae37d66..32481128a 100644 --- a/tests/detectors/dead-code/0.8.0/dead-code.sol.0.8.0.DeadCode.json +++ b/tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol.0.8.0.DeadCode.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 319, "length": 56, - "filename_relative": "tests/detectors/dead-code/0.8.0/dead-code.sol", + "filename_relative": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/dead-code/0.8.0/dead-code.sol", + "filename_short": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", "is_dependency": false, "lines": [ 26, @@ -27,9 +27,9 @@ "source_mapping": { "start": 290, "length": 87, - "filename_relative": "tests/detectors/dead-code/0.8.0/dead-code.sol", + "filename_relative": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/dead-code/0.8.0/dead-code.sol", + "filename_short": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", "is_dependency": false, "lines": [ 25, @@ -46,9 +46,9 @@ } } ], - "description": "Test4.unused_but_shadowed() (tests/detectors/dead-code/0.8.0/dead-code.sol#26-28) is never used and should be removed\n", - "markdown": "[Test4.unused_but_shadowed()](tests/detectors/dead-code/0.8.0/dead-code.sol#L26-L28) is never used and should be removed\n", - "first_markdown_element": "tests/detectors/dead-code/0.8.0/dead-code.sol#L26-L28", + "description": "Test4.unused_but_shadowed() (tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#26-28) is never used and should be removed\n", + "markdown": "[Test4.unused_but_shadowed()](tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#L26-L28) is never used and should be removed\n", + "first_markdown_element": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#L26-L28", "id": "74ea8421cf7fa9e04d243014b61f3eee7a9c7648df98316c3881dd4f1f2ab3f7", "check": "dead-code", "impact": "Informational", @@ -62,9 +62,9 @@ "source_mapping": { "start": 19, "length": 34, - "filename_relative": "tests/detectors/dead-code/0.8.0/dead-code.sol", + "filename_relative": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/dead-code/0.8.0/dead-code.sol", + "filename_short": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", "is_dependency": false, "lines": [ 2, @@ -81,9 +81,9 @@ "source_mapping": { "start": 0, "length": 55, - "filename_relative": "tests/detectors/dead-code/0.8.0/dead-code.sol", + "filename_relative": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/dead-code/0.8.0/dead-code.sol", + "filename_short": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", "is_dependency": false, "lines": [ 1, @@ -100,9 +100,9 @@ } } ], - "description": "Test.unused() (tests/detectors/dead-code/0.8.0/dead-code.sol#2-4) is never used and should be removed\n", - "markdown": "[Test.unused()](tests/detectors/dead-code/0.8.0/dead-code.sol#L2-L4) is never used and should be removed\n", - "first_markdown_element": "tests/detectors/dead-code/0.8.0/dead-code.sol#L2-L4", + "description": "Test.unused() (tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#2-4) is never used and should be removed\n", + "markdown": "[Test.unused()](tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#L2-L4) is never used and should be removed\n", + "first_markdown_element": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#L2-L4", "id": "a7c13823116566bbbbb68e8a7efa78fe64785fcb8582069373eda7f27c523cb3", "check": "dead-code", "impact": "Informational", @@ -116,9 +116,9 @@ "source_mapping": { "start": 79, "length": 55, - "filename_relative": "tests/detectors/dead-code/0.8.0/dead-code.sol", + "filename_relative": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/dead-code/0.8.0/dead-code.sol", + "filename_short": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", "is_dependency": false, "lines": [ 10, @@ -135,9 +135,9 @@ "source_mapping": { "start": 58, "length": 78, - "filename_relative": "tests/detectors/dead-code/0.8.0/dead-code.sol", + "filename_relative": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/dead-code/0.8.0/dead-code.sol", + "filename_short": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", "is_dependency": false, "lines": [ 8, @@ -155,9 +155,9 @@ } } ], - "description": "Test2.unused_but_shadowed() (tests/detectors/dead-code/0.8.0/dead-code.sol#10-12) is never used and should be removed\n", - "markdown": "[Test2.unused_but_shadowed()](tests/detectors/dead-code/0.8.0/dead-code.sol#L10-L12) is never used and should be removed\n", - "first_markdown_element": "tests/detectors/dead-code/0.8.0/dead-code.sol#L10-L12", + "description": "Test2.unused_but_shadowed() (tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#10-12) is never used and should be removed\n", + "markdown": "[Test2.unused_but_shadowed()](tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#L10-L12) is never used and should be removed\n", + "first_markdown_element": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#L10-L12", "id": "aaba496684b73955e90b555de174e1cd03f0fee337849c4d58c10ef76ff93582", "check": "dead-code", "impact": "Informational", diff --git a/tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol b/tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol similarity index 100% rename from tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol rename to tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol diff --git a/tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol.0.4.25.DelegatecallInLoop.json b/tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol.0.4.25.DelegatecallInLoop.json similarity index 77% rename from tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol.0.4.25.DelegatecallInLoop.json rename to tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol.0.4.25.DelegatecallInLoop.json index 4a5c9a7b2..4fae8a432 100644 --- a/tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol.0.4.25.DelegatecallInLoop.json +++ b/tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol.0.4.25.DelegatecallInLoop.json @@ -4,22 +4,20 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad", "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "start": 61, + "length": 232, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 + 5, + 6, + 7, + 8, + 9 ], "starting_column": 5, "ending_column": 6 @@ -31,9 +29,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -75,44 +73,42 @@ "ending_column": 0 } }, - "signature": "bad3(address[])" + "signature": "bad(address[])" } }, { "type": "node", "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", "source_mapping": { - "start": 931, + "start": 188, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 28 + 7 ], - "starting_column": 17, - "ending_column": 105 + "starting_column": 13, + "ending_column": 101 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad", "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "start": 61, + "length": 232, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 + 5, + 6, + 7, + 8, + 9 ], "starting_column": 5, "ending_column": 6 @@ -124,9 +120,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -168,16 +164,16 @@ "ending_column": 0 } }, - "signature": "bad3(address[])" + "signature": "bad(address[])" } } } } ], - "description": "C.bad3(address[]) (tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#28)\n", - "markdown": "[C.bad3(address[])](tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#L28)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#L25-L31", - "id": "77dda07eb6e2fe62ccfc45730422fa556ee775c1f6686148258f1ccc76c86491", + "description": "C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#7)\n", + "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L5-L9", + "id": "6d9bc0a5e7904d4ff88cea0a8f899ad4952da844175aa76970d40189e6c0ecb5", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" @@ -186,20 +182,22 @@ "elements": [ { "type": "function", - "name": "bad2_internal", + "name": "bad3", "source_mapping": { - "start": 496, - "length": 236, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "start": 738, + "length": 312, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21, - 22, - 23 + 25, + 26, + 27, + 28, + 29, + 30, + 31 ], "starting_column": 5, "ending_column": 6 @@ -211,9 +209,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -255,42 +253,44 @@ "ending_column": 0 } }, - "signature": "bad2_internal(address[])" + "signature": "bad3(address[])" } }, { "type": "node", "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", "source_mapping": { - "start": 627, + "start": 931, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 21 + 28 ], - "starting_column": 13, - "ending_column": 101 + "starting_column": 17, + "ending_column": 105 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2_internal", + "name": "bad3", "source_mapping": { - "start": 496, - "length": 236, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "start": 738, + "length": 312, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21, - 22, - 23 + 25, + 26, + 27, + 28, + 29, + 30, + 31 ], "starting_column": 5, "ending_column": 6 @@ -302,9 +302,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -346,16 +346,16 @@ "ending_column": 0 } }, - "signature": "bad2_internal(address[])" + "signature": "bad3(address[])" } } } } ], - "description": "C.bad2_internal(address[]) (tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#21)\n", - "markdown": "[C.bad2_internal(address[])](tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#L21)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#L19-L23", - "id": "95c9b72aff8332665e8e4f528a844ef21bc09ec277d5d27d97c2f0f1d69e8ba3", + "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#28)\n", + "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L28)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L25-L31", + "id": "ac822467d10c9cfad0d6e339fb53c91b1dccd27df5697b83904751090c8c3386", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" @@ -364,20 +364,20 @@ "elements": [ { "type": "function", - "name": "bad", + "name": "bad2_internal", "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "start": 496, + "length": 236, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9 + 19, + 20, + 21, + 22, + 23 ], "starting_column": 5, "ending_column": 6 @@ -389,9 +389,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -433,21 +433,21 @@ "ending_column": 0 } }, - "signature": "bad(address[])" + "signature": "bad2_internal(address[])" } }, { "type": "node", "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", "source_mapping": { - "start": 188, + "start": 627, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 7 + 21 ], "starting_column": 13, "ending_column": 101 @@ -455,20 +455,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad", + "name": "bad2_internal", "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "start": 496, + "length": 236, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9 + 19, + 20, + 21, + 22, + 23 ], "starting_column": 5, "ending_column": 6 @@ -480,9 +480,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -524,16 +524,16 @@ "ending_column": 0 } }, - "signature": "bad(address[])" + "signature": "bad2_internal(address[])" } } } } ], - "description": "C.bad(address[]) (tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#L7)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.4.25/delegatecall_loop.sol#L5-L9", - "id": "e057dff3814f9be2d5eca53fe80f41323b8ed90d20bb1e33600bb4e043c40b66", + "description": "C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#21)\n", + "markdown": "[C.bad2_internal(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L21)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L19-L23", + "id": "f648fec7fba6e2f8a7e8d9d1e5d7106c6f433c64a7c95b236571a032eae5c6cd", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol b/tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol similarity index 100% rename from tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol rename to tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol diff --git a/tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol.0.5.16.DelegatecallInLoop.json b/tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol.0.5.16.DelegatecallInLoop.json similarity index 77% rename from tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol.0.5.16.DelegatecallInLoop.json rename to tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol.0.5.16.DelegatecallInLoop.json index c9300b967..d94587fcb 100644 --- a/tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol.0.5.16.DelegatecallInLoop.json +++ b/tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol.0.5.16.DelegatecallInLoop.json @@ -4,20 +4,22 @@ "elements": [ { "type": "function", - "name": "bad", + "name": "bad3", "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "start": 738, + "length": 312, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9 + 25, + 26, + 27, + 28, + 29, + 30, + 31 ], "starting_column": 5, "ending_column": 6 @@ -29,9 +31,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -73,42 +75,44 @@ "ending_column": 0 } }, - "signature": "bad(address[])" + "signature": "bad3(address[])" } }, { "type": "node", "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", "source_mapping": { - "start": 188, + "start": 931, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 7 + 28 ], - "starting_column": 13, - "ending_column": 101 + "starting_column": 17, + "ending_column": 105 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad", + "name": "bad3", "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "start": 738, + "length": 312, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9 + 25, + 26, + 27, + 28, + 29, + 30, + 31 ], "starting_column": 5, "ending_column": 6 @@ -120,9 +124,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -164,16 +168,16 @@ "ending_column": 0 } }, - "signature": "bad(address[])" + "signature": "bad3(address[])" } } } } ], - "description": "C.bad(address[]) (tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#L7)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#L5-L9", - "id": "71bad0e6228b341671dd1cc38d74fb727f9bbc5764104298596986d8f4967c02", + "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#28)\n", + "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L28)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L25-L31", + "id": "2bb1d5246bbd1909dd6a155843116289ce711f41ad69b8f4449272edb2c5884f", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" @@ -186,9 +190,9 @@ "source_mapping": { "start": 496, "length": 236, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ 19, @@ -207,9 +211,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -260,9 +264,9 @@ "source_mapping": { "start": 627, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ 21 @@ -277,9 +281,9 @@ "source_mapping": { "start": 496, "length": 236, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ 19, @@ -298,9 +302,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -348,10 +352,10 @@ } } ], - "description": "C.bad2_internal(address[]) (tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#21)\n", - "markdown": "[C.bad2_internal(address[])](tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#L21)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#L19-L23", - "id": "7edbf79d9613bc9338f4956841c0fbece80b489971f8c05ae818babc7e27931a", + "description": "C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#21)\n", + "markdown": "[C.bad2_internal(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L21)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L19-L23", + "id": "5fe4854bde1eae7f4e80865a5244c15203ddf7274177ae4d592ec807358ae8d4", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" @@ -360,22 +364,20 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad", "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "start": 61, + "length": 232, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 + 5, + 6, + 7, + 8, + 9 ], "starting_column": 5, "ending_column": 6 @@ -387,9 +389,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -431,44 +433,42 @@ "ending_column": 0 } }, - "signature": "bad3(address[])" + "signature": "bad(address[])" } }, { "type": "node", "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", "source_mapping": { - "start": 931, + "start": 188, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 28 + 7 ], - "starting_column": 17, - "ending_column": 105 + "starting_column": 13, + "ending_column": 101 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad", "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "start": 61, + "length": 232, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 + 5, + 6, + 7, + 8, + 9 ], "starting_column": 5, "ending_column": 6 @@ -480,9 +480,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -524,16 +524,16 @@ "ending_column": 0 } }, - "signature": "bad3(address[])" + "signature": "bad(address[])" } } } } ], - "description": "C.bad3(address[]) (tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#28)\n", - "markdown": "[C.bad3(address[])](tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#L28)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.5.16/delegatecall_loop.sol#L25-L31", - "id": "e4ea7a031f3f945111f70123e85c9f92b52ac8fd7c04a8c2443393592982e39a", + "description": "C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#7)\n", + "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L5-L9", + "id": "71f8693b47930de0717a75f8e0eb8f13f3e33d92a9307d69e8f10063af25c2c1", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol b/tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol similarity index 100% rename from tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol rename to tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol diff --git a/tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol.0.6.11.DelegatecallInLoop.json b/tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol.0.6.11.DelegatecallInLoop.json similarity index 77% rename from tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol.0.6.11.DelegatecallInLoop.json rename to tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol.0.6.11.DelegatecallInLoop.json index 0696b4687..0cc3b55b1 100644 --- a/tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol.0.6.11.DelegatecallInLoop.json +++ b/tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol.0.6.11.DelegatecallInLoop.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 496, "length": 236, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 19, @@ -29,9 +29,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -82,9 +82,9 @@ "source_mapping": { "start": 627, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 21 @@ -99,9 +99,9 @@ "source_mapping": { "start": 496, "length": 236, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 19, @@ -120,9 +120,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -170,10 +170,10 @@ } } ], - "description": "C.bad2_internal(address[]) (tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#21)\n", - "markdown": "[C.bad2_internal(address[])](tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#L21)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#L19-L23", - "id": "50e1b9196dcf1e1d7678184956c7a9d3ba470ab23d7be04163d366b092e2df41", + "description": "C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#21)\n", + "markdown": "[C.bad2_internal(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L21)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L19-L23", + "id": "97dc1b51f8421dc1aacb9e61148276a0847bdeeef9c26728ab817f4c3ce8fd8d", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" @@ -186,9 +186,9 @@ "source_mapping": { "start": 61, "length": 232, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 5, @@ -207,9 +207,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -260,9 +260,9 @@ "source_mapping": { "start": 188, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 7 @@ -277,9 +277,9 @@ "source_mapping": { "start": 61, "length": 232, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 5, @@ -298,9 +298,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -348,10 +348,10 @@ } } ], - "description": "C.bad(address[]) (tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#L7)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#L5-L9", - "id": "dfa0a166dfe43235e3fbeab4eadd8b0c7c612cd2fefe3cf281d909129b3b824e", + "description": "C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#7)\n", + "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L5-L9", + "id": "dc8778c51053755c51632930034da0c873adbf6645d4f94786948a0d05cf6dd9", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" @@ -364,9 +364,9 @@ "source_mapping": { "start": 738, "length": 312, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 25, @@ -387,9 +387,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -440,9 +440,9 @@ "source_mapping": { "start": 931, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 28 @@ -457,9 +457,9 @@ "source_mapping": { "start": 738, "length": 312, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 25, @@ -480,9 +480,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -530,10 +530,10 @@ } } ], - "description": "C.bad3(address[]) (tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#28)\n", - "markdown": "[C.bad3(address[])](tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#L28)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.6.11/delegatecall_loop.sol#L25-L31", - "id": "f42b54838c6756ddd38ad98fb9243413bbbd169a6d513737c1b85bd6dc263107", + "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#28)\n", + "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L28)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L25-L31", + "id": "de66bd5e8cc1629598220beba34d036a8d5ffe2fb46d58203b83dc388371c44f", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol b/tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol similarity index 100% rename from tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol rename to tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol diff --git a/tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol.0.7.6.DelegatecallInLoop.json b/tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol.0.7.6.DelegatecallInLoop.json similarity index 77% rename from tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol.0.7.6.DelegatecallInLoop.json rename to tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol.0.7.6.DelegatecallInLoop.json index f9aea9155..87c8bb520 100644 --- a/tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol.0.7.6.DelegatecallInLoop.json +++ b/tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol.0.7.6.DelegatecallInLoop.json @@ -4,20 +4,22 @@ "elements": [ { "type": "function", - "name": "bad", + "name": "bad3", "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "start": 738, + "length": 312, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9 + 25, + 26, + 27, + 28, + 29, + 30, + 31 ], "starting_column": 5, "ending_column": 6 @@ -29,9 +31,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -73,42 +75,44 @@ "ending_column": 0 } }, - "signature": "bad(address[])" + "signature": "bad3(address[])" } }, { "type": "node", "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", "source_mapping": { - "start": 188, + "start": 931, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 7 + 28 ], - "starting_column": 13, - "ending_column": 101 + "starting_column": 17, + "ending_column": 105 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad", + "name": "bad3", "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "start": 738, + "length": 312, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9 + 25, + 26, + 27, + 28, + 29, + 30, + 31 ], "starting_column": 5, "ending_column": 6 @@ -120,9 +124,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -164,16 +168,16 @@ "ending_column": 0 } }, - "signature": "bad(address[])" + "signature": "bad3(address[])" } } } } ], - "description": "C.bad(address[]) (tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#L7)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#L5-L9", - "id": "33dd934c565095b28b362765c0c885287aaf87741cf31dae44457268f831b7a4", + "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#28)\n", + "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L28)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L25-L31", + "id": "22297edc513f30360b22344a1a3a22592bd6bb7ff59c001682e38e45497cf3d5", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" @@ -182,22 +186,20 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad", "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "start": 61, + "length": 232, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 + 5, + 6, + 7, + 8, + 9 ], "starting_column": 5, "ending_column": 6 @@ -209,9 +211,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -253,44 +255,42 @@ "ending_column": 0 } }, - "signature": "bad3(address[])" + "signature": "bad(address[])" } }, { "type": "node", "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", "source_mapping": { - "start": 931, + "start": 188, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 28 + 7 ], - "starting_column": 17, - "ending_column": 105 + "starting_column": 13, + "ending_column": 101 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad", "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "start": 61, + "length": 232, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 + 5, + 6, + 7, + 8, + 9 ], "starting_column": 5, "ending_column": 6 @@ -302,9 +302,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -346,16 +346,16 @@ "ending_column": 0 } }, - "signature": "bad3(address[])" + "signature": "bad(address[])" } } } } ], - "description": "C.bad3(address[]) (tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#28)\n", - "markdown": "[C.bad3(address[])](tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#L28)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#L25-L31", - "id": "40cecf9f87caeb930a800e6eb9c668fd6ca5077af3176e48af13c4892bcaf419", + "description": "C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#7)\n", + "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L5-L9", + "id": "cc5994221aa31f9739264e5be5c60cc2762bc652cb75d6de3c27a2ae5b354925", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" @@ -368,9 +368,9 @@ "source_mapping": { "start": 496, "length": 236, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ 19, @@ -389,9 +389,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -442,9 +442,9 @@ "source_mapping": { "start": 627, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ 21 @@ -459,9 +459,9 @@ "source_mapping": { "start": 496, "length": 236, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ 19, @@ -480,9 +480,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -530,10 +530,10 @@ } } ], - "description": "C.bad2_internal(address[]) (tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#21)\n", - "markdown": "[C.bad2_internal(address[])](tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#L21)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.7.6/delegatecall_loop.sol#L19-L23", - "id": "a7f58e5431f4817c8f3e39d7efdb1b1633316d9be3fd73669e509ec33b6bd2d3", + "description": "C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#21)\n", + "markdown": "[C.bad2_internal(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L21)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L19-L23", + "id": "ff0a3a52fabc95be0e7bba07f943922d2a167f235da04acebc196b31794db9a8", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol b/tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol similarity index 100% rename from tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol rename to tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol diff --git a/tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol.0.8.0.DelegatecallInLoop.json b/tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol.0.8.0.DelegatecallInLoop.json similarity index 77% rename from tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol.0.8.0.DelegatecallInLoop.json rename to tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol.0.8.0.DelegatecallInLoop.json index 3d25d5591..5b9c798a8 100644 --- a/tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol.0.8.0.DelegatecallInLoop.json +++ b/tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol.0.8.0.DelegatecallInLoop.json @@ -4,22 +4,20 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad2_internal", "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "start": 496, + "length": 236, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 + 19, + 20, + 21, + 22, + 23 ], "starting_column": 5, "ending_column": 6 @@ -31,9 +29,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -75,44 +73,42 @@ "ending_column": 0 } }, - "signature": "bad3(address[])" + "signature": "bad2_internal(address[])" } }, { "type": "node", "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", "source_mapping": { - "start": 931, + "start": 627, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 28 + 21 ], - "starting_column": 17, - "ending_column": 105 + "starting_column": 13, + "ending_column": 101 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad2_internal", "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "start": 496, + "length": 236, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 + 19, + 20, + 21, + 22, + 23 ], "starting_column": 5, "ending_column": 6 @@ -124,9 +120,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -168,16 +164,16 @@ "ending_column": 0 } }, - "signature": "bad3(address[])" + "signature": "bad2_internal(address[])" } } } } ], - "description": "C.bad3(address[]) (tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#28)\n", - "markdown": "[C.bad3(address[])](tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#L28)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#L25-L31", - "id": "0bacdb8b28979c680bd97f07b6a7e17d687dde34b125b23d9d71514d37d5e863", + "description": "C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#21)\n", + "markdown": "[C.bad2_internal(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L21)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L19-L23", + "id": "70eb4ee10daaff19bd10786cf08e02a9054a483051bce2745b451aa3a9e37e34", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" @@ -190,9 +186,9 @@ "source_mapping": { "start": 61, "length": 232, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ 5, @@ -211,9 +207,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -264,9 +260,9 @@ "source_mapping": { "start": 188, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ 7 @@ -281,9 +277,9 @@ "source_mapping": { "start": 61, "length": 232, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ 5, @@ -302,9 +298,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -352,10 +348,10 @@ } } ], - "description": "C.bad(address[]) (tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#L7)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#L5-L9", - "id": "b810117268c82cb0e2ba1fce4549cef820197f59c877fd5f0701661a0f7bbf47", + "description": "C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#7)\n", + "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L5-L9", + "id": "a7688352c79b5cc2fbe653e77c2e848245885b7e0a1706efc2d6856c54ff9e13", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" @@ -364,20 +360,22 @@ "elements": [ { "type": "function", - "name": "bad2_internal", + "name": "bad3", "source_mapping": { - "start": 496, - "length": 236, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "start": 738, + "length": 312, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21, - 22, - 23 + 25, + 26, + 27, + 28, + 29, + 30, + 31 ], "starting_column": 5, "ending_column": 6 @@ -389,9 +387,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -433,42 +431,44 @@ "ending_column": 0 } }, - "signature": "bad2_internal(address[])" + "signature": "bad3(address[])" } }, { "type": "node", "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", "source_mapping": { - "start": 627, + "start": 931, "length": 88, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 21 + 28 ], - "starting_column": 13, - "ending_column": 101 + "starting_column": 17, + "ending_column": 105 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2_internal", + "name": "bad3", "source_mapping": { - "start": 496, - "length": 236, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "start": 738, + "length": 312, + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21, - 22, - 23 + 25, + 26, + 27, + 28, + 29, + 30, + 31 ], "starting_column": 5, "ending_column": 6 @@ -480,9 +480,9 @@ "source_mapping": { "start": 0, "length": 1053, - "filename_relative": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", "is_dependency": false, "lines": [ 1, @@ -524,16 +524,16 @@ "ending_column": 0 } }, - "signature": "bad2_internal(address[])" + "signature": "bad3(address[])" } } } } ], - "description": "C.bad2_internal(address[]) (tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#21)\n", - "markdown": "[C.bad2_internal(address[])](tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#L21)\n", - "first_markdown_element": "tests/detectors/delegatecall-loop/0.8.0/delegatecall_loop.sol#L19-L23", - "id": "c09bee70334dcac1e61b8295e12f2928ec522c8a0682f6068e6c283361ab1e59", + "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#28)\n", + "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L28)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L25-L31", + "id": "dcea54e7b19718e877e0b79c5ac7e66b6b70a2bc354a6580bdfbbf1de30abce2", "check": "delegatecall-loop", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol b/tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol similarity index 100% rename from tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol rename to tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol diff --git a/tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol.0.4.25.DeprecatedStandards.json b/tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol.0.4.25.DeprecatedStandards.json similarity index 74% rename from tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol.0.4.25.DeprecatedStandards.json rename to tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol.0.4.25.DeprecatedStandards.json index 841e68328..c52e23769 100644 --- a/tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol.0.4.25.DeprecatedStandards.json +++ b/tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol.0.4.25.DeprecatedStandards.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 228, "length": 5, - "filename_relative": "tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", "is_dependency": false, "lines": [ 7 @@ -25,9 +25,9 @@ "source_mapping": { "start": 21, "length": 229, - "filename_relative": "tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", "is_dependency": false, "lines": [ 3, @@ -48,9 +48,9 @@ "source_mapping": { "start": 0, "length": 252, - "filename_relative": "tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", "is_dependency": false, "lines": [ 1, @@ -75,10 +75,10 @@ } } ], - "description": "Deprecated standard detected THROW (tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol#7):\n\t- Usage of \"throw\" should be replaced with \"revert()\"\n", - "markdown": "Deprecated standard detected [THROW](tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol#L7):\n\t- Usage of \"throw\" should be replaced with \"revert()\"\n", - "first_markdown_element": "tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol#L7", - "id": "5fbf4a42467953d0fd8d0661cbb4eeb81d4b40f69ae3820196bf10c4be53044e", + "description": "Deprecated standard detected THROW (tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol#7):\n\t- Usage of \"throw\" should be replaced with \"revert()\"\n", + "markdown": "Deprecated standard detected [THROW](tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol#L7):\n\t- Usage of \"throw\" should be replaced with \"revert()\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol#L7", + "id": "26dcbbdf287ff1629f847bf78caee220ca0830267d2665347f845c310a22286c", "check": "deprecated-standards", "impact": "Informational", "confidence": "High" @@ -91,9 +91,9 @@ "source_mapping": { "start": 140, "length": 20, - "filename_relative": "tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", "is_dependency": false, "lines": [ 5 @@ -108,9 +108,9 @@ "source_mapping": { "start": 21, "length": 229, - "filename_relative": "tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", "is_dependency": false, "lines": [ 3, @@ -131,9 +131,9 @@ "source_mapping": { "start": 0, "length": 252, - "filename_relative": "tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", "is_dependency": false, "lines": [ 1, @@ -158,10 +158,10 @@ } } ], - "description": "Deprecated standard detected msg.gas == msg.value (tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol#5):\n\t- Usage of \"msg.gas\" should be replaced with \"gasleft()\"\n", - "markdown": "Deprecated standard detected [msg.gas == msg.value](tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol#L5):\n\t- Usage of \"msg.gas\" should be replaced with \"gasleft()\"\n", - "first_markdown_element": "tests/detectors/deprecated-standards/0.4.25/deprecated_calls.sol#L5", - "id": "e779713eabc28919356310f06b9413a8a3b7e9e713026d6cfae2d9f6839c1e57", + "description": "Deprecated standard detected msg.gas == msg.value (tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol#5):\n\t- Usage of \"msg.gas\" should be replaced with \"gasleft()\"\n", + "markdown": "Deprecated standard detected [msg.gas == msg.value](tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol#L5):\n\t- Usage of \"msg.gas\" should be replaced with \"gasleft()\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol#L5", + "id": "f3f66795b4505e6ce51ac20392919e6ea6dc57a05dc750d001fb6c35383ecbc8", "check": "deprecated-standards", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol b/tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol similarity index 100% rename from tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol rename to tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol diff --git a/tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol.0.4.25.DivideBeforeMultiply.json b/tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol.0.4.25.DivideBeforeMultiply.json similarity index 68% rename from tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol.0.4.25.DivideBeforeMultiply.json rename to tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol.0.4.25.DivideBeforeMultiply.json index 9c2064da9..152635d83 100644 --- a/tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol.0.4.25.DivideBeforeMultiply.json +++ b/tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol.0.4.25.DivideBeforeMultiply.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 14, "length": 92, - "filename_relative": "tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", "is_dependency": false, "lines": [ 2, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 108, - "filename_relative": "tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", "is_dependency": false, "lines": [ 1, @@ -52,9 +52,9 @@ "source_mapping": { "start": 81, "length": 18, - "filename_relative": "tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", "is_dependency": false, "lines": [ 3 @@ -69,9 +69,9 @@ "source_mapping": { "start": 14, "length": 92, - "filename_relative": "tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", "is_dependency": false, "lines": [ 2, @@ -88,9 +88,9 @@ "source_mapping": { "start": 0, "length": 108, - "filename_relative": "tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", "is_dependency": false, "lines": [ 1, @@ -110,10 +110,10 @@ } } ], - "description": "A.f(uint256,uint256,uint256) (tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division:\n\t- (a / b) * c (tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol#3)\n", - "markdown": "[A.f(uint256,uint256,uint256)](tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol#L2-L4) performs a multiplication on the result of a division:\n\t- [(a / b) * c](tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol#L3)\n", - "first_markdown_element": "tests/detectors/divide-before-multiply/0.4.25/divide_before_multiply.sol#L2-L4", - "id": "e0d9e5f7d421dadadf4b22750bde5233357fa2a413478117848de6e44ba9c314", + "description": "A.f(uint256,uint256,uint256) (tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division:\n\t- (a / b) * c (tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol#3)\n", + "markdown": "[A.f(uint256,uint256,uint256)](tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol#L2-L4) performs a multiplication on the result of a division:\n\t- [(a / b) * c](tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol#L2-L4", + "id": "9eef59cec9988c02e41363b250508d23dbe0d7a0536a3f482e41cb15f3a051fe", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol b/tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol similarity index 100% rename from tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol rename to tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol diff --git a/tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol.0.7.6.DivideBeforeMultiply.json b/tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol.0.5.16.DivideBeforeMultiply.json similarity index 68% rename from tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol.0.7.6.DivideBeforeMultiply.json rename to tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol.0.5.16.DivideBeforeMultiply.json index 7c68d8531..30936c73c 100644 --- a/tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol.0.7.6.DivideBeforeMultiply.json +++ b/tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol.0.5.16.DivideBeforeMultiply.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 14, "length": 92, - "filename_relative": "tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", "is_dependency": false, "lines": [ 2, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 108, - "filename_relative": "tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", "is_dependency": false, "lines": [ 1, @@ -52,9 +52,9 @@ "source_mapping": { "start": 81, "length": 18, - "filename_relative": "tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", "is_dependency": false, "lines": [ 3 @@ -69,9 +69,9 @@ "source_mapping": { "start": 14, "length": 92, - "filename_relative": "tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", "is_dependency": false, "lines": [ 2, @@ -88,9 +88,9 @@ "source_mapping": { "start": 0, "length": 108, - "filename_relative": "tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", "is_dependency": false, "lines": [ 1, @@ -110,10 +110,10 @@ } } ], - "description": "A.f(uint256,uint256,uint256) (tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division:\n\t- (a / b) * c (tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol#3)\n", - "markdown": "[A.f(uint256,uint256,uint256)](tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol#L2-L4) performs a multiplication on the result of a division:\n\t- [(a / b) * c](tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol#L3)\n", - "first_markdown_element": "tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol#L2-L4", - "id": "1978edf9df9f9dc18d8c90bb008cca4bb4b0e811fd840a337ce006fcf38c7e82", + "description": "A.f(uint256,uint256,uint256) (tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division:\n\t- (a / b) * c (tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol#3)\n", + "markdown": "[A.f(uint256,uint256,uint256)](tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol#L2-L4) performs a multiplication on the result of a division:\n\t- [(a / b) * c](tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol#L2-L4", + "id": "22bda82bb0916d099f66a9324a25a33d583986a0b0b7c606f19f5ca21c0f9e8d", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol b/tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol similarity index 100% rename from tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol rename to tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol diff --git a/tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol.0.6.11.DivideBeforeMultiply.json b/tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol.0.6.11.DivideBeforeMultiply.json similarity index 68% rename from tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol.0.6.11.DivideBeforeMultiply.json rename to tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol.0.6.11.DivideBeforeMultiply.json index c250c523c..e6fc7d050 100644 --- a/tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol.0.6.11.DivideBeforeMultiply.json +++ b/tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol.0.6.11.DivideBeforeMultiply.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 14, "length": 92, - "filename_relative": "tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", "is_dependency": false, "lines": [ 2, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 108, - "filename_relative": "tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", "is_dependency": false, "lines": [ 1, @@ -52,9 +52,9 @@ "source_mapping": { "start": 81, "length": 18, - "filename_relative": "tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", "is_dependency": false, "lines": [ 3 @@ -69,9 +69,9 @@ "source_mapping": { "start": 14, "length": 92, - "filename_relative": "tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", "is_dependency": false, "lines": [ 2, @@ -88,9 +88,9 @@ "source_mapping": { "start": 0, "length": 108, - "filename_relative": "tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", "is_dependency": false, "lines": [ 1, @@ -110,10 +110,10 @@ } } ], - "description": "A.f(uint256,uint256,uint256) (tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division:\n\t- (a / b) * c (tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol#3)\n", - "markdown": "[A.f(uint256,uint256,uint256)](tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol#L2-L4) performs a multiplication on the result of a division:\n\t- [(a / b) * c](tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol#L3)\n", - "first_markdown_element": "tests/detectors/divide-before-multiply/0.6.11/divide_before_multiply.sol#L2-L4", - "id": "c84a7841250790acbb447d31715ca8f7818170927909d599cbc08f49ce8a665d", + "description": "A.f(uint256,uint256,uint256) (tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division:\n\t- (a / b) * c (tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol#3)\n", + "markdown": "[A.f(uint256,uint256,uint256)](tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol#L2-L4) performs a multiplication on the result of a division:\n\t- [(a / b) * c](tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol#L2-L4", + "id": "f01862ecf960e9296449030a63cfe0d195b79ca26d7cf81fbb947ea581a6a568", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol b/tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol similarity index 100% rename from tests/detectors/divide-before-multiply/0.7.6/divide_before_multiply.sol rename to tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol diff --git a/tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol.0.5.16.DivideBeforeMultiply.json b/tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol.0.7.6.DivideBeforeMultiply.json similarity index 68% rename from tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol.0.5.16.DivideBeforeMultiply.json rename to tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol.0.7.6.DivideBeforeMultiply.json index 895721fd4..00a4d1842 100644 --- a/tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol.0.5.16.DivideBeforeMultiply.json +++ b/tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol.0.7.6.DivideBeforeMultiply.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 14, "length": 92, - "filename_relative": "tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", "is_dependency": false, "lines": [ 2, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 108, - "filename_relative": "tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", "is_dependency": false, "lines": [ 1, @@ -52,9 +52,9 @@ "source_mapping": { "start": 81, "length": 18, - "filename_relative": "tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", "is_dependency": false, "lines": [ 3 @@ -69,9 +69,9 @@ "source_mapping": { "start": 14, "length": 92, - "filename_relative": "tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", "is_dependency": false, "lines": [ 2, @@ -88,9 +88,9 @@ "source_mapping": { "start": 0, "length": 108, - "filename_relative": "tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol", + "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol", + "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", "is_dependency": false, "lines": [ 1, @@ -110,10 +110,10 @@ } } ], - "description": "A.f(uint256,uint256,uint256) (tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division:\n\t- (a / b) * c (tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol#3)\n", - "markdown": "[A.f(uint256,uint256,uint256)](tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol#L2-L4) performs a multiplication on the result of a division:\n\t- [(a / b) * c](tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol#L3)\n", - "first_markdown_element": "tests/detectors/divide-before-multiply/0.5.16/divide_before_multiply.sol#L2-L4", - "id": "201417019df7d5dedc2b65c695ccdce8dbd171768bb64e4bae44c2b6e81bb96b", + "description": "A.f(uint256,uint256,uint256) (tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division:\n\t- (a / b) * c (tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol#3)\n", + "markdown": "[A.f(uint256,uint256,uint256)](tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol#L2-L4) performs a multiplication on the result of a division:\n\t- [(a / b) * c](tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol#L2-L4", + "id": "5405e11c3feed3a757b92b455de6a3f32ad21ca65783d8e23cb70d54597eb1cd", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/domain-separator-collision/0.4.25/permit_domain_collision.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.4.25/permit_domain_collision.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol diff --git a/tests/detectors/domain-separator-collision/0.4.25/permit_domain_collision.sol.0.4.25.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol.0.4.25.DomainSeparatorCollision.json similarity index 90% rename from tests/detectors/domain-separator-collision/0.4.25/permit_domain_collision.sol.0.4.25.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol.0.4.25.DomainSeparatorCollision.json index 7b89af4a8..88a1c3192 100644 --- a/tests/detectors/domain-separator-collision/0.4.25/permit_domain_collision.sol.0.4.25.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol.0.4.25.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 5241, "length": 150, - "filename_relative": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol", "is_dependency": false, "lines": [ 161, @@ -27,9 +27,9 @@ "source_mapping": { "start": 449, "length": 6181, - "filename_relative": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol", "is_dependency": false, "lines": [ 7, @@ -240,9 +240,9 @@ } } ], - "description": "The function signature of ERC20.fopwCDKKK() (tests/detectors/domain-separator-collision/0.4.25/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/detectors/domain-separator-collision/0.4.25/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_collision.sol#L161-L163", + "description": "The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol#L161-L163", "id": "cb8ae27add92ad3163cbe9c0fb29a2a0032ba46384bbd5541d1d750251f5c83e", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol diff --git a/tests/detectors/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol.0.4.25.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol.0.4.25.DomainSeparatorCollision.json similarity index 89% rename from tests/detectors/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol.0.4.25.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol.0.4.25.DomainSeparatorCollision.json index 5d4c00817..b528a2236 100644 --- a/tests/detectors/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol.0.4.25.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol.0.4.25.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1735, "length": 24, - "filename_relative": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol", "is_dependency": false, "lines": [ 46 @@ -25,9 +25,9 @@ "source_mapping": { "start": 449, "length": 6054, - "filename_relative": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol", "is_dependency": false, "lines": [ 7, @@ -235,9 +235,9 @@ } } ], - "description": "The function signature of ERC20.fopwCDKKK (tests/detectors/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK](tests/detectors/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol#L46", + "description": "The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.fopwCDKKK](tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol#L46", "id": "8d18da367a9cfe0bee2ee48ee8a76072af23567d852cc81ed75dd90531cbe3d5", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol diff --git a/tests/detectors/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol.0.4.25.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol.0.4.25.DomainSeparatorCollision.json similarity index 89% rename from tests/detectors/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol.0.4.25.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol.0.4.25.DomainSeparatorCollision.json index f5a460429..ff446517f 100644 --- a/tests/detectors/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol.0.4.25.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol.0.4.25.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 5248, "length": 90, - "filename_relative": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol", "is_dependency": false, "lines": [ 161, @@ -27,9 +27,9 @@ "source_mapping": { "start": 449, "length": 6128, - "filename_relative": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol", "is_dependency": false, "lines": [ 7, @@ -240,9 +240,9 @@ } } ], - "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/detectors/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/detectors/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol#L161-L163", + "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol#L161-L163", "id": "17ee24b60ef7d108871021639c374d6711feb1c8e3aad52ab266a680c03831cb", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/domain-separator-collision/0.5.16/permit_domain_collision.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.5.16/permit_domain_collision.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol diff --git a/tests/detectors/domain-separator-collision/0.5.16/permit_domain_collision.sol.0.5.16.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol.0.5.16.DomainSeparatorCollision.json similarity index 90% rename from tests/detectors/domain-separator-collision/0.5.16/permit_domain_collision.sol.0.5.16.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol.0.5.16.DomainSeparatorCollision.json index 23f93fd7e..4fc8f3b48 100644 --- a/tests/detectors/domain-separator-collision/0.5.16/permit_domain_collision.sol.0.5.16.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol.0.5.16.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 5248, "length": 150, - "filename_relative": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol", "is_dependency": false, "lines": [ 161, @@ -27,9 +27,9 @@ "source_mapping": { "start": 449, "length": 6188, - "filename_relative": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol", "is_dependency": false, "lines": [ 7, @@ -240,9 +240,9 @@ } } ], - "description": "The function signature of ERC20.fopwCDKKK() (tests/detectors/domain-separator-collision/0.5.16/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/detectors/domain-separator-collision/0.5.16/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_collision.sol#L161-L163", + "description": "The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol#L161-L163", "id": "cb8ae27add92ad3163cbe9c0fb29a2a0032ba46384bbd5541d1d750251f5c83e", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol diff --git a/tests/detectors/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol.0.5.16.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol.0.5.16.DomainSeparatorCollision.json similarity index 89% rename from tests/detectors/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol.0.5.16.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol.0.5.16.DomainSeparatorCollision.json index 5cc2627ae..d69104adb 100644 --- a/tests/detectors/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol.0.5.16.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol.0.5.16.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1735, "length": 24, - "filename_relative": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol", "is_dependency": false, "lines": [ 46 @@ -25,9 +25,9 @@ "source_mapping": { "start": 449, "length": 6061, - "filename_relative": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol", "is_dependency": false, "lines": [ 7, @@ -235,9 +235,9 @@ } } ], - "description": "The function signature of ERC20.fopwCDKKK (tests/detectors/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK](tests/detectors/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol#L46", + "description": "The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.fopwCDKKK](tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol#L46", "id": "8d18da367a9cfe0bee2ee48ee8a76072af23567d852cc81ed75dd90531cbe3d5", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol diff --git a/tests/detectors/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol.0.5.16.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol.0.5.16.DomainSeparatorCollision.json similarity index 89% rename from tests/detectors/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol.0.5.16.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol.0.5.16.DomainSeparatorCollision.json index 20ab9665d..36077b76f 100644 --- a/tests/detectors/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol.0.5.16.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol.0.5.16.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 5255, "length": 90, - "filename_relative": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol", "is_dependency": false, "lines": [ 161, @@ -27,9 +27,9 @@ "source_mapping": { "start": 449, "length": 6135, - "filename_relative": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol", "is_dependency": false, "lines": [ 7, @@ -240,9 +240,9 @@ } } ], - "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/detectors/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/detectors/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol#L161-L163", + "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol#L161-L163", "id": "17ee24b60ef7d108871021639c374d6711feb1c8e3aad52ab266a680c03831cb", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/domain-separator-collision/0.6.11/permit_domain_collision.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.6.11/permit_domain_collision.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol diff --git a/tests/detectors/domain-separator-collision/0.6.11/permit_domain_collision.sol.0.6.11.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol.0.6.11.DomainSeparatorCollision.json similarity index 90% rename from tests/detectors/domain-separator-collision/0.6.11/permit_domain_collision.sol.0.6.11.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol.0.6.11.DomainSeparatorCollision.json index 8bbb29bb9..2442f6191 100644 --- a/tests/detectors/domain-separator-collision/0.6.11/permit_domain_collision.sol.0.6.11.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol.0.6.11.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 5248, "length": 150, - "filename_relative": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol", "is_dependency": false, "lines": [ 161, @@ -27,9 +27,9 @@ "source_mapping": { "start": 449, "length": 6188, - "filename_relative": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol", "is_dependency": false, "lines": [ 7, @@ -240,9 +240,9 @@ } } ], - "description": "The function signature of ERC20.fopwCDKKK() (tests/detectors/domain-separator-collision/0.6.11/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/detectors/domain-separator-collision/0.6.11/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_collision.sol#L161-L163", + "description": "The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol#L161-L163", "id": "cb8ae27add92ad3163cbe9c0fb29a2a0032ba46384bbd5541d1d750251f5c83e", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol diff --git a/tests/detectors/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol.0.6.11.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol.0.6.11.DomainSeparatorCollision.json similarity index 89% rename from tests/detectors/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol.0.6.11.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol.0.6.11.DomainSeparatorCollision.json index ace6f711a..c875e2aea 100644 --- a/tests/detectors/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol.0.6.11.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol.0.6.11.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1735, "length": 24, - "filename_relative": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol", "is_dependency": false, "lines": [ 46 @@ -25,9 +25,9 @@ "source_mapping": { "start": 449, "length": 6061, - "filename_relative": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol", "is_dependency": false, "lines": [ 7, @@ -235,9 +235,9 @@ } } ], - "description": "The function signature of ERC20.fopwCDKKK (tests/detectors/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK](tests/detectors/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol#L46", + "description": "The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.fopwCDKKK](tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol#L46", "id": "8d18da367a9cfe0bee2ee48ee8a76072af23567d852cc81ed75dd90531cbe3d5", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol diff --git a/tests/detectors/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol.0.6.11.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol.0.6.11.DomainSeparatorCollision.json similarity index 89% rename from tests/detectors/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol.0.6.11.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol.0.6.11.DomainSeparatorCollision.json index 7da702ba4..691c07d65 100644 --- a/tests/detectors/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol.0.6.11.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol.0.6.11.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 5255, "length": 90, - "filename_relative": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol", "is_dependency": false, "lines": [ 161, @@ -27,9 +27,9 @@ "source_mapping": { "start": 449, "length": 6135, - "filename_relative": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol", "is_dependency": false, "lines": [ 7, @@ -240,9 +240,9 @@ } } ], - "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/detectors/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/detectors/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol#L161-L163", + "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol#L161-L163", "id": "17ee24b60ef7d108871021639c374d6711feb1c8e3aad52ab266a680c03831cb", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/domain-separator-collision/0.7.6/permit_domain_collision.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.7.6/permit_domain_collision.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol diff --git a/tests/detectors/domain-separator-collision/0.7.6/permit_domain_collision.sol.0.7.6.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol.0.7.6.DomainSeparatorCollision.json similarity index 90% rename from tests/detectors/domain-separator-collision/0.7.6/permit_domain_collision.sol.0.7.6.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol.0.7.6.DomainSeparatorCollision.json index 6f42fc7a6..5d594c2a4 100644 --- a/tests/detectors/domain-separator-collision/0.7.6/permit_domain_collision.sol.0.7.6.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol.0.7.6.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 5248, "length": 150, - "filename_relative": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol", "is_dependency": false, "lines": [ 161, @@ -27,9 +27,9 @@ "source_mapping": { "start": 449, "length": 6188, - "filename_relative": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol", "is_dependency": false, "lines": [ 7, @@ -240,9 +240,9 @@ } } ], - "description": "The function signature of ERC20.fopwCDKKK() (tests/detectors/domain-separator-collision/0.7.6/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/detectors/domain-separator-collision/0.7.6/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_collision.sol#L161-L163", + "description": "The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol#L161-L163", "id": "cb8ae27add92ad3163cbe9c0fb29a2a0032ba46384bbd5541d1d750251f5c83e", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol diff --git a/tests/detectors/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol.0.7.6.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol.0.7.6.DomainSeparatorCollision.json similarity index 89% rename from tests/detectors/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol.0.7.6.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol.0.7.6.DomainSeparatorCollision.json index 9c246aca1..8574e4619 100644 --- a/tests/detectors/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol.0.7.6.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol.0.7.6.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1735, "length": 24, - "filename_relative": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol", "is_dependency": false, "lines": [ 46 @@ -25,9 +25,9 @@ "source_mapping": { "start": 449, "length": 6061, - "filename_relative": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol", "is_dependency": false, "lines": [ 7, @@ -235,9 +235,9 @@ } } ], - "description": "The function signature of ERC20.fopwCDKKK (tests/detectors/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK](tests/detectors/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol#L46", + "description": "The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.fopwCDKKK](tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol#L46", "id": "8d18da367a9cfe0bee2ee48ee8a76072af23567d852cc81ed75dd90531cbe3d5", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol diff --git a/tests/detectors/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol.0.7.6.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol.0.7.6.DomainSeparatorCollision.json similarity index 89% rename from tests/detectors/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol.0.7.6.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol.0.7.6.DomainSeparatorCollision.json index 957ae1920..5d9a120c9 100644 --- a/tests/detectors/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol.0.7.6.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol.0.7.6.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 5248, "length": 90, - "filename_relative": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol", "is_dependency": false, "lines": [ 161, @@ -27,9 +27,9 @@ "source_mapping": { "start": 449, "length": 6128, - "filename_relative": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol", "is_dependency": false, "lines": [ 7, @@ -240,9 +240,9 @@ } } ], - "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/detectors/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/detectors/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol#L161-L163", + "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol#L161-L163", "id": "17ee24b60ef7d108871021639c374d6711feb1c8e3aad52ab266a680c03831cb", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/domain-separator-collision/0.8.0/permit_domain_collision.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.8.0/permit_domain_collision.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol diff --git a/tests/detectors/domain-separator-collision/0.8.0/permit_domain_collision.sol.0.8.0.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol.0.8.0.DomainSeparatorCollision.json similarity index 90% rename from tests/detectors/domain-separator-collision/0.8.0/permit_domain_collision.sol.0.8.0.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol.0.8.0.DomainSeparatorCollision.json index 5d6f68aa9..14fe7a3fc 100644 --- a/tests/detectors/domain-separator-collision/0.8.0/permit_domain_collision.sol.0.8.0.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol.0.8.0.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 5295, "length": 170, - "filename_relative": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol", "is_dependency": false, "lines": [ 161, @@ -27,9 +27,9 @@ "source_mapping": { "start": 449, "length": 6323, - "filename_relative": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol", "is_dependency": false, "lines": [ 7, @@ -240,9 +240,9 @@ } } ], - "description": "The function signature of ERC20.fopwCDKKK() (tests/detectors/domain-separator-collision/0.8.0/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/detectors/domain-separator-collision/0.8.0/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_collision.sol#L161-L163", + "description": "The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol#L161-L163", "id": "cb8ae27add92ad3163cbe9c0fb29a2a0032ba46384bbd5541d1d750251f5c83e", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol diff --git a/tests/detectors/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol.0.8.0.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol.0.8.0.DomainSeparatorCollision.json similarity index 89% rename from tests/detectors/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol.0.8.0.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol.0.8.0.DomainSeparatorCollision.json index dc39ccea9..8842da5b0 100644 --- a/tests/detectors/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol.0.8.0.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol.0.8.0.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1735, "length": 24, - "filename_relative": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol", "is_dependency": false, "lines": [ 46 @@ -25,9 +25,9 @@ "source_mapping": { "start": 449, "length": 6061, - "filename_relative": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol", "is_dependency": false, "lines": [ 7, @@ -235,9 +235,9 @@ } } ], - "description": "The function signature of ERC20.fopwCDKKK (tests/detectors/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK](tests/detectors/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol#L46", + "description": "The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.fopwCDKKK](tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol#L46", "id": "8d18da367a9cfe0bee2ee48ee8a76072af23567d852cc81ed75dd90531cbe3d5", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol b/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol similarity index 100% rename from tests/detectors/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol rename to tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol diff --git a/tests/detectors/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol.0.8.0.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol.0.8.0.DomainSeparatorCollision.json similarity index 89% rename from tests/detectors/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol.0.8.0.DomainSeparatorCollision.json rename to tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol.0.8.0.DomainSeparatorCollision.json index c224777b6..6a6f7623c 100644 --- a/tests/detectors/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol.0.8.0.DomainSeparatorCollision.json +++ b/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol.0.8.0.DomainSeparatorCollision.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 5248, "length": 90, - "filename_relative": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol", "is_dependency": false, "lines": [ 161, @@ -27,9 +27,9 @@ "source_mapping": { "start": 449, "length": 6128, - "filename_relative": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol", + "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol", + "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol", "is_dependency": false, "lines": [ 7, @@ -240,9 +240,9 @@ } } ], - "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/detectors/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/detectors/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/detectors/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol#L161-L163", + "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol#L161-L163", "id": "17ee24b60ef7d108871021639c374d6711feb1c8e3aad52ab266a680c03831cb", "check": "domain-separator-collision", "impact": "Medium", diff --git a/tests/detectors/enum-conversion/0.4.2/enum_conversion.sol b/tests/e2e/detectors/test_data/enum-conversion/0.4.2/enum_conversion.sol similarity index 100% rename from tests/detectors/enum-conversion/0.4.2/enum_conversion.sol rename to tests/e2e/detectors/test_data/enum-conversion/0.4.2/enum_conversion.sol diff --git a/tests/detectors/enum-conversion/0.4.2/enum_conversion.sol.0.4.2.EnumConversion.json b/tests/e2e/detectors/test_data/enum-conversion/0.4.2/enum_conversion.sol.0.4.2.EnumConversion.json similarity index 100% rename from tests/detectors/enum-conversion/0.4.2/enum_conversion.sol.0.4.2.EnumConversion.json rename to tests/e2e/detectors/test_data/enum-conversion/0.4.2/enum_conversion.sol.0.4.2.EnumConversion.json diff --git a/tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol b/tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol similarity index 100% rename from tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol rename to tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol diff --git a/tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol.0.4.25.UnindexedERC20EventParameters.json b/tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol.0.4.25.UnindexedERC20EventParameters.json similarity index 72% rename from tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol.0.4.25.UnindexedERC20EventParameters.json rename to tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol.0.4.25.UnindexedERC20EventParameters.json index ab8742618..d53fd0cb2 100644 --- a/tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol.0.4.25.UnindexedERC20EventParameters.json +++ b/tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol.0.4.25.UnindexedERC20EventParameters.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1090, "length": 53, - "filename_relative": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "is_dependency": false, "lines": [ 19 @@ -25,9 +25,9 @@ "source_mapping": { "start": 622, "length": 587, - "filename_relative": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -52,9 +52,9 @@ } } ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol#19)does not index parameter to\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol#L19)does not index parameter to\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol#L19", + "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#19)does not index parameter to\n", + "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L19)does not index parameter to\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L19", "id": "29c46eb3a4695004959847ae09377729cdf3aa583de95560090b9bd49977c49b", "check": "erc20-indexed", "impact": "Informational", @@ -68,9 +68,9 @@ "source_mapping": { "start": 1148, "length": 59, - "filename_relative": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "is_dependency": false, "lines": [ 20 @@ -85,9 +85,9 @@ "source_mapping": { "start": 622, "length": 587, - "filename_relative": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -112,9 +112,9 @@ } } ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol#20)does not index parameter owner\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol#L20)does not index parameter owner\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol#L20", + "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#20)does not index parameter owner\n", + "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L20)does not index parameter owner\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L20", "id": "7d72b56a71ca96db304878f25484c496af1d283a9b777dc788f1473974057025", "check": "erc20-indexed", "impact": "Informational", @@ -128,9 +128,9 @@ "source_mapping": { "start": 1090, "length": 53, - "filename_relative": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "is_dependency": false, "lines": [ 19 @@ -145,9 +145,9 @@ "source_mapping": { "start": 622, "length": 587, - "filename_relative": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -172,9 +172,9 @@ } } ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol#19)does not index parameter from\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol#L19)does not index parameter from\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol#L19", + "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#19)does not index parameter from\n", + "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L19)does not index parameter from\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L19", "id": "a86c7a54115f270548e82d71570dc4d2900b622b0f82c6fce137f3a35314af53", "check": "erc20-indexed", "impact": "Informational", @@ -188,9 +188,9 @@ "source_mapping": { "start": 1148, "length": 59, - "filename_relative": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "is_dependency": false, "lines": [ 20 @@ -205,9 +205,9 @@ "source_mapping": { "start": 622, "length": 587, - "filename_relative": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -232,9 +232,9 @@ } } ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol#20)does not index parameter spender\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol#L20)does not index parameter spender\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.4.25/erc20_indexed.sol#L20", + "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#20)does not index parameter spender\n", + "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L20)does not index parameter spender\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L20", "id": "df4d927d202bdca1fc411d6960d3f62ed2784f5eca7435cb0503f4154f2e3bc6", "check": "erc20-indexed", "impact": "Informational", diff --git a/tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol b/tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol similarity index 100% rename from tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol rename to tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol diff --git a/tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol.0.5.16.UnindexedERC20EventParameters.json b/tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol.0.5.16.UnindexedERC20EventParameters.json similarity index 72% rename from tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol.0.5.16.UnindexedERC20EventParameters.json rename to tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol.0.5.16.UnindexedERC20EventParameters.json index 184c71ba9..00426cbf4 100644 --- a/tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol.0.5.16.UnindexedERC20EventParameters.json +++ b/tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol.0.5.16.UnindexedERC20EventParameters.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1090, "length": 53, - "filename_relative": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "is_dependency": false, "lines": [ 19 @@ -25,9 +25,9 @@ "source_mapping": { "start": 622, "length": 587, - "filename_relative": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -52,9 +52,9 @@ } } ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol#19)does not index parameter to\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol#L19)does not index parameter to\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol#L19", + "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#19)does not index parameter to\n", + "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L19)does not index parameter to\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L19", "id": "29c46eb3a4695004959847ae09377729cdf3aa583de95560090b9bd49977c49b", "check": "erc20-indexed", "impact": "Informational", @@ -68,9 +68,9 @@ "source_mapping": { "start": 1148, "length": 59, - "filename_relative": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "is_dependency": false, "lines": [ 20 @@ -85,9 +85,9 @@ "source_mapping": { "start": 622, "length": 587, - "filename_relative": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -112,9 +112,9 @@ } } ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol#20)does not index parameter owner\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol#L20)does not index parameter owner\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol#L20", + "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#20)does not index parameter owner\n", + "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L20)does not index parameter owner\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L20", "id": "7d72b56a71ca96db304878f25484c496af1d283a9b777dc788f1473974057025", "check": "erc20-indexed", "impact": "Informational", @@ -128,9 +128,9 @@ "source_mapping": { "start": 1090, "length": 53, - "filename_relative": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "is_dependency": false, "lines": [ 19 @@ -145,9 +145,9 @@ "source_mapping": { "start": 622, "length": 587, - "filename_relative": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -172,9 +172,9 @@ } } ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol#19)does not index parameter from\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol#L19)does not index parameter from\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol#L19", + "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#19)does not index parameter from\n", + "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L19)does not index parameter from\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L19", "id": "a86c7a54115f270548e82d71570dc4d2900b622b0f82c6fce137f3a35314af53", "check": "erc20-indexed", "impact": "Informational", @@ -188,9 +188,9 @@ "source_mapping": { "start": 1148, "length": 59, - "filename_relative": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "is_dependency": false, "lines": [ 20 @@ -205,9 +205,9 @@ "source_mapping": { "start": 622, "length": 587, - "filename_relative": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -232,9 +232,9 @@ } } ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol#20)does not index parameter spender\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol#L20)does not index parameter spender\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.5.16/erc20_indexed.sol#L20", + "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#20)does not index parameter spender\n", + "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L20)does not index parameter spender\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L20", "id": "df4d927d202bdca1fc411d6960d3f62ed2784f5eca7435cb0503f4154f2e3bc6", "check": "erc20-indexed", "impact": "Informational", diff --git a/tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol b/tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol similarity index 100% rename from tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol rename to tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol diff --git a/tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol.0.6.11.UnindexedERC20EventParameters.json b/tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol.0.6.11.UnindexedERC20EventParameters.json similarity index 72% rename from tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol.0.6.11.UnindexedERC20EventParameters.json rename to tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol.0.6.11.UnindexedERC20EventParameters.json index 9be583901..c1a9800af 100644 --- a/tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol.0.6.11.UnindexedERC20EventParameters.json +++ b/tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol.0.6.11.UnindexedERC20EventParameters.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1204, "length": 53, - "filename_relative": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "is_dependency": false, "lines": [ 19 @@ -25,9 +25,9 @@ "source_mapping": { "start": 679, "length": 644, - "filename_relative": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -52,9 +52,9 @@ } } ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol#19)does not index parameter to\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol#L19)does not index parameter to\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol#L19", + "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#19)does not index parameter to\n", + "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L19)does not index parameter to\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L19", "id": "29c46eb3a4695004959847ae09377729cdf3aa583de95560090b9bd49977c49b", "check": "erc20-indexed", "impact": "Informational", @@ -68,9 +68,9 @@ "source_mapping": { "start": 1262, "length": 59, - "filename_relative": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "is_dependency": false, "lines": [ 20 @@ -85,9 +85,9 @@ "source_mapping": { "start": 679, "length": 644, - "filename_relative": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -112,9 +112,9 @@ } } ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol#20)does not index parameter owner\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol#L20)does not index parameter owner\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol#L20", + "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#20)does not index parameter owner\n", + "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L20)does not index parameter owner\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L20", "id": "7d72b56a71ca96db304878f25484c496af1d283a9b777dc788f1473974057025", "check": "erc20-indexed", "impact": "Informational", @@ -128,9 +128,9 @@ "source_mapping": { "start": 1204, "length": 53, - "filename_relative": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "is_dependency": false, "lines": [ 19 @@ -145,9 +145,9 @@ "source_mapping": { "start": 679, "length": 644, - "filename_relative": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -172,9 +172,9 @@ } } ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol#19)does not index parameter from\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol#L19)does not index parameter from\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol#L19", + "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#19)does not index parameter from\n", + "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L19)does not index parameter from\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L19", "id": "a86c7a54115f270548e82d71570dc4d2900b622b0f82c6fce137f3a35314af53", "check": "erc20-indexed", "impact": "Informational", @@ -188,9 +188,9 @@ "source_mapping": { "start": 1262, "length": 59, - "filename_relative": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "is_dependency": false, "lines": [ 20 @@ -205,9 +205,9 @@ "source_mapping": { "start": 679, "length": 644, - "filename_relative": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -232,9 +232,9 @@ } } ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol#20)does not index parameter spender\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol#L20)does not index parameter spender\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.6.11/erc20_indexed.sol#L20", + "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#20)does not index parameter spender\n", + "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L20)does not index parameter spender\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L20", "id": "df4d927d202bdca1fc411d6960d3f62ed2784f5eca7435cb0503f4154f2e3bc6", "check": "erc20-indexed", "impact": "Informational", diff --git a/tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol b/tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol similarity index 100% rename from tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol rename to tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol diff --git a/tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol.0.7.6.UnindexedERC20EventParameters.json b/tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol.0.7.6.UnindexedERC20EventParameters.json similarity index 72% rename from tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol.0.7.6.UnindexedERC20EventParameters.json rename to tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol.0.7.6.UnindexedERC20EventParameters.json index 61cc14172..8b9bcb4a4 100644 --- a/tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol.0.7.6.UnindexedERC20EventParameters.json +++ b/tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol.0.7.6.UnindexedERC20EventParameters.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1204, "length": 53, - "filename_relative": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "is_dependency": false, "lines": [ 19 @@ -25,9 +25,9 @@ "source_mapping": { "start": 679, "length": 644, - "filename_relative": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -52,9 +52,9 @@ } } ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol#19)does not index parameter to\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol#L19)does not index parameter to\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol#L19", + "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#19)does not index parameter to\n", + "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L19)does not index parameter to\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L19", "id": "29c46eb3a4695004959847ae09377729cdf3aa583de95560090b9bd49977c49b", "check": "erc20-indexed", "impact": "Informational", @@ -68,9 +68,9 @@ "source_mapping": { "start": 1262, "length": 59, - "filename_relative": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "is_dependency": false, "lines": [ 20 @@ -85,9 +85,9 @@ "source_mapping": { "start": 679, "length": 644, - "filename_relative": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -112,9 +112,9 @@ } } ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol#20)does not index parameter owner\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol#L20)does not index parameter owner\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol#L20", + "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#20)does not index parameter owner\n", + "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L20)does not index parameter owner\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L20", "id": "7d72b56a71ca96db304878f25484c496af1d283a9b777dc788f1473974057025", "check": "erc20-indexed", "impact": "Informational", @@ -128,9 +128,9 @@ "source_mapping": { "start": 1204, "length": 53, - "filename_relative": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "is_dependency": false, "lines": [ 19 @@ -145,9 +145,9 @@ "source_mapping": { "start": 679, "length": 644, - "filename_relative": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -172,9 +172,9 @@ } } ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol#19)does not index parameter from\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol#L19)does not index parameter from\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol#L19", + "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#19)does not index parameter from\n", + "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L19)does not index parameter from\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L19", "id": "a86c7a54115f270548e82d71570dc4d2900b622b0f82c6fce137f3a35314af53", "check": "erc20-indexed", "impact": "Informational", @@ -188,9 +188,9 @@ "source_mapping": { "start": 1262, "length": 59, - "filename_relative": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "is_dependency": false, "lines": [ 20 @@ -205,9 +205,9 @@ "source_mapping": { "start": 679, "length": 644, - "filename_relative": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", "is_dependency": false, "lines": [ 12, @@ -232,9 +232,9 @@ } } ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol#20)does not index parameter spender\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol#L20)does not index parameter spender\n", - "first_markdown_element": "tests/detectors/erc20-indexed/0.7.6/erc20_indexed.sol#L20", + "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#20)does not index parameter spender\n", + "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L20)does not index parameter spender\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L20", "id": "df4d927d202bdca1fc411d6960d3f62ed2784f5eca7435cb0503f4154f2e3bc6", "check": "erc20-indexed", "impact": "Informational", diff --git a/tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol b/tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol similarity index 100% rename from tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol rename to tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol diff --git a/tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol.0.4.25.IncorrectERC20InterfaceDetection.json b/tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol.0.4.25.IncorrectERC20InterfaceDetection.json similarity index 63% rename from tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol.0.4.25.IncorrectERC20InterfaceDetection.json rename to tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol.0.4.25.IncorrectERC20InterfaceDetection.json index 898431083..273a00557 100644 --- a/tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol.0.4.25.IncorrectERC20InterfaceDetection.json +++ b/tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol.0.4.25.IncorrectERC20InterfaceDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 26, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -32,9 +32,9 @@ "source_mapping": { "start": 102, "length": 55, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 5 @@ -49,9 +49,9 @@ "source_mapping": { "start": 26, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -71,9 +71,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#5)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.approve(address,uint256)](tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L5)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#5)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L5)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", "id": "0fced3029cf59cf348a6b79c58dbb032d837fdd5a5f355600edebda1878e9e2e", "check": "erc20-interface", "impact": "Medium", @@ -87,9 +87,9 @@ "source_mapping": { "start": 26, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -111,9 +111,9 @@ "source_mapping": { "start": 319, "length": 60, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 9 @@ -128,9 +128,9 @@ "source_mapping": { "start": 26, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -150,9 +150,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#9)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.allowance(address,address)](tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L9)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#9)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.allowance(address,address)](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", "id": "1286abfe21b09e21e1cec8b991f73664e104fa39f7f4190690ece3af45bc0c7a", "check": "erc20-interface", "impact": "Medium", @@ -166,9 +166,9 @@ "source_mapping": { "start": 26, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -190,9 +190,9 @@ "source_mapping": { "start": 273, "length": 41, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 8 @@ -207,9 +207,9 @@ "source_mapping": { "start": 26, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -229,9 +229,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#8)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.balanceOf(address)](tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L8)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#8)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", "id": "758ca2456030a36dbd6115f2ccb1a43f53f1dabd66ed079806df0f6b7b4d21ef", "check": "erc20-interface", "impact": "Medium", @@ -245,9 +245,9 @@ "source_mapping": { "start": 26, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -269,9 +269,9 @@ "source_mapping": { "start": 162, "length": 69, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 6 @@ -286,9 +286,9 @@ "source_mapping": { "start": 26, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -308,9 +308,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#6)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transferFrom(address,address,uint256)](tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L6)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#6)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L6)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", "id": "ba13a1588595032984a3fad39610a2414bb8fcb522d1e632d52fa947ff207d73", "check": "erc20-interface", "impact": "Medium", @@ -324,9 +324,9 @@ "source_mapping": { "start": 26, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -348,9 +348,9 @@ "source_mapping": { "start": 236, "length": 32, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 7 @@ -365,9 +365,9 @@ "source_mapping": { "start": 26, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -387,9 +387,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#7)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.totalSupply()](tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L7)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#7)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.totalSupply()](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", "id": "c951e429e546af28ac08e241d391e874c1c9c70b0732ccfb63f3bbfb3eaac16e", "check": "erc20-interface", "impact": "Medium", @@ -403,9 +403,9 @@ "source_mapping": { "start": 26, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -427,9 +427,9 @@ "source_mapping": { "start": 46, "length": 51, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 4 @@ -444,9 +444,9 @@ "source_mapping": { "start": 26, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -466,9 +466,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#4)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transfer(address,uint256)](tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L4)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#4)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transfer(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L4)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", "id": "d3df2e48ae6e8a1b05b275de574b480853a0839c272ce889e8a1664ae432698e", "check": "erc20-interface", "impact": "Medium", diff --git a/tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol b/tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol similarity index 100% rename from tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol rename to tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol diff --git a/tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol.0.5.16.IncorrectERC20InterfaceDetection.json b/tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol.0.5.16.IncorrectERC20InterfaceDetection.json similarity index 63% rename from tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol.0.5.16.IncorrectERC20InterfaceDetection.json rename to tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol.0.5.16.IncorrectERC20InterfaceDetection.json index d5cfab119..5a0d705e1 100644 --- a/tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol.0.5.16.IncorrectERC20InterfaceDetection.json +++ b/tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol.0.5.16.IncorrectERC20InterfaceDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 29, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -32,9 +32,9 @@ "source_mapping": { "start": 105, "length": 55, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 5 @@ -49,9 +49,9 @@ "source_mapping": { "start": 29, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -71,9 +71,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#5)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.approve(address,uint256)](tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L5)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#5)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L5)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", "id": "0fced3029cf59cf348a6b79c58dbb032d837fdd5a5f355600edebda1878e9e2e", "check": "erc20-interface", "impact": "Medium", @@ -87,9 +87,9 @@ "source_mapping": { "start": 29, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -111,9 +111,9 @@ "source_mapping": { "start": 322, "length": 60, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 9 @@ -128,9 +128,9 @@ "source_mapping": { "start": 29, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -150,9 +150,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#9)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.allowance(address,address)](tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L9)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#9)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.allowance(address,address)](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", "id": "1286abfe21b09e21e1cec8b991f73664e104fa39f7f4190690ece3af45bc0c7a", "check": "erc20-interface", "impact": "Medium", @@ -166,9 +166,9 @@ "source_mapping": { "start": 29, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -190,9 +190,9 @@ "source_mapping": { "start": 276, "length": 41, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 8 @@ -207,9 +207,9 @@ "source_mapping": { "start": 29, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -229,9 +229,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#8)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.balanceOf(address)](tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L8)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#8)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", "id": "758ca2456030a36dbd6115f2ccb1a43f53f1dabd66ed079806df0f6b7b4d21ef", "check": "erc20-interface", "impact": "Medium", @@ -245,9 +245,9 @@ "source_mapping": { "start": 29, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -269,9 +269,9 @@ "source_mapping": { "start": 165, "length": 69, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 6 @@ -286,9 +286,9 @@ "source_mapping": { "start": 29, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -308,9 +308,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#6)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transferFrom(address,address,uint256)](tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L6)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#6)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L6)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", "id": "ba13a1588595032984a3fad39610a2414bb8fcb522d1e632d52fa947ff207d73", "check": "erc20-interface", "impact": "Medium", @@ -324,9 +324,9 @@ "source_mapping": { "start": 29, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -348,9 +348,9 @@ "source_mapping": { "start": 239, "length": 32, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 7 @@ -365,9 +365,9 @@ "source_mapping": { "start": 29, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -387,9 +387,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#7)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.totalSupply()](tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L7)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#7)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.totalSupply()](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", "id": "c951e429e546af28ac08e241d391e874c1c9c70b0732ccfb63f3bbfb3eaac16e", "check": "erc20-interface", "impact": "Medium", @@ -403,9 +403,9 @@ "source_mapping": { "start": 29, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -427,9 +427,9 @@ "source_mapping": { "start": 49, "length": 51, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 4 @@ -444,9 +444,9 @@ "source_mapping": { "start": 29, "length": 355, - "filename_relative": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -466,9 +466,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#4)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transfer(address,uint256)](tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L4)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#4)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transfer(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L4)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", "id": "d3df2e48ae6e8a1b05b275de574b480853a0839c272ce889e8a1664ae432698e", "check": "erc20-interface", "impact": "Medium", diff --git a/tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol b/tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol similarity index 100% rename from tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol rename to tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol diff --git a/tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol.0.6.11.IncorrectERC20InterfaceDetection.json b/tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol.0.6.11.IncorrectERC20InterfaceDetection.json similarity index 63% rename from tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol.0.6.11.IncorrectERC20InterfaceDetection.json rename to tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol.0.6.11.IncorrectERC20InterfaceDetection.json index 0c944d7c1..d72d67240 100644 --- a/tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol.0.6.11.IncorrectERC20InterfaceDetection.json +++ b/tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol.0.6.11.IncorrectERC20InterfaceDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -32,9 +32,9 @@ "source_mapping": { "start": 122, "length": 63, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 5 @@ -49,9 +49,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -71,9 +71,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#5)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.approve(address,uint256)](tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L5)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#5)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L5)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", "id": "0fced3029cf59cf348a6b79c58dbb032d837fdd5a5f355600edebda1878e9e2e", "check": "erc20-interface", "impact": "Medium", @@ -87,9 +87,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -111,9 +111,9 @@ "source_mapping": { "start": 371, "length": 68, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 9 @@ -128,9 +128,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -150,9 +150,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#9)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.allowance(address,address)](tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L9)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#9)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.allowance(address,address)](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", "id": "1286abfe21b09e21e1cec8b991f73664e104fa39f7f4190690ece3af45bc0c7a", "check": "erc20-interface", "impact": "Medium", @@ -166,9 +166,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -190,9 +190,9 @@ "source_mapping": { "start": 317, "length": 49, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 8 @@ -207,9 +207,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -229,9 +229,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#8)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.balanceOf(address)](tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L8)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#8)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", "id": "758ca2456030a36dbd6115f2ccb1a43f53f1dabd66ed079806df0f6b7b4d21ef", "check": "erc20-interface", "impact": "Medium", @@ -245,9 +245,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -269,9 +269,9 @@ "source_mapping": { "start": 190, "length": 77, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 6 @@ -286,9 +286,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -308,9 +308,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#6)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transferFrom(address,address,uint256)](tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L6)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#6)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L6)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", "id": "ba13a1588595032984a3fad39610a2414bb8fcb522d1e632d52fa947ff207d73", "check": "erc20-interface", "impact": "Medium", @@ -324,9 +324,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -348,9 +348,9 @@ "source_mapping": { "start": 272, "length": 40, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 7 @@ -365,9 +365,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -387,9 +387,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#7)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.totalSupply()](tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L7)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#7)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.totalSupply()](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", "id": "c951e429e546af28ac08e241d391e874c1c9c70b0732ccfb63f3bbfb3eaac16e", "check": "erc20-interface", "impact": "Medium", @@ -403,9 +403,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -427,9 +427,9 @@ "source_mapping": { "start": 58, "length": 59, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 4 @@ -444,9 +444,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -466,9 +466,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#4)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transfer(address,uint256)](tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L4)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#4)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transfer(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L4)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", "id": "d3df2e48ae6e8a1b05b275de574b480853a0839c272ce889e8a1664ae432698e", "check": "erc20-interface", "impact": "Medium", diff --git a/tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol b/tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol similarity index 100% rename from tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol rename to tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol diff --git a/tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol.0.7.6.IncorrectERC20InterfaceDetection.json b/tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol.0.7.6.IncorrectERC20InterfaceDetection.json similarity index 64% rename from tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol.0.7.6.IncorrectERC20InterfaceDetection.json rename to tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol.0.7.6.IncorrectERC20InterfaceDetection.json index d00cedbdf..667be6e4d 100644 --- a/tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol.0.7.6.IncorrectERC20InterfaceDetection.json +++ b/tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol.0.7.6.IncorrectERC20InterfaceDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -32,9 +32,9 @@ "source_mapping": { "start": 122, "length": 63, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 5 @@ -49,9 +49,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -71,9 +71,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#5)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.approve(address,uint256)](tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L5)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#5)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L5)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", "id": "0fced3029cf59cf348a6b79c58dbb032d837fdd5a5f355600edebda1878e9e2e", "check": "erc20-interface", "impact": "Medium", @@ -87,9 +87,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -111,9 +111,9 @@ "source_mapping": { "start": 371, "length": 68, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 9 @@ -128,9 +128,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -150,9 +150,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#9)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.allowance(address,address)](tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L9)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#9)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.allowance(address,address)](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", "id": "1286abfe21b09e21e1cec8b991f73664e104fa39f7f4190690ece3af45bc0c7a", "check": "erc20-interface", "impact": "Medium", @@ -166,9 +166,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -190,9 +190,9 @@ "source_mapping": { "start": 317, "length": 49, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 8 @@ -207,9 +207,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -229,9 +229,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#8)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.balanceOf(address)](tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L8)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#8)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", "id": "758ca2456030a36dbd6115f2ccb1a43f53f1dabd66ed079806df0f6b7b4d21ef", "check": "erc20-interface", "impact": "Medium", @@ -245,9 +245,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -269,9 +269,9 @@ "source_mapping": { "start": 190, "length": 77, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 6 @@ -286,9 +286,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -308,9 +308,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#6)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transferFrom(address,address,uint256)](tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L6)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#6)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L6)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", "id": "ba13a1588595032984a3fad39610a2414bb8fcb522d1e632d52fa947ff207d73", "check": "erc20-interface", "impact": "Medium", @@ -324,9 +324,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -348,9 +348,9 @@ "source_mapping": { "start": 272, "length": 40, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 7 @@ -365,9 +365,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -387,9 +387,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#7)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.totalSupply()](tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L7)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#7)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.totalSupply()](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", "id": "c951e429e546af28ac08e241d391e874c1c9c70b0732ccfb63f3bbfb3eaac16e", "check": "erc20-interface", "impact": "Medium", @@ -403,9 +403,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -427,9 +427,9 @@ "source_mapping": { "start": 58, "length": 59, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 4 @@ -444,9 +444,9 @@ "source_mapping": { "start": 29, "length": 412, - "filename_relative": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", "is_dependency": false, "lines": [ 3, @@ -466,9 +466,9 @@ } } ], - "description": "Token (tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#4)\n", - "markdown": "[Token](tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transfer(address,uint256)](tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L4)\n", - "first_markdown_element": "tests/detectors/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", + "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#4)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transfer(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L4)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", "id": "d3df2e48ae6e8a1b05b275de574b480853a0839c272ce889e8a1664ae432698e", "check": "erc20-interface", "impact": "Medium", diff --git a/tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol b/tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol similarity index 100% rename from tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol rename to tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol diff --git a/tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol.0.4.25.IncorrectERC721InterfaceDetection.json b/tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol.0.4.25.IncorrectERC721InterfaceDetection.json similarity index 65% rename from tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol.0.4.25.IncorrectERC721InterfaceDetection.json rename to tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol.0.4.25.IncorrectERC721InterfaceDetection.json index e4f9c45c3..46f8c4e16 100644 --- a/tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol.0.4.25.IncorrectERC721InterfaceDetection.json +++ b/tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol.0.4.25.IncorrectERC721InterfaceDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -35,9 +35,9 @@ "source_mapping": { "start": 723, "length": 48, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 14 @@ -52,9 +52,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -77,9 +77,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#14)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.getApproved(uint256)](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L14)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#14)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.getApproved(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", "id": "2dce4891c7abea0fa8a8a20a8b8482e7e1d46d54bfd750701c604d5dadd8b937", "check": "erc721-interface", "impact": "Medium", @@ -93,9 +93,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -120,9 +120,9 @@ "source_mapping": { "start": 549, "length": 78, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 12 @@ -137,9 +137,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -162,9 +162,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#12)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.approve(address,uint256)](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L12)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#12)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L12)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", "id": "439c95972d0e084aff057161164b13ab63f85bee31d80b568b7155e58eac4b5d", "check": "erc721-interface", "impact": "Medium", @@ -178,9 +178,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -205,9 +205,9 @@ "source_mapping": { "start": 351, "length": 96, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 10 @@ -222,9 +222,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -247,9 +247,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#10)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256)](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L10)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#10)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", "id": "50ab7b0f39f327ac6deccf3c16b4e6fee1dc249072ac41a4bd485ccf0c12315b", "check": "erc721-interface", "impact": "Medium", @@ -263,9 +263,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -290,9 +290,9 @@ "source_mapping": { "start": 140, "length": 44, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 7 @@ -307,9 +307,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -332,9 +332,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#7)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.balanceOf(address)](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L7)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#7)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", "id": "6fb9d0320e0b63e2c70f9844d5bea2be958e73beb6eaa4ccb2323ead0c7ef991", "check": "erc721-interface", "impact": "Medium", @@ -348,9 +348,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -375,9 +375,9 @@ "source_mapping": { "start": 189, "length": 44, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 8 @@ -392,9 +392,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -417,9 +417,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#8)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.ownerOf(uint256)](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L8)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#8)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.ownerOf(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", "id": "7d9235dd4ef8bc29a3b7700597cc1e4efb846377c928e5e50c5f49cb37f288d2", "check": "erc721-interface", "impact": "Medium", @@ -433,9 +433,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -460,9 +460,9 @@ "source_mapping": { "start": 452, "length": 92, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 11 @@ -477,9 +477,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -502,9 +502,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#11)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.transferFrom(address,address,uint256)](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L11)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#11)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", "id": "847b11227f3bfc9b120e0ea573f385a4bbc61c4b7f89f434864612a679b1133e", "check": "erc721-interface", "impact": "Medium", @@ -518,9 +518,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -545,9 +545,9 @@ "source_mapping": { "start": 50, "length": 56, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 4 @@ -562,9 +562,9 @@ "source_mapping": { "start": 26, "length": 82, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 3, @@ -579,9 +579,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#4)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[IERC165.supportsInterface(bytes4)](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L4)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#4)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[IERC165.supportsInterface(bytes4)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L4)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", "id": "a8593587ca70c51a9ab827843babec3b3eb7f9a08d76eea1e5528e668f7b291d", "check": "erc721-interface", "impact": "Medium", @@ -595,9 +595,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -622,9 +622,9 @@ "source_mapping": { "start": 632, "length": 86, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 13 @@ -639,9 +639,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -664,9 +664,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#13)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.setApprovalForAll(address,bool)](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L13)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#13)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.setApprovalForAll(address,bool)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L13)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", "id": "b95e9bb000fb073c25fdbd9fff7bf0a3c44e04e70fc1a7da27c94c6b7fb8be40", "check": "erc721-interface", "impact": "Medium", @@ -680,9 +680,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -707,9 +707,9 @@ "source_mapping": { "start": 238, "length": 108, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 9 @@ -724,9 +724,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -749,9 +749,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#9)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256,bytes)](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L9)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#9)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256,bytes)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", "id": "ccec612c4b5db00ab59b766b5dde3f8d3a8c6408ef595ab08bff21628587e2a1", "check": "erc721-interface", "impact": "Medium", @@ -765,9 +765,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -792,9 +792,9 @@ "source_mapping": { "start": 776, "length": 70, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 15 @@ -809,9 +809,9 @@ "source_mapping": { "start": 109, "length": 739, - "filename_relative": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -834,9 +834,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#15)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.isApprovedForAll(address,address)](tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L15)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#15)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.isApprovedForAll(address,address)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L15)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", "id": "fa9985c505689f9a45d1ac51e1dd8cf79eeb2c939946abfb5ac78f46e692d0eb", "check": "erc721-interface", "impact": "Medium", diff --git a/tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol b/tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol similarity index 100% rename from tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol rename to tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol diff --git a/tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol.0.5.16.IncorrectERC721InterfaceDetection.json b/tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol.0.5.16.IncorrectERC721InterfaceDetection.json similarity index 65% rename from tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol.0.5.16.IncorrectERC721InterfaceDetection.json rename to tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol.0.5.16.IncorrectERC721InterfaceDetection.json index 239813482..d8c39db5b 100644 --- a/tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol.0.5.16.IncorrectERC721InterfaceDetection.json +++ b/tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol.0.5.16.IncorrectERC721InterfaceDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -35,9 +35,9 @@ "source_mapping": { "start": 735, "length": 48, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 14 @@ -52,9 +52,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -77,9 +77,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#14)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.getApproved(uint256)](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L14)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#14)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.getApproved(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", "id": "2dce4891c7abea0fa8a8a20a8b8482e7e1d46d54bfd750701c604d5dadd8b937", "check": "erc721-interface", "impact": "Medium", @@ -93,9 +93,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -120,9 +120,9 @@ "source_mapping": { "start": 561, "length": 78, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 12 @@ -137,9 +137,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -162,9 +162,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#12)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.approve(address,uint256)](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L12)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#12)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L12)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", "id": "439c95972d0e084aff057161164b13ab63f85bee31d80b568b7155e58eac4b5d", "check": "erc721-interface", "impact": "Medium", @@ -178,9 +178,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -205,9 +205,9 @@ "source_mapping": { "start": 363, "length": 96, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 10 @@ -222,9 +222,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -247,9 +247,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#10)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256)](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L10)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#10)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", "id": "50ab7b0f39f327ac6deccf3c16b4e6fee1dc249072ac41a4bd485ccf0c12315b", "check": "erc721-interface", "impact": "Medium", @@ -263,9 +263,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -290,9 +290,9 @@ "source_mapping": { "start": 143, "length": 44, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 7 @@ -307,9 +307,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -332,9 +332,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#7)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.balanceOf(address)](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L7)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#7)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", "id": "6fb9d0320e0b63e2c70f9844d5bea2be958e73beb6eaa4ccb2323ead0c7ef991", "check": "erc721-interface", "impact": "Medium", @@ -348,9 +348,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -375,9 +375,9 @@ "source_mapping": { "start": 192, "length": 44, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 8 @@ -392,9 +392,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -417,9 +417,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#8)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.ownerOf(uint256)](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L8)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#8)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.ownerOf(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", "id": "7d9235dd4ef8bc29a3b7700597cc1e4efb846377c928e5e50c5f49cb37f288d2", "check": "erc721-interface", "impact": "Medium", @@ -433,9 +433,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -460,9 +460,9 @@ "source_mapping": { "start": 464, "length": 92, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 11 @@ -477,9 +477,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -502,9 +502,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#11)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.transferFrom(address,address,uint256)](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L11)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#11)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", "id": "847b11227f3bfc9b120e0ea573f385a4bbc61c4b7f89f434864612a679b1133e", "check": "erc721-interface", "impact": "Medium", @@ -518,9 +518,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -545,9 +545,9 @@ "source_mapping": { "start": 53, "length": 56, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 4 @@ -562,9 +562,9 @@ "source_mapping": { "start": 29, "length": 82, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 3, @@ -579,9 +579,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#4)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[IERC165.supportsInterface(bytes4)](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L4)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#4)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[IERC165.supportsInterface(bytes4)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L4)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", "id": "a8593587ca70c51a9ab827843babec3b3eb7f9a08d76eea1e5528e668f7b291d", "check": "erc721-interface", "impact": "Medium", @@ -595,9 +595,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -622,9 +622,9 @@ "source_mapping": { "start": 644, "length": 86, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 13 @@ -639,9 +639,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -664,9 +664,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#13)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.setApprovalForAll(address,bool)](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L13)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#13)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.setApprovalForAll(address,bool)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L13)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", "id": "b95e9bb000fb073c25fdbd9fff7bf0a3c44e04e70fc1a7da27c94c6b7fb8be40", "check": "erc721-interface", "impact": "Medium", @@ -680,9 +680,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -707,9 +707,9 @@ "source_mapping": { "start": 241, "length": 117, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 9 @@ -724,9 +724,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -749,9 +749,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#9)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256,bytes)](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L9)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#9)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256,bytes)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", "id": "ccec612c4b5db00ab59b766b5dde3f8d3a8c6408ef595ab08bff21628587e2a1", "check": "erc721-interface", "impact": "Medium", @@ -765,9 +765,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -792,9 +792,9 @@ "source_mapping": { "start": 788, "length": 70, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 15 @@ -809,9 +809,9 @@ "source_mapping": { "start": 112, "length": 748, - "filename_relative": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -834,9 +834,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#15)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.isApprovedForAll(address,address)](tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L15)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#15)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.isApprovedForAll(address,address)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L15)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", "id": "fa9985c505689f9a45d1ac51e1dd8cf79eeb2c939946abfb5ac78f46e692d0eb", "check": "erc721-interface", "impact": "Medium", diff --git a/tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol b/tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol similarity index 100% rename from tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol rename to tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol diff --git a/tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol.0.6.11.IncorrectERC721InterfaceDetection.json b/tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol.0.6.11.IncorrectERC721InterfaceDetection.json similarity index 65% rename from tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol.0.6.11.IncorrectERC721InterfaceDetection.json rename to tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol.0.6.11.IncorrectERC721InterfaceDetection.json index 1a35ecaec..d4c53c821 100644 --- a/tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol.0.6.11.IncorrectERC721InterfaceDetection.json +++ b/tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol.0.6.11.IncorrectERC721InterfaceDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -35,9 +35,9 @@ "source_mapping": { "start": 800, "length": 56, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 14 @@ -52,9 +52,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -77,9 +77,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#14)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.getApproved(uint256)](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L14)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#14)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.getApproved(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", "id": "2dce4891c7abea0fa8a8a20a8b8482e7e1d46d54bfd750701c604d5dadd8b937", "check": "erc721-interface", "impact": "Medium", @@ -93,9 +93,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -120,9 +120,9 @@ "source_mapping": { "start": 610, "length": 86, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 12 @@ -137,9 +137,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -162,9 +162,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#12)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.approve(address,uint256)](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L12)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#12)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L12)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", "id": "439c95972d0e084aff057161164b13ab63f85bee31d80b568b7155e58eac4b5d", "check": "erc721-interface", "impact": "Medium", @@ -178,9 +178,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -205,9 +205,9 @@ "source_mapping": { "start": 396, "length": 104, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 10 @@ -222,9 +222,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -247,9 +247,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#10)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256)](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L10)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#10)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", "id": "50ab7b0f39f327ac6deccf3c16b4e6fee1dc249072ac41a4bd485ccf0c12315b", "check": "erc721-interface", "impact": "Medium", @@ -263,9 +263,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -290,9 +290,9 @@ "source_mapping": { "start": 152, "length": 52, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 7 @@ -307,9 +307,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -332,9 +332,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#7)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.balanceOf(address)](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L7)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#7)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", "id": "6fb9d0320e0b63e2c70f9844d5bea2be958e73beb6eaa4ccb2323ead0c7ef991", "check": "erc721-interface", "impact": "Medium", @@ -348,9 +348,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -375,9 +375,9 @@ "source_mapping": { "start": 209, "length": 52, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 8 @@ -392,9 +392,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -417,9 +417,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#8)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.ownerOf(uint256)](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L8)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#8)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.ownerOf(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", "id": "7d9235dd4ef8bc29a3b7700597cc1e4efb846377c928e5e50c5f49cb37f288d2", "check": "erc721-interface", "impact": "Medium", @@ -433,9 +433,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -460,9 +460,9 @@ "source_mapping": { "start": 505, "length": 100, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 11 @@ -477,9 +477,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -502,9 +502,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#11)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.transferFrom(address,address,uint256)](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L11)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#11)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", "id": "847b11227f3bfc9b120e0ea573f385a4bbc61c4b7f89f434864612a679b1133e", "check": "erc721-interface", "impact": "Medium", @@ -518,9 +518,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -545,9 +545,9 @@ "source_mapping": { "start": 53, "length": 56, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 4 @@ -562,9 +562,9 @@ "source_mapping": { "start": 29, "length": 82, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 3, @@ -579,9 +579,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#4)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[IERC165.supportsInterface(bytes4)](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L4)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#4)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[IERC165.supportsInterface(bytes4)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L4)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", "id": "a8593587ca70c51a9ab827843babec3b3eb7f9a08d76eea1e5528e668f7b291d", "check": "erc721-interface", "impact": "Medium", @@ -595,9 +595,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -622,9 +622,9 @@ "source_mapping": { "start": 701, "length": 94, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 13 @@ -639,9 +639,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -664,9 +664,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#13)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.setApprovalForAll(address,bool)](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L13)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#13)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.setApprovalForAll(address,bool)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L13)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", "id": "b95e9bb000fb073c25fdbd9fff7bf0a3c44e04e70fc1a7da27c94c6b7fb8be40", "check": "erc721-interface", "impact": "Medium", @@ -680,9 +680,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -707,9 +707,9 @@ "source_mapping": { "start": 266, "length": 125, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 9 @@ -724,9 +724,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -749,9 +749,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#9)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256,bytes)](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L9)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#9)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256,bytes)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", "id": "ccec612c4b5db00ab59b766b5dde3f8d3a8c6408ef595ab08bff21628587e2a1", "check": "erc721-interface", "impact": "Medium", @@ -765,9 +765,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -792,9 +792,9 @@ "source_mapping": { "start": 861, "length": 78, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 15 @@ -809,9 +809,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -834,9 +834,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#15)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.isApprovedForAll(address,address)](tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L15)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#15)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.isApprovedForAll(address,address)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L15)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", "id": "fa9985c505689f9a45d1ac51e1dd8cf79eeb2c939946abfb5ac78f46e692d0eb", "check": "erc721-interface", "impact": "Medium", diff --git a/tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol b/tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol similarity index 100% rename from tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol rename to tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol diff --git a/tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol.0.7.6.IncorrectERC721InterfaceDetection.json b/tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol.0.7.6.IncorrectERC721InterfaceDetection.json similarity index 65% rename from tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol.0.7.6.IncorrectERC721InterfaceDetection.json rename to tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol.0.7.6.IncorrectERC721InterfaceDetection.json index 56ed12359..4e4e562ab 100644 --- a/tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol.0.7.6.IncorrectERC721InterfaceDetection.json +++ b/tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol.0.7.6.IncorrectERC721InterfaceDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -35,9 +35,9 @@ "source_mapping": { "start": 800, "length": 56, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 14 @@ -52,9 +52,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -77,9 +77,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#14)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.getApproved(uint256)](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L14)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#14)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.getApproved(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", "id": "2dce4891c7abea0fa8a8a20a8b8482e7e1d46d54bfd750701c604d5dadd8b937", "check": "erc721-interface", "impact": "Medium", @@ -93,9 +93,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -120,9 +120,9 @@ "source_mapping": { "start": 610, "length": 86, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 12 @@ -137,9 +137,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -162,9 +162,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#12)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.approve(address,uint256)](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L12)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#12)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L12)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", "id": "439c95972d0e084aff057161164b13ab63f85bee31d80b568b7155e58eac4b5d", "check": "erc721-interface", "impact": "Medium", @@ -178,9 +178,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -205,9 +205,9 @@ "source_mapping": { "start": 396, "length": 104, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 10 @@ -222,9 +222,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -247,9 +247,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#10)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256)](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L10)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#10)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", "id": "50ab7b0f39f327ac6deccf3c16b4e6fee1dc249072ac41a4bd485ccf0c12315b", "check": "erc721-interface", "impact": "Medium", @@ -263,9 +263,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -290,9 +290,9 @@ "source_mapping": { "start": 152, "length": 52, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 7 @@ -307,9 +307,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -332,9 +332,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#7)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.balanceOf(address)](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L7)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#7)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", "id": "6fb9d0320e0b63e2c70f9844d5bea2be958e73beb6eaa4ccb2323ead0c7ef991", "check": "erc721-interface", "impact": "Medium", @@ -348,9 +348,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -375,9 +375,9 @@ "source_mapping": { "start": 209, "length": 52, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 8 @@ -392,9 +392,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -417,9 +417,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#8)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.ownerOf(uint256)](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L8)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#8)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.ownerOf(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", "id": "7d9235dd4ef8bc29a3b7700597cc1e4efb846377c928e5e50c5f49cb37f288d2", "check": "erc721-interface", "impact": "Medium", @@ -433,9 +433,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -460,9 +460,9 @@ "source_mapping": { "start": 505, "length": 100, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 11 @@ -477,9 +477,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -502,9 +502,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#11)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.transferFrom(address,address,uint256)](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L11)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#11)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", "id": "847b11227f3bfc9b120e0ea573f385a4bbc61c4b7f89f434864612a679b1133e", "check": "erc721-interface", "impact": "Medium", @@ -518,9 +518,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -545,9 +545,9 @@ "source_mapping": { "start": 53, "length": 56, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 4 @@ -562,9 +562,9 @@ "source_mapping": { "start": 29, "length": 82, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 3, @@ -579,9 +579,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#4)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[IERC165.supportsInterface(bytes4)](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L4)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#4)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[IERC165.supportsInterface(bytes4)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L4)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", "id": "a8593587ca70c51a9ab827843babec3b3eb7f9a08d76eea1e5528e668f7b291d", "check": "erc721-interface", "impact": "Medium", @@ -595,9 +595,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -622,9 +622,9 @@ "source_mapping": { "start": 701, "length": 94, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 13 @@ -639,9 +639,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -664,9 +664,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#13)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.setApprovalForAll(address,bool)](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L13)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#13)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.setApprovalForAll(address,bool)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L13)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", "id": "b95e9bb000fb073c25fdbd9fff7bf0a3c44e04e70fc1a7da27c94c6b7fb8be40", "check": "erc721-interface", "impact": "Medium", @@ -680,9 +680,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -707,9 +707,9 @@ "source_mapping": { "start": 266, "length": 125, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 9 @@ -724,9 +724,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -749,9 +749,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#9)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256,bytes)](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L9)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#9)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256,bytes)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", "id": "ccec612c4b5db00ab59b766b5dde3f8d3a8c6408ef595ab08bff21628587e2a1", "check": "erc721-interface", "impact": "Medium", @@ -765,9 +765,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -792,9 +792,9 @@ "source_mapping": { "start": 861, "length": 78, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 15 @@ -809,9 +809,9 @@ "source_mapping": { "start": 112, "length": 829, - "filename_relative": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", "is_dependency": false, "lines": [ 6, @@ -834,9 +834,9 @@ } } ], - "description": "Token (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#15)\n", - "markdown": "[Token](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.isApprovedForAll(address,address)](tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L15)\n", - "first_markdown_element": "tests/detectors/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", + "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#15)\n", + "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.isApprovedForAll(address,address)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L15)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", "id": "fa9985c505689f9a45d1ac51e1dd8cf79eeb2c939946abfb5ac78f46e692d0eb", "check": "erc721-interface", "impact": "Medium", diff --git a/tests/detectors/events-access/0.4.25/missing_events_access_control.sol b/tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol similarity index 100% rename from tests/detectors/events-access/0.4.25/missing_events_access_control.sol rename to tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol diff --git a/tests/detectors/events-access/0.4.25/missing_events_access_control.sol.0.4.25.MissingEventsAccessControl.json b/tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol.0.4.25.MissingEventsAccessControl.json similarity index 80% rename from tests/detectors/events-access/0.4.25/missing_events_access_control.sol.0.4.25.MissingEventsAccessControl.json rename to tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol.0.4.25.MissingEventsAccessControl.json index e5ca217aa..7e2926648 100644 --- a/tests/detectors/events-access/0.4.25/missing_events_access_control.sol.0.4.25.MissingEventsAccessControl.json +++ b/tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol.0.4.25.MissingEventsAccessControl.json @@ -4,18 +4,19 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad2", "source_mapping": { - "start": 284, - "length": 76, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "start": 458, + "length": 127, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 15, - 16, - 17 + 23, + 24, + 25, + 26 ], "starting_column": 3, "ending_column": 4 @@ -27,9 +28,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -89,40 +90,41 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad2(address)" } }, { "type": "node", - "name": "owner = msg.sender", + "name": "owner = newOwner", "source_mapping": { - "start": 325, - "length": 18, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "start": 552, + "length": 16, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 16 + 25 ], "starting_column": 5, - "ending_column": 23 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad2", "source_mapping": { - "start": 284, - "length": 76, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "start": 458, + "length": 127, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 15, - 16, - 17 + 23, + 24, + 25, + 26 ], "starting_column": 3, "ending_column": 4 @@ -134,9 +136,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -196,16 +198,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad2(address)" } } } } ], - "description": "Bug.bad0() (tests/detectors/events-access/0.4.25/missing_events_access_control.sol#15-17) should emit an event for: \n\t- owner = msg.sender (tests/detectors/events-access/0.4.25/missing_events_access_control.sol#16) \n", - "markdown": "[Bug.bad0()](tests/detectors/events-access/0.4.25/missing_events_access_control.sol#L15-L17) should emit an event for: \n\t- [owner = msg.sender](tests/detectors/events-access/0.4.25/missing_events_access_control.sol#L16) \n", - "first_markdown_element": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol#L15-L17", - "id": "4d3c0f7336bc2f5248fb9488caa06bf496a1076398fca7a730a4e18ef9eedb23", + "description": "Bug.bad2(address) (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#23-26) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#25) \n", + "markdown": "[Bug.bad2(address)](tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L23-L26) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L25) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L23-L26", + "id": "a9ba964c9c3b9d0185a7a83e1b08344a3436840fa876a62a91faef642a933bd0", "check": "events-access", "impact": "Low", "confidence": "Medium" @@ -214,19 +216,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad0", "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "start": 284, + "length": 76, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26 + 15, + 16, + 17 ], "starting_column": 3, "ending_column": 4 @@ -238,9 +239,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -300,41 +301,40 @@ "ending_column": 2 } }, - "signature": "bad2(address)" + "signature": "bad0()" } }, { "type": "node", - "name": "owner = newOwner", + "name": "owner = msg.sender", "source_mapping": { - "start": 552, - "length": 16, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "start": 325, + "length": 18, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 25 + 16 ], "starting_column": 5, - "ending_column": 21 + "ending_column": 23 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad0", "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "start": 284, + "length": 76, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26 + 15, + 16, + 17 ], "starting_column": 3, "ending_column": 4 @@ -346,9 +346,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -408,16 +408,16 @@ "ending_column": 2 } }, - "signature": "bad2(address)" + "signature": "bad0()" } } } } ], - "description": "Bug.bad2(address) (tests/detectors/events-access/0.4.25/missing_events_access_control.sol#23-26) should emit an event for: \n\t- owner = newOwner (tests/detectors/events-access/0.4.25/missing_events_access_control.sol#25) \n", - "markdown": "[Bug.bad2(address)](tests/detectors/events-access/0.4.25/missing_events_access_control.sol#L23-L26) should emit an event for: \n\t- [owner = newOwner](tests/detectors/events-access/0.4.25/missing_events_access_control.sol#L25) \n", - "first_markdown_element": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol#L23-L26", - "id": "9411f6b4b3e6f3833a72789f341adf88796bcb58b4a12a47a6f7117746d09c53", + "description": "Bug.bad0() (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#15-17) should emit an event for: \n\t- owner = msg.sender (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#16) \n", + "markdown": "[Bug.bad0()](tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L15-L17) should emit an event for: \n\t- [owner = msg.sender](tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L16) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L15-L17", + "id": "eb44ec9bf0c6724f7950c6dcd8af84ce3d66025526c55a3691445259f59bfc24", "check": "events-access", "impact": "Low", "confidence": "Medium" @@ -430,9 +430,9 @@ "source_mapping": { "start": 364, "length": 90, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ 19, @@ -449,9 +449,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -520,9 +520,9 @@ "source_mapping": { "start": 421, "length": 16, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ 20 @@ -537,9 +537,9 @@ "source_mapping": { "start": 364, "length": 90, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ 19, @@ -556,9 +556,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -624,10 +624,10 @@ } } ], - "description": "Bug.bad1(address) (tests/detectors/events-access/0.4.25/missing_events_access_control.sol#19-21) should emit an event for: \n\t- owner = newOwner (tests/detectors/events-access/0.4.25/missing_events_access_control.sol#20) \n", - "markdown": "[Bug.bad1(address)](tests/detectors/events-access/0.4.25/missing_events_access_control.sol#L19-L21) should emit an event for: \n\t- [owner = newOwner](tests/detectors/events-access/0.4.25/missing_events_access_control.sol#L20) \n", - "first_markdown_element": "tests/detectors/events-access/0.4.25/missing_events_access_control.sol#L19-L21", - "id": "b2bf34ab3d02054c5f803cd517689d1e3d055b46ca612b2457d845d8d4b94731", + "description": "Bug.bad1(address) (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#19-21) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#20) \n", + "markdown": "[Bug.bad1(address)](tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L19-L21) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L20) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L19-L21", + "id": "ff8f7c2d6001e5900dded86071a174d8a71c0078a961951a0694c50460d5bd2f", "check": "events-access", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/events-access/0.5.16/missing_events_access_control.sol b/tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol similarity index 100% rename from tests/detectors/events-access/0.5.16/missing_events_access_control.sol rename to tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol diff --git a/tests/detectors/events-access/0.5.16/missing_events_access_control.sol.0.5.16.MissingEventsAccessControl.json b/tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol.0.5.16.MissingEventsAccessControl.json similarity index 80% rename from tests/detectors/events-access/0.5.16/missing_events_access_control.sol.0.5.16.MissingEventsAccessControl.json rename to tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol.0.5.16.MissingEventsAccessControl.json index bb88b927a..3341d0ab9 100644 --- a/tests/detectors/events-access/0.5.16/missing_events_access_control.sol.0.5.16.MissingEventsAccessControl.json +++ b/tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol.0.5.16.MissingEventsAccessControl.json @@ -4,19 +4,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad1", "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "start": 364, + "length": 90, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -28,9 +27,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -90,21 +89,21 @@ "ending_column": 2 } }, - "signature": "bad2(address)" + "signature": "bad1(address)" } }, { "type": "node", "name": "owner = newOwner", "source_mapping": { - "start": 552, + "start": 421, "length": 16, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 25 + 20 ], "starting_column": 5, "ending_column": 21 @@ -112,19 +111,18 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad1", "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "start": 364, + "length": 90, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -136,9 +134,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -198,16 +196,16 @@ "ending_column": 2 } }, - "signature": "bad2(address)" + "signature": "bad1(address)" } } } } ], - "description": "Bug.bad2(address) (tests/detectors/events-access/0.5.16/missing_events_access_control.sol#23-26) should emit an event for: \n\t- owner = newOwner (tests/detectors/events-access/0.5.16/missing_events_access_control.sol#25) \n", - "markdown": "[Bug.bad2(address)](tests/detectors/events-access/0.5.16/missing_events_access_control.sol#L23-L26) should emit an event for: \n\t- [owner = newOwner](tests/detectors/events-access/0.5.16/missing_events_access_control.sol#L25) \n", - "first_markdown_element": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol#L23-L26", - "id": "1562e590ef85efee605bdbf837a010ad06cdb04cec40ac4a7ca7c8cc25cf4161", + "description": "Bug.bad1(address) (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#19-21) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#20) \n", + "markdown": "[Bug.bad1(address)](tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L19-L21) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L20) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L19-L21", + "id": "2adc5f8e781cdaaf63f6d48774301e6faebdbc57270ac6e58b9f2c8042d579c9", "check": "events-access", "impact": "Low", "confidence": "Medium" @@ -220,9 +218,9 @@ "source_mapping": { "start": 284, "length": 76, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ 15, @@ -239,9 +237,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -310,9 +308,9 @@ "source_mapping": { "start": 325, "length": 18, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ 16 @@ -327,9 +325,9 @@ "source_mapping": { "start": 284, "length": 76, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ 15, @@ -346,9 +344,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -414,10 +412,10 @@ } } ], - "description": "Bug.bad0() (tests/detectors/events-access/0.5.16/missing_events_access_control.sol#15-17) should emit an event for: \n\t- owner = msg.sender (tests/detectors/events-access/0.5.16/missing_events_access_control.sol#16) \n", - "markdown": "[Bug.bad0()](tests/detectors/events-access/0.5.16/missing_events_access_control.sol#L15-L17) should emit an event for: \n\t- [owner = msg.sender](tests/detectors/events-access/0.5.16/missing_events_access_control.sol#L16) \n", - "first_markdown_element": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol#L15-L17", - "id": "99e09713b41d4b164cc0f4a88f48e6d0bd94128636c57b1bee357ac1fda130d7", + "description": "Bug.bad0() (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#15-17) should emit an event for: \n\t- owner = msg.sender (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#16) \n", + "markdown": "[Bug.bad0()](tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L15-L17) should emit an event for: \n\t- [owner = msg.sender](tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L16) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L15-L17", + "id": "3bcd44f3743829d2b06e08c66536a2b284ed15a6de47054be6878f6695462394", "check": "events-access", "impact": "Low", "confidence": "Medium" @@ -426,18 +424,19 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 364, - "length": 90, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "start": 458, + "length": 127, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 23, + 24, + 25, + 26 ], "starting_column": 3, "ending_column": 4 @@ -449,9 +448,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -511,21 +510,21 @@ "ending_column": 2 } }, - "signature": "bad1(address)" + "signature": "bad2(address)" } }, { "type": "node", "name": "owner = newOwner", "source_mapping": { - "start": 421, + "start": 552, "length": 16, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 20 + 25 ], "starting_column": 5, "ending_column": 21 @@ -533,18 +532,19 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 364, - "length": 90, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "start": 458, + "length": 127, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 23, + 24, + 25, + 26 ], "starting_column": 3, "ending_column": 4 @@ -556,9 +556,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -618,16 +618,16 @@ "ending_column": 2 } }, - "signature": "bad1(address)" + "signature": "bad2(address)" } } } } ], - "description": "Bug.bad1(address) (tests/detectors/events-access/0.5.16/missing_events_access_control.sol#19-21) should emit an event for: \n\t- owner = newOwner (tests/detectors/events-access/0.5.16/missing_events_access_control.sol#20) \n", - "markdown": "[Bug.bad1(address)](tests/detectors/events-access/0.5.16/missing_events_access_control.sol#L19-L21) should emit an event for: \n\t- [owner = newOwner](tests/detectors/events-access/0.5.16/missing_events_access_control.sol#L20) \n", - "first_markdown_element": "tests/detectors/events-access/0.5.16/missing_events_access_control.sol#L19-L21", - "id": "a8b5423d1085668a105afd674978791ad0b57f1c9ab15b7db682c3dfac7a49b2", + "description": "Bug.bad2(address) (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#23-26) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#25) \n", + "markdown": "[Bug.bad2(address)](tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L23-L26) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L25) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L23-L26", + "id": "b2b17502036e90b5febb512ef8147dd1a1220909459522c3551a323e74008aeb", "check": "events-access", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/events-access/0.6.11/missing_events_access_control.sol b/tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol similarity index 100% rename from tests/detectors/events-access/0.6.11/missing_events_access_control.sol rename to tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol diff --git a/tests/detectors/events-access/0.6.11/missing_events_access_control.sol.0.6.11.MissingEventsAccessControl.json b/tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol.0.6.11.MissingEventsAccessControl.json similarity index 80% rename from tests/detectors/events-access/0.6.11/missing_events_access_control.sol.0.6.11.MissingEventsAccessControl.json rename to tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol.0.6.11.MissingEventsAccessControl.json index 120d1febf..a06c7fbbe 100644 --- a/tests/detectors/events-access/0.6.11/missing_events_access_control.sol.0.6.11.MissingEventsAccessControl.json +++ b/tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol.0.6.11.MissingEventsAccessControl.json @@ -4,18 +4,19 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 364, - "length": 90, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "start": 458, + "length": 127, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 23, + 24, + 25, + 26 ], "starting_column": 3, "ending_column": 4 @@ -27,9 +28,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -89,21 +90,21 @@ "ending_column": 2 } }, - "signature": "bad1(address)" + "signature": "bad2(address)" } }, { "type": "node", "name": "owner = newOwner", "source_mapping": { - "start": 421, + "start": 552, "length": 16, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 20 + 25 ], "starting_column": 5, "ending_column": 21 @@ -111,18 +112,19 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 364, - "length": 90, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "start": 458, + "length": 127, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 23, + 24, + 25, + 26 ], "starting_column": 3, "ending_column": 4 @@ -134,9 +136,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -196,16 +198,16 @@ "ending_column": 2 } }, - "signature": "bad1(address)" + "signature": "bad2(address)" } } } } ], - "description": "Bug.bad1(address) (tests/detectors/events-access/0.6.11/missing_events_access_control.sol#19-21) should emit an event for: \n\t- owner = newOwner (tests/detectors/events-access/0.6.11/missing_events_access_control.sol#20) \n", - "markdown": "[Bug.bad1(address)](tests/detectors/events-access/0.6.11/missing_events_access_control.sol#L19-L21) should emit an event for: \n\t- [owner = newOwner](tests/detectors/events-access/0.6.11/missing_events_access_control.sol#L20) \n", - "first_markdown_element": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol#L19-L21", - "id": "7dd824ee9b2f6100abf2b1e95d84c1b1393a4ab27a06676b2a5d7da164788a00", + "description": "Bug.bad2(address) (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#23-26) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#25) \n", + "markdown": "[Bug.bad2(address)](tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L23-L26) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L25) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L23-L26", + "id": "07b828b3ef90ce17c16627d50b5d10d3d0bb12364186c1daf539fe754e044e9d", "check": "events-access", "impact": "Low", "confidence": "Medium" @@ -214,18 +216,18 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 284, - "length": 76, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "start": 364, + "length": 90, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 15, - 16, - 17 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -237,9 +239,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -299,40 +301,40 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad1(address)" } }, { "type": "node", - "name": "owner = msg.sender", + "name": "owner = newOwner", "source_mapping": { - "start": 325, - "length": 18, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "start": 421, + "length": 16, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 16 + 20 ], "starting_column": 5, - "ending_column": 23 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 284, - "length": 76, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "start": 364, + "length": 90, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 15, - 16, - 17 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -344,9 +346,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -406,16 +408,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad1(address)" } } } } ], - "description": "Bug.bad0() (tests/detectors/events-access/0.6.11/missing_events_access_control.sol#15-17) should emit an event for: \n\t- owner = msg.sender (tests/detectors/events-access/0.6.11/missing_events_access_control.sol#16) \n", - "markdown": "[Bug.bad0()](tests/detectors/events-access/0.6.11/missing_events_access_control.sol#L15-L17) should emit an event for: \n\t- [owner = msg.sender](tests/detectors/events-access/0.6.11/missing_events_access_control.sol#L16) \n", - "first_markdown_element": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol#L15-L17", - "id": "81ef3707d2eed91cd30ba6e7368fa40206ec32eec757bb0af632c4b7885bd92c", + "description": "Bug.bad1(address) (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#19-21) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#20) \n", + "markdown": "[Bug.bad1(address)](tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L19-L21) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L20) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L19-L21", + "id": "2a1bc700ba646491b242b50ce15549c686f18158317505cc73e49819c13f30ff", "check": "events-access", "impact": "Low", "confidence": "Medium" @@ -424,19 +426,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad0", "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "start": 284, + "length": 76, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26 + 15, + 16, + 17 ], "starting_column": 3, "ending_column": 4 @@ -448,9 +449,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -510,41 +511,40 @@ "ending_column": 2 } }, - "signature": "bad2(address)" + "signature": "bad0()" } }, { "type": "node", - "name": "owner = newOwner", + "name": "owner = msg.sender", "source_mapping": { - "start": 552, - "length": 16, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "start": 325, + "length": 18, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 25 + 16 ], "starting_column": 5, - "ending_column": 21 + "ending_column": 23 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad0", "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "start": 284, + "length": 76, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26 + 15, + 16, + 17 ], "starting_column": 3, "ending_column": 4 @@ -556,9 +556,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -618,16 +618,16 @@ "ending_column": 2 } }, - "signature": "bad2(address)" + "signature": "bad0()" } } } } ], - "description": "Bug.bad2(address) (tests/detectors/events-access/0.6.11/missing_events_access_control.sol#23-26) should emit an event for: \n\t- owner = newOwner (tests/detectors/events-access/0.6.11/missing_events_access_control.sol#25) \n", - "markdown": "[Bug.bad2(address)](tests/detectors/events-access/0.6.11/missing_events_access_control.sol#L23-L26) should emit an event for: \n\t- [owner = newOwner](tests/detectors/events-access/0.6.11/missing_events_access_control.sol#L25) \n", - "first_markdown_element": "tests/detectors/events-access/0.6.11/missing_events_access_control.sol#L23-L26", - "id": "a1b2818a2d7f222d9f8e8d8f7730fe9e8b24c9863637b9ecd2f395eb68fa3511", + "description": "Bug.bad0() (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#15-17) should emit an event for: \n\t- owner = msg.sender (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#16) \n", + "markdown": "[Bug.bad0()](tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L15-L17) should emit an event for: \n\t- [owner = msg.sender](tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L16) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L15-L17", + "id": "6233b8ac6fbfc75896df1f4181adc2b672d947841a32a5e600331f6e3fae0ad7", "check": "events-access", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/events-access/0.7.6/missing_events_access_control.sol b/tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol similarity index 100% rename from tests/detectors/events-access/0.7.6/missing_events_access_control.sol rename to tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol diff --git a/tests/detectors/events-access/0.7.6/missing_events_access_control.sol.0.7.6.MissingEventsAccessControl.json b/tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol.0.7.6.MissingEventsAccessControl.json similarity index 80% rename from tests/detectors/events-access/0.7.6/missing_events_access_control.sol.0.7.6.MissingEventsAccessControl.json rename to tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol.0.7.6.MissingEventsAccessControl.json index de5943bc7..1d2ff91e4 100644 --- a/tests/detectors/events-access/0.7.6/missing_events_access_control.sol.0.7.6.MissingEventsAccessControl.json +++ b/tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol.0.7.6.MissingEventsAccessControl.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 284, - "length": 76, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "start": 364, + "length": 90, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 15, - 16, - 17 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -89,40 +89,40 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad1(address)" } }, { "type": "node", - "name": "owner = msg.sender", + "name": "owner = newOwner", "source_mapping": { - "start": 325, - "length": 18, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "start": 421, + "length": 16, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 16 + 20 ], "starting_column": 5, - "ending_column": 23 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 284, - "length": 76, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "start": 364, + "length": 90, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 15, - 16, - 17 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -134,9 +134,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -196,16 +196,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad1(address)" } } } } ], - "description": "Bug.bad0() (tests/detectors/events-access/0.7.6/missing_events_access_control.sol#15-17) should emit an event for: \n\t- owner = msg.sender (tests/detectors/events-access/0.7.6/missing_events_access_control.sol#16) \n", - "markdown": "[Bug.bad0()](tests/detectors/events-access/0.7.6/missing_events_access_control.sol#L15-L17) should emit an event for: \n\t- [owner = msg.sender](tests/detectors/events-access/0.7.6/missing_events_access_control.sol#L16) \n", - "first_markdown_element": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol#L15-L17", - "id": "2fb533ae76197f4d08ef6a97b9f0ee983db552644ae44807c761889fc5a86c22", + "description": "Bug.bad1(address) (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#19-21) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#20) \n", + "markdown": "[Bug.bad1(address)](tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L19-L21) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L20) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L19-L21", + "id": "21fc5036d7faf8a85ef526dae53f05bb95d3b164be9153309914c9d1edd4b1fa", "check": "events-access", "impact": "Low", "confidence": "Medium" @@ -214,19 +214,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad0", "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "start": 284, + "length": 76, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26 + 15, + 16, + 17 ], "starting_column": 3, "ending_column": 4 @@ -238,9 +237,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -300,41 +299,40 @@ "ending_column": 2 } }, - "signature": "bad2(address)" + "signature": "bad0()" } }, { "type": "node", - "name": "owner = newOwner", + "name": "owner = msg.sender", "source_mapping": { - "start": 552, - "length": 16, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "start": 325, + "length": 18, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 25 + 16 ], "starting_column": 5, - "ending_column": 21 + "ending_column": 23 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad0", "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "start": 284, + "length": 76, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26 + 15, + 16, + 17 ], "starting_column": 3, "ending_column": 4 @@ -346,9 +344,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -408,16 +406,16 @@ "ending_column": 2 } }, - "signature": "bad2(address)" + "signature": "bad0()" } } } } ], - "description": "Bug.bad2(address) (tests/detectors/events-access/0.7.6/missing_events_access_control.sol#23-26) should emit an event for: \n\t- owner = newOwner (tests/detectors/events-access/0.7.6/missing_events_access_control.sol#25) \n", - "markdown": "[Bug.bad2(address)](tests/detectors/events-access/0.7.6/missing_events_access_control.sol#L23-L26) should emit an event for: \n\t- [owner = newOwner](tests/detectors/events-access/0.7.6/missing_events_access_control.sol#L25) \n", - "first_markdown_element": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol#L23-L26", - "id": "3b63f24bd57a54fab8af7d3292bd8444c3dc834bf43dfd96be0e06ca0027299c", + "description": "Bug.bad0() (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#15-17) should emit an event for: \n\t- owner = msg.sender (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#16) \n", + "markdown": "[Bug.bad0()](tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L15-L17) should emit an event for: \n\t- [owner = msg.sender](tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L16) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L15-L17", + "id": "60cac8612da706a8f41d365ee5121e3ff3d117d62ef30542f4f0919c1269cc63", "check": "events-access", "impact": "Low", "confidence": "Medium" @@ -426,18 +424,19 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 364, - "length": 90, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "start": 458, + "length": 127, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 23, + 24, + 25, + 26 ], "starting_column": 3, "ending_column": 4 @@ -449,9 +448,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -511,21 +510,21 @@ "ending_column": 2 } }, - "signature": "bad1(address)" + "signature": "bad2(address)" } }, { "type": "node", "name": "owner = newOwner", "source_mapping": { - "start": 421, + "start": 552, "length": 16, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 20 + 25 ], "starting_column": 5, "ending_column": 21 @@ -533,18 +532,19 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 364, - "length": 90, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "start": 458, + "length": 127, + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 23, + 24, + 25, + 26 ], "starting_column": 3, "ending_column": 4 @@ -556,9 +556,9 @@ "source_mapping": { "start": 0, "length": 1309, - "filename_relative": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol", + "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", "is_dependency": false, "lines": [ 1, @@ -618,16 +618,16 @@ "ending_column": 2 } }, - "signature": "bad1(address)" + "signature": "bad2(address)" } } } } ], - "description": "Bug.bad1(address) (tests/detectors/events-access/0.7.6/missing_events_access_control.sol#19-21) should emit an event for: \n\t- owner = newOwner (tests/detectors/events-access/0.7.6/missing_events_access_control.sol#20) \n", - "markdown": "[Bug.bad1(address)](tests/detectors/events-access/0.7.6/missing_events_access_control.sol#L19-L21) should emit an event for: \n\t- [owner = newOwner](tests/detectors/events-access/0.7.6/missing_events_access_control.sol#L20) \n", - "first_markdown_element": "tests/detectors/events-access/0.7.6/missing_events_access_control.sol#L19-L21", - "id": "d319284c1ad2023a792ace9e7b2371966f789c5acf5ab90b1cc5935060f855f0", + "description": "Bug.bad2(address) (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#23-26) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#25) \n", + "markdown": "[Bug.bad2(address)](tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L23-L26) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L25) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L23-L26", + "id": "7860dfd180581f63b5ecadd5b878a8e35424a20a1ed7bdfa9c7a88bbe40a40ac", "check": "events-access", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol b/tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol similarity index 100% rename from tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol rename to tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol diff --git a/tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol.0.4.25.MissingEventsArithmetic.json b/tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol.0.4.25.MissingEventsArithmetic.json similarity index 83% rename from tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol.0.4.25.MissingEventsArithmetic.json rename to tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol.0.4.25.MissingEventsArithmetic.json index bd4d36b89..e0cb12afe 100644 --- a/tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol.0.4.25.MissingEventsArithmetic.json +++ b/tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol.0.4.25.MissingEventsArithmetic.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 392, - "length": 71, - "filename_relative": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "start": 535, + "length": 72, + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ - 22, - 23, - 24 + 30, + 31, + 32 ], "starting_column": 3, "ending_column": 4 @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -109,40 +109,40 @@ "ending_column": 2 } }, - "signature": "bad0(uint8)" + "signature": "bad1(int16)" } }, { "type": "node", - "name": "uprice8 = _price", + "name": "iprice16 = _price", "source_mapping": { - "start": 442, - "length": 16, - "filename_relative": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "start": 585, + "length": 17, + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ - 23 + 31 ], "starting_column": 5, - "ending_column": 21 + "ending_column": 22 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 392, - "length": 71, - "filename_relative": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "start": 535, + "length": 72, + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ - 22, - 23, - 24 + 30, + 31, + 32 ], "starting_column": 3, "ending_column": 4 @@ -154,9 +154,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -236,16 +236,16 @@ "ending_column": 2 } }, - "signature": "bad0(uint8)" + "signature": "bad1(int16)" } } } } ], - "description": "Bug.bad0(uint8) (tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol#22-24) should emit an event for: \n\t- uprice8 = _price (tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol#23) \n", - "markdown": "[Bug.bad0(uint8)](tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol#L22-L24) should emit an event for: \n\t- [uprice8 = _price](tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol#L23) \n", - "first_markdown_element": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol#L22-L24", - "id": "5bdc3116ab3855778ce4857872000648491e61af71273e503cc9439c5e8740c1", + "description": "Bug.bad1(int16) (tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#30-32) should emit an event for: \n\t- iprice16 = _price (tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#31) \n", + "markdown": "[Bug.bad1(int16)](tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#L30-L32) should emit an event for: \n\t- [iprice16 = _price](tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#L31) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#L30-L32", + "id": "7d5d220e7eb70eecd77a3b9f97edae023ff0ace74cb8fdcc673421a20cd1b0bd", "check": "events-maths", "impact": "Low", "confidence": "Medium" @@ -254,18 +254,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 535, - "length": 72, - "filename_relative": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "start": 392, + "length": 71, + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32 + 22, + 23, + 24 ], "starting_column": 3, "ending_column": 4 @@ -277,9 +277,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -359,40 +359,40 @@ "ending_column": 2 } }, - "signature": "bad1(int16)" + "signature": "bad0(uint8)" } }, { "type": "node", - "name": "iprice16 = _price", + "name": "uprice8 = _price", "source_mapping": { - "start": 585, - "length": 17, - "filename_relative": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "start": 442, + "length": 16, + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ - 31 + 23 ], "starting_column": 5, - "ending_column": 22 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 535, - "length": 72, - "filename_relative": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "start": 392, + "length": 71, + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32 + 22, + 23, + 24 ], "starting_column": 3, "ending_column": 4 @@ -404,9 +404,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -486,16 +486,16 @@ "ending_column": 2 } }, - "signature": "bad1(int16)" + "signature": "bad0(uint8)" } } } } ], - "description": "Bug.bad1(int16) (tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol#30-32) should emit an event for: \n\t- iprice16 = _price (tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol#31) \n", - "markdown": "[Bug.bad1(int16)](tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol#L30-L32) should emit an event for: \n\t- [iprice16 = _price](tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol#L31) \n", - "first_markdown_element": "tests/detectors/events-maths/0.4.25/missing_events_arithmetic.sol#L30-L32", - "id": "a8bc1236abe35dd73049b7e452352ea609772a11ca5cc92e0ee958ac94e5a577", + "description": "Bug.bad0(uint8) (tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#22-24) should emit an event for: \n\t- uprice8 = _price (tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#23) \n", + "markdown": "[Bug.bad0(uint8)](tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#L22-L24) should emit an event for: \n\t- [uprice8 = _price](tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#L23) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#L22-L24", + "id": "d834b257539b629a79f990d9afdbdea9b092e4539613b94120157bec163e9570", "check": "events-maths", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol b/tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol similarity index 100% rename from tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol rename to tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol diff --git a/tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol.0.5.16.MissingEventsArithmetic.json b/tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol.0.5.16.MissingEventsArithmetic.json similarity index 83% rename from tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol.0.5.16.MissingEventsArithmetic.json rename to tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol.0.5.16.MissingEventsArithmetic.json index 3f505d428..1f7a2d8a7 100644 --- a/tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol.0.5.16.MissingEventsArithmetic.json +++ b/tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol.0.5.16.MissingEventsArithmetic.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 392, - "length": 71, - "filename_relative": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "start": 535, + "length": 72, + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ - 22, - 23, - 24 + 30, + 31, + 32 ], "starting_column": 3, "ending_column": 4 @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -109,40 +109,40 @@ "ending_column": 2 } }, - "signature": "bad0(uint8)" + "signature": "bad1(int16)" } }, { "type": "node", - "name": "uprice8 = _price", + "name": "iprice16 = _price", "source_mapping": { - "start": 442, - "length": 16, - "filename_relative": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "start": 585, + "length": 17, + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ - 23 + 31 ], "starting_column": 5, - "ending_column": 21 + "ending_column": 22 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 392, - "length": 71, - "filename_relative": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "start": 535, + "length": 72, + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ - 22, - 23, - 24 + 30, + 31, + 32 ], "starting_column": 3, "ending_column": 4 @@ -154,9 +154,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -236,16 +236,16 @@ "ending_column": 2 } }, - "signature": "bad0(uint8)" + "signature": "bad1(int16)" } } } } ], - "description": "Bug.bad0(uint8) (tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol#22-24) should emit an event for: \n\t- uprice8 = _price (tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol#23) \n", - "markdown": "[Bug.bad0(uint8)](tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol#L22-L24) should emit an event for: \n\t- [uprice8 = _price](tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol#L23) \n", - "first_markdown_element": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol#L22-L24", - "id": "07662c5e48ff5320e1a777c6014a5c08a4afe75e11a9c5219acab83b345345d0", + "description": "Bug.bad1(int16) (tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#30-32) should emit an event for: \n\t- iprice16 = _price (tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#31) \n", + "markdown": "[Bug.bad1(int16)](tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#L30-L32) should emit an event for: \n\t- [iprice16 = _price](tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#L31) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#L30-L32", + "id": "384e7002e5c0ea33a22d703483b9f837a9ca785cc5b13b911a90fcd094d6a53b", "check": "events-maths", "impact": "Low", "confidence": "Medium" @@ -254,18 +254,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 535, - "length": 72, - "filename_relative": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "start": 392, + "length": 71, + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32 + 22, + 23, + 24 ], "starting_column": 3, "ending_column": 4 @@ -277,9 +277,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -359,40 +359,40 @@ "ending_column": 2 } }, - "signature": "bad1(int16)" + "signature": "bad0(uint8)" } }, { "type": "node", - "name": "iprice16 = _price", + "name": "uprice8 = _price", "source_mapping": { - "start": 585, - "length": 17, - "filename_relative": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "start": 442, + "length": 16, + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ - 31 + 23 ], "starting_column": 5, - "ending_column": 22 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 535, - "length": 72, - "filename_relative": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "start": 392, + "length": 71, + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32 + 22, + 23, + 24 ], "starting_column": 3, "ending_column": 4 @@ -404,9 +404,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -486,16 +486,16 @@ "ending_column": 2 } }, - "signature": "bad1(int16)" + "signature": "bad0(uint8)" } } } } ], - "description": "Bug.bad1(int16) (tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol#30-32) should emit an event for: \n\t- iprice16 = _price (tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol#31) \n", - "markdown": "[Bug.bad1(int16)](tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol#L30-L32) should emit an event for: \n\t- [iprice16 = _price](tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol#L31) \n", - "first_markdown_element": "tests/detectors/events-maths/0.5.16/missing_events_arithmetic.sol#L30-L32", - "id": "57f7648cceb76092e0e6102aa9787e808eb435435277dbde46ef016eb1047aa6", + "description": "Bug.bad0(uint8) (tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#22-24) should emit an event for: \n\t- uprice8 = _price (tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#23) \n", + "markdown": "[Bug.bad0(uint8)](tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#L22-L24) should emit an event for: \n\t- [uprice8 = _price](tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#L23) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#L22-L24", + "id": "ecfe9683975ad7762734d6bb9363346cd16bb866d217bbc4e3b340796739ac88", "check": "events-maths", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol b/tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol similarity index 100% rename from tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol rename to tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol diff --git a/tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol.0.6.11.MissingEventsArithmetic.json b/tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol.0.6.11.MissingEventsArithmetic.json similarity index 83% rename from tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol.0.6.11.MissingEventsArithmetic.json rename to tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol.0.6.11.MissingEventsArithmetic.json index 4a69b2ded..841323847 100644 --- a/tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol.0.6.11.MissingEventsArithmetic.json +++ b/tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol.0.6.11.MissingEventsArithmetic.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 392, "length": 71, - "filename_relative": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 22, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -118,9 +118,9 @@ "source_mapping": { "start": 442, "length": 16, - "filename_relative": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 23 @@ -135,9 +135,9 @@ "source_mapping": { "start": 392, "length": 71, - "filename_relative": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 22, @@ -154,9 +154,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -242,10 +242,10 @@ } } ], - "description": "Bug.bad0(uint8) (tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol#22-24) should emit an event for: \n\t- uprice8 = _price (tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol#23) \n", - "markdown": "[Bug.bad0(uint8)](tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol#L22-L24) should emit an event for: \n\t- [uprice8 = _price](tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol#L23) \n", - "first_markdown_element": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol#L22-L24", - "id": "8939d396ba9831d820e0960a02ce00dcc748cf3c833cb57bec01898a8782ce10", + "description": "Bug.bad0(uint8) (tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#22-24) should emit an event for: \n\t- uprice8 = _price (tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#23) \n", + "markdown": "[Bug.bad0(uint8)](tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#L22-L24) should emit an event for: \n\t- [uprice8 = _price](tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#L23) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#L22-L24", + "id": "4bf2270c516407112555696f464caa30d4e2e7898bd1479e454016615a38ad24", "check": "events-maths", "impact": "Low", "confidence": "Medium" @@ -258,9 +258,9 @@ "source_mapping": { "start": 535, "length": 72, - "filename_relative": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 30, @@ -277,9 +277,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -368,9 +368,9 @@ "source_mapping": { "start": 585, "length": 17, - "filename_relative": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 31 @@ -385,9 +385,9 @@ "source_mapping": { "start": 535, "length": 72, - "filename_relative": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 30, @@ -404,9 +404,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -492,10 +492,10 @@ } } ], - "description": "Bug.bad1(int16) (tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol#30-32) should emit an event for: \n\t- iprice16 = _price (tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol#31) \n", - "markdown": "[Bug.bad1(int16)](tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol#L30-L32) should emit an event for: \n\t- [iprice16 = _price](tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol#L31) \n", - "first_markdown_element": "tests/detectors/events-maths/0.6.11/missing_events_arithmetic.sol#L30-L32", - "id": "8cfd768ccce23b341e194537946d6ae90c8bbfb9ab94658a7044848969769e1a", + "description": "Bug.bad1(int16) (tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#30-32) should emit an event for: \n\t- iprice16 = _price (tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#31) \n", + "markdown": "[Bug.bad1(int16)](tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#L30-L32) should emit an event for: \n\t- [iprice16 = _price](tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#L31) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#L30-L32", + "id": "9fc6945144a499e74e24fc81440c43f9d2266b2b656d6444d05cd3aeb9d6325a", "check": "events-maths", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol b/tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol similarity index 100% rename from tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol rename to tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol diff --git a/tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol.0.7.6.MissingEventsArithmetic.json b/tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol.0.7.6.MissingEventsArithmetic.json similarity index 84% rename from tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol.0.7.6.MissingEventsArithmetic.json rename to tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol.0.7.6.MissingEventsArithmetic.json index d0a4c25d9..dd299c72a 100644 --- a/tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol.0.7.6.MissingEventsArithmetic.json +++ b/tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol.0.7.6.MissingEventsArithmetic.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 535, "length": 72, - "filename_relative": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 30, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -118,9 +118,9 @@ "source_mapping": { "start": 585, "length": 17, - "filename_relative": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 31 @@ -135,9 +135,9 @@ "source_mapping": { "start": 535, "length": 72, - "filename_relative": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 30, @@ -154,9 +154,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -242,10 +242,10 @@ } } ], - "description": "Bug.bad1(int16) (tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol#30-32) should emit an event for: \n\t- iprice16 = _price (tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol#31) \n", - "markdown": "[Bug.bad1(int16)](tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol#L30-L32) should emit an event for: \n\t- [iprice16 = _price](tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol#L31) \n", - "first_markdown_element": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol#L30-L32", - "id": "22cd7f2678dfbd4185d6254ad55b620bd3b20a406d88d9f53412ca97d9c3bf03", + "description": "Bug.bad1(int16) (tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#30-32) should emit an event for: \n\t- iprice16 = _price (tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#31) \n", + "markdown": "[Bug.bad1(int16)](tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#L30-L32) should emit an event for: \n\t- [iprice16 = _price](tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#L31) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#L30-L32", + "id": "9a015bded24bf836777fe364f7fda7e10969446ce8c0b352ce6e0023bdd7b79b", "check": "events-maths", "impact": "Low", "confidence": "Medium" @@ -258,9 +258,9 @@ "source_mapping": { "start": 392, "length": 71, - "filename_relative": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 22, @@ -277,9 +277,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -368,9 +368,9 @@ "source_mapping": { "start": 442, "length": 16, - "filename_relative": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 23 @@ -385,9 +385,9 @@ "source_mapping": { "start": 392, "length": 71, - "filename_relative": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 22, @@ -404,9 +404,9 @@ "source_mapping": { "start": 0, "length": 1522, - "filename_relative": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol", + "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", "is_dependency": false, "lines": [ 1, @@ -492,10 +492,10 @@ } } ], - "description": "Bug.bad0(uint8) (tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol#22-24) should emit an event for: \n\t- uprice8 = _price (tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol#23) \n", - "markdown": "[Bug.bad0(uint8)](tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol#L22-L24) should emit an event for: \n\t- [uprice8 = _price](tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol#L23) \n", - "first_markdown_element": "tests/detectors/events-maths/0.7.6/missing_events_arithmetic.sol#L22-L24", - "id": "833efa3b1dab85aef7a00a7bf77bfe290cb2933e11eed34150a1e54a9644a093", + "description": "Bug.bad0(uint8) (tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#22-24) should emit an event for: \n\t- uprice8 = _price (tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#23) \n", + "markdown": "[Bug.bad0(uint8)](tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#L22-L24) should emit an event for: \n\t- [uprice8 = _price](tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#L23) \n", + "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#L22-L24", + "id": "fa31b12742b283eaebe95c21d70eb91600f87abda7eb2a186d0a661ab401992a", "check": "events-maths", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/external-function/0.4.25/external_function.sol b/tests/e2e/detectors/test_data/external-function/0.4.25/external_function.sol similarity index 100% rename from tests/detectors/external-function/0.4.25/external_function.sol rename to tests/e2e/detectors/test_data/external-function/0.4.25/external_function.sol diff --git a/tests/detectors/external-function/0.4.25/external_function.sol.0.4.25.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.4.25/external_function.sol.0.4.25.ExternalFunction.json similarity index 100% rename from tests/detectors/external-function/0.4.25/external_function.sol.0.4.25.ExternalFunction.json rename to tests/e2e/detectors/test_data/external-function/0.4.25/external_function.sol.0.4.25.ExternalFunction.json diff --git a/tests/detectors/external-function/0.4.25/external_function_2.sol b/tests/e2e/detectors/test_data/external-function/0.4.25/external_function_2.sol similarity index 100% rename from tests/detectors/external-function/0.4.25/external_function_2.sol rename to tests/e2e/detectors/test_data/external-function/0.4.25/external_function_2.sol diff --git a/tests/detectors/external-function/0.4.25/external_function_2.sol.0.4.25.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.4.25/external_function_2.sol.0.4.25.ExternalFunction.json similarity index 100% rename from tests/detectors/external-function/0.4.25/external_function_2.sol.0.4.25.ExternalFunction.json rename to tests/e2e/detectors/test_data/external-function/0.4.25/external_function_2.sol.0.4.25.ExternalFunction.json diff --git a/tests/detectors/external-function/0.4.25/external_function_3.sol b/tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol similarity index 100% rename from tests/detectors/external-function/0.4.25/external_function_3.sol rename to tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol diff --git a/tests/detectors/external-function/0.4.25/external_function_3.sol.0.4.25.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol.0.4.25.ExternalFunction.json similarity index 71% rename from tests/detectors/external-function/0.4.25/external_function_3.sol.0.4.25.ExternalFunction.json rename to tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol.0.4.25.ExternalFunction.json index 951417bee..5931ffb80 100644 --- a/tests/detectors/external-function/0.4.25/external_function_3.sol.0.4.25.ExternalFunction.json +++ b/tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol.0.4.25.ExternalFunction.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 239, "length": 43, - "filename_relative": "tests/detectors/external-function/0.4.25/external_function_3.sol", + "filename_relative": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/external-function/0.4.25/external_function_3.sol", + "filename_short": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", "is_dependency": false, "lines": [ 8 @@ -25,9 +25,9 @@ "source_mapping": { "start": 0, "length": 330, - "filename_relative": "tests/detectors/external-function/0.4.25/external_function_3.sol", + "filename_relative": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/external-function/0.4.25/external_function_3.sol", + "filename_short": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", "is_dependency": false, "lines": [ 1, @@ -51,9 +51,9 @@ } } ], - "description": "bad2(uint256[]) should be declared external:\n\t- Test.bad2(uint256[]) (tests/detectors/external-function/0.4.25/external_function_3.sol#8)\n", - "markdown": "bad2(uint256[]) should be declared external:\n\t- [Test.bad2(uint256[])](tests/detectors/external-function/0.4.25/external_function_3.sol#L8)\n", - "first_markdown_element": "tests/detectors/external-function/0.4.25/external_function_3.sol#L8", + "description": "bad2(uint256[]) should be declared external:\n\t- Test.bad2(uint256[]) (tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#8)\n", + "markdown": "bad2(uint256[]) should be declared external:\n\t- [Test.bad2(uint256[])](tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#L8", "id": "69068a3072d6f392073d197438688ae8e0bee7844098cfe4cc6c7d345e603678", "check": "external-function", "impact": "Optimization", @@ -67,9 +67,9 @@ "source_mapping": { "start": 196, "length": 38, - "filename_relative": "tests/detectors/external-function/0.4.25/external_function_3.sol", + "filename_relative": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/external-function/0.4.25/external_function_3.sol", + "filename_short": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", "is_dependency": false, "lines": [ 7 @@ -84,9 +84,9 @@ "source_mapping": { "start": 0, "length": 330, - "filename_relative": "tests/detectors/external-function/0.4.25/external_function_3.sol", + "filename_relative": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/external-function/0.4.25/external_function_3.sol", + "filename_short": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", "is_dependency": false, "lines": [ 1, @@ -110,9 +110,9 @@ } } ], - "description": "bad(bytes) should be declared external:\n\t- Test.bad(bytes) (tests/detectors/external-function/0.4.25/external_function_3.sol#7)\n", - "markdown": "bad(bytes) should be declared external:\n\t- [Test.bad(bytes)](tests/detectors/external-function/0.4.25/external_function_3.sol#L7)\n", - "first_markdown_element": "tests/detectors/external-function/0.4.25/external_function_3.sol#L7", + "description": "bad(bytes) should be declared external:\n\t- Test.bad(bytes) (tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#7)\n", + "markdown": "bad(bytes) should be declared external:\n\t- [Test.bad(bytes)](tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#L7", "id": "695915ec89adb6bfc4bf7f8eebf7993e02756da20f0b0e5a8d1dd251bf956c43", "check": "external-function", "impact": "Optimization", @@ -126,9 +126,9 @@ "source_mapping": { "start": 287, "length": 40, - "filename_relative": "tests/detectors/external-function/0.4.25/external_function_3.sol", + "filename_relative": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/external-function/0.4.25/external_function_3.sol", + "filename_short": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", "is_dependency": false, "lines": [ 9 @@ -143,9 +143,9 @@ "source_mapping": { "start": 0, "length": 330, - "filename_relative": "tests/detectors/external-function/0.4.25/external_function_3.sol", + "filename_relative": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/external-function/0.4.25/external_function_3.sol", + "filename_short": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", "is_dependency": false, "lines": [ 1, @@ -169,9 +169,9 @@ } } ], - "description": "bad3(string) should be declared external:\n\t- Test.bad3(string) (tests/detectors/external-function/0.4.25/external_function_3.sol#9)\n", - "markdown": "bad3(string) should be declared external:\n\t- [Test.bad3(string)](tests/detectors/external-function/0.4.25/external_function_3.sol#L9)\n", - "first_markdown_element": "tests/detectors/external-function/0.4.25/external_function_3.sol#L9", + "description": "bad3(string) should be declared external:\n\t- Test.bad3(string) (tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#9)\n", + "markdown": "bad3(string) should be declared external:\n\t- [Test.bad3(string)](tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#L9", "id": "f56b73c72461d3d9fd4e79bd3cd2649f79c425406843e5c7b2de3fad5b2f663a", "check": "external-function", "impact": "Optimization", diff --git a/tests/detectors/external-function/0.4.25/external_function_import.sol b/tests/e2e/detectors/test_data/external-function/0.4.25/external_function_import.sol similarity index 100% rename from tests/detectors/external-function/0.4.25/external_function_import.sol rename to tests/e2e/detectors/test_data/external-function/0.4.25/external_function_import.sol diff --git a/tests/detectors/external-function/0.5.16/external_function.sol b/tests/e2e/detectors/test_data/external-function/0.5.16/external_function.sol similarity index 100% rename from tests/detectors/external-function/0.5.16/external_function.sol rename to tests/e2e/detectors/test_data/external-function/0.5.16/external_function.sol diff --git a/tests/detectors/external-function/0.5.16/external_function.sol.0.5.16.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.5.16/external_function.sol.0.5.16.ExternalFunction.json similarity index 100% rename from tests/detectors/external-function/0.5.16/external_function.sol.0.5.16.ExternalFunction.json rename to tests/e2e/detectors/test_data/external-function/0.5.16/external_function.sol.0.5.16.ExternalFunction.json diff --git a/tests/detectors/external-function/0.5.16/external_function_2.sol b/tests/e2e/detectors/test_data/external-function/0.5.16/external_function_2.sol similarity index 100% rename from tests/detectors/external-function/0.5.16/external_function_2.sol rename to tests/e2e/detectors/test_data/external-function/0.5.16/external_function_2.sol diff --git a/tests/detectors/external-function/0.5.16/external_function_2.sol.0.5.16.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.5.16/external_function_2.sol.0.5.16.ExternalFunction.json similarity index 100% rename from tests/detectors/external-function/0.5.16/external_function_2.sol.0.5.16.ExternalFunction.json rename to tests/e2e/detectors/test_data/external-function/0.5.16/external_function_2.sol.0.5.16.ExternalFunction.json diff --git a/tests/detectors/external-function/0.5.16/external_function_3.sol b/tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol similarity index 100% rename from tests/detectors/external-function/0.5.16/external_function_3.sol rename to tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol diff --git a/tests/detectors/external-function/0.5.16/external_function_3.sol.0.5.16.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol.0.5.16.ExternalFunction.json similarity index 68% rename from tests/detectors/external-function/0.5.16/external_function_3.sol.0.5.16.ExternalFunction.json rename to tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol.0.5.16.ExternalFunction.json index edc1ad2e7..72a50312d 100644 --- a/tests/detectors/external-function/0.5.16/external_function_3.sol.0.5.16.ExternalFunction.json +++ b/tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol.0.5.16.ExternalFunction.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 524, "length": 40, - "filename_relative": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "is_dependency": false, "lines": [ 18 @@ -25,9 +25,9 @@ "source_mapping": { "start": 35, "length": 532, - "filename_relative": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "is_dependency": false, "lines": [ 3, @@ -58,9 +58,9 @@ } } ], - "description": "bad4(string) should be declared external:\n\t- Test.bad4(string) (tests/detectors/external-function/0.5.16/external_function_3.sol#18)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "markdown": "bad4(string) should be declared external:\n\t- [Test.bad4(string)](tests/detectors/external-function/0.5.16/external_function_3.sol#L18)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "first_markdown_element": "tests/detectors/external-function/0.5.16/external_function_3.sol#L18", + "description": "bad4(string) should be declared external:\n\t- Test.bad4(string) (tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#18)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", + "markdown": "bad4(string) should be declared external:\n\t- [Test.bad4(string)](tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L18)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", + "first_markdown_element": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L18", "id": "1b6de528ed7f8ecf61a543879c8bcbee1bce7e08bdef89c6f8f663937d5a7209", "check": "external-function", "impact": "Optimization", @@ -74,9 +74,9 @@ "source_mapping": { "start": 475, "length": 44, - "filename_relative": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "is_dependency": false, "lines": [ 17 @@ -91,9 +91,9 @@ "source_mapping": { "start": 35, "length": 532, - "filename_relative": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "is_dependency": false, "lines": [ 3, @@ -124,9 +124,9 @@ } } ], - "description": "bad3(Test.testStruct) should be declared external:\n\t- Test.bad3(Test.testStruct) (tests/detectors/external-function/0.5.16/external_function_3.sol#17)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "markdown": "bad3(Test.testStruct) should be declared external:\n\t- [Test.bad3(Test.testStruct)](tests/detectors/external-function/0.5.16/external_function_3.sol#L17)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "first_markdown_element": "tests/detectors/external-function/0.5.16/external_function_3.sol#L17", + "description": "bad3(Test.testStruct) should be declared external:\n\t- Test.bad3(Test.testStruct) (tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#17)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", + "markdown": "bad3(Test.testStruct) should be declared external:\n\t- [Test.bad3(Test.testStruct)](tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L17)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", + "first_markdown_element": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L17", "id": "a60742b3998c52eee654f61cfb5b39834d63a1b13212511a01811206ac445dd5", "check": "external-function", "impact": "Optimization", @@ -140,9 +140,9 @@ "source_mapping": { "start": 427, "length": 43, - "filename_relative": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "is_dependency": false, "lines": [ 16 @@ -157,9 +157,9 @@ "source_mapping": { "start": 35, "length": 532, - "filename_relative": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "is_dependency": false, "lines": [ 3, @@ -190,9 +190,9 @@ } } ], - "description": "bad2(uint256[]) should be declared external:\n\t- Test.bad2(uint256[]) (tests/detectors/external-function/0.5.16/external_function_3.sol#16)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "markdown": "bad2(uint256[]) should be declared external:\n\t- [Test.bad2(uint256[])](tests/detectors/external-function/0.5.16/external_function_3.sol#L16)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "first_markdown_element": "tests/detectors/external-function/0.5.16/external_function_3.sol#L16", + "description": "bad2(uint256[]) should be declared external:\n\t- Test.bad2(uint256[]) (tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#16)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", + "markdown": "bad2(uint256[]) should be declared external:\n\t- [Test.bad2(uint256[])](tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L16)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", + "first_markdown_element": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L16", "id": "aa4b0cae64f1a6f9f11d3f9981255fd04f37f558c960195ee46413ca4b142822", "check": "external-function", "impact": "Optimization", @@ -206,9 +206,9 @@ "source_mapping": { "start": 384, "length": 38, - "filename_relative": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "is_dependency": false, "lines": [ 15 @@ -223,9 +223,9 @@ "source_mapping": { "start": 35, "length": 532, - "filename_relative": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/external-function/0.5.16/external_function_3.sol", + "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", "is_dependency": false, "lines": [ 3, @@ -256,9 +256,9 @@ } } ], - "description": "bad(bytes) should be declared external:\n\t- Test.bad(bytes) (tests/detectors/external-function/0.5.16/external_function_3.sol#15)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "markdown": "bad(bytes) should be declared external:\n\t- [Test.bad(bytes)](tests/detectors/external-function/0.5.16/external_function_3.sol#L15)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "first_markdown_element": "tests/detectors/external-function/0.5.16/external_function_3.sol#L15", + "description": "bad(bytes) should be declared external:\n\t- Test.bad(bytes) (tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#15)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", + "markdown": "bad(bytes) should be declared external:\n\t- [Test.bad(bytes)](tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L15)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", + "first_markdown_element": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L15", "id": "df1688f3d1120f9600f61accff294ba821689c45dc261f1a9b94f23e6a402367", "check": "external-function", "impact": "Optimization", diff --git a/tests/detectors/external-function/0.5.16/external_function_import.sol b/tests/e2e/detectors/test_data/external-function/0.5.16/external_function_import.sol similarity index 100% rename from tests/detectors/external-function/0.5.16/external_function_import.sol rename to tests/e2e/detectors/test_data/external-function/0.5.16/external_function_import.sol diff --git a/tests/detectors/external-function/0.6.11/external_function.sol b/tests/e2e/detectors/test_data/external-function/0.6.11/external_function.sol similarity index 100% rename from tests/detectors/external-function/0.6.11/external_function.sol rename to tests/e2e/detectors/test_data/external-function/0.6.11/external_function.sol diff --git a/tests/detectors/external-function/0.6.11/external_function.sol.0.6.11.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.6.11/external_function.sol.0.6.11.ExternalFunction.json similarity index 100% rename from tests/detectors/external-function/0.6.11/external_function.sol.0.6.11.ExternalFunction.json rename to tests/e2e/detectors/test_data/external-function/0.6.11/external_function.sol.0.6.11.ExternalFunction.json diff --git a/tests/detectors/external-function/0.6.11/external_function_2.sol b/tests/e2e/detectors/test_data/external-function/0.6.11/external_function_2.sol similarity index 100% rename from tests/detectors/external-function/0.6.11/external_function_2.sol rename to tests/e2e/detectors/test_data/external-function/0.6.11/external_function_2.sol diff --git a/tests/detectors/external-function/0.6.11/external_function_2.sol.0.6.11.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.6.11/external_function_2.sol.0.6.11.ExternalFunction.json similarity index 100% rename from tests/detectors/external-function/0.6.11/external_function_2.sol.0.6.11.ExternalFunction.json rename to tests/e2e/detectors/test_data/external-function/0.6.11/external_function_2.sol.0.6.11.ExternalFunction.json diff --git a/tests/detectors/external-function/0.6.11/external_function_3.sol b/tests/e2e/detectors/test_data/external-function/0.6.11/external_function_3.sol similarity index 100% rename from tests/detectors/external-function/0.6.11/external_function_3.sol rename to tests/e2e/detectors/test_data/external-function/0.6.11/external_function_3.sol diff --git a/tests/detectors/external-function/0.6.11/external_function_3.sol.0.6.11.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.6.11/external_function_3.sol.0.6.11.ExternalFunction.json similarity index 100% rename from tests/detectors/external-function/0.6.11/external_function_3.sol.0.6.11.ExternalFunction.json rename to tests/e2e/detectors/test_data/external-function/0.6.11/external_function_3.sol.0.6.11.ExternalFunction.json diff --git a/tests/detectors/external-function/0.6.11/external_function_import.sol b/tests/e2e/detectors/test_data/external-function/0.6.11/external_function_import.sol similarity index 100% rename from tests/detectors/external-function/0.6.11/external_function_import.sol rename to tests/e2e/detectors/test_data/external-function/0.6.11/external_function_import.sol diff --git a/tests/detectors/external-function/0.7.6/external_function.sol b/tests/e2e/detectors/test_data/external-function/0.7.6/external_function.sol similarity index 100% rename from tests/detectors/external-function/0.7.6/external_function.sol rename to tests/e2e/detectors/test_data/external-function/0.7.6/external_function.sol diff --git a/tests/detectors/external-function/0.7.6/external_function.sol.0.7.6.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.7.6/external_function.sol.0.7.6.ExternalFunction.json similarity index 100% rename from tests/detectors/external-function/0.7.6/external_function.sol.0.7.6.ExternalFunction.json rename to tests/e2e/detectors/test_data/external-function/0.7.6/external_function.sol.0.7.6.ExternalFunction.json diff --git a/tests/detectors/external-function/0.7.6/external_function_2.sol b/tests/e2e/detectors/test_data/external-function/0.7.6/external_function_2.sol similarity index 100% rename from tests/detectors/external-function/0.7.6/external_function_2.sol rename to tests/e2e/detectors/test_data/external-function/0.7.6/external_function_2.sol diff --git a/tests/detectors/external-function/0.7.6/external_function_2.sol.0.7.6.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.7.6/external_function_2.sol.0.7.6.ExternalFunction.json similarity index 100% rename from tests/detectors/external-function/0.7.6/external_function_2.sol.0.7.6.ExternalFunction.json rename to tests/e2e/detectors/test_data/external-function/0.7.6/external_function_2.sol.0.7.6.ExternalFunction.json diff --git a/tests/detectors/external-function/0.7.6/external_function_3.sol b/tests/e2e/detectors/test_data/external-function/0.7.6/external_function_3.sol similarity index 100% rename from tests/detectors/external-function/0.7.6/external_function_3.sol rename to tests/e2e/detectors/test_data/external-function/0.7.6/external_function_3.sol diff --git a/tests/detectors/external-function/0.7.6/external_function_3.sol.0.7.6.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.7.6/external_function_3.sol.0.7.6.ExternalFunction.json similarity index 100% rename from tests/detectors/external-function/0.7.6/external_function_3.sol.0.7.6.ExternalFunction.json rename to tests/e2e/detectors/test_data/external-function/0.7.6/external_function_3.sol.0.7.6.ExternalFunction.json diff --git a/tests/detectors/external-function/0.7.6/external_function_import.sol b/tests/e2e/detectors/test_data/external-function/0.7.6/external_function_import.sol similarity index 100% rename from tests/detectors/external-function/0.7.6/external_function_import.sol rename to tests/e2e/detectors/test_data/external-function/0.7.6/external_function_import.sol diff --git a/tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol b/tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol similarity index 100% rename from tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol rename to tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol diff --git a/tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol.0.4.25.FunctionInitializedState.json b/tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol.0.4.25.FunctionInitializedState.json similarity index 73% rename from tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol.0.4.25.FunctionInitializedState.json rename to tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol.0.4.25.FunctionInitializedState.json index 88ad6f92d..4a3e17170 100644 --- a/tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol.0.4.25.FunctionInitializedState.json +++ b/tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol.0.4.25.FunctionInitializedState.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 157, "length": 21, - "filename_relative": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "is_dependency": false, "lines": [ 5 @@ -25,9 +25,9 @@ "source_mapping": { "start": 116, "length": 1567, - "filename_relative": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -83,9 +83,9 @@ } } ], - "description": "StateVarInitFromFunction.v (tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.v](tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#L5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#L5", + "description": "StateVarInitFromFunction.v (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "markdown": "[StateVarInitFromFunction.v](tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L5", "id": "4b87ea4c0a3b72be79ffde12c56c9dc7440445b79ff4b228e0937b3a05540e4b", "check": "function-init-state", "impact": "Informational", @@ -99,9 +99,9 @@ "source_mapping": { "start": 842, "length": 23, - "filename_relative": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "is_dependency": false, "lines": [ 17 @@ -116,9 +116,9 @@ "source_mapping": { "start": 116, "length": 1567, - "filename_relative": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -174,9 +174,9 @@ } } ], - "description": "StateVarInitFromFunction.z4 (tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "markdown": "[StateVarInitFromFunction.z4](tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#L17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "first_markdown_element": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#L17", + "description": "StateVarInitFromFunction.z4 (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", + "markdown": "[StateVarInitFromFunction.z4](tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L17", "id": "8b7eb9ab16397c2f23479d2c3043a675ab5e2b1da07e2697631812d6d7b68525", "check": "function-init-state", "impact": "Informational", @@ -190,9 +190,9 @@ "source_mapping": { "start": 268, "length": 21, - "filename_relative": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "is_dependency": false, "lines": [ 7 @@ -207,9 +207,9 @@ "source_mapping": { "start": 116, "length": 1567, - "filename_relative": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -265,9 +265,9 @@ } } ], - "description": "StateVarInitFromFunction.x (tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.x](tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#L7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#L7", + "description": "StateVarInitFromFunction.x (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "markdown": "[StateVarInitFromFunction.x](tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L7", "id": "adfa394934c8669a556cfa10c364fe526dd1e295a63959e1e88fe84a919ef354", "check": "function-init-state", "impact": "Informational", @@ -281,9 +281,9 @@ "source_mapping": { "start": 357, "length": 26, - "filename_relative": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "is_dependency": false, "lines": [ 9 @@ -298,9 +298,9 @@ "source_mapping": { "start": 116, "length": 1567, - "filename_relative": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -356,9 +356,9 @@ } } ], - "description": "StateVarInitFromFunction.y1 (tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "markdown": "[StateVarInitFromFunction.y1](tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#L9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "first_markdown_element": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#L9", + "description": "StateVarInitFromFunction.y1 (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", + "markdown": "[StateVarInitFromFunction.y1](tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L9", "id": "b26f83c06e9aca87637dea02a0f4080fd4226c1ed90c6c2c63da85cb142d67ab", "check": "function-init-state", "impact": "Informational", @@ -372,9 +372,9 @@ "source_mapping": { "start": 453, "length": 35, - "filename_relative": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "is_dependency": false, "lines": [ 10 @@ -389,9 +389,9 @@ "source_mapping": { "start": 116, "length": 1567, - "filename_relative": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -447,9 +447,9 @@ } } ], - "description": "StateVarInitFromFunction.y2 (tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "markdown": "[StateVarInitFromFunction.y2](tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#L10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "first_markdown_element": "tests/detectors/function-init-state/0.4.25/function_init_state_variables.sol#L10", + "description": "StateVarInitFromFunction.y2 (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", + "markdown": "[StateVarInitFromFunction.y2](tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L10", "id": "b6e231b9b735794e00b73dddb86b2ba8f7a738d916c99f302fb32b1095c67472", "check": "function-init-state", "impact": "Informational", diff --git a/tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol b/tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol similarity index 100% rename from tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol rename to tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol diff --git a/tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol.0.5.16.FunctionInitializedState.json b/tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol.0.5.16.FunctionInitializedState.json similarity index 73% rename from tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol.0.5.16.FunctionInitializedState.json rename to tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol.0.5.16.FunctionInitializedState.json index 382cafdf7..8c104cf5f 100644 --- a/tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol.0.5.16.FunctionInitializedState.json +++ b/tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol.0.5.16.FunctionInitializedState.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 157, "length": 21, - "filename_relative": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "is_dependency": false, "lines": [ 5 @@ -25,9 +25,9 @@ "source_mapping": { "start": 116, "length": 1575, - "filename_relative": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -83,9 +83,9 @@ } } ], - "description": "StateVarInitFromFunction.v (tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.v](tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#L5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#L5", + "description": "StateVarInitFromFunction.v (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "markdown": "[StateVarInitFromFunction.v](tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L5", "id": "4b87ea4c0a3b72be79ffde12c56c9dc7440445b79ff4b228e0937b3a05540e4b", "check": "function-init-state", "impact": "Informational", @@ -99,9 +99,9 @@ "source_mapping": { "start": 842, "length": 23, - "filename_relative": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "is_dependency": false, "lines": [ 17 @@ -116,9 +116,9 @@ "source_mapping": { "start": 116, "length": 1575, - "filename_relative": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -174,9 +174,9 @@ } } ], - "description": "StateVarInitFromFunction.z4 (tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "markdown": "[StateVarInitFromFunction.z4](tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#L17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "first_markdown_element": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#L17", + "description": "StateVarInitFromFunction.z4 (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", + "markdown": "[StateVarInitFromFunction.z4](tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L17", "id": "8b7eb9ab16397c2f23479d2c3043a675ab5e2b1da07e2697631812d6d7b68525", "check": "function-init-state", "impact": "Informational", @@ -190,9 +190,9 @@ "source_mapping": { "start": 268, "length": 21, - "filename_relative": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "is_dependency": false, "lines": [ 7 @@ -207,9 +207,9 @@ "source_mapping": { "start": 116, "length": 1575, - "filename_relative": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -265,9 +265,9 @@ } } ], - "description": "StateVarInitFromFunction.x (tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.x](tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#L7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#L7", + "description": "StateVarInitFromFunction.x (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "markdown": "[StateVarInitFromFunction.x](tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L7", "id": "adfa394934c8669a556cfa10c364fe526dd1e295a63959e1e88fe84a919ef354", "check": "function-init-state", "impact": "Informational", @@ -281,9 +281,9 @@ "source_mapping": { "start": 357, "length": 26, - "filename_relative": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "is_dependency": false, "lines": [ 9 @@ -298,9 +298,9 @@ "source_mapping": { "start": 116, "length": 1575, - "filename_relative": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -356,9 +356,9 @@ } } ], - "description": "StateVarInitFromFunction.y1 (tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "markdown": "[StateVarInitFromFunction.y1](tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#L9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "first_markdown_element": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#L9", + "description": "StateVarInitFromFunction.y1 (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", + "markdown": "[StateVarInitFromFunction.y1](tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L9", "id": "b26f83c06e9aca87637dea02a0f4080fd4226c1ed90c6c2c63da85cb142d67ab", "check": "function-init-state", "impact": "Informational", @@ -372,9 +372,9 @@ "source_mapping": { "start": 453, "length": 35, - "filename_relative": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "is_dependency": false, "lines": [ 10 @@ -389,9 +389,9 @@ "source_mapping": { "start": 116, "length": 1575, - "filename_relative": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -447,9 +447,9 @@ } } ], - "description": "StateVarInitFromFunction.y2 (tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "markdown": "[StateVarInitFromFunction.y2](tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#L10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "first_markdown_element": "tests/detectors/function-init-state/0.5.16/function_init_state_variables.sol#L10", + "description": "StateVarInitFromFunction.y2 (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", + "markdown": "[StateVarInitFromFunction.y2](tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L10", "id": "b6e231b9b735794e00b73dddb86b2ba8f7a738d916c99f302fb32b1095c67472", "check": "function-init-state", "impact": "Informational", diff --git a/tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol b/tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol similarity index 100% rename from tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol rename to tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol diff --git a/tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol.0.6.11.FunctionInitializedState.json b/tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol.0.6.11.FunctionInitializedState.json similarity index 73% rename from tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol.0.6.11.FunctionInitializedState.json rename to tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol.0.6.11.FunctionInitializedState.json index dc689281d..a974a1f73 100644 --- a/tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol.0.6.11.FunctionInitializedState.json +++ b/tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol.0.6.11.FunctionInitializedState.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 157, "length": 21, - "filename_relative": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "is_dependency": false, "lines": [ 5 @@ -25,9 +25,9 @@ "source_mapping": { "start": 116, "length": 1575, - "filename_relative": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -83,9 +83,9 @@ } } ], - "description": "StateVarInitFromFunction.v (tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.v](tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#L5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#L5", + "description": "StateVarInitFromFunction.v (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "markdown": "[StateVarInitFromFunction.v](tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L5", "id": "4b87ea4c0a3b72be79ffde12c56c9dc7440445b79ff4b228e0937b3a05540e4b", "check": "function-init-state", "impact": "Informational", @@ -99,9 +99,9 @@ "source_mapping": { "start": 842, "length": 23, - "filename_relative": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "is_dependency": false, "lines": [ 17 @@ -116,9 +116,9 @@ "source_mapping": { "start": 116, "length": 1575, - "filename_relative": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -174,9 +174,9 @@ } } ], - "description": "StateVarInitFromFunction.z4 (tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "markdown": "[StateVarInitFromFunction.z4](tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#L17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "first_markdown_element": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#L17", + "description": "StateVarInitFromFunction.z4 (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", + "markdown": "[StateVarInitFromFunction.z4](tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L17", "id": "8b7eb9ab16397c2f23479d2c3043a675ab5e2b1da07e2697631812d6d7b68525", "check": "function-init-state", "impact": "Informational", @@ -190,9 +190,9 @@ "source_mapping": { "start": 268, "length": 21, - "filename_relative": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "is_dependency": false, "lines": [ 7 @@ -207,9 +207,9 @@ "source_mapping": { "start": 116, "length": 1575, - "filename_relative": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -265,9 +265,9 @@ } } ], - "description": "StateVarInitFromFunction.x (tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.x](tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#L7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#L7", + "description": "StateVarInitFromFunction.x (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "markdown": "[StateVarInitFromFunction.x](tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L7", "id": "adfa394934c8669a556cfa10c364fe526dd1e295a63959e1e88fe84a919ef354", "check": "function-init-state", "impact": "Informational", @@ -281,9 +281,9 @@ "source_mapping": { "start": 357, "length": 26, - "filename_relative": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "is_dependency": false, "lines": [ 9 @@ -298,9 +298,9 @@ "source_mapping": { "start": 116, "length": 1575, - "filename_relative": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -356,9 +356,9 @@ } } ], - "description": "StateVarInitFromFunction.y1 (tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "markdown": "[StateVarInitFromFunction.y1](tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#L9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "first_markdown_element": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#L9", + "description": "StateVarInitFromFunction.y1 (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", + "markdown": "[StateVarInitFromFunction.y1](tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L9", "id": "b26f83c06e9aca87637dea02a0f4080fd4226c1ed90c6c2c63da85cb142d67ab", "check": "function-init-state", "impact": "Informational", @@ -372,9 +372,9 @@ "source_mapping": { "start": 453, "length": 35, - "filename_relative": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "is_dependency": false, "lines": [ 10 @@ -389,9 +389,9 @@ "source_mapping": { "start": 116, "length": 1575, - "filename_relative": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -447,9 +447,9 @@ } } ], - "description": "StateVarInitFromFunction.y2 (tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "markdown": "[StateVarInitFromFunction.y2](tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#L10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "first_markdown_element": "tests/detectors/function-init-state/0.6.11/function_init_state_variables.sol#L10", + "description": "StateVarInitFromFunction.y2 (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", + "markdown": "[StateVarInitFromFunction.y2](tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L10", "id": "b6e231b9b735794e00b73dddb86b2ba8f7a738d916c99f302fb32b1095c67472", "check": "function-init-state", "impact": "Informational", diff --git a/tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol b/tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol similarity index 100% rename from tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol rename to tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol diff --git a/tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol.0.7.6.FunctionInitializedState.json b/tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol.0.7.6.FunctionInitializedState.json similarity index 73% rename from tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol.0.7.6.FunctionInitializedState.json rename to tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol.0.7.6.FunctionInitializedState.json index abdcc8787..49d2b74ef 100644 --- a/tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol.0.7.6.FunctionInitializedState.json +++ b/tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol.0.7.6.FunctionInitializedState.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 157, "length": 21, - "filename_relative": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "is_dependency": false, "lines": [ 5 @@ -25,9 +25,9 @@ "source_mapping": { "start": 116, "length": 1567, - "filename_relative": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -83,9 +83,9 @@ } } ], - "description": "StateVarInitFromFunction.v (tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.v](tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#L5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#L5", + "description": "StateVarInitFromFunction.v (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "markdown": "[StateVarInitFromFunction.v](tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L5", "id": "4b87ea4c0a3b72be79ffde12c56c9dc7440445b79ff4b228e0937b3a05540e4b", "check": "function-init-state", "impact": "Informational", @@ -99,9 +99,9 @@ "source_mapping": { "start": 842, "length": 23, - "filename_relative": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "is_dependency": false, "lines": [ 17 @@ -116,9 +116,9 @@ "source_mapping": { "start": 116, "length": 1567, - "filename_relative": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -174,9 +174,9 @@ } } ], - "description": "StateVarInitFromFunction.z4 (tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "markdown": "[StateVarInitFromFunction.z4](tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#L17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "first_markdown_element": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#L17", + "description": "StateVarInitFromFunction.z4 (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", + "markdown": "[StateVarInitFromFunction.z4](tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L17", "id": "8b7eb9ab16397c2f23479d2c3043a675ab5e2b1da07e2697631812d6d7b68525", "check": "function-init-state", "impact": "Informational", @@ -190,9 +190,9 @@ "source_mapping": { "start": 268, "length": 21, - "filename_relative": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "is_dependency": false, "lines": [ 7 @@ -207,9 +207,9 @@ "source_mapping": { "start": 116, "length": 1567, - "filename_relative": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -265,9 +265,9 @@ } } ], - "description": "StateVarInitFromFunction.x (tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.x](tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#L7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#L7", + "description": "StateVarInitFromFunction.x (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "markdown": "[StateVarInitFromFunction.x](tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L7", "id": "adfa394934c8669a556cfa10c364fe526dd1e295a63959e1e88fe84a919ef354", "check": "function-init-state", "impact": "Informational", @@ -281,9 +281,9 @@ "source_mapping": { "start": 357, "length": 26, - "filename_relative": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "is_dependency": false, "lines": [ 9 @@ -298,9 +298,9 @@ "source_mapping": { "start": 116, "length": 1567, - "filename_relative": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -356,9 +356,9 @@ } } ], - "description": "StateVarInitFromFunction.y1 (tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "markdown": "[StateVarInitFromFunction.y1](tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#L9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "first_markdown_element": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#L9", + "description": "StateVarInitFromFunction.y1 (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", + "markdown": "[StateVarInitFromFunction.y1](tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L9", "id": "b26f83c06e9aca87637dea02a0f4080fd4226c1ed90c6c2c63da85cb142d67ab", "check": "function-init-state", "impact": "Informational", @@ -372,9 +372,9 @@ "source_mapping": { "start": 453, "length": 35, - "filename_relative": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "is_dependency": false, "lines": [ 10 @@ -389,9 +389,9 @@ "source_mapping": { "start": 116, "length": 1567, - "filename_relative": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", "is_dependency": false, "lines": [ 3, @@ -447,9 +447,9 @@ } } ], - "description": "StateVarInitFromFunction.y2 (tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "markdown": "[StateVarInitFromFunction.y2](tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#L10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "first_markdown_element": "tests/detectors/function-init-state/0.7.6/function_init_state_variables.sol#L10", + "description": "StateVarInitFromFunction.y2 (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", + "markdown": "[StateVarInitFromFunction.y2](tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", + "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L10", "id": "b6e231b9b735794e00b73dddb86b2ba8f7a738d916c99f302fb32b1095c67472", "check": "function-init-state", "impact": "Informational", diff --git a/tests/detectors/immutable-states/0.4.25/immut_state_variables.sol b/tests/e2e/detectors/test_data/immutable-states/0.4.25/immut_state_variables.sol similarity index 100% rename from tests/detectors/immutable-states/0.4.25/immut_state_variables.sol rename to tests/e2e/detectors/test_data/immutable-states/0.4.25/immut_state_variables.sol diff --git a/tests/detectors/immutable-states/0.4.25/immut_state_variables.sol.0.4.25.CouldBeImmutable.json b/tests/e2e/detectors/test_data/immutable-states/0.4.25/immut_state_variables.sol.0.4.25.CouldBeImmutable.json similarity index 100% rename from tests/detectors/immutable-states/0.4.25/immut_state_variables.sol.0.4.25.CouldBeImmutable.json rename to tests/e2e/detectors/test_data/immutable-states/0.4.25/immut_state_variables.sol.0.4.25.CouldBeImmutable.json diff --git a/tests/detectors/immutable-states/0.5.16/immut_state_variables.sol b/tests/e2e/detectors/test_data/immutable-states/0.5.16/immut_state_variables.sol similarity index 100% rename from tests/detectors/immutable-states/0.5.16/immut_state_variables.sol rename to tests/e2e/detectors/test_data/immutable-states/0.5.16/immut_state_variables.sol diff --git a/tests/detectors/immutable-states/0.5.16/immut_state_variables.sol.0.5.16.CouldBeImmutable.json b/tests/e2e/detectors/test_data/immutable-states/0.5.16/immut_state_variables.sol.0.5.16.CouldBeImmutable.json similarity index 100% rename from tests/detectors/immutable-states/0.5.16/immut_state_variables.sol.0.5.16.CouldBeImmutable.json rename to tests/e2e/detectors/test_data/immutable-states/0.5.16/immut_state_variables.sol.0.5.16.CouldBeImmutable.json diff --git a/tests/detectors/immutable-states/0.6.11/immut_state_variables.sol b/tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol similarity index 100% rename from tests/detectors/immutable-states/0.6.11/immut_state_variables.sol rename to tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol diff --git a/tests/detectors/immutable-states/0.6.11/immut_state_variables.sol.0.6.11.CouldBeImmutable.json b/tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol.0.6.11.CouldBeImmutable.json similarity index 70% rename from tests/detectors/immutable-states/0.6.11/immut_state_variables.sol.0.6.11.CouldBeImmutable.json rename to tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol.0.6.11.CouldBeImmutable.json index 15064ca99..3c2d2fe8a 100644 --- a/tests/detectors/immutable-states/0.6.11/immut_state_variables.sol.0.6.11.CouldBeImmutable.json +++ b/tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol.0.6.11.CouldBeImmutable.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1077, "length": 26, - "filename_relative": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "is_dependency": false, "lines": [ 47 @@ -25,9 +25,9 @@ "source_mapping": { "start": 718, "length": 539, - "filename_relative": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -59,9 +59,9 @@ } } ], - "description": "Bad.should_be_immutable_5 (tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#47) should be immutable \n", - "markdown": "[Bad.should_be_immutable_5](tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#L47) should be immutable \n", - "first_markdown_element": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#L47", + "description": "Bad.should_be_immutable_5 (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#47) should be immutable \n", + "markdown": "[Bad.should_be_immutable_5](tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L47) should be immutable \n", + "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L47", "id": "42d50245236163ceca90dea732165e65c2155934b149a5a1a5c51bddc0b5b02a", "check": "immutable-states", "impact": "Optimization", @@ -75,9 +75,9 @@ "source_mapping": { "start": 940, "length": 40, - "filename_relative": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "is_dependency": false, "lines": [ 44 @@ -92,9 +92,9 @@ "source_mapping": { "start": 718, "length": 539, - "filename_relative": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -126,9 +126,9 @@ } } ], - "description": "Bad.should_be_immutable_2 (tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#44) should be immutable \n", - "markdown": "[Bad.should_be_immutable_2](tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#L44) should be immutable \n", - "first_markdown_element": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#L44", + "description": "Bad.should_be_immutable_2 (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#44) should be immutable \n", + "markdown": "[Bad.should_be_immutable_2](tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L44) should be immutable \n", + "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L44", "id": "70d57aa51dda92c28444a466db8567fa783c85d484259aa5eee2ebc63f97a200", "check": "immutable-states", "impact": "Optimization", @@ -142,9 +142,9 @@ "source_mapping": { "start": 1038, "length": 33, - "filename_relative": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "is_dependency": false, "lines": [ 46 @@ -159,9 +159,9 @@ "source_mapping": { "start": 718, "length": 539, - "filename_relative": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -193,9 +193,9 @@ } } ], - "description": "Bad.should_be_immutable_4 (tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#46) should be immutable \n", - "markdown": "[Bad.should_be_immutable_4](tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#L46) should be immutable \n", - "first_markdown_element": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#L46", + "description": "Bad.should_be_immutable_4 (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#46) should be immutable \n", + "markdown": "[Bad.should_be_immutable_4](tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L46) should be immutable \n", + "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L46", "id": "a26d6df4087ac010928bc4bd18aa70ac58a28e584b1288e348d9c255473c300d", "check": "immutable-states", "impact": "Optimization", @@ -209,9 +209,9 @@ "source_mapping": { "start": 894, "length": 40, - "filename_relative": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "is_dependency": false, "lines": [ 43 @@ -226,9 +226,9 @@ "source_mapping": { "start": 718, "length": 539, - "filename_relative": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -260,9 +260,9 @@ } } ], - "description": "Bad.should_be_immutable (tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#43) should be immutable \n", - "markdown": "[Bad.should_be_immutable](tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#L43) should be immutable \n", - "first_markdown_element": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#L43", + "description": "Bad.should_be_immutable (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#43) should be immutable \n", + "markdown": "[Bad.should_be_immutable](tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L43) should be immutable \n", + "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L43", "id": "b163d277f544f7f05ed4bcddda61e444be893e65ba0469688abd7b401a1db222", "check": "immutable-states", "impact": "Optimization", @@ -276,9 +276,9 @@ "source_mapping": { "start": 986, "length": 46, - "filename_relative": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "is_dependency": false, "lines": [ 45 @@ -293,9 +293,9 @@ "source_mapping": { "start": 718, "length": 539, - "filename_relative": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -327,9 +327,9 @@ } } ], - "description": "Bad.should_be_immutable_3 (tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#45) should be immutable \n", - "markdown": "[Bad.should_be_immutable_3](tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#L45) should be immutable \n", - "first_markdown_element": "tests/detectors/immutable-states/0.6.11/immut_state_variables.sol#L45", + "description": "Bad.should_be_immutable_3 (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#45) should be immutable \n", + "markdown": "[Bad.should_be_immutable_3](tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L45) should be immutable \n", + "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L45", "id": "f19f7a22a6f17ffd8b5c29021226388aab7548f996b686a8e0b2bc861f72d447", "check": "immutable-states", "impact": "Optimization", diff --git a/tests/detectors/immutable-states/0.7.6/immut_state_variables.sol b/tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol similarity index 100% rename from tests/detectors/immutable-states/0.7.6/immut_state_variables.sol rename to tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol diff --git a/tests/detectors/immutable-states/0.7.6/immut_state_variables.sol.0.7.6.CouldBeImmutable.json b/tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol.0.7.6.CouldBeImmutable.json similarity index 70% rename from tests/detectors/immutable-states/0.7.6/immut_state_variables.sol.0.7.6.CouldBeImmutable.json rename to tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol.0.7.6.CouldBeImmutable.json index 40c8b1368..11cfe3e5e 100644 --- a/tests/detectors/immutable-states/0.7.6/immut_state_variables.sol.0.7.6.CouldBeImmutable.json +++ b/tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol.0.7.6.CouldBeImmutable.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1077, "length": 26, - "filename_relative": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "is_dependency": false, "lines": [ 47 @@ -25,9 +25,9 @@ "source_mapping": { "start": 718, "length": 531, - "filename_relative": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -58,9 +58,9 @@ } } ], - "description": "Bad.should_be_immutable_5 (tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#47) should be immutable \n", - "markdown": "[Bad.should_be_immutable_5](tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#L47) should be immutable \n", - "first_markdown_element": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#L47", + "description": "Bad.should_be_immutable_5 (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#47) should be immutable \n", + "markdown": "[Bad.should_be_immutable_5](tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L47) should be immutable \n", + "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L47", "id": "42d50245236163ceca90dea732165e65c2155934b149a5a1a5c51bddc0b5b02a", "check": "immutable-states", "impact": "Optimization", @@ -74,9 +74,9 @@ "source_mapping": { "start": 940, "length": 40, - "filename_relative": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "is_dependency": false, "lines": [ 44 @@ -91,9 +91,9 @@ "source_mapping": { "start": 718, "length": 531, - "filename_relative": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -124,9 +124,9 @@ } } ], - "description": "Bad.should_be_immutable_2 (tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#44) should be immutable \n", - "markdown": "[Bad.should_be_immutable_2](tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#L44) should be immutable \n", - "first_markdown_element": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#L44", + "description": "Bad.should_be_immutable_2 (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#44) should be immutable \n", + "markdown": "[Bad.should_be_immutable_2](tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L44) should be immutable \n", + "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L44", "id": "70d57aa51dda92c28444a466db8567fa783c85d484259aa5eee2ebc63f97a200", "check": "immutable-states", "impact": "Optimization", @@ -140,9 +140,9 @@ "source_mapping": { "start": 1038, "length": 33, - "filename_relative": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "is_dependency": false, "lines": [ 46 @@ -157,9 +157,9 @@ "source_mapping": { "start": 718, "length": 531, - "filename_relative": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -190,9 +190,9 @@ } } ], - "description": "Bad.should_be_immutable_4 (tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#46) should be immutable \n", - "markdown": "[Bad.should_be_immutable_4](tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#L46) should be immutable \n", - "first_markdown_element": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#L46", + "description": "Bad.should_be_immutable_4 (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#46) should be immutable \n", + "markdown": "[Bad.should_be_immutable_4](tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L46) should be immutable \n", + "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L46", "id": "a26d6df4087ac010928bc4bd18aa70ac58a28e584b1288e348d9c255473c300d", "check": "immutable-states", "impact": "Optimization", @@ -206,9 +206,9 @@ "source_mapping": { "start": 894, "length": 40, - "filename_relative": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "is_dependency": false, "lines": [ 43 @@ -223,9 +223,9 @@ "source_mapping": { "start": 718, "length": 531, - "filename_relative": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -256,9 +256,9 @@ } } ], - "description": "Bad.should_be_immutable (tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#43) should be immutable \n", - "markdown": "[Bad.should_be_immutable](tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#L43) should be immutable \n", - "first_markdown_element": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#L43", + "description": "Bad.should_be_immutable (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#43) should be immutable \n", + "markdown": "[Bad.should_be_immutable](tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L43) should be immutable \n", + "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L43", "id": "b163d277f544f7f05ed4bcddda61e444be893e65ba0469688abd7b401a1db222", "check": "immutable-states", "impact": "Optimization", @@ -272,9 +272,9 @@ "source_mapping": { "start": 986, "length": 46, - "filename_relative": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "is_dependency": false, "lines": [ 45 @@ -289,9 +289,9 @@ "source_mapping": { "start": 718, "length": 531, - "filename_relative": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -322,9 +322,9 @@ } } ], - "description": "Bad.should_be_immutable_3 (tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#45) should be immutable \n", - "markdown": "[Bad.should_be_immutable_3](tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#L45) should be immutable \n", - "first_markdown_element": "tests/detectors/immutable-states/0.7.6/immut_state_variables.sol#L45", + "description": "Bad.should_be_immutable_3 (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#45) should be immutable \n", + "markdown": "[Bad.should_be_immutable_3](tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L45) should be immutable \n", + "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L45", "id": "f19f7a22a6f17ffd8b5c29021226388aab7548f996b686a8e0b2bc861f72d447", "check": "immutable-states", "impact": "Optimization", diff --git a/tests/detectors/immutable-states/0.8.0/immut_state_variables.sol b/tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol similarity index 100% rename from tests/detectors/immutable-states/0.8.0/immut_state_variables.sol rename to tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol diff --git a/tests/detectors/immutable-states/0.8.0/immut_state_variables.sol.0.8.0.CouldBeImmutable.json b/tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol.0.8.0.CouldBeImmutable.json similarity index 71% rename from tests/detectors/immutable-states/0.8.0/immut_state_variables.sol.0.8.0.CouldBeImmutable.json rename to tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol.0.8.0.CouldBeImmutable.json index 58d26f9bc..31fd3b1be 100644 --- a/tests/detectors/immutable-states/0.8.0/immut_state_variables.sol.0.8.0.CouldBeImmutable.json +++ b/tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol.0.8.0.CouldBeImmutable.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1038, "length": 26, - "filename_relative": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "is_dependency": false, "lines": [ 46 @@ -25,9 +25,9 @@ "source_mapping": { "start": 718, "length": 577, - "filename_relative": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -60,9 +60,9 @@ } } ], - "description": "Bad.should_be_immutable_5 (tests/detectors/immutable-states/0.8.0/immut_state_variables.sol#46) should be immutable \n", - "markdown": "[Bad.should_be_immutable_5](tests/detectors/immutable-states/0.8.0/immut_state_variables.sol#L46) should be immutable \n", - "first_markdown_element": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol#L46", + "description": "Bad.should_be_immutable_5 (tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#46) should be immutable \n", + "markdown": "[Bad.should_be_immutable_5](tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L46) should be immutable \n", + "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L46", "id": "42d50245236163ceca90dea732165e65c2155934b149a5a1a5c51bddc0b5b02a", "check": "immutable-states", "impact": "Optimization", @@ -76,9 +76,9 @@ "source_mapping": { "start": 940, "length": 40, - "filename_relative": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "is_dependency": false, "lines": [ 44 @@ -93,9 +93,9 @@ "source_mapping": { "start": 718, "length": 577, - "filename_relative": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -128,9 +128,9 @@ } } ], - "description": "Bad.should_be_immutable_2 (tests/detectors/immutable-states/0.8.0/immut_state_variables.sol#44) should be immutable \n", - "markdown": "[Bad.should_be_immutable_2](tests/detectors/immutable-states/0.8.0/immut_state_variables.sol#L44) should be immutable \n", - "first_markdown_element": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol#L44", + "description": "Bad.should_be_immutable_2 (tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#44) should be immutable \n", + "markdown": "[Bad.should_be_immutable_2](tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L44) should be immutable \n", + "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L44", "id": "70d57aa51dda92c28444a466db8567fa783c85d484259aa5eee2ebc63f97a200", "check": "immutable-states", "impact": "Optimization", @@ -144,9 +144,9 @@ "source_mapping": { "start": 894, "length": 40, - "filename_relative": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "is_dependency": false, "lines": [ 43 @@ -161,9 +161,9 @@ "source_mapping": { "start": 718, "length": 577, - "filename_relative": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -196,9 +196,9 @@ } } ], - "description": "Bad.should_be_immutable (tests/detectors/immutable-states/0.8.0/immut_state_variables.sol#43) should be immutable \n", - "markdown": "[Bad.should_be_immutable](tests/detectors/immutable-states/0.8.0/immut_state_variables.sol#L43) should be immutable \n", - "first_markdown_element": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol#L43", + "description": "Bad.should_be_immutable (tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#43) should be immutable \n", + "markdown": "[Bad.should_be_immutable](tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L43) should be immutable \n", + "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L43", "id": "b163d277f544f7f05ed4bcddda61e444be893e65ba0469688abd7b401a1db222", "check": "immutable-states", "impact": "Optimization", @@ -212,9 +212,9 @@ "source_mapping": { "start": 986, "length": 46, - "filename_relative": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "is_dependency": false, "lines": [ 45 @@ -229,9 +229,9 @@ "source_mapping": { "start": 718, "length": 577, - "filename_relative": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", "is_dependency": false, "lines": [ 37, @@ -264,9 +264,9 @@ } } ], - "description": "Bad.should_be_immutable_3 (tests/detectors/immutable-states/0.8.0/immut_state_variables.sol#45) should be immutable \n", - "markdown": "[Bad.should_be_immutable_3](tests/detectors/immutable-states/0.8.0/immut_state_variables.sol#L45) should be immutable \n", - "first_markdown_element": "tests/detectors/immutable-states/0.8.0/immut_state_variables.sol#L45", + "description": "Bad.should_be_immutable_3 (tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#45) should be immutable \n", + "markdown": "[Bad.should_be_immutable_3](tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L45) should be immutable \n", + "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L45", "id": "f19f7a22a6f17ffd8b5c29021226388aab7548f996b686a8e0b2bc861f72d447", "check": "immutable-states", "impact": "Optimization", diff --git a/tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol b/tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol similarity index 100% rename from tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol rename to tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol diff --git a/tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol.0.4.25.IncorrectStrictEquality.json b/tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol.0.4.25.IncorrectStrictEquality.json similarity index 81% rename from tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol.0.4.25.IncorrectStrictEquality.json rename to tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol.0.4.25.IncorrectStrictEquality.json index 41b0206b7..fcf5e67b7 100644 --- a/tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol.0.4.25.IncorrectStrictEquality.json +++ b/tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol.0.4.25.IncorrectStrictEquality.json @@ -4,19 +4,19 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad3", "source_mapping": { - "start": 648, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 1056, + "length": 124, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 47, + 48, + 49, + 50 ], "starting_column": 5, "ending_column": 6 @@ -28,9 +28,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -106,41 +106,41 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad3()" } }, { "type": "node", - "name": "require(bool)(address(address(this)).balance == 10000000000000000000)", + "name": "require(bool)(10000000000000000000 == address(this).balance)", "source_mapping": { - "start": 683, - "length": 51, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 1091, + "length": 42, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 33 + 48 ], "starting_column": 9, - "ending_column": 60 + "ending_column": 51 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad3", "source_mapping": { - "start": 648, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 1056, + "length": 124, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 47, + 48, + 49, + 50 ], "starting_column": 5, "ending_column": 6 @@ -152,9 +152,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -230,16 +230,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad3()" } } } } ], - "description": "TestContractBalance.bad0() (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#32-35) uses a dangerous strict equality:\n\t- require(bool)(address(address(this)).balance == 10000000000000000000) (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#33)\n", - "markdown": "[TestContractBalance.bad0()](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L32-L35) uses a dangerous strict equality:\n\t- [require(bool)(address(address(this)).balance == 10000000000000000000)](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L33)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L32-L35", - "id": "126f956451cb4dcbdac6edb66148b23eabc789962d4fa3a8bd22a682c6c5bfd4", + "description": "TestContractBalance.bad3() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#47-50) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(this).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#48)\n", + "markdown": "[TestContractBalance.bad3()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L47-L50) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(this).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L48)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L47-L50", + "id": "123f37fe2d18f3d62f0c6ce71dbefc3034de268bf8c16054a306ecb3e36ad065", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -248,21 +248,19 @@ "elements": [ { "type": "function", - "name": "bad6", + "name": "bad1", "source_mapping": { - "start": 1538, - "length": 179, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 787, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 + 37, + 38, + 39, + 40 ], "starting_column": 5, "ending_column": 6 @@ -274,9 +272,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -352,43 +350,41 @@ "ending_column": 2 } }, - "signature": "bad6()" + "signature": "bad1()" } }, { "type": "node", - "name": "balance == 10000000000000000000", + "name": "require(bool)(10000000000000000000 == address(address(this)).balance)", "source_mapping": { - "start": 1635, - "length": 19, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 822, + "length": 51, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 68 + 38 ], - "starting_column": 13, - "ending_column": 32 + "starting_column": 9, + "ending_column": 60 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad6", + "name": "bad1", "source_mapping": { - "start": 1538, - "length": 179, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 787, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 + 37, + 38, + 39, + 40 ], "starting_column": 5, "ending_column": 6 @@ -400,9 +396,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -478,16 +474,16 @@ "ending_column": 2 } }, - "signature": "bad6()" + "signature": "bad1()" } } } } ], - "description": "TestContractBalance.bad6() (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#66-71) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#68)\n", - "markdown": "[TestContractBalance.bad6()](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L66-L71) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L68)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L66-L71", - "id": "2cc246058513fdfe2178c6e9b552bcae42d3c29bc104c3b95734323aeda57396", + "description": "TestContractBalance.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#37-40) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(address(this)).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#38)\n", + "markdown": "[TestContractBalance.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L37-L40) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(address(this)).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L38)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L37-L40", + "id": "33dd2bddb09b7d20544ca585d3adae4f9228b100250216d0c7864a8076898bbd", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -496,21 +492,18 @@ "elements": [ { "type": "function", - "name": "bad5", + "name": "bad1", "source_mapping": { - "start": 1362, - "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 511, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 + 25, + 26, + 27 ], "starting_column": 5, "ending_column": 6 @@ -518,125 +511,73 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestContractBalance", + "name": "ERC20TestBalance", "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 165, + "length": 445, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "bad5()" + "signature": "bad1(ERC20Variable)" } }, { "type": "node", - "name": "10000000000000000000 == balance", + "name": "require(bool)(erc.balanceOf(msg.sender) == 10)", "source_mapping": { - "start": 1450, - "length": 19, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 562, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 61 + 26 ], - "starting_column": 13, - "ending_column": 32 + "starting_column": 9, + "ending_column": 48 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad1", "source_mapping": { - "start": 1362, - "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 511, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 + 25, + 26, + 27 ], "starting_column": 5, "ending_column": 6 @@ -644,342 +585,49 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestContractBalance", + "name": "ERC20TestBalance", "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 165, + "length": 445, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad5()" - } - } - } - } - ], - "description": "TestContractBalance.bad5() (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#59-64) uses a dangerous strict equality:\n\t- 10000000000000000000 == balance (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#61)\n", - "markdown": "[TestContractBalance.bad5()](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L59-L64) uses a dangerous strict equality:\n\t- [10000000000000000000 == balance](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L61)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L59-L64", - "id": "781645f52e6eb4c7a0e38a58537907a6421ded2703ae8b18be68251a02901e7a", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1056, - "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "require(bool)(10000000000000000000 == address(this).balance)", - "source_mapping": { - "start": 1091, - "length": 42, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1056, - "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad1(ERC20Variable)" } } } } ], - "description": "TestContractBalance.bad3() (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#47-50) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(this).balance) (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#48)\n", - "markdown": "[TestContractBalance.bad3()](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L47-L50) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(this).balance)](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L48)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L47-L50", - "id": "8f08cca8ee4d2d51c2bf5717f78aa1dd13c6499e430a43b89e5309f20920b11d", + "description": "ERC20TestBalance.bad1(ERC20Variable) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#25-27) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(msg.sender) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#26)\n", + "markdown": "[ERC20TestBalance.bad1(ERC20Variable)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L25-L27) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(msg.sender) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L25-L27", + "id": "4a9b012b6f9762d5edbdfd01c8160a88c6df6773229601c6d55d90b7c7aa2cdd", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -988,18 +636,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad0", "source_mapping": { - "start": 3072, - "length": 67, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 2935, + "length": 59, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 131, - 132, - 133 + 123, + 124, + 125 ], "starting_column": 5, "ending_column": 6 @@ -1011,9 +659,9 @@ "source_mapping": { "start": 2368, "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 99, @@ -1058,40 +706,40 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad0()" } }, { "type": "node", - "name": "require(bool)(block.number == 0)", + "name": "require(bool)(now == 0)", "source_mapping": { - "start": 3106, - "length": 26, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 2969, + "length": 18, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 132 + 124 ], "starting_column": 9, - "ending_column": 35 + "ending_column": 27 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad0", "source_mapping": { - "start": 3072, - "length": 67, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 2935, + "length": 59, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 131, - 132, - 133 + 123, + 124, + 125 ], "starting_column": 5, "ending_column": 6 @@ -1103,9 +751,9 @@ "source_mapping": { "start": 2368, "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 99, @@ -1150,16 +798,264 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad0()" + } + } + } + } + ], + "description": "TestSolidityKeyword.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#123-125) uses a dangerous strict equality:\n\t- require(bool)(now == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#124)\n", + "markdown": "[TestSolidityKeyword.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L123-L125) uses a dangerous strict equality:\n\t- [require(bool)(now == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L124)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L123-L125", + "id": "5fcec0bbb23ad1151dc4a805c21795e3dad5e7863008cb2efd460998b23b60d1", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "bad4", + "source_mapping": { + "start": 1186, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 52, + 53, + 54, + 55, + 56, + 57 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TestContractBalance", + "source_mapping": { + "start": 612, + "length": 1754, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad4()" + } + }, + { + "type": "node", + "name": "balance == 10000000000000000000", + "source_mapping": { + "start": 1274, + "length": 19, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 54 + ], + "starting_column": 13, + "ending_column": 32 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad4", + "source_mapping": { + "start": 1186, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 52, + 53, + 54, + 55, + 56, + 57 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TestContractBalance", + "source_mapping": { + "start": 612, + "length": 1754, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad4()" } } } } ], - "description": "TestSolidityKeyword.bad2() (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#131-133) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#132)\n", - "markdown": "[TestSolidityKeyword.bad2()](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L131-L133) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L132)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L131-L133", - "id": "a65d9228ffbebf6de7f455df00a0de91ee0e23c7f13a306bdc90e16e69a043b3", + "description": "TestContractBalance.bad4() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#52-57) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#54)\n", + "markdown": "[TestContractBalance.bad4()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L52-L57) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L54)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L52-L57", + "id": "7a6e65373ac0889b26f7464107e30ff847c4db7fe43999ada2631f51625c46ae", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1168,18 +1064,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 511, - "length": 97, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 404, + "length": 101, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27 + 21, + 22, + 23 ], "starting_column": 5, "ending_column": 6 @@ -1191,9 +1087,9 @@ "source_mapping": { "start": 165, "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 10, @@ -1220,40 +1116,40 @@ "ending_column": 2 } }, - "signature": "bad1(ERC20Variable)" + "signature": "bad0(ERC20Function)" } }, { "type": "node", - "name": "require(bool)(erc.balanceOf(msg.sender) == 10)", + "name": "require(bool)(erc.balanceOf(address(this)) == 10)", "source_mapping": { - "start": 562, - "length": 39, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 455, + "length": 43, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 26 + 22 ], "starting_column": 9, - "ending_column": 48 + "ending_column": 52 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 511, - "length": 97, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 404, + "length": 101, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27 + 21, + 22, + 23 ], "starting_column": 5, "ending_column": 6 @@ -1265,9 +1161,9 @@ "source_mapping": { "start": 165, "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 10, @@ -1294,16 +1190,16 @@ "ending_column": 2 } }, - "signature": "bad1(ERC20Variable)" + "signature": "bad0(ERC20Function)" } } } } ], - "description": "ERC20TestBalance.bad1(ERC20Variable) (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#25-27) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(msg.sender) == 10) (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#26)\n", - "markdown": "[ERC20TestBalance.bad1(ERC20Variable)](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L25-L27) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(msg.sender) == 10)](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L26)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L25-L27", - "id": "a962a2c49344b2acce83236c339daa07cce98d240dd8869bb7d8c5e96d412ff0", + "description": "ERC20TestBalance.bad0(ERC20Function) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#21-23) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(address(this)) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#22)\n", + "markdown": "[ERC20TestBalance.bad0(ERC20Function)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L21-L23) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(address(this)) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L21-L23", + "id": "8bdd45363c31403d82b020ba5823c89c6bc3a54c1b96f718fdb5d9d218a675ac", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1312,18 +1208,18 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 2935, - "length": 59, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 3000, + "length": 66, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 123, - 124, - 125 + 127, + 128, + 129 ], "starting_column": 5, "ending_column": 6 @@ -1335,9 +1231,9 @@ "source_mapping": { "start": 2368, "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 99, @@ -1382,40 +1278,253 @@ "ending_column": 2 } }, + "signature": "bad1()" + } + }, + { + "type": "node", + "name": "require(bool)(block.number == 0)", + "source_mapping": { + "start": 3034, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 128 + ], + "starting_column": 9, + "ending_column": 34 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 3000, + "length": 66, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 127, + 128, + 129 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TestSolidityKeyword", + "source_mapping": { + "start": 2368, + "length": 774, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad1()" + } + } + } + } + ], + "description": "TestSolidityKeyword.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#127-129) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#128)\n", + "markdown": "[TestSolidityKeyword.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L127-L129) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L128)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L127-L129", + "id": "8d31f3e01926106c2993f7184e5f73efd00cac620fa4143531eec830e143137d", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "bad0", + "source_mapping": { + "start": 648, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 32, + 33, + 34, + 35 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TestContractBalance", + "source_mapping": { + "start": 612, + "length": 1754, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97 + ], + "starting_column": 1, + "ending_column": 2 + } + }, "signature": "bad0()" } }, { "type": "node", - "name": "require(bool)(now == 0)", + "name": "require(bool)(address(address(this)).balance == 10000000000000000000)", "source_mapping": { - "start": 2969, - "length": 18, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 683, + "length": 51, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 124 + 33 ], "starting_column": 9, - "ending_column": 27 + "ending_column": 60 }, "type_specific_fields": { "parent": { "type": "function", "name": "bad0", "source_mapping": { - "start": 2935, - "length": 59, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 648, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 123, - 124, - 125 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -1423,52 +1532,83 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestSolidityKeyword", + "name": "TestContractBalance", "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 612, + "length": 1754, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97 ], "starting_column": 1, "ending_column": 2 @@ -1480,10 +1620,10 @@ } } ], - "description": "TestSolidityKeyword.bad0() (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#123-125) uses a dangerous strict equality:\n\t- require(bool)(now == 0) (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#124)\n", - "markdown": "[TestSolidityKeyword.bad0()](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L123-L125) uses a dangerous strict equality:\n\t- [require(bool)(now == 0)](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L124)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L123-L125", - "id": "abcb113fde0b01cb4a653968a235bf5f3ee70a6f97ae3fa68c3a161c8ca5f6b8", + "description": "TestContractBalance.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#32-35) uses a dangerous strict equality:\n\t- require(bool)(address(address(this)).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#33)\n", + "markdown": "[TestContractBalance.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L32-L35) uses a dangerous strict equality:\n\t- [require(bool)(address(address(this)).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L33)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L32-L35", + "id": "90e38f3c11943fb117be8c79d5c12196aab5990503f859c8e133d5318e2f5c78", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1492,19 +1632,21 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad5", "source_mapping": { - "start": 926, - "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 1362, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 42, - 43, - 44, - 45 + 59, + 60, + 61, + 62, + 63, + 64 ], "starting_column": 5, "ending_column": 6 @@ -1516,9 +1658,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1594,41 +1736,43 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad5()" } }, { "type": "node", - "name": "require(bool)(address(this).balance == 10000000000000000000)", + "name": "10000000000000000000 == balance", "source_mapping": { - "start": 961, - "length": 42, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 1450, + "length": 19, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 43 + 61 ], - "starting_column": 9, - "ending_column": 51 + "starting_column": 13, + "ending_column": 32 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad5", "source_mapping": { - "start": 926, - "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 1362, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 42, - 43, - 44, - 45 + 59, + 60, + 61, + 62, + 63, + 64 ], "starting_column": 5, "ending_column": 6 @@ -1640,9 +1784,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1718,16 +1862,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad5()" } } } } ], - "description": "TestContractBalance.bad2() (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#42-45) uses a dangerous strict equality:\n\t- require(bool)(address(this).balance == 10000000000000000000) (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#43)\n", - "markdown": "[TestContractBalance.bad2()](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L42-L45) uses a dangerous strict equality:\n\t- [require(bool)(address(this).balance == 10000000000000000000)](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L43)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L42-L45", - "id": "b6c0963403d985cfcd3eda6d43bc2716eaebcd0d936d9a57d35df4adfbb01e46", + "description": "TestContractBalance.bad5() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#59-64) uses a dangerous strict equality:\n\t- 10000000000000000000 == balance (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#61)\n", + "markdown": "[TestContractBalance.bad5()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L59-L64) uses a dangerous strict equality:\n\t- [10000000000000000000 == balance](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L61)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L59-L64", + "id": "99779d65b3b4cea385aa65b1e7bed533bd5301aa04e141c7a38125b32804e736", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1736,21 +1880,21 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad6", "source_mapping": { - "start": 1186, - "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 1538, + "length": 179, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 52, - 53, - 54, - 55, - 56, - 57 + 66, + 67, + 68, + 69, + 70, + 71 ], "starting_column": 5, "ending_column": 6 @@ -1762,9 +1906,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1840,21 +1984,21 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad6()" } }, { "type": "node", "name": "balance == 10000000000000000000", "source_mapping": { - "start": 1274, + "start": 1635, "length": 19, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 54 + 68 ], "starting_column": 13, "ending_column": 32 @@ -1862,21 +2006,21 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad6", "source_mapping": { - "start": 1186, - "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 1538, + "length": 179, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 52, - 53, - 54, - 55, - 56, - 57 + 66, + 67, + 68, + 69, + 70, + 71 ], "starting_column": 5, "ending_column": 6 @@ -1888,9 +2032,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1966,16 +2110,16 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad6()" } } } } ], - "description": "TestContractBalance.bad4() (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#52-57) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#54)\n", - "markdown": "[TestContractBalance.bad4()](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L52-L57) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L54)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L52-L57", - "id": "b7b40be64de7150ba57e0f2b6379c672ee431675bbab8b607a82acdd29338d42", + "description": "TestContractBalance.bad6() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#66-71) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#68)\n", + "markdown": "[TestContractBalance.bad6()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L66-L71) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L68)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L66-L71", + "id": "aef2defcd860257b102e1e07583b2bcd8eb96186e0334d26289d62ef66d94265", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1984,18 +2128,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 3000, - "length": 66, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 3072, + "length": 67, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 127, - 128, - 129 + 131, + 132, + 133 ], "starting_column": 5, "ending_column": 6 @@ -2007,9 +2151,9 @@ "source_mapping": { "start": 2368, "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 99, @@ -2054,40 +2198,40 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad2()" } }, { "type": "node", "name": "require(bool)(block.number == 0)", "source_mapping": { - "start": 3034, - "length": 25, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 3106, + "length": 26, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 128 + 132 ], "starting_column": 9, - "ending_column": 34 + "ending_column": 35 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 3000, - "length": 66, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 3072, + "length": 67, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 127, - 128, - 129 + 131, + 132, + 133 ], "starting_column": 5, "ending_column": 6 @@ -2099,9 +2243,9 @@ "source_mapping": { "start": 2368, "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 99, @@ -2146,160 +2290,16 @@ "ending_column": 2 } }, - "signature": "bad1()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad1() (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#127-129) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#128)\n", - "markdown": "[TestSolidityKeyword.bad1()](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L127-L129) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L128)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L127-L129", - "id": "d17755463242fbfeef570c2504ff13729a74d8633ade693da26127635b145892", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 404, - "length": 101, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 165, - "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(ERC20Function)" - } - }, - { - "type": "node", - "name": "require(bool)(erc.balanceOf(address(this)) == 10)", - "source_mapping": { - "start": 455, - "length": 43, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 404, - "length": 101, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 165, - "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(ERC20Function)" + "signature": "bad2()" } } } } ], - "description": "ERC20TestBalance.bad0(ERC20Function) (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#21-23) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(address(this)) == 10) (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#22)\n", - "markdown": "[ERC20TestBalance.bad0(ERC20Function)](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L21-L23) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(address(this)) == 10)](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L22)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L21-L23", - "id": "d887566c310fa756ee60c8a838f09bf3165adda30dff76b4d8f7bd85f6561610", + "description": "TestSolidityKeyword.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#131-133) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#132)\n", + "markdown": "[TestSolidityKeyword.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L131-L133) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L132)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L131-L133", + "id": "be3fc04691f9a4b06c55b3c98a3968c3e0f03bbaf0fd6fe799aba4487b54ac0e", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -2308,19 +2308,19 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 787, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 926, + "length": 124, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 37, - 38, - 39, - 40 + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -2332,9 +2332,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -2410,41 +2410,41 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad2()" } }, { "type": "node", - "name": "require(bool)(10000000000000000000 == address(address(this)).balance)", + "name": "require(bool)(address(this).balance == 10000000000000000000)", "source_mapping": { - "start": 822, - "length": 51, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 961, + "length": 42, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 38 + 43 ], "starting_column": 9, - "ending_column": 60 + "ending_column": 51 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 787, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "start": 926, + "length": 124, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ - 37, - 38, - 39, - 40 + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -2456,9 +2456,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -2534,16 +2534,16 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad2()" } } } } ], - "description": "TestContractBalance.bad1() (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#37-40) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(address(this)).balance) (tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#38)\n", - "markdown": "[TestContractBalance.bad1()](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L37-L40) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(address(this)).balance)](tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L38)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.4.25/incorrect_equality.sol#L37-L40", - "id": "de67d7a1010855e47722500e73f1156c1c2c222414e661624300ea395102af1a", + "description": "TestContractBalance.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#42-45) uses a dangerous strict equality:\n\t- require(bool)(address(this).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#43)\n", + "markdown": "[TestContractBalance.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L42-L45) uses a dangerous strict equality:\n\t- [require(bool)(address(this).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L43)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L42-L45", + "id": "ca734ebf2aff837ece445cea2cc8441a7a2a73b15bbb5cb68c6bde45ee52bea1", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" diff --git a/tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol b/tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol similarity index 100% rename from tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol rename to tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol diff --git a/tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol.0.5.16.IncorrectStrictEquality.json b/tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol.0.5.16.IncorrectStrictEquality.json similarity index 81% rename from tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol.0.5.16.IncorrectStrictEquality.json rename to tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol.0.5.16.IncorrectStrictEquality.json index 00e03818a..08c0c334d 100644 --- a/tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol.0.5.16.IncorrectStrictEquality.json +++ b/tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol.0.5.16.IncorrectStrictEquality.json @@ -4,201 +4,19 @@ "elements": [ { "type": "function", - "name": "bad1", - "source_mapping": { - "start": 3000, - "length": 66, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "require(bool)(block.number == 0)", - "source_mapping": { - "start": 3034, - "length": 25, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 128 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 3000, - "length": 66, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad1() (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#127-129) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#128)\n", - "markdown": "[TestSolidityKeyword.bad1()](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L127-L129) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L128)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L127-L129", - "id": "27fb1eed66075f0883f327ce69bfa39000a4cc6841a39342114cb892a1a0b23b", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad6", + "name": "bad3", "source_mapping": { - "start": 1538, - "length": 179, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 1056, + "length": 124, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 + 47, + 48, + 49, + 50 ], "starting_column": 5, "ending_column": 6 @@ -210,9 +28,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -288,43 +106,41 @@ "ending_column": 2 } }, - "signature": "bad6()" + "signature": "bad3()" } }, { "type": "node", - "name": "balance == 10000000000000000000", + "name": "require(bool)(10000000000000000000 == address(this).balance)", "source_mapping": { - "start": 1635, - "length": 19, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 1091, + "length": 42, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 68 + 48 ], - "starting_column": 13, - "ending_column": 32 + "starting_column": 9, + "ending_column": 51 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad6", + "name": "bad3", "source_mapping": { - "start": 1538, - "length": 179, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 1056, + "length": 124, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 + 47, + 48, + 49, + 50 ], "starting_column": 5, "ending_column": 6 @@ -336,9 +152,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -414,16 +230,16 @@ "ending_column": 2 } }, - "signature": "bad6()" + "signature": "bad3()" } } } } ], - "description": "TestContractBalance.bad6() (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#66-71) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#68)\n", - "markdown": "[TestContractBalance.bad6()](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L66-L71) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L68)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L66-L71", - "id": "280c7848636dd05a32dbdff744714307aa1350aebc6031dd862af9aeb6bdebe3", + "description": "TestContractBalance.bad3() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#47-50) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(this).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#48)\n", + "markdown": "[TestContractBalance.bad3()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L47-L50) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(this).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L48)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L47-L50", + "id": "05ce842aed12884d58a58241f422dbad3b4c14769ffa4ca5930726f2948167a5", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -432,21 +248,19 @@ "elements": [ { "type": "function", - "name": "bad5", + "name": "bad0", "source_mapping": { - "start": 1362, - "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 648, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -458,9 +272,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -536,43 +350,41 @@ "ending_column": 2 } }, - "signature": "bad5()" + "signature": "bad0()" } }, { "type": "node", - "name": "10000000000000000000 == balance", + "name": "require(bool)(address(address(this)).balance == 10000000000000000000)", "source_mapping": { - "start": 1450, - "length": 19, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 683, + "length": 51, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 61 + 33 ], - "starting_column": 13, - "ending_column": 32 + "starting_column": 9, + "ending_column": 60 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad0", "source_mapping": { - "start": 1362, - "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 648, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -584,9 +396,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -662,16 +474,16 @@ "ending_column": 2 } }, - "signature": "bad5()" + "signature": "bad0()" } } } } ], - "description": "TestContractBalance.bad5() (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#59-64) uses a dangerous strict equality:\n\t- 10000000000000000000 == balance (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#61)\n", - "markdown": "[TestContractBalance.bad5()](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L59-L64) uses a dangerous strict equality:\n\t- [10000000000000000000 == balance](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L61)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L59-L64", - "id": "2fddf13889b45374114f11585944ef935efb365935aff518b505f01d4f6c1c97", + "description": "TestContractBalance.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#32-35) uses a dangerous strict equality:\n\t- require(bool)(address(address(this)).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#33)\n", + "markdown": "[TestContractBalance.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L32-L35) uses a dangerous strict equality:\n\t- [require(bool)(address(address(this)).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L33)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L32-L35", + "id": "29c85226ec025437d4d2ff95e6bc6d934757fc5d3c834873afda9c38a5653756", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -682,161 +494,17 @@ "type": "function", "name": "bad1", "source_mapping": { - "start": 511, - "length": 97, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 165, - "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(ERC20Variable)" - } - }, - { - "type": "node", - "name": "require(bool)(erc.balanceOf(msg.sender) == 10)", - "source_mapping": { - "start": 562, - "length": 39, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 511, - "length": 97, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 165, - "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(ERC20Variable)" - } - } - } - } - ], - "description": "ERC20TestBalance.bad1(ERC20Variable) (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#25-27) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(msg.sender) == 10) (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#26)\n", - "markdown": "[ERC20TestBalance.bad1(ERC20Variable)](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L25-L27) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(msg.sender) == 10)](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L26)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L25-L27", - "id": "43d01e301a135af4627eded0afd320a3cc986834dcd0c77ccec4d85e7ac05b57", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 926, - "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 787, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 42, - 43, - 44, - 45 + 37, + 38, + 39, + 40 ], "starting_column": 5, "ending_column": 6 @@ -848,9 +516,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -926,41 +594,41 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad1()" } }, { "type": "node", - "name": "require(bool)(address(this).balance == 10000000000000000000)", + "name": "require(bool)(10000000000000000000 == address(address(this)).balance)", "source_mapping": { - "start": 961, - "length": 42, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 822, + "length": 51, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 43 + 38 ], "starting_column": 9, - "ending_column": 51 + "ending_column": 60 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad1", "source_mapping": { - "start": 926, - "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 787, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 42, - 43, - 44, - 45 + 37, + 38, + 39, + 40 ], "starting_column": 5, "ending_column": 6 @@ -972,9 +640,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1050,16 +718,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad1()" } } } } ], - "description": "TestContractBalance.bad2() (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#42-45) uses a dangerous strict equality:\n\t- require(bool)(address(this).balance == 10000000000000000000) (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#43)\n", - "markdown": "[TestContractBalance.bad2()](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L42-L45) uses a dangerous strict equality:\n\t- [require(bool)(address(this).balance == 10000000000000000000)](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L43)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L42-L45", - "id": "7d0195ec395960b56eb4249c96481aec69f59da34ea15128734721ff1844d469", + "description": "TestContractBalance.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#37-40) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(address(this)).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#38)\n", + "markdown": "[TestContractBalance.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L37-L40) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(address(this)).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L38)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L37-L40", + "id": "352f19146eb75c68f7cb8e05aaaf84a5f2d13e4c03af43e6bcb79babb6411231", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1068,21 +736,21 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad6", "source_mapping": { - "start": 1186, - "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 1538, + "length": 179, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 52, - 53, - 54, - 55, - 56, - 57 + 66, + 67, + 68, + 69, + 70, + 71 ], "starting_column": 5, "ending_column": 6 @@ -1094,9 +762,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1172,21 +840,21 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad6()" } }, { "type": "node", "name": "balance == 10000000000000000000", "source_mapping": { - "start": 1274, + "start": 1635, "length": 19, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 54 + 68 ], "starting_column": 13, "ending_column": 32 @@ -1194,21 +862,21 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad6", "source_mapping": { - "start": 1186, - "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 1538, + "length": 179, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 52, - 53, - 54, - 55, - 56, - 57 + 66, + 67, + 68, + 69, + 70, + 71 ], "starting_column": 5, "ending_column": 6 @@ -1220,9 +888,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1298,16 +966,16 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad6()" } } } } ], - "description": "TestContractBalance.bad4() (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#52-57) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#54)\n", - "markdown": "[TestContractBalance.bad4()](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L52-L57) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L54)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L52-L57", - "id": "7d7ebf1738fffe12204ace79edbf67edb9962c03af58dbb9fa9c133d711eaa38", + "description": "TestContractBalance.bad6() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#66-71) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#68)\n", + "markdown": "[TestContractBalance.bad6()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L66-L71) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L68)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L66-L71", + "id": "4285173d33e2e37daddea7c9cb3def32e8b038d9040669bc21a8a8e1e50e982a", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1316,18 +984,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad1", "source_mapping": { - "start": 3072, - "length": 67, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 511, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 131, - 132, - 133 + 25, + 26, + 27 ], "starting_column": 5, "ending_column": 6 @@ -1335,91 +1003,73 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestSolidityKeyword", + "name": "ERC20TestBalance", "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 165, + "length": 445, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad1(ERC20Variable)" } }, { "type": "node", - "name": "require(bool)(block.number == 0)", + "name": "require(bool)(erc.balanceOf(msg.sender) == 10)", "source_mapping": { - "start": 3106, - "length": 26, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 562, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 132 + 26 ], "starting_column": 9, - "ending_column": 35 + "ending_column": 48 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad1", "source_mapping": { - "start": 3072, - "length": 67, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 511, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 131, - 132, - 133 + 25, + 26, + 27 ], "starting_column": 5, "ending_column": 6 @@ -1427,67 +1077,49 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestSolidityKeyword", + "name": "ERC20TestBalance", "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 165, + "length": 445, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad1(ERC20Variable)" } } } } ], - "description": "TestSolidityKeyword.bad2() (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#131-133) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#132)\n", - "markdown": "[TestSolidityKeyword.bad2()](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L131-L133) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L132)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L131-L133", - "id": "9adfb849a88f90efbe4e42ae4daea709e51db6af3ae0a8bb2427d8053a832d04", + "description": "ERC20TestBalance.bad1(ERC20Variable) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#25-27) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(msg.sender) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#26)\n", + "markdown": "[ERC20TestBalance.bad1(ERC20Variable)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L25-L27) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(msg.sender) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L25-L27", + "id": "44c65a790eee93eb2653c6d9f7c1c8c6d9ef4e4264408dc30d5b6a938873cf5e", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1496,18 +1128,21 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad5", "source_mapping": { - "start": 2935, - "length": 59, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 1362, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 123, - 124, - 125 + 59, + 60, + 61, + 62, + 63, + 64 ], "starting_column": 5, "ending_column": 6 @@ -1515,91 +1150,125 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestSolidityKeyword", + "name": "TestContractBalance", "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 612, + "length": 1754, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad5()" } }, { "type": "node", - "name": "require(bool)(now == 0)", + "name": "10000000000000000000 == balance", "source_mapping": { - "start": 2969, - "length": 18, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 1450, + "length": 19, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 124 + 61 ], - "starting_column": 9, - "ending_column": 27 + "starting_column": 13, + "ending_column": 32 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad5", "source_mapping": { - "start": 2935, - "length": 59, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 1362, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 123, - 124, - 125 + 59, + 60, + 61, + 62, + 63, + 64 ], "starting_column": 5, "ending_column": 6 @@ -1607,67 +1276,98 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestSolidityKeyword", + "name": "TestContractBalance", "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 612, + "length": 1754, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad5()" } } } } ], - "description": "TestSolidityKeyword.bad0() (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#123-125) uses a dangerous strict equality:\n\t- require(bool)(now == 0) (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#124)\n", - "markdown": "[TestSolidityKeyword.bad0()](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L123-L125) uses a dangerous strict equality:\n\t- [require(bool)(now == 0)](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L124)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L123-L125", - "id": "9f08ac90026e6fb8bcd20c0ab8f967fe7680689841262bb91747d967ac2564c4", + "description": "TestContractBalance.bad5() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#59-64) uses a dangerous strict equality:\n\t- 10000000000000000000 == balance (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#61)\n", + "markdown": "[TestContractBalance.bad5()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L59-L64) uses a dangerous strict equality:\n\t- [10000000000000000000 == balance](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L61)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L59-L64", + "id": "51ece6317db49c0895eef868169b4d605bd7ca72db817a1573edae815d98e71e", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1676,19 +1376,21 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 1056, - "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 1186, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50 + 52, + 53, + 54, + 55, + 56, + 57 ], "starting_column": 5, "ending_column": 6 @@ -1700,9 +1402,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1778,41 +1480,43 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad4()" } }, { "type": "node", - "name": "require(bool)(10000000000000000000 == address(this).balance)", + "name": "balance == 10000000000000000000", "source_mapping": { - "start": 1091, - "length": 42, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 1274, + "length": 19, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 48 + 54 ], - "starting_column": 9, - "ending_column": 51 + "starting_column": 13, + "ending_column": 32 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 1056, - "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 1186, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50 + 52, + 53, + 54, + 55, + 56, + 57 ], "starting_column": 5, "ending_column": 6 @@ -1824,9 +1528,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1902,16 +1606,16 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad4()" } } } } ], - "description": "TestContractBalance.bad3() (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#47-50) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(this).balance) (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#48)\n", - "markdown": "[TestContractBalance.bad3()](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L47-L50) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(this).balance)](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L48)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L47-L50", - "id": "a987ef061c48551aeeb83ad7556a7d00d13d4dc5fade167c6dc6d586738bda14", + "description": "TestContractBalance.bad4() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#52-57) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#54)\n", + "markdown": "[TestContractBalance.bad4()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L52-L57) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L54)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L52-L57", + "id": "5d07adb6b1f660d1241d7d9080670f197a09ffc6073d6bcfa5865cc83181708a", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1922,17 +1626,16 @@ "type": "function", "name": "bad1", "source_mapping": { - "start": 787, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 3000, + "length": 66, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 37, - 38, - 39, - 40 + 127, + 128, + 129 ], "starting_column": 5, "ending_column": 6 @@ -1940,83 +1643,52 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestContractBalance", + "name": "TestSolidityKeyword", "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 2368, + "length": 774, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135 ], "starting_column": 1, "ending_column": 2 @@ -2027,36 +1699,35 @@ }, { "type": "node", - "name": "require(bool)(10000000000000000000 == address(address(this)).balance)", + "name": "require(bool)(block.number == 0)", "source_mapping": { - "start": 822, - "length": 51, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 3034, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 38 + 128 ], "starting_column": 9, - "ending_column": 60 + "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", "name": "bad1", "source_mapping": { - "start": 787, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 3000, + "length": 66, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 37, - 38, - 39, - 40 + 127, + 128, + 129 ], "starting_column": 5, "ending_column": 6 @@ -2064,83 +1735,52 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestContractBalance", + "name": "TestSolidityKeyword", "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 2368, + "length": 774, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135 ], "starting_column": 1, "ending_column": 2 @@ -2152,10 +1792,10 @@ } } ], - "description": "TestContractBalance.bad1() (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#37-40) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(address(this)).balance) (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#38)\n", - "markdown": "[TestContractBalance.bad1()](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L37-L40) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(address(this)).balance)](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L38)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L37-L40", - "id": "aee531d35272d761a573246a7f901716f6d1aa6906a0eab19bee4f6f570eb166", + "description": "TestSolidityKeyword.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#127-129) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#128)\n", + "markdown": "[TestSolidityKeyword.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L127-L129) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L128)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L127-L129", + "id": "7c6efda5fe56ba580b299737a41836ed9e39afa559d713d4fffd097d1cf1f889", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -2164,19 +1804,19 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad2", "source_mapping": { - "start": 648, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 926, + "length": 124, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -2188,9 +1828,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -2266,41 +1906,41 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad2()" } }, { "type": "node", - "name": "require(bool)(address(address(this)).balance == 10000000000000000000)", + "name": "require(bool)(address(this).balance == 10000000000000000000)", "source_mapping": { - "start": 683, - "length": 51, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 961, + "length": 42, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 33 + 43 ], "starting_column": 9, - "ending_column": 60 + "ending_column": 51 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad2", "source_mapping": { - "start": 648, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "start": 926, + "length": 124, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -2312,9 +1952,9 @@ "source_mapping": { "start": 612, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -2390,16 +2030,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad2()" } } } } ], - "description": "TestContractBalance.bad0() (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#32-35) uses a dangerous strict equality:\n\t- require(bool)(address(address(this)).balance == 10000000000000000000) (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#33)\n", - "markdown": "[TestContractBalance.bad0()](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L32-L35) uses a dangerous strict equality:\n\t- [require(bool)(address(address(this)).balance == 10000000000000000000)](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L33)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L32-L35", - "id": "d00ea5300293e9fe66a52421f56fbb2e48ba4ba942f1d8845e3c2e5bfbbbe66f", + "description": "TestContractBalance.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#42-45) uses a dangerous strict equality:\n\t- require(bool)(address(this).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#43)\n", + "markdown": "[TestContractBalance.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L42-L45) uses a dangerous strict equality:\n\t- [require(bool)(address(this).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L43)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L42-L45", + "id": "8622833a6a62a400ce901b4bc78815431f921549570de73ba2421375a4b1abae", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -2412,9 +2052,9 @@ "source_mapping": { "start": 404, "length": 101, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 21, @@ -2431,9 +2071,9 @@ "source_mapping": { "start": 165, "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 10, @@ -2469,9 +2109,9 @@ "source_mapping": { "start": 455, "length": 43, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 22 @@ -2486,9 +2126,9 @@ "source_mapping": { "start": 404, "length": 101, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 21, @@ -2505,9 +2145,9 @@ "source_mapping": { "start": 165, "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", "is_dependency": false, "lines": [ 10, @@ -2540,10 +2180,370 @@ } } ], - "description": "ERC20TestBalance.bad0(ERC20Function) (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#21-23) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(address(this)) == 10) (tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#22)\n", - "markdown": "[ERC20TestBalance.bad0(ERC20Function)](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L21-L23) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(address(this)) == 10)](tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L22)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.5.16/incorrect_equality.sol#L21-L23", - "id": "f1b10c19ed186a854e281f6b2f29e08d5da8892045a928b0565355802998088a", + "description": "ERC20TestBalance.bad0(ERC20Function) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#21-23) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(address(this)) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#22)\n", + "markdown": "[ERC20TestBalance.bad0(ERC20Function)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L21-L23) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(address(this)) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L21-L23", + "id": "c1401150abb2f3a3b83eaddd0fee0e89da8c9e96f56c031103654d3fcb6480c5", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "bad0", + "source_mapping": { + "start": 2935, + "length": 59, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 123, + 124, + 125 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TestSolidityKeyword", + "source_mapping": { + "start": 2368, + "length": 774, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad0()" + } + }, + { + "type": "node", + "name": "require(bool)(now == 0)", + "source_mapping": { + "start": 2969, + "length": 18, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 124 + ], + "starting_column": 9, + "ending_column": 27 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad0", + "source_mapping": { + "start": 2935, + "length": 59, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 123, + 124, + 125 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TestSolidityKeyword", + "source_mapping": { + "start": 2368, + "length": 774, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad0()" + } + } + } + } + ], + "description": "TestSolidityKeyword.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#123-125) uses a dangerous strict equality:\n\t- require(bool)(now == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#124)\n", + "markdown": "[TestSolidityKeyword.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L123-L125) uses a dangerous strict equality:\n\t- [require(bool)(now == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L124)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L123-L125", + "id": "c87d2ed05c3b9e133ab1cc40d5414c3b7ee237fd9349b50c57676f52d5055f41", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "bad2", + "source_mapping": { + "start": 3072, + "length": 67, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 131, + 132, + 133 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TestSolidityKeyword", + "source_mapping": { + "start": 2368, + "length": 774, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad2()" + } + }, + { + "type": "node", + "name": "require(bool)(block.number == 0)", + "source_mapping": { + "start": 3106, + "length": 26, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 132 + ], + "starting_column": 9, + "ending_column": 35 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad2", + "source_mapping": { + "start": 3072, + "length": 67, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 131, + 132, + 133 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TestSolidityKeyword", + "source_mapping": { + "start": 2368, + "length": 774, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad2()" + } + } + } + } + ], + "description": "TestSolidityKeyword.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#131-133) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#132)\n", + "markdown": "[TestSolidityKeyword.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L131-L133) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L132)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L131-L133", + "id": "ed3aa653005f54d880adb9c0f742a41005855f1c452f1eb93c4d952eeeedfbc5", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" diff --git a/tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol b/tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol similarity index 100% rename from tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol rename to tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol diff --git a/tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol.0.6.11.IncorrectStrictEquality.json b/tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol.0.6.11.IncorrectStrictEquality.json similarity index 81% rename from tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol.0.6.11.IncorrectStrictEquality.json rename to tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol.0.6.11.IncorrectStrictEquality.json index f75728216..aa217c978 100644 --- a/tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol.0.6.11.IncorrectStrictEquality.json +++ b/tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol.0.6.11.IncorrectStrictEquality.json @@ -4,19 +4,21 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad5", "source_mapping": { - "start": 665, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 1379, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 59, + 60, + 61, + 62, + 63, + 64 ], "starting_column": 5, "ending_column": 6 @@ -28,9 +30,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -106,41 +108,43 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad5()" } }, { "type": "node", - "name": "require(bool)(address(address(this)).balance == 10000000000000000000)", + "name": "10000000000000000000 == balance", "source_mapping": { - "start": 700, - "length": 51, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 1467, + "length": 19, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 33 + 61 ], - "starting_column": 9, - "ending_column": 60 + "starting_column": 13, + "ending_column": 32 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad5", "source_mapping": { - "start": 665, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 1379, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 59, + 60, + 61, + 62, + 63, + 64 ], "starting_column": 5, "ending_column": 6 @@ -152,9 +156,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -230,16 +234,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad5()" } } } } ], - "description": "TestContractBalance.bad0() (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#32-35) uses a dangerous strict equality:\n\t- require(bool)(address(address(this)).balance == 10000000000000000000) (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#33)\n", - "markdown": "[TestContractBalance.bad0()](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L32-L35) uses a dangerous strict equality:\n\t- [require(bool)(address(address(this)).balance == 10000000000000000000)](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L33)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L32-L35", - "id": "20756b1d1c5eb722a3edb44b8c7b2a62ca935e4e1a2491bce50856f7f4cf3f4c", + "description": "TestContractBalance.bad5() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#59-64) uses a dangerous strict equality:\n\t- 10000000000000000000 == balance (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#61)\n", + "markdown": "[TestContractBalance.bad5()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L59-L64) uses a dangerous strict equality:\n\t- [10000000000000000000 == balance](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L61)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L59-L64", + "id": "1e510a2b317178caeb183ec9237ce9b066a622e7564bdfe00368f1d94812b072", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -250,16 +254,16 @@ "type": "function", "name": "bad0", "source_mapping": { - "start": 2952, - "length": 59, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 421, + "length": 101, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 123, - 124, - 125 + 21, + 22, + 23 ], "starting_column": 5, "ending_column": 6 @@ -267,91 +271,73 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestSolidityKeyword", + "name": "ERC20TestBalance", "source_mapping": { - "start": 2385, - "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 182, + "length": 445, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad0(ERC20Function)" } }, { "type": "node", - "name": "require(bool)(now == 0)", + "name": "require(bool)(erc.balanceOf(address(this)) == 10)", "source_mapping": { - "start": 2986, - "length": 18, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 472, + "length": 43, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 124 + 22 ], "starting_column": 9, - "ending_column": 27 + "ending_column": 52 }, "type_specific_fields": { "parent": { "type": "function", "name": "bad0", "source_mapping": { - "start": 2952, - "length": 59, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 421, + "length": 101, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 123, - 124, - 125 + 21, + 22, + 23 ], "starting_column": 5, "ending_column": 6 @@ -359,67 +345,49 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestSolidityKeyword", + "name": "ERC20TestBalance", "source_mapping": { - "start": 2385, - "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 182, + "length": 445, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad0(ERC20Function)" } } } } ], - "description": "TestSolidityKeyword.bad0() (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#123-125) uses a dangerous strict equality:\n\t- require(bool)(now == 0) (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#124)\n", - "markdown": "[TestSolidityKeyword.bad0()](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L123-L125) uses a dangerous strict equality:\n\t- [require(bool)(now == 0)](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L124)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L123-L125", - "id": "24de80ae388956295db544441f5ab9326af42bd4fcb34e232a23af952d7fe333", + "description": "ERC20TestBalance.bad0(ERC20Function) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#21-23) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(address(this)) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#22)\n", + "markdown": "[ERC20TestBalance.bad0(ERC20Function)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L21-L23) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(address(this)) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L21-L23", + "id": "2147be33b046bb4ad215164b5d2d6eece75c761b5d6f1dfa4738c06cb9a3da06", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -432,9 +400,9 @@ "source_mapping": { "start": 1073, "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 47, @@ -452,9 +420,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -539,9 +507,9 @@ "source_mapping": { "start": 1108, "length": 42, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 48 @@ -556,9 +524,9 @@ "source_mapping": { "start": 1073, "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 47, @@ -576,9 +544,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -660,10 +628,10 @@ } } ], - "description": "TestContractBalance.bad3() (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#47-50) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(this).balance) (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#48)\n", - "markdown": "[TestContractBalance.bad3()](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L47-L50) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(this).balance)](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L48)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L47-L50", - "id": "3cf7fef3822d0628cc1f441162960a6753d6cdcad5b8c56c84584dba741e806b", + "description": "TestContractBalance.bad3() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#47-50) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(this).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#48)\n", + "markdown": "[TestContractBalance.bad3()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L47-L50) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(this).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L48)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L47-L50", + "id": "2aefe606d348048339e03786d458d8fa318a4c927379da603438fc43a380d75a", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -672,21 +640,21 @@ "elements": [ { "type": "function", - "name": "bad5", + "name": "bad6", "source_mapping": { - "start": 1379, - "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 1555, + "length": 179, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 + 66, + 67, + 68, + 69, + 70, + 71 ], "starting_column": 5, "ending_column": 6 @@ -698,9 +666,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -776,21 +744,21 @@ "ending_column": 2 } }, - "signature": "bad5()" + "signature": "bad6()" } }, { "type": "node", - "name": "10000000000000000000 == balance", + "name": "balance == 10000000000000000000", "source_mapping": { - "start": 1467, + "start": 1652, "length": 19, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 61 + 68 ], "starting_column": 13, "ending_column": 32 @@ -798,21 +766,21 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad6", "source_mapping": { - "start": 1379, - "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 1555, + "length": 179, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 + 66, + 67, + 68, + 69, + 70, + 71 ], "starting_column": 5, "ending_column": 6 @@ -824,9 +792,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -902,16 +870,16 @@ "ending_column": 2 } }, - "signature": "bad5()" + "signature": "bad6()" } } } } ], - "description": "TestContractBalance.bad5() (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#59-64) uses a dangerous strict equality:\n\t- 10000000000000000000 == balance (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#61)\n", - "markdown": "[TestContractBalance.bad5()](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L59-L64) uses a dangerous strict equality:\n\t- [10000000000000000000 == balance](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L61)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L59-L64", - "id": "3e416561dc117d230bbee97788f5a0ff851da92f1def8fb5d7b94461ee6bfbc0", + "description": "TestContractBalance.bad6() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#66-71) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#68)\n", + "markdown": "[TestContractBalance.bad6()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L66-L71) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L68)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L66-L71", + "id": "71feb4e8fb94d1d8d22e43fa29c5e87973d8c15e195b642758e4a05c35cd0338", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -920,18 +888,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 528, - "length": 97, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 2952, + "length": 59, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27 + 123, + 124, + 125 ], "starting_column": 5, "ending_column": 6 @@ -939,73 +907,91 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "ERC20TestBalance", + "name": "TestSolidityKeyword", "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 2385, + "length": 774, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "bad1(ERC20Variable)" + "signature": "bad0()" } }, { "type": "node", - "name": "require(bool)(erc.balanceOf(msg.sender) == 10)", + "name": "require(bool)(now == 0)", "source_mapping": { - "start": 579, - "length": 39, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 2986, + "length": 18, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 26 + 124 ], "starting_column": 9, - "ending_column": 48 + "ending_column": 27 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 528, - "length": 97, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 2952, + "length": 59, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27 + 123, + 124, + 125 ], "starting_column": 5, "ending_column": 6 @@ -1013,49 +999,67 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "ERC20TestBalance", + "name": "TestSolidityKeyword", "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 2385, + "length": 774, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "bad1(ERC20Variable)" + "signature": "bad0()" } } } } ], - "description": "ERC20TestBalance.bad1(ERC20Variable) (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#25-27) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(msg.sender) == 10) (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#26)\n", - "markdown": "[ERC20TestBalance.bad1(ERC20Variable)](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L25-L27) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(msg.sender) == 10)](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L26)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L25-L27", - "id": "4d1635766db4dc0687873af3c03047d746b770bcce326793c79210ac16a5c824", + "description": "TestSolidityKeyword.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#123-125) uses a dangerous strict equality:\n\t- require(bool)(now == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#124)\n", + "markdown": "[TestSolidityKeyword.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L123-L125) uses a dangerous strict equality:\n\t- [require(bool)(now == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L124)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L123-L125", + "id": "91ff3604b6455240febb920249669ca70f281c04a823f722d446cf9fe06fc5a8", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1068,9 +1072,9 @@ "source_mapping": { "start": 943, "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 42, @@ -1088,9 +1092,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1175,9 +1179,9 @@ "source_mapping": { "start": 978, "length": 42, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 43 @@ -1192,9 +1196,9 @@ "source_mapping": { "start": 943, "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 42, @@ -1212,9 +1216,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1290,16 +1294,160 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad2()" + } + } + } + } + ], + "description": "TestContractBalance.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#42-45) uses a dangerous strict equality:\n\t- require(bool)(address(this).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#43)\n", + "markdown": "[TestContractBalance.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L42-L45) uses a dangerous strict equality:\n\t- [require(bool)(address(this).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L43)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L42-L45", + "id": "a5c23b46b1ab4eb0e5944bf42ac85dff621028f3144f5e64b2db3af51cc5c3af", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 528, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 25, + 26, + 27 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ERC20TestBalance", + "source_mapping": { + "start": 182, + "length": 445, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad1(ERC20Variable)" + } + }, + { + "type": "node", + "name": "require(bool)(erc.balanceOf(msg.sender) == 10)", + "source_mapping": { + "start": 579, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 26 + ], + "starting_column": 9, + "ending_column": 48 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 528, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 25, + 26, + 27 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ERC20TestBalance", + "source_mapping": { + "start": 182, + "length": 445, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad1(ERC20Variable)" } } } } ], - "description": "TestContractBalance.bad2() (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#42-45) uses a dangerous strict equality:\n\t- require(bool)(address(this).balance == 10000000000000000000) (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#43)\n", - "markdown": "[TestContractBalance.bad2()](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L42-L45) uses a dangerous strict equality:\n\t- [require(bool)(address(this).balance == 10000000000000000000)](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L43)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L42-L45", - "id": "50ab6a747d027b81a24ae04b84e6362bd184a5f23080e2af1b6a859ee144f637", + "description": "ERC20TestBalance.bad1(ERC20Variable) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#25-27) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(msg.sender) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#26)\n", + "markdown": "[ERC20TestBalance.bad1(ERC20Variable)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L25-L27) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(msg.sender) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L25-L27", + "id": "a8f80863931a71bb79be323f5312d2b15235f4cf63cf47dedbd3fc3a467b8426", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1312,9 +1460,9 @@ "source_mapping": { "start": 3017, "length": 66, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 127, @@ -1331,9 +1479,9 @@ "source_mapping": { "start": 2385, "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 99, @@ -1387,9 +1535,9 @@ "source_mapping": { "start": 3051, "length": 25, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 128 @@ -1404,9 +1552,9 @@ "source_mapping": { "start": 3017, "length": 66, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 127, @@ -1423,9 +1571,9 @@ "source_mapping": { "start": 2385, "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 99, @@ -1476,10 +1624,10 @@ } } ], - "description": "TestSolidityKeyword.bad1() (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#127-129) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#128)\n", - "markdown": "[TestSolidityKeyword.bad1()](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L127-L129) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L128)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L127-L129", - "id": "60917b5197ecd42e5554643c32624ec6fc2a46bc8da2b3627eddcd68cf2ce9f5", + "description": "TestSolidityKeyword.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#127-129) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#128)\n", + "markdown": "[TestSolidityKeyword.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L127-L129) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L128)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L127-L129", + "id": "c5a137c85131387da43effbf4eb514b58a482c76f58ca9ae0e45a9f4c67f57c6", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1492,9 +1640,9 @@ "source_mapping": { "start": 1203, "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 52, @@ -1514,9 +1662,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1601,9 +1749,9 @@ "source_mapping": { "start": 1291, "length": 19, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 54 @@ -1618,9 +1766,9 @@ "source_mapping": { "start": 1203, "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 52, @@ -1640,9 +1788,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1724,10 +1872,10 @@ } } ], - "description": "TestContractBalance.bad4() (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#52-57) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#54)\n", - "markdown": "[TestContractBalance.bad4()](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L52-L57) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L54)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L52-L57", - "id": "6c7dc22e356974c8446e07ee7f9d6ffe94f7cb1670066eecec7cbcac691cb8c8", + "description": "TestContractBalance.bad4() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#52-57) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#54)\n", + "markdown": "[TestContractBalance.bad4()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L52-L57) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L54)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L52-L57", + "id": "dc0d579cd55024763718830f2e8bcdc2cba6001246385b10e994bb45a6bdcdc4", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1740,261 +1888,15 @@ "source_mapping": { "start": 804, "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 37, 38, - 39, - 40 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "require(bool)(10000000000000000000 == address(address(this)).balance)", - "source_mapping": { - "start": 839, - "length": 51, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 38 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 804, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "TestContractBalance.bad1() (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#37-40) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(address(this)).balance) (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#38)\n", - "markdown": "[TestContractBalance.bad1()](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L37-L40) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(address(this)).balance)](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L38)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L37-L40", - "id": "9363dbd2bb3f41b42351b088f7a973902e04ccae0081e5c99354de90890fe6ab", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad6", - "source_mapping": { - "start": 1555, - "length": 179, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 + 39, + 40 ], "starting_column": 5, "ending_column": 6 @@ -2006,9 +1908,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -2084,43 +1986,41 @@ "ending_column": 2 } }, - "signature": "bad6()" + "signature": "bad1()" } }, { "type": "node", - "name": "balance == 10000000000000000000", + "name": "require(bool)(10000000000000000000 == address(address(this)).balance)", "source_mapping": { - "start": 1652, - "length": 19, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 839, + "length": 51, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 68 + 38 ], - "starting_column": 13, - "ending_column": 32 + "starting_column": 9, + "ending_column": 60 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad6", + "name": "bad1", "source_mapping": { - "start": 1555, - "length": 179, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 804, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 + 37, + 38, + 39, + 40 ], "starting_column": 5, "ending_column": 6 @@ -2132,9 +2032,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -2210,16 +2110,16 @@ "ending_column": 2 } }, - "signature": "bad6()" + "signature": "bad1()" } } } } ], - "description": "TestContractBalance.bad6() (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#66-71) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#68)\n", - "markdown": "[TestContractBalance.bad6()](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L66-L71) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L68)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L66-L71", - "id": "9a6a2aee598cf4c282006337a3b8599c708487d1942e9ddfe3193581cbe1708e", + "description": "TestContractBalance.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#37-40) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(address(this)).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#38)\n", + "markdown": "[TestContractBalance.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L37-L40) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(address(this)).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L38)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L37-L40", + "id": "e4fe545c6832599a35bb50b2d617ee8e7f4565d312535e362a015253ee13fe2e", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -2232,9 +2132,9 @@ "source_mapping": { "start": 3089, "length": 67, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 131, @@ -2251,9 +2151,9 @@ "source_mapping": { "start": 2385, "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 99, @@ -2307,9 +2207,9 @@ "source_mapping": { "start": 3123, "length": 26, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 132 @@ -2324,9 +2224,9 @@ "source_mapping": { "start": 3089, "length": 67, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 131, @@ -2343,9 +2243,9 @@ "source_mapping": { "start": 2385, "length": 774, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ 99, @@ -2396,10 +2296,10 @@ } } ], - "description": "TestSolidityKeyword.bad2() (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#131-133) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#132)\n", - "markdown": "[TestSolidityKeyword.bad2()](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L131-L133) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L132)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L131-L133", - "id": "9efb75e5f6647209e01d4053c1bf76e69bf07d6578864711e2302336f250d72e", + "description": "TestSolidityKeyword.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#131-133) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#132)\n", + "markdown": "[TestSolidityKeyword.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L131-L133) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L132)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L131-L133", + "id": "ec490b5b95549f210fe15cc6df8aeb9c8b78cc71eb3b336cefe602463480ea02", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -2410,16 +2310,17 @@ "type": "function", "name": "bad0", "source_mapping": { - "start": 421, - "length": 101, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 665, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 21, - 22, - 23 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -2427,73 +2328,123 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "ERC20TestBalance", + "name": "TestContractBalance", "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 629, + "length": 1754, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "bad0(ERC20Function)" + "signature": "bad0()" } }, { "type": "node", - "name": "require(bool)(erc.balanceOf(address(this)) == 10)", + "name": "require(bool)(address(address(this)).balance == 10000000000000000000)", "source_mapping": { - "start": 472, - "length": 43, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 700, + "length": 51, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 22 + 33 ], "starting_column": 9, - "ending_column": 52 + "ending_column": 60 }, "type_specific_fields": { "parent": { "type": "function", "name": "bad0", "source_mapping": { - "start": 421, - "length": 101, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 665, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 21, - 22, - 23 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -2501,49 +2452,98 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "ERC20TestBalance", + "name": "TestContractBalance", "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "start": 629, + "length": 1754, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", "is_dependency": false, "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "bad0(ERC20Function)" + "signature": "bad0()" } } } } ], - "description": "ERC20TestBalance.bad0(ERC20Function) (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#21-23) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(address(this)) == 10) (tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#22)\n", - "markdown": "[ERC20TestBalance.bad0(ERC20Function)](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L21-L23) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(address(this)) == 10)](tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L22)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.6.11/incorrect_equality.sol#L21-L23", - "id": "df1ee72930fcaa7dc7a92d390be6007c57953a3392aef588a852373da388d850", + "description": "TestContractBalance.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#32-35) uses a dangerous strict equality:\n\t- require(bool)(address(address(this)).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#33)\n", + "markdown": "[TestContractBalance.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L32-L35) uses a dangerous strict equality:\n\t- [require(bool)(address(address(this)).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L33)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L32-L35", + "id": "fbac3cce622ed841991a9947a59d8077df6ddd5f5250bb2af8a3169eb4204f1b", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" diff --git a/tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol b/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol similarity index 100% rename from tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol rename to tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol diff --git a/tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol.0.7.6.IncorrectStrictEquality.json b/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol.0.7.6.IncorrectStrictEquality.json similarity index 81% rename from tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol.0.7.6.IncorrectStrictEquality.json rename to tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol.0.7.6.IncorrectStrictEquality.json index d4a0fa5aa..ddadd3deb 100644 --- a/tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol.0.7.6.IncorrectStrictEquality.json +++ b/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol.0.7.6.IncorrectStrictEquality.json @@ -6,17 +6,163 @@ "type": "function", "name": "bad1", "source_mapping": { - "start": 804, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 528, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 37, - 38, - 39, - 40 + 25, + 26, + 27 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ERC20TestBalance", + "source_mapping": { + "start": 182, + "length": 445, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad1(ERC20Variable)" + } + }, + { + "type": "node", + "name": "require(bool)(erc.balanceOf(msg.sender) == 10)", + "source_mapping": { + "start": 579, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 26 + ], + "starting_column": 9, + "ending_column": 48 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 528, + "length": 97, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 25, + 26, + 27 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ERC20TestBalance", + "source_mapping": { + "start": 182, + "length": 445, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad1(ERC20Variable)" + } + } + } + } + ], + "description": "ERC20TestBalance.bad1(ERC20Variable) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#25-27) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(msg.sender) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#26)\n", + "markdown": "[ERC20TestBalance.bad1(ERC20Variable)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L25-L27) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(msg.sender) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L25-L27", + "id": "0129e3a960eb5eb0d7bc4f2d6c33fa5ce18ae0704390d3ef9829ce20bcb3d071", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "bad6", + "source_mapping": { + "start": 1555, + "length": 179, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 66, + 67, + 68, + 69, + 70, + 71 ], "starting_column": 5, "ending_column": 6 @@ -28,9 +174,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -106,41 +252,43 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad6()" } }, { "type": "node", - "name": "require(bool)(10000000000000000000 == address(address(this)).balance)", + "name": "balance == 10000000000000000000", "source_mapping": { - "start": 839, - "length": 51, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 1652, + "length": 19, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 38 + 68 ], - "starting_column": 9, - "ending_column": 60 + "starting_column": 13, + "ending_column": 32 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad6", "source_mapping": { - "start": 804, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 1555, + "length": 179, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 37, - 38, - 39, - 40 + 66, + 67, + 68, + 69, + 70, + 71 ], "starting_column": 5, "ending_column": 6 @@ -152,9 +300,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -230,16 +378,16 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad6()" } } } } ], - "description": "TestContractBalance.bad1() (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#37-40) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(address(this)).balance) (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#38)\n", - "markdown": "[TestContractBalance.bad1()](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L37-L40) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(address(this)).balance)](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L38)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L37-L40", - "id": "00429822fd7d6870bca827c11ac6f1f552b243431b3db4a937da8c0c616aabb9", + "description": "TestContractBalance.bad6() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#66-71) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#68)\n", + "markdown": "[TestContractBalance.bad6()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L66-L71) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L68)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L66-L71", + "id": "1701908087786c2d3ca6253022b69a41a3637584ebfbe396e0c682097c24119c", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -248,21 +396,18 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad0", "source_mapping": { - "start": 1203, - "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 421, + "length": 101, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 52, - 53, - 54, - 55, - 56, - 57 + 21, + 22, + 23 ], "starting_column": 5, "ending_column": 6 @@ -270,74 +415,219 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestContractBalance", + "name": "ERC20TestBalance", "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 182, + "length": 445, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad0(ERC20Function)" + } + }, + { + "type": "node", + "name": "require(bool)(erc.balanceOf(address(this)) == 10)", + "source_mapping": { + "start": 472, + "length": 43, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 22 + ], + "starting_column": 9, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad0", + "source_mapping": { + "start": 421, + "length": 101, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 21, + 22, + 23 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ERC20TestBalance", + "source_mapping": { + "start": 182, + "length": 445, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad0(ERC20Function)" + } + } + } + } + ], + "description": "ERC20TestBalance.bad0(ERC20Function) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#21-23) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(address(this)) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#22)\n", + "markdown": "[ERC20TestBalance.bad0(ERC20Function)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L21-L23) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(address(this)) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L21-L23", + "id": "5e030ae824ffc72258ca317b13b88e476010bab843ed560bcf3e91a77e30869e", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 804, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 37, + 38, + 39, + 40 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TestContractBalance", + "source_mapping": { + "start": 629, + "length": 1754, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, 89, 90, 91, @@ -352,43 +642,41 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad1()" } }, { "type": "node", - "name": "balance == 10000000000000000000", + "name": "require(bool)(10000000000000000000 == address(address(this)).balance)", "source_mapping": { - "start": 1291, - "length": 19, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 839, + "length": 51, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 54 + 38 ], - "starting_column": 13, - "ending_column": 32 + "starting_column": 9, + "ending_column": 60 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad1", "source_mapping": { - "start": 1203, - "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 804, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 52, - 53, - 54, - 55, - 56, - 57 + 37, + 38, + 39, + 40 ], "starting_column": 5, "ending_column": 6 @@ -400,9 +688,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -478,16 +766,16 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad1()" } } } } ], - "description": "TestContractBalance.bad4() (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#52-57) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#54)\n", - "markdown": "[TestContractBalance.bad4()](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L52-L57) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L54)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L52-L57", - "id": "03481d21bd25c9db2606e6ac246fbf5a047d5fb094422fe19a5fabf7032e1818", + "description": "TestContractBalance.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#37-40) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(address(this)).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#38)\n", + "markdown": "[TestContractBalance.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L37-L40) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(address(this)).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L38)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L37-L40", + "id": "64d04d8f94ed18470f850eb8696b192e2b2f59dcc751feca4116aa2970ead1ca", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -496,18 +784,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 528, - "length": 97, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 2964, + "length": 71, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27 + 123, + 124, + 125 ], "starting_column": 5, "ending_column": 6 @@ -515,157 +803,13 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "ERC20TestBalance", + "name": "TestSolidityKeyword", "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 2385, + "length": 798, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(ERC20Variable)" - } - }, - { - "type": "node", - "name": "require(bool)(erc.balanceOf(msg.sender) == 10)", - "source_mapping": { - "start": 579, - "length": 39, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 528, - "length": 97, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(ERC20Variable)" - } - } - } - } - ], - "description": "ERC20TestBalance.bad1(ERC20Variable) (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#25-27) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(msg.sender) == 10) (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#26)\n", - "markdown": "[ERC20TestBalance.bad1(ERC20Variable)](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L25-L27) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(msg.sender) == 10)](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L26)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L25-L27", - "id": "22a2bf7ecbe8d0217cce4d0304fc02a45968167dd408ad85ad4bfb0ed5012dd0", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 2964, - "length": 71, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 123, - 124, - 125 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 798, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 99, @@ -719,9 +863,9 @@ "source_mapping": { "start": 2998, "length": 30, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 124 @@ -736,9 +880,9 @@ "source_mapping": { "start": 2964, "length": 71, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 123, @@ -755,9 +899,9 @@ "source_mapping": { "start": 2385, "length": 798, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 99, @@ -808,10 +952,10 @@ } } ], - "description": "TestSolidityKeyword.bad0() (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#123-125) uses a dangerous strict equality:\n\t- require(bool)(block.timestamp == 0) (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#124)\n", - "markdown": "[TestSolidityKeyword.bad0()](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L123-L125) uses a dangerous strict equality:\n\t- [require(bool)(block.timestamp == 0)](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L124)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L123-L125", - "id": "41fcdc7b875eec5595e7d7518953b246ab69a7baac064512fde30b157c0595f2", + "description": "TestSolidityKeyword.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#123-125) uses a dangerous strict equality:\n\t- require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#124)\n", + "markdown": "[TestSolidityKeyword.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L123-L125) uses a dangerous strict equality:\n\t- [require(bool)(block.timestamp == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L124)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L123-L125", + "id": "7b0984af9e0ffedf1575cebc039f322695055a01b9cbd81771e552c441019628", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -820,21 +964,19 @@ "elements": [ { "type": "function", - "name": "bad6", + "name": "bad3", "source_mapping": { - "start": 1555, - "length": 179, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 1073, + "length": 124, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 + 47, + 48, + 49, + 50 ], "starting_column": 5, "ending_column": 6 @@ -846,9 +988,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -924,43 +1066,41 @@ "ending_column": 2 } }, - "signature": "bad6()" + "signature": "bad3()" } }, { "type": "node", - "name": "balance == 10000000000000000000", + "name": "require(bool)(10000000000000000000 == address(this).balance)", "source_mapping": { - "start": 1652, - "length": 19, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 1108, + "length": 42, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 68 + 48 ], - "starting_column": 13, - "ending_column": 32 + "starting_column": 9, + "ending_column": 51 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad6", + "name": "bad3", "source_mapping": { - "start": 1555, - "length": 179, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 1073, + "length": 124, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 + 47, + 48, + 49, + 50 ], "starting_column": 5, "ending_column": 6 @@ -972,9 +1112,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1050,16 +1190,16 @@ "ending_column": 2 } }, - "signature": "bad6()" + "signature": "bad3()" } } } } ], - "description": "TestContractBalance.bad6() (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#66-71) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#68)\n", - "markdown": "[TestContractBalance.bad6()](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L66-L71) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L68)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L66-L71", - "id": "48fdf24089d0b55885acd69fec55d6860251775e0e1b0317182476ff9015bd8d", + "description": "TestContractBalance.bad3() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#47-50) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(this).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#48)\n", + "markdown": "[TestContractBalance.bad3()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L47-L50) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(this).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L48)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L47-L50", + "id": "a6897be58505c046705a41d57507a230ae91f8582da3ba6573a40275cfef0608", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1068,21 +1208,21 @@ "elements": [ { "type": "function", - "name": "bad5", + "name": "bad4", "source_mapping": { - "start": 1379, + "start": 1203, "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 + 52, + 53, + 54, + 55, + 56, + 57 ], "starting_column": 5, "ending_column": 6 @@ -1094,9 +1234,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1172,21 +1312,21 @@ "ending_column": 2 } }, - "signature": "bad5()" + "signature": "bad4()" } }, { "type": "node", - "name": "10000000000000000000 == balance", + "name": "balance == 10000000000000000000", "source_mapping": { - "start": 1467, + "start": 1291, "length": 19, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 61 + 54 ], "starting_column": 13, "ending_column": 32 @@ -1194,21 +1334,21 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad4", "source_mapping": { - "start": 1379, + "start": 1203, "length": 170, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 + 52, + 53, + 54, + 55, + 56, + 57 ], "starting_column": 5, "ending_column": 6 @@ -1220,9 +1360,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1298,16 +1438,16 @@ "ending_column": 2 } }, - "signature": "bad5()" + "signature": "bad4()" } } } } ], - "description": "TestContractBalance.bad5() (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#59-64) uses a dangerous strict equality:\n\t- 10000000000000000000 == balance (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#61)\n", - "markdown": "[TestContractBalance.bad5()](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L59-L64) uses a dangerous strict equality:\n\t- [10000000000000000000 == balance](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L61)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L59-L64", - "id": "4c491b63ac50b7636f4718de626a471d8172b614b1355e937d7a071aec148691", + "description": "TestContractBalance.bad4() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#52-57) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#54)\n", + "markdown": "[TestContractBalance.bad4()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L52-L57) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L54)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L52-L57", + "id": "b8b849eb6912d14d89c08cc62631b526b98c443d404241f3c52efc638b2bcc86", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1316,19 +1456,19 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad0", "source_mapping": { - "start": 1073, - "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 665, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -1340,9 +1480,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1418,41 +1558,41 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad0()" } }, { "type": "node", - "name": "require(bool)(10000000000000000000 == address(this).balance)", + "name": "require(bool)(address(address(this)).balance == 10000000000000000000)", "source_mapping": { - "start": 1108, - "length": 42, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 700, + "length": 51, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 48 + 33 ], "starting_column": 9, - "ending_column": 51 + "ending_column": 60 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad0", "source_mapping": { - "start": 1073, - "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 665, + "length": 133, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50 + 32, + 33, + 34, + 35 ], "starting_column": 5, "ending_column": 6 @@ -1464,9 +1604,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -1533,349 +1673,25 @@ 91, 92, 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "TestContractBalance.bad3() (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#47-50) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(this).balance) (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#48)\n", - "markdown": "[TestContractBalance.bad3()](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L47-L50) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(this).balance)](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L48)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L47-L50", - "id": "746e8e07ef37b33e1f1e49ae013311ea0873d62d00caacaf08988735eb939ddc", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 3113, - "length": 67, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 131, - 132, - 133 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 798, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "require(bool)(block.number == 0)", - "source_mapping": { - "start": 3147, - "length": 26, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 132 - ], - "starting_column": 9, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 3113, - "length": 67, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 131, - 132, - 133 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 798, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad2() (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#131-133) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#132)\n", - "markdown": "[TestSolidityKeyword.bad2()](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L131-L133) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L132)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L131-L133", - "id": "78aad151c32e2fa0c7cb17095afae17fad81d613a486d78dabb016b26396ed12", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 421, - "length": 101, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(ERC20Function)" - } - }, - { - "type": "node", - "name": "require(bool)(erc.balanceOf(address(this)) == 10)", - "source_mapping": { - "start": 472, - "length": 43, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 421, - "length": 101, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 + 94, + 95, + 96, + 97 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "bad0(ERC20Function)" + "signature": "bad0()" } } } } ], - "description": "ERC20TestBalance.bad0(ERC20Function) (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#21-23) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(address(this)) == 10) (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#22)\n", - "markdown": "[ERC20TestBalance.bad0(ERC20Function)](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L21-L23) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(address(this)) == 10)](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L22)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L21-L23", - "id": "867a3b92771da558ee2693d8c81dc2c154b0effac8153ca43ccb183b05245310", + "description": "TestContractBalance.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#32-35) uses a dangerous strict equality:\n\t- require(bool)(address(address(this)).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#33)\n", + "markdown": "[TestContractBalance.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L32-L35) uses a dangerous strict equality:\n\t- [require(bool)(address(address(this)).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L33)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L32-L35", + "id": "c13f1ea5f8ba0968d254f38bae296c5528326f464233f2eb283c0a952cf358ff", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -1884,18 +1700,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 3041, - "length": 66, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 3113, + "length": 67, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 127, - 128, - 129 + 131, + 132, + 133 ], "starting_column": 5, "ending_column": 6 @@ -1907,9 +1723,9 @@ "source_mapping": { "start": 2385, "length": 798, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 99, @@ -1954,40 +1770,40 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad2()" } }, { "type": "node", "name": "require(bool)(block.number == 0)", "source_mapping": { - "start": 3075, - "length": 25, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 3147, + "length": 26, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 128 + 132 ], "starting_column": 9, - "ending_column": 34 + "ending_column": 35 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 3041, - "length": 66, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 3113, + "length": 67, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 127, - 128, - 129 + 131, + 132, + 133 ], "starting_column": 5, "ending_column": 6 @@ -1999,9 +1815,9 @@ "source_mapping": { "start": 2385, "length": 798, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 99, @@ -2046,16 +1862,16 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad2()" } } } } ], - "description": "TestSolidityKeyword.bad1() (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#127-129) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#128)\n", - "markdown": "[TestSolidityKeyword.bad1()](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L127-L129) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L128)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L127-L129", - "id": "b60d82f030e9230cf782621e9d04910c2dbe77a0adc6dcb435e642eb567ef330", + "description": "TestSolidityKeyword.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#131-133) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#132)\n", + "markdown": "[TestSolidityKeyword.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L131-L133) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L132)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L131-L133", + "id": "c2653e938f80ae63a20262eda2521ab3d846f822947c9b7d8b823388e3997928", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -2064,19 +1880,21 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad5", "source_mapping": { - "start": 665, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 1379, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 59, + 60, + 61, + 62, + 63, + 64 ], "starting_column": 5, "ending_column": 6 @@ -2088,9 +1906,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -2166,41 +1984,43 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad5()" } }, { "type": "node", - "name": "require(bool)(address(address(this)).balance == 10000000000000000000)", + "name": "10000000000000000000 == balance", "source_mapping": { - "start": 700, - "length": 51, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 1467, + "length": 19, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 33 + 61 ], - "starting_column": 9, - "ending_column": 60 + "starting_column": 13, + "ending_column": 32 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad5", "source_mapping": { - "start": 665, - "length": 133, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "start": 1379, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ - 32, - 33, - 34, - 35 + 59, + 60, + 61, + 62, + 63, + 64 ], "starting_column": 5, "ending_column": 6 @@ -2212,9 +2032,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -2290,16 +2110,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad5()" } } } } ], - "description": "TestContractBalance.bad0() (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#32-35) uses a dangerous strict equality:\n\t- require(bool)(address(address(this)).balance == 10000000000000000000) (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#33)\n", - "markdown": "[TestContractBalance.bad0()](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L32-L35) uses a dangerous strict equality:\n\t- [require(bool)(address(address(this)).balance == 10000000000000000000)](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L33)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L32-L35", - "id": "c64584a1db93863bfb52a62fae244e6c2f6bc0c1dd1a5662f50965428d978a15", + "description": "TestContractBalance.bad5() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#59-64) uses a dangerous strict equality:\n\t- 10000000000000000000 == balance (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#61)\n", + "markdown": "[TestContractBalance.bad5()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L59-L64) uses a dangerous strict equality:\n\t- [10000000000000000000 == balance](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L61)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L59-L64", + "id": "c8b2fbe9338a5c9af7e9645699b830df0239a588e340d65c5d0c2b918f1773d1", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" @@ -2312,9 +2132,9 @@ "source_mapping": { "start": 943, "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 42, @@ -2332,9 +2152,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -2419,9 +2239,9 @@ "source_mapping": { "start": 978, "length": 42, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 43 @@ -2436,9 +2256,9 @@ "source_mapping": { "start": 943, "length": 124, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 42, @@ -2456,9 +2276,9 @@ "source_mapping": { "start": 629, "length": 1754, - "filename_relative": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", "is_dependency": false, "lines": [ 30, @@ -2540,10 +2360,190 @@ } } ], - "description": "TestContractBalance.bad2() (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#42-45) uses a dangerous strict equality:\n\t- require(bool)(address(this).balance == 10000000000000000000) (tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#43)\n", - "markdown": "[TestContractBalance.bad2()](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L42-L45) uses a dangerous strict equality:\n\t- [require(bool)(address(this).balance == 10000000000000000000)](tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L43)\n", - "first_markdown_element": "tests/detectors/incorrect-equality/0.7.6/incorrect_equality.sol#L42-L45", - "id": "d848b883cd27d256e7ea367c14afae2cc206b22bc62e0023eeff561e4bc9bee6", + "description": "TestContractBalance.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#42-45) uses a dangerous strict equality:\n\t- require(bool)(address(this).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#43)\n", + "markdown": "[TestContractBalance.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L42-L45) uses a dangerous strict equality:\n\t- [require(bool)(address(this).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L43)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L42-L45", + "id": "ea6ab897bf4edb3c5139321ca547b08717767225087f380099e8472566a6a8a0", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 3041, + "length": 66, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 127, + 128, + 129 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TestSolidityKeyword", + "source_mapping": { + "start": 2385, + "length": 798, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad1()" + } + }, + { + "type": "node", + "name": "require(bool)(block.number == 0)", + "source_mapping": { + "start": 3075, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 128 + ], + "starting_column": 9, + "ending_column": 34 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 3041, + "length": 66, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 127, + 128, + 129 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TestSolidityKeyword", + "source_mapping": { + "start": 2385, + "length": 798, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", + "is_dependency": false, + "lines": [ + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad1()" + } + } + } + } + ], + "description": "TestSolidityKeyword.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#127-129) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#128)\n", + "markdown": "[TestSolidityKeyword.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L127-L129) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L128)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L127-L129", + "id": "f9063c78a209722de77a042a87a28a14eea47675f73a891172c3262232d33e70", "check": "incorrect-equality", "impact": "Medium", "confidence": "High" diff --git a/tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol b/tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol similarity index 100% rename from tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol rename to tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol diff --git a/tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol.0.4.25.ModifierDefaultDetection.json b/tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol.0.4.25.ModifierDefaultDetection.json similarity index 80% rename from tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol.0.4.25.ModifierDefaultDetection.json rename to tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol.0.4.25.ModifierDefaultDetection.json index bbe5242fd..c17d96402 100644 --- a/tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol.0.4.25.ModifierDefaultDetection.json +++ b/tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol.0.4.25.ModifierDefaultDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 496, "length": 251, - "filename_relative": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", "is_dependency": false, "lines": [ 30, @@ -36,9 +36,9 @@ "source_mapping": { "start": 0, "length": 901, - "filename_relative": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", "is_dependency": false, "lines": [ 1, @@ -102,9 +102,9 @@ } } ], - "description": "Modifier Test.loopsNoResult() (tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol#30-41) does not always execute _; or revert", - "markdown": "Modifier [Test.loopsNoResult()](tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol#L30-L41) does not always execute _; or revert", - "first_markdown_element": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol#L30-L41", + "description": "Modifier Test.loopsNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#30-41) does not always execute _; or revert", + "markdown": "Modifier [Test.loopsNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#L30-L41) does not always execute _; or revert", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#L30-L41", "id": "0ba95ef5faf2a00c06d4f83c5159220d1cd06bc346a1287a6634334b7a0c433f", "check": "incorrect-modifier", "impact": "Low", @@ -118,9 +118,9 @@ "source_mapping": { "start": 277, "length": 111, - "filename_relative": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", "is_dependency": false, "lines": [ 18, @@ -139,9 +139,9 @@ "source_mapping": { "start": 0, "length": 901, - "filename_relative": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", "is_dependency": false, "lines": [ 1, @@ -205,9 +205,9 @@ } } ], - "description": "Modifier Test.requireAssertNoResult() (tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol#18-22) does not always execute _; or revert", - "markdown": "Modifier [Test.requireAssertNoResult()](tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol#L18-L22) does not always execute _; or revert", - "first_markdown_element": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol#L18-L22", + "description": "Modifier Test.requireAssertNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#18-22) does not always execute _; or revert", + "markdown": "Modifier [Test.requireAssertNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#L18-L22) does not always execute _; or revert", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#L18-L22", "id": "35d07e11ee69abb8fb0e63dddefc1ab059bf450c71c992f70c5f96e484fbcbcc", "check": "incorrect-modifier", "impact": "Low", @@ -221,9 +221,9 @@ "source_mapping": { "start": 20, "length": 103, - "filename_relative": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", "is_dependency": false, "lines": [ 2, @@ -242,9 +242,9 @@ "source_mapping": { "start": 0, "length": 901, - "filename_relative": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", "is_dependency": false, "lines": [ 1, @@ -308,9 +308,9 @@ } } ], - "description": "Modifier Test.noResult() (tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol#2-6) does not always execute _; or revert", - "markdown": "Modifier [Test.noResult()](tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol#L2-L6) does not always execute _; or revert", - "first_markdown_element": "tests/detectors/incorrect-modifier/0.4.25/modifier_default.sol#L2-L6", + "description": "Modifier Test.noResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#2-6) does not always execute _; or revert", + "markdown": "Modifier [Test.noResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#L2-L6) does not always execute _; or revert", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#L2-L6", "id": "e83e0a544940d3ddd9ea8fe0ae0277bec4660926110809cfd28153817969c3a3", "check": "incorrect-modifier", "impact": "Low", diff --git a/tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol b/tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol similarity index 100% rename from tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol rename to tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol diff --git a/tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol.0.5.16.ModifierDefaultDetection.json b/tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol.0.5.16.ModifierDefaultDetection.json similarity index 80% rename from tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol.0.5.16.ModifierDefaultDetection.json rename to tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol.0.5.16.ModifierDefaultDetection.json index 944fbd792..51ba3b9ce 100644 --- a/tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol.0.5.16.ModifierDefaultDetection.json +++ b/tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol.0.5.16.ModifierDefaultDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 496, "length": 251, - "filename_relative": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", "is_dependency": false, "lines": [ 30, @@ -36,9 +36,9 @@ "source_mapping": { "start": 0, "length": 901, - "filename_relative": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", "is_dependency": false, "lines": [ 1, @@ -102,9 +102,9 @@ } } ], - "description": "Modifier Test.loopsNoResult() (tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol#30-41) does not always execute _; or revert", - "markdown": "Modifier [Test.loopsNoResult()](tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol#L30-L41) does not always execute _; or revert", - "first_markdown_element": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol#L30-L41", + "description": "Modifier Test.loopsNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#30-41) does not always execute _; or revert", + "markdown": "Modifier [Test.loopsNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#L30-L41) does not always execute _; or revert", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#L30-L41", "id": "0ba95ef5faf2a00c06d4f83c5159220d1cd06bc346a1287a6634334b7a0c433f", "check": "incorrect-modifier", "impact": "Low", @@ -118,9 +118,9 @@ "source_mapping": { "start": 277, "length": 111, - "filename_relative": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", "is_dependency": false, "lines": [ 18, @@ -139,9 +139,9 @@ "source_mapping": { "start": 0, "length": 901, - "filename_relative": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", "is_dependency": false, "lines": [ 1, @@ -205,9 +205,9 @@ } } ], - "description": "Modifier Test.requireAssertNoResult() (tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol#18-22) does not always execute _; or revert", - "markdown": "Modifier [Test.requireAssertNoResult()](tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol#L18-L22) does not always execute _; or revert", - "first_markdown_element": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol#L18-L22", + "description": "Modifier Test.requireAssertNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#18-22) does not always execute _; or revert", + "markdown": "Modifier [Test.requireAssertNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#L18-L22) does not always execute _; or revert", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#L18-L22", "id": "35d07e11ee69abb8fb0e63dddefc1ab059bf450c71c992f70c5f96e484fbcbcc", "check": "incorrect-modifier", "impact": "Low", @@ -221,9 +221,9 @@ "source_mapping": { "start": 20, "length": 103, - "filename_relative": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", "is_dependency": false, "lines": [ 2, @@ -242,9 +242,9 @@ "source_mapping": { "start": 0, "length": 901, - "filename_relative": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", "is_dependency": false, "lines": [ 1, @@ -308,9 +308,9 @@ } } ], - "description": "Modifier Test.noResult() (tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol#2-6) does not always execute _; or revert", - "markdown": "Modifier [Test.noResult()](tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol#L2-L6) does not always execute _; or revert", - "first_markdown_element": "tests/detectors/incorrect-modifier/0.5.16/modifier_default.sol#L2-L6", + "description": "Modifier Test.noResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#2-6) does not always execute _; or revert", + "markdown": "Modifier [Test.noResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#L2-L6) does not always execute _; or revert", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#L2-L6", "id": "e83e0a544940d3ddd9ea8fe0ae0277bec4660926110809cfd28153817969c3a3", "check": "incorrect-modifier", "impact": "Low", diff --git a/tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol b/tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol similarity index 100% rename from tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol rename to tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol diff --git a/tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol.0.6.11.ModifierDefaultDetection.json b/tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol.0.6.11.ModifierDefaultDetection.json similarity index 80% rename from tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol.0.6.11.ModifierDefaultDetection.json rename to tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol.0.6.11.ModifierDefaultDetection.json index ec2cc82c7..28e23e301 100644 --- a/tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol.0.6.11.ModifierDefaultDetection.json +++ b/tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol.0.6.11.ModifierDefaultDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 496, "length": 251, - "filename_relative": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", "is_dependency": false, "lines": [ 30, @@ -36,9 +36,9 @@ "source_mapping": { "start": 0, "length": 901, - "filename_relative": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", "is_dependency": false, "lines": [ 1, @@ -102,9 +102,9 @@ } } ], - "description": "Modifier Test.loopsNoResult() (tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol#30-41) does not always execute _; or revert", - "markdown": "Modifier [Test.loopsNoResult()](tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol#L30-L41) does not always execute _; or revert", - "first_markdown_element": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol#L30-L41", + "description": "Modifier Test.loopsNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#30-41) does not always execute _; or revert", + "markdown": "Modifier [Test.loopsNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#L30-L41) does not always execute _; or revert", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#L30-L41", "id": "0ba95ef5faf2a00c06d4f83c5159220d1cd06bc346a1287a6634334b7a0c433f", "check": "incorrect-modifier", "impact": "Low", @@ -118,9 +118,9 @@ "source_mapping": { "start": 277, "length": 111, - "filename_relative": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", "is_dependency": false, "lines": [ 18, @@ -139,9 +139,9 @@ "source_mapping": { "start": 0, "length": 901, - "filename_relative": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", "is_dependency": false, "lines": [ 1, @@ -205,9 +205,9 @@ } } ], - "description": "Modifier Test.requireAssertNoResult() (tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol#18-22) does not always execute _; or revert", - "markdown": "Modifier [Test.requireAssertNoResult()](tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol#L18-L22) does not always execute _; or revert", - "first_markdown_element": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol#L18-L22", + "description": "Modifier Test.requireAssertNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#18-22) does not always execute _; or revert", + "markdown": "Modifier [Test.requireAssertNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#L18-L22) does not always execute _; or revert", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#L18-L22", "id": "35d07e11ee69abb8fb0e63dddefc1ab059bf450c71c992f70c5f96e484fbcbcc", "check": "incorrect-modifier", "impact": "Low", @@ -221,9 +221,9 @@ "source_mapping": { "start": 20, "length": 103, - "filename_relative": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", "is_dependency": false, "lines": [ 2, @@ -242,9 +242,9 @@ "source_mapping": { "start": 0, "length": 901, - "filename_relative": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", "is_dependency": false, "lines": [ 1, @@ -308,9 +308,9 @@ } } ], - "description": "Modifier Test.noResult() (tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol#2-6) does not always execute _; or revert", - "markdown": "Modifier [Test.noResult()](tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol#L2-L6) does not always execute _; or revert", - "first_markdown_element": "tests/detectors/incorrect-modifier/0.6.11/modifier_default.sol#L2-L6", + "description": "Modifier Test.noResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#2-6) does not always execute _; or revert", + "markdown": "Modifier [Test.noResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#L2-L6) does not always execute _; or revert", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#L2-L6", "id": "e83e0a544940d3ddd9ea8fe0ae0277bec4660926110809cfd28153817969c3a3", "check": "incorrect-modifier", "impact": "Low", diff --git a/tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol b/tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol similarity index 100% rename from tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol rename to tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol diff --git a/tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol.0.7.6.ModifierDefaultDetection.json b/tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol.0.7.6.ModifierDefaultDetection.json similarity index 80% rename from tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol.0.7.6.ModifierDefaultDetection.json rename to tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol.0.7.6.ModifierDefaultDetection.json index f80233a60..71397c0df 100644 --- a/tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol.0.7.6.ModifierDefaultDetection.json +++ b/tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol.0.7.6.ModifierDefaultDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 496, "length": 251, - "filename_relative": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", "is_dependency": false, "lines": [ 30, @@ -36,9 +36,9 @@ "source_mapping": { "start": 0, "length": 901, - "filename_relative": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", "is_dependency": false, "lines": [ 1, @@ -102,9 +102,9 @@ } } ], - "description": "Modifier Test.loopsNoResult() (tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol#30-41) does not always execute _; or revert", - "markdown": "Modifier [Test.loopsNoResult()](tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol#L30-L41) does not always execute _; or revert", - "first_markdown_element": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol#L30-L41", + "description": "Modifier Test.loopsNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#30-41) does not always execute _; or revert", + "markdown": "Modifier [Test.loopsNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#L30-L41) does not always execute _; or revert", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#L30-L41", "id": "0ba95ef5faf2a00c06d4f83c5159220d1cd06bc346a1287a6634334b7a0c433f", "check": "incorrect-modifier", "impact": "Low", @@ -118,9 +118,9 @@ "source_mapping": { "start": 277, "length": 111, - "filename_relative": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", "is_dependency": false, "lines": [ 18, @@ -139,9 +139,9 @@ "source_mapping": { "start": 0, "length": 901, - "filename_relative": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", "is_dependency": false, "lines": [ 1, @@ -205,9 +205,9 @@ } } ], - "description": "Modifier Test.requireAssertNoResult() (tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol#18-22) does not always execute _; or revert", - "markdown": "Modifier [Test.requireAssertNoResult()](tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol#L18-L22) does not always execute _; or revert", - "first_markdown_element": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol#L18-L22", + "description": "Modifier Test.requireAssertNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#18-22) does not always execute _; or revert", + "markdown": "Modifier [Test.requireAssertNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#L18-L22) does not always execute _; or revert", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#L18-L22", "id": "35d07e11ee69abb8fb0e63dddefc1ab059bf450c71c992f70c5f96e484fbcbcc", "check": "incorrect-modifier", "impact": "Low", @@ -221,9 +221,9 @@ "source_mapping": { "start": 20, "length": 103, - "filename_relative": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", "is_dependency": false, "lines": [ 2, @@ -242,9 +242,9 @@ "source_mapping": { "start": 0, "length": 901, - "filename_relative": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", "is_dependency": false, "lines": [ 1, @@ -308,9 +308,9 @@ } } ], - "description": "Modifier Test.noResult() (tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol#2-6) does not always execute _; or revert", - "markdown": "Modifier [Test.noResult()](tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol#L2-L6) does not always execute _; or revert", - "first_markdown_element": "tests/detectors/incorrect-modifier/0.7.6/modifier_default.sol#L2-L6", + "description": "Modifier Test.noResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#2-6) does not always execute _; or revert", + "markdown": "Modifier [Test.noResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#L2-L6) does not always execute _; or revert", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#L2-L6", "id": "e83e0a544940d3ddd9ea8fe0ae0277bec4660926110809cfd28153817969c3a3", "check": "incorrect-modifier", "impact": "Low", diff --git a/tests/detectors/incorrect-shift/0.4.25/shift_parameter_mixup.sol b/tests/e2e/detectors/test_data/incorrect-shift/0.4.25/shift_parameter_mixup.sol similarity index 100% rename from tests/detectors/incorrect-shift/0.4.25/shift_parameter_mixup.sol rename to tests/e2e/detectors/test_data/incorrect-shift/0.4.25/shift_parameter_mixup.sol diff --git a/tests/detectors/incorrect-shift/0.4.25/shift_parameter_mixup.sol.0.4.25.ShiftParameterMixup.json b/tests/e2e/detectors/test_data/incorrect-shift/0.4.25/shift_parameter_mixup.sol.0.4.25.ShiftParameterMixup.json similarity index 100% rename from tests/detectors/incorrect-shift/0.4.25/shift_parameter_mixup.sol.0.4.25.ShiftParameterMixup.json rename to tests/e2e/detectors/test_data/incorrect-shift/0.4.25/shift_parameter_mixup.sol.0.4.25.ShiftParameterMixup.json diff --git a/tests/detectors/incorrect-shift/0.5.16/shift_parameter_mixup.sol b/tests/e2e/detectors/test_data/incorrect-shift/0.5.16/shift_parameter_mixup.sol similarity index 100% rename from tests/detectors/incorrect-shift/0.5.16/shift_parameter_mixup.sol rename to tests/e2e/detectors/test_data/incorrect-shift/0.5.16/shift_parameter_mixup.sol diff --git a/tests/detectors/incorrect-shift/0.5.16/shift_parameter_mixup.sol.0.5.16.ShiftParameterMixup.json b/tests/e2e/detectors/test_data/incorrect-shift/0.5.16/shift_parameter_mixup.sol.0.5.16.ShiftParameterMixup.json similarity index 100% rename from tests/detectors/incorrect-shift/0.5.16/shift_parameter_mixup.sol.0.5.16.ShiftParameterMixup.json rename to tests/e2e/detectors/test_data/incorrect-shift/0.5.16/shift_parameter_mixup.sol.0.5.16.ShiftParameterMixup.json diff --git a/tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol b/tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol similarity index 100% rename from tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol rename to tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol diff --git a/tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol.0.6.11.ShiftParameterMixup.json b/tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol.0.6.11.ShiftParameterMixup.json similarity index 71% rename from tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol.0.6.11.ShiftParameterMixup.json rename to tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol.0.6.11.ShiftParameterMixup.json index 25e424df0..5b4d6115a 100644 --- a/tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol.0.6.11.ShiftParameterMixup.json +++ b/tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol.0.6.11.ShiftParameterMixup.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 19, "length": 106, - "filename_relative": "tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", "is_dependency": false, "lines": [ 3, @@ -29,9 +29,9 @@ "source_mapping": { "start": 0, "length": 128, - "filename_relative": "tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", "is_dependency": false, "lines": [ 1, @@ -56,9 +56,9 @@ "source_mapping": { "start": 93, "length": 14, - "filename_relative": "tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", "is_dependency": false, "lines": [ 5 @@ -73,9 +73,9 @@ "source_mapping": { "start": 19, "length": 106, - "filename_relative": "tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", "is_dependency": false, "lines": [ 3, @@ -94,9 +94,9 @@ "source_mapping": { "start": 0, "length": 128, - "filename_relative": "tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", "is_dependency": false, "lines": [ 1, @@ -118,10 +118,10 @@ } } ], - "description": "C.f() (tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol#3-7) contains an incorrect shift operation: a = 8 >> a (tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol#5)\n", - "markdown": "[C.f()](tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol#L3-L7) contains an incorrect shift operation: [a = 8 >> a](tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol#L5)\n", - "first_markdown_element": "tests/detectors/incorrect-shift/0.6.11/shift_parameter_mixup.sol#L3-L7", - "id": "eefda017d078fd6c0cdb19b471ac8d0a96b2b3dba9bac04ac194270820a77301", + "description": "C.f() (tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol#3-7) contains an incorrect shift operation: a = 8 >> a (tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol#5)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol#L3-L7) contains an incorrect shift operation: [a = 8 >> a](tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol#L5)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol#L3-L7", + "id": "3b49c1812a94a200ed222cb95c2aa98fb38f623349bf4eceff8b578d1edfb450", "check": "incorrect-shift", "impact": "High", "confidence": "High" diff --git a/tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol b/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol similarity index 100% rename from tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol rename to tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol diff --git a/tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol.0.7.6.ShiftParameterMixup.json b/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol.0.7.6.ShiftParameterMixup.json similarity index 71% rename from tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol.0.7.6.ShiftParameterMixup.json rename to tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol.0.7.6.ShiftParameterMixup.json index f8d135a4d..20150fd69 100644 --- a/tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol.0.7.6.ShiftParameterMixup.json +++ b/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol.0.7.6.ShiftParameterMixup.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 19, "length": 106, - "filename_relative": "tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", "is_dependency": false, "lines": [ 3, @@ -29,9 +29,9 @@ "source_mapping": { "start": 0, "length": 128, - "filename_relative": "tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", "is_dependency": false, "lines": [ 1, @@ -56,9 +56,9 @@ "source_mapping": { "start": 93, "length": 14, - "filename_relative": "tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", "is_dependency": false, "lines": [ 5 @@ -73,9 +73,9 @@ "source_mapping": { "start": 19, "length": 106, - "filename_relative": "tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", "is_dependency": false, "lines": [ 3, @@ -94,9 +94,9 @@ "source_mapping": { "start": 0, "length": 128, - "filename_relative": "tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", "is_dependency": false, "lines": [ 1, @@ -118,10 +118,10 @@ } } ], - "description": "C.f() (tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol#3-7) contains an incorrect shift operation: a = 8 >> a (tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol#5)\n", - "markdown": "[C.f()](tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol#L3-L7) contains an incorrect shift operation: [a = 8 >> a](tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol#L5)\n", - "first_markdown_element": "tests/detectors/incorrect-shift/0.7.6/shift_parameter_mixup.sol#L3-L7", - "id": "8aa2292fd8d53a23f05aed92384dde452ea1f879d2422c4726b75a79a5aa6f81", + "description": "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)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#L3-L7) contains an incorrect shift operation: [a = 8 >> a](tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#L5)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#L3-L7", + "id": "1e0b56cf3193f6a593cb39fce7f93feb1d57c319bcd090e9a1cd3d96606409cb", "check": "incorrect-shift", "impact": "High", "confidence": "High" diff --git a/tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol b/tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol similarity index 100% rename from tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol rename to tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol diff --git a/tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol.0.4.25.IncorrectUnaryExpressionDetection.json b/tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol.0.4.25.IncorrectUnaryExpressionDetection.json similarity index 74% rename from tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol.0.4.25.IncorrectUnaryExpressionDetection.json rename to tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol.0.4.25.IncorrectUnaryExpressionDetection.json index e559cffb2..910b5c2aa 100644 --- a/tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol.0.4.25.IncorrectUnaryExpressionDetection.json +++ b/tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol.0.4.25.IncorrectUnaryExpressionDetection.json @@ -4,15 +4,20 @@ "elements": [ { "type": "function", - "name": "f", + "name": "slitherConstructorVariables", "source_mapping": { - "start": 60, - "length": 142, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "start": 0, + "length": 204, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ + 1, + 2, + 3, + 4, + 5, 6, 7, 8, @@ -21,10 +26,11 @@ 11, 12, 13, - 14 + 14, + 15 ], - "starting_column": 3, - "ending_column": 4 + "starting_column": 1, + "ending_column": 2 }, "type_specific_fields": { "parent": { @@ -33,9 +39,9 @@ "source_mapping": { "start": 0, "length": 204, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ 1, @@ -58,37 +64,42 @@ "ending_column": 2 } }, - "signature": "f()" + "signature": "slitherConstructorVariables()" } }, { "type": "node", - "name": "x = + 144444", + "name": "c = (b = + 1)", "source_mapping": { - "start": 104, - "length": 26, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "start": 42, + "length": 13, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ - 8 + 4 ], - "starting_column": 5, - "ending_column": 31 + "starting_column": 3, + "ending_column": 16 }, "type_specific_fields": { "parent": { "type": "function", - "name": "f", + "name": "slitherConstructorVariables", "source_mapping": { - "start": 60, - "length": 142, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "start": 0, + "length": 204, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ + 1, + 2, + 3, + 4, + 5, 6, 7, 8, @@ -97,10 +108,11 @@ 11, 12, 13, - 14 + 14, + 15 ], - "starting_column": 3, - "ending_column": 4 + "starting_column": 1, + "ending_column": 2 }, "type_specific_fields": { "parent": { @@ -109,9 +121,9 @@ "source_mapping": { "start": 0, "length": 204, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ 1, @@ -134,16 +146,16 @@ "ending_column": 2 } }, - "signature": "f()" + "signature": "slitherConstructorVariables()" } } } } ], - "description": "C.f() (tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#6-14) uses an dangerous unary operator: x = + 144444 (tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#8)\n", - "markdown": "[C.f()](tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#L6-L14) uses an dangerous unary operator: [x = + 144444](tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#L8)\n", - "first_markdown_element": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#L6-L14", - "id": "1c34192b7e1340c90c351ae8dcdbf0ce55436d33da941fd80ca110fadc120471", + "description": "C.slitherConstructorVariables() (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#1-15) uses an dangerous unary operator: c = (b = + 1) (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#4)\n", + "markdown": "[C.slitherConstructorVariables()](tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L1-L15) uses an dangerous unary operator: [c = (b = + 1)](tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L4)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L1-L15", + "id": "1cd95648731fa1d8591ad7893453cc18fac345beb99f74b732ba348913c39440", "check": "incorrect-unary", "impact": "Low", "confidence": "Medium" @@ -156,9 +168,9 @@ "source_mapping": { "start": 60, "length": 142, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ 6, @@ -181,9 +193,9 @@ "source_mapping": { "start": 0, "length": 204, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ 1, @@ -211,19 +223,19 @@ }, { "type": "node", - "name": "x = (x = + 1)", + "name": "x = + 144444", "source_mapping": { - "start": 136, - "length": 10, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "start": 104, + "length": 26, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ - 9 + 8 ], "starting_column": 5, - "ending_column": 15 + "ending_column": 31 }, "type_specific_fields": { "parent": { @@ -232,9 +244,9 @@ "source_mapping": { "start": 60, "length": 142, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ 6, @@ -257,9 +269,9 @@ "source_mapping": { "start": 0, "length": 204, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ 1, @@ -288,10 +300,71 @@ } } ], - "description": "C.f() (tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#6-14) uses an dangerous unary operator: x = (x = + 1) (tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#9)\n", - "markdown": "[C.f()](tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#L6-L14) uses an dangerous unary operator: [x = (x = + 1)](tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#L9)\n", - "first_markdown_element": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#L6-L14", - "id": "67f0d53f0f21e8f7ef05bc38503626b2382c6bd6863d70c857c2c6ad58ea0c96", + "description": "C.f() (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#6-14) uses an dangerous unary operator: x = + 144444 (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#8)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L6-L14) uses an dangerous unary operator: [x = + 144444](tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L6-L14", + "id": "752dfc78458ce332044d64166a2fc7cad63f5797b4e1d4d983a0681c43a7a930", + "check": "incorrect-unary", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "c", + "source_mapping": { + "start": 42, + "length": 13, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "is_dependency": false, + "lines": [ + 4 + ], + "starting_column": 3, + "ending_column": 16 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "C", + "source_mapping": { + "start": 0, + "length": 204, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "is_dependency": false, + "lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + } + ], + "description": "C.c (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#4) uses an dangerous unary operator: (b = + 1)\n", + "markdown": "[C.c](tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L4) uses an dangerous unary operator: (b = + 1)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L4", + "id": "98d05a4acbe13ff0e6fa795af35dc2002541cc7607f3f4d7ffb356f9d33681bd", "check": "incorrect-unary", "impact": "Low", "confidence": "Medium" @@ -300,20 +373,15 @@ "elements": [ { "type": "function", - "name": "slitherConstructorVariables", + "name": "f", "source_mapping": { - "start": 0, - "length": 204, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "start": 60, + "length": 142, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ - 1, - 2, - 3, - 4, - 5, 6, 7, 8, @@ -322,11 +390,10 @@ 11, 12, 13, - 14, - 15 + 14 ], - "starting_column": 1, - "ending_column": 2 + "starting_column": 3, + "ending_column": 4 }, "type_specific_fields": { "parent": { @@ -335,9 +402,9 @@ "source_mapping": { "start": 0, "length": 204, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ 1, @@ -360,42 +427,37 @@ "ending_column": 2 } }, - "signature": "slitherConstructorVariables()" + "signature": "f()" } }, { "type": "node", - "name": "c = (b = + 1)", + "name": "x = (x = + 1)", "source_mapping": { - "start": 42, - "length": 13, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "start": 136, + "length": 10, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ - 4 + 9 ], - "starting_column": 3, - "ending_column": 16 + "starting_column": 5, + "ending_column": 15 }, "type_specific_fields": { "parent": { "type": "function", - "name": "slitherConstructorVariables", + "name": "f", "source_mapping": { - "start": 0, - "length": 204, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "start": 60, + "length": 142, + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ - 1, - 2, - 3, - 4, - 5, 6, 7, 8, @@ -404,11 +466,10 @@ 11, 12, 13, - 14, - 15 + 14 ], - "starting_column": 1, - "ending_column": 2 + "starting_column": 3, + "ending_column": 4 }, "type_specific_fields": { "parent": { @@ -417,9 +478,9 @@ "source_mapping": { "start": 0, "length": 204, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", + "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", "is_dependency": false, "lines": [ 1, @@ -442,77 +503,16 @@ "ending_column": 2 } }, - "signature": "slitherConstructorVariables()" - } - } - } - } - ], - "description": "C.slitherConstructorVariables() (tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#1-15) uses an dangerous unary operator: c = (b = + 1) (tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#4)\n", - "markdown": "[C.slitherConstructorVariables()](tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#L1-L15) uses an dangerous unary operator: [c = (b = + 1)](tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#L4)\n", - "first_markdown_element": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#L1-L15", - "id": "985ddf90b5ace46a66272275a4c46e1a8964ba0adbb8223a6c19506145ed2f8c", - "check": "incorrect-unary", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "c", - "source_mapping": { - "start": 42, - "length": 13, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 3, - "ending_column": 16 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 204, - "filename_relative": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 2 + "signature": "f()" } } } } ], - "description": "C.c (tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#4) uses an dangerous unary operator: (b = + 1)\n", - "markdown": "[C.c](tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#L4) uses an dangerous unary operator: (b = + 1)\n", - "first_markdown_element": "tests/detectors/incorrect-unary/0.4.25/invalid_unary_expression.sol#L4", - "id": "98d05a4acbe13ff0e6fa795af35dc2002541cc7607f3f4d7ffb356f9d33681bd", + "description": "C.f() (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#6-14) uses an dangerous unary operator: x = (x = + 1) (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#9)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L6-L14) uses an dangerous unary operator: [x = (x = + 1)](tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L6-L14", + "id": "aa018a8d101b2e2a91a45c0075355e9dfae1b2abe322079230cc2a89f58135fb", "check": "incorrect-unary", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/locked-ether/0.4.25/locked_ether.sol b/tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol similarity index 100% rename from tests/detectors/locked-ether/0.4.25/locked_ether.sol rename to tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol diff --git a/tests/detectors/locked-ether/0.4.25/locked_ether.sol.0.4.25.LockedEther.json b/tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol.0.4.25.LockedEther.json similarity index 65% rename from tests/detectors/locked-ether/0.4.25/locked_ether.sol.0.4.25.LockedEther.json rename to tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol.0.4.25.LockedEther.json index 31146a48d..8a96569ce 100644 --- a/tests/detectors/locked-ether/0.4.25/locked_ether.sol.0.4.25.LockedEther.json +++ b/tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol.0.4.25.LockedEther.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 368, "length": 32, - "filename_relative": "tests/detectors/locked-ether/0.4.25/locked_ether.sol", + "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/locked-ether/0.4.25/locked_ether.sol", + "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol", "is_dependency": false, "lines": [ 26 @@ -25,9 +25,9 @@ "source_mapping": { "start": 47, "length": 72, - "filename_relative": "tests/detectors/locked-ether/0.4.25/locked_ether.sol", + "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/locked-ether/0.4.25/locked_ether.sol", + "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol", "is_dependency": false, "lines": [ 4, @@ -44,9 +44,9 @@ "source_mapping": { "start": 25, "length": 97, - "filename_relative": "tests/detectors/locked-ether/0.4.25/locked_ether.sol", + "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/locked-ether/0.4.25/locked_ether.sol", + "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol", "is_dependency": false, "lines": [ 2, @@ -65,9 +65,9 @@ } } ], - "description": "Contract locking ether found:\n\tContract OnlyLocked (tests/detectors/locked-ether/0.4.25/locked_ether.sol#26) has payable functions:\n\t - Locked.receive() (tests/detectors/locked-ether/0.4.25/locked_ether.sol#4-6)\n\tBut does not have a function to withdraw the ether\n", - "markdown": "Contract locking ether found:\n\tContract [OnlyLocked](tests/detectors/locked-ether/0.4.25/locked_ether.sol#L26) has payable functions:\n\t - [Locked.receive()](tests/detectors/locked-ether/0.4.25/locked_ether.sol#L4-L6)\n\tBut does not have a function to withdraw the ether\n", - "first_markdown_element": "tests/detectors/locked-ether/0.4.25/locked_ether.sol#L26", + "description": "Contract locking ether found:\n\tContract OnlyLocked (tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol#26) has payable functions:\n\t - Locked.receive() (tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol#4-6)\n\tBut does not have a function to withdraw the ether\n", + "markdown": "Contract locking ether found:\n\tContract [OnlyLocked](tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol#L26) has payable functions:\n\t - [Locked.receive()](tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol#L4-L6)\n\tBut does not have a function to withdraw the ether\n", + "first_markdown_element": "tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol#L26", "id": "a2fad0e9c8a75e55b8c548dd184dc33d78142ea5bac9c36cdc5eb174e56d689c", "check": "locked-ether", "impact": "Medium", diff --git a/tests/detectors/locked-ether/0.5.16/locked_ether.sol b/tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol similarity index 100% rename from tests/detectors/locked-ether/0.5.16/locked_ether.sol rename to tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol diff --git a/tests/detectors/locked-ether/0.5.16/locked_ether.sol.0.5.16.LockedEther.json b/tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol.0.5.16.LockedEther.json similarity index 65% rename from tests/detectors/locked-ether/0.5.16/locked_ether.sol.0.5.16.LockedEther.json rename to tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol.0.5.16.LockedEther.json index 27340be23..5b39da397 100644 --- a/tests/detectors/locked-ether/0.5.16/locked_ether.sol.0.5.16.LockedEther.json +++ b/tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol.0.5.16.LockedEther.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 375, "length": 32, - "filename_relative": "tests/detectors/locked-ether/0.5.16/locked_ether.sol", + "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/locked-ether/0.5.16/locked_ether.sol", + "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol", "is_dependency": false, "lines": [ 26 @@ -25,9 +25,9 @@ "source_mapping": { "start": 46, "length": 72, - "filename_relative": "tests/detectors/locked-ether/0.5.16/locked_ether.sol", + "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/locked-ether/0.5.16/locked_ether.sol", + "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol", "is_dependency": false, "lines": [ 4, @@ -44,9 +44,9 @@ "source_mapping": { "start": 24, "length": 97, - "filename_relative": "tests/detectors/locked-ether/0.5.16/locked_ether.sol", + "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/locked-ether/0.5.16/locked_ether.sol", + "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol", "is_dependency": false, "lines": [ 2, @@ -65,9 +65,9 @@ } } ], - "description": "Contract locking ether found:\n\tContract OnlyLocked (tests/detectors/locked-ether/0.5.16/locked_ether.sol#26) has payable functions:\n\t - Locked.receive() (tests/detectors/locked-ether/0.5.16/locked_ether.sol#4-6)\n\tBut does not have a function to withdraw the ether\n", - "markdown": "Contract locking ether found:\n\tContract [OnlyLocked](tests/detectors/locked-ether/0.5.16/locked_ether.sol#L26) has payable functions:\n\t - [Locked.receive()](tests/detectors/locked-ether/0.5.16/locked_ether.sol#L4-L6)\n\tBut does not have a function to withdraw the ether\n", - "first_markdown_element": "tests/detectors/locked-ether/0.5.16/locked_ether.sol#L26", + "description": "Contract locking ether found:\n\tContract OnlyLocked (tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol#26) has payable functions:\n\t - Locked.receive() (tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol#4-6)\n\tBut does not have a function to withdraw the ether\n", + "markdown": "Contract locking ether found:\n\tContract [OnlyLocked](tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol#L26) has payable functions:\n\t - [Locked.receive()](tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol#L4-L6)\n\tBut does not have a function to withdraw the ether\n", + "first_markdown_element": "tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol#L26", "id": "a2fad0e9c8a75e55b8c548dd184dc33d78142ea5bac9c36cdc5eb174e56d689c", "check": "locked-ether", "impact": "Medium", diff --git a/tests/detectors/locked-ether/0.6.11/locked_ether.sol b/tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol similarity index 100% rename from tests/detectors/locked-ether/0.6.11/locked_ether.sol rename to tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol diff --git a/tests/detectors/locked-ether/0.6.11/locked_ether.sol.0.6.11.LockedEther.json b/tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol.0.6.11.LockedEther.json similarity index 65% rename from tests/detectors/locked-ether/0.6.11/locked_ether.sol.0.6.11.LockedEther.json rename to tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol.0.6.11.LockedEther.json index c738c37a0..49eab9f41 100644 --- a/tests/detectors/locked-ether/0.6.11/locked_ether.sol.0.6.11.LockedEther.json +++ b/tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol.0.6.11.LockedEther.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 401, "length": 32, - "filename_relative": "tests/detectors/locked-ether/0.6.11/locked_ether.sol", + "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/locked-ether/0.6.11/locked_ether.sol", + "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol", "is_dependency": false, "lines": [ 26 @@ -25,9 +25,9 @@ "source_mapping": { "start": 49, "length": 76, - "filename_relative": "tests/detectors/locked-ether/0.6.11/locked_ether.sol", + "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/locked-ether/0.6.11/locked_ether.sol", + "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol", "is_dependency": false, "lines": [ 4, @@ -44,9 +44,9 @@ "source_mapping": { "start": 27, "length": 101, - "filename_relative": "tests/detectors/locked-ether/0.6.11/locked_ether.sol", + "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/locked-ether/0.6.11/locked_ether.sol", + "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol", "is_dependency": false, "lines": [ 2, @@ -65,9 +65,9 @@ } } ], - "description": "Contract locking ether found:\n\tContract OnlyLocked (tests/detectors/locked-ether/0.6.11/locked_ether.sol#26) has payable functions:\n\t - Locked.receive_eth() (tests/detectors/locked-ether/0.6.11/locked_ether.sol#4-6)\n\tBut does not have a function to withdraw the ether\n", - "markdown": "Contract locking ether found:\n\tContract [OnlyLocked](tests/detectors/locked-ether/0.6.11/locked_ether.sol#L26) has payable functions:\n\t - [Locked.receive_eth()](tests/detectors/locked-ether/0.6.11/locked_ether.sol#L4-L6)\n\tBut does not have a function to withdraw the ether\n", - "first_markdown_element": "tests/detectors/locked-ether/0.6.11/locked_ether.sol#L26", + "description": "Contract locking ether found:\n\tContract OnlyLocked (tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol#26) has payable functions:\n\t - Locked.receive_eth() (tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol#4-6)\n\tBut does not have a function to withdraw the ether\n", + "markdown": "Contract locking ether found:\n\tContract [OnlyLocked](tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol#L26) has payable functions:\n\t - [Locked.receive_eth()](tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol#L4-L6)\n\tBut does not have a function to withdraw the ether\n", + "first_markdown_element": "tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol#L26", "id": "1818e759217cfcf6787001194bba24ad45470b123962a72d39062edb19447022", "check": "locked-ether", "impact": "Medium", diff --git a/tests/detectors/locked-ether/0.7.6/locked_ether.sol b/tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol similarity index 100% rename from tests/detectors/locked-ether/0.7.6/locked_ether.sol rename to tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol diff --git a/tests/detectors/locked-ether/0.7.6/locked_ether.sol.0.7.6.LockedEther.json b/tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol.0.7.6.LockedEther.json similarity index 65% rename from tests/detectors/locked-ether/0.7.6/locked_ether.sol.0.7.6.LockedEther.json rename to tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol.0.7.6.LockedEther.json index cd7545e53..dbfa51782 100644 --- a/tests/detectors/locked-ether/0.7.6/locked_ether.sol.0.7.6.LockedEther.json +++ b/tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol.0.7.6.LockedEther.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 401, "length": 32, - "filename_relative": "tests/detectors/locked-ether/0.7.6/locked_ether.sol", + "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/locked-ether/0.7.6/locked_ether.sol", + "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol", "is_dependency": false, "lines": [ 26 @@ -25,9 +25,9 @@ "source_mapping": { "start": 49, "length": 76, - "filename_relative": "tests/detectors/locked-ether/0.7.6/locked_ether.sol", + "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/locked-ether/0.7.6/locked_ether.sol", + "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol", "is_dependency": false, "lines": [ 4, @@ -44,9 +44,9 @@ "source_mapping": { "start": 27, "length": 101, - "filename_relative": "tests/detectors/locked-ether/0.7.6/locked_ether.sol", + "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/locked-ether/0.7.6/locked_ether.sol", + "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol", "is_dependency": false, "lines": [ 2, @@ -65,9 +65,9 @@ } } ], - "description": "Contract locking ether found:\n\tContract OnlyLocked (tests/detectors/locked-ether/0.7.6/locked_ether.sol#26) has payable functions:\n\t - Locked.receive_eth() (tests/detectors/locked-ether/0.7.6/locked_ether.sol#4-6)\n\tBut does not have a function to withdraw the ether\n", - "markdown": "Contract locking ether found:\n\tContract [OnlyLocked](tests/detectors/locked-ether/0.7.6/locked_ether.sol#L26) has payable functions:\n\t - [Locked.receive_eth()](tests/detectors/locked-ether/0.7.6/locked_ether.sol#L4-L6)\n\tBut does not have a function to withdraw the ether\n", - "first_markdown_element": "tests/detectors/locked-ether/0.7.6/locked_ether.sol#L26", + "description": "Contract locking ether found:\n\tContract OnlyLocked (tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol#26) has payable functions:\n\t - Locked.receive_eth() (tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol#4-6)\n\tBut does not have a function to withdraw the ether\n", + "markdown": "Contract locking ether found:\n\tContract [OnlyLocked](tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol#L26) has payable functions:\n\t - [Locked.receive_eth()](tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol#L4-L6)\n\tBut does not have a function to withdraw the ether\n", + "first_markdown_element": "tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol#L26", "id": "1818e759217cfcf6787001194bba24ad45470b123962a72d39062edb19447022", "check": "locked-ether", "impact": "Medium", diff --git a/tests/detectors/low-level-calls/0.4.25/low_level_calls.sol b/tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol similarity index 100% rename from tests/detectors/low-level-calls/0.4.25/low_level_calls.sol rename to tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol diff --git a/tests/detectors/low-level-calls/0.4.25/low_level_calls.sol.0.4.25.LowLevelCalls.json b/tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol.0.4.25.LowLevelCalls.json similarity index 71% rename from tests/detectors/low-level-calls/0.4.25/low_level_calls.sol.0.4.25.LowLevelCalls.json rename to tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol.0.4.25.LowLevelCalls.json index d1da18b14..0b60c1163 100644 --- a/tests/detectors/low-level-calls/0.4.25/low_level_calls.sol.0.4.25.LowLevelCalls.json +++ b/tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol.0.4.25.LowLevelCalls.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 51, "length": 112, - "filename_relative": "tests/detectors/low-level-calls/0.4.25/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.4.25/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", "is_dependency": false, "lines": [ 5, @@ -27,9 +27,9 @@ "source_mapping": { "start": 29, "length": 136, - "filename_relative": "tests/detectors/low-level-calls/0.4.25/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.4.25/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", "is_dependency": false, "lines": [ 4, @@ -51,9 +51,9 @@ "source_mapping": { "start": 111, "length": 45, - "filename_relative": "tests/detectors/low-level-calls/0.4.25/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.4.25/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", "is_dependency": false, "lines": [ 6 @@ -68,9 +68,9 @@ "source_mapping": { "start": 51, "length": 112, - "filename_relative": "tests/detectors/low-level-calls/0.4.25/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.4.25/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", "is_dependency": false, "lines": [ 5, @@ -87,9 +87,9 @@ "source_mapping": { "start": 29, "length": 136, - "filename_relative": "tests/detectors/low-level-calls/0.4.25/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.4.25/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", "is_dependency": false, "lines": [ 4, @@ -108,10 +108,10 @@ } } ], - "description": "Low level call in Sender.send(address) (tests/detectors/low-level-calls/0.4.25/low_level_calls.sol#5-7):\n\t- _receiver.call.value(msg.value).gas(7777)() (tests/detectors/low-level-calls/0.4.25/low_level_calls.sol#6)\n", - "markdown": "Low level call in [Sender.send(address)](tests/detectors/low-level-calls/0.4.25/low_level_calls.sol#L5-L7):\n\t- [_receiver.call.value(msg.value).gas(7777)()](tests/detectors/low-level-calls/0.4.25/low_level_calls.sol#L6)\n", - "first_markdown_element": "tests/detectors/low-level-calls/0.4.25/low_level_calls.sol#L5-L7", - "id": "77c8d8f4e884ababeb6c197067a580529b5bbec638ebc1ac2761719de99c5ed1", + "description": "Low level call in Sender.send(address) (tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol#5-7):\n\t- _receiver.call.value(msg.value).gas(7777)() (tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol#6)\n", + "markdown": "Low level call in [Sender.send(address)](tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol#L5-L7):\n\t- [_receiver.call.value(msg.value).gas(7777)()](tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol#L6)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol#L5-L7", + "id": "1891e8bc686be03365c3a2eed6695666275aa30d9b8a9be7aa3d7e9437d1a65a", "check": "low-level-calls", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/low-level-calls/0.5.16/low_level_calls.sol b/tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol similarity index 100% rename from tests/detectors/low-level-calls/0.5.16/low_level_calls.sol rename to tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol diff --git a/tests/detectors/low-level-calls/0.5.16/low_level_calls.sol.0.5.16.LowLevelCalls.json b/tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol.0.5.16.LowLevelCalls.json similarity index 71% rename from tests/detectors/low-level-calls/0.5.16/low_level_calls.sol.0.5.16.LowLevelCalls.json rename to tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol.0.5.16.LowLevelCalls.json index 8849db969..5c8498e47 100644 --- a/tests/detectors/low-level-calls/0.5.16/low_level_calls.sol.0.5.16.LowLevelCalls.json +++ b/tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol.0.5.16.LowLevelCalls.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 51, "length": 112, - "filename_relative": "tests/detectors/low-level-calls/0.5.16/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.5.16/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", "is_dependency": false, "lines": [ 5, @@ -27,9 +27,9 @@ "source_mapping": { "start": 29, "length": 136, - "filename_relative": "tests/detectors/low-level-calls/0.5.16/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.5.16/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", "is_dependency": false, "lines": [ 4, @@ -51,9 +51,9 @@ "source_mapping": { "start": 111, "length": 45, - "filename_relative": "tests/detectors/low-level-calls/0.5.16/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.5.16/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", "is_dependency": false, "lines": [ 6 @@ -68,9 +68,9 @@ "source_mapping": { "start": 51, "length": 112, - "filename_relative": "tests/detectors/low-level-calls/0.5.16/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.5.16/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", "is_dependency": false, "lines": [ 5, @@ -87,9 +87,9 @@ "source_mapping": { "start": 29, "length": 136, - "filename_relative": "tests/detectors/low-level-calls/0.5.16/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.5.16/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", "is_dependency": false, "lines": [ 4, @@ -108,10 +108,10 @@ } } ], - "description": "Low level call in Sender.send(address) (tests/detectors/low-level-calls/0.5.16/low_level_calls.sol#5-7):\n\t- _receiver.call.value(msg.value).gas(7777)() (tests/detectors/low-level-calls/0.5.16/low_level_calls.sol#6)\n", - "markdown": "Low level call in [Sender.send(address)](tests/detectors/low-level-calls/0.5.16/low_level_calls.sol#L5-L7):\n\t- [_receiver.call.value(msg.value).gas(7777)()](tests/detectors/low-level-calls/0.5.16/low_level_calls.sol#L6)\n", - "first_markdown_element": "tests/detectors/low-level-calls/0.5.16/low_level_calls.sol#L5-L7", - "id": "63c001820deebca3c0e65f71e6d2c6ada9534d4aefd1a317e2332af26533f42e", + "description": "Low level call in Sender.send(address) (tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol#5-7):\n\t- _receiver.call.value(msg.value).gas(7777)() (tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol#6)\n", + "markdown": "Low level call in [Sender.send(address)](tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol#L5-L7):\n\t- [_receiver.call.value(msg.value).gas(7777)()](tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol#L6)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol#L5-L7", + "id": "faea7d741ed7b50f33370d71c431256bfcf9c3e0d2d753f250456288039484fc", "check": "low-level-calls", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/low-level-calls/0.6.11/low_level_calls.sol b/tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol similarity index 100% rename from tests/detectors/low-level-calls/0.6.11/low_level_calls.sol rename to tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol diff --git a/tests/detectors/low-level-calls/0.6.11/low_level_calls.sol.0.6.11.LowLevelCalls.json b/tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol.0.6.11.LowLevelCalls.json similarity index 71% rename from tests/detectors/low-level-calls/0.6.11/low_level_calls.sol.0.6.11.LowLevelCalls.json rename to tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol.0.6.11.LowLevelCalls.json index 248146114..24733492b 100644 --- a/tests/detectors/low-level-calls/0.6.11/low_level_calls.sol.0.6.11.LowLevelCalls.json +++ b/tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol.0.6.11.LowLevelCalls.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 51, "length": 112, - "filename_relative": "tests/detectors/low-level-calls/0.6.11/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.6.11/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", "is_dependency": false, "lines": [ 5, @@ -27,9 +27,9 @@ "source_mapping": { "start": 29, "length": 136, - "filename_relative": "tests/detectors/low-level-calls/0.6.11/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.6.11/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", "is_dependency": false, "lines": [ 4, @@ -51,9 +51,9 @@ "source_mapping": { "start": 111, "length": 45, - "filename_relative": "tests/detectors/low-level-calls/0.6.11/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.6.11/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", "is_dependency": false, "lines": [ 6 @@ -68,9 +68,9 @@ "source_mapping": { "start": 51, "length": 112, - "filename_relative": "tests/detectors/low-level-calls/0.6.11/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.6.11/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", "is_dependency": false, "lines": [ 5, @@ -87,9 +87,9 @@ "source_mapping": { "start": 29, "length": 136, - "filename_relative": "tests/detectors/low-level-calls/0.6.11/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.6.11/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", "is_dependency": false, "lines": [ 4, @@ -108,10 +108,10 @@ } } ], - "description": "Low level call in Sender.send(address) (tests/detectors/low-level-calls/0.6.11/low_level_calls.sol#5-7):\n\t- _receiver.call.value(msg.value).gas(7777)() (tests/detectors/low-level-calls/0.6.11/low_level_calls.sol#6)\n", - "markdown": "Low level call in [Sender.send(address)](tests/detectors/low-level-calls/0.6.11/low_level_calls.sol#L5-L7):\n\t- [_receiver.call.value(msg.value).gas(7777)()](tests/detectors/low-level-calls/0.6.11/low_level_calls.sol#L6)\n", - "first_markdown_element": "tests/detectors/low-level-calls/0.6.11/low_level_calls.sol#L5-L7", - "id": "af64e4f5c7127bf9646b2f1810f9977d0de6d8c27683a42915067fc0efa11f75", + "description": "Low level call in Sender.send(address) (tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol#5-7):\n\t- _receiver.call.value(msg.value).gas(7777)() (tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol#6)\n", + "markdown": "Low level call in [Sender.send(address)](tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol#L5-L7):\n\t- [_receiver.call.value(msg.value).gas(7777)()](tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol#L6)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol#L5-L7", + "id": "79efc16fdd7c9cafb6ea0b7bf20805c61342b0205d80e50a74d16eb0240837fe", "check": "low-level-calls", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/low-level-calls/0.7.6/low_level_calls.sol b/tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol similarity index 100% rename from tests/detectors/low-level-calls/0.7.6/low_level_calls.sol rename to tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol diff --git a/tests/detectors/low-level-calls/0.7.6/low_level_calls.sol.0.7.6.LowLevelCalls.json b/tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol.0.7.6.LowLevelCalls.json similarity index 72% rename from tests/detectors/low-level-calls/0.7.6/low_level_calls.sol.0.7.6.LowLevelCalls.json rename to tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol.0.7.6.LowLevelCalls.json index 58cae0bcf..28ee31e98 100644 --- a/tests/detectors/low-level-calls/0.7.6/low_level_calls.sol.0.7.6.LowLevelCalls.json +++ b/tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol.0.7.6.LowLevelCalls.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 51, "length": 112, - "filename_relative": "tests/detectors/low-level-calls/0.7.6/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.7.6/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", "is_dependency": false, "lines": [ 5, @@ -27,9 +27,9 @@ "source_mapping": { "start": 29, "length": 136, - "filename_relative": "tests/detectors/low-level-calls/0.7.6/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.7.6/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", "is_dependency": false, "lines": [ 4, @@ -51,9 +51,9 @@ "source_mapping": { "start": 111, "length": 45, - "filename_relative": "tests/detectors/low-level-calls/0.7.6/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.7.6/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", "is_dependency": false, "lines": [ 6 @@ -68,9 +68,9 @@ "source_mapping": { "start": 51, "length": 112, - "filename_relative": "tests/detectors/low-level-calls/0.7.6/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.7.6/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", "is_dependency": false, "lines": [ 5, @@ -87,9 +87,9 @@ "source_mapping": { "start": 29, "length": 136, - "filename_relative": "tests/detectors/low-level-calls/0.7.6/low_level_calls.sol", + "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/low-level-calls/0.7.6/low_level_calls.sol", + "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", "is_dependency": false, "lines": [ 4, @@ -108,10 +108,10 @@ } } ], - "description": "Low level call in Sender.send(address) (tests/detectors/low-level-calls/0.7.6/low_level_calls.sol#5-7):\n\t- _receiver.call{gas: 7777,value: msg.value}() (tests/detectors/low-level-calls/0.7.6/low_level_calls.sol#6)\n", - "markdown": "Low level call in [Sender.send(address)](tests/detectors/low-level-calls/0.7.6/low_level_calls.sol#L5-L7):\n\t- [_receiver.call{gas: 7777,value: msg.value}()](tests/detectors/low-level-calls/0.7.6/low_level_calls.sol#L6)\n", - "first_markdown_element": "tests/detectors/low-level-calls/0.7.6/low_level_calls.sol#L5-L7", - "id": "ec014cc9f1ed1d83294a16253fc735b22f22eebba3953cdae61f6547550fd64d", + "description": "Low level call in Sender.send(address) (tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol#5-7):\n\t- _receiver.call{gas: 7777,value: msg.value}() (tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol#6)\n", + "markdown": "Low level call in [Sender.send(address)](tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol#L5-L7):\n\t- [_receiver.call{gas: 7777,value: msg.value}()](tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol#L6)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol#L5-L7", + "id": "690c796e376fac67085b713c1fbe904c601545e617d290918e244f82ecf12bbb", "check": "low-level-calls", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol b/tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol similarity index 100% rename from tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol rename to tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol diff --git a/tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol.0.4.25.MappingDeletionDetection.json b/tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol.0.4.25.MappingDeletionDetection.json similarity index 76% rename from tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol.0.4.25.MappingDeletionDetection.json rename to tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol.0.4.25.MappingDeletionDetection.json index 322681651..3a68c56a3 100644 --- a/tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol.0.4.25.MappingDeletionDetection.json +++ b/tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol.0.4.25.MappingDeletionDetection.json @@ -1,5 +1,181 @@ [ [ + { + "elements": [ + { + "type": "function", + "name": "deleteSt", + "source_mapping": { + "start": 114, + "length": 70, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 9, + 10, + 11 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Lib", + "source_mapping": { + "start": 29, + "length": 158, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deleteSt(Lib.MyStruct[1])" + } + }, + { + "type": "struct", + "name": "MyStruct", + "source_mapping": { + "start": 47, + "length": 61, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 5, + 6, + 7 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Lib", + "source_mapping": { + "start": 29, + "length": 158, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "node", + "name": "delete st[0]", + "source_mapping": { + "start": 165, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 10 + ], + "starting_column": 9, + "ending_column": 21 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deleteSt", + "source_mapping": { + "start": 114, + "length": 70, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 9, + 10, + 11 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Lib", + "source_mapping": { + "start": 29, + "length": 158, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deleteSt(Lib.MyStruct[1])" + } + } + } + } + ], + "description": "Lib.deleteSt(Lib.MyStruct[1]) (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#5-7) which contains a mapping:\n\t-delete st[0] (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#10)\n", + "markdown": "[Lib.deleteSt(Lib.MyStruct[1])](tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L9-L11) deletes [Lib.MyStruct](tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L5-L7) which contains a mapping:\n\t-[delete st[0]](tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L9-L11", + "id": "480f143e218317272b848a3585bad43e4e06d4ebee428388434fd9782dd7a6ea", + "check": "mapping-deletion", + "impact": "Medium", + "confidence": "High" + }, { "elements": [ { @@ -8,9 +184,9 @@ "source_mapping": { "start": 544, "length": 137, - "filename_relative": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", "is_dependency": false, "lines": [ 28, @@ -28,9 +204,9 @@ "source_mapping": { "start": 189, "length": 825, - "filename_relative": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", "is_dependency": false, "lines": [ 15, @@ -76,9 +252,9 @@ "source_mapping": { "start": 218, "length": 94, - "filename_relative": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", "is_dependency": false, "lines": [ 17, @@ -96,9 +272,9 @@ "source_mapping": { "start": 189, "length": 825, - "filename_relative": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", "is_dependency": false, "lines": [ 15, @@ -143,9 +319,9 @@ "source_mapping": { "start": 650, "length": 24, - "filename_relative": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", "is_dependency": false, "lines": [ 30 @@ -160,9 +336,9 @@ "source_mapping": { "start": 544, "length": 137, - "filename_relative": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", "is_dependency": false, "lines": [ 28, @@ -180,9 +356,9 @@ "source_mapping": { "start": 189, "length": 825, - "filename_relative": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", "is_dependency": false, "lines": [ 15, @@ -225,186 +401,10 @@ } } ], - "description": "Balances.deleteBalance(uint256) (tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol#28-31) deletes Balances.BalancesStruct (tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol#17-20) which contains a mapping:\n\t-delete stackBalance[idx] (tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol#30)\n", - "markdown": "[Balances.deleteBalance(uint256)](tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol#L28-L31) deletes [Balances.BalancesStruct](tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol#L17-L20) which contains a mapping:\n\t-[delete stackBalance[idx]](tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol#L30)\n", - "first_markdown_element": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol#L28-L31", - "id": "6c8848cdccd246661513f2c5d83d03b4a1cb4f07e198a671ce0f6d27fda257ad", - "check": "mapping-deletion", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "deleteSt", - "source_mapping": { - "start": 114, - "length": 70, - "filename_relative": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 158, - "filename_relative": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteSt(Lib.MyStruct[1])" - } - }, - { - "type": "struct", - "name": "MyStruct", - "source_mapping": { - "start": 47, - "length": 61, - "filename_relative": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 158, - "filename_relative": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "node", - "name": "delete st[0]", - "source_mapping": { - "start": 165, - "length": 12, - "filename_relative": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deleteSt", - "source_mapping": { - "start": 114, - "length": 70, - "filename_relative": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 158, - "filename_relative": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteSt(Lib.MyStruct[1])" - } - } - } - } - ], - "description": "Lib.deleteSt(Lib.MyStruct[1]) (tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol#5-7) which contains a mapping:\n\t-delete st[0] (tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol#10)\n", - "markdown": "[Lib.deleteSt(Lib.MyStruct[1])](tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol#L9-L11) deletes [Lib.MyStruct](tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol#L5-L7) which contains a mapping:\n\t-[delete st[0]](tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol#L10)\n", - "first_markdown_element": "tests/detectors/mapping-deletion/0.4.25/MappingDeletion.sol#L9-L11", - "id": "8c8313f12eb11c77c9acf1f683fe6d44a79ca1445e0d92cffd79c04a3462d3e9", + "description": "Balances.deleteBalance(uint256) (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#28-31) deletes Balances.BalancesStruct (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#17-20) which contains a mapping:\n\t-delete stackBalance[idx] (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#30)\n", + "markdown": "[Balances.deleteBalance(uint256)](tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L28-L31) deletes [Balances.BalancesStruct](tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L17-L20) which contains a mapping:\n\t-[delete stackBalance[idx]](tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L30)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L28-L31", + "id": "fd9b876be048b4faa465b510cd9a008e901c270f6a5776877b1d176dd79e3e89", "check": "mapping-deletion", "impact": "Medium", "confidence": "High" diff --git a/tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol b/tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol similarity index 100% rename from tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol rename to tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol diff --git a/tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol.0.5.16.MappingDeletionDetection.json b/tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol.0.5.16.MappingDeletionDetection.json similarity index 76% rename from tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol.0.5.16.MappingDeletionDetection.json rename to tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol.0.5.16.MappingDeletionDetection.json index 0a0c55407..4a1d285b4 100644 --- a/tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol.0.5.16.MappingDeletionDetection.json +++ b/tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol.0.5.16.MappingDeletionDetection.json @@ -1,5 +1,181 @@ [ [ + { + "elements": [ + { + "type": "function", + "name": "deleteSt", + "source_mapping": { + "start": 114, + "length": 80, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 9, + 10, + 11 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Lib", + "source_mapping": { + "start": 29, + "length": 168, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deleteSt(Lib.MyStruct[1])" + } + }, + { + "type": "struct", + "name": "MyStruct", + "source_mapping": { + "start": 47, + "length": 61, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 5, + 6, + 7 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Lib", + "source_mapping": { + "start": 29, + "length": 168, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "node", + "name": "delete st[0]", + "source_mapping": { + "start": 175, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 10 + ], + "starting_column": 9, + "ending_column": 21 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deleteSt", + "source_mapping": { + "start": 114, + "length": 80, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 9, + 10, + 11 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Lib", + "source_mapping": { + "start": 29, + "length": 168, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deleteSt(Lib.MyStruct[1])" + } + } + } + } + ], + "description": "Lib.deleteSt(Lib.MyStruct[1]) (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#5-7) which contains a mapping:\n\t-delete st[0] (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#10)\n", + "markdown": "[Lib.deleteSt(Lib.MyStruct[1])](tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L9-L11) deletes [Lib.MyStruct](tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L5-L7) which contains a mapping:\n\t-[delete st[0]](tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L9-L11", + "id": "25f78afdb82c912359dfe1e6ae5b252658ae3fcea89e6573b41133d9ee74485a", + "check": "mapping-deletion", + "impact": "Medium", + "confidence": "High" + }, { "elements": [ { @@ -8,9 +184,9 @@ "source_mapping": { "start": 595, "length": 137, - "filename_relative": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", "is_dependency": false, "lines": [ 29, @@ -28,9 +204,9 @@ "source_mapping": { "start": 199, "length": 866, - "filename_relative": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", "is_dependency": false, "lines": [ 15, @@ -77,9 +253,9 @@ "source_mapping": { "start": 228, "length": 94, - "filename_relative": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", "is_dependency": false, "lines": [ 17, @@ -97,9 +273,9 @@ "source_mapping": { "start": 199, "length": 866, - "filename_relative": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", "is_dependency": false, "lines": [ 15, @@ -145,9 +321,9 @@ "source_mapping": { "start": 701, "length": 24, - "filename_relative": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", "is_dependency": false, "lines": [ 31 @@ -162,9 +338,9 @@ "source_mapping": { "start": 595, "length": 137, - "filename_relative": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", "is_dependency": false, "lines": [ 29, @@ -182,9 +358,9 @@ "source_mapping": { "start": 199, "length": 866, - "filename_relative": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", "is_dependency": false, "lines": [ 15, @@ -228,186 +404,10 @@ } } ], - "description": "Balances.deleteBalance(uint256) (tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol#29-32) deletes Balances.BalancesStruct (tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol#17-20) which contains a mapping:\n\t-delete stackBalance[idx] (tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol#31)\n", - "markdown": "[Balances.deleteBalance(uint256)](tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol#L29-L32) deletes [Balances.BalancesStruct](tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol#L17-L20) which contains a mapping:\n\t-[delete stackBalance[idx]](tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol#L31)\n", - "first_markdown_element": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol#L29-L32", - "id": "22a793185576322b937d4887f31b8cb0b7c1cef90dde52abceb5ce57918267ec", - "check": "mapping-deletion", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "deleteSt", - "source_mapping": { - "start": 114, - "length": 80, - "filename_relative": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteSt(Lib.MyStruct[1])" - } - }, - { - "type": "struct", - "name": "MyStruct", - "source_mapping": { - "start": 47, - "length": 61, - "filename_relative": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "node", - "name": "delete st[0]", - "source_mapping": { - "start": 175, - "length": 12, - "filename_relative": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deleteSt", - "source_mapping": { - "start": 114, - "length": 80, - "filename_relative": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteSt(Lib.MyStruct[1])" - } - } - } - } - ], - "description": "Lib.deleteSt(Lib.MyStruct[1]) (tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol#5-7) which contains a mapping:\n\t-delete st[0] (tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol#10)\n", - "markdown": "[Lib.deleteSt(Lib.MyStruct[1])](tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol#L9-L11) deletes [Lib.MyStruct](tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol#L5-L7) which contains a mapping:\n\t-[delete st[0]](tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol#L10)\n", - "first_markdown_element": "tests/detectors/mapping-deletion/0.5.16/MappingDeletion.sol#L9-L11", - "id": "4c08076815986fec8b813cb66a7f7fe7002a5e87179bbd46e59279da2f46e992", + "description": "Balances.deleteBalance(uint256) (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#29-32) deletes Balances.BalancesStruct (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#17-20) which contains a mapping:\n\t-delete stackBalance[idx] (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#31)\n", + "markdown": "[Balances.deleteBalance(uint256)](tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L29-L32) deletes [Balances.BalancesStruct](tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L17-L20) which contains a mapping:\n\t-[delete stackBalance[idx]](tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L31)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L29-L32", + "id": "e32795b53dcf7a1a5f2c10b588df584da1907d195e9ed3c48f020813ccd01d61", "check": "mapping-deletion", "impact": "Medium", "confidence": "High" diff --git a/tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol b/tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol similarity index 100% rename from tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol rename to tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol diff --git a/tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol.0.6.11.MappingDeletionDetection.json b/tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol.0.6.11.MappingDeletionDetection.json similarity index 76% rename from tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol.0.6.11.MappingDeletionDetection.json rename to tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol.0.6.11.MappingDeletionDetection.json index 40e10b66b..9bbd114f7 100644 --- a/tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol.0.6.11.MappingDeletionDetection.json +++ b/tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol.0.6.11.MappingDeletionDetection.json @@ -1,181 +1,5 @@ [ [ - { - "elements": [ - { - "type": "function", - "name": "deleteSt", - "source_mapping": { - "start": 114, - "length": 80, - "filename_relative": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteSt(Lib.MyStruct[1])" - } - }, - { - "type": "struct", - "name": "MyStruct", - "source_mapping": { - "start": 47, - "length": 61, - "filename_relative": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "node", - "name": "delete st[0]", - "source_mapping": { - "start": 175, - "length": 12, - "filename_relative": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deleteSt", - "source_mapping": { - "start": 114, - "length": 80, - "filename_relative": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteSt(Lib.MyStruct[1])" - } - } - } - } - ], - "description": "Lib.deleteSt(Lib.MyStruct[1]) (tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol#5-7) which contains a mapping:\n\t-delete st[0] (tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol#10)\n", - "markdown": "[Lib.deleteSt(Lib.MyStruct[1])](tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol#L9-L11) deletes [Lib.MyStruct](tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol#L5-L7) which contains a mapping:\n\t-[delete st[0]](tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol#L10)\n", - "first_markdown_element": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol#L9-L11", - "id": "08c9067f48ad8538ab7e311aacd07ac4cc0ffbfe6ce2ccfd9ba9cd2a9e799eda", - "check": "mapping-deletion", - "impact": "Medium", - "confidence": "High" - }, { "elements": [ { @@ -184,9 +8,9 @@ "source_mapping": { "start": 595, "length": 137, - "filename_relative": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", "is_dependency": false, "lines": [ 29, @@ -204,9 +28,9 @@ "source_mapping": { "start": 199, "length": 866, - "filename_relative": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", "is_dependency": false, "lines": [ 15, @@ -253,9 +77,9 @@ "source_mapping": { "start": 228, "length": 94, - "filename_relative": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", "is_dependency": false, "lines": [ 17, @@ -273,9 +97,9 @@ "source_mapping": { "start": 199, "length": 866, - "filename_relative": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", "is_dependency": false, "lines": [ 15, @@ -321,9 +145,9 @@ "source_mapping": { "start": 701, "length": 24, - "filename_relative": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", "is_dependency": false, "lines": [ 31 @@ -338,9 +162,9 @@ "source_mapping": { "start": 595, "length": 137, - "filename_relative": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", "is_dependency": false, "lines": [ 29, @@ -358,9 +182,9 @@ "source_mapping": { "start": 199, "length": 866, - "filename_relative": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", "is_dependency": false, "lines": [ 15, @@ -404,10 +228,186 @@ } } ], - "description": "Balances.deleteBalance(uint256) (tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol#29-32) deletes Balances.BalancesStruct (tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol#17-20) which contains a mapping:\n\t-delete stackBalance[idx] (tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol#31)\n", - "markdown": "[Balances.deleteBalance(uint256)](tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol#L29-L32) deletes [Balances.BalancesStruct](tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol#L17-L20) which contains a mapping:\n\t-[delete stackBalance[idx]](tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol#L31)\n", - "first_markdown_element": "tests/detectors/mapping-deletion/0.6.11/MappingDeletion.sol#L29-L32", - "id": "6b7def5c6f4b5683fbf00d5b66df0f54110a6af8fbd0781b352dd72df5baccbc", + "description": "Balances.deleteBalance(uint256) (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#29-32) deletes Balances.BalancesStruct (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#17-20) which contains a mapping:\n\t-delete stackBalance[idx] (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#31)\n", + "markdown": "[Balances.deleteBalance(uint256)](tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L29-L32) deletes [Balances.BalancesStruct](tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L17-L20) which contains a mapping:\n\t-[delete stackBalance[idx]](tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L31)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L29-L32", + "id": "36e71dab3809852d2405eb28b790c702876d1368c5a8c2c5ca1a601bab67d3b8", + "check": "mapping-deletion", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "deleteSt", + "source_mapping": { + "start": 114, + "length": 80, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 9, + 10, + 11 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Lib", + "source_mapping": { + "start": 29, + "length": 168, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deleteSt(Lib.MyStruct[1])" + } + }, + { + "type": "struct", + "name": "MyStruct", + "source_mapping": { + "start": 47, + "length": 61, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 5, + 6, + 7 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Lib", + "source_mapping": { + "start": 29, + "length": 168, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "node", + "name": "delete st[0]", + "source_mapping": { + "start": 175, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 10 + ], + "starting_column": 9, + "ending_column": 21 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deleteSt", + "source_mapping": { + "start": 114, + "length": 80, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 9, + 10, + 11 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Lib", + "source_mapping": { + "start": 29, + "length": 168, + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deleteSt(Lib.MyStruct[1])" + } + } + } + } + ], + "description": "Lib.deleteSt(Lib.MyStruct[1]) (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#5-7) which contains a mapping:\n\t-delete st[0] (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#10)\n", + "markdown": "[Lib.deleteSt(Lib.MyStruct[1])](tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L9-L11) deletes [Lib.MyStruct](tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L5-L7) which contains a mapping:\n\t-[delete st[0]](tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L9-L11", + "id": "62c206de50149e2a37cc89a4737e53aafba3cdec86127e87633d3e7e2ba3fc65", "check": "mapping-deletion", "impact": "Medium", "confidence": "High" diff --git a/tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol b/tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol similarity index 100% rename from tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol rename to tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol diff --git a/tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol.0.7.6.MappingDeletionDetection.json b/tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol.0.7.6.MappingDeletionDetection.json similarity index 76% rename from tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol.0.7.6.MappingDeletionDetection.json rename to tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol.0.7.6.MappingDeletionDetection.json index a1c8bd02b..b77765921 100644 --- a/tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol.0.7.6.MappingDeletionDetection.json +++ b/tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol.0.7.6.MappingDeletionDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 595, "length": 137, - "filename_relative": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "is_dependency": false, "lines": [ 29, @@ -28,9 +28,9 @@ "source_mapping": { "start": 199, "length": 866, - "filename_relative": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "is_dependency": false, "lines": [ 15, @@ -77,9 +77,9 @@ "source_mapping": { "start": 228, "length": 94, - "filename_relative": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "is_dependency": false, "lines": [ 17, @@ -97,9 +97,9 @@ "source_mapping": { "start": 199, "length": 866, - "filename_relative": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "is_dependency": false, "lines": [ 15, @@ -145,9 +145,9 @@ "source_mapping": { "start": 701, "length": 24, - "filename_relative": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "is_dependency": false, "lines": [ 31 @@ -162,9 +162,9 @@ "source_mapping": { "start": 595, "length": 137, - "filename_relative": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "is_dependency": false, "lines": [ 29, @@ -182,9 +182,9 @@ "source_mapping": { "start": 199, "length": 866, - "filename_relative": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "is_dependency": false, "lines": [ 15, @@ -228,10 +228,10 @@ } } ], - "description": "Balances.deleteBalance(uint256) (tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol#29-32) deletes Balances.BalancesStruct (tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol#17-20) which contains a mapping:\n\t-delete stackBalance[idx] (tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol#31)\n", - "markdown": "[Balances.deleteBalance(uint256)](tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol#L29-L32) deletes [Balances.BalancesStruct](tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol#L17-L20) which contains a mapping:\n\t-[delete stackBalance[idx]](tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol#L31)\n", - "first_markdown_element": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol#L29-L32", - "id": "8b8d404f4b41f38833ede30ad76bd30b8ad035a2efc18a292426e554599b549b", + "description": "Balances.deleteBalance(uint256) (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#29-32) deletes Balances.BalancesStruct (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#17-20) which contains a mapping:\n\t-delete stackBalance[idx] (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#31)\n", + "markdown": "[Balances.deleteBalance(uint256)](tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L29-L32) deletes [Balances.BalancesStruct](tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L17-L20) which contains a mapping:\n\t-[delete stackBalance[idx]](tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L31)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L29-L32", + "id": "be5ede96c6fee54dfce4422097c8fedb873edf56795b146bda5a64bf4dda87d3", "check": "mapping-deletion", "impact": "Medium", "confidence": "High" @@ -244,9 +244,9 @@ "source_mapping": { "start": 114, "length": 80, - "filename_relative": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "is_dependency": false, "lines": [ 9, @@ -263,9 +263,9 @@ "source_mapping": { "start": 29, "length": 168, - "filename_relative": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "is_dependency": false, "lines": [ 3, @@ -293,9 +293,9 @@ "source_mapping": { "start": 47, "length": 61, - "filename_relative": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "is_dependency": false, "lines": [ 5, @@ -312,9 +312,9 @@ "source_mapping": { "start": 29, "length": 168, - "filename_relative": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "is_dependency": false, "lines": [ 3, @@ -341,9 +341,9 @@ "source_mapping": { "start": 175, "length": 12, - "filename_relative": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "is_dependency": false, "lines": [ 10 @@ -358,9 +358,9 @@ "source_mapping": { "start": 114, "length": 80, - "filename_relative": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "is_dependency": false, "lines": [ 9, @@ -377,9 +377,9 @@ "source_mapping": { "start": 29, "length": 168, - "filename_relative": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol", + "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", "is_dependency": false, "lines": [ 3, @@ -404,10 +404,10 @@ } } ], - "description": "Lib.deleteSt(Lib.MyStruct[1]) (tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol#5-7) which contains a mapping:\n\t-delete st[0] (tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol#10)\n", - "markdown": "[Lib.deleteSt(Lib.MyStruct[1])](tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol#L9-L11) deletes [Lib.MyStruct](tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol#L5-L7) which contains a mapping:\n\t-[delete st[0]](tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol#L10)\n", - "first_markdown_element": "tests/detectors/mapping-deletion/0.7.6/MappingDeletion.sol#L9-L11", - "id": "a6c44f7353505e72d74433eef65af07e90cc95c3797d5b395766255f0ecb91e1", + "description": "Lib.deleteSt(Lib.MyStruct[1]) (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#5-7) which contains a mapping:\n\t-delete st[0] (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#10)\n", + "markdown": "[Lib.deleteSt(Lib.MyStruct[1])](tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L9-L11) deletes [Lib.MyStruct](tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L5-L7) which contains a mapping:\n\t-[delete st[0]](tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L9-L11", + "id": "e60cb56bfbbca04e075ecc29366ae58fcdd9ee4dc865f8b0094f7ea5394b92a0", "check": "mapping-deletion", "impact": "Medium", "confidence": "High" diff --git a/tests/detectors/missing-inheritance/0.4.25/unimplemented_interface.sol b/tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol similarity index 100% rename from tests/detectors/missing-inheritance/0.4.25/unimplemented_interface.sol rename to tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol diff --git a/tests/detectors/missing-inheritance/0.4.25/unimplemented_interface.sol.0.4.25.MissingInheritance.json b/tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol.0.4.25.MissingInheritance.json similarity index 57% rename from tests/detectors/missing-inheritance/0.4.25/unimplemented_interface.sol.0.4.25.MissingInheritance.json rename to tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol.0.4.25.MissingInheritance.json index 467d65961..a3dc88481 100644 --- a/tests/detectors/missing-inheritance/0.4.25/unimplemented_interface.sol.0.4.25.MissingInheritance.json +++ b/tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol.0.4.25.MissingInheritance.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 68, "length": 89, - "filename_relative": "tests/detectors/missing-inheritance/0.4.25/unimplemented_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-inheritance/0.4.25/unimplemented_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol", "is_dependency": false, "lines": [ 5, @@ -30,9 +30,9 @@ "source_mapping": { "start": 0, "length": 66, - "filename_relative": "tests/detectors/missing-inheritance/0.4.25/unimplemented_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-inheritance/0.4.25/unimplemented_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol", "is_dependency": false, "lines": [ 1, @@ -44,9 +44,9 @@ } } ], - "description": "Something (tests/detectors/missing-inheritance/0.4.25/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/detectors/missing-inheritance/0.4.25/unimplemented_interface.sol#1-3)\n", - "markdown": "[Something](tests/detectors/missing-inheritance/0.4.25/unimplemented_interface.sol#L5-L10) should inherit from [ISomething](tests/detectors/missing-inheritance/0.4.25/unimplemented_interface.sol#L1-L3)\n", - "first_markdown_element": "tests/detectors/missing-inheritance/0.4.25/unimplemented_interface.sol#L5-L10", + "description": "Something (tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol#1-3)\n", + "markdown": "[Something](tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol#L5-L10) should inherit from [ISomething](tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol#L1-L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol#L5-L10", "id": "58962dc72a6c49524a027e8e1615ab92be30f1a0f5ef0eb4a029204687159649", "check": "missing-inheritance", "impact": "Informational", diff --git a/tests/detectors/missing-inheritance/0.5.16/unimplemented_interface.sol b/tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol similarity index 100% rename from tests/detectors/missing-inheritance/0.5.16/unimplemented_interface.sol rename to tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol diff --git a/tests/detectors/missing-inheritance/0.5.16/unimplemented_interface.sol.0.5.16.MissingInheritance.json b/tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol.0.5.16.MissingInheritance.json similarity index 57% rename from tests/detectors/missing-inheritance/0.5.16/unimplemented_interface.sol.0.5.16.MissingInheritance.json rename to tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol.0.5.16.MissingInheritance.json index 5561e4bf8..85d422120 100644 --- a/tests/detectors/missing-inheritance/0.5.16/unimplemented_interface.sol.0.5.16.MissingInheritance.json +++ b/tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol.0.5.16.MissingInheritance.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 68, "length": 89, - "filename_relative": "tests/detectors/missing-inheritance/0.5.16/unimplemented_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-inheritance/0.5.16/unimplemented_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol", "is_dependency": false, "lines": [ 5, @@ -30,9 +30,9 @@ "source_mapping": { "start": 0, "length": 66, - "filename_relative": "tests/detectors/missing-inheritance/0.5.16/unimplemented_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-inheritance/0.5.16/unimplemented_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol", "is_dependency": false, "lines": [ 1, @@ -44,9 +44,9 @@ } } ], - "description": "Something (tests/detectors/missing-inheritance/0.5.16/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/detectors/missing-inheritance/0.5.16/unimplemented_interface.sol#1-3)\n", - "markdown": "[Something](tests/detectors/missing-inheritance/0.5.16/unimplemented_interface.sol#L5-L10) should inherit from [ISomething](tests/detectors/missing-inheritance/0.5.16/unimplemented_interface.sol#L1-L3)\n", - "first_markdown_element": "tests/detectors/missing-inheritance/0.5.16/unimplemented_interface.sol#L5-L10", + "description": "Something (tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol#1-3)\n", + "markdown": "[Something](tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol#L5-L10) should inherit from [ISomething](tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol#L1-L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol#L5-L10", "id": "58962dc72a6c49524a027e8e1615ab92be30f1a0f5ef0eb4a029204687159649", "check": "missing-inheritance", "impact": "Informational", diff --git a/tests/detectors/missing-inheritance/0.6.11/unimplemented_interface.sol b/tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol similarity index 100% rename from tests/detectors/missing-inheritance/0.6.11/unimplemented_interface.sol rename to tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol diff --git a/tests/detectors/missing-inheritance/0.6.11/unimplemented_interface.sol.0.6.11.MissingInheritance.json b/tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol.0.6.11.MissingInheritance.json similarity index 57% rename from tests/detectors/missing-inheritance/0.6.11/unimplemented_interface.sol.0.6.11.MissingInheritance.json rename to tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol.0.6.11.MissingInheritance.json index 40adbfb75..5c992d241 100644 --- a/tests/detectors/missing-inheritance/0.6.11/unimplemented_interface.sol.0.6.11.MissingInheritance.json +++ b/tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol.0.6.11.MissingInheritance.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 68, "length": 89, - "filename_relative": "tests/detectors/missing-inheritance/0.6.11/unimplemented_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-inheritance/0.6.11/unimplemented_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol", "is_dependency": false, "lines": [ 5, @@ -30,9 +30,9 @@ "source_mapping": { "start": 0, "length": 66, - "filename_relative": "tests/detectors/missing-inheritance/0.6.11/unimplemented_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-inheritance/0.6.11/unimplemented_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol", "is_dependency": false, "lines": [ 1, @@ -44,9 +44,9 @@ } } ], - "description": "Something (tests/detectors/missing-inheritance/0.6.11/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/detectors/missing-inheritance/0.6.11/unimplemented_interface.sol#1-3)\n", - "markdown": "[Something](tests/detectors/missing-inheritance/0.6.11/unimplemented_interface.sol#L5-L10) should inherit from [ISomething](tests/detectors/missing-inheritance/0.6.11/unimplemented_interface.sol#L1-L3)\n", - "first_markdown_element": "tests/detectors/missing-inheritance/0.6.11/unimplemented_interface.sol#L5-L10", + "description": "Something (tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol#1-3)\n", + "markdown": "[Something](tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol#L5-L10) should inherit from [ISomething](tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol#L1-L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol#L5-L10", "id": "58962dc72a6c49524a027e8e1615ab92be30f1a0f5ef0eb4a029204687159649", "check": "missing-inheritance", "impact": "Informational", diff --git a/tests/detectors/missing-inheritance/0.7.6/unimplemented_interface.sol b/tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol similarity index 100% rename from tests/detectors/missing-inheritance/0.7.6/unimplemented_interface.sol rename to tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol diff --git a/tests/detectors/missing-inheritance/0.7.6/unimplemented_interface.sol.0.7.6.MissingInheritance.json b/tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol.0.7.6.MissingInheritance.json similarity index 57% rename from tests/detectors/missing-inheritance/0.7.6/unimplemented_interface.sol.0.7.6.MissingInheritance.json rename to tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol.0.7.6.MissingInheritance.json index 734587caa..ff13fef9e 100644 --- a/tests/detectors/missing-inheritance/0.7.6/unimplemented_interface.sol.0.7.6.MissingInheritance.json +++ b/tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol.0.7.6.MissingInheritance.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 68, "length": 89, - "filename_relative": "tests/detectors/missing-inheritance/0.7.6/unimplemented_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-inheritance/0.7.6/unimplemented_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol", "is_dependency": false, "lines": [ 5, @@ -30,9 +30,9 @@ "source_mapping": { "start": 0, "length": 66, - "filename_relative": "tests/detectors/missing-inheritance/0.7.6/unimplemented_interface.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-inheritance/0.7.6/unimplemented_interface.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol", "is_dependency": false, "lines": [ 1, @@ -44,9 +44,9 @@ } } ], - "description": "Something (tests/detectors/missing-inheritance/0.7.6/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/detectors/missing-inheritance/0.7.6/unimplemented_interface.sol#1-3)\n", - "markdown": "[Something](tests/detectors/missing-inheritance/0.7.6/unimplemented_interface.sol#L5-L10) should inherit from [ISomething](tests/detectors/missing-inheritance/0.7.6/unimplemented_interface.sol#L1-L3)\n", - "first_markdown_element": "tests/detectors/missing-inheritance/0.7.6/unimplemented_interface.sol#L5-L10", + "description": "Something (tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol#1-3)\n", + "markdown": "[Something](tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol#L5-L10) should inherit from [ISomething](tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol#L1-L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol#L5-L10", "id": "58962dc72a6c49524a027e8e1615ab92be30f1a0f5ef0eb4a029204687159649", "check": "missing-inheritance", "impact": "Informational", diff --git a/tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol b/tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol similarity index 100% rename from tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol rename to tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol diff --git a/tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol.0.4.25.MissingZeroAddressValidation.json b/tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol.0.4.25.MissingZeroAddressValidation.json similarity index 83% rename from tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol.0.4.25.MissingZeroAddressValidation.json rename to tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol.0.4.25.MissingZeroAddressValidation.json index 18573c251..528c5c312 100644 --- a/tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol.0.4.25.MissingZeroAddressValidation.json +++ b/tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol.0.4.25.MissingZeroAddressValidation.json @@ -6,33 +6,33 @@ "type": "variable", "name": "addr", "source_mapping": { - "start": 393, + "start": 706, "length": 12, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 19 + 28 ], - "starting_column": 26, - "ending_column": 38 + "starting_column": 22, + "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2_transfer", + "name": "bad4_call", "source_mapping": { - "start": 370, - "length": 114, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "start": 687, + "length": 112, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 28, + 29, + 30 ], "starting_column": 3, "ending_column": 4 @@ -44,9 +44,9 @@ "source_mapping": { "start": 0, "length": 1977, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -125,42 +125,42 @@ "ending_column": 2 } }, - "signature": "bad2_transfer(address)" + "signature": "bad4_call(address)" } } } }, { "type": "node", - "name": "addr.transfer(msg.value)", + "name": "addr.call.value(msg.value)()", "source_mapping": { - "start": 427, - "length": 24, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "start": 740, + "length": 30, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 20 + 29 ], "starting_column": 5, - "ending_column": 29 + "ending_column": 35 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2_transfer", + "name": "bad4_call", "source_mapping": { - "start": 370, - "length": 114, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "start": 687, + "length": 112, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 28, + 29, + 30 ], "starting_column": 3, "ending_column": 4 @@ -172,9 +172,9 @@ "source_mapping": { "start": 0, "length": 1977, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -253,16 +253,16 @@ "ending_column": 2 } }, - "signature": "bad2_transfer(address)" + "signature": "bad4_call(address)" } } } } ], - "description": "C.bad2_transfer(address).addr (tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#19) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#20)\n", - "markdown": "[C.bad2_transfer(address).addr](tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L19) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L20)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L19", - "id": "16629b342aad1ee3e0d3f933781eea91f1cb34b1770f84cb38a5d911e15b3476", + "description": "C.bad4_call(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#28) lacks a zero-check on :\n\t\t- addr.call.value(msg.value)() (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#29)\n", + "markdown": "[C.bad4_call(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L28) lacks a zero-check on :\n\t\t- [addr.call.value(msg.value)()](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L29)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L28", + "id": "544803ccc40b7173048033bb584b82acf387458db7d524dd0b19304d734b5da0", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" @@ -275,9 +275,9 @@ "source_mapping": { "start": 511, "length": 12, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 23 @@ -292,9 +292,9 @@ "source_mapping": { "start": 488, "length": 195, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 23, @@ -312,9 +312,9 @@ "source_mapping": { "start": 0, "length": 1977, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -404,9 +404,9 @@ "source_mapping": { "start": 545, "length": 24, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 24 @@ -421,9 +421,9 @@ "source_mapping": { "start": 488, "length": 195, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 23, @@ -441,9 +441,9 @@ "source_mapping": { "start": 0, "length": 1977, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -528,10 +528,10 @@ } } ], - "description": "C.bad3_transfer(address).addr (tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#23) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#24)\n", - "markdown": "[C.bad3_transfer(address).addr](tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L23) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L24)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L23", - "id": "27318d51c369e1e169a889a6c2678a023a22e1e3a691ab41a429684e338d2d1e", + "description": "C.bad3_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#23) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#24)\n", + "markdown": "[C.bad3_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L23) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L24)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L23", + "id": "905cc3a02bbc7be7f1c14c8f4c825dfb00d1ab3a5090f4ad447c10422b443a04", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" @@ -542,33 +542,33 @@ "type": "variable", "name": "addr", "source_mapping": { - "start": 706, + "start": 393, "length": 12, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 28 + 19 ], - "starting_column": 22, - "ending_column": 34 + "starting_column": 26, + "ending_column": 38 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4_call", + "name": "bad2_transfer", "source_mapping": { - "start": 687, - "length": 112, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "start": 370, + "length": 114, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 28, - 29, - 30 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -580,9 +580,9 @@ "source_mapping": { "start": 0, "length": 1977, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -661,42 +661,42 @@ "ending_column": 2 } }, - "signature": "bad4_call(address)" + "signature": "bad2_transfer(address)" } } } }, { "type": "node", - "name": "addr.call.value(msg.value)()", + "name": "addr.transfer(msg.value)", "source_mapping": { - "start": 740, - "length": 30, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "start": 427, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 29 + 20 ], "starting_column": 5, - "ending_column": 35 + "ending_column": 29 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4_call", + "name": "bad2_transfer", "source_mapping": { - "start": 687, - "length": 112, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "start": 370, + "length": 114, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 28, - 29, - 30 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -708,9 +708,9 @@ "source_mapping": { "start": 0, "length": 1977, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -789,16 +789,16 @@ "ending_column": 2 } }, - "signature": "bad4_call(address)" + "signature": "bad2_transfer(address)" } } } } ], - "description": "C.bad4_call(address).addr (tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#28) lacks a zero-check on :\n\t\t- addr.call.value(msg.value)() (tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#29)\n", - "markdown": "[C.bad4_call(address).addr](tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L28) lacks a zero-check on :\n\t\t- [addr.call.value(msg.value)()](tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L29)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L28", - "id": "34b73dbecfa159bc5631cb95ff2343c92792d80f448fc425b7d1bba399108073", + "description": "C.bad2_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#19) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#20)\n", + "markdown": "[C.bad2_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L19) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L20)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L19", + "id": "9568826f86b5efbcef2979632d0817fc45c2af86306f82169a179e9f79b44a57", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" @@ -811,9 +811,9 @@ "source_mapping": { "start": 149, "length": 17, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 10 @@ -828,9 +828,9 @@ "source_mapping": { "start": 125, "length": 108, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 10, @@ -847,9 +847,9 @@ "source_mapping": { "start": 0, "length": 1977, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -939,9 +939,9 @@ "source_mapping": { "start": 188, "length": 17, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 11 @@ -956,9 +956,9 @@ "source_mapping": { "start": 125, "length": 108, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 10, @@ -975,9 +975,9 @@ "source_mapping": { "start": 0, "length": 1977, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1062,10 +1062,10 @@ } } ], - "description": "C.bad0_set_owner(address).new_owner (tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#10) lacks a zero-check on :\n\t\t- owner = new_owner (tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#11)\n", - "markdown": "[C.bad0_set_owner(address).new_owner](tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L10) lacks a zero-check on :\n\t\t- [owner = new_owner](tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L11)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L10", - "id": "4215a731670a0150f45d8cd682dc81ed85ffd5268cbad6ac9fe8bd044e54f74d", + "description": "C.bad0_set_owner(address).new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#10) lacks a zero-check on :\n\t\t- owner = new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#11)\n", + "markdown": "[C.bad0_set_owner(address).new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L10) lacks a zero-check on :\n\t\t- [owner = new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L10", + "id": "b3ed5b509e79b10fb11c06792bc1bbea4110fee55583a43a38d79d2048c613f1", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" @@ -1078,9 +1078,9 @@ "source_mapping": { "start": 256, "length": 12, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 14 @@ -1095,9 +1095,9 @@ "source_mapping": { "start": 237, "length": 129, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 14, @@ -1115,9 +1115,9 @@ "source_mapping": { "start": 0, "length": 1977, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1207,9 +1207,9 @@ "source_mapping": { "start": 290, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 15 @@ -1224,9 +1224,9 @@ "source_mapping": { "start": 237, "length": 129, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 14, @@ -1244,9 +1244,9 @@ "source_mapping": { "start": 0, "length": 1977, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1336,9 +1336,9 @@ "source_mapping": { "start": 340, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 16 @@ -1353,9 +1353,9 @@ "source_mapping": { "start": 237, "length": 129, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 14, @@ -1373,9 +1373,9 @@ "source_mapping": { "start": 0, "length": 1977, - "filename_relative": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1460,10 +1460,10 @@ } } ], - "description": "C.bad1_send(address).addr (tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#14) lacks a zero-check on :\n\t\t- addr.send(msg.value) (tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#15)\n\t\t- addr.send(msg.value) (tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#16)\n", - "markdown": "[C.bad1_send(address).addr](tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L14) lacks a zero-check on :\n\t\t- [addr.send(msg.value)](tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L15)\n\t\t- [addr.send(msg.value)](tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L16)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L14", - "id": "dd2af335a7782a70944073bf1cf5dea69845ddcf6a45ea86a9fcf59793b151c8", + "description": "C.bad1_send(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#14) lacks a zero-check on :\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#15)\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#16)\n", + "markdown": "[C.bad1_send(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L14) lacks a zero-check on :\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L15)\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L14", + "id": "fa7268ec4d72f167f61bdc17b887b27ac333d895b5a3827fcd7bfca395d349f4", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol b/tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol similarity index 100% rename from tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol rename to tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol diff --git a/tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol.0.5.16.MissingZeroAddressValidation.json b/tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol.0.5.16.MissingZeroAddressValidation.json similarity index 83% rename from tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol.0.5.16.MissingZeroAddressValidation.json rename to tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol.0.5.16.MissingZeroAddressValidation.json index 3587bcd4b..9e048e04a 100644 --- a/tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol.0.5.16.MissingZeroAddressValidation.json +++ b/tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol.0.5.16.MissingZeroAddressValidation.json @@ -6,34 +6,33 @@ "type": "variable", "name": "addr", "source_mapping": { - "start": 256, + "start": 401, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 14 + 19 ], - "starting_column": 22, - "ending_column": 42 + "starting_column": 26, + "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1_send", + "name": "bad2_transfer", "source_mapping": { - "start": 237, - "length": 137, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 378, + "length": 122, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -45,9 +44,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -126,43 +125,42 @@ "ending_column": 2 } }, - "signature": "bad1_send(address)" + "signature": "bad2_transfer(address)" } } } }, { "type": "node", - "name": "addr.send(msg.value)", + "name": "addr.transfer(msg.value)", "source_mapping": { - "start": 298, - "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 443, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 15 + 20 ], "starting_column": 5, - "ending_column": 25 + "ending_column": 29 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1_send", + "name": "bad2_transfer", "source_mapping": { - "start": 237, - "length": 137, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 378, + "length": 122, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -174,9 +172,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -255,43 +253,53 @@ "ending_column": 2 } }, - "signature": "bad1_send(address)" + "signature": "bad2_transfer(address)" } } } - }, + } + ], + "description": "C.bad2_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#19) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#20)\n", + "markdown": "[C.bad2_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L19) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L20)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L19", + "id": "29db16277296360f7c637e16b59118e50ab70e3122f09c006f234dbf93ea13f6", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ { - "type": "node", - "name": "addr.send(msg.value)", + "type": "variable", + "name": "addr", "source_mapping": { - "start": 348, + "start": 730, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 16 + 28 ], - "starting_column": 5, - "ending_column": 25 + "starting_column": 22, + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1_send", + "name": "bad4_call", "source_mapping": { - "start": 237, - "length": 137, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 711, + "length": 120, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17 + 28, + 29, + 30 ], "starting_column": 3, "ending_column": 4 @@ -303,9 +311,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -384,53 +392,42 @@ "ending_column": 2 } }, - "signature": "bad1_send(address)" + "signature": "bad4_call(address)" } } } - } - ], - "description": "C.bad1_send(address).addr (tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#14) lacks a zero-check on :\n\t\t- addr.send(msg.value) (tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#15)\n\t\t- addr.send(msg.value) (tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#16)\n", - "markdown": "[C.bad1_send(address).addr](tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L14) lacks a zero-check on :\n\t\t- [addr.send(msg.value)](tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L15)\n\t\t- [addr.send(msg.value)](tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L16)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L14", - "id": "3d9ba6630d8f1357ab26196f519d74d6410a8e52994ae341d26a17d466200308", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ + }, { - "type": "variable", - "name": "addr", + "type": "node", + "name": "addr.call.value(msg.value)()", "source_mapping": { - "start": 401, - "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 772, + "length": 30, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 19 + 29 ], - "starting_column": 26, - "ending_column": 46 + "starting_column": 5, + "ending_column": 35 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2_transfer", + "name": "bad4_call", "source_mapping": { - "start": 378, - "length": 122, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 711, + "length": 120, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 28, + 29, + 30 ], "starting_column": 3, "ending_column": 4 @@ -442,9 +439,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -523,42 +520,53 @@ "ending_column": 2 } }, - "signature": "bad2_transfer(address)" + "signature": "bad4_call(address)" } } } - }, + } + ], + "description": "C.bad4_call(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#28) lacks a zero-check on :\n\t\t- addr.call.value(msg.value)() (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#29)\n", + "markdown": "[C.bad4_call(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L28) lacks a zero-check on :\n\t\t- [addr.call.value(msg.value)()](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L29)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L28", + "id": "9c6ff3aef7b83b809a20128ba0e37b41e372536a7c00f5102f47dd2108e0c637", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ { - "type": "node", - "name": "addr.transfer(msg.value)", + "type": "variable", + "name": "new_owner", "source_mapping": { - "start": 443, - "length": 24, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 149, + "length": 17, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 20 + 10 ], - "starting_column": 5, - "ending_column": 29 + "starting_column": 27, + "ending_column": 44 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2_transfer", + "name": "bad0_set_owner", "source_mapping": { - "start": 378, - "length": 122, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 125, + "length": 108, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 10, + 11, + 12 ], "starting_column": 3, "ending_column": 4 @@ -570,9 +578,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -651,54 +659,42 @@ "ending_column": 2 } }, - "signature": "bad2_transfer(address)" + "signature": "bad0_set_owner(address)" } } } - } - ], - "description": "C.bad2_transfer(address).addr (tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#19) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#20)\n", - "markdown": "[C.bad2_transfer(address).addr](tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L19) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L20)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L19", - "id": "654c703c39420ad30e6624b6a98892faffc5e90820e7aabfd3cd66fe8870b7b8", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ + }, { - "type": "variable", - "name": "addr", + "type": "node", + "name": "owner = new_owner", "source_mapping": { - "start": 527, - "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 188, + "length": 17, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 23 + 11 ], - "starting_column": 26, - "ending_column": 46 + "starting_column": 5, + "ending_column": 22 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3_transfer", + "name": "bad0_set_owner", "source_mapping": { - "start": 504, - "length": 203, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 125, + "length": 108, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26 + 10, + 11, + 12 ], "starting_column": 3, "ending_column": 4 @@ -710,9 +706,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -791,26 +787,37 @@ "ending_column": 2 } }, - "signature": "bad3_transfer(address)" + "signature": "bad0_set_owner(address)" } } } - }, + } + ], + "description": "C.bad0_set_owner(address).new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#10) lacks a zero-check on :\n\t\t- owner = new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#11)\n", + "markdown": "[C.bad0_set_owner(address).new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L10) lacks a zero-check on :\n\t\t- [owner = new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L10", + "id": "b180df9baff938a7cbf352a98d3f08ef7b28b8988f646501a82d249385277dde", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ { - "type": "node", - "name": "addr.transfer(msg.value)", + "type": "variable", + "name": "addr", "source_mapping": { - "start": 569, - "length": 24, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 527, + "length": 20, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 24 + 23 ], - "starting_column": 5, - "ending_column": 29 + "starting_column": 26, + "ending_column": 46 }, "type_specific_fields": { "parent": { @@ -819,9 +826,9 @@ "source_mapping": { "start": 504, "length": 203, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 23, @@ -839,9 +846,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -924,49 +931,39 @@ } } } - } - ], - "description": "C.bad3_transfer(address).addr (tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#23) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#24)\n", - "markdown": "[C.bad3_transfer(address).addr](tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L23) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L24)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L23", - "id": "98f43dd716a11685725ad4c615b07dd773bcf0f1c7710357fa1a5606084dd999", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ + }, { - "type": "variable", - "name": "addr", + "type": "node", + "name": "addr.transfer(msg.value)", "source_mapping": { - "start": 730, - "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 569, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 28 + 24 ], - "starting_column": 22, - "ending_column": 42 + "starting_column": 5, + "ending_column": 29 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4_call", + "name": "bad3_transfer", "source_mapping": { - "start": 711, - "length": 120, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 504, + "length": 203, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 28, - 29, - 30 + 23, + 24, + 25, + 26 ], "starting_column": 3, "ending_column": 4 @@ -978,9 +975,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1059,42 +1056,54 @@ "ending_column": 2 } }, - "signature": "bad4_call(address)" + "signature": "bad3_transfer(address)" } } } - }, + } + ], + "description": "C.bad3_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#23) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#24)\n", + "markdown": "[C.bad3_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L23) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L24)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L23", + "id": "c84a2e53313b2eeb0587d13197812e88d1bed8509570ec333ebf21c9b0aed68d", + "check": "missing-zero-check", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ { - "type": "node", - "name": "addr.call.value(msg.value)()", + "type": "variable", + "name": "addr", "source_mapping": { - "start": 772, - "length": 30, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 256, + "length": 20, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 29 + 14 ], - "starting_column": 5, - "ending_column": 35 + "starting_column": 22, + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4_call", + "name": "bad1_send", "source_mapping": { - "start": 711, - "length": 120, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 237, + "length": 137, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 28, - 29, - 30 + 14, + 15, + 16, + 17 ], "starting_column": 3, "ending_column": 4 @@ -1106,9 +1115,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1187,53 +1196,43 @@ "ending_column": 2 } }, - "signature": "bad4_call(address)" + "signature": "bad1_send(address)" } } } - } - ], - "description": "C.bad4_call(address).addr (tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#28) lacks a zero-check on :\n\t\t- addr.call.value(msg.value)() (tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#29)\n", - "markdown": "[C.bad4_call(address).addr](tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L28) lacks a zero-check on :\n\t\t- [addr.call.value(msg.value)()](tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L29)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L28", - "id": "aa90b9a8002d093f5996492eae0d441bde928e8187fc6d2790f973f6383d6095", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ + }, { - "type": "variable", - "name": "new_owner", + "type": "node", + "name": "addr.send(msg.value)", "source_mapping": { - "start": 149, - "length": 17, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 298, + "length": 20, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 10 + 15 ], - "starting_column": 27, - "ending_column": 44 + "starting_column": 5, + "ending_column": 25 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0_set_owner", + "name": "bad1_send", "source_mapping": { - "start": 125, - "length": 108, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 237, + "length": 137, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 10, - 11, - 12 + 14, + 15, + 16, + 17 ], "starting_column": 3, "ending_column": 4 @@ -1245,9 +1244,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1326,42 +1325,43 @@ "ending_column": 2 } }, - "signature": "bad0_set_owner(address)" + "signature": "bad1_send(address)" } } } }, { "type": "node", - "name": "owner = new_owner", + "name": "addr.send(msg.value)", "source_mapping": { - "start": 188, - "length": 17, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 348, + "length": 20, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 11 + 16 ], "starting_column": 5, - "ending_column": 22 + "ending_column": 25 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0_set_owner", + "name": "bad1_send", "source_mapping": { - "start": 125, - "length": 108, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "start": 237, + "length": 137, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 10, - 11, - 12 + 14, + 15, + 16, + 17 ], "starting_column": 3, "ending_column": 4 @@ -1373,9 +1373,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1454,16 +1454,16 @@ "ending_column": 2 } }, - "signature": "bad0_set_owner(address)" + "signature": "bad1_send(address)" } } } } ], - "description": "C.bad0_set_owner(address).new_owner (tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#10) lacks a zero-check on :\n\t\t- owner = new_owner (tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#11)\n", - "markdown": "[C.bad0_set_owner(address).new_owner](tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L10) lacks a zero-check on :\n\t\t- [owner = new_owner](tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L11)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L10", - "id": "ac59285350b35c2b885a6e9efe641474ae51b830fad5856f622fe264096e44cd", + "description": "C.bad1_send(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#14) lacks a zero-check on :\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#15)\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#16)\n", + "markdown": "[C.bad1_send(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L14) lacks a zero-check on :\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L15)\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L14", + "id": "de1c8c305b18cb8b7a1ed68aad59db3e1b058cff9d003bee9f6b40aaf9f0d859", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol b/tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol similarity index 100% rename from tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol rename to tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol diff --git a/tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol.0.6.11.MissingZeroAddressValidation.json b/tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol.0.6.11.MissingZeroAddressValidation.json similarity index 83% rename from tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol.0.6.11.MissingZeroAddressValidation.json rename to tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol.0.6.11.MissingZeroAddressValidation.json index b2536efa0..688a270f4 100644 --- a/tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol.0.6.11.MissingZeroAddressValidation.json +++ b/tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol.0.6.11.MissingZeroAddressValidation.json @@ -6,33 +6,33 @@ "type": "variable", "name": "addr", "source_mapping": { - "start": 730, + "start": 401, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 28 + 19 ], - "starting_column": 22, - "ending_column": 42 + "starting_column": 26, + "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4_call", + "name": "bad2_transfer", "source_mapping": { - "start": 711, - "length": 120, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "start": 378, + "length": 122, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 28, - 29, - 30 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -44,9 +44,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -125,42 +125,42 @@ "ending_column": 2 } }, - "signature": "bad4_call(address)" + "signature": "bad2_transfer(address)" } } } }, { "type": "node", - "name": "addr.call.value(msg.value)()", + "name": "addr.transfer(msg.value)", "source_mapping": { - "start": 772, - "length": 30, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "start": 443, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 29 + 20 ], "starting_column": 5, - "ending_column": 35 + "ending_column": 29 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4_call", + "name": "bad2_transfer", "source_mapping": { - "start": 711, - "length": 120, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "start": 378, + "length": 122, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 28, - 29, - 30 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -172,9 +172,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -253,16 +253,16 @@ "ending_column": 2 } }, - "signature": "bad4_call(address)" + "signature": "bad2_transfer(address)" } } } } ], - "description": "C.bad4_call(address).addr (tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#28) lacks a zero-check on :\n\t\t- addr.call.value(msg.value)() (tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#29)\n", - "markdown": "[C.bad4_call(address).addr](tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L28) lacks a zero-check on :\n\t\t- [addr.call.value(msg.value)()](tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L29)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L28", - "id": "174a4f81c4e872deda0a31c10f8136b52d60adc89ba9be1548b308a09e225763", + "description": "C.bad2_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#19) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#20)\n", + "markdown": "[C.bad2_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L19) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L20)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L19", + "id": "442dd9d8ab9bcdac1d8ff21404ec8b21d517cfb1601b16abf969175ef0c2be5b", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" @@ -275,9 +275,9 @@ "source_mapping": { "start": 149, "length": 17, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 10 @@ -292,9 +292,9 @@ "source_mapping": { "start": 125, "length": 108, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 10, @@ -311,9 +311,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -403,9 +403,9 @@ "source_mapping": { "start": 188, "length": 17, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 11 @@ -420,9 +420,9 @@ "source_mapping": { "start": 125, "length": 108, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 10, @@ -439,9 +439,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -526,10 +526,10 @@ } } ], - "description": "C.bad0_set_owner(address).new_owner (tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#10) lacks a zero-check on :\n\t\t- owner = new_owner (tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#11)\n", - "markdown": "[C.bad0_set_owner(address).new_owner](tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L10) lacks a zero-check on :\n\t\t- [owner = new_owner](tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L11)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L10", - "id": "1d2f6294ee0cfc4aae290fe04610e1df21d508008e75000ef017463482d78f95", + "description": "C.bad0_set_owner(address).new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#10) lacks a zero-check on :\n\t\t- owner = new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#11)\n", + "markdown": "[C.bad0_set_owner(address).new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L10) lacks a zero-check on :\n\t\t- [owner = new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L10", + "id": "4c88f4398c0c3744179e7766d1d37259cd78e17d4295fa26aeb4b857aee5eea1", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" @@ -542,9 +542,9 @@ "source_mapping": { "start": 256, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 14 @@ -559,9 +559,9 @@ "source_mapping": { "start": 237, "length": 137, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 14, @@ -579,9 +579,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -671,9 +671,9 @@ "source_mapping": { "start": 298, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 15 @@ -688,9 +688,9 @@ "source_mapping": { "start": 237, "length": 137, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 14, @@ -708,9 +708,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -800,9 +800,9 @@ "source_mapping": { "start": 348, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 16 @@ -817,9 +817,9 @@ "source_mapping": { "start": 237, "length": 137, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 14, @@ -837,9 +837,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -924,10 +924,10 @@ } } ], - "description": "C.bad1_send(address).addr (tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#14) lacks a zero-check on :\n\t\t- addr.send(msg.value) (tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#15)\n\t\t- addr.send(msg.value) (tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#16)\n", - "markdown": "[C.bad1_send(address).addr](tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L14) lacks a zero-check on :\n\t\t- [addr.send(msg.value)](tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L15)\n\t\t- [addr.send(msg.value)](tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L16)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L14", - "id": "21de216080f0f27154e9b3cd2fef7ead38dacc945160b619923c33344d636826", + "description": "C.bad1_send(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#14) lacks a zero-check on :\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#15)\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#16)\n", + "markdown": "[C.bad1_send(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L14) lacks a zero-check on :\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L15)\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L14", + "id": "e2713744ad519d45431324a0d9c81e886bcbfc85d09518af215830c73451ff41", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" @@ -938,33 +938,33 @@ "type": "variable", "name": "addr", "source_mapping": { - "start": 401, + "start": 730, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 19 + 28 ], - "starting_column": 26, - "ending_column": 46 + "starting_column": 22, + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2_transfer", + "name": "bad4_call", "source_mapping": { - "start": 378, - "length": 122, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "start": 711, + "length": 120, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 28, + 29, + 30 ], "starting_column": 3, "ending_column": 4 @@ -976,9 +976,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1057,42 +1057,42 @@ "ending_column": 2 } }, - "signature": "bad2_transfer(address)" + "signature": "bad4_call(address)" } } } }, { "type": "node", - "name": "addr.transfer(msg.value)", + "name": "addr.call.value(msg.value)()", "source_mapping": { - "start": 443, - "length": 24, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "start": 772, + "length": 30, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 20 + 29 ], "starting_column": 5, - "ending_column": 29 + "ending_column": 35 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2_transfer", + "name": "bad4_call", "source_mapping": { - "start": 378, - "length": 122, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "start": 711, + "length": 120, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 28, + 29, + 30 ], "starting_column": 3, "ending_column": 4 @@ -1104,9 +1104,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1185,16 +1185,16 @@ "ending_column": 2 } }, - "signature": "bad2_transfer(address)" + "signature": "bad4_call(address)" } } } } ], - "description": "C.bad2_transfer(address).addr (tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#19) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#20)\n", - "markdown": "[C.bad2_transfer(address).addr](tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L19) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L20)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L19", - "id": "3d8300f19d40cb2f76fcb587f94e3dfc751319b119bd83af4cd7f962b680feb8", + "description": "C.bad4_call(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#28) lacks a zero-check on :\n\t\t- addr.call.value(msg.value)() (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#29)\n", + "markdown": "[C.bad4_call(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L28) lacks a zero-check on :\n\t\t- [addr.call.value(msg.value)()](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L29)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L28", + "id": "e8a430e2c04153f1b71097d5bfd3889508325fa8eac71d27557338053138382b", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" @@ -1207,9 +1207,9 @@ "source_mapping": { "start": 527, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 23 @@ -1224,9 +1224,9 @@ "source_mapping": { "start": 504, "length": 203, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 23, @@ -1244,9 +1244,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1336,9 +1336,9 @@ "source_mapping": { "start": 569, "length": 24, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 24 @@ -1353,9 +1353,9 @@ "source_mapping": { "start": 504, "length": 203, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 23, @@ -1373,9 +1373,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1460,10 +1460,10 @@ } } ], - "description": "C.bad3_transfer(address).addr (tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#23) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#24)\n", - "markdown": "[C.bad3_transfer(address).addr](tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L23) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L24)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L23", - "id": "efee9ceff8491c62ed42aab7c70b0a8d9c7731af8ecb304e6deafcc64a20c6f4", + "description": "C.bad3_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#23) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#24)\n", + "markdown": "[C.bad3_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L23) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L24)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L23", + "id": "f526bdc00d5c7d9ac356dd58801eb48db5fd6f3bdfc28812e0a183cd9cfa3fd6", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol b/tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol similarity index 100% rename from tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol rename to tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol diff --git a/tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol.0.7.6.MissingZeroAddressValidation.json b/tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol.0.7.6.MissingZeroAddressValidation.json similarity index 84% rename from tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol.0.7.6.MissingZeroAddressValidation.json rename to tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol.0.7.6.MissingZeroAddressValidation.json index d64dcd7ed..afaceab84 100644 --- a/tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol.0.7.6.MissingZeroAddressValidation.json +++ b/tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol.0.7.6.MissingZeroAddressValidation.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 256, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 14 @@ -25,9 +25,9 @@ "source_mapping": { "start": 237, "length": 137, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 14, @@ -45,9 +45,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -137,9 +137,9 @@ "source_mapping": { "start": 298, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 15 @@ -154,9 +154,9 @@ "source_mapping": { "start": 237, "length": 137, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 14, @@ -174,9 +174,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -266,9 +266,9 @@ "source_mapping": { "start": 348, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 16 @@ -283,9 +283,9 @@ "source_mapping": { "start": 237, "length": 137, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 14, @@ -303,9 +303,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -390,10 +390,10 @@ } } ], - "description": "C.bad1_send(address).addr (tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#14) lacks a zero-check on :\n\t\t- addr.send(msg.value) (tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#15)\n\t\t- addr.send(msg.value) (tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#16)\n", - "markdown": "[C.bad1_send(address).addr](tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L14) lacks a zero-check on :\n\t\t- [addr.send(msg.value)](tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L15)\n\t\t- [addr.send(msg.value)](tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L16)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L14", - "id": "1a145c4f40c60c9db09f5743139503a60b40be83dda9c57f8c47a400f1bc5b8a", + "description": "C.bad1_send(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#14) lacks a zero-check on :\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#15)\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#16)\n", + "markdown": "[C.bad1_send(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L14) lacks a zero-check on :\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L15)\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L14", + "id": "2dfc801d756c1571f9e02d3506682b5712639e0223155e04545a3ee91d7c9ef8", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" @@ -406,9 +406,9 @@ "source_mapping": { "start": 527, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 23 @@ -423,9 +423,9 @@ "source_mapping": { "start": 504, "length": 203, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 23, @@ -443,9 +443,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -535,9 +535,9 @@ "source_mapping": { "start": 569, "length": 24, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 24 @@ -552,9 +552,9 @@ "source_mapping": { "start": 504, "length": 203, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 23, @@ -572,9 +572,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -659,10 +659,10 @@ } } ], - "description": "C.bad3_transfer(address).addr (tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#23) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#24)\n", - "markdown": "[C.bad3_transfer(address).addr](tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L23) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L24)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L23", - "id": "1cc3cad32b73e31e6d6f214b9a99b19c5bd5633ddf3ab58267a5870051c22a02", + "description": "C.bad3_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#23) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#24)\n", + "markdown": "[C.bad3_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L23) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L24)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L23", + "id": "5afb93bf3ba0c95d60e0f21547c13aba7fe5b7f22df69d8405c8c701d7e7fae7", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" @@ -671,35 +671,35 @@ "elements": [ { "type": "variable", - "name": "new_owner", + "name": "addr", "source_mapping": { - "start": 149, - "length": 17, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "start": 730, + "length": 20, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 10 + 28 ], - "starting_column": 27, - "ending_column": 44 + "starting_column": 22, + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0_set_owner", + "name": "bad4_call", "source_mapping": { - "start": 125, - "length": 108, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "start": 711, + "length": 120, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 10, - 11, - 12 + 28, + 29, + 30 ], "starting_column": 3, "ending_column": 4 @@ -711,9 +711,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -792,42 +792,42 @@ "ending_column": 2 } }, - "signature": "bad0_set_owner(address)" + "signature": "bad4_call(address)" } } } }, { "type": "node", - "name": "owner = new_owner", + "name": "addr.call{value: msg.value}()", "source_mapping": { - "start": 188, - "length": 17, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "start": 772, + "length": 30, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 11 + 29 ], "starting_column": 5, - "ending_column": 22 + "ending_column": 35 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0_set_owner", + "name": "bad4_call", "source_mapping": { - "start": 125, - "length": 108, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "start": 711, + "length": 120, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 10, - 11, - 12 + 28, + 29, + 30 ], "starting_column": 3, "ending_column": 4 @@ -839,9 +839,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -920,16 +920,16 @@ "ending_column": 2 } }, - "signature": "bad0_set_owner(address)" + "signature": "bad4_call(address)" } } } } ], - "description": "C.bad0_set_owner(address).new_owner (tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#10) lacks a zero-check on :\n\t\t- owner = new_owner (tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#11)\n", - "markdown": "[C.bad0_set_owner(address).new_owner](tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L10) lacks a zero-check on :\n\t\t- [owner = new_owner](tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L11)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L10", - "id": "2c8db81e6ce5a16bd76db4dd9d27d931037b6b06bacd06afa427e35f4dd22aa6", + "description": "C.bad4_call(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#28) lacks a zero-check on :\n\t\t- addr.call{value: msg.value}() (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#29)\n", + "markdown": "[C.bad4_call(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L28) lacks a zero-check on :\n\t\t- [addr.call{value: msg.value}()](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L29)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L28", + "id": "a7cc8d499df4abc336e824829e21282bf675383376d3a8503991fb66c158fb33", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" @@ -940,33 +940,33 @@ "type": "variable", "name": "addr", "source_mapping": { - "start": 730, + "start": 401, "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 28 + 19 ], - "starting_column": 22, - "ending_column": 42 + "starting_column": 26, + "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4_call", + "name": "bad2_transfer", "source_mapping": { - "start": 711, - "length": 120, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "start": 378, + "length": 122, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 28, - 29, - 30 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -978,9 +978,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1059,42 +1059,42 @@ "ending_column": 2 } }, - "signature": "bad4_call(address)" + "signature": "bad2_transfer(address)" } } } }, { "type": "node", - "name": "addr.call{value: msg.value}()", + "name": "addr.transfer(msg.value)", "source_mapping": { - "start": 772, - "length": 30, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "start": 443, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 29 + 20 ], "starting_column": 5, - "ending_column": 35 + "ending_column": 29 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4_call", + "name": "bad2_transfer", "source_mapping": { - "start": 711, - "length": 120, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "start": 378, + "length": 122, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 28, - 29, - 30 + 19, + 20, + 21 ], "starting_column": 3, "ending_column": 4 @@ -1106,9 +1106,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1187,16 +1187,16 @@ "ending_column": 2 } }, - "signature": "bad4_call(address)" + "signature": "bad2_transfer(address)" } } } } ], - "description": "C.bad4_call(address).addr (tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#28) lacks a zero-check on :\n\t\t- addr.call{value: msg.value}() (tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#29)\n", - "markdown": "[C.bad4_call(address).addr](tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L28) lacks a zero-check on :\n\t\t- [addr.call{value: msg.value}()](tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L29)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L28", - "id": "64e549d94c8869ed8c827ad3ee766cb23d4e8a64bc9b19e06d593fa8942363b4", + "description": "C.bad2_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#19) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#20)\n", + "markdown": "[C.bad2_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L19) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L20)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L19", + "id": "d2328d61a9a38239f4d1b59c12b409f399408cd478a6603207e9fe645a13d03f", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" @@ -1205,35 +1205,35 @@ "elements": [ { "type": "variable", - "name": "addr", + "name": "new_owner", "source_mapping": { - "start": 401, - "length": 20, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "start": 149, + "length": 17, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 19 + 10 ], - "starting_column": 26, - "ending_column": 46 + "starting_column": 27, + "ending_column": 44 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2_transfer", + "name": "bad0_set_owner", "source_mapping": { - "start": 378, - "length": 122, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "start": 125, + "length": 108, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 10, + 11, + 12 ], "starting_column": 3, "ending_column": 4 @@ -1245,9 +1245,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1326,42 +1326,42 @@ "ending_column": 2 } }, - "signature": "bad2_transfer(address)" + "signature": "bad0_set_owner(address)" } } } }, { "type": "node", - "name": "addr.transfer(msg.value)", + "name": "owner = new_owner", "source_mapping": { - "start": 443, - "length": 24, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "start": 188, + "length": 17, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 20 + 11 ], "starting_column": 5, - "ending_column": 29 + "ending_column": 22 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2_transfer", + "name": "bad0_set_owner", "source_mapping": { - "start": 378, - "length": 122, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "start": 125, + "length": 108, + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ - 19, - 20, - 21 + 10, + 11, + 12 ], "starting_column": 3, "ending_column": 4 @@ -1373,9 +1373,9 @@ "source_mapping": { "start": 0, "length": 2049, - "filename_relative": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol", + "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", "is_dependency": false, "lines": [ 1, @@ -1454,16 +1454,16 @@ "ending_column": 2 } }, - "signature": "bad2_transfer(address)" + "signature": "bad0_set_owner(address)" } } } } ], - "description": "C.bad2_transfer(address).addr (tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#19) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#20)\n", - "markdown": "[C.bad2_transfer(address).addr](tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L19) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L20)\n", - "first_markdown_element": "tests/detectors/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L19", - "id": "f7028c02d7b7a78ef72a33c7b976bcb047206b9c82a9acc39cdf11a5e188208f", + "description": "C.bad0_set_owner(address).new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#10) lacks a zero-check on :\n\t\t- owner = new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#11)\n", + "markdown": "[C.bad0_set_owner(address).new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L10) lacks a zero-check on :\n\t\t- [owner = new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L10", + "id": "fa1b673ca923bd1e66e6af3aacc82cef33b264cebf753032dbee23be1f62645e", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol b/tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol similarity index 100% rename from tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol rename to tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol diff --git a/tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol.0.4.25.MsgValueInLoop.json b/tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol.0.4.25.MsgValueInLoop.json similarity index 78% rename from tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol.0.4.25.MsgValueInLoop.json rename to tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol.0.4.25.MsgValueInLoop.json index 65e9981ae..430a11319 100644 --- a/tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol.0.4.25.MsgValueInLoop.json +++ b/tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol.0.4.25.MsgValueInLoop.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 61, "length": 179, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ 5, @@ -29,9 +29,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -78,9 +78,9 @@ "source_mapping": { "start": 188, "length": 35, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ 7 @@ -95,9 +95,9 @@ "source_mapping": { "start": 61, "length": 179, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ 5, @@ -116,9 +116,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -162,10 +162,10 @@ } } ], - "description": "C.bad(address[]) (tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#L7)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#L5-L9", - "id": "027924fc305bf0f3b5ac969d0581163babd157c200d89860a2ee0f3f0f32fb9e", + "description": "C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#7)\n", + "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L5-L9", + "id": "3874d3c7006d6d7671320db653fcc2dd0ef0fd9c1337c4c509670839ad4046a2", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" @@ -174,18 +174,22 @@ "elements": [ { "type": "function", - "name": "bad2_internal", + "name": "bad3", "source_mapping": { - "start": 425, - "length": 84, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "start": 515, + "length": 245, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ - 17, - 18, - 19 + 21, + 22, + 23, + 24, + 25, + 26, + 27 ], "starting_column": 5, "ending_column": 6 @@ -197,9 +201,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -237,40 +241,44 @@ "ending_column": 0 } }, - "signature": "bad2_internal(address)" + "signature": "bad3(address[])" } }, { "type": "node", - "name": "balances[a] += msg.value", + "name": "balances[receivers[j]] += msg.value", "source_mapping": { - "start": 478, - "length": 24, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "start": 694, + "length": 35, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ - 18 + 24 ], - "starting_column": 9, - "ending_column": 33 + "starting_column": 17, + "ending_column": 52 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2_internal", + "name": "bad3", "source_mapping": { - "start": 425, - "length": 84, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "start": 515, + "length": 245, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ - 17, - 18, - 19 + 21, + 22, + 23, + 24, + 25, + 26, + 27 ], "starting_column": 5, "ending_column": 6 @@ -282,9 +290,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -322,16 +330,16 @@ "ending_column": 0 } }, - "signature": "bad2_internal(address)" + "signature": "bad3(address[])" } } } } ], - "description": "C.bad2_internal(address) (tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#18)\n", - "markdown": "[C.bad2_internal(address)](tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#L18)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#L17-L19", - "id": "46e81ee3916dd92be3598ae1c853e34145102f527870dd2eb0409fee047ddc4d", + "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#24)\n", + "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L24)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L21-L27", + "id": "3a3cc8fae7c0d90880077b656ffaca0ddfd90bf9fc0763cd3d17e6151e935541", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" @@ -340,22 +348,18 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad2_internal", "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "start": 425, + "length": 84, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 + 17, + 18, + 19 ], "starting_column": 5, "ending_column": 6 @@ -367,9 +371,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -407,44 +411,40 @@ "ending_column": 0 } }, - "signature": "bad3(address[])" + "signature": "bad2_internal(address)" } }, { "type": "node", - "name": "balances[receivers[j]] += msg.value", + "name": "balances[a] += msg.value", "source_mapping": { - "start": 694, - "length": 35, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "start": 478, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ - 24 + 18 ], - "starting_column": 17, - "ending_column": 52 + "starting_column": 9, + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad2_internal", "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "start": 425, + "length": 84, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 + 17, + 18, + 19 ], "starting_column": 5, "ending_column": 6 @@ -456,9 +456,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -496,16 +496,16 @@ "ending_column": 0 } }, - "signature": "bad3(address[])" + "signature": "bad2_internal(address)" } } } } ], - "description": "C.bad3(address[]) (tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#24)\n", - "markdown": "[C.bad3(address[])](tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#L24)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.4.25/msg_value_loop.sol#L21-L27", - "id": "91bc78ce47280ec59296ebb0cf98afb5ede603b3c31025002c1c2ec1b940ad68", + "description": "C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#18)\n", + "markdown": "[C.bad2_internal(address)](tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L17-L19", + "id": "4bffc492aeda82de77a2d9ab055133609e03c430266919d983a7e46b85e4eeba", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol b/tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol similarity index 100% rename from tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol rename to tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol diff --git a/tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol.0.5.16.MsgValueInLoop.json b/tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol.0.5.16.MsgValueInLoop.json similarity index 78% rename from tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol.0.5.16.MsgValueInLoop.json rename to tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol.0.5.16.MsgValueInLoop.json index 778e912fd..968ded84f 100644 --- a/tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol.0.5.16.MsgValueInLoop.json +++ b/tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol.0.5.16.MsgValueInLoop.json @@ -4,20 +4,22 @@ "elements": [ { "type": "function", - "name": "bad", + "name": "bad3", "source_mapping": { - "start": 61, - "length": 179, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "start": 515, + "length": 245, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9 + 21, + 22, + 23, + 24, + 25, + 26, + 27 ], "starting_column": 5, "ending_column": 6 @@ -29,9 +31,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -69,42 +71,44 @@ "ending_column": 0 } }, - "signature": "bad(address[])" + "signature": "bad3(address[])" } }, { "type": "node", - "name": "balances[receivers[i]] += msg.value", + "name": "balances[receivers[j]] += msg.value", "source_mapping": { - "start": 188, + "start": 694, "length": 35, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ - 7 + 24 ], - "starting_column": 13, - "ending_column": 48 + "starting_column": 17, + "ending_column": 52 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad", + "name": "bad3", "source_mapping": { - "start": 61, - "length": 179, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "start": 515, + "length": 245, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9 + 21, + 22, + 23, + 24, + 25, + 26, + 27 ], "starting_column": 5, "ending_column": 6 @@ -116,9 +120,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -156,16 +160,16 @@ "ending_column": 0 } }, - "signature": "bad(address[])" + "signature": "bad3(address[])" } } } } ], - "description": "C.bad(address[]) (tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#L7)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#L5-L9", - "id": "73184041d050abe4e838c17a866f4b56dcb249488d85eecf48cde8eaad21511a", + "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#24)\n", + "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L24)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L21-L27", + "id": "1b4d9d1f725152eee13a5269b97a8443297f7f598051bfc4f67e93e02c12f165", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" @@ -178,9 +182,9 @@ "source_mapping": { "start": 425, "length": 84, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ 17, @@ -197,9 +201,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -246,9 +250,9 @@ "source_mapping": { "start": 478, "length": 24, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ 18 @@ -263,9 +267,9 @@ "source_mapping": { "start": 425, "length": 84, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ 17, @@ -282,9 +286,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -328,10 +332,10 @@ } } ], - "description": "C.bad2_internal(address) (tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#18)\n", - "markdown": "[C.bad2_internal(address)](tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#L18)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#L17-L19", - "id": "a7decdca7d1ca27f92038a6a0d1ee3899fe523fef53329f4bdd976040fe05fd4", + "description": "C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#18)\n", + "markdown": "[C.bad2_internal(address)](tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L17-L19", + "id": "406d8b51b71b115c08b097999756740459200deeb3c12901b301f32611f1b330", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" @@ -340,22 +344,20 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad", "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "start": 61, + "length": 179, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 + 5, + 6, + 7, + 8, + 9 ], "starting_column": 5, "ending_column": 6 @@ -367,9 +369,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -407,44 +409,42 @@ "ending_column": 0 } }, - "signature": "bad3(address[])" + "signature": "bad(address[])" } }, { "type": "node", - "name": "balances[receivers[j]] += msg.value", + "name": "balances[receivers[i]] += msg.value", "source_mapping": { - "start": 694, + "start": 188, "length": 35, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ - 24 + 7 ], - "starting_column": 17, - "ending_column": 52 + "starting_column": 13, + "ending_column": 48 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad", "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "start": 61, + "length": 179, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 + 5, + 6, + 7, + 8, + 9 ], "starting_column": 5, "ending_column": 6 @@ -456,9 +456,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -496,16 +496,16 @@ "ending_column": 0 } }, - "signature": "bad3(address[])" + "signature": "bad(address[])" } } } } ], - "description": "C.bad3(address[]) (tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#24)\n", - "markdown": "[C.bad3(address[])](tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#L24)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.5.16/msg_value_loop.sol#L21-L27", - "id": "e8b65da4e14be1243f400e5b4e656c10d7e360391ecdc376848c2c25c257f593", + "description": "C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#7)\n", + "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L5-L9", + "id": "8e4fef885c77d029459f90c7aff4b459dce05adc08b96fb80ce821611c9280d6", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol b/tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol similarity index 100% rename from tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol rename to tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol diff --git a/tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol.0.6.11.MsgValueInLoop.json b/tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol.0.6.11.MsgValueInLoop.json similarity index 78% rename from tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol.0.6.11.MsgValueInLoop.json rename to tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol.0.6.11.MsgValueInLoop.json index cca0c8183..01e99cd49 100644 --- a/tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol.0.6.11.MsgValueInLoop.json +++ b/tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol.0.6.11.MsgValueInLoop.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 425, "length": 84, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 17, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -76,9 +76,9 @@ "source_mapping": { "start": 478, "length": 24, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 18 @@ -93,9 +93,9 @@ "source_mapping": { "start": 425, "length": 84, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 17, @@ -112,9 +112,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -158,10 +158,10 @@ } } ], - "description": "C.bad2_internal(address) (tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#18)\n", - "markdown": "[C.bad2_internal(address)](tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#L18)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#L17-L19", - "id": "84b39e0706b72e42b4cf069a649c5825e35ed842871350cc064c8123396b6f96", + "description": "C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#18)\n", + "markdown": "[C.bad2_internal(address)](tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L17-L19", + "id": "097df3a5df3bcbc6783595f78fab5791b2cd9413acabcb0aa5694ff7d4309261", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" @@ -174,9 +174,9 @@ "source_mapping": { "start": 61, "length": 179, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 5, @@ -195,9 +195,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -244,9 +244,9 @@ "source_mapping": { "start": 188, "length": 35, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 7 @@ -261,9 +261,9 @@ "source_mapping": { "start": 61, "length": 179, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 5, @@ -282,9 +282,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -328,10 +328,10 @@ } } ], - "description": "C.bad(address[]) (tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#L7)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#L5-L9", - "id": "b8e2b147c51a880dc38a635915a0511954ade8ffeab3efd16e389a370e0c0b1b", + "description": "C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#7)\n", + "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L5-L9", + "id": "3a08148f1a55375f90c551e5841d47f4846720e07afa57707753a76e727adef7", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" @@ -344,9 +344,9 @@ "source_mapping": { "start": 515, "length": 245, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 21, @@ -367,9 +367,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -416,9 +416,9 @@ "source_mapping": { "start": 694, "length": 35, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 24 @@ -433,9 +433,9 @@ "source_mapping": { "start": 515, "length": 245, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 21, @@ -456,9 +456,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -502,10 +502,10 @@ } } ], - "description": "C.bad3(address[]) (tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#24)\n", - "markdown": "[C.bad3(address[])](tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#L24)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.6.11/msg_value_loop.sol#L21-L27", - "id": "d89c600adf6767e1270ee5b760bf2e5917e9f27aa77c86f956b55a883552bb0d", + "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#24)\n", + "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L24)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L21-L27", + "id": "78e8f933f8386fd2534f6fcf4908da3ac17d4362c1e605f31471eee0cc6ca833", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol b/tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol similarity index 100% rename from tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol rename to tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol diff --git a/tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol.0.7.6.MsgValueInLoop.json b/tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol.0.7.6.MsgValueInLoop.json similarity index 78% rename from tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol.0.7.6.MsgValueInLoop.json rename to tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol.0.7.6.MsgValueInLoop.json index aa435d582..21f59fbda 100644 --- a/tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol.0.7.6.MsgValueInLoop.json +++ b/tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol.0.7.6.MsgValueInLoop.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 425, "length": 84, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 17, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -76,9 +76,9 @@ "source_mapping": { "start": 478, "length": 24, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 18 @@ -93,9 +93,9 @@ "source_mapping": { "start": 425, "length": 84, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 17, @@ -112,9 +112,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -158,10 +158,10 @@ } } ], - "description": "C.bad2_internal(address) (tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#18)\n", - "markdown": "[C.bad2_internal(address)](tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#L18)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#L17-L19", - "id": "0fd3ac1c8051090ec1fe86fa9e1e5f8e7381d8eef3f252fede8dc3bb07e87104", + "description": "C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#18)\n", + "markdown": "[C.bad2_internal(address)](tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L17-L19", + "id": "565d76d19b082213e2aa31539b92593aede0e05d05828605c676e92609fbf8a2", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" @@ -174,9 +174,9 @@ "source_mapping": { "start": 515, "length": 245, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 21, @@ -197,9 +197,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -246,9 +246,9 @@ "source_mapping": { "start": 694, "length": 35, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 24 @@ -263,9 +263,9 @@ "source_mapping": { "start": 515, "length": 245, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 21, @@ -286,9 +286,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -332,10 +332,10 @@ } } ], - "description": "C.bad3(address[]) (tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#24)\n", - "markdown": "[C.bad3(address[])](tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#L24)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#L21-L27", - "id": "9a021823637092277317750625e1f63b1b6f4b394a5dd1fdde50088af8d9e805", + "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#24)\n", + "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L24)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L21-L27", + "id": "a711edee77437e7c35f4fa394c4fab613c39c581565149c7c82539481218e16c", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" @@ -348,9 +348,9 @@ "source_mapping": { "start": 61, "length": 179, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 5, @@ -369,9 +369,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -418,9 +418,9 @@ "source_mapping": { "start": 188, "length": 35, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 7 @@ -435,9 +435,9 @@ "source_mapping": { "start": 61, "length": 179, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 5, @@ -456,9 +456,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -502,10 +502,10 @@ } } ], - "description": "C.bad(address[]) (tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#L7)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.7.6/msg_value_loop.sol#L5-L9", - "id": "fd0c2f6abecbecd689c995b2cd3c30c9f1bd3763e34f4d5cb91788604f8ec3da", + "description": "C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#7)\n", + "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L5-L9", + "id": "fe6437a4c09b3dec514d996c7f6668d90b5ca1a73a8480d553e484952c24d34b", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol b/tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol similarity index 100% rename from tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol rename to tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol diff --git a/tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol.0.8.0.MsgValueInLoop.json b/tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol.0.8.0.MsgValueInLoop.json similarity index 78% rename from tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol.0.8.0.MsgValueInLoop.json rename to tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol.0.8.0.MsgValueInLoop.json index f23b887a0..46158ce52 100644 --- a/tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol.0.8.0.MsgValueInLoop.json +++ b/tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol.0.8.0.MsgValueInLoop.json @@ -4,20 +4,18 @@ "elements": [ { "type": "function", - "name": "bad", + "name": "bad2_internal", "source_mapping": { - "start": 61, - "length": 179, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "start": 425, + "length": 84, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9 + 17, + 18, + 19 ], "starting_column": 5, "ending_column": 6 @@ -29,9 +27,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -69,42 +67,40 @@ "ending_column": 0 } }, - "signature": "bad(address[])" + "signature": "bad2_internal(address)" } }, { "type": "node", - "name": "balances[receivers[i]] += msg.value", + "name": "balances[a] += msg.value", "source_mapping": { - "start": 188, - "length": 35, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "start": 478, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ - 7 + 18 ], - "starting_column": 13, - "ending_column": 48 + "starting_column": 9, + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad", + "name": "bad2_internal", "source_mapping": { - "start": 61, - "length": 179, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "start": 425, + "length": 84, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9 + 17, + 18, + 19 ], "starting_column": 5, "ending_column": 6 @@ -116,9 +112,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -156,16 +152,16 @@ "ending_column": 0 } }, - "signature": "bad(address[])" + "signature": "bad2_internal(address)" } } } } ], - "description": "C.bad(address[]) (tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#L7)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#L5-L9", - "id": "0051349cec04c37ffe5ac2f85a2dbbd4a567f5194c16278745de3b12a1c86cb9", + "description": "C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#18)\n", + "markdown": "[C.bad2_internal(address)](tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L17-L19", + "id": "093432027e9375993ba8dd36a6e36399dd18201c491d84b7e8810d06d4837141", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" @@ -174,18 +170,22 @@ "elements": [ { "type": "function", - "name": "bad2_internal", + "name": "bad3", "source_mapping": { - "start": 425, - "length": 84, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "start": 515, + "length": 245, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ - 17, - 18, - 19 + 21, + 22, + 23, + 24, + 25, + 26, + 27 ], "starting_column": 5, "ending_column": 6 @@ -197,9 +197,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -237,40 +237,44 @@ "ending_column": 0 } }, - "signature": "bad2_internal(address)" + "signature": "bad3(address[])" } }, { "type": "node", - "name": "balances[a] += msg.value", + "name": "balances[receivers[j]] += msg.value", "source_mapping": { - "start": 478, - "length": 24, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "start": 694, + "length": 35, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ - 18 + 24 ], - "starting_column": 9, - "ending_column": 33 + "starting_column": 17, + "ending_column": 52 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2_internal", + "name": "bad3", "source_mapping": { - "start": 425, - "length": 84, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "start": 515, + "length": 245, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ - 17, - 18, - 19 + 21, + 22, + 23, + 24, + 25, + 26, + 27 ], "starting_column": 5, "ending_column": 6 @@ -282,9 +286,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -322,16 +326,16 @@ "ending_column": 0 } }, - "signature": "bad2_internal(address)" + "signature": "bad3(address[])" } } } } ], - "description": "C.bad2_internal(address) (tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#18)\n", - "markdown": "[C.bad2_internal(address)](tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#L18)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#L17-L19", - "id": "0064bba498edf780c73f858d7a8d6cc42e1be323e288eea78622b8d84fe557bc", + "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#24)\n", + "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L24)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L21-L27", + "id": "7028c125d1fea9be89c5b58a4bd84c0f92c8c69ac05389c95f9a68d145130861", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" @@ -340,22 +344,20 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad", "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "start": 61, + "length": 179, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 + 5, + 6, + 7, + 8, + 9 ], "starting_column": 5, "ending_column": 6 @@ -367,9 +369,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -407,44 +409,42 @@ "ending_column": 0 } }, - "signature": "bad3(address[])" + "signature": "bad(address[])" } }, { "type": "node", - "name": "balances[receivers[j]] += msg.value", + "name": "balances[receivers[i]] += msg.value", "source_mapping": { - "start": 694, + "start": 188, "length": 35, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ - 24 + 7 ], - "starting_column": 17, - "ending_column": 52 + "starting_column": 13, + "ending_column": 48 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad", "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "start": 61, + "length": 179, + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 + 5, + 6, + 7, + 8, + 9 ], "starting_column": 5, "ending_column": 6 @@ -456,9 +456,9 @@ "source_mapping": { "start": 0, "length": 763, - "filename_relative": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol", + "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", "is_dependency": false, "lines": [ 1, @@ -496,16 +496,16 @@ "ending_column": 0 } }, - "signature": "bad3(address[])" + "signature": "bad(address[])" } } } } ], - "description": "C.bad3(address[]) (tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#24)\n", - "markdown": "[C.bad3(address[])](tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#L24)\n", - "first_markdown_element": "tests/detectors/msg-value-loop/0.8.0/msg_value_loop.sol#L21-L27", - "id": "5aba5d0fecd0935e1e8d98c5779a7114fbfd4587b6b8b7fdca61829d3322f584", + "description": "C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#7)\n", + "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L5-L9", + "id": "fb7f5216a245e3c793c726ea4bbfbf4e2b6a769f99304efee6f8e2ab505280c3", "check": "msg-value-loop", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol b/tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol similarity index 100% rename from tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol rename to tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol diff --git a/tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol.0.4.22.MultipleConstructorSchemes.json b/tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol.0.4.22.MultipleConstructorSchemes.json similarity index 67% rename from tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol.0.4.22.MultipleConstructorSchemes.json rename to tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol.0.4.22.MultipleConstructorSchemes.json index 01975d3bd..ff4e9a248 100644 --- a/tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol.0.4.22.MultipleConstructorSchemes.json +++ b/tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol.0.4.22.MultipleConstructorSchemes.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 0, "length": 193, - "filename_relative": "tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", + "filename_relative": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", + "filename_short": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", "is_dependency": false, "lines": [ 1, @@ -38,9 +38,9 @@ "source_mapping": { "start": 29, "length": 43, - "filename_relative": "tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", + "filename_relative": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", + "filename_short": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", "is_dependency": false, "lines": [ 3, @@ -57,9 +57,9 @@ "source_mapping": { "start": 0, "length": 193, - "filename_relative": "tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", + "filename_relative": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", + "filename_short": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", "is_dependency": false, "lines": [ 1, @@ -90,9 +90,9 @@ "source_mapping": { "start": 77, "length": 42, - "filename_relative": "tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", + "filename_relative": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", + "filename_short": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", "is_dependency": false, "lines": [ 6, @@ -109,9 +109,9 @@ "source_mapping": { "start": 0, "length": 193, - "filename_relative": "tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", + "filename_relative": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", + "filename_short": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", "is_dependency": false, "lines": [ 1, @@ -137,9 +137,9 @@ } } ], - "description": "A (tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#1-14) contains multiple constructors in the same contract:\n\t- A.constructor() (tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#3-5)\n\t- A.A() (tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#6-8)\n", - "markdown": "[A](tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#L1-L14) contains multiple constructors in the same contract:\n\t- [A.constructor()](tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#L3-L5)\n\t- [A.A()](tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#L6-L8)\n", - "first_markdown_element": "tests/detectors/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#L1-L14", + "description": "A (tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#1-14) contains multiple constructors in the same contract:\n\t- A.constructor() (tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#3-5)\n\t- A.A() (tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#6-8)\n", + "markdown": "[A](tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#L1-L14) contains multiple constructors in the same contract:\n\t- [A.constructor()](tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#L3-L5)\n\t- [A.A()](tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#L6-L8)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#L1-L14", "id": "704cdb1c05e919913c22befaf077b9585bc75e31b5033fa46c930ad82dc6852e", "check": "multiple-constructors", "impact": "High", diff --git a/tests/detectors/naming-convention/0.4.25/naming_convention.sol b/tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol similarity index 100% rename from tests/detectors/naming-convention/0.4.25/naming_convention.sol rename to tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol diff --git a/tests/detectors/naming-convention/0.4.25/naming_convention.sol.0.4.25.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol.0.4.25.NamingConvention.json similarity index 77% rename from tests/detectors/naming-convention/0.4.25/naming_convention.sol.0.4.25.NamingConvention.json rename to tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol.0.4.25.NamingConvention.json index 003ec85c3..b89371032 100644 --- a/tests/detectors/naming-convention/0.4.25/naming_convention.sol.0.4.25.NamingConvention.json +++ b/tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol.0.4.25.NamingConvention.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 229, "length": 35, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 14, @@ -27,9 +27,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -90,9 +90,9 @@ } } ], - "description": "Struct naming.test (tests/detectors/naming-convention/0.4.25/naming_convention.sol#14-16) is not in CapWords\n", - "markdown": "Struct [naming.test](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L14-L16) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L14-L16", + "description": "Struct naming.test (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#14-16) is not in CapWords\n", + "markdown": "Struct [naming.test](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L14-L16) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L14-L16", "id": "0ef3ea412cb30b1f0df5fa2af4a7a06e2bf0373fae0770fd9e301aed12c209cf", "check": "naming-convention", "impact": "Informational", @@ -106,9 +106,9 @@ "source_mapping": { "start": 932, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 69 @@ -123,9 +123,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -157,9 +157,9 @@ } } ], - "description": "Variable T.I (tests/detectors/naming-convention/0.4.25/naming_convention.sol#69) is not in mixedCase\n", - "markdown": "Variable [T.I](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L69) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L69", + "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#69) is not in mixedCase\n", + "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L69) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L69", "id": "12df12bbda2059673d356e5c32ec4e8a037a3821c9fa42b831a9144437cb79f9", "check": "naming-convention", "impact": "Informational", @@ -173,9 +173,9 @@ "source_mapping": { "start": 932, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 69 @@ -190,9 +190,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -224,9 +224,9 @@ } } ], - "description": "Variable T.I (tests/detectors/naming-convention/0.4.25/naming_convention.sol#69) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.I](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L69) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L69", + "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#69) is single letter l, O, or I, which should not be used\n", + "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L69) is single letter l, O, or I, which should not be used\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L69", "id": "2ac65aa5bb560436d64f16e164aaab90dbbf38d683bfdfdfb42eeb225fc51759", "check": "naming-convention", "impact": "Informational", @@ -240,9 +240,9 @@ "source_mapping": { "start": 916, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 68 @@ -257,9 +257,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -291,9 +291,9 @@ } } ], - "description": "Variable T.O (tests/detectors/naming-convention/0.4.25/naming_convention.sol#68) is not in mixedCase\n", - "markdown": "Variable [T.O](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L68) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L68", + "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#68) is not in mixedCase\n", + "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L68) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L68", "id": "2de986dda91f7c7e3a51470aa43abfa2c6fd363b742d1bbd38d5287ae179b83a", "check": "naming-convention", "impact": "Informational", @@ -307,9 +307,9 @@ "source_mapping": { "start": 185, "length": 16, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 11 @@ -324,9 +324,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -387,9 +387,9 @@ } } ], - "description": "Variable naming.Var_One (tests/detectors/naming-convention/0.4.25/naming_convention.sol#11) is not in mixedCase\n", - "markdown": "Variable [naming.Var_One](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L11) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L11", + "description": "Variable naming.Var_One (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#11) is not in mixedCase\n", + "markdown": "Variable [naming.Var_One](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L11) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L11", "id": "34b7c817201b3f3086fc3541f140898d9e9aabe999b1c0a6ef8639ec04351f26", "check": "naming-convention", "impact": "Informational", @@ -403,9 +403,9 @@ "source_mapping": { "start": 143, "length": 35, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 9 @@ -420,9 +420,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -483,9 +483,9 @@ } } ], - "description": "Constant naming.MY_other_CONSTANT (tests/detectors/naming-convention/0.4.25/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "markdown": "Constant [naming.MY_other_CONSTANT](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L9", + "description": "Constant naming.MY_other_CONSTANT (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES\n", + "markdown": "Constant [naming.MY_other_CONSTANT](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L9) is not in UPPER_CASE_WITH_UNDERSCORES\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L9", "id": "596c2e8064f8f2df55cd5c878eb59c0a74ac7f20719c420d8af307f2431a1a90", "check": "naming-convention", "impact": "Informational", @@ -499,9 +499,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -560,9 +560,9 @@ } } ], - "description": "Contract naming (tests/detectors/naming-convention/0.4.25/naming_convention.sol#3-48) is not in CapWords\n", - "markdown": "Contract [naming](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L3-L48) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L3-L48", + "description": "Contract naming (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#3-48) is not in CapWords\n", + "markdown": "Contract [naming](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L3-L48) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L3-L48", "id": "7247d550fb327e3aeb21c82714137e5b45a7e9eeaa6a1bc878102c8081033f85", "check": "naming-convention", "impact": "Informational", @@ -576,9 +576,9 @@ "source_mapping": { "start": 79, "length": 23, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 6 @@ -593,9 +593,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -656,9 +656,9 @@ } } ], - "description": "Enum naming.numbers (tests/detectors/naming-convention/0.4.25/naming_convention.sol#6) is not in CapWords\n", - "markdown": "Enum [naming.numbers](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L6) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L6", + "description": "Enum naming.numbers (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#6) is not in CapWords\n", + "markdown": "Enum [naming.numbers](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L6) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L6", "id": "7c87b076ea2865060182cf11d155caadb1dcea415ccce0ca8563a74a01611fc2", "check": "naming-convention", "impact": "Informational", @@ -672,9 +672,9 @@ "source_mapping": { "start": 794, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 59 @@ -689,9 +689,9 @@ "source_mapping": { "start": 766, "length": 84, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 59, @@ -707,9 +707,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -744,9 +744,9 @@ } } ], - "description": "Parameter T.test(uint256,uint256)._used (tests/detectors/naming-convention/0.4.25/naming_convention.sol#59) is not in mixedCase\n", - "markdown": "Parameter [T.test(uint256,uint256)._used](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L59) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L59", + "description": "Parameter T.test(uint256,uint256)._used (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#59) is not in mixedCase\n", + "markdown": "Parameter [T.test(uint256,uint256)._used](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L59) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L59", "id": "818962ad9f50f13eb87b5c7deade22666431945fb60055f572b38246cfbf311e", "check": "naming-convention", "impact": "Informational", @@ -760,9 +760,9 @@ "source_mapping": { "start": 741, "length": 17, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 56 @@ -777,9 +777,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -811,9 +811,9 @@ } } ], - "description": "Variable T._myPublicVar (tests/detectors/naming-convention/0.4.25/naming_convention.sol#56) is not in mixedCase\n", - "markdown": "Variable [T._myPublicVar](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L56) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L56", + "description": "Variable T._myPublicVar (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#56) is not in mixedCase\n", + "markdown": "Variable [T._myPublicVar](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L56) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L56", "id": "8acd53815786acad5b92b51366daf79182a67ab438daa41a6e1ec8a9601fa9a3", "check": "naming-convention", "impact": "Informational", @@ -827,9 +827,9 @@ "source_mapping": { "start": 335, "length": 19, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 23 @@ -844,9 +844,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -908,9 +908,9 @@ } } ], - "description": "Event namingevent_(uint256) (tests/detectors/naming-convention/0.4.25/naming_convention.sol#23) is not in CapWords\n", - "markdown": "Event [namingevent_(uint256)](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L23) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L23", + "description": "Event namingevent_(uint256) (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#23) is not in CapWords\n", + "markdown": "Event [namingevent_(uint256)](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L23) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L23", "id": "978ecf4a2c8b96d947e60f6601cf60d0e25e07ebe80ebbc37a7e7f279afd1405", "check": "naming-convention", "impact": "Informational", @@ -924,9 +924,9 @@ "source_mapping": { "start": 916, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 68 @@ -941,9 +941,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -975,9 +975,9 @@ } } ], - "description": "Variable T.O (tests/detectors/naming-convention/0.4.25/naming_convention.sol#68) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.O](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L68) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L68", + "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#68) is single letter l, O, or I, which should not be used\n", + "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L68) is single letter l, O, or I, which should not be used\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L68", "id": "b341001642225c62eae76fef9879c80003b3134b3bc627d9b1912ebcd190304b", "check": "naming-convention", "impact": "Informational", @@ -991,9 +991,9 @@ "source_mapping": { "start": 591, "length": 36, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 41, @@ -1010,9 +1010,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -1074,9 +1074,9 @@ } } ], - "description": "Modifier naming.CantDo() (tests/detectors/naming-convention/0.4.25/naming_convention.sol#41-43) is not in mixedCase\n", - "markdown": "Modifier [naming.CantDo()](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L41-L43) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L41-L43", + "description": "Modifier naming.CantDo() (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#41-43) is not in mixedCase\n", + "markdown": "Modifier [naming.CantDo()](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L41-L43) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L41-L43", "id": "b8a754a01bd47127f00032cdedd0ade3e27e6543631d8f5bc9e44365ab732895", "check": "naming-convention", "impact": "Informational", @@ -1090,9 +1090,9 @@ "source_mapping": { "start": 440, "length": 75, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 30, @@ -1110,9 +1110,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -1174,9 +1174,9 @@ } } ], - "description": "Function naming.GetOne() (tests/detectors/naming-convention/0.4.25/naming_convention.sol#30-33) is not in mixedCase\n", - "markdown": "Function [naming.GetOne()](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L30-L33) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L30-L33", + "description": "Function naming.GetOne() (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#30-33) is not in mixedCase\n", + "markdown": "Function [naming.GetOne()](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L30-L33) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L30-L33", "id": "bf6f97d6a82b84284efdade52d01bd6112007426e2e88d1568190d63c5c4a049", "check": "naming-convention", "impact": "Informational", @@ -1190,9 +1190,9 @@ "source_mapping": { "start": 900, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 67 @@ -1207,9 +1207,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -1241,9 +1241,9 @@ } } ], - "description": "Variable T.l (tests/detectors/naming-convention/0.4.25/naming_convention.sol#67) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.l](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L67) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L67", + "description": "Variable T.l (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#67) is single letter l, O, or I, which should not be used\n", + "markdown": "Variable [T.l](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L67) is single letter l, O, or I, which should not be used\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L67", "id": "cb8668afe6ed1284c935ac95f8f9cb1407f96226fe741e7310d104d5f10a0fc6", "check": "naming-convention", "impact": "Informational", @@ -1257,9 +1257,9 @@ "source_mapping": { "start": 551, "length": 12, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 35 @@ -1274,9 +1274,9 @@ "source_mapping": { "start": 521, "length": 63, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 35, @@ -1294,9 +1294,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.4.25/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -1360,9 +1360,9 @@ } } ], - "description": "Parameter naming.setInt(uint256,uint256).Number2 (tests/detectors/naming-convention/0.4.25/naming_convention.sol#35) is not in mixedCase\n", - "markdown": "Parameter [naming.setInt(uint256,uint256).Number2](tests/detectors/naming-convention/0.4.25/naming_convention.sol#L35) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.4.25/naming_convention.sol#L35", + "description": "Parameter naming.setInt(uint256,uint256).Number2 (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#35) is not in mixedCase\n", + "markdown": "Parameter [naming.setInt(uint256,uint256).Number2](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L35) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L35", "id": "f03bff0b488524254e19ff7d688d34211cd2f29934e22417c9f1fa43fc4a08ad", "check": "naming-convention", "impact": "Informational", diff --git a/tests/detectors/naming-convention/0.4.25/naming_convention_ignore.sol b/tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention_ignore.sol similarity index 100% rename from tests/detectors/naming-convention/0.4.25/naming_convention_ignore.sol rename to tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention_ignore.sol diff --git a/tests/detectors/naming-convention/0.4.25/no_warning_for_public_constants.sol b/tests/e2e/detectors/test_data/naming-convention/0.4.25/no_warning_for_public_constants.sol similarity index 100% rename from tests/detectors/naming-convention/0.4.25/no_warning_for_public_constants.sol rename to tests/e2e/detectors/test_data/naming-convention/0.4.25/no_warning_for_public_constants.sol diff --git a/tests/detectors/naming-convention/0.4.25/no_warning_for_public_constants.sol.0.4.25.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.4.25/no_warning_for_public_constants.sol.0.4.25.NamingConvention.json similarity index 100% rename from tests/detectors/naming-convention/0.4.25/no_warning_for_public_constants.sol.0.4.25.NamingConvention.json rename to tests/e2e/detectors/test_data/naming-convention/0.4.25/no_warning_for_public_constants.sol.0.4.25.NamingConvention.json diff --git a/tests/detectors/naming-convention/0.5.16/naming_convention.sol b/tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol similarity index 100% rename from tests/detectors/naming-convention/0.5.16/naming_convention.sol rename to tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol diff --git a/tests/detectors/naming-convention/0.5.16/naming_convention.sol.0.5.16.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol.0.5.16.NamingConvention.json similarity index 77% rename from tests/detectors/naming-convention/0.5.16/naming_convention.sol.0.5.16.NamingConvention.json rename to tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol.0.5.16.NamingConvention.json index 4ab232e6c..12a853f5c 100644 --- a/tests/detectors/naming-convention/0.5.16/naming_convention.sol.0.5.16.NamingConvention.json +++ b/tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol.0.5.16.NamingConvention.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 229, "length": 35, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 14, @@ -27,9 +27,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -90,9 +90,9 @@ } } ], - "description": "Struct naming.test (tests/detectors/naming-convention/0.5.16/naming_convention.sol#14-16) is not in CapWords\n", - "markdown": "Struct [naming.test](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L14-L16) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L14-L16", + "description": "Struct naming.test (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#14-16) is not in CapWords\n", + "markdown": "Struct [naming.test](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L14-L16) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L14-L16", "id": "0ef3ea412cb30b1f0df5fa2af4a7a06e2bf0373fae0770fd9e301aed12c209cf", "check": "naming-convention", "impact": "Informational", @@ -106,9 +106,9 @@ "source_mapping": { "start": 932, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 69 @@ -123,9 +123,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -157,9 +157,9 @@ } } ], - "description": "Variable T.I (tests/detectors/naming-convention/0.5.16/naming_convention.sol#69) is not in mixedCase\n", - "markdown": "Variable [T.I](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L69) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L69", + "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#69) is not in mixedCase\n", + "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L69) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L69", "id": "12df12bbda2059673d356e5c32ec4e8a037a3821c9fa42b831a9144437cb79f9", "check": "naming-convention", "impact": "Informational", @@ -173,9 +173,9 @@ "source_mapping": { "start": 932, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 69 @@ -190,9 +190,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -224,9 +224,9 @@ } } ], - "description": "Variable T.I (tests/detectors/naming-convention/0.5.16/naming_convention.sol#69) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.I](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L69) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L69", + "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#69) is single letter l, O, or I, which should not be used\n", + "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L69) is single letter l, O, or I, which should not be used\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L69", "id": "2ac65aa5bb560436d64f16e164aaab90dbbf38d683bfdfdfb42eeb225fc51759", "check": "naming-convention", "impact": "Informational", @@ -240,9 +240,9 @@ "source_mapping": { "start": 916, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 68 @@ -257,9 +257,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -291,9 +291,9 @@ } } ], - "description": "Variable T.O (tests/detectors/naming-convention/0.5.16/naming_convention.sol#68) is not in mixedCase\n", - "markdown": "Variable [T.O](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L68) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L68", + "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#68) is not in mixedCase\n", + "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L68) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L68", "id": "2de986dda91f7c7e3a51470aa43abfa2c6fd363b742d1bbd38d5287ae179b83a", "check": "naming-convention", "impact": "Informational", @@ -307,9 +307,9 @@ "source_mapping": { "start": 185, "length": 16, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 11 @@ -324,9 +324,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -387,9 +387,9 @@ } } ], - "description": "Variable naming.Var_One (tests/detectors/naming-convention/0.5.16/naming_convention.sol#11) is not in mixedCase\n", - "markdown": "Variable [naming.Var_One](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L11) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L11", + "description": "Variable naming.Var_One (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#11) is not in mixedCase\n", + "markdown": "Variable [naming.Var_One](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L11) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L11", "id": "34b7c817201b3f3086fc3541f140898d9e9aabe999b1c0a6ef8639ec04351f26", "check": "naming-convention", "impact": "Informational", @@ -403,9 +403,9 @@ "source_mapping": { "start": 143, "length": 35, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 9 @@ -420,9 +420,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -483,9 +483,9 @@ } } ], - "description": "Constant naming.MY_other_CONSTANT (tests/detectors/naming-convention/0.5.16/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "markdown": "Constant [naming.MY_other_CONSTANT](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L9", + "description": "Constant naming.MY_other_CONSTANT (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES\n", + "markdown": "Constant [naming.MY_other_CONSTANT](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L9) is not in UPPER_CASE_WITH_UNDERSCORES\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L9", "id": "596c2e8064f8f2df55cd5c878eb59c0a74ac7f20719c420d8af307f2431a1a90", "check": "naming-convention", "impact": "Informational", @@ -499,9 +499,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -560,9 +560,9 @@ } } ], - "description": "Contract naming (tests/detectors/naming-convention/0.5.16/naming_convention.sol#3-48) is not in CapWords\n", - "markdown": "Contract [naming](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L3-L48) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L3-L48", + "description": "Contract naming (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#3-48) is not in CapWords\n", + "markdown": "Contract [naming](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L3-L48) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L3-L48", "id": "7247d550fb327e3aeb21c82714137e5b45a7e9eeaa6a1bc878102c8081033f85", "check": "naming-convention", "impact": "Informational", @@ -576,9 +576,9 @@ "source_mapping": { "start": 79, "length": 23, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 6 @@ -593,9 +593,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -656,9 +656,9 @@ } } ], - "description": "Enum naming.numbers (tests/detectors/naming-convention/0.5.16/naming_convention.sol#6) is not in CapWords\n", - "markdown": "Enum [naming.numbers](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L6) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L6", + "description": "Enum naming.numbers (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#6) is not in CapWords\n", + "markdown": "Enum [naming.numbers](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L6) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L6", "id": "7c87b076ea2865060182cf11d155caadb1dcea415ccce0ca8563a74a01611fc2", "check": "naming-convention", "impact": "Informational", @@ -672,9 +672,9 @@ "source_mapping": { "start": 794, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 59 @@ -689,9 +689,9 @@ "source_mapping": { "start": 766, "length": 84, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 59, @@ -707,9 +707,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -744,9 +744,9 @@ } } ], - "description": "Parameter T.test(uint256,uint256)._used (tests/detectors/naming-convention/0.5.16/naming_convention.sol#59) is not in mixedCase\n", - "markdown": "Parameter [T.test(uint256,uint256)._used](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L59) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L59", + "description": "Parameter T.test(uint256,uint256)._used (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#59) is not in mixedCase\n", + "markdown": "Parameter [T.test(uint256,uint256)._used](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L59) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L59", "id": "818962ad9f50f13eb87b5c7deade22666431945fb60055f572b38246cfbf311e", "check": "naming-convention", "impact": "Informational", @@ -760,9 +760,9 @@ "source_mapping": { "start": 741, "length": 17, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 56 @@ -777,9 +777,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -811,9 +811,9 @@ } } ], - "description": "Variable T._myPublicVar (tests/detectors/naming-convention/0.5.16/naming_convention.sol#56) is not in mixedCase\n", - "markdown": "Variable [T._myPublicVar](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L56) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L56", + "description": "Variable T._myPublicVar (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#56) is not in mixedCase\n", + "markdown": "Variable [T._myPublicVar](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L56) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L56", "id": "8acd53815786acad5b92b51366daf79182a67ab438daa41a6e1ec8a9601fa9a3", "check": "naming-convention", "impact": "Informational", @@ -827,9 +827,9 @@ "source_mapping": { "start": 335, "length": 19, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 23 @@ -844,9 +844,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -908,9 +908,9 @@ } } ], - "description": "Event namingevent_(uint256) (tests/detectors/naming-convention/0.5.16/naming_convention.sol#23) is not in CapWords\n", - "markdown": "Event [namingevent_(uint256)](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L23) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L23", + "description": "Event namingevent_(uint256) (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#23) is not in CapWords\n", + "markdown": "Event [namingevent_(uint256)](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L23) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L23", "id": "978ecf4a2c8b96d947e60f6601cf60d0e25e07ebe80ebbc37a7e7f279afd1405", "check": "naming-convention", "impact": "Informational", @@ -924,9 +924,9 @@ "source_mapping": { "start": 916, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 68 @@ -941,9 +941,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -975,9 +975,9 @@ } } ], - "description": "Variable T.O (tests/detectors/naming-convention/0.5.16/naming_convention.sol#68) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.O](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L68) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L68", + "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#68) is single letter l, O, or I, which should not be used\n", + "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L68) is single letter l, O, or I, which should not be used\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L68", "id": "b341001642225c62eae76fef9879c80003b3134b3bc627d9b1912ebcd190304b", "check": "naming-convention", "impact": "Informational", @@ -991,9 +991,9 @@ "source_mapping": { "start": 591, "length": 36, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 41, @@ -1010,9 +1010,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -1074,9 +1074,9 @@ } } ], - "description": "Modifier naming.CantDo() (tests/detectors/naming-convention/0.5.16/naming_convention.sol#41-43) is not in mixedCase\n", - "markdown": "Modifier [naming.CantDo()](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L41-L43) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L41-L43", + "description": "Modifier naming.CantDo() (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#41-43) is not in mixedCase\n", + "markdown": "Modifier [naming.CantDo()](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L41-L43) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L41-L43", "id": "b8a754a01bd47127f00032cdedd0ade3e27e6543631d8f5bc9e44365ab732895", "check": "naming-convention", "impact": "Informational", @@ -1090,9 +1090,9 @@ "source_mapping": { "start": 440, "length": 75, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 30, @@ -1110,9 +1110,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -1174,9 +1174,9 @@ } } ], - "description": "Function naming.GetOne() (tests/detectors/naming-convention/0.5.16/naming_convention.sol#30-33) is not in mixedCase\n", - "markdown": "Function [naming.GetOne()](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L30-L33) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L30-L33", + "description": "Function naming.GetOne() (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#30-33) is not in mixedCase\n", + "markdown": "Function [naming.GetOne()](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L30-L33) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L30-L33", "id": "bf6f97d6a82b84284efdade52d01bd6112007426e2e88d1568190d63c5c4a049", "check": "naming-convention", "impact": "Informational", @@ -1190,9 +1190,9 @@ "source_mapping": { "start": 900, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 67 @@ -1207,9 +1207,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -1241,9 +1241,9 @@ } } ], - "description": "Variable T.l (tests/detectors/naming-convention/0.5.16/naming_convention.sol#67) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.l](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L67) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L67", + "description": "Variable T.l (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#67) is single letter l, O, or I, which should not be used\n", + "markdown": "Variable [T.l](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L67) is single letter l, O, or I, which should not be used\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L67", "id": "cb8668afe6ed1284c935ac95f8f9cb1407f96226fe741e7310d104d5f10a0fc6", "check": "naming-convention", "impact": "Informational", @@ -1257,9 +1257,9 @@ "source_mapping": { "start": 551, "length": 12, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 35 @@ -1274,9 +1274,9 @@ "source_mapping": { "start": 521, "length": 63, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 35, @@ -1294,9 +1294,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.5.16/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -1360,9 +1360,9 @@ } } ], - "description": "Parameter naming.setInt(uint256,uint256).Number2 (tests/detectors/naming-convention/0.5.16/naming_convention.sol#35) is not in mixedCase\n", - "markdown": "Parameter [naming.setInt(uint256,uint256).Number2](tests/detectors/naming-convention/0.5.16/naming_convention.sol#L35) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.5.16/naming_convention.sol#L35", + "description": "Parameter naming.setInt(uint256,uint256).Number2 (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#35) is not in mixedCase\n", + "markdown": "Parameter [naming.setInt(uint256,uint256).Number2](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L35) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L35", "id": "f03bff0b488524254e19ff7d688d34211cd2f29934e22417c9f1fa43fc4a08ad", "check": "naming-convention", "impact": "Informational", diff --git a/tests/detectors/naming-convention/0.5.16/naming_convention_ignore.sol b/tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention_ignore.sol similarity index 100% rename from tests/detectors/naming-convention/0.5.16/naming_convention_ignore.sol rename to tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention_ignore.sol diff --git a/tests/detectors/naming-convention/0.5.16/no_warning_for_public_constants.sol b/tests/e2e/detectors/test_data/naming-convention/0.5.16/no_warning_for_public_constants.sol similarity index 100% rename from tests/detectors/naming-convention/0.5.16/no_warning_for_public_constants.sol rename to tests/e2e/detectors/test_data/naming-convention/0.5.16/no_warning_for_public_constants.sol diff --git a/tests/detectors/naming-convention/0.5.16/no_warning_for_public_constants.sol.0.5.16.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.5.16/no_warning_for_public_constants.sol.0.5.16.NamingConvention.json similarity index 100% rename from tests/detectors/naming-convention/0.5.16/no_warning_for_public_constants.sol.0.5.16.NamingConvention.json rename to tests/e2e/detectors/test_data/naming-convention/0.5.16/no_warning_for_public_constants.sol.0.5.16.NamingConvention.json diff --git a/tests/detectors/naming-convention/0.6.11/naming_convention.sol b/tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol similarity index 100% rename from tests/detectors/naming-convention/0.6.11/naming_convention.sol rename to tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol diff --git a/tests/detectors/naming-convention/0.6.11/naming_convention.sol.0.6.11.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol.0.6.11.NamingConvention.json similarity index 77% rename from tests/detectors/naming-convention/0.6.11/naming_convention.sol.0.6.11.NamingConvention.json rename to tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol.0.6.11.NamingConvention.json index 185536067..49d7f52ec 100644 --- a/tests/detectors/naming-convention/0.6.11/naming_convention.sol.0.6.11.NamingConvention.json +++ b/tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol.0.6.11.NamingConvention.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 229, "length": 35, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 14, @@ -27,9 +27,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -90,9 +90,9 @@ } } ], - "description": "Struct naming.test (tests/detectors/naming-convention/0.6.11/naming_convention.sol#14-16) is not in CapWords\n", - "markdown": "Struct [naming.test](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L14-L16) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L14-L16", + "description": "Struct naming.test (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#14-16) is not in CapWords\n", + "markdown": "Struct [naming.test](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L14-L16) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L14-L16", "id": "0ef3ea412cb30b1f0df5fa2af4a7a06e2bf0373fae0770fd9e301aed12c209cf", "check": "naming-convention", "impact": "Informational", @@ -106,9 +106,9 @@ "source_mapping": { "start": 932, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 69 @@ -123,9 +123,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -157,9 +157,9 @@ } } ], - "description": "Variable T.I (tests/detectors/naming-convention/0.6.11/naming_convention.sol#69) is not in mixedCase\n", - "markdown": "Variable [T.I](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L69) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L69", + "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#69) is not in mixedCase\n", + "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L69) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L69", "id": "12df12bbda2059673d356e5c32ec4e8a037a3821c9fa42b831a9144437cb79f9", "check": "naming-convention", "impact": "Informational", @@ -173,9 +173,9 @@ "source_mapping": { "start": 932, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 69 @@ -190,9 +190,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -224,9 +224,9 @@ } } ], - "description": "Variable T.I (tests/detectors/naming-convention/0.6.11/naming_convention.sol#69) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.I](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L69) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L69", + "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#69) is single letter l, O, or I, which should not be used\n", + "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L69) is single letter l, O, or I, which should not be used\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L69", "id": "2ac65aa5bb560436d64f16e164aaab90dbbf38d683bfdfdfb42eeb225fc51759", "check": "naming-convention", "impact": "Informational", @@ -240,9 +240,9 @@ "source_mapping": { "start": 916, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 68 @@ -257,9 +257,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -291,9 +291,9 @@ } } ], - "description": "Variable T.O (tests/detectors/naming-convention/0.6.11/naming_convention.sol#68) is not in mixedCase\n", - "markdown": "Variable [T.O](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L68) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L68", + "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#68) is not in mixedCase\n", + "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L68) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L68", "id": "2de986dda91f7c7e3a51470aa43abfa2c6fd363b742d1bbd38d5287ae179b83a", "check": "naming-convention", "impact": "Informational", @@ -307,9 +307,9 @@ "source_mapping": { "start": 185, "length": 16, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 11 @@ -324,9 +324,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -387,9 +387,9 @@ } } ], - "description": "Variable naming.Var_One (tests/detectors/naming-convention/0.6.11/naming_convention.sol#11) is not in mixedCase\n", - "markdown": "Variable [naming.Var_One](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L11) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L11", + "description": "Variable naming.Var_One (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#11) is not in mixedCase\n", + "markdown": "Variable [naming.Var_One](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L11) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L11", "id": "34b7c817201b3f3086fc3541f140898d9e9aabe999b1c0a6ef8639ec04351f26", "check": "naming-convention", "impact": "Informational", @@ -403,9 +403,9 @@ "source_mapping": { "start": 143, "length": 35, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 9 @@ -420,9 +420,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -483,9 +483,9 @@ } } ], - "description": "Constant naming.MY_other_CONSTANT (tests/detectors/naming-convention/0.6.11/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "markdown": "Constant [naming.MY_other_CONSTANT](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L9", + "description": "Constant naming.MY_other_CONSTANT (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES\n", + "markdown": "Constant [naming.MY_other_CONSTANT](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L9) is not in UPPER_CASE_WITH_UNDERSCORES\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L9", "id": "596c2e8064f8f2df55cd5c878eb59c0a74ac7f20719c420d8af307f2431a1a90", "check": "naming-convention", "impact": "Informational", @@ -499,9 +499,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -560,9 +560,9 @@ } } ], - "description": "Contract naming (tests/detectors/naming-convention/0.6.11/naming_convention.sol#3-48) is not in CapWords\n", - "markdown": "Contract [naming](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L3-L48) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L3-L48", + "description": "Contract naming (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#3-48) is not in CapWords\n", + "markdown": "Contract [naming](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L3-L48) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L3-L48", "id": "7247d550fb327e3aeb21c82714137e5b45a7e9eeaa6a1bc878102c8081033f85", "check": "naming-convention", "impact": "Informational", @@ -576,9 +576,9 @@ "source_mapping": { "start": 79, "length": 23, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 6 @@ -593,9 +593,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -656,9 +656,9 @@ } } ], - "description": "Enum naming.numbers (tests/detectors/naming-convention/0.6.11/naming_convention.sol#6) is not in CapWords\n", - "markdown": "Enum [naming.numbers](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L6) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L6", + "description": "Enum naming.numbers (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#6) is not in CapWords\n", + "markdown": "Enum [naming.numbers](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L6) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L6", "id": "7c87b076ea2865060182cf11d155caadb1dcea415ccce0ca8563a74a01611fc2", "check": "naming-convention", "impact": "Informational", @@ -672,9 +672,9 @@ "source_mapping": { "start": 794, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 59 @@ -689,9 +689,9 @@ "source_mapping": { "start": 766, "length": 84, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 59, @@ -707,9 +707,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -744,9 +744,9 @@ } } ], - "description": "Parameter T.test(uint256,uint256)._used (tests/detectors/naming-convention/0.6.11/naming_convention.sol#59) is not in mixedCase\n", - "markdown": "Parameter [T.test(uint256,uint256)._used](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L59) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L59", + "description": "Parameter T.test(uint256,uint256)._used (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#59) is not in mixedCase\n", + "markdown": "Parameter [T.test(uint256,uint256)._used](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L59) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L59", "id": "818962ad9f50f13eb87b5c7deade22666431945fb60055f572b38246cfbf311e", "check": "naming-convention", "impact": "Informational", @@ -760,9 +760,9 @@ "source_mapping": { "start": 741, "length": 17, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 56 @@ -777,9 +777,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -811,9 +811,9 @@ } } ], - "description": "Variable T._myPublicVar (tests/detectors/naming-convention/0.6.11/naming_convention.sol#56) is not in mixedCase\n", - "markdown": "Variable [T._myPublicVar](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L56) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L56", + "description": "Variable T._myPublicVar (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#56) is not in mixedCase\n", + "markdown": "Variable [T._myPublicVar](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L56) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L56", "id": "8acd53815786acad5b92b51366daf79182a67ab438daa41a6e1ec8a9601fa9a3", "check": "naming-convention", "impact": "Informational", @@ -827,9 +827,9 @@ "source_mapping": { "start": 335, "length": 19, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 23 @@ -844,9 +844,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -908,9 +908,9 @@ } } ], - "description": "Event namingevent_(uint256) (tests/detectors/naming-convention/0.6.11/naming_convention.sol#23) is not in CapWords\n", - "markdown": "Event [namingevent_(uint256)](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L23) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L23", + "description": "Event namingevent_(uint256) (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#23) is not in CapWords\n", + "markdown": "Event [namingevent_(uint256)](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L23) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L23", "id": "978ecf4a2c8b96d947e60f6601cf60d0e25e07ebe80ebbc37a7e7f279afd1405", "check": "naming-convention", "impact": "Informational", @@ -924,9 +924,9 @@ "source_mapping": { "start": 916, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 68 @@ -941,9 +941,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -975,9 +975,9 @@ } } ], - "description": "Variable T.O (tests/detectors/naming-convention/0.6.11/naming_convention.sol#68) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.O](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L68) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L68", + "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#68) is single letter l, O, or I, which should not be used\n", + "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L68) is single letter l, O, or I, which should not be used\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L68", "id": "b341001642225c62eae76fef9879c80003b3134b3bc627d9b1912ebcd190304b", "check": "naming-convention", "impact": "Informational", @@ -991,9 +991,9 @@ "source_mapping": { "start": 591, "length": 36, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 41, @@ -1010,9 +1010,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -1074,9 +1074,9 @@ } } ], - "description": "Modifier naming.CantDo() (tests/detectors/naming-convention/0.6.11/naming_convention.sol#41-43) is not in mixedCase\n", - "markdown": "Modifier [naming.CantDo()](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L41-L43) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L41-L43", + "description": "Modifier naming.CantDo() (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#41-43) is not in mixedCase\n", + "markdown": "Modifier [naming.CantDo()](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L41-L43) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L41-L43", "id": "b8a754a01bd47127f00032cdedd0ade3e27e6543631d8f5bc9e44365ab732895", "check": "naming-convention", "impact": "Informational", @@ -1090,9 +1090,9 @@ "source_mapping": { "start": 440, "length": 75, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 30, @@ -1110,9 +1110,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -1174,9 +1174,9 @@ } } ], - "description": "Function naming.GetOne() (tests/detectors/naming-convention/0.6.11/naming_convention.sol#30-33) is not in mixedCase\n", - "markdown": "Function [naming.GetOne()](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L30-L33) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L30-L33", + "description": "Function naming.GetOne() (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#30-33) is not in mixedCase\n", + "markdown": "Function [naming.GetOne()](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L30-L33) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L30-L33", "id": "bf6f97d6a82b84284efdade52d01bd6112007426e2e88d1568190d63c5c4a049", "check": "naming-convention", "impact": "Informational", @@ -1190,9 +1190,9 @@ "source_mapping": { "start": 900, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 67 @@ -1207,9 +1207,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -1241,9 +1241,9 @@ } } ], - "description": "Variable T.l (tests/detectors/naming-convention/0.6.11/naming_convention.sol#67) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.l](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L67) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L67", + "description": "Variable T.l (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#67) is single letter l, O, or I, which should not be used\n", + "markdown": "Variable [T.l](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L67) is single letter l, O, or I, which should not be used\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L67", "id": "cb8668afe6ed1284c935ac95f8f9cb1407f96226fe741e7310d104d5f10a0fc6", "check": "naming-convention", "impact": "Informational", @@ -1257,9 +1257,9 @@ "source_mapping": { "start": 551, "length": 12, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 35 @@ -1274,9 +1274,9 @@ "source_mapping": { "start": 521, "length": 63, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 35, @@ -1294,9 +1294,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.6.11/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -1360,9 +1360,9 @@ } } ], - "description": "Parameter naming.setInt(uint256,uint256).Number2 (tests/detectors/naming-convention/0.6.11/naming_convention.sol#35) is not in mixedCase\n", - "markdown": "Parameter [naming.setInt(uint256,uint256).Number2](tests/detectors/naming-convention/0.6.11/naming_convention.sol#L35) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.6.11/naming_convention.sol#L35", + "description": "Parameter naming.setInt(uint256,uint256).Number2 (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#35) is not in mixedCase\n", + "markdown": "Parameter [naming.setInt(uint256,uint256).Number2](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L35) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L35", "id": "f03bff0b488524254e19ff7d688d34211cd2f29934e22417c9f1fa43fc4a08ad", "check": "naming-convention", "impact": "Informational", diff --git a/tests/detectors/naming-convention/0.6.11/naming_convention_ignore.sol b/tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention_ignore.sol similarity index 100% rename from tests/detectors/naming-convention/0.6.11/naming_convention_ignore.sol rename to tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention_ignore.sol diff --git a/tests/detectors/naming-convention/0.6.11/no_warning_for_public_constants.sol b/tests/e2e/detectors/test_data/naming-convention/0.6.11/no_warning_for_public_constants.sol similarity index 100% rename from tests/detectors/naming-convention/0.6.11/no_warning_for_public_constants.sol rename to tests/e2e/detectors/test_data/naming-convention/0.6.11/no_warning_for_public_constants.sol diff --git a/tests/detectors/naming-convention/0.6.11/no_warning_for_public_constants.sol.0.6.11.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.6.11/no_warning_for_public_constants.sol.0.6.11.NamingConvention.json similarity index 100% rename from tests/detectors/naming-convention/0.6.11/no_warning_for_public_constants.sol.0.6.11.NamingConvention.json rename to tests/e2e/detectors/test_data/naming-convention/0.6.11/no_warning_for_public_constants.sol.0.6.11.NamingConvention.json diff --git a/tests/detectors/naming-convention/0.7.6/naming_convention.sol b/tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol similarity index 100% rename from tests/detectors/naming-convention/0.7.6/naming_convention.sol rename to tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol diff --git a/tests/detectors/naming-convention/0.7.6/naming_convention.sol.0.7.6.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol.0.7.6.NamingConvention.json similarity index 77% rename from tests/detectors/naming-convention/0.7.6/naming_convention.sol.0.7.6.NamingConvention.json rename to tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol.0.7.6.NamingConvention.json index 2422728da..97332650a 100644 --- a/tests/detectors/naming-convention/0.7.6/naming_convention.sol.0.7.6.NamingConvention.json +++ b/tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol.0.7.6.NamingConvention.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 229, "length": 35, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 14, @@ -27,9 +27,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -90,9 +90,9 @@ } } ], - "description": "Struct naming.test (tests/detectors/naming-convention/0.7.6/naming_convention.sol#14-16) is not in CapWords\n", - "markdown": "Struct [naming.test](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L14-L16) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L14-L16", + "description": "Struct naming.test (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#14-16) is not in CapWords\n", + "markdown": "Struct [naming.test](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L14-L16) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L14-L16", "id": "0ef3ea412cb30b1f0df5fa2af4a7a06e2bf0373fae0770fd9e301aed12c209cf", "check": "naming-convention", "impact": "Informational", @@ -106,9 +106,9 @@ "source_mapping": { "start": 932, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 69 @@ -123,9 +123,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -157,9 +157,9 @@ } } ], - "description": "Variable T.I (tests/detectors/naming-convention/0.7.6/naming_convention.sol#69) is not in mixedCase\n", - "markdown": "Variable [T.I](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L69) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L69", + "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#69) is not in mixedCase\n", + "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L69) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L69", "id": "12df12bbda2059673d356e5c32ec4e8a037a3821c9fa42b831a9144437cb79f9", "check": "naming-convention", "impact": "Informational", @@ -173,9 +173,9 @@ "source_mapping": { "start": 932, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 69 @@ -190,9 +190,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -224,9 +224,9 @@ } } ], - "description": "Variable T.I (tests/detectors/naming-convention/0.7.6/naming_convention.sol#69) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.I](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L69) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L69", + "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#69) is single letter l, O, or I, which should not be used\n", + "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L69) is single letter l, O, or I, which should not be used\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L69", "id": "2ac65aa5bb560436d64f16e164aaab90dbbf38d683bfdfdfb42eeb225fc51759", "check": "naming-convention", "impact": "Informational", @@ -240,9 +240,9 @@ "source_mapping": { "start": 916, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 68 @@ -257,9 +257,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -291,9 +291,9 @@ } } ], - "description": "Variable T.O (tests/detectors/naming-convention/0.7.6/naming_convention.sol#68) is not in mixedCase\n", - "markdown": "Variable [T.O](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L68) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L68", + "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#68) is not in mixedCase\n", + "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L68) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L68", "id": "2de986dda91f7c7e3a51470aa43abfa2c6fd363b742d1bbd38d5287ae179b83a", "check": "naming-convention", "impact": "Informational", @@ -307,9 +307,9 @@ "source_mapping": { "start": 185, "length": 16, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 11 @@ -324,9 +324,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -387,9 +387,9 @@ } } ], - "description": "Variable naming.Var_One (tests/detectors/naming-convention/0.7.6/naming_convention.sol#11) is not in mixedCase\n", - "markdown": "Variable [naming.Var_One](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L11) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L11", + "description": "Variable naming.Var_One (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#11) is not in mixedCase\n", + "markdown": "Variable [naming.Var_One](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L11) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L11", "id": "34b7c817201b3f3086fc3541f140898d9e9aabe999b1c0a6ef8639ec04351f26", "check": "naming-convention", "impact": "Informational", @@ -403,9 +403,9 @@ "source_mapping": { "start": 143, "length": 35, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 9 @@ -420,9 +420,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -483,9 +483,9 @@ } } ], - "description": "Constant naming.MY_other_CONSTANT (tests/detectors/naming-convention/0.7.6/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "markdown": "Constant [naming.MY_other_CONSTANT](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L9", + "description": "Constant naming.MY_other_CONSTANT (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES\n", + "markdown": "Constant [naming.MY_other_CONSTANT](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L9) is not in UPPER_CASE_WITH_UNDERSCORES\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L9", "id": "596c2e8064f8f2df55cd5c878eb59c0a74ac7f20719c420d8af307f2431a1a90", "check": "naming-convention", "impact": "Informational", @@ -499,9 +499,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -560,9 +560,9 @@ } } ], - "description": "Contract naming (tests/detectors/naming-convention/0.7.6/naming_convention.sol#3-48) is not in CapWords\n", - "markdown": "Contract [naming](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L3-L48) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L3-L48", + "description": "Contract naming (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#3-48) is not in CapWords\n", + "markdown": "Contract [naming](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L3-L48) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L3-L48", "id": "7247d550fb327e3aeb21c82714137e5b45a7e9eeaa6a1bc878102c8081033f85", "check": "naming-convention", "impact": "Informational", @@ -576,9 +576,9 @@ "source_mapping": { "start": 79, "length": 23, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 6 @@ -593,9 +593,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -656,9 +656,9 @@ } } ], - "description": "Enum naming.numbers (tests/detectors/naming-convention/0.7.6/naming_convention.sol#6) is not in CapWords\n", - "markdown": "Enum [naming.numbers](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L6) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L6", + "description": "Enum naming.numbers (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#6) is not in CapWords\n", + "markdown": "Enum [naming.numbers](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L6) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L6", "id": "7c87b076ea2865060182cf11d155caadb1dcea415ccce0ca8563a74a01611fc2", "check": "naming-convention", "impact": "Informational", @@ -672,9 +672,9 @@ "source_mapping": { "start": 794, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 59 @@ -689,9 +689,9 @@ "source_mapping": { "start": 766, "length": 84, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 59, @@ -707,9 +707,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -744,9 +744,9 @@ } } ], - "description": "Parameter T.test(uint256,uint256)._used (tests/detectors/naming-convention/0.7.6/naming_convention.sol#59) is not in mixedCase\n", - "markdown": "Parameter [T.test(uint256,uint256)._used](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L59) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L59", + "description": "Parameter T.test(uint256,uint256)._used (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#59) is not in mixedCase\n", + "markdown": "Parameter [T.test(uint256,uint256)._used](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L59) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L59", "id": "818962ad9f50f13eb87b5c7deade22666431945fb60055f572b38246cfbf311e", "check": "naming-convention", "impact": "Informational", @@ -760,9 +760,9 @@ "source_mapping": { "start": 741, "length": 17, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 56 @@ -777,9 +777,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -811,9 +811,9 @@ } } ], - "description": "Variable T._myPublicVar (tests/detectors/naming-convention/0.7.6/naming_convention.sol#56) is not in mixedCase\n", - "markdown": "Variable [T._myPublicVar](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L56) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L56", + "description": "Variable T._myPublicVar (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#56) is not in mixedCase\n", + "markdown": "Variable [T._myPublicVar](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L56) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L56", "id": "8acd53815786acad5b92b51366daf79182a67ab438daa41a6e1ec8a9601fa9a3", "check": "naming-convention", "impact": "Informational", @@ -827,9 +827,9 @@ "source_mapping": { "start": 335, "length": 19, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 23 @@ -844,9 +844,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -908,9 +908,9 @@ } } ], - "description": "Event namingevent_(uint256) (tests/detectors/naming-convention/0.7.6/naming_convention.sol#23) is not in CapWords\n", - "markdown": "Event [namingevent_(uint256)](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L23) is not in CapWords\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L23", + "description": "Event namingevent_(uint256) (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#23) is not in CapWords\n", + "markdown": "Event [namingevent_(uint256)](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L23) is not in CapWords\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L23", "id": "978ecf4a2c8b96d947e60f6601cf60d0e25e07ebe80ebbc37a7e7f279afd1405", "check": "naming-convention", "impact": "Informational", @@ -924,9 +924,9 @@ "source_mapping": { "start": 916, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 68 @@ -941,9 +941,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -975,9 +975,9 @@ } } ], - "description": "Variable T.O (tests/detectors/naming-convention/0.7.6/naming_convention.sol#68) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.O](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L68) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L68", + "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#68) is single letter l, O, or I, which should not be used\n", + "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L68) is single letter l, O, or I, which should not be used\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L68", "id": "b341001642225c62eae76fef9879c80003b3134b3bc627d9b1912ebcd190304b", "check": "naming-convention", "impact": "Informational", @@ -991,9 +991,9 @@ "source_mapping": { "start": 591, "length": 36, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 41, @@ -1010,9 +1010,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -1074,9 +1074,9 @@ } } ], - "description": "Modifier naming.CantDo() (tests/detectors/naming-convention/0.7.6/naming_convention.sol#41-43) is not in mixedCase\n", - "markdown": "Modifier [naming.CantDo()](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L41-L43) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L41-L43", + "description": "Modifier naming.CantDo() (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#41-43) is not in mixedCase\n", + "markdown": "Modifier [naming.CantDo()](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L41-L43) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L41-L43", "id": "b8a754a01bd47127f00032cdedd0ade3e27e6543631d8f5bc9e44365ab732895", "check": "naming-convention", "impact": "Informational", @@ -1090,9 +1090,9 @@ "source_mapping": { "start": 440, "length": 75, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 30, @@ -1110,9 +1110,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -1174,9 +1174,9 @@ } } ], - "description": "Function naming.GetOne() (tests/detectors/naming-convention/0.7.6/naming_convention.sol#30-33) is not in mixedCase\n", - "markdown": "Function [naming.GetOne()](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L30-L33) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L30-L33", + "description": "Function naming.GetOne() (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#30-33) is not in mixedCase\n", + "markdown": "Function [naming.GetOne()](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L30-L33) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L30-L33", "id": "bf6f97d6a82b84284efdade52d01bd6112007426e2e88d1568190d63c5c4a049", "check": "naming-convention", "impact": "Informational", @@ -1190,9 +1190,9 @@ "source_mapping": { "start": 900, "length": 10, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 67 @@ -1207,9 +1207,9 @@ "source_mapping": { "start": 692, "length": 253, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 54, @@ -1241,9 +1241,9 @@ } } ], - "description": "Variable T.l (tests/detectors/naming-convention/0.7.6/naming_convention.sol#67) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.l](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L67) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L67", + "description": "Variable T.l (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#67) is single letter l, O, or I, which should not be used\n", + "markdown": "Variable [T.l](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L67) is single letter l, O, or I, which should not be used\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L67", "id": "cb8668afe6ed1284c935ac95f8f9cb1407f96226fe741e7310d104d5f10a0fc6", "check": "naming-convention", "impact": "Informational", @@ -1257,9 +1257,9 @@ "source_mapping": { "start": 551, "length": 12, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 35 @@ -1274,9 +1274,9 @@ "source_mapping": { "start": 521, "length": 63, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 35, @@ -1294,9 +1294,9 @@ "source_mapping": { "start": 28, "length": 642, - "filename_relative": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/naming-convention/0.7.6/naming_convention.sol", + "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", "is_dependency": false, "lines": [ 3, @@ -1360,9 +1360,9 @@ } } ], - "description": "Parameter naming.setInt(uint256,uint256).Number2 (tests/detectors/naming-convention/0.7.6/naming_convention.sol#35) is not in mixedCase\n", - "markdown": "Parameter [naming.setInt(uint256,uint256).Number2](tests/detectors/naming-convention/0.7.6/naming_convention.sol#L35) is not in mixedCase\n", - "first_markdown_element": "tests/detectors/naming-convention/0.7.6/naming_convention.sol#L35", + "description": "Parameter naming.setInt(uint256,uint256).Number2 (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#35) is not in mixedCase\n", + "markdown": "Parameter [naming.setInt(uint256,uint256).Number2](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L35) is not in mixedCase\n", + "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L35", "id": "f03bff0b488524254e19ff7d688d34211cd2f29934e22417c9f1fa43fc4a08ad", "check": "naming-convention", "impact": "Informational", diff --git a/tests/detectors/naming-convention/0.7.6/naming_convention_ignore.sol b/tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention_ignore.sol similarity index 100% rename from tests/detectors/naming-convention/0.7.6/naming_convention_ignore.sol rename to tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention_ignore.sol diff --git a/tests/detectors/naming-convention/0.7.6/no_warning_for_public_constants.sol b/tests/e2e/detectors/test_data/naming-convention/0.7.6/no_warning_for_public_constants.sol similarity index 100% rename from tests/detectors/naming-convention/0.7.6/no_warning_for_public_constants.sol rename to tests/e2e/detectors/test_data/naming-convention/0.7.6/no_warning_for_public_constants.sol diff --git a/tests/detectors/naming-convention/0.7.6/no_warning_for_public_constants.sol.0.7.6.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.7.6/no_warning_for_public_constants.sol.0.7.6.NamingConvention.json similarity index 100% rename from tests/detectors/naming-convention/0.7.6/no_warning_for_public_constants.sol.0.7.6.NamingConvention.json rename to tests/e2e/detectors/test_data/naming-convention/0.7.6/no_warning_for_public_constants.sol.0.7.6.NamingConvention.json diff --git a/tests/detectors/pragma/0.4.25/pragma.0.4.24.sol b/tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.24.sol similarity index 100% rename from tests/detectors/pragma/0.4.25/pragma.0.4.24.sol rename to tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.24.sol diff --git a/tests/detectors/pragma/0.4.25/pragma.0.4.25.sol b/tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol similarity index 100% rename from tests/detectors/pragma/0.4.25/pragma.0.4.25.sol rename to tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol diff --git a/tests/detectors/pragma/0.4.25/pragma.0.4.25.sol.0.4.25.ConstantPragma.json b/tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol.0.4.25.ConstantPragma.json similarity index 69% rename from tests/detectors/pragma/0.4.25/pragma.0.4.25.sol.0.4.25.ConstantPragma.json rename to tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol.0.4.25.ConstantPragma.json index a3c316ffe..0761b2488 100644 --- a/tests/detectors/pragma/0.4.25/pragma.0.4.25.sol.0.4.25.ConstantPragma.json +++ b/tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol.0.4.25.ConstantPragma.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 0, "length": 24, - "filename_relative": "tests/detectors/pragma/0.4.25/pragma.0.4.24.sol", + "filename_relative": "tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.24.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/pragma/0.4.25/pragma.0.4.24.sol", + "filename_short": "tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.24.sol", "is_dependency": false, "lines": [ 1 @@ -33,9 +33,9 @@ "source_mapping": { "start": 0, "length": 24, - "filename_relative": "tests/detectors/pragma/0.4.25/pragma.0.4.25.sol", + "filename_relative": "tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/pragma/0.4.25/pragma.0.4.25.sol", + "filename_short": "tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol", "is_dependency": false, "lines": [ 1 @@ -53,10 +53,10 @@ } } ], - "description": "Different versions of Solidity are used:\n\t- Version used: ['^0.4.24', '^0.4.25']\n\t- ^0.4.24 (tests/detectors/pragma/0.4.25/pragma.0.4.24.sol#1)\n\t- ^0.4.25 (tests/detectors/pragma/0.4.25/pragma.0.4.25.sol#1)\n", - "markdown": "Different versions of Solidity are used:\n\t- Version used: ['^0.4.24', '^0.4.25']\n\t- [^0.4.24](tests/detectors/pragma/0.4.25/pragma.0.4.24.sol#L1)\n\t- [^0.4.25](tests/detectors/pragma/0.4.25/pragma.0.4.25.sol#L1)\n", - "first_markdown_element": "tests/detectors/pragma/0.4.25/pragma.0.4.24.sol#L1", - "id": "1b4bdffe0c7fc63e2a8d589f34ff29de46139cf79ff3b9cb13dee36502b8fbc6", + "description": "Different versions of Solidity are used:\n\t- Version used: ['^0.4.24', '^0.4.25']\n\t- ^0.4.24 (tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.24.sol#1)\n\t- ^0.4.25 (tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol#1)\n", + "markdown": "Different versions of Solidity are used:\n\t- Version used: ['^0.4.24', '^0.4.25']\n\t- [^0.4.24](tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.24.sol#L1)\n\t- [^0.4.25](tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol#L1)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.24.sol#L1", + "id": "346aaa435d432d40cf79b02d73faab579d8543fad3d1166da4ce14fe08207281", "check": "pragma", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/pragma/0.5.16/pragma.0.5.15.sol b/tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.15.sol similarity index 100% rename from tests/detectors/pragma/0.5.16/pragma.0.5.15.sol rename to tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.15.sol diff --git a/tests/detectors/pragma/0.5.16/pragma.0.5.16.sol b/tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol similarity index 100% rename from tests/detectors/pragma/0.5.16/pragma.0.5.16.sol rename to tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol diff --git a/tests/detectors/pragma/0.5.16/pragma.0.5.16.sol.0.5.16.ConstantPragma.json b/tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol.0.5.16.ConstantPragma.json similarity index 69% rename from tests/detectors/pragma/0.5.16/pragma.0.5.16.sol.0.5.16.ConstantPragma.json rename to tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol.0.5.16.ConstantPragma.json index ae236ebf5..74590cf5f 100644 --- a/tests/detectors/pragma/0.5.16/pragma.0.5.16.sol.0.5.16.ConstantPragma.json +++ b/tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol.0.5.16.ConstantPragma.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 0, "length": 24, - "filename_relative": "tests/detectors/pragma/0.5.16/pragma.0.5.15.sol", + "filename_relative": "tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.15.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/pragma/0.5.16/pragma.0.5.15.sol", + "filename_short": "tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.15.sol", "is_dependency": false, "lines": [ 1 @@ -33,9 +33,9 @@ "source_mapping": { "start": 0, "length": 24, - "filename_relative": "tests/detectors/pragma/0.5.16/pragma.0.5.16.sol", + "filename_relative": "tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/pragma/0.5.16/pragma.0.5.16.sol", + "filename_short": "tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol", "is_dependency": false, "lines": [ 1 @@ -53,10 +53,10 @@ } } ], - "description": "Different versions of Solidity are used:\n\t- Version used: ['^0.5.15', '^0.5.16']\n\t- ^0.5.15 (tests/detectors/pragma/0.5.16/pragma.0.5.15.sol#1)\n\t- ^0.5.16 (tests/detectors/pragma/0.5.16/pragma.0.5.16.sol#1)\n", - "markdown": "Different versions of Solidity are used:\n\t- Version used: ['^0.5.15', '^0.5.16']\n\t- [^0.5.15](tests/detectors/pragma/0.5.16/pragma.0.5.15.sol#L1)\n\t- [^0.5.16](tests/detectors/pragma/0.5.16/pragma.0.5.16.sol#L1)\n", - "first_markdown_element": "tests/detectors/pragma/0.5.16/pragma.0.5.15.sol#L1", - "id": "f3c6aef8c4d19f960e801fe9343d7cb4c290460cb7b4b14dca769269f0234b31", + "description": "Different versions of Solidity are used:\n\t- Version used: ['^0.5.15', '^0.5.16']\n\t- ^0.5.15 (tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.15.sol#1)\n\t- ^0.5.16 (tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol#1)\n", + "markdown": "Different versions of Solidity are used:\n\t- Version used: ['^0.5.15', '^0.5.16']\n\t- [^0.5.15](tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.15.sol#L1)\n\t- [^0.5.16](tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol#L1)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.15.sol#L1", + "id": "8719cceac46e48000519ed201bfc4b5614e74d18e3a2bee5eaef780e4c781b8b", "check": "pragma", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/pragma/0.6.11/pragma.0.6.10.sol b/tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.10.sol similarity index 100% rename from tests/detectors/pragma/0.6.11/pragma.0.6.10.sol rename to tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.10.sol diff --git a/tests/detectors/pragma/0.6.11/pragma.0.6.11.sol b/tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol similarity index 100% rename from tests/detectors/pragma/0.6.11/pragma.0.6.11.sol rename to tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol diff --git a/tests/detectors/pragma/0.6.11/pragma.0.6.11.sol.0.6.11.ConstantPragma.json b/tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol.0.6.11.ConstantPragma.json similarity index 69% rename from tests/detectors/pragma/0.6.11/pragma.0.6.11.sol.0.6.11.ConstantPragma.json rename to tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol.0.6.11.ConstantPragma.json index 7a6b22d3f..6a9fb98b7 100644 --- a/tests/detectors/pragma/0.6.11/pragma.0.6.11.sol.0.6.11.ConstantPragma.json +++ b/tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol.0.6.11.ConstantPragma.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 0, "length": 24, - "filename_relative": "tests/detectors/pragma/0.6.11/pragma.0.6.10.sol", + "filename_relative": "tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.10.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/pragma/0.6.11/pragma.0.6.10.sol", + "filename_short": "tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.10.sol", "is_dependency": false, "lines": [ 1 @@ -33,9 +33,9 @@ "source_mapping": { "start": 0, "length": 24, - "filename_relative": "tests/detectors/pragma/0.6.11/pragma.0.6.11.sol", + "filename_relative": "tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/pragma/0.6.11/pragma.0.6.11.sol", + "filename_short": "tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol", "is_dependency": false, "lines": [ 1 @@ -53,10 +53,10 @@ } } ], - "description": "Different versions of Solidity are used:\n\t- Version used: ['^0.6.10', '^0.6.11']\n\t- ^0.6.10 (tests/detectors/pragma/0.6.11/pragma.0.6.10.sol#1)\n\t- ^0.6.11 (tests/detectors/pragma/0.6.11/pragma.0.6.11.sol#1)\n", - "markdown": "Different versions of Solidity are used:\n\t- Version used: ['^0.6.10', '^0.6.11']\n\t- [^0.6.10](tests/detectors/pragma/0.6.11/pragma.0.6.10.sol#L1)\n\t- [^0.6.11](tests/detectors/pragma/0.6.11/pragma.0.6.11.sol#L1)\n", - "first_markdown_element": "tests/detectors/pragma/0.6.11/pragma.0.6.10.sol#L1", - "id": "05ad5ab9a596fc401c485ede8f164ebd0df3052e307bb036f70a64d47cbc2933", + "description": "Different versions of Solidity are used:\n\t- Version used: ['^0.6.10', '^0.6.11']\n\t- ^0.6.10 (tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.10.sol#1)\n\t- ^0.6.11 (tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol#1)\n", + "markdown": "Different versions of Solidity are used:\n\t- Version used: ['^0.6.10', '^0.6.11']\n\t- [^0.6.10](tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.10.sol#L1)\n\t- [^0.6.11](tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol#L1)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.10.sol#L1", + "id": "008f981322580b1555b5ff7f437a225ad8edec5f3f663e9cb3b67edf9f1330fc", "check": "pragma", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/pragma/0.7.6/pragma.0.7.5.sol b/tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.5.sol similarity index 100% rename from tests/detectors/pragma/0.7.6/pragma.0.7.5.sol rename to tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.5.sol diff --git a/tests/detectors/pragma/0.7.6/pragma.0.7.6.sol b/tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol similarity index 100% rename from tests/detectors/pragma/0.7.6/pragma.0.7.6.sol rename to tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol diff --git a/tests/detectors/pragma/0.7.6/pragma.0.7.6.sol.0.7.6.ConstantPragma.json b/tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol.0.7.6.ConstantPragma.json similarity index 67% rename from tests/detectors/pragma/0.7.6/pragma.0.7.6.sol.0.7.6.ConstantPragma.json rename to tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol.0.7.6.ConstantPragma.json index 911a33b4a..fe1c878f8 100644 --- a/tests/detectors/pragma/0.7.6/pragma.0.7.6.sol.0.7.6.ConstantPragma.json +++ b/tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol.0.7.6.ConstantPragma.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 0, "length": 23, - "filename_relative": "tests/detectors/pragma/0.7.6/pragma.0.7.5.sol", + "filename_relative": "tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.5.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/pragma/0.7.6/pragma.0.7.5.sol", + "filename_short": "tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.5.sol", "is_dependency": false, "lines": [ 1 @@ -33,9 +33,9 @@ "source_mapping": { "start": 0, "length": 23, - "filename_relative": "tests/detectors/pragma/0.7.6/pragma.0.7.6.sol", + "filename_relative": "tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/pragma/0.7.6/pragma.0.7.6.sol", + "filename_short": "tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol", "is_dependency": false, "lines": [ 1 @@ -53,10 +53,10 @@ } } ], - "description": "Different versions of Solidity are used:\n\t- Version used: ['^0.7.5', '^0.7.6']\n\t- ^0.7.5 (tests/detectors/pragma/0.7.6/pragma.0.7.5.sol#1)\n\t- ^0.7.6 (tests/detectors/pragma/0.7.6/pragma.0.7.6.sol#1)\n", - "markdown": "Different versions of Solidity are used:\n\t- Version used: ['^0.7.5', '^0.7.6']\n\t- [^0.7.5](tests/detectors/pragma/0.7.6/pragma.0.7.5.sol#L1)\n\t- [^0.7.6](tests/detectors/pragma/0.7.6/pragma.0.7.6.sol#L1)\n", - "first_markdown_element": "tests/detectors/pragma/0.7.6/pragma.0.7.5.sol#L1", - "id": "bbddfc60b33090137a744cf0ebdfb2acbe88e3f353368626723e8bec7558f72f", + "description": "Different versions of Solidity are used:\n\t- Version used: ['^0.7.5', '^0.7.6']\n\t- ^0.7.5 (tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.5.sol#1)\n\t- ^0.7.6 (tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol#1)\n", + "markdown": "Different versions of Solidity are used:\n\t- Version used: ['^0.7.5', '^0.7.6']\n\t- [^0.7.5](tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.5.sol#L1)\n\t- [^0.7.6](tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol#L1)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.5.sol#L1", + "id": "cc4121efef895d7909b1f1b353bf8e99df737389afbe71ace29e78d9a71f3100", "check": "pragma", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/protected-vars/0.8.2/comment.sol b/tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol similarity index 100% rename from tests/detectors/protected-vars/0.8.2/comment.sol rename to tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol diff --git a/tests/detectors/protected-vars/0.8.2/comment.sol.0.8.2.ProtectedVariables.json b/tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol.0.8.2.ProtectedVariables.json similarity index 77% rename from tests/detectors/protected-vars/0.8.2/comment.sol.0.8.2.ProtectedVariables.json rename to tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol.0.8.2.ProtectedVariables.json index 2c1a11fa4..1706185bc 100644 --- a/tests/detectors/protected-vars/0.8.2/comment.sol.0.8.2.ProtectedVariables.json +++ b/tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol.0.8.2.ProtectedVariables.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 938, "length": 57, - "filename_relative": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "is_dependency": false, "lines": [ 47, @@ -27,9 +27,9 @@ "source_mapping": { "start": 742, "length": 331, - "filename_relative": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "is_dependency": false, "lines": [ 36, @@ -66,9 +66,9 @@ "source_mapping": { "start": 844, "length": 88, - "filename_relative": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "is_dependency": false, "lines": [ 42, @@ -86,9 +86,9 @@ "source_mapping": { "start": 742, "length": 331, - "filename_relative": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "is_dependency": false, "lines": [ 36, @@ -125,9 +125,9 @@ "source_mapping": { "start": 822, "length": 13, - "filename_relative": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "is_dependency": false, "lines": [ 38 @@ -142,9 +142,9 @@ "source_mapping": { "start": 742, "length": 331, - "filename_relative": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "is_dependency": false, "lines": [ 36, @@ -175,9 +175,9 @@ } } ], - "description": "Internal.buggy() (tests/detectors/protected-vars/0.8.2/comment.sol#47-49) should have Internal.onlyOwner() (tests/detectors/protected-vars/0.8.2/comment.sol#42-45) to protect Internal.owner (tests/detectors/protected-vars/0.8.2/comment.sol#38)\n", - "markdown": "[Internal.buggy()](tests/detectors/protected-vars/0.8.2/comment.sol#L47-L49) should have [Internal.onlyOwner()](tests/detectors/protected-vars/0.8.2/comment.sol#L42-L45) to protect [Internal.owner](tests/detectors/protected-vars/0.8.2/comment.sol#L38)\n", - "first_markdown_element": "tests/detectors/protected-vars/0.8.2/comment.sol#L47-L49", + "description": "Internal.buggy() (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#47-49) should have Internal.onlyOwner() (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#42-45) to protect Internal.owner (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#38)\n", + "markdown": "[Internal.buggy()](tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L47-L49) should have [Internal.onlyOwner()](tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L42-L45) to protect [Internal.owner](tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L38)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L47-L49", "id": "347d5dbdb03710066bc29d7772156fe5ff3d3371fa4eee4839ee221a1d0de0a4", "check": "protected-vars", "impact": "High", @@ -191,9 +191,9 @@ "source_mapping": { "start": 653, "length": 85, - "filename_relative": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "is_dependency": false, "lines": [ 31, @@ -210,9 +210,9 @@ "source_mapping": { "start": 55, "length": 685, - "filename_relative": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "is_dependency": false, "lines": [ 5, @@ -259,9 +259,9 @@ "source_mapping": { "start": 210, "length": 88, - "filename_relative": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "is_dependency": false, "lines": [ 11, @@ -279,9 +279,9 @@ "source_mapping": { "start": 55, "length": 685, - "filename_relative": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "is_dependency": false, "lines": [ 5, @@ -328,9 +328,9 @@ "source_mapping": { "start": 184, "length": 19, - "filename_relative": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "is_dependency": false, "lines": [ 9 @@ -345,9 +345,9 @@ "source_mapping": { "start": 55, "length": 685, - "filename_relative": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/protected-vars/0.8.2/comment.sol", + "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", "is_dependency": false, "lines": [ 5, @@ -388,9 +388,9 @@ } } ], - "description": "ReentrancyAndWrite.set_not_protected() (tests/detectors/protected-vars/0.8.2/comment.sol#31-33) should have ReentrancyAndWrite.onlyOwner() (tests/detectors/protected-vars/0.8.2/comment.sol#11-14) to protect ReentrancyAndWrite.external_contract (tests/detectors/protected-vars/0.8.2/comment.sol#9)\n", - "markdown": "[ReentrancyAndWrite.set_not_protected()](tests/detectors/protected-vars/0.8.2/comment.sol#L31-L33) should have [ReentrancyAndWrite.onlyOwner()](tests/detectors/protected-vars/0.8.2/comment.sol#L11-L14) to protect [ReentrancyAndWrite.external_contract](tests/detectors/protected-vars/0.8.2/comment.sol#L9)\n", - "first_markdown_element": "tests/detectors/protected-vars/0.8.2/comment.sol#L31-L33", + "description": "ReentrancyAndWrite.set_not_protected() (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#31-33) should have ReentrancyAndWrite.onlyOwner() (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#11-14) to protect ReentrancyAndWrite.external_contract (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#9)\n", + "markdown": "[ReentrancyAndWrite.set_not_protected()](tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L31-L33) should have [ReentrancyAndWrite.onlyOwner()](tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L11-L14) to protect [ReentrancyAndWrite.external_contract](tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L31-L33", "id": "3f3bc8c8a9b3e23482f47f1133aceaed81c2c781c6aaf25656a8e578c9f6cb0e", "check": "protected-vars", "impact": "High", diff --git a/tests/detectors/public-mappings-nested/0.4.25/public_mappings_nested.sol b/tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol similarity index 100% rename from tests/detectors/public-mappings-nested/0.4.25/public_mappings_nested.sol rename to tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol diff --git a/tests/detectors/public-mappings-nested/0.4.25/public_mappings_nested.sol.0.4.25.PublicMappingNested.json b/tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol.0.4.25.PublicMappingNested.json similarity index 68% rename from tests/detectors/public-mappings-nested/0.4.25/public_mappings_nested.sol.0.4.25.PublicMappingNested.json rename to tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol.0.4.25.PublicMappingNested.json index 8ad293dd8..e3801df68 100644 --- a/tests/detectors/public-mappings-nested/0.4.25/public_mappings_nested.sol.0.4.25.PublicMappingNested.json +++ b/tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol.0.4.25.PublicMappingNested.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 265, "length": 47, - "filename_relative": "tests/detectors/public-mappings-nested/0.4.25/public_mappings_nested.sol", + "filename_relative": "tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/public-mappings-nested/0.4.25/public_mappings_nested.sol", + "filename_short": "tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol", "is_dependency": false, "lines": [ 14 @@ -25,9 +25,9 @@ "source_mapping": { "start": 138, "length": 345, - "filename_relative": "tests/detectors/public-mappings-nested/0.4.25/public_mappings_nested.sol", + "filename_relative": "tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/public-mappings-nested/0.4.25/public_mappings_nested.sol", + "filename_short": "tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol", "is_dependency": false, "lines": [ 4, @@ -56,9 +56,9 @@ } } ], - "description": "Bug.testMapping (tests/detectors/public-mappings-nested/0.4.25/public_mappings_nested.sol#14) is a public mapping with nested variables\n", - "markdown": "[Bug.testMapping](tests/detectors/public-mappings-nested/0.4.25/public_mappings_nested.sol#L14) is a public mapping with nested variables\n", - "first_markdown_element": "tests/detectors/public-mappings-nested/0.4.25/public_mappings_nested.sol#L14", + "description": "Bug.testMapping (tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol#14) is a public mapping with nested variables\n", + "markdown": "[Bug.testMapping](tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol#L14) is a public mapping with nested variables\n", + "first_markdown_element": "tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol#L14", "id": "100978112524def620b003331f34b2b51eb78cae6f7eb2793d9671b4b7bb858a", "check": "public-mappings-nested", "impact": "High", diff --git a/tests/detectors/redundant-statements/0.4.25/redundant_statements.sol b/tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol similarity index 100% rename from tests/detectors/redundant-statements/0.4.25/redundant_statements.sol rename to tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol diff --git a/tests/detectors/redundant-statements/0.4.25/redundant_statements.sol.0.4.25.RedundantStatements.json b/tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol.0.4.25.RedundantStatements.json similarity index 73% rename from tests/detectors/redundant-statements/0.4.25/redundant_statements.sol.0.4.25.RedundantStatements.json rename to tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol.0.4.25.RedundantStatements.json index 6c90587f7..0005e2a15 100644 --- a/tests/detectors/redundant-statements/0.4.25/redundant_statements.sol.0.4.25.RedundantStatements.json +++ b/tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol.0.4.25.RedundantStatements.json @@ -4,16 +4,16 @@ "elements": [ { "type": "node", - "name": "uint256", + "name": "bool", "source_mapping": { - "start": 141, + "start": 155, "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ - 6 + 7 ], "starting_column": 9, "ending_column": 13 @@ -25,9 +25,9 @@ "source_mapping": { "start": 110, "length": 93, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 5, @@ -46,9 +46,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -83,9 +83,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -110,10 +110,10 @@ } } ], - "description": "Redundant expression \"uint256 (tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#6)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L6)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L6", - "id": "5e6cc88b3d8b0ef5d6247751e3b9cf045557e07c6f0de8d9f1270db008fca82a", + "description": "Redundant expression \"bool (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#7)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[bool](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L7)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L7", + "id": "57e17d7362f3d5c310d21eb6b73eccb845f8a3c52a308d15af3c118b5e2caaef", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -126,9 +126,9 @@ "source_mapping": { "start": 257, "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 12 @@ -143,9 +143,9 @@ "source_mapping": { "start": 209, "length": 109, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 11, @@ -165,9 +165,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -202,9 +202,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -229,10 +229,10 @@ } } ], - "description": "Redundant expression \"uint256 (tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#12)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L12)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L12", - "id": "7423f2beb0d066fc4e193c27dd50b172186e9539b778ab72bf950dbe872df720", + "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#12)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L12)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L12", + "id": "5e4c867c59bdbc386d4fd243aef79d957c92f8a40729b744096cd96989807c28", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -245,9 +245,9 @@ "source_mapping": { "start": 287, "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 14 @@ -262,9 +262,9 @@ "source_mapping": { "start": 209, "length": 109, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 11, @@ -284,9 +284,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -321,9 +321,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -348,10 +348,10 @@ } } ], - "description": "Redundant expression \"test (tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#14)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[test](tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L14)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L14", - "id": "c3c9961e4467e57974929ecfaeb34a0923fc257422a7705c9d1b14257cfe0c3a", + "description": "Redundant expression \"test (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#14)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[test](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L14)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L14", + "id": "635ad486b2aae108ff617146f22695a532e84c44a184bb609ececa744c91a497", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -364,9 +364,9 @@ "source_mapping": { "start": 169, "length": 27, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 8 @@ -381,9 +381,9 @@ "source_mapping": { "start": 110, "length": 93, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 5, @@ -402,9 +402,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -439,9 +439,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -466,10 +466,10 @@ } } ], - "description": "Redundant expression \"RedundantStatementsContract (tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#8)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[RedundantStatementsContract](tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L8)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L8", - "id": "cb9ace5d0188d80bdc530d3760b41a1dcf1a4c10151b720e468550bb22be0e74", + "description": "Redundant expression \"RedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#8)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L8)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L8", + "id": "bcab82b93dc328a381dbd74ce83caf2ae429382bff9e0b482f9355bfcf029f98", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -478,16 +478,16 @@ "elements": [ { "type": "node", - "name": "bool", + "name": "uint256", "source_mapping": { - "start": 155, + "start": 141, "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ - 7 + 6 ], "starting_column": 9, "ending_column": 13 @@ -499,9 +499,9 @@ "source_mapping": { "start": 110, "length": 93, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 5, @@ -520,9 +520,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -557,9 +557,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -584,10 +584,10 @@ } } ], - "description": "Redundant expression \"bool (tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#7)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[bool](tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L7)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L7", - "id": "da776628bba71bca43caf77bb06a7055fe3c0f4f18a30274c5cb508bcb3a27b4", + "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#6)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L6)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L6", + "id": "c191e3e65af68e401996255ec75e9a8e990dc47205f36a49476bcd01e5753f79", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -600,9 +600,9 @@ "source_mapping": { "start": 271, "length": 6, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 13 @@ -617,9 +617,9 @@ "source_mapping": { "start": 209, "length": 109, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 11, @@ -639,9 +639,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -676,9 +676,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -703,10 +703,10 @@ } } ], - "description": "Redundant expression \"assert(bool) (tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#13)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[assert(bool)](tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L13)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.4.25/redundant_statements.sol#L13", - "id": "e0137cf6a61eb49d07e1a67a7cdfd0cb82cac0402cded9f1cfb85ae1e6e8d3fe", + "description": "Redundant expression \"assert(bool) (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#13)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[assert(bool)](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L13)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L13", + "id": "f36295bb4a93b2cd2940d435d827e82bb21d70801d2b71ce1c84585153112f9f", "check": "redundant-statements", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/redundant-statements/0.5.16/redundant_statements.sol b/tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol similarity index 100% rename from tests/detectors/redundant-statements/0.5.16/redundant_statements.sol rename to tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol diff --git a/tests/detectors/redundant-statements/0.5.16/redundant_statements.sol.0.5.16.RedundantStatements.json b/tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol.0.5.16.RedundantStatements.json similarity index 73% rename from tests/detectors/redundant-statements/0.5.16/redundant_statements.sol.0.5.16.RedundantStatements.json rename to tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol.0.5.16.RedundantStatements.json index c2d6d347f..47268f265 100644 --- a/tests/detectors/redundant-statements/0.5.16/redundant_statements.sol.0.5.16.RedundantStatements.json +++ b/tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol.0.5.16.RedundantStatements.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 271, "length": 6, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 13 @@ -25,9 +25,9 @@ "source_mapping": { "start": 209, "length": 109, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 11, @@ -47,9 +47,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -84,9 +84,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -111,10 +111,10 @@ } } ], - "description": "Redundant expression \"assert(bool) (tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#13)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[assert(bool)](tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L13)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L13", - "id": "342d8ac4c8c6e96ca7ca18f4bb9abed731c08b4c19a4461151ea48fc503be342", + "description": "Redundant expression \"assert(bool) (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#13)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[assert(bool)](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L13)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L13", + "id": "31b46936fd424a2a3125e5ce6408b20bedc3c6ca5c5c97e406c1cf43abae4bb4", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -123,16 +123,16 @@ "elements": [ { "type": "node", - "name": "uint256", + "name": "bool", "source_mapping": { - "start": 141, + "start": 155, "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ - 6 + 7 ], "starting_column": 9, "ending_column": 13 @@ -144,9 +144,9 @@ "source_mapping": { "start": 110, "length": 93, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 5, @@ -165,9 +165,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -202,9 +202,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -229,10 +229,10 @@ } } ], - "description": "Redundant expression \"uint256 (tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#6)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L6)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L6", - "id": "58d73cb2126e8c76752e57c69feeed96ee7db0cc50cf33c0f92679525acc26e9", + "description": "Redundant expression \"bool (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#7)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[bool](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L7)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L7", + "id": "3581fd720d146e690bb9ecfc0c1b059395cf4d46f69d7d2f802d8a9194b723ae", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -241,16 +241,16 @@ "elements": [ { "type": "node", - "name": "test", + "name": "uint256", "source_mapping": { - "start": 287, + "start": 257, "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ - 14 + 12 ], "starting_column": 9, "ending_column": 13 @@ -262,9 +262,9 @@ "source_mapping": { "start": 209, "length": 109, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 11, @@ -284,9 +284,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -321,9 +321,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -348,10 +348,10 @@ } } ], - "description": "Redundant expression \"test (tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#14)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[test](tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L14)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L14", - "id": "b36c497f678f32a5479ead924c310a0c86b398e465f69b0e7365f06befaef172", + "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#12)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L12)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L12", + "id": "6f6a44cfade49a4a2e0310135fe0e83df0083b76c60daaf6d0864386d3485d6a", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -362,14 +362,14 @@ "type": "node", "name": "uint256", "source_mapping": { - "start": 257, + "start": 141, "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ - 12 + 6 ], "starting_column": 9, "ending_column": 13 @@ -377,21 +377,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "test", + "name": "constructor", "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "start": 110, + "length": 93, + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 + 5, + 6, + 7, + 8, + 9 ], "starting_column": 5, "ending_column": 6 @@ -403,9 +402,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -429,7 +428,7 @@ "ending_column": 0 } }, - "signature": "test()" + "signature": "constructor()" } } } @@ -440,9 +439,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -467,10 +466,10 @@ } } ], - "description": "Redundant expression \"uint256 (tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#12)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L12)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L12", - "id": "f21c726ae13fb80091dca415c8d15bf8999c0197b56a65bcbabc4cb86963efe7", + "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#6)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L6)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L6", + "id": "7e36dd98fc04d79e6f5f56f606fc38f3c20d1bada8eed5daa2695deadebbb361", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -479,19 +478,19 @@ "elements": [ { "type": "node", - "name": "bool", + "name": "RedundantStatementsContract", "source_mapping": { - "start": 155, - "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "start": 169, + "length": 27, + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ - 7 + 8 ], "starting_column": 9, - "ending_column": 13 + "ending_column": 36 }, "type_specific_fields": { "parent": { @@ -500,9 +499,9 @@ "source_mapping": { "start": 110, "length": 93, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 5, @@ -521,9 +520,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -558,9 +557,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -585,10 +584,10 @@ } } ], - "description": "Redundant expression \"bool (tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#7)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[bool](tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L7)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L7", - "id": "f57f949deb97e88dedd17864427a4941d1395be24db436d3a45945a45c53b919", + "description": "Redundant expression \"RedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#8)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L8)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L8", + "id": "9c1239d64c216412cd356b9c4b8104baeb9f4f6dd110533b2392be410e68f946", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -597,37 +596,38 @@ "elements": [ { "type": "node", - "name": "RedundantStatementsContract", + "name": "test", "source_mapping": { - "start": 169, - "length": 27, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "start": 287, + "length": 4, + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ - 8 + 14 ], "starting_column": 9, - "ending_column": 36 + "ending_column": 13 }, "type_specific_fields": { "parent": { "type": "function", - "name": "constructor", + "name": "test", "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "start": 209, + "length": 109, + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9 + 11, + 12, + 13, + 14, + 15, + 16 ], "starting_column": 5, "ending_column": 6 @@ -639,9 +639,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -665,7 +665,7 @@ "ending_column": 0 } }, - "signature": "constructor()" + "signature": "test()" } } } @@ -676,9 +676,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -703,10 +703,10 @@ } } ], - "description": "Redundant expression \"RedundantStatementsContract (tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#8)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[RedundantStatementsContract](tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L8)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.5.16/redundant_statements.sol#L8", - "id": "faaa2cdb764d49e4d06709c566d903cc4b222634a27b31bbbb0217a13b84aa62", + "description": "Redundant expression \"test (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#14)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[test](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L14)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L14", + "id": "b940d13da80841d1d7760c8b7b0bfcaf1c9eec6f8b7cd94b490db5efddf36cb7", "check": "redundant-statements", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/redundant-statements/0.6.11/redundant_statements.sol b/tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol similarity index 100% rename from tests/detectors/redundant-statements/0.6.11/redundant_statements.sol rename to tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol diff --git a/tests/detectors/redundant-statements/0.6.11/redundant_statements.sol.0.6.11.RedundantStatements.json b/tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol.0.6.11.RedundantStatements.json similarity index 73% rename from tests/detectors/redundant-statements/0.6.11/redundant_statements.sol.0.6.11.RedundantStatements.json rename to tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol.0.6.11.RedundantStatements.json index 4a0fa9f16..7bd6500d4 100644 --- a/tests/detectors/redundant-statements/0.6.11/redundant_statements.sol.0.6.11.RedundantStatements.json +++ b/tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol.0.6.11.RedundantStatements.json @@ -4,37 +4,38 @@ "elements": [ { "type": "node", - "name": "RedundantStatementsContract", + "name": "uint256", "source_mapping": { - "start": 169, - "length": 27, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "start": 257, + "length": 4, + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ - 8 + 12 ], "starting_column": 9, - "ending_column": 36 + "ending_column": 13 }, "type_specific_fields": { "parent": { "type": "function", - "name": "constructor", + "name": "test", "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "start": 209, + "length": 109, + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9 + 11, + 12, + 13, + 14, + 15, + 16 ], "starting_column": 5, "ending_column": 6 @@ -46,9 +47,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -72,7 +73,7 @@ "ending_column": 0 } }, - "signature": "constructor()" + "signature": "test()" } } } @@ -83,9 +84,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -110,10 +111,10 @@ } } ], - "description": "Redundant expression \"RedundantStatementsContract (tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#8)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[RedundantStatementsContract](tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L8)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L8", - "id": "1ffcec7a83522ce311c8410e5523283b97944a0c27356e3141b26a7f32a022d3", + "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#12)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L12)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L12", + "id": "36a2feec0c5aa47c304207db4aa17181086bd3131720656fbf8619924e303a45", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -122,16 +123,16 @@ "elements": [ { "type": "node", - "name": "test", + "name": "bool", "source_mapping": { - "start": 287, + "start": 155, "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ - 14 + 7 ], "starting_column": 9, "ending_column": 13 @@ -139,21 +140,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "test", + "name": "constructor", "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "start": 110, + "length": 93, + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 + 5, + 6, + 7, + 8, + 9 ], "starting_column": 5, "ending_column": 6 @@ -165,9 +165,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -191,7 +191,7 @@ "ending_column": 0 } }, - "signature": "test()" + "signature": "constructor()" } } } @@ -202,9 +202,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -229,10 +229,10 @@ } } ], - "description": "Redundant expression \"test (tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#14)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[test](tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L14)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L14", - "id": "5223d6cc441a1f923616873898ea34e0ff11a758c38d6b5244b9e9ea6be9bec8", + "description": "Redundant expression \"bool (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#7)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[bool](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L7)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L7", + "id": "5e31be7e1558881cfd23ee013c1a7e1a51e9842a404133611755432d612169c4", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -241,38 +241,37 @@ "elements": [ { "type": "node", - "name": "uint256", + "name": "RedundantStatementsContract", "source_mapping": { - "start": 257, - "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "start": 169, + "length": 27, + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ - 12 + 8 ], "starting_column": 9, - "ending_column": 13 + "ending_column": 36 }, "type_specific_fields": { "parent": { "type": "function", - "name": "test", + "name": "constructor", "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "start": 110, + "length": 93, + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 + 5, + 6, + 7, + 8, + 9 ], "starting_column": 5, "ending_column": 6 @@ -284,9 +283,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -310,7 +309,7 @@ "ending_column": 0 } }, - "signature": "test()" + "signature": "constructor()" } } } @@ -321,9 +320,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -348,10 +347,10 @@ } } ], - "description": "Redundant expression \"uint256 (tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#12)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L12)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L12", - "id": "53f741bfdd4465fbdb8799391ca2fa50ac657b72ac9b822c87e2e4ae79d831d8", + "description": "Redundant expression \"RedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#8)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L8)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L8", + "id": "7b15d1a763fe71def2468433dab345b5922d874a86bd2a2dfefbb3a08d11317c", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -364,9 +363,9 @@ "source_mapping": { "start": 141, "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 6 @@ -381,9 +380,9 @@ "source_mapping": { "start": 110, "length": 93, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 5, @@ -402,9 +401,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -439,9 +438,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -466,10 +465,10 @@ } } ], - "description": "Redundant expression \"uint256 (tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#6)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L6)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L6", - "id": "c58083eaf5653fc9616833c617157456ad9088c4638009d9cdfebdc1445671bd", + "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#6)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L6)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L6", + "id": "839e1eef447843981948ab172340fecb29ba20c989a3762a404d6b0f9f4b68ae", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -478,16 +477,16 @@ "elements": [ { "type": "node", - "name": "bool", + "name": "test", "source_mapping": { - "start": 155, + "start": 287, "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ - 7 + 14 ], "starting_column": 9, "ending_column": 13 @@ -495,20 +494,21 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "constructor", + "name": "test", "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "start": 209, + "length": 109, + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9 + 11, + 12, + 13, + 14, + 15, + 16 ], "starting_column": 5, "ending_column": 6 @@ -520,9 +520,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -546,7 +546,7 @@ "ending_column": 0 } }, - "signature": "constructor()" + "signature": "test()" } } } @@ -557,9 +557,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -584,10 +584,10 @@ } } ], - "description": "Redundant expression \"bool (tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#7)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[bool](tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L7)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L7", - "id": "f0fef441fabe415b9cbc63bfc5a2a5c69f6248ce22d1bd94f73979f928cb7dba", + "description": "Redundant expression \"test (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#14)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[test](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L14)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L14", + "id": "8738d80351735e9090a90f8970736608a17979b06f654baf3dcfdc8ebed4f53a", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -600,9 +600,9 @@ "source_mapping": { "start": 271, "length": 6, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 13 @@ -617,9 +617,9 @@ "source_mapping": { "start": 209, "length": 109, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 11, @@ -639,9 +639,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -676,9 +676,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -703,10 +703,10 @@ } } ], - "description": "Redundant expression \"assert(bool) (tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#13)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[assert(bool)](tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L13)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.6.11/redundant_statements.sol#L13", - "id": "f902982db50d530e22b29f35ab1a740f1af29683b0ebb9edd53240721b4f95b9", + "description": "Redundant expression \"assert(bool) (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#13)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[assert(bool)](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L13)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L13", + "id": "ab124cc40de408c2d4f0eb055ed421f31c65ccc9de11edb8761de84c3557fdb1", "check": "redundant-statements", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/redundant-statements/0.7.6/redundant_statements.sol b/tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol similarity index 100% rename from tests/detectors/redundant-statements/0.7.6/redundant_statements.sol rename to tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol diff --git a/tests/detectors/redundant-statements/0.7.6/redundant_statements.sol.0.7.6.RedundantStatements.json b/tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol.0.7.6.RedundantStatements.json similarity index 73% rename from tests/detectors/redundant-statements/0.7.6/redundant_statements.sol.0.7.6.RedundantStatements.json rename to tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol.0.7.6.RedundantStatements.json index 2420bd33b..797bdda30 100644 --- a/tests/detectors/redundant-statements/0.7.6/redundant_statements.sol.0.7.6.RedundantStatements.json +++ b/tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol.0.7.6.RedundantStatements.json @@ -4,16 +4,16 @@ "elements": [ { "type": "node", - "name": "test", + "name": "uint256", "source_mapping": { - "start": 287, + "start": 257, "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ - 14 + 12 ], "starting_column": 9, "ending_column": 13 @@ -25,9 +25,9 @@ "source_mapping": { "start": 209, "length": 109, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 11, @@ -47,9 +47,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -84,9 +84,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -111,10 +111,10 @@ } } ], - "description": "Redundant expression \"test (tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#14)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[test](tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L14)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L14", - "id": "45bb5d6a69015db0e07e6d13107db089e1095da3cf0918f624db12181fac28a1", + "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#12)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L12)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L12", + "id": "17a6cb4a5c342753c8636d8af683b1d2b94e3a36dd05a19cee2336bc3a1b2f47", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -123,16 +123,16 @@ "elements": [ { "type": "node", - "name": "bool", + "name": "test", "source_mapping": { - "start": 155, + "start": 287, "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ - 7 + 14 ], "starting_column": 9, "ending_column": 13 @@ -140,20 +140,21 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "constructor", + "name": "test", "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "start": 209, + "length": 109, + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9 + 11, + 12, + 13, + 14, + 15, + 16 ], "starting_column": 5, "ending_column": 6 @@ -165,9 +166,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -191,7 +192,7 @@ "ending_column": 0 } }, - "signature": "constructor()" + "signature": "test()" } } } @@ -202,9 +203,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -229,10 +230,10 @@ } } ], - "description": "Redundant expression \"bool (tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#7)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[bool](tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L7)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L7", - "id": "73207d71a134f0726a839874ee88cdf509766ac7e23c2bce3d0b86c121b2fd4c", + "description": "Redundant expression \"test (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#14)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[test](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L14)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L14", + "id": "4634ed5f2678141abaf73e85411ed25985f3916ad0db348b6923a15a43fabf32", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -245,9 +246,9 @@ "source_mapping": { "start": 271, "length": 6, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 13 @@ -262,9 +263,9 @@ "source_mapping": { "start": 209, "length": 109, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 11, @@ -284,9 +285,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -321,9 +322,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -348,10 +349,10 @@ } } ], - "description": "Redundant expression \"assert(bool) (tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#13)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[assert(bool)](tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L13)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L13", - "id": "774a4440b59af9fa94c7552ba0ce21a7835511012dc6257afc3fd4d80a023b28", + "description": "Redundant expression \"assert(bool) (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#13)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[assert(bool)](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L13)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L13", + "id": "6971a500d684a342208eff16cc1f07abbf73f3ba86dbe7386570bdd8e489fc91", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -364,9 +365,9 @@ "source_mapping": { "start": 169, "length": 27, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 8 @@ -381,9 +382,9 @@ "source_mapping": { "start": 110, "length": 93, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 5, @@ -402,9 +403,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -439,9 +440,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -466,10 +467,10 @@ } } ], - "description": "Redundant expression \"RedundantStatementsContract (tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#8)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[RedundantStatementsContract](tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L8)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L8", - "id": "caf262c2d237789c12de0cf27ef88625491b29a1bc3209ced3a12d2890fc799e", + "description": "Redundant expression \"RedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#8)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L8)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L8", + "id": "6a2742272d79ff94d551adebc3a936866e15bc20c3c75238555435365118d382", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -478,16 +479,16 @@ "elements": [ { "type": "node", - "name": "uint256", + "name": "bool", "source_mapping": { - "start": 141, + "start": 155, "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ - 6 + 7 ], "starting_column": 9, "ending_column": 13 @@ -499,9 +500,9 @@ "source_mapping": { "start": 110, "length": 93, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 5, @@ -520,9 +521,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -557,9 +558,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -584,10 +585,10 @@ } } ], - "description": "Redundant expression \"uint256 (tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#6)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L6)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L6", - "id": "d16c698a23693dc64165fc886c68f6900a7a2699998f0f3713d875cf49a2af87", + "description": "Redundant expression \"bool (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#7)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[bool](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L7)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L7", + "id": "703f162d107fded4a6f9e8f1fc0e49529967c9bfdfb5fc401568e6f48d417926", "check": "redundant-statements", "impact": "Informational", "confidence": "High" @@ -598,14 +599,14 @@ "type": "node", "name": "uint256", "source_mapping": { - "start": 257, + "start": 141, "length": 4, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ - 12 + 6 ], "starting_column": 9, "ending_column": 13 @@ -613,21 +614,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "test", + "name": "constructor", "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "start": 110, + "length": 93, + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 + 5, + 6, + 7, + 8, + 9 ], "starting_column": 5, "ending_column": 6 @@ -639,9 +639,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -665,7 +665,7 @@ "ending_column": 0 } }, - "signature": "test()" + "signature": "constructor()" } } } @@ -676,9 +676,9 @@ "source_mapping": { "start": 66, "length": 254, - "filename_relative": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol", + "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", "is_dependency": false, "lines": [ 3, @@ -703,10 +703,10 @@ } } ], - "description": "Redundant expression \"uint256 (tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#12)\" inRedundantStatementsContract (tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L12)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/detectors/redundant-statements/0.7.6/redundant_statements.sol#L12", - "id": "ffe6709dbcfc3342d28833aad5375135da8cc7369bf0649ab1796ff4eae14ca1", + "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#6)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", + "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L6)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L6", + "id": "f21ab6ffea325fedf7d0c0548b552dde439e1859af0cc8811a5a0be792663502", "check": "redundant-statements", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol b/tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol similarity index 100% rename from tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol rename to tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol diff --git a/tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol.0.4.25.ReentrancyBenign.json b/tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol.0.4.25.ReentrancyBenign.json similarity index 86% rename from tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol.0.4.25.ReentrancyBenign.json rename to tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol.0.4.25.ReentrancyBenign.json index be84dbec2..b44c22620 100644 --- a/tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol.0.4.25.ReentrancyBenign.json +++ b/tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol.0.4.25.ReentrancyBenign.json @@ -4,20 +4,20 @@ "elements": [ { "type": "function", - "name": "bad5", + "name": "bad1", "source_mapping": { - "start": 1137, - "length": 128, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 448, + "length": 132, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 53, - 54, - 55, - 56, - 57 + 23, + 24, + 25, + 26, + 27 ], "starting_column": 5, "ending_column": 6 @@ -29,9 +29,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -108,42 +108,42 @@ "ending_column": 0 } }, - "signature": "bad5(address)" + "signature": "bad1(address)" } }, { "type": "node", - "name": "ethSender(address(0))", + "name": "success = target.call()", "source_mapping": { - "start": 1184, - "length": 21, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 495, + "length": 30, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54 + 24 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 39 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad1", "source_mapping": { - "start": 1137, - "length": 128, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 448, + "length": 132, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 53, - 54, - 55, - 56, - 57 + 23, + 24, + 25, + 26, + 27 ], "starting_column": 5, "ending_column": 6 @@ -155,9 +155,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -234,7 +234,7 @@ "ending_column": 0 } }, - "signature": "bad5(address)" + "signature": "bad1(address)" } } }, @@ -244,35 +244,37 @@ }, { "type": "node", - "name": "address(target).call.value(1)()", + "name": "success = target.call()", "source_mapping": { - "start": 1417, - "length": 31, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 495, + "length": 30, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64 + 24 ], "starting_column": 9, - "ending_column": 40 + "ending_column": 39 }, "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "bad1", "source_mapping": { - "start": 1364, - "length": 91, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 448, + "length": 132, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 63, - 64, - 65 + 23, + 24, + 25, + 26, + 27 ], "starting_column": 5, "ending_column": 6 @@ -284,9 +286,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -363,7 +365,7 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "bad1(address)" } } }, @@ -373,16 +375,16 @@ }, { "type": "node", - "name": "varChanger()", + "name": "counter += 1", "source_mapping": { - "start": 1215, + "start": 561, "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 55 + 26 ], "starting_column": 9, "ending_column": 21 @@ -390,150 +392,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1137, - "length": 128, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1501, - "length": 25, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "varChanger", + "name": "bad1", "source_mapping": { - "start": 1461, - "length": 72, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 448, + "length": 132, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 67, - 68, - 69 + 23, + 24, + 25, + 26, + 27 ], "starting_column": 5, "ending_column": 6 @@ -545,9 +417,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -624,20 +496,20 @@ "ending_column": 0 } }, - "signature": "varChanger()" + "signature": "bad1(address)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "variable_name": "counter" } } ], - "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#53-57):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#54)\n\t\t- address(target).call.value(1)() (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#64)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#55)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#68)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L53-L57):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L54)\n\t\t- [address(target).call.value(1)()](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L64)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L55)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L68)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L53-L57", - "id": "254751a69c99356562e79eb0a53483ca1bcb0e9c4c847219206c665624db8a4c", + "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#23-27):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#24)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#26)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L23-L27):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L24)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L23-L27", + "id": "4ed6ddcc769b17b5a3737f7dafe5651bf4e5ffcbb574810d743cc09a0a703ede", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -650,9 +522,9 @@ "source_mapping": { "start": 322, "length": 120, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 16, @@ -672,9 +544,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -760,9 +632,9 @@ "source_mapping": { "start": 359, "length": 20, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 17 @@ -777,9 +649,9 @@ "source_mapping": { "start": 322, "length": 120, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 16, @@ -799,9 +671,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -892,9 +764,9 @@ "source_mapping": { "start": 359, "length": 20, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 17 @@ -909,9 +781,9 @@ "source_mapping": { "start": 322, "length": 120, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 16, @@ -931,9 +803,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1024,9 +896,9 @@ "source_mapping": { "start": 423, "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 20 @@ -1041,9 +913,9 @@ "source_mapping": { "start": 322, "length": 120, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 16, @@ -1063,9 +935,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1152,10 +1024,10 @@ } } ], - "description": "Reentrancy in ReentrancyBenign.bad0() (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#16-21):\n\tExternal calls:\n\t- ! (msg.sender.call()) (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#20)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L16-L21):\n\tExternal calls:\n\t- [! (msg.sender.call())](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L20)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L16-L21", - "id": "2a39756367d068df6d24cfb010f495564ad89f8696ab2eaf9635d640412963cb", + "description": "Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#16-21):\n\tExternal calls:\n\t- ! (msg.sender.call()) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#20)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L16-L21):\n\tExternal calls:\n\t- [! (msg.sender.call())](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L20)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L16-L21", + "id": "5c7237b5a2a9e1ad35da0f99ff70fbc418319a1c1218cededb9d75f99699a46a", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -1168,9 +1040,9 @@ "source_mapping": { "start": 961, "length": 170, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 46, @@ -1190,9 +1062,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1278,9 +1150,9 @@ "source_mapping": { "start": 1008, "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 47 @@ -1295,9 +1167,9 @@ "source_mapping": { "start": 961, "length": 170, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 46, @@ -1317,9 +1189,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1410,9 +1282,9 @@ "source_mapping": { "start": 1329, "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 60 @@ -1427,9 +1299,9 @@ "source_mapping": { "start": 1271, "length": 87, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 59, @@ -1446,9 +1318,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1539,9 +1411,9 @@ "source_mapping": { "start": 1040, "length": 21, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 48 @@ -1556,9 +1428,9 @@ "source_mapping": { "start": 961, "length": 170, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 46, @@ -1578,9 +1450,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1671,9 +1543,9 @@ "source_mapping": { "start": 1417, "length": 31, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 64 @@ -1688,9 +1560,9 @@ "source_mapping": { "start": 1364, "length": 91, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 63, @@ -1707,9 +1579,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1800,9 +1672,9 @@ "source_mapping": { "start": 1008, "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 47 @@ -1817,9 +1689,9 @@ "source_mapping": { "start": 961, "length": 170, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 46, @@ -1839,9 +1711,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1932,9 +1804,9 @@ "source_mapping": { "start": 1329, "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 60 @@ -1949,9 +1821,9 @@ "source_mapping": { "start": 1271, "length": 87, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 59, @@ -1968,9 +1840,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2061,9 +1933,9 @@ "source_mapping": { "start": 1040, "length": 21, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 48 @@ -2078,9 +1950,9 @@ "source_mapping": { "start": 961, "length": 170, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 46, @@ -2100,9 +1972,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2193,9 +2065,9 @@ "source_mapping": { "start": 1417, "length": 31, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 64 @@ -2210,9 +2082,9 @@ "source_mapping": { "start": 1364, "length": 91, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 63, @@ -2229,9 +2101,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2322,9 +2194,9 @@ "source_mapping": { "start": 1071, "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 49 @@ -2339,9 +2211,9 @@ "source_mapping": { "start": 961, "length": 170, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 46, @@ -2361,9 +2233,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2455,9 +2327,9 @@ "source_mapping": { "start": 1501, "length": 25, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 68 @@ -2472,9 +2344,9 @@ "source_mapping": { "start": 1461, "length": 72, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 67, @@ -2491,9 +2363,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2580,10 +2452,10 @@ } } ], - "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#46-51):\n\tExternal calls:\n\t- externalCaller(target) (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#47)\n\t\t- address(target).call() (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#60)\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#48)\n\t\t- address(target).call.value(1)() (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#64)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#48)\n\t\t- address(target).call.value(1)() (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#64)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#49)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#68)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L46-L51):\n\tExternal calls:\n\t- [externalCaller(target)](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L47)\n\t\t- [address(target).call()](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L60)\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L48)\n\t\t- [address(target).call.value(1)()](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L64)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L48)\n\t\t- [address(target).call.value(1)()](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L64)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L49)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L68)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L46-L51", - "id": "2c5b7e723892ca273cde4bf80ff3909e425d55cc6de2a2c0778c4cfed2e32e11", + "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#46-51):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#47)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#60)\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#48)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#64)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#48)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#64)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#49)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#68)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L46-L51):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L47)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L60)\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L48)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L64)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L48)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L64)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L49)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L68)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L46-L51", + "id": "8dc3fae54d7cfaf76e3de349febceb751f085423bdbf7a76eb5c86a70f3129aa", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -2592,25 +2464,20 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad3", "source_mapping": { - "start": 586, - "length": 238, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 830, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 + 40, + 41, + 42, + 43, + 44 ], "starting_column": 5, "ending_column": 6 @@ -2622,9 +2489,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2701,47 +2568,42 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad3(address)" } }, { "type": "node", - "name": "success = target.call()", + "name": "externalCaller(target)", "source_mapping": { - "start": 633, - "length": 30, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 877, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30 + 41 ], "starting_column": 9, - "ending_column": 39 + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad3", "source_mapping": { - "start": 586, - "length": 238, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 830, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 + 40, + 41, + 42, + 43, + 44 ], "starting_column": 5, "ending_column": 6 @@ -2753,9 +2615,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2832,7 +2694,7 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad3(address)" } } }, @@ -2842,42 +2704,35 @@ }, { "type": "node", - "name": "address(target).call.value(1000)()", + "name": "address(target).call()", "source_mapping": { - "start": 700, - "length": 34, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 1329, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 32 + 60 ], - "starting_column": 13, - "ending_column": 47 + "starting_column": 9, + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "externalCaller", "source_mapping": { - "start": 586, - "length": 238, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 1271, + "length": 87, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 + 59, + 60, + 61 ], "starting_column": 5, "ending_column": 6 @@ -2889,9 +2744,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2968,52 +2823,47 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "externalCaller(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "success = target.call()", + "name": "externalCaller(target)", "source_mapping": { - "start": 633, - "length": 30, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 877, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30 + 41 ], "starting_column": 9, - "ending_column": 39 + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad3", "source_mapping": { - "start": 586, - "length": 238, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 830, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 + 40, + 41, + 42, + 43, + 44 ], "starting_column": 5, "ending_column": 6 @@ -3025,9 +2875,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3104,7 +2954,7 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad3(address)" } } }, @@ -3114,42 +2964,35 @@ }, { "type": "node", - "name": "address(target).call.value(1000)()", + "name": "address(target).call()", "source_mapping": { - "start": 700, - "length": 34, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 1329, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 32 + 60 ], - "starting_column": 13, - "ending_column": 47 + "starting_column": 9, + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "externalCaller", "source_mapping": { - "start": 586, - "length": 238, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 1271, + "length": 87, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 + 59, + 60, + 61 ], "starting_column": 5, "ending_column": 6 @@ -3161,9 +3004,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3240,7 +3083,7 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "externalCaller(address)" } } }, @@ -3250,42 +3093,37 @@ }, { "type": "node", - "name": "counter += 1", + "name": "varChanger()", "source_mapping": { - "start": 748, + "start": 909, "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 33 + 42 ], - "starting_column": 13, - "ending_column": 25 + "starting_column": 9, + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad3", "source_mapping": { - "start": 586, - "length": 238, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 830, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 + 40, + 41, + 42, + 43, + 44 ], "starting_column": 5, "ending_column": 6 @@ -3297,9 +3135,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3376,121 +3214,256 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad3(address)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "counter" + "variable_name": "anotherVariableToChange" } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#29-38):\n\tExternal calls:\n\t- success = target.call() (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#30)\n\t- address(target).call.value(1000)() (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#32)\n\tExternal calls sending eth:\n\t- address(target).call.value(1000)() (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#32)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#33)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L29-L38):\n\tExternal calls:\n\t- [success = target.call()](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L30)\n\t- [address(target).call.value(1000)()](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L32)\n\tExternal calls sending eth:\n\t- [address(target).call.value(1000)()](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L32)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L33)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L29-L38", - "id": "3180ddee7a1760e704dea65602dda2c269e95d0623dd8dba90c0fa59fc983078", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ + }, { - "type": "function", - "name": "bad1", + "type": "node", + "name": "anotherVariableToChange ++", "source_mapping": { - "start": 448, - "length": 132, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 1501, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26, - 27 + 68 ], - "starting_column": 5, - "ending_column": 6 + "starting_column": 9, + "ending_column": 34 }, "type_specific_fields": { "parent": { - "type": "contract", - "name": "ReentrancyBenign", + "type": "function", + "name": "varChanger", "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 1461, + "length": 72, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, + 67, + 68, + 69 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 25, + "length": 1510, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "varChanger()" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" + } + } + ], + "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#40-44):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#41)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#60)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#42)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#68)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L40-L44):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L41)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L60)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L42)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L68)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L40-L44", + "id": "b410e9af3db5ba2a1c0d8d55f35a64120d2a15c45099ffae2f35cfe003a3fed3", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "bad2", + "source_mapping": { + "start": 586, + "length": 238, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 25, + "length": 1510, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, 66, 67, 68, @@ -3502,21 +3475,21 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "bad2(address)" } }, { "type": "node", "name": "success = target.call()", "source_mapping": { - "start": 495, + "start": 633, "length": 30, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24 + 30 ], "starting_column": 9, "ending_column": 39 @@ -3524,20 +3497,25 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 448, - "length": 132, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 586, + "length": 238, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26, - 27 + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 ], "starting_column": 5, "ending_column": 6 @@ -3549,9 +3527,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3628,7 +3606,7 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "bad2(address)" } } }, @@ -3638,37 +3616,42 @@ }, { "type": "node", - "name": "success = target.call()", + "name": "address(target).call.value(1000)()", "source_mapping": { - "start": 495, - "length": 30, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 700, + "length": 34, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24 + 32 ], - "starting_column": 9, - "ending_column": 39 + "starting_column": 13, + "ending_column": 47 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 448, - "length": 132, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 586, + "length": 238, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26, - 27 + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 ], "starting_column": 5, "ending_column": 6 @@ -3680,9 +3663,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3759,47 +3742,52 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "bad2(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "counter += 1", + "name": "success = target.call()", "source_mapping": { - "start": 561, - "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 633, + "length": 30, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 26 + 30 ], "starting_column": 9, - "ending_column": 21 + "ending_column": 39 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 448, - "length": 132, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 586, + "length": 238, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 23, - 24, - 25, - 26, - 27 + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 ], "starting_column": 5, "ending_column": 6 @@ -3811,9 +3799,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3890,168 +3878,52 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "bad2(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#23-27):\n\tExternal calls:\n\t- success = target.call() (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#24)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#26)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L23-L27):\n\tExternal calls:\n\t- [success = target.call()](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L24)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L26)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L23-L27", - "id": "5fb57eb2a5139fdffbb315bf81a08464938d5f19d8b87e1c292d5be33d8ddd40", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 830, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "externalCaller(target)", + "name": "address(target).call.value(1000)()", "source_mapping": { - "start": 877, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 700, + "length": 34, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41 + 32 ], - "starting_column": 9, - "ending_column": 31 + "starting_column": 13, + "ending_column": 47 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad2", "source_mapping": { - "start": 830, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 586, + "length": 238, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 40, - 41, - 42, - 43, - 44 + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 ], "starting_column": 5, "ending_column": 6 @@ -4063,9 +3935,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4142,45 +4014,52 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad2(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "address(target).call()", + "name": "counter += 1", "source_mapping": { - "start": 1329, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 748, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60 + 33 ], - "starting_column": 9, - "ending_column": 31 + "starting_column": 13, + "ending_column": 25 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "bad2", "source_mapping": { - "start": 1271, - "length": 87, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 586, + "length": 238, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 59, - 60, - 61 + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 ], "starting_column": 5, "ending_column": 6 @@ -4192,9 +4071,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4271,47 +4150,168 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "bad2(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "counter" } - }, + } + ], + "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#29-38):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#30)\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#32)\n\tExternal calls sending eth:\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#32)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#33)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L29-L38):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L30)\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L32)\n\tExternal calls sending eth:\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L32)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L33)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L29-L38", + "id": "bd8ab3b91a42e51b2da0716331de604898a69d29ac9100eb95681a5a7d3f9c47", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ { - "type": "node", - "name": "externalCaller(target)", + "type": "function", + "name": "bad5", "source_mapping": { - "start": 877, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 1137, + "length": 128, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41 + 53, + 54, + 55, + 56, + 57 ], - "starting_column": 9, - "ending_column": 31 + "starting_column": 5, + "ending_column": 6 }, "type_specific_fields": { "parent": { - "type": "function", - "name": "bad3", + "type": "contract", + "name": "ReentrancyBenign", "source_mapping": { - "start": 830, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 25, + "length": 1510, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, 40, 41, 42, 43, - 44 + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad5(address)" + } + }, + { + "type": "node", + "name": "ethSender(address(0))", + "source_mapping": { + "start": 1184, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 54 + ], + "starting_column": 9, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad5", + "source_mapping": { + "start": 1137, + "length": 128, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 53, + 54, + 55, + 56, + 57 ], "starting_column": 5, "ending_column": 6 @@ -4323,9 +4323,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4402,45 +4402,45 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad5(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "address(target).call()", + "name": "address(target).call.value(1)()", "source_mapping": { - "start": 1329, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 1417, + "length": 31, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60 + 64 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 40 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "ethSender", "source_mapping": { - "start": 1271, - "length": 87, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 1364, + "length": 91, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 59, - 60, - 61 + 63, + 64, + 65 ], "starting_column": 5, "ending_column": 6 @@ -4452,9 +4452,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4531,7 +4531,7 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "ethSender(address)" } } }, @@ -4543,14 +4543,14 @@ "type": "node", "name": "varChanger()", "source_mapping": { - "start": 909, + "start": 1215, "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 42 + 55 ], "starting_column": 9, "ending_column": 21 @@ -4558,20 +4558,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad5", "source_mapping": { - "start": 830, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "start": 1137, + "length": 128, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 40, - 41, - 42, - 43, - 44 + 53, + 54, + 55, + 56, + 57 ], "starting_column": 5, "ending_column": 6 @@ -4583,9 +4583,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4662,7 +4662,7 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad5(address)" } } }, @@ -4677,9 +4677,9 @@ "source_mapping": { "start": 1501, "length": 25, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 68 @@ -4694,9 +4694,9 @@ "source_mapping": { "start": 1461, "length": 72, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 67, @@ -4713,9 +4713,9 @@ "source_mapping": { "start": 25, "length": 1510, - "filename_relative": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4802,10 +4802,10 @@ } } ], - "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#40-44):\n\tExternal calls:\n\t- externalCaller(target) (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#41)\n\t\t- address(target).call() (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#60)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#42)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#68)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L40-L44):\n\tExternal calls:\n\t- [externalCaller(target)](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L41)\n\t\t- [address(target).call()](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L60)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L42)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L68)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.4.25/reentrancy-benign.sol#L40-L44", - "id": "a810049262dd308ddb72c1e0ff5f221cc85389c1e0a91b3e9c1eb06264e8de75", + "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#53-57):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#54)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#64)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#55)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#68)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L53-L57):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L54)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L64)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L55)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L68)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L53-L57", + "id": "fbfcc9d6336f34b7ee7673a85a38d0a012fa736517fa999c118486aa4313a4d2", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol b/tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol similarity index 100% rename from tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol rename to tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol diff --git a/tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json b/tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json similarity index 86% rename from tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json rename to tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json index a683dc6ec..667e6c92f 100644 --- a/tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json +++ b/tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json @@ -4,21 +4,22 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad0", "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 335, + "length": 155, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -30,9 +31,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -110,43 +111,44 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad0()" } }, { "type": "node", - "name": "externalCaller(target)", + "name": "success = msg.sender.call()", "source_mapping": { - "start": 1064, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 368, + "length": 37, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 48 + 17 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad0", "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 335, + "length": 155, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -158,9 +160,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -238,7 +240,7 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad0()" } } }, @@ -248,35 +250,39 @@ }, { "type": "node", - "name": "address(target).call()", + "name": "success = msg.sender.call()", "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 368, + "length": 37, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 17 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "bad0", "source_mapping": { - "start": 1329, - "length": 89, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 335, + "length": 155, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -288,9 +294,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -368,7 +374,7 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "bad0()" } } }, @@ -378,38 +384,39 @@ }, { "type": "node", - "name": "ethSender(address(0))", + "name": "counter += 1", "source_mapping": { - "start": 1096, - "length": 21, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 471, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 49 + 21 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad0", "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 335, + "length": 155, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -421,9 +428,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -501,45 +508,169 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad0()" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "variables_written", + "variable_name": "counter" + } + } + ], + "description": "Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- success = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#21)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [success = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L21)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L16-L22", + "id": "01bde163c3436f90414f580ead28b7b0d652f74fdc84312f64c4fdf9f425628f", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "bad3", + "source_mapping": { + "start": 886, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad3(address)" } }, { "type": "node", - "name": "address(target).call.value(1)()", + "name": "externalCaller(target)", "source_mapping": { - "start": 1477, - "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 933, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 42 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "bad3", "source_mapping": { - "start": 1424, - "length": 93, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 886, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -551,9 +682,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -631,156 +762,23 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "bad3(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 1064, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call()", + "name": "address(target).call()", "source_mapping": { "start": 1387, "length": 24, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 61 @@ -795,9 +793,9 @@ "source_mapping": { "start": 1329, "length": 89, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 60, @@ -814,9 +812,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -904,38 +902,37 @@ }, { "type": "node", - "name": "ethSender(address(0))", + "name": "externalCaller(target)", "source_mapping": { - "start": 1096, - "length": 21, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 933, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 49 + 42 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad3", "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 886, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -947,9 +944,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1027,7 +1024,7 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad3(address)" } } }, @@ -1037,35 +1034,35 @@ }, { "type": "node", - "name": "address(target).call.value(1)()", + "name": "address(target).call()", "source_mapping": { - "start": 1477, - "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1387, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 61 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "externalCaller", "source_mapping": { - "start": 1424, - "length": 93, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1329, + "length": 89, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -1077,9 +1074,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1157,7 +1154,7 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "externalCaller(address)" } } }, @@ -1169,14 +1166,14 @@ "type": "node", "name": "varChanger()", "source_mapping": { - "start": 1127, + "start": 965, "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 50 + 43 ], "starting_column": 9, "ending_column": 21 @@ -1184,21 +1181,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad3", "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 886, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -1210,9 +1206,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1290,7 +1286,7 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad3(address)" } } }, @@ -1305,9 +1301,9 @@ "source_mapping": { "start": 1563, "length": 25, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 69 @@ -1322,9 +1318,9 @@ "source_mapping": { "start": 1523, "length": 72, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 68, @@ -1341,9 +1337,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1431,10 +1427,10 @@ } } ], - "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#65)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L65)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L47-L52", - "id": "09715812e28a5537647f577ab2ae708e7a3c903caf67e0ea43e15320f8a602c5", + "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#41-45):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#42)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#61)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#43)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L41-L45):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L42)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L61)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L43)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L41-L45", + "id": "154bd4fe54b895374ec9300b7d7423b290821b97d48ce594f13efb080ccc070a", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -1447,9 +1443,9 @@ "source_mapping": { "start": 496, "length": 135, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 24, @@ -1468,9 +1464,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1553,13 +1549,13 @@ }, { "type": "node", - "name": "(success) = target.call()", + "name": "success = target.call()", "source_mapping": { "start": 543, "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 25 @@ -1574,9 +1570,9 @@ "source_mapping": { "start": 496, "length": 135, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 24, @@ -1595,9 +1591,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1685,13 +1681,13 @@ }, { "type": "node", - "name": "(success) = target.call()", + "name": "success = target.call()", "source_mapping": { "start": 543, "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 25 @@ -1706,9 +1702,9 @@ "source_mapping": { "start": 496, "length": 135, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 24, @@ -1727,9 +1723,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1821,9 +1817,9 @@ "source_mapping": { "start": 612, "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 27 @@ -1838,9 +1834,9 @@ "source_mapping": { "start": 496, "length": 135, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 24, @@ -1859,9 +1855,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1949,10 +1945,10 @@ } } ], - "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- (success) = target.call() (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#27)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [(success) = target.call()](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L27)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L24-L28", - "id": "182811ddaccda6e1fc2f65594a377c1592929956b04e6e52c5ad7c0121f0c809", + "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#27)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L27)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L24-L28", + "id": "5bc9d24aecf09e047b2ce2b3f7702daec3f28194eeb19cf372aebd60e4b83cb9", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -1961,25 +1957,20 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad5", "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1195, + "length": 128, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 54, + 55, + 56, + 57, + 58 ], "starting_column": 5, "ending_column": 6 @@ -1991,9 +1982,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2071,47 +2062,42 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad5(address)" } }, { "type": "node", - "name": "(success) = target.call()", + "name": "ethSender(address(0))", "source_mapping": { - "start": 684, - "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1242, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 31 + 55 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 30 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad5", "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1195, + "length": 128, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 54, + 55, + 56, + 57, + 58 ], "starting_column": 5, "ending_column": 6 @@ -2123,9 +2109,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2203,7 +2189,7 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad5(address)" } } }, @@ -2213,42 +2199,35 @@ }, { "type": "node", - "name": "address(target).call.value(1000)()", + "name": "address(target).call.value(1)()", "source_mapping": { - "start": 754, - "length": 36, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1477, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 33 + 65 ], - "starting_column": 13, - "ending_column": 49 + "starting_column": 9, + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "ethSender", "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1424, + "length": 93, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -2260,9 +2239,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2340,52 +2319,47 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "ethSender(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "(success) = target.call()", + "name": "varChanger()", "source_mapping": { - "start": 684, - "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1273, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 31 + 56 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad5", "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1195, + "length": 128, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 54, + 55, + 56, + 57, + 58 ], "starting_column": 5, "ending_column": 6 @@ -2397,9 +2371,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2477,52 +2451,46 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad5(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } }, { "type": "node", - "name": "address(target).call.value(1000)()", + "name": "anotherVariableToChange ++", "source_mapping": { - "start": 754, - "length": 36, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1563, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 33 + 69 ], - "starting_column": 13, - "ending_column": 49 + "starting_column": 9, + "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "varChanger", "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1523, + "length": 72, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 68, + 69, + 70 ], "starting_column": 5, "ending_column": 6 @@ -2534,9 +2502,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2614,42 +2582,86 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "varChanger()" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } - }, + } + ], + "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#54-58):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#55)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#56)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L54-L58):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L55)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L56)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L54-L58", + "id": "949d5134548c079237abef52d623106e7e3e777d1eb4d89f47f64ae5025ec29a", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ { - "type": "node", - "name": "counter += 1", + "type": "function", + "name": "bad4", "source_mapping": { - "start": 804, - "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1017, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 34 + 47, + 48, + 49, + 50, + 51, + 52 ], - "starting_column": 13, - "ending_column": 25 + "starting_column": 5, + "ending_column": 6 }, "type_specific_fields": { "parent": { - "type": "function", - "name": "bad2", + "type": "contract", + "name": "ReentrancyBenign", "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, 30, 31, 32, @@ -2659,7 +2671,82 @@ 36, 37, 38, - 39 + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad4(address)" + } + }, + { + "type": "node", + "name": "externalCaller(target)", + "source_mapping": { + "start": 1064, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 48 + ], + "starting_column": 9, + "ending_column": 31 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad4", + "source_mapping": { + "start": 1017, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -2671,9 +2758,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2751,173 +2838,178 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad4(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" + "underlying_type": "external_calls" } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- (success) = target.call() (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#31)\n\t- address(target).call.value(1000)() (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#33)\n\tExternal calls sending eth:\n\t- address(target).call.value(1000)() (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#34)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [(success) = target.call()](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L31)\n\t- [address(target).call.value(1000)()](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L33)\n\tExternal calls sending eth:\n\t- [address(target).call.value(1000)()](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L34)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L30-L39", - "id": "252ced5708ae1cf4a55673e963669257e8c4f2601c814c635fde84d478612e2a", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ + }, { - "type": "function", - "name": "bad0", + "type": "node", + "name": "address(target).call()", "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1387, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 61 ], - "starting_column": 5, - "ending_column": 6 + "starting_column": 9, + "ending_column": 33 }, "type_specific_fields": { "parent": { - "type": "contract", - "name": "ReentrancyBenign", + "type": "function", + "name": "externalCaller", "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1329, + "length": 89, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, 60, 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 + 62 ], - "starting_column": 1, - "ending_column": 0 + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "externalCaller(address)" } - }, - "signature": "bad0()" + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "(success) = msg.sender.call()", + "name": "ethSender(address(0))", "source_mapping": { - "start": 368, - "length": 37, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1096, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 17 + 49 ], "starting_column": 9, - "ending_column": 46 + "ending_column": 30 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad4", "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1017, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -2929,9 +3021,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3009,7 +3101,7 @@ "ending_column": 0 } }, - "signature": "bad0()" + "signature": "bad4(address)" } } }, @@ -3019,39 +3111,35 @@ }, { "type": "node", - "name": "(success) = msg.sender.call()", + "name": "address(target).call.value(1)()", "source_mapping": { - "start": 368, - "length": 37, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1477, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 17 + 65 ], "starting_column": 9, - "ending_column": 46 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "ethSender", "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1424, + "length": 93, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -3063,9 +3151,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3143,7 +3231,7 @@ "ending_column": 0 } }, - "signature": "bad0()" + "signature": "ethSender(address)" } } }, @@ -3153,39 +3241,38 @@ }, { "type": "node", - "name": "counter += 1", + "name": "externalCaller(target)", "source_mapping": { - "start": 471, - "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1064, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 21 + 48 ], "starting_column": 9, - "ending_column": 21 + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad4", "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1017, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -3197,9 +3284,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3277,148 +3364,156 @@ "ending_column": 0 } }, - "signature": "bad0()" + "signature": "bad4(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" + "underlying_type": "external_calls_sending_eth" } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad0() (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#21)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L21)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L16-L22", - "id": "7222cf72aee6330979168010b682e7d820989fbbf9a23906914e967a0f5533e6", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ + }, { - "type": "function", - "name": "bad5", + "type": "node", + "name": "address(target).call()", "source_mapping": { - "start": 1195, - "length": 128, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1387, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54, - 55, - 56, - 57, - 58 + 61 ], - "starting_column": 5, - "ending_column": 6 + "starting_column": 9, + "ending_column": 33 }, "type_specific_fields": { "parent": { - "type": "contract", - "name": "ReentrancyBenign", + "type": "function", + "name": "externalCaller", "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1329, + "length": 89, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, 60, 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 + 62 ], - "starting_column": 1, - "ending_column": 0 + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "externalCaller(address)" } - }, - "signature": "bad5(address)" + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", "name": "ethSender(address(0))", "source_mapping": { - "start": 1242, + "start": 1096, "length": 21, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 55 + 49 ], "starting_column": 9, "ending_column": 30 @@ -3426,20 +3521,21 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad4", "source_mapping": { - "start": 1195, - "length": 128, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1017, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54, - 55, - 56, - 57, - 58 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -3451,9 +3547,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3531,12 +3627,12 @@ "ending_column": 0 } }, - "signature": "bad5(address)" + "signature": "bad4(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { @@ -3545,9 +3641,9 @@ "source_mapping": { "start": 1477, "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 65 @@ -3562,9 +3658,9 @@ "source_mapping": { "start": 1424, "length": 93, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 64, @@ -3581,9 +3677,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3673,14 +3769,14 @@ "type": "node", "name": "varChanger()", "source_mapping": { - "start": 1273, + "start": 1127, "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 56 + 50 ], "starting_column": 9, "ending_column": 21 @@ -3688,20 +3784,21 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad4", "source_mapping": { - "start": 1195, - "length": 128, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 1017, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54, - 55, - 56, - 57, - 58 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -3713,9 +3810,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3793,7 +3890,7 @@ "ending_column": 0 } }, - "signature": "bad5(address)" + "signature": "bad4(address)" } } }, @@ -3808,9 +3905,9 @@ "source_mapping": { "start": 1563, "length": 25, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 69 @@ -3825,9 +3922,9 @@ "source_mapping": { "start": 1523, "length": 72, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 68, @@ -3844,9 +3941,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3934,10 +4031,10 @@ } } ], - "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#54-58):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#55)\n\t\t- address(target).call.value(1)() (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#56)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L54-L58):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L55)\n\t\t- [address(target).call.value(1)()](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L56)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L54-L58", - "id": "b371cf739f2ef594320a33b4d707024727f7fc7cabf48f9946f65653429b671e", + "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#65)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L65)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L47-L52", + "id": "a2ff3f26be25c48b10b66f8121b35b0674cfb38309a1f6ba3788852f13e7d166", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -3946,20 +4043,25 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad2", "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 637, + "length": 243, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -3969,254 +4071,129 @@ "type": "contract", "name": "ReentrancyBenign", "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 933, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 } - } - }, - "additional_fields": { - "underlying_type": "external_calls" + }, + "signature": "bad2(address)" } }, { "type": "node", - "name": "address(target).call()", + "name": "success = target.call()", "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 684, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 31 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "bad2", "source_mapping": { - "start": 1329, - "length": 89, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 637, + "length": 243, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -4228,9 +4205,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4308,47 +4285,52 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "bad2(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "externalCaller(target)", + "name": "address(target).call.value(1000)()", "source_mapping": { - "start": 933, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 754, + "length": 36, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 42 + 33 ], - "starting_column": 9, - "ending_column": 31 + "starting_column": 13, + "ending_column": 49 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad2", "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 637, + "length": 243, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -4360,9 +4342,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4440,45 +4422,52 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad2(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "address(target).call()", + "name": "success = target.call()", "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 684, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 31 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "bad2", "source_mapping": { - "start": 1329, - "length": 89, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 637, + "length": 243, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -4490,9 +4479,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4570,7 +4559,7 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "bad2(address)" } } }, @@ -4580,37 +4569,42 @@ }, { "type": "node", - "name": "varChanger()", + "name": "address(target).call.value(1000)()", "source_mapping": { - "start": 965, - "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 754, + "length": 36, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 43 + 33 ], - "starting_column": 9, - "ending_column": 21 + "starting_column": 13, + "ending_column": 49 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad2", "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 637, + "length": 243, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -4622,9 +4616,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4702,46 +4696,52 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad2(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "anotherVariableToChange ++", + "name": "counter += 1", "source_mapping": { - "start": 1563, - "length": 25, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 804, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 69 + 34 ], - "starting_column": 9, - "ending_column": 34 + "starting_column": 13, + "ending_column": 25 }, "type_specific_fields": { "parent": { "type": "function", - "name": "varChanger", + "name": "bad2", "source_mapping": { - "start": 1523, - "length": 72, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "start": 637, + "length": 243, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 68, - 69, - 70 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -4753,9 +4753,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4833,20 +4833,20 @@ "ending_column": 0 } }, - "signature": "varChanger()" + "signature": "bad2(address)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "variable_name": "counter" } } ], - "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#41-45):\n\tExternal calls:\n\t- externalCaller(target) (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#42)\n\t\t- address(target).call() (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#61)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#43)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L41-L45):\n\tExternal calls:\n\t- [externalCaller(target)](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L42)\n\t\t- [address(target).call()](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L61)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L43)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.5.16/reentrancy-benign.sol#L41-L45", - "id": "b4ca5fb9ad17bbab425a11b56f4fb0466db3680404ffb27f185072af6033dae3", + "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#31)\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#33)\n\tExternal calls sending eth:\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#34)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L31)\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L33)\n\tExternal calls sending eth:\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L34)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L30-L39", + "id": "f8646c83125ca7b793d7373531a89a1a2729354823bef56e778fd17c328440ff", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol b/tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol similarity index 100% rename from tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol rename to tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol diff --git a/tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json b/tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json similarity index 86% rename from tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json rename to tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json index 550404d79..6cf05ac89 100644 --- a/tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json +++ b/tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 637, "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 30, @@ -34,9 +34,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -119,13 +119,13 @@ }, { "type": "node", - "name": "(success) = target.call()", + "name": "success = target.call()", "source_mapping": { "start": 684, "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 31 @@ -140,9 +140,9 @@ "source_mapping": { "start": 637, "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 30, @@ -166,9 +166,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -260,9 +260,9 @@ "source_mapping": { "start": 754, "length": 36, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 33 @@ -277,9 +277,9 @@ "source_mapping": { "start": 637, "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 30, @@ -303,9 +303,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -393,13 +393,13 @@ }, { "type": "node", - "name": "(success) = target.call()", + "name": "success = target.call()", "source_mapping": { "start": 684, "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 31 @@ -414,9 +414,9 @@ "source_mapping": { "start": 637, "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 30, @@ -440,9 +440,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -534,9 +534,9 @@ "source_mapping": { "start": 754, "length": 36, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 33 @@ -551,9 +551,9 @@ "source_mapping": { "start": 637, "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 30, @@ -577,9 +577,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -671,9 +671,9 @@ "source_mapping": { "start": 804, "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 34 @@ -688,9 +688,9 @@ "source_mapping": { "start": 637, "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 30, @@ -714,9 +714,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -804,10 +804,10 @@ } } ], - "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- (success) = target.call() (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#31)\n\t- address(target).call.value(1000)() (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#33)\n\tExternal calls sending eth:\n\t- address(target).call.value(1000)() (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#34)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [(success) = target.call()](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L31)\n\t- [address(target).call.value(1000)()](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L33)\n\tExternal calls sending eth:\n\t- [address(target).call.value(1000)()](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L34)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L30-L39", - "id": "3c650a2918e51e0de52806ff655cd61f80b0b71fa3d15c7c5bf82702827ef167", + "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#31)\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#33)\n\tExternal calls sending eth:\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#34)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L31)\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L33)\n\tExternal calls sending eth:\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L34)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L30-L39", + "id": "0da08e49d8779324ee3c6f0ea7fb1c4ac9a3b89e9cd60f9dc856730f747485bf", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -816,20 +816,21 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1017, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -841,9 +842,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -921,21 +922,21 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad4(address)" } }, { "type": "node", "name": "externalCaller(target)", "source_mapping": { - "start": 933, + "start": 1064, "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 42 + 48 ], "starting_column": 9, "ending_column": 31 @@ -943,20 +944,21 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1017, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -968,9 +970,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1048,7 +1050,7 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad4(address)" } } }, @@ -1062,9 +1064,9 @@ "source_mapping": { "start": 1387, "length": 24, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 61 @@ -1079,9 +1081,9 @@ "source_mapping": { "start": 1329, "length": 89, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 60, @@ -1098,9 +1100,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1188,37 +1190,38 @@ }, { "type": "node", - "name": "externalCaller(target)", + "name": "ethSender(address(0))", "source_mapping": { - "start": 933, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1096, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 42 + 49 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 30 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1017, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -1230,9 +1233,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1310,45 +1313,45 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad4(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "address(target).call()", + "name": "address(target).call.value(1)()", "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1477, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 65 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "ethSender", "source_mapping": { - "start": 1329, - "length": 89, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1424, + "length": 93, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -1360,9 +1363,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1440,7 +1443,7 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "ethSender(address)" } } }, @@ -1450,37 +1453,38 @@ }, { "type": "node", - "name": "varChanger()", + "name": "externalCaller(target)", "source_mapping": { - "start": 965, - "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1064, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 43 + 48 ], "starting_column": 9, - "ending_column": 21 + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1017, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -1492,9 +1496,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1572,46 +1576,45 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad4(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "anotherVariableToChange ++", + "name": "address(target).call()", "source_mapping": { - "start": 1563, - "length": 25, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1387, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 69 + 61 ], "starting_column": 9, - "ending_column": 34 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "varChanger", + "name": "externalCaller", "source_mapping": { - "start": 1523, - "length": 72, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1329, + "length": 89, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 68, - 69, - 70 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -1623,9 +1626,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1703,148 +1706,159 @@ "ending_column": 0 } }, - "signature": "varChanger()" + "signature": "externalCaller(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "underlying_type": "external_calls_sending_eth" } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#41-45):\n\tExternal calls:\n\t- externalCaller(target) (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#42)\n\t\t- address(target).call() (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#61)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#43)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L41-L45):\n\tExternal calls:\n\t- [externalCaller(target)](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L42)\n\t\t- [address(target).call()](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L61)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L43)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L41-L45", - "id": "58281d2d0d4b435e02839ff31a2390af2ba44c481c46231470a3259a6a3bedc3", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ + }, { - "type": "function", - "name": "bad1", + "type": "node", + "name": "ethSender(address(0))", "source_mapping": { - "start": 496, - "length": 135, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1096, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 49 ], - "starting_column": 5, - "ending_column": 6 + "starting_column": 9, + "ending_column": 30 }, "type_specific_fields": { "parent": { - "type": "contract", - "name": "ReentrancyBenign", + "type": "function", + "name": "bad4", "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1017, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, 47, 48, 49, 50, 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 + 52 ], - "starting_column": 1, - "ending_column": 0 + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad4(address)" } - }, - "signature": "bad1(address)" + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "(success) = target.call()", + "name": "address(target).call.value(1)()", "source_mapping": { - "start": 543, + "start": 1477, "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 25 + 65 ], "starting_column": 9, "ending_column": 42 @@ -1852,20 +1866,18 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "ethSender", "source_mapping": { - "start": 496, - "length": 135, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1424, + "length": 93, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -1877,9 +1889,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1957,47 +1969,48 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "ethSender(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "(success) = target.call()", + "name": "varChanger()", "source_mapping": { - "start": 543, - "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1127, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 25 + 50 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad4", "source_mapping": { - "start": 496, - "length": 135, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1017, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -2009,9 +2022,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2089,47 +2102,46 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "bad4(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } }, { "type": "node", - "name": "counter += 1", + "name": "anotherVariableToChange ++", "source_mapping": { - "start": 612, - "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1563, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 27 + 69 ], "starting_column": 9, - "ending_column": 21 + "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "varChanger", "source_mapping": { - "start": 496, - "length": 135, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1523, + "length": 72, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 68, + 69, + 70 ], "starting_column": 5, "ending_column": 6 @@ -2141,9 +2153,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2221,20 +2233,20 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "varChanger()" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "counter" + "variable_name": "anotherVariableToChange" } } ], - "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- (success) = target.call() (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#27)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [(success) = target.call()](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L27)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L24-L28", - "id": "8f0d7d7d0fe7ab37eac4842bec23c83b63015f99144343b9d4b2201fda3ec73b", + "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L47-L52", + "id": "29c069745bf3c12b90fd74cf138f7300e077b078dae17e285fd528aaacb7a149", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -2243,22 +2255,20 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad3", "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 886, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -2270,9 +2280,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2350,44 +2360,42 @@ "ending_column": 0 } }, - "signature": "bad0()" + "signature": "bad3(address)" } }, { "type": "node", - "name": "(success) = msg.sender.call()", + "name": "externalCaller(target)", "source_mapping": { - "start": 368, - "length": 37, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 933, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 17 + 42 ], "starting_column": 9, - "ending_column": 46 + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad3", "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 886, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -2399,9 +2407,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2479,7 +2487,7 @@ "ending_column": 0 } }, - "signature": "bad0()" + "signature": "bad3(address)" } } }, @@ -2489,39 +2497,35 @@ }, { "type": "node", - "name": "(success) = msg.sender.call()", + "name": "address(target).call()", "source_mapping": { - "start": 368, - "length": 37, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1387, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 17 + 61 ], "starting_column": 9, - "ending_column": 46 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "externalCaller", "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1329, + "length": 89, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -2533,9 +2537,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2613,7 +2617,7 @@ "ending_column": 0 } }, - "signature": "bad0()" + "signature": "externalCaller(address)" } } }, @@ -2623,39 +2627,37 @@ }, { "type": "node", - "name": "counter += 1", + "name": "externalCaller(target)", "source_mapping": { - "start": 471, - "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 933, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 21 + 42 ], "starting_column": 9, - "ending_column": 21 + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad3", "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 886, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -2667,9 +2669,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2747,171 +2749,45 @@ "ending_column": 0 } }, - "signature": "bad0()" + "signature": "bad3(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad0() (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#21)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L21)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L16-L22", - "id": "a7b654e48f473524c116a9596c90ad440fb301bfdf4906256200347e7d5b052f", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "externalCaller(target)", + "name": "address(target).call()", "source_mapping": { - "start": 1064, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1387, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 48 + 61 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "externalCaller", "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1329, + "length": 89, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -2923,9 +2799,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3003,45 +2879,47 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "externalCaller(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "address(target).call()", + "name": "varChanger()", "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 965, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 43 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "bad3", "source_mapping": { - "start": 1329, - "length": 89, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 886, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -3053,9 +2931,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3133,48 +3011,46 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "bad3(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } }, { "type": "node", - "name": "ethSender(address(0))", + "name": "anotherVariableToChange ++", "source_mapping": { - "start": 1096, - "length": 21, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1563, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 49 + 69 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "varChanger", "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1523, + "length": 72, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 68, + 69, + 70 ], "starting_column": 5, "ending_column": 6 @@ -3186,9 +3062,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3266,45 +3142,169 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "varChanger()" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" + } + } + ], + "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#41-45):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#42)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#61)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#43)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L41-L45):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L42)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L61)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L43)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L41-L45", + "id": "56fad41e825218b4ea67b8f40f78becc7db05f1f9b3a79becede85b495be20f8", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "bad5", + "source_mapping": { + "start": 1195, + "length": 128, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 54, + 55, + 56, + 57, + 58 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad5(address)" } }, { "type": "node", - "name": "address(target).call.value(1)()", + "name": "ethSender(address(0))", "source_mapping": { - "start": 1477, - "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1242, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 55 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 30 }, "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "bad5", "source_mapping": { - "start": 1424, - "length": 93, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1195, + "length": 128, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 54, + 55, + 56, + 57, + 58 ], "starting_column": 5, "ending_column": 6 @@ -3316,9 +3316,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3396,48 +3396,45 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "bad5(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "externalCaller(target)", + "name": "address(target).call.value(1)()", "source_mapping": { - "start": 1064, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1477, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 48 + 65 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "ethSender", "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1424, + "length": 93, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -3449,9 +3446,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3529,7 +3526,7 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "ethSender(address)" } } }, @@ -3539,35 +3536,37 @@ }, { "type": "node", - "name": "address(target).call()", + "name": "varChanger()", "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1273, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 56 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "bad5", "source_mapping": { - "start": 1329, - "length": 89, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1195, + "length": 128, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 54, + 55, + 56, + 57, + 58 ], "starting_column": 5, "ending_column": 6 @@ -3579,9 +3578,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3659,48 +3658,46 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "bad5(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } }, { "type": "node", - "name": "ethSender(address(0))", + "name": "anotherVariableToChange ++", "source_mapping": { - "start": 1096, - "length": 21, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1563, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 49 + 69 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "varChanger", "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 1523, + "length": 72, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 68, + 69, + 70 ], "starting_column": 5, "ending_column": 6 @@ -3712,9 +3709,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3792,26 +3789,148 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "varChanger()" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" + } + } + ], + "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#54-58):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#55)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#56)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L54-L58):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L55)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L56)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L54-L58", + "id": "7ffffc2f58dc006f2f543c361a4eb944fe1d6e58f52717b6770745e29593a91b", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 496, + "length": 135, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 24, + 25, + 26, + 27, + 28 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad1(address)" } }, { "type": "node", - "name": "address(target).call.value(1)()", + "name": "success = target.call()", "source_mapping": { - "start": 1477, + "start": 543, "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 25 ], "starting_column": 9, "ending_column": 42 @@ -3819,18 +3938,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "bad1", "source_mapping": { - "start": 1424, - "length": 93, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 496, + "length": 135, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 24, + 25, + 26, + 27, + 28 ], "starting_column": 5, "ending_column": 6 @@ -3842,9 +3963,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3922,48 +4043,47 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "bad1(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "varChanger()", + "name": "success = target.call()", "source_mapping": { - "start": 1127, - "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 543, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 50 + 25 ], "starting_column": 9, - "ending_column": 21 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad1", "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 496, + "length": 135, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 24, + 25, + 26, + 27, + 28 ], "starting_column": 5, "ending_column": 6 @@ -3975,9 +4095,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4055,46 +4175,47 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad1(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "anotherVariableToChange ++", + "name": "counter += 1", "source_mapping": { - "start": 1563, - "length": 25, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 612, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 69 + 27 ], "starting_column": 9, - "ending_column": 34 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "varChanger", + "name": "bad1", "source_mapping": { - "start": 1523, - "length": 72, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 496, + "length": 135, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 68, - 69, - 70 + 24, + 25, + 26, + 27, + 28 ], "starting_column": 5, "ending_column": 6 @@ -4106,9 +4227,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4186,20 +4307,20 @@ "ending_column": 0 } }, - "signature": "varChanger()" + "signature": "bad1(address)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "variable_name": "counter" } } ], - "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L47-L52", - "id": "d5049610fe8d402e1f27f6a2d900c97748d1fdc7792b87c2c6bf6eb2a3233108", + "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#27)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L27)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L24-L28", + "id": "9208d9cb360276f3b472fd5579c705474230dae3a72a84771cef223b2e99b3be", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -4208,20 +4329,22 @@ "elements": [ { "type": "function", - "name": "bad5", + "name": "bad0", "source_mapping": { - "start": 1195, - "length": 128, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 335, + "length": 155, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54, - 55, - 56, - 57, - 58 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -4233,9 +4356,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4313,42 +4436,44 @@ "ending_column": 0 } }, - "signature": "bad5(address)" + "signature": "bad0()" } }, { "type": "node", - "name": "ethSender(address(0))", + "name": "success = msg.sender.call()", "source_mapping": { - "start": 1242, - "length": 21, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 368, + "length": 37, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 55 + 17 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad0", "source_mapping": { - "start": 1195, - "length": 128, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 335, + "length": 155, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54, - 55, - 56, - 57, - 58 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -4360,9 +4485,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4440,7 +4565,7 @@ "ending_column": 0 } }, - "signature": "bad5(address)" + "signature": "bad0()" } } }, @@ -4450,35 +4575,39 @@ }, { "type": "node", - "name": "address(target).call.value(1)()", + "name": "success = msg.sender.call()", "source_mapping": { - "start": 1477, - "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 368, + "length": 37, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 17 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "bad0", "source_mapping": { - "start": 1424, - "length": 93, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 335, + "length": 155, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -4490,9 +4619,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4570,7 +4699,7 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "bad0()" } } }, @@ -4580,16 +4709,16 @@ }, { "type": "node", - "name": "varChanger()", + "name": "counter += 1", "source_mapping": { - "start": 1273, + "start": 471, "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 56 + 21 ], "starting_column": 9, "ending_column": 21 @@ -4597,151 +4726,22 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1195, - "length": 128, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1563, - "length": 25, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "varChanger", + "name": "bad0", "source_mapping": { - "start": 1523, - "length": 72, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "start": 335, + "length": 155, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 68, - 69, - 70 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -4753,9 +4753,9 @@ "source_mapping": { "start": 28, "length": 1569, - "filename_relative": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4833,20 +4833,20 @@ "ending_column": 0 } }, - "signature": "varChanger()" + "signature": "bad0()" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "variable_name": "counter" } } ], - "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#54-58):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#55)\n\t\t- address(target).call.value(1)() (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#56)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L54-L58):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L55)\n\t\t- [address(target).call.value(1)()](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L56)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.6.11/reentrancy-benign.sol#L54-L58", - "id": "e7c7c3ed238e9eb57245ccd9723aaaf8e9e1b2948b43d39ba9ab99228fb09ec4", + "description": "Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- success = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#21)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [success = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L21)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L16-L22", + "id": "b9fcdada71a3c1500775d28268e10c0e035d5f9229ef2854137620432d1c98dc", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol b/tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol similarity index 100% rename from tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol rename to tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol diff --git a/tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json b/tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json similarity index 82% rename from tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json rename to tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json index 63712de9d..2102ceed7 100644 --- a/tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json +++ b/tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json @@ -4,22 +4,20 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad5", "source_mapping": { - "start": 328, - "length": 155, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1188, + "length": 128, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 54, + 55, + 56, + 57, + 58 ], "starting_column": 5, "ending_column": 6 @@ -31,9 +29,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -111,44 +109,42 @@ "ending_column": 0 } }, - "signature": "bad0()" + "signature": "bad5(address)" } }, { "type": "node", - "name": "(success) = msg.sender.call()", + "name": "ethSender(address(0))", "source_mapping": { - "start": 361, - "length": 37, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1235, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 17 + 55 ], "starting_column": 9, - "ending_column": 46 + "ending_column": 30 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad5", "source_mapping": { - "start": 328, - "length": 155, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1188, + "length": 128, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 54, + 55, + 56, + 57, + 58 ], "starting_column": 5, "ending_column": 6 @@ -160,9 +156,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -240,7 +236,7 @@ "ending_column": 0 } }, - "signature": "bad0()" + "signature": "bad5(address)" } } }, @@ -250,39 +246,35 @@ }, { "type": "node", - "name": "(success) = msg.sender.call()", + "name": "address(target).call()", "source_mapping": { - "start": 361, - "length": 37, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1470, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 17 + 65 ], "starting_column": 9, - "ending_column": 46 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "ethSender", "source_mapping": { - "start": 328, - "length": 155, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1417, + "length": 93, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -294,9 +286,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -374,7 +366,7 @@ "ending_column": 0 } }, - "signature": "bad0()" + "signature": "ethSender(address)" } } }, @@ -384,39 +376,37 @@ }, { "type": "node", - "name": "counter += 1", + "name": "ethSender(address(0))", "source_mapping": { - "start": 464, - "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1235, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 21 + 55 ], "starting_column": 9, - "ending_column": 21 + "ending_column": 30 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad5", "source_mapping": { - "start": 328, - "length": 155, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1188, + "length": 128, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 54, + 55, + 56, + 57, + 58 ], "starting_column": 5, "ending_column": 6 @@ -428,9 +418,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -508,153 +498,26 @@ "ending_column": 0 } }, - "signature": "bad0()" + "signature": "bad5(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad0() (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#21)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L21)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L16-L22", - "id": "048313a93ec637e415b1c374abb90f2893f9c9952499c48b5872fe196cf55299", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 630, - "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "(success) = target.call()", + "name": "address(target).call()", "source_mapping": { - "start": 677, + "start": 1470, "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 31 + 65 ], "starting_column": 9, "ending_column": 42 @@ -662,25 +525,18 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "ethSender", "source_mapping": { - "start": 630, - "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1417, + "length": 93, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -692,9 +548,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -772,52 +628,47 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "ethSender(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "address(target).call{value: 1000}()", + "name": "varChanger()", "source_mapping": { - "start": 747, - "length": 36, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1266, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 33 + 56 ], - "starting_column": 13, - "ending_column": 49 + "starting_column": 9, + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad5", "source_mapping": { - "start": 630, - "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1188, + "length": 128, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 54, + 55, + 56, + 57, + 58 ], "starting_column": 5, "ending_column": 6 @@ -829,9 +680,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -909,52 +760,46 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad5(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } }, { "type": "node", - "name": "(success) = target.call()", + "name": "anotherVariableToChange ++", "source_mapping": { - "start": 677, - "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1556, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 31 + 69 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "varChanger", "source_mapping": { - "start": 630, - "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1516, + "length": 72, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 68, + 69, + 70 ], "starting_column": 5, "ending_column": 6 @@ -966,9 +811,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1046,42 +891,86 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "varChanger()" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } - }, + } + ], + "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#54-58):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#55)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#56)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L54-L58):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L55)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L56)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L54-L58", + "id": "1ae9af101075c35f02db1d683e93595ef26cf79370519b6d52d03f47c5e790ba", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ { - "type": "node", - "name": "address(target).call{value: 1000}()", + "type": "function", + "name": "bad4", "source_mapping": { - "start": 747, - "length": 36, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1010, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 33 + 47, + 48, + 49, + 50, + 51, + 52 ], - "starting_column": 13, - "ending_column": 49 + "starting_column": 5, + "ending_column": 6 }, "type_specific_fields": { "parent": { - "type": "function", - "name": "bad2", + "type": "contract", + "name": "ReentrancyBenign", "source_mapping": { - "start": 630, - "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 28, + "length": 1562, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, 30, 31, 32, @@ -1091,7 +980,82 @@ 36, 37, 38, - 39 + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad4(address)" + } + }, + { + "type": "node", + "name": "externalCaller(target)", + "source_mapping": { + "start": 1057, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 48 + ], + "starting_column": 9, + "ending_column": 31 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad4", + "source_mapping": { + "start": 1010, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -1103,9 +1067,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1183,52 +1147,45 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad4(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "counter += 1", + "name": "address(target).call()", "source_mapping": { - "start": 797, - "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1380, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 34 + 61 ], - "starting_column": 13, - "ending_column": 25 + "starting_column": 9, + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "externalCaller", "source_mapping": { - "start": 630, - "length": 243, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1322, + "length": 89, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -1240,9 +1197,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1320,152 +1277,29 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "externalCaller(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" + "underlying_type": "external_calls_sending_eth" } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- (success) = target.call() (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#31)\n\t- address(target).call{value: 1000}() (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#33)\n\tExternal calls sending eth:\n\t- address(target).call{value: 1000}() (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#34)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [(success) = target.call()](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L31)\n\t- [address(target).call{value: 1000}()](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L33)\n\tExternal calls sending eth:\n\t- [address(target).call{value: 1000}()](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L34)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L30-L39", - "id": "6717f4516d88a5c7e163ec2f50f29be4b3ea7e2df36e9fbc688489a69fef5d77", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1010, - "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - }, + }, { "type": "node", - "name": "externalCaller(target)", + "name": "ethSender(address(0))", "source_mapping": { - "start": 1057, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1089, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 48 + 49 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 30 }, "type_specific_fields": { "parent": { @@ -1474,9 +1308,9 @@ "source_mapping": { "start": 1010, "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 47, @@ -1496,9 +1330,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1588,33 +1422,33 @@ "type": "node", "name": "address(target).call()", "source_mapping": { - "start": 1380, - "length": 24, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1470, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 65 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "ethSender", "source_mapping": { - "start": 1322, - "length": 89, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1417, + "length": 93, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -1626,9 +1460,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1706,7 +1540,7 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "ethSender(address)" } } }, @@ -1716,19 +1550,19 @@ }, { "type": "node", - "name": "ethSender(address(0))", + "name": "externalCaller(target)", "source_mapping": { - "start": 1089, - "length": 21, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1057, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 49 + 48 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 31 }, "type_specific_fields": { "parent": { @@ -1737,9 +1571,9 @@ "source_mapping": { "start": 1010, "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 47, @@ -1759,9 +1593,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1844,40 +1678,40 @@ } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "address(target).call{value: 1}()", + "name": "address(target).call()", "source_mapping": { - "start": 1470, - "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1380, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 61 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "externalCaller", "source_mapping": { - "start": 1417, - "length": 93, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1322, + "length": 89, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -1889,9 +1723,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -1969,7 +1803,7 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "externalCaller(address)" } } }, @@ -1979,19 +1813,19 @@ }, { "type": "node", - "name": "externalCaller(target)", + "name": "ethSender(address(0))", "source_mapping": { - "start": 1057, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1089, + "length": 21, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 48 + 49 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 30 }, "type_specific_fields": { "parent": { @@ -2000,9 +1834,9 @@ "source_mapping": { "start": 1010, "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 47, @@ -2022,9 +1856,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2114,33 +1948,33 @@ "type": "node", "name": "address(target).call()", "source_mapping": { - "start": 1380, - "length": 24, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1470, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 65 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "ethSender", "source_mapping": { - "start": 1322, - "length": 89, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1417, + "length": 93, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -2152,9 +1986,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2232,7 +2066,7 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "ethSender(address)" } } }, @@ -2242,19 +2076,19 @@ }, { "type": "node", - "name": "ethSender(address(0))", + "name": "varChanger()", "source_mapping": { - "start": 1089, - "length": 21, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1120, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 49 + 50 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 21 }, "type_specific_fields": { "parent": { @@ -2263,9 +2097,9 @@ "source_mapping": { "start": 1010, "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 47, @@ -2285,9 +2119,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2370,40 +2204,41 @@ } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } }, { "type": "node", - "name": "address(target).call{value: 1}()", + "name": "anotherVariableToChange ++", "source_mapping": { - "start": 1470, - "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1556, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 69 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "varChanger", "source_mapping": { - "start": 1417, - "length": 93, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1516, + "length": 72, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 68, + 69, + 70 ], "starting_column": 5, "ending_column": 6 @@ -2415,9 +2250,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2495,48 +2330,169 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "varChanger()" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } - }, + } + ], + "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#49)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L49)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L47-L52", + "id": "4aea41e92ea308d2b853acb9757e4ed9b40972b63e140c9ee24f6a8dca6ebbb5", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ { - "type": "node", - "name": "varChanger()", + "type": "function", + "name": "bad3", "source_mapping": { - "start": 1120, - "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 879, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 50 + 41, + 42, + 43, + 44, + 45 ], - "starting_column": 9, - "ending_column": 21 + "starting_column": 5, + "ending_column": 6 }, "type_specific_fields": { "parent": { - "type": "function", - "name": "bad4", + "type": "contract", + "name": "ReentrancyBenign", "source_mapping": { - "start": 1010, - "length": 172, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 28, + "length": 1562, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, 47, 48, 49, 50, 51, - 52 + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad3(address)" + } + }, + { + "type": "node", + "name": "externalCaller(target)", + "source_mapping": { + "start": 926, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 42 + ], + "starting_column": 9, + "ending_column": 31 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad3", + "source_mapping": { + "start": 879, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -2548,9 +2504,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2628,46 +2584,45 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad3(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "anotherVariableToChange ++", + "name": "address(target).call()", "source_mapping": { - "start": 1556, - "length": 25, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1380, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 69 + 61 ], "starting_column": 9, - "ending_column": 34 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "varChanger", + "name": "externalCaller", "source_mapping": { - "start": 1516, - "length": 72, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1322, + "length": 89, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 68, - 69, - 70 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -2679,9 +2634,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -2759,169 +2714,177 @@ "ending_column": 0 } }, - "signature": "varChanger()" + "signature": "externalCaller(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "underlying_type": "external_calls_sending_eth" } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#49)\n\t\t- address(target).call{value: 1}() (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#65)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#49)\n\t\t- address(target).call{value: 1}() (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L49)\n\t\t- [address(target).call{value: 1}()](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L65)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L49)\n\t\t- [address(target).call{value: 1}()](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L47-L52", - "id": "a761807476d935cb91dbefd6f8fd28baaf9b805bf4df2fb9066c4c442d768980", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ + }, { - "type": "function", - "name": "bad1", + "type": "node", + "name": "externalCaller(target)", "source_mapping": { - "start": 489, - "length": 135, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 926, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 42 ], - "starting_column": 5, - "ending_column": 6 + "starting_column": 9, + "ending_column": 31 }, "type_specific_fields": { "parent": { - "type": "contract", - "name": "ReentrancyBenign", + "type": "function", + "name": "bad3", "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 879, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, 41, 42, 43, 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 + 45 ], - "starting_column": 1, - "ending_column": 0 + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1562, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad3(address)" } - }, - "signature": "bad1(address)" + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "(success) = target.call()", + "name": "address(target).call()", "source_mapping": { - "start": 536, - "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1380, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 25 + 61 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "externalCaller", "source_mapping": { - "start": 489, - "length": 135, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1322, + "length": 89, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -2933,9 +2896,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3013,47 +2976,47 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "externalCaller(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "(success) = target.call()", + "name": "varChanger()", "source_mapping": { - "start": 536, - "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 958, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 25 + 43 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad3", "source_mapping": { - "start": 489, - "length": 135, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 879, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -3065,9 +3028,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3145,47 +3108,46 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "bad3(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } }, { "type": "node", - "name": "counter += 1", + "name": "anotherVariableToChange ++", "source_mapping": { - "start": 605, - "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1556, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 27 + 69 ], "starting_column": 9, - "ending_column": 21 + "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "varChanger", "source_mapping": { - "start": 489, - "length": 135, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 1516, + "length": 72, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 68, + 69, + 70 ], "starting_column": 5, "ending_column": 6 @@ -3197,9 +3159,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3277,20 +3239,20 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "varChanger()" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "counter" + "variable_name": "anotherVariableToChange" } } ], - "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- (success) = target.call() (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#27)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [(success) = target.call()](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L27)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L24-L28", - "id": "c80120e0907dee95cc562b53958082d0664ee15a3aaa617ac17e27d25ae48d46", + "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#41-45):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#42)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#61)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#43)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L41-L45):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L42)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L61)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L43)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L41-L45", + "id": "57b2ad2ee5a85c48036d5e0a8e7b7d301256c1f692d6ff140516dd1ebaf4ae7d", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -3299,20 +3261,25 @@ "elements": [ { "type": "function", - "name": "bad5", + "name": "bad2", "source_mapping": { - "start": 1188, - "length": 128, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 630, + "length": 243, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54, - 55, - 56, - 57, - 58 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -3324,9 +3291,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3403,43 +3370,185 @@ "starting_column": 1, "ending_column": 0 } - }, - "signature": "bad5(address)" + }, + "signature": "bad2(address)" + } + }, + { + "type": "node", + "name": "success = target.call()", + "source_mapping": { + "start": 677, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 31 + ], + "starting_column": 9, + "ending_column": 42 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad2", + "source_mapping": { + "start": 630, + "length": 243, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1562, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad2(address)" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls" } }, { "type": "node", - "name": "ethSender(address(0))", + "name": "address(target).call()", "source_mapping": { - "start": 1235, - "length": 21, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 747, + "length": 36, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 55 + 33 ], - "starting_column": 9, - "ending_column": 30 + "starting_column": 13, + "ending_column": 49 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad2", "source_mapping": { - "start": 1188, - "length": 128, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 630, + "length": 243, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54, - 55, - 56, - 57, - 58 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -3451,9 +3560,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3531,7 +3640,7 @@ "ending_column": 0 } }, - "signature": "bad5(address)" + "signature": "bad2(address)" } } }, @@ -3541,16 +3650,16 @@ }, { "type": "node", - "name": "address(target).call{value: 1}()", + "name": "success = target.call()", "source_mapping": { - "start": 1470, + "start": 677, "length": 33, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 31 ], "starting_column": 9, "ending_column": 42 @@ -3558,18 +3667,25 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "bad2", "source_mapping": { - "start": 1417, - "length": 93, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 630, + "length": 243, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -3581,9 +3697,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3661,7 +3777,7 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "bad2(address)" } } }, @@ -3671,37 +3787,42 @@ }, { "type": "node", - "name": "varChanger()", + "name": "address(target).call()", "source_mapping": { - "start": 1266, - "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 747, + "length": 36, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 56 + 33 ], - "starting_column": 9, - "ending_column": 21 + "starting_column": 13, + "ending_column": 49 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad2", "source_mapping": { - "start": 1188, - "length": 128, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 630, + "length": 243, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54, - 55, - 56, - 57, - 58 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -3713,9 +3834,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3793,46 +3914,52 @@ "ending_column": 0 } }, - "signature": "bad5(address)" + "signature": "bad2(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "anotherVariableToChange ++", + "name": "counter += 1", "source_mapping": { - "start": 1556, - "length": 25, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 797, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 69 + 34 ], - "starting_column": 9, - "ending_column": 34 + "starting_column": 13, + "ending_column": 25 }, "type_specific_fields": { "parent": { "type": "function", - "name": "varChanger", + "name": "bad2", "source_mapping": { - "start": 1516, - "length": 72, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 630, + "length": 243, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 68, - 69, - 70 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -3844,9 +3971,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -3924,20 +4051,20 @@ "ending_column": 0 } }, - "signature": "varChanger()" + "signature": "bad2(address)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "variable_name": "counter" } } ], - "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#54-58):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#55)\n\t\t- address(target).call{value: 1}() (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#56)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L54-L58):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L55)\n\t\t- [address(target).call{value: 1}()](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L56)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L54-L58", - "id": "d1495003f18e1d1814ff11bb252ae6d8a0d3a42338e6def154390acf5d1a4d55", + "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#31)\n\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#34)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L31)\n\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L34)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L30-L39", + "id": "8a0d0595c5a15f49c181e0fccddebd7783f10f9c4243813eec0c4c99fe5d031a", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -3946,20 +4073,20 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 879, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 489, + "length": 135, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 24, + 25, + 26, + 27, + 28 ], "starting_column": 5, "ending_column": 6 @@ -3971,9 +4098,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4051,42 +4178,42 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad1(address)" } }, { "type": "node", - "name": "externalCaller(target)", + "name": "success = target.call()", "source_mapping": { - "start": 926, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 536, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 42 + 25 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 879, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 489, + "length": 135, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 24, + 25, + 26, + 27, + 28 ], "starting_column": 5, "ending_column": 6 @@ -4098,9 +4225,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4178,7 +4305,7 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad1(address)" } } }, @@ -4188,35 +4315,37 @@ }, { "type": "node", - "name": "address(target).call()", + "name": "success = target.call()", "source_mapping": { - "start": 1380, - "length": 24, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 536, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 25 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "bad1", "source_mapping": { - "start": 1322, - "length": 89, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 489, + "length": 135, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 24, + 25, + 26, + 27, + 28 ], "starting_column": 5, "ending_column": 6 @@ -4228,9 +4357,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4308,7 +4437,7 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "bad1(address)" } } }, @@ -4318,37 +4447,37 @@ }, { "type": "node", - "name": "externalCaller(target)", + "name": "counter += 1", "source_mapping": { - "start": 926, - "length": 22, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 605, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 42 + 27 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 879, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 489, + "length": 135, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 24, + 25, + 26, + 27, + 28 ], "starting_column": 5, "ending_column": 6 @@ -4360,9 +4489,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4440,45 +4569,173 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad1(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "counter" + } + } + ], + "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#27)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L27)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L24-L28", + "id": "9507741c95b0ae83311d2ff96548ef2c8313536e6e2eaf3eb8acb35d421421fc", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "bad0", + "source_mapping": { + "start": 328, + "length": 155, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1562, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad0()" } }, { "type": "node", - "name": "address(target).call()", + "name": "success = msg.sender.call()", "source_mapping": { - "start": 1380, - "length": 24, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 361, + "length": 37, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 17 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "bad0", "source_mapping": { - "start": 1322, - "length": 89, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 328, + "length": 155, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -4490,9 +4747,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4570,47 +4827,49 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "bad0()" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "varChanger()", + "name": "success = msg.sender.call()", "source_mapping": { - "start": 958, - "length": 12, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 361, + "length": 37, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 43 + 17 ], "starting_column": 9, - "ending_column": 21 + "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad0", "source_mapping": { - "start": 879, - "length": 125, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 328, + "length": 155, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -4622,9 +4881,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4702,46 +4961,49 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad0()" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "anotherVariableToChange ++", + "name": "counter += 1", "source_mapping": { - "start": 1556, - "length": 25, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 464, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 69 + 21 ], "starting_column": 9, - "ending_column": 34 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "varChanger", + "name": "bad0", "source_mapping": { - "start": 1516, - "length": 72, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "start": 328, + "length": 155, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 68, - 69, - 70 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -4753,9 +5015,9 @@ "source_mapping": { "start": 28, "length": 1562, - "filename_relative": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ 3, @@ -4833,20 +5095,20 @@ "ending_column": 0 } }, - "signature": "varChanger()" + "signature": "bad0()" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "variable_name": "counter" } } ], - "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#41-45):\n\tExternal calls:\n\t- externalCaller(target) (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#42)\n\t\t- address(target).call() (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#61)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#43)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L41-L45):\n\tExternal calls:\n\t- [externalCaller(target)](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L42)\n\t\t- [address(target).call()](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L61)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L43)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/detectors/reentrancy-benign/0.7.6/reentrancy-benign.sol#L41-L45", - "id": "daed2df217460e31f6b03c385a5256ad0e29f973a06779d9b95c059c3c9c5c48", + "description": "Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- success = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#21)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [success = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L21)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L16-L22", + "id": "ad5954811d108e6a5b88057caf9f10ee42091132f546342bce1e6a4d99bcfad4", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-eth/0.4.25/DAO.sol b/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol similarity index 100% rename from tests/detectors/reentrancy-eth/0.4.25/DAO.sol rename to tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol diff --git a/tests/detectors/reentrancy-eth/0.4.25/DAO.sol.0.4.25.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol.0.4.25.ReentrancyEth.json similarity index 94% rename from tests/detectors/reentrancy-eth/0.4.25/DAO.sol.0.4.25.ReentrancyEth.json rename to tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol.0.4.25.ReentrancyEth.json index fa3420830..325c82826 100644 --- a/tests/detectors/reentrancy-eth/0.4.25/DAO.sol.0.4.25.ReentrancyEth.json +++ b/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol.0.4.25.ReentrancyEth.json @@ -4,100 +4,30 @@ "elements": [ { "type": "function", - "name": "executeProposal", + "name": "refund", "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 11531, + "length": 635, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332 ], "starting_column": 5, "ending_column": 6 @@ -105,3857 +35,1432 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "DAO", + "name": "TokenCreation", "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 10437, + "length": 2342, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - }, - { - "type": "node", - "name": "! isRecipientAllowed(p.recipient)", - "source_mapping": { - "start": 33981, - "length": 32, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 881 - ], - "starting_column": 13, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "allowedRecipients[_recipient] || (_recipient == address(extraBalance) && totalRewardToken > extraBalance.accumulatedInput())", - "source_mapping": { - "start": 43091, - "length": 289, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1159, - 1160, - 1161, - 1162, - 1163 - ], - "starting_column": 13, - "ending_column": 71 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "isRecipientAllowed", - "source_mapping": { - "start": 42994, - "length": 457, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "isRecipientAllowed(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "! p.recipient.call.value(p.amount)(_transactionData)", - "source_mapping": { - "start": 35109, - "length": 51, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 915 - ], - "starting_column": 17, - "ending_column": 68 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "! p.creator.send(p.proposalDeposit)", - "source_mapping": { - "start": 34718, - "length": 34, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 904 - ], - "starting_column": 17, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "! p.recipient.call.value(p.amount)(_transactionData)", - "source_mapping": { - "start": 35109, - "length": 51, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 915 - ], - "starting_column": 17, - "ending_column": 68 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "refund()" + } + }, + { + "type": "node", + "name": "extraBalance.balance >= extraBalance.accumulatedInput()", + "source_mapping": { + "start": 11704, + "length": 55, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 321 + ], + "starting_column": 17, + "ending_column": 72 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "refund", + "source_mapping": { + "start": 11531, + "length": 635, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TokenCreation", + "source_mapping": { + "start": 10437, + "length": 2342, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "refund()" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls" + } + }, + { + "type": "node", + "name": "extraBalance.payOut(address(this),extraBalance.accumulatedInput())", + "source_mapping": { + "start": 11777, + "length": 67, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 322 + ], + "starting_column": 17, + "ending_column": 84 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "refund", + "source_mapping": { + "start": 11531, + "length": 635, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TokenCreation", + "source_mapping": { + "start": 10437, + "length": 2342, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "refund()" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls" + } + }, + { + "type": "node", + "name": "msg.sender.call.value(weiGiven[msg.sender])()", + "source_mapping": { + "start": 11893, + "length": 45, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 325 + ], + "starting_column": 17, + "ending_column": 62 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "refund", + "source_mapping": { + "start": 11531, + "length": 635, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TokenCreation", + "source_mapping": { + "start": 10437, + "length": 2342, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "refund()" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls" + } + }, + { + "type": "node", + "name": "msg.sender.call.value(weiGiven[msg.sender])()", + "source_mapping": { + "start": 11893, + "length": 45, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 325 + ], + "starting_column": 17, + "ending_column": 62 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "refund", + "source_mapping": { + "start": 11531, + "length": 635, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TokenCreation", + "source_mapping": { + "start": 10437, + "length": 2342, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "executeProposal(uint256,bytes)" + "signature": "refund()" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" + } + }, + { + "type": "node", + "name": "weiGiven[msg.sender] = 0", + "source_mapping": { + "start": 12111, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 329 + ], + "starting_column": 17, + "ending_column": 41 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "refund", + "source_mapping": { + "start": 11531, + "length": 635, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "TokenCreation", + "source_mapping": { + "start": 10437, + "length": 2342, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "refund()" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "weiGiven" + } + } + ], + "description": "Reentrancy in TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#318-332):\n\tExternal calls:\n\t- extraBalance.balance >= extraBalance.accumulatedInput() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#321)\n\t- extraBalance.payOut(address(this),extraBalance.accumulatedInput()) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#322)\n\t- msg.sender.call.value(weiGiven[msg.sender])() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#325)\n\tExternal calls sending eth:\n\t- msg.sender.call.value(weiGiven[msg.sender])() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#325)\n\tState variables written after the call(s):\n\t- weiGiven[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#329)\n\tTokenCreationInterface.weiGiven (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#251) can be used in cross function reentrancies:\n\t- TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#299-316)\n\t- TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#318-332)\n", + "markdown": "Reentrancy in [TokenCreation.refund()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L318-L332):\n\tExternal calls:\n\t- [extraBalance.balance >= extraBalance.accumulatedInput()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L321)\n\t- [extraBalance.payOut(address(this),extraBalance.accumulatedInput())](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L322)\n\t- [msg.sender.call.value(weiGiven[msg.sender])()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L325)\n\tExternal calls sending eth:\n\t- [msg.sender.call.value(weiGiven[msg.sender])()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L325)\n\tState variables written after the call(s):\n\t- [weiGiven[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L329)\n\t[TokenCreationInterface.weiGiven](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L251) can be used in cross function reentrancies:\n\t- [TokenCreation.createTokenProxy(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L299-L316)\n\t- [TokenCreation.refund()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L318-L332)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L318-L332", + "id": "a37226350e559b6bdb008757f6a66b89aab30256fc993719662092bb46b60b6c", + "check": "reentrancy-eth", + "impact": "High", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "executeProposal", + "source_mapping": { + "start": 32955, + "length": 2978, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" + }, + "signature": "executeProposal(uint256,bytes)" } }, { "type": "node", - "name": "p.proposalPassed = true", + "name": "! isRecipientAllowed(p.recipient)", "source_mapping": { - "start": 35198, - "length": 23, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 33981, + "length": 32, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 918 + 881 ], "starting_column": 13, - "ending_column": 36 + "ending_column": 45 }, "type_specific_fields": { "parent": { @@ -3964,9 +1469,9 @@ "source_mapping": { "start": 32955, "length": 2978, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 853, @@ -4065,9 +1570,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -4610,123 +2115,51 @@ } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "proposals" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "closeProposal(_proposalID)", + "name": "allowedRecipients[_recipient] || (_recipient == address(extraBalance) && totalRewardToken > extraBalance.accumulatedInput())", "source_mapping": { - "start": 35817, - "length": 26, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 43091, + "length": 289, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 933 + 1159, + 1160, + 1161, + 1162, + 1163 ], - "starting_column": 9, - "ending_column": 35 + "starting_column": 13, + "ending_column": 71 }, "type_specific_fields": { - "parent": { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 + "parent": { + "type": "function", + "name": "isRecipientAllowed", + "source_mapping": { + "start": 42994, + "length": 457, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167 ], "starting_column": 5, "ending_column": 6 @@ -4738,9 +2171,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -5278,49 +2711,127 @@ "ending_column": 2 } }, - "signature": "executeProposal(uint256,bytes)" + "signature": "isRecipientAllowed(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "proposals" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "p.open = false", + "name": "! p.recipient.call.value(p.amount)(_transactionData)", "source_mapping": { - "start": 36121, - "length": 14, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 35109, + "length": 51, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 944 + 915 ], - "starting_column": 9, - "ending_column": 23 + "starting_column": 17, + "ending_column": 68 }, "type_specific_fields": { "parent": { "type": "function", - "name": "closeProposal", + "name": "executeProposal", "source_mapping": { - "start": 35940, - "length": 202, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 32955, + "length": 2978, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 940, - 941, - 942, - 943, - 944, - 945 + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937 ], "starting_column": 5, "ending_column": 6 @@ -5332,9 +2843,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -5872,30 +3383,29 @@ "ending_column": 2 } }, - "signature": "closeProposal(uint256)" + "signature": "executeProposal(uint256,bytes)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "proposals" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "rewardToken[address(this)] += p.amount", + "name": "! p.creator.send(p.proposalDeposit)", "source_mapping": { - "start": 35698, - "length": 38, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 34718, + "length": 34, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 928 + 904 ], "starting_column": 17, - "ending_column": 55 + "ending_column": 51 }, "type_specific_fields": { "parent": { @@ -5904,9 +3414,9 @@ "source_mapping": { "start": 32955, "length": 2978, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 853, @@ -6005,9 +3515,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -6550,25 +4060,24 @@ } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "rewardToken" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "closeProposal(_proposalID)", + "name": "! p.recipient.call.value(p.amount)(_transactionData)", "source_mapping": { - "start": 35817, - "length": 26, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 35109, + "length": 51, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 933 + 915 ], - "starting_column": 9, - "ending_column": 35 + "starting_column": 17, + "ending_column": 68 }, "type_specific_fields": { "parent": { @@ -6577,9 +4086,9 @@ "source_mapping": { "start": 32955, "length": 2978, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 853, @@ -6678,9 +4187,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -7223,44 +4732,122 @@ } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "sumOfProposalDeposits" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "sumOfProposalDeposits -= p.proposalDeposit", + "name": "p.proposalPassed = true", "source_mapping": { - "start": 36069, - "length": 42, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 35198, + "length": 23, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 943 + 918 ], "starting_column": 13, - "ending_column": 55 + "ending_column": 36 }, "type_specific_fields": { "parent": { "type": "function", - "name": "closeProposal", + "name": "executeProposal", "source_mapping": { - "start": 35940, - "length": 202, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 32955, + "length": 2978, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 940, - 941, - 942, - 943, - 944, - 945 + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937 ], "starting_column": 5, "ending_column": 6 @@ -7272,9 +4859,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -7812,30 +5399,30 @@ "ending_column": 2 } }, - "signature": "closeProposal(uint256)" + "signature": "executeProposal(uint256,bytes)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "sumOfProposalDeposits" + "variable_name": "proposals" } }, { "type": "node", - "name": "totalRewardToken += p.amount", + "name": "closeProposal(_proposalID)", "source_mapping": { - "start": 35754, - "length": 28, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 35817, + "length": 26, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 929 + 933 ], - "starting_column": 17, - "ending_column": 45 + "starting_column": 9, + "ending_column": 35 }, "type_specific_fields": { "parent": { @@ -7844,9 +5431,9 @@ "source_mapping": { "start": 32955, "length": 2978, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 853, @@ -7945,9 +5532,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -8381,285 +5968,153 @@ 1122, 1123, 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "totalRewardToken" - } - } - ], - "description": "Reentrancy in DAO.executeProposal(uint256,bytes) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#853-937):\n\tExternal calls:\n\t- ! isRecipientAllowed(p.recipient) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#881)\n\t\t- allowedRecipients[_recipient] || (_recipient == address(extraBalance) && totalRewardToken > extraBalance.accumulatedInput()) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#1159-1163)\n\t- ! p.recipient.call.value(p.amount)(_transactionData) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#915)\n\tExternal calls sending eth:\n\t- ! p.creator.send(p.proposalDeposit) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#904)\n\t- ! p.recipient.call.value(p.amount)(_transactionData) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#915)\n\tState variables written after the call(s):\n\t- p.proposalPassed = true (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#918)\n\tDAOInterface.proposals (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#820-850)\n\t- closeProposal(_proposalID) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#933)\n\t\t- p.open = false (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#944)\n\tDAOInterface.proposals (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#820-850)\n\t- rewardToken[address(this)] += p.amount (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#928)\n\tDAOInterface.rewardToken (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#410) can be used in cross function reentrancies:\n\t- DAO.changeProposalDeposit(uint256) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#1139-1146)\n\t- DAO.executeProposal(uint256,bytes) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.minQuorum(uint256) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#1174-1178)\n\t- DAO.newContract(address) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#1022-1034)\n\t- DAO.retrieveDAOReward(bool) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#1037-1057)\n\t- DAOInterface.rewardToken (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#410)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#947-1020)\n\t- closeProposal(_proposalID) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#933)\n\t\t- sumOfProposalDeposits -= p.proposalDeposit (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#943)\n\tDAOInterface.sumOfProposalDeposits (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#436) can be used in cross function reentrancies:\n\t- DAO.actualBalance() (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#1169-1171)\n\t- DAO.closeProposal(uint256) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#947-1020)\n\t- totalRewardToken += p.amount (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#929)\n\tDAOInterface.totalRewardToken (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#412) can be used in cross function reentrancies:\n\t- DAO.executeProposal(uint256,bytes) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.isRecipientAllowed(address) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#1158-1167)\n\t- DAO.retrieveDAOReward(bool) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#1037-1057)\n\t- DAOInterface.totalRewardToken (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#412)\n", - "markdown": "Reentrancy in [DAO.executeProposal(uint256,bytes)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L853-L937):\n\tExternal calls:\n\t- [! isRecipientAllowed(p.recipient)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L881)\n\t\t- [allowedRecipients[_recipient] || (_recipient == address(extraBalance) && totalRewardToken > extraBalance.accumulatedInput())](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L1159-L1163)\n\t- [! p.recipient.call.value(p.amount)(_transactionData)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L915)\n\tExternal calls sending eth:\n\t- [! p.creator.send(p.proposalDeposit)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L904)\n\t- [! p.recipient.call.value(p.amount)(_transactionData)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L915)\n\tState variables written after the call(s):\n\t- [p.proposalPassed = true](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L918)\n\t[DAOInterface.proposals](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L820-L850)\n\t- [closeProposal(_proposalID)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L933)\n\t\t- [p.open = false](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L944)\n\t[DAOInterface.proposals](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L820-L850)\n\t- [rewardToken[address(this)] += p.amount](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L928)\n\t[DAOInterface.rewardToken](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L410) can be used in cross function reentrancies:\n\t- [DAO.changeProposalDeposit(uint256)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L1139-L1146)\n\t- [DAO.executeProposal(uint256,bytes)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.minQuorum(uint256)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L1174-L1178)\n\t- [DAO.newContract(address)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L1022-L1034)\n\t- [DAO.retrieveDAOReward(bool)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L1037-L1057)\n\t- [DAOInterface.rewardToken](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L410)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [closeProposal(_proposalID)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L933)\n\t\t- [sumOfProposalDeposits -= p.proposalDeposit](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L943)\n\t[DAOInterface.sumOfProposalDeposits](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L436) can be used in cross function reentrancies:\n\t- [DAO.actualBalance()](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L1169-L1171)\n\t- [DAO.closeProposal(uint256)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [totalRewardToken += p.amount](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L929)\n\t[DAOInterface.totalRewardToken](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L412) can be used in cross function reentrancies:\n\t- [DAO.executeProposal(uint256,bytes)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.isRecipientAllowed(address)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L1158-L1167)\n\t- [DAO.retrieveDAOReward(bool)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L1037-L1057)\n\t- [DAOInterface.totalRewardToken](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L412)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L853-L937", - "id": "b0ba06b4d03ea41bf0a200039964e2095441dddc3ffa19c56a40182a4cba834a", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "refund", - "source_mapping": { - "start": 11531, - "length": 635, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TokenCreation", - "source_mapping": { - "start": 10437, - "length": 2342, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348 - ], - "starting_column": 1, - "ending_column": 2 + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeProposal(uint256,bytes)" } - }, - "signature": "refund()" + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "proposals" } }, { "type": "node", - "name": "extraBalance.balance >= extraBalance.accumulatedInput()", + "name": "p.open = false", "source_mapping": { - "start": 11704, - "length": 55, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 36121, + "length": 14, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 321 + 944 ], - "starting_column": 17, - "ending_column": 72 + "starting_column": 9, + "ending_column": 23 }, "type_specific_fields": { "parent": { "type": "function", - "name": "refund", + "name": "closeProposal", "source_mapping": { - "start": 11531, - "length": 635, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 35940, + "length": 202, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332 + 940, + 941, + 942, + 943, + 944, + 945 ], "starting_column": 5, "ending_column": 6 @@ -8667,133 +6122,672 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TokenCreation", + "name": "DAO", "source_mapping": { - "start": 10437, - "length": 2342, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348 + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "refund()" + "signature": "closeProposal(uint256)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "variables_written", + "variable_name": "proposals" } }, { "type": "node", - "name": "extraBalance.payOut(address(this),extraBalance.accumulatedInput())", + "name": "rewardToken[address(this)] += p.amount", "source_mapping": { - "start": 11777, - "length": 67, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 35698, + "length": 38, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 322 + 928 ], "starting_column": 17, - "ending_column": 84 + "ending_column": 55 }, "type_specific_fields": { "parent": { "type": "function", - "name": "refund", + "name": "executeProposal", "source_mapping": { - "start": 11531, - "length": 635, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 32955, + "length": 2978, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332 + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937 ], "starting_column": 5, "ending_column": 6 @@ -8801,133 +6795,672 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TokenCreation", + "name": "DAO", "source_mapping": { - "start": 10437, - "length": 2342, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348 + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "refund()" + "signature": "executeProposal(uint256,bytes)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "variables_written", + "variable_name": "rewardToken" } }, { "type": "node", - "name": "msg.sender.call.value(weiGiven[msg.sender])()", + "name": "closeProposal(_proposalID)", "source_mapping": { - "start": 11893, - "length": 45, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 35817, + "length": 26, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 325 + 933 ], - "starting_column": 17, - "ending_column": 62 + "starting_column": 9, + "ending_column": 35 }, "type_specific_fields": { "parent": { "type": "function", - "name": "refund", + "name": "executeProposal", "source_mapping": { - "start": 11531, - "length": 635, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 32955, + "length": 2978, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332 + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937 ], "starting_column": 5, "ending_column": 6 @@ -8935,267 +7468,1266 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TokenCreation", + "name": "DAO", "source_mapping": { - "start": 10437, - "length": 2342, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348 + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "refund()" + "signature": "executeProposal(uint256,bytes)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "variables_written", + "variable_name": "sumOfProposalDeposits" } }, { "type": "node", - "name": "msg.sender.call.value(weiGiven[msg.sender])()", + "name": "sumOfProposalDeposits -= p.proposalDeposit", "source_mapping": { - "start": 11893, - "length": 45, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 36069, + "length": 42, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 325 + 943 ], - "starting_column": 17, - "ending_column": 62 + "starting_column": 13, + "ending_column": 55 }, "type_specific_fields": { "parent": { "type": "function", - "name": "refund", - "source_mapping": { - "start": 11531, - "length": 635, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TokenCreation", - "source_mapping": { - "start": 10437, - "length": 2342, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348 + "name": "closeProposal", + "source_mapping": { + "start": 35940, + "length": 202, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 940, + 941, + 942, + 943, + 944, + 945 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "refund()" + "signature": "closeProposal(uint256)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "sumOfProposalDeposits" } }, { "type": "node", - "name": "weiGiven[msg.sender] = 0", + "name": "totalRewardToken += p.amount", "source_mapping": { - "start": 12111, - "length": 24, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 35754, + "length": 28, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 329 + 929 ], "starting_column": 17, - "ending_column": 41 + "ending_column": 45 }, "type_specific_fields": { "parent": { "type": "function", - "name": "refund", + "name": "executeProposal", "source_mapping": { - "start": 11531, - "length": 635, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 32955, + "length": 2978, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332 + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937 ], "starting_column": 5, "ending_column": 6 @@ -9203,96 +8735,564 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TokenCreation", + "name": "DAO", "source_mapping": { - "start": 10437, - "length": 2342, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348 + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "refund()" + "signature": "executeProposal(uint256,bytes)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "weiGiven" + "variable_name": "totalRewardToken" } } ], - "description": "Reentrancy in TokenCreation.refund() (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#318-332):\n\tExternal calls:\n\t- extraBalance.balance >= extraBalance.accumulatedInput() (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#321)\n\t- extraBalance.payOut(address(this),extraBalance.accumulatedInput()) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#322)\n\t- msg.sender.call.value(weiGiven[msg.sender])() (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#325)\n\tExternal calls sending eth:\n\t- msg.sender.call.value(weiGiven[msg.sender])() (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#325)\n\tState variables written after the call(s):\n\t- weiGiven[msg.sender] = 0 (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#329)\n\tTokenCreationInterface.weiGiven (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#251) can be used in cross function reentrancies:\n\t- TokenCreation.createTokenProxy(address) (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#299-316)\n\t- TokenCreation.refund() (tests/detectors/reentrancy-eth/0.4.25/DAO.sol#318-332)\n", - "markdown": "Reentrancy in [TokenCreation.refund()](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L318-L332):\n\tExternal calls:\n\t- [extraBalance.balance >= extraBalance.accumulatedInput()](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L321)\n\t- [extraBalance.payOut(address(this),extraBalance.accumulatedInput())](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L322)\n\t- [msg.sender.call.value(weiGiven[msg.sender])()](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L325)\n\tExternal calls sending eth:\n\t- [msg.sender.call.value(weiGiven[msg.sender])()](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L325)\n\tState variables written after the call(s):\n\t- [weiGiven[msg.sender] = 0](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L329)\n\t[TokenCreationInterface.weiGiven](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L251) can be used in cross function reentrancies:\n\t- [TokenCreation.createTokenProxy(address)](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L299-L316)\n\t- [TokenCreation.refund()](tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L318-L332)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.4.25/DAO.sol#L318-L332", - "id": "ec60469e1cc5d8cd352a86998673bfb43580d5119e501f9a3e58e3b55befb0a9", + "description": "Reentrancy in DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937):\n\tExternal calls:\n\t- ! isRecipientAllowed(p.recipient) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#881)\n\t\t- allowedRecipients[_recipient] || (_recipient == address(extraBalance) && totalRewardToken > extraBalance.accumulatedInput()) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1159-1163)\n\t- ! p.recipient.call.value(p.amount)(_transactionData) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#915)\n\tExternal calls sending eth:\n\t- ! p.creator.send(p.proposalDeposit) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#904)\n\t- ! p.recipient.call.value(p.amount)(_transactionData) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#915)\n\tState variables written after the call(s):\n\t- p.proposalPassed = true (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#918)\n\tDAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#820-850)\n\t- closeProposal(_proposalID) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#933)\n\t\t- p.open = false (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#944)\n\tDAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#820-850)\n\t- rewardToken[address(this)] += p.amount (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#928)\n\tDAOInterface.rewardToken (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#410) can be used in cross function reentrancies:\n\t- DAO.changeProposalDeposit(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1139-1146)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.minQuorum(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1174-1178)\n\t- DAO.newContract(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1022-1034)\n\t- DAO.retrieveDAOReward(bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1037-1057)\n\t- DAOInterface.rewardToken (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#410)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#947-1020)\n\t- closeProposal(_proposalID) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#933)\n\t\t- sumOfProposalDeposits -= p.proposalDeposit (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#943)\n\tDAOInterface.sumOfProposalDeposits (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#436) can be used in cross function reentrancies:\n\t- DAO.actualBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1169-1171)\n\t- DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#947-1020)\n\t- totalRewardToken += p.amount (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#929)\n\tDAOInterface.totalRewardToken (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#412) can be used in cross function reentrancies:\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.isRecipientAllowed(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1158-1167)\n\t- DAO.retrieveDAOReward(bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1037-1057)\n\t- DAOInterface.totalRewardToken (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#412)\n", + "markdown": "Reentrancy in [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L853-L937):\n\tExternal calls:\n\t- [! isRecipientAllowed(p.recipient)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L881)\n\t\t- [allowedRecipients[_recipient] || (_recipient == address(extraBalance) && totalRewardToken > extraBalance.accumulatedInput())](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1159-L1163)\n\t- [! p.recipient.call.value(p.amount)(_transactionData)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L915)\n\tExternal calls sending eth:\n\t- [! p.creator.send(p.proposalDeposit)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L904)\n\t- [! p.recipient.call.value(p.amount)(_transactionData)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L915)\n\tState variables written after the call(s):\n\t- [p.proposalPassed = true](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L918)\n\t[DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L820-L850)\n\t- [closeProposal(_proposalID)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L933)\n\t\t- [p.open = false](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L944)\n\t[DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L820-L850)\n\t- [rewardToken[address(this)] += p.amount](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L928)\n\t[DAOInterface.rewardToken](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L410) can be used in cross function reentrancies:\n\t- [DAO.changeProposalDeposit(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1139-L1146)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.minQuorum(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1174-L1178)\n\t- [DAO.newContract(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1022-L1034)\n\t- [DAO.retrieveDAOReward(bool)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1037-L1057)\n\t- [DAOInterface.rewardToken](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L410)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [closeProposal(_proposalID)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L933)\n\t\t- [sumOfProposalDeposits -= p.proposalDeposit](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L943)\n\t[DAOInterface.sumOfProposalDeposits](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L436) can be used in cross function reentrancies:\n\t- [DAO.actualBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1169-L1171)\n\t- [DAO.closeProposal(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [totalRewardToken += p.amount](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L929)\n\t[DAOInterface.totalRewardToken](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L412) can be used in cross function reentrancies:\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.isRecipientAllowed(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1158-L1167)\n\t- [DAO.retrieveDAOReward(bool)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1037-L1057)\n\t- [DAOInterface.totalRewardToken](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L412)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L853-L937", + "id": "dfa25972a34c3e5c0b03b9fb544740df3670f21201a99162a9070515009edad3", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol b/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol similarity index 100% rename from tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol rename to tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol diff --git a/tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol.0.4.25.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol.0.4.25.ReentrancyEth.json similarity index 78% rename from tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol.0.4.25.ReentrancyEth.json rename to tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol.0.4.25.ReentrancyEth.json index c16d1be61..ffe13665a 100644 --- a/tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol.0.4.25.ReentrancyEth.json +++ b/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol.0.4.25.ReentrancyEth.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 2465, "length": 246, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 74, @@ -31,9 +31,9 @@ "source_mapping": { "start": 26, "length": 2691, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -130,9 +130,9 @@ "source_mapping": { "start": 2620, "length": 33, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 77 @@ -147,9 +147,9 @@ "source_mapping": { "start": 2465, "length": 246, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 74, @@ -170,9 +170,9 @@ "source_mapping": { "start": 26, "length": 2691, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -274,9 +274,9 @@ "source_mapping": { "start": 2667, "length": 27, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 78 @@ -291,9 +291,9 @@ "source_mapping": { "start": 2465, "length": 246, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 74, @@ -314,9 +314,9 @@ "source_mapping": { "start": 26, "length": 2691, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -414,10 +414,10 @@ } } ], - "description": "Reentrancy in Reentrancy.withdrawBalance_nested() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#74-80):\n\tExternal calls:\n\t- msg.sender.call.value(amount / 2)() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#77)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#78)\n\tReentrancy.userBalance (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#15-22)\n\t- Reentrancy.getBalance(address) (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#24-31)\n\t- Reentrancy.withdrawBalance_fixed() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#33-41)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#43-50)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#52-60)\n\t- Reentrancy.withdrawBalance_fixed_4() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#61-72)\n\t- Reentrancy.withdrawBalance_nested() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#74-80)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance_nested()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L74-L80):\n\tExternal calls:\n\t- [msg.sender.call.value(amount / 2)()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L77)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L78)\n\t[Reentrancy.userBalance](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L15-L22)\n\t- [Reentrancy.getBalance(address)](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L24-L31)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L33-L41)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L43-L50)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L52-L60)\n\t- [Reentrancy.withdrawBalance_fixed_4()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L61-L72)\n\t- [Reentrancy.withdrawBalance_nested()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L74-L80)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L74-L80", - "id": "5853108dfdb4138662a85fbd17c35511950298872f89c124f1869942c6c4e880", + "description": "Reentrancy in Reentrancy.withdrawBalance_nested() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#74-80):\n\tExternal calls:\n\t- msg.sender.call.value(amount / 2)() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#77)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#78)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#15-22)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#24-31)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#33-41)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#43-50)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#52-60)\n\t- Reentrancy.withdrawBalance_fixed_4() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#61-72)\n\t- Reentrancy.withdrawBalance_nested() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#74-80)\n", + "markdown": "Reentrancy in [Reentrancy.withdrawBalance_nested()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L74-L80):\n\tExternal calls:\n\t- [msg.sender.call.value(amount / 2)()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L77)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L78)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L15-L22)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L24-L31)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L33-L41)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L43-L50)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L52-L60)\n\t- [Reentrancy.withdrawBalance_fixed_4()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L61-L72)\n\t- [Reentrancy.withdrawBalance_nested()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L74-L80)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L74-L80", + "id": "02b13660e262b6ddcd87c831ffd6118ef52a3dd96eaea287f34310036f826ae5", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" @@ -430,9 +430,9 @@ "source_mapping": { "start": 656, "length": 314, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 24, @@ -454,9 +454,9 @@ "source_mapping": { "start": 26, "length": 2691, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -553,9 +553,9 @@ "source_mapping": { "start": 839, "length": 53, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 27 @@ -570,9 +570,9 @@ "source_mapping": { "start": 656, "length": 314, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 24, @@ -594,9 +594,9 @@ "source_mapping": { "start": 26, "length": 2691, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -698,9 +698,9 @@ "source_mapping": { "start": 936, "length": 27, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 30 @@ -715,9 +715,9 @@ "source_mapping": { "start": 656, "length": 314, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 24, @@ -739,9 +739,9 @@ "source_mapping": { "start": 26, "length": 2691, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -839,10 +839,10 @@ } } ], - "description": "Reentrancy in Reentrancy.withdrawBalance() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#24-31):\n\tExternal calls:\n\t- ! (msg.sender.call.value(userBalance[msg.sender])()) (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#27)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#30)\n\tReentrancy.userBalance (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#15-22)\n\t- Reentrancy.getBalance(address) (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#24-31)\n\t- Reentrancy.withdrawBalance_fixed() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#33-41)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#43-50)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#52-60)\n\t- Reentrancy.withdrawBalance_fixed_4() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#61-72)\n\t- Reentrancy.withdrawBalance_nested() (tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#74-80)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L24-L31):\n\tExternal calls:\n\t- [! (msg.sender.call.value(userBalance[msg.sender])())](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L27)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L30)\n\t[Reentrancy.userBalance](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L15-L22)\n\t- [Reentrancy.getBalance(address)](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L24-L31)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L33-L41)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L43-L50)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L52-L60)\n\t- [Reentrancy.withdrawBalance_fixed_4()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L61-L72)\n\t- [Reentrancy.withdrawBalance_nested()](tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L74-L80)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.4.25/reentrancy.sol#L24-L31", - "id": "8746b87cbc0fcd59a17ae20018967719c6ebc9fca41c6a128e5ac18dd4ee27cc", + "description": "Reentrancy in Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#24-31):\n\tExternal calls:\n\t- ! (msg.sender.call.value(userBalance[msg.sender])()) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#27)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#30)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#15-22)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#24-31)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#33-41)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#43-50)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#52-60)\n\t- Reentrancy.withdrawBalance_fixed_4() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#61-72)\n\t- Reentrancy.withdrawBalance_nested() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#74-80)\n", + "markdown": "Reentrancy in [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L24-L31):\n\tExternal calls:\n\t- [! (msg.sender.call.value(userBalance[msg.sender])())](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L27)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L30)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L15-L22)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L24-L31)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L33-L41)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L43-L50)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L52-L60)\n\t- [Reentrancy.withdrawBalance_fixed_4()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L61-L72)\n\t- [Reentrancy.withdrawBalance_nested()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L74-L80)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L24-L31", + "id": "7dffb7128bc810a3e2e53da77fd0d3e3a6764329bd89d4ff96aa7aaa195627b9", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol b/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol similarity index 100% rename from tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol rename to tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol diff --git a/tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol.0.4.25.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol.0.4.25.ReentrancyEth.json similarity index 74% rename from tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol.0.4.25.ReentrancyEth.json rename to tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol.0.4.25.ReentrancyEth.json index 4c7ee5e88..1a719e67b 100644 --- a/tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol.0.4.25.ReentrancyEth.json +++ b/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol.0.4.25.ReentrancyEth.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 639, "length": 278, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -32,9 +32,9 @@ "source_mapping": { "start": 185, "length": 735, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -75,9 +75,9 @@ "source_mapping": { "start": 742, "length": 76, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 24 @@ -92,9 +92,9 @@ "source_mapping": { "start": 639, "length": 278, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -116,9 +116,9 @@ "source_mapping": { "start": 185, "length": 735, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -164,9 +164,9 @@ "source_mapping": { "start": 681, "length": 51, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 23 @@ -181,9 +181,9 @@ "source_mapping": { "start": 639, "length": 278, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -205,9 +205,9 @@ "source_mapping": { "start": 185, "length": 735, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -253,9 +253,9 @@ "source_mapping": { "start": 829, "length": 34, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 26 @@ -270,9 +270,9 @@ "source_mapping": { "start": 639, "length": 278, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -294,9 +294,9 @@ "source_mapping": { "start": 185, "length": 735, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -343,9 +343,9 @@ "source_mapping": { "start": 873, "length": 36, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 27 @@ -360,9 +360,9 @@ "source_mapping": { "start": 639, "length": 278, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -384,9 +384,9 @@ "source_mapping": { "start": 185, "length": 735, - "filename_relative": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -428,10 +428,10 @@ } } ], - "description": "Reentrancy in Reentrancy.withdraw(address) (tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#22-29):\n\tExternal calls:\n\t- require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#24)\n\tExternal calls sending eth:\n\t- msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#23)\n\tState variables written after the call(s):\n\t- eth_deposed[token][msg.sender] = 0 (tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#26)\n\tReentrancy.eth_deposed (tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#10) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_eth(address) (tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#13-15)\n\t- Reentrancy.withdraw(address) (tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#22-29)\n\t- token_deposed[token][msg.sender] = 0 (tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#27)\n\tReentrancy.token_deposed (tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#11) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_token(address,uint256) (tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#17-20)\n\t- Reentrancy.withdraw(address) (tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#22-29)\n", - "markdown": "Reentrancy in [Reentrancy.withdraw(address)](tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L22-L29):\n\tExternal calls:\n\t- [require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))](tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L24)\n\tExternal calls sending eth:\n\t- [msg.sender.transfer(eth_deposed[token][msg.sender])](tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L23)\n\tState variables written after the call(s):\n\t- [eth_deposed[token][msg.sender] = 0](tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L26)\n\t[Reentrancy.eth_deposed](tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L10) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_eth(address)](tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L13-L15)\n\t- [Reentrancy.withdraw(address)](tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L22-L29)\n\t- [token_deposed[token][msg.sender] = 0](tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L27)\n\t[Reentrancy.token_deposed](tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L11) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_token(address,uint256)](tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L17-L20)\n\t- [Reentrancy.withdraw(address)](tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L22-L29)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L22-L29", - "id": "7ff6a788e1559497246f084096fd10a9fd3a7d30de1b89ac896b7600ba32710d", + "description": "Reentrancy in Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#22-29):\n\tExternal calls:\n\t- require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#24)\n\tExternal calls sending eth:\n\t- msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#23)\n\tState variables written after the call(s):\n\t- eth_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#26)\n\tReentrancy.eth_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#10) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_eth(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#13-15)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#22-29)\n\t- token_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#27)\n\tReentrancy.token_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#11) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_token(address,uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#17-20)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#22-29)\n", + "markdown": "Reentrancy in [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L22-L29):\n\tExternal calls:\n\t- [require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L24)\n\tExternal calls sending eth:\n\t- [msg.sender.transfer(eth_deposed[token][msg.sender])](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L23)\n\tState variables written after the call(s):\n\t- [eth_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L26)\n\t[Reentrancy.eth_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L10) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_eth(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L13-L15)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L22-L29)\n\t- [token_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L27)\n\t[Reentrancy.token_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L11) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_token(address,uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L17-L20)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L22-L29)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L22-L29", + "id": "17e756180e486527f07db2b6b810136a45beec8f495e04d32e653cbb02e186b1", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol b/tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol similarity index 100% rename from tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol rename to tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol diff --git a/tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol.0.5.16.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol.0.5.16.ReentrancyEth.json similarity index 78% rename from tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol.0.5.16.ReentrancyEth.json rename to tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol.0.5.16.ReentrancyEth.json index 242d7bf7e..aeb67cc4d 100644 --- a/tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol.0.5.16.ReentrancyEth.json +++ b/tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol.0.5.16.ReentrancyEth.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 703, "length": 357, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 25, @@ -33,9 +33,9 @@ "source_mapping": { "start": 28, "length": 2209, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -115,9 +115,9 @@ "source_mapping": { "start": 882, "length": 81, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 28 @@ -132,9 +132,9 @@ "source_mapping": { "start": 703, "length": 357, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 25, @@ -157,9 +157,9 @@ "source_mapping": { "start": 28, "length": 2209, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -244,9 +244,9 @@ "source_mapping": { "start": 1026, "length": 27, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 32 @@ -261,9 +261,9 @@ "source_mapping": { "start": 703, "length": 357, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 25, @@ -286,9 +286,9 @@ "source_mapping": { "start": 28, "length": 2209, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -369,10 +369,10 @@ } } ], - "description": "Reentrancy in Reentrancy.withdrawBalance() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#25-33):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call.value(userBalance[msg.sender])() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#28)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#32)\n\tReentrancy.userBalance (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#55-64)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L25-L33):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call.value(userBalance[msg.sender])()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L28)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L32)\n\t[Reentrancy.userBalance](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L55-L64)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L25-L33", - "id": "1fec5eddc1a1f7c95bbaa72099c7f36d9c8768271ba1bb51b2ece7f2dab1a175", + "description": "Reentrancy in Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#25-33):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call.value(userBalance[msg.sender])() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#28)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#32)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#55-64)\n", + "markdown": "Reentrancy in [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L25-L33):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call.value(userBalance[msg.sender])()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L28)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L32)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L55-L64)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L25-L33", + "id": "c298e6c5caff5538e11c6f1ca18d56cf9d54d0ce9aa411be080ecfd0c4c54d4b", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" @@ -385,9 +385,9 @@ "source_mapping": { "start": 1839, "length": 393, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 55, @@ -411,9 +411,9 @@ "source_mapping": { "start": 28, "length": 2209, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -493,9 +493,9 @@ "source_mapping": { "start": 2084, "length": 64, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 60 @@ -510,9 +510,9 @@ "source_mapping": { "start": 1839, "length": 393, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 55, @@ -536,9 +536,9 @@ "source_mapping": { "start": 28, "length": 2209, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -623,9 +623,9 @@ "source_mapping": { "start": 2183, "length": 32, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 62 @@ -640,9 +640,9 @@ "source_mapping": { "start": 1839, "length": 393, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 55, @@ -666,9 +666,9 @@ "source_mapping": { "start": 28, "length": 2209, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -749,10 +749,10 @@ } } ], - "description": "Reentrancy in Reentrancy.withdrawBalance_fixed_3() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#55-64):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call.value(amount)() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#60)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = amount (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#62)\n\tReentrancy.userBalance (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#55-64)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance_fixed_3()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L55-L64):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call.value(amount)()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L60)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = amount](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L62)\n\t[Reentrancy.userBalance](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L55-L64)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.5.16/reentrancy.sol#L55-L64", - "id": "c1a4b6379bd0137d705b0e1994021e4478445b98ba4d23c547338f09e2213ef0", + "description": "Reentrancy in Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#55-64):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call.value(amount)() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#60)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = amount (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#62)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#55-64)\n", + "markdown": "Reentrancy in [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L55-L64):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call.value(amount)()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L60)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = amount](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L62)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L55-L64)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L55-L64", + "id": "f9420c25fc0bce840e980bfd4c13aabe760a260cbcca4218873c9c536f0b15ad", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol b/tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol similarity index 100% rename from tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol rename to tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol diff --git a/tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol.0.5.16.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol.0.5.16.ReentrancyEth.json similarity index 74% rename from tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol.0.5.16.ReentrancyEth.json rename to tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol.0.5.16.ReentrancyEth.json index e489c1d98..3ddbba506 100644 --- a/tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol.0.5.16.ReentrancyEth.json +++ b/tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol.0.5.16.ReentrancyEth.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 671, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -32,9 +32,9 @@ "source_mapping": { "start": 202, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -75,9 +75,9 @@ "source_mapping": { "start": 782, "length": 76, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 24 @@ -92,9 +92,9 @@ "source_mapping": { "start": 671, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -116,9 +116,9 @@ "source_mapping": { "start": 202, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -164,9 +164,9 @@ "source_mapping": { "start": 721, "length": 51, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 23 @@ -181,9 +181,9 @@ "source_mapping": { "start": 671, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -205,9 +205,9 @@ "source_mapping": { "start": 202, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -253,9 +253,9 @@ "source_mapping": { "start": 869, "length": 34, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 26 @@ -270,9 +270,9 @@ "source_mapping": { "start": 671, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -294,9 +294,9 @@ "source_mapping": { "start": 202, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -343,9 +343,9 @@ "source_mapping": { "start": 913, "length": 36, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 27 @@ -360,9 +360,9 @@ "source_mapping": { "start": 671, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -384,9 +384,9 @@ "source_mapping": { "start": 202, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -428,10 +428,10 @@ } } ], - "description": "Reentrancy in Reentrancy.withdraw(address) (tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#22-29):\n\tExternal calls:\n\t- require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#24)\n\tExternal calls sending eth:\n\t- msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#23)\n\tState variables written after the call(s):\n\t- eth_deposed[token][msg.sender] = 0 (tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#26)\n\tReentrancy.eth_deposed (tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#10) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_eth(address) (tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#13-15)\n\t- Reentrancy.withdraw(address) (tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#22-29)\n\t- token_deposed[token][msg.sender] = 0 (tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#27)\n\tReentrancy.token_deposed (tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#11) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_token(address,uint256) (tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#17-20)\n\t- Reentrancy.withdraw(address) (tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#22-29)\n", - "markdown": "Reentrancy in [Reentrancy.withdraw(address)](tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L22-L29):\n\tExternal calls:\n\t- [require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))](tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L24)\n\tExternal calls sending eth:\n\t- [msg.sender.transfer(eth_deposed[token][msg.sender])](tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L23)\n\tState variables written after the call(s):\n\t- [eth_deposed[token][msg.sender] = 0](tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L26)\n\t[Reentrancy.eth_deposed](tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L10) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_eth(address)](tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L13-L15)\n\t- [Reentrancy.withdraw(address)](tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L22-L29)\n\t- [token_deposed[token][msg.sender] = 0](tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L27)\n\t[Reentrancy.token_deposed](tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L11) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_token(address,uint256)](tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L17-L20)\n\t- [Reentrancy.withdraw(address)](tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L22-L29)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L22-L29", - "id": "52cd1e82b29830aa25a1ea1bbc1b35c0e3097eab1f2922b4ecc98eae8f1ed225", + "description": "Reentrancy in Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#22-29):\n\tExternal calls:\n\t- require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#24)\n\tExternal calls sending eth:\n\t- msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#23)\n\tState variables written after the call(s):\n\t- eth_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#26)\n\tReentrancy.eth_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#10) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_eth(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#13-15)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#22-29)\n\t- token_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#27)\n\tReentrancy.token_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#11) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_token(address,uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#17-20)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#22-29)\n", + "markdown": "Reentrancy in [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L22-L29):\n\tExternal calls:\n\t- [require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L24)\n\tExternal calls sending eth:\n\t- [msg.sender.transfer(eth_deposed[token][msg.sender])](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L23)\n\tState variables written after the call(s):\n\t- [eth_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L26)\n\t[Reentrancy.eth_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L10) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_eth(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L13-L15)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L22-L29)\n\t- [token_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L27)\n\t[Reentrancy.token_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L11) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_token(address,uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L17-L20)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L22-L29)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L22-L29", + "id": "2ce339e4f254ce27e1272b4f5f3d005a0614016e20463d51415ba8f842565052", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol b/tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol similarity index 100% rename from tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol rename to tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol diff --git a/tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol.0.6.11.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol.0.6.11.ReentrancyEth.json similarity index 78% rename from tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol.0.6.11.ReentrancyEth.json rename to tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol.0.6.11.ReentrancyEth.json index ed59ee2c0..36070aee3 100644 --- a/tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol.0.6.11.ReentrancyEth.json +++ b/tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol.0.6.11.ReentrancyEth.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1843, "length": 393, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 55, @@ -34,9 +34,9 @@ "source_mapping": { "start": 28, "length": 2213, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -116,9 +116,9 @@ "source_mapping": { "start": 2088, "length": 64, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 60 @@ -133,9 +133,9 @@ "source_mapping": { "start": 1843, "length": 393, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 55, @@ -159,9 +159,9 @@ "source_mapping": { "start": 28, "length": 2213, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -246,9 +246,9 @@ "source_mapping": { "start": 2187, "length": 32, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 62 @@ -263,9 +263,9 @@ "source_mapping": { "start": 1843, "length": 393, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 55, @@ -289,9 +289,9 @@ "source_mapping": { "start": 28, "length": 2213, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -372,10 +372,10 @@ } } ], - "description": "Reentrancy in Reentrancy.withdrawBalance_fixed_3() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#55-64):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call.value(amount)() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#60)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = amount (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#62)\n\tReentrancy.userBalance (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#55-64)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance_fixed_3()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L55-L64):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call.value(amount)()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L60)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = amount](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L62)\n\t[Reentrancy.userBalance](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L55-L64)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L55-L64", - "id": "bc199b4c8749cb08649e2084ac891e0cb098640e2752bf319ffa79d99ee10cdb", + "description": "Reentrancy in Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#55-64):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call.value(amount)() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#60)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = amount (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#62)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#55-64)\n", + "markdown": "Reentrancy in [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L55-L64):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call.value(amount)()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L60)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = amount](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L62)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L55-L64)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L55-L64", + "id": "26d55b7569799393de981b4e1294f2f6d2d3e0f7b8d700fe40ab98c5940bbf93", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" @@ -388,9 +388,9 @@ "source_mapping": { "start": 707, "length": 357, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 25, @@ -413,9 +413,9 @@ "source_mapping": { "start": 28, "length": 2213, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -495,9 +495,9 @@ "source_mapping": { "start": 886, "length": 81, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 28 @@ -512,9 +512,9 @@ "source_mapping": { "start": 707, "length": 357, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 25, @@ -537,9 +537,9 @@ "source_mapping": { "start": 28, "length": 2213, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -624,9 +624,9 @@ "source_mapping": { "start": 1030, "length": 27, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 32 @@ -641,9 +641,9 @@ "source_mapping": { "start": 707, "length": 357, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 25, @@ -666,9 +666,9 @@ "source_mapping": { "start": 28, "length": 2213, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -749,10 +749,10 @@ } } ], - "description": "Reentrancy in Reentrancy.withdrawBalance() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#25-33):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call.value(userBalance[msg.sender])() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#28)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#32)\n\tReentrancy.userBalance (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#55-64)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L25-L33):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call.value(userBalance[msg.sender])()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L28)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L32)\n\t[Reentrancy.userBalance](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L55-L64)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.6.11/reentrancy.sol#L25-L33", - "id": "c8c4106c11c4f1fc4a76fc18e91bb3132d5b8d95d94c707453f64be98f1efa8d", + "description": "Reentrancy in Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#25-33):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call.value(userBalance[msg.sender])() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#28)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#32)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#55-64)\n", + "markdown": "Reentrancy in [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L25-L33):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call.value(userBalance[msg.sender])()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L28)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L32)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L55-L64)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L25-L33", + "id": "c5f80f289a9e72f1134ab9af607176df7d12bdab173b8d66523f55eb387053a8", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol b/tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol similarity index 100% rename from tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol rename to tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol diff --git a/tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol.0.6.11.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol.0.6.11.ReentrancyEth.json similarity index 74% rename from tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol.0.6.11.ReentrancyEth.json rename to tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol.0.6.11.ReentrancyEth.json index 1c6cf3b56..da679a2c0 100644 --- a/tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol.0.6.11.ReentrancyEth.json +++ b/tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol.0.6.11.ReentrancyEth.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 696, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -32,9 +32,9 @@ "source_mapping": { "start": 227, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -75,9 +75,9 @@ "source_mapping": { "start": 807, "length": 76, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 24 @@ -92,9 +92,9 @@ "source_mapping": { "start": 696, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -116,9 +116,9 @@ "source_mapping": { "start": 227, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -164,9 +164,9 @@ "source_mapping": { "start": 746, "length": 51, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 23 @@ -181,9 +181,9 @@ "source_mapping": { "start": 696, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -205,9 +205,9 @@ "source_mapping": { "start": 227, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -253,9 +253,9 @@ "source_mapping": { "start": 894, "length": 34, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 26 @@ -270,9 +270,9 @@ "source_mapping": { "start": 696, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -294,9 +294,9 @@ "source_mapping": { "start": 227, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -343,9 +343,9 @@ "source_mapping": { "start": 938, "length": 36, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 27 @@ -360,9 +360,9 @@ "source_mapping": { "start": 696, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -384,9 +384,9 @@ "source_mapping": { "start": 227, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -428,10 +428,10 @@ } } ], - "description": "Reentrancy in Reentrancy.withdraw(address) (tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#22-29):\n\tExternal calls:\n\t- require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#24)\n\tExternal calls sending eth:\n\t- msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#23)\n\tState variables written after the call(s):\n\t- eth_deposed[token][msg.sender] = 0 (tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#26)\n\tReentrancy.eth_deposed (tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#10) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_eth(address) (tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#13-15)\n\t- Reentrancy.withdraw(address) (tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#22-29)\n\t- token_deposed[token][msg.sender] = 0 (tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#27)\n\tReentrancy.token_deposed (tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#11) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_token(address,uint256) (tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#17-20)\n\t- Reentrancy.withdraw(address) (tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#22-29)\n", - "markdown": "Reentrancy in [Reentrancy.withdraw(address)](tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L22-L29):\n\tExternal calls:\n\t- [require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))](tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L24)\n\tExternal calls sending eth:\n\t- [msg.sender.transfer(eth_deposed[token][msg.sender])](tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L23)\n\tState variables written after the call(s):\n\t- [eth_deposed[token][msg.sender] = 0](tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L26)\n\t[Reentrancy.eth_deposed](tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L10) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_eth(address)](tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L13-L15)\n\t- [Reentrancy.withdraw(address)](tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L22-L29)\n\t- [token_deposed[token][msg.sender] = 0](tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L27)\n\t[Reentrancy.token_deposed](tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L11) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_token(address,uint256)](tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L17-L20)\n\t- [Reentrancy.withdraw(address)](tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L22-L29)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L22-L29", - "id": "f892080cd6edb9d73d435cd8c4cea16e1b65098abf2a0df5debcd493787f6654", + "description": "Reentrancy in Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#22-29):\n\tExternal calls:\n\t- require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#24)\n\tExternal calls sending eth:\n\t- msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#23)\n\tState variables written after the call(s):\n\t- eth_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#26)\n\tReentrancy.eth_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#10) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_eth(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#13-15)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#22-29)\n\t- token_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#27)\n\tReentrancy.token_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#11) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_token(address,uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#17-20)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#22-29)\n", + "markdown": "Reentrancy in [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L22-L29):\n\tExternal calls:\n\t- [require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L24)\n\tExternal calls sending eth:\n\t- [msg.sender.transfer(eth_deposed[token][msg.sender])](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L23)\n\tState variables written after the call(s):\n\t- [eth_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L26)\n\t[Reentrancy.eth_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L10) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_eth(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L13-L15)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L22-L29)\n\t- [token_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L27)\n\t[Reentrancy.token_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L11) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_token(address,uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L17-L20)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L22-L29)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L22-L29", + "id": "875860f8833c21533ebd104610793a7dce7464b0b69206111568e4fad87b1296", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol b/tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol similarity index 100% rename from tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol rename to tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol diff --git a/tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol.0.7.6.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol.0.7.6.ReentrancyEth.json similarity index 78% rename from tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol.0.7.6.ReentrancyEth.json rename to tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol.0.7.6.ReentrancyEth.json index 05be376b4..f2ea87885 100644 --- a/tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol.0.7.6.ReentrancyEth.json +++ b/tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol.0.7.6.ReentrancyEth.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 1839, "length": 393, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 55, @@ -34,9 +34,9 @@ "source_mapping": { "start": 28, "length": 2209, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -116,9 +116,9 @@ "source_mapping": { "start": 2084, "length": 64, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 60 @@ -133,9 +133,9 @@ "source_mapping": { "start": 1839, "length": 393, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 55, @@ -159,9 +159,9 @@ "source_mapping": { "start": 28, "length": 2209, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -246,9 +246,9 @@ "source_mapping": { "start": 2183, "length": 32, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 62 @@ -263,9 +263,9 @@ "source_mapping": { "start": 1839, "length": 393, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 55, @@ -289,9 +289,9 @@ "source_mapping": { "start": 28, "length": 2209, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -372,10 +372,10 @@ } } ], - "description": "Reentrancy in Reentrancy.withdrawBalance_fixed_3() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#55-64):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call{value: amount}() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#60)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = amount (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#62)\n\tReentrancy.userBalance (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#55-64)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance_fixed_3()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L55-L64):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call{value: amount}()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L60)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = amount](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L62)\n\t[Reentrancy.userBalance](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L55-L64)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L55-L64", - "id": "75d254de1c95646a633659a0bb8c1cd874b1a83f8bdba6fda28e9092be76beeb", + "description": "Reentrancy in Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#55-64):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#60)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = amount (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#62)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#55-64)\n", + "markdown": "Reentrancy in [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L55-L64):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call{value: amount}()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L60)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = amount](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L62)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L55-L64)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L55-L64", + "id": "7060c71a1bebcb2af4c41dcd75540db5066eb8daf1e22d70e2ddfe0b346ebc97", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" @@ -388,9 +388,9 @@ "source_mapping": { "start": 703, "length": 357, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 25, @@ -413,9 +413,9 @@ "source_mapping": { "start": 28, "length": 2209, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -495,9 +495,9 @@ "source_mapping": { "start": 882, "length": 81, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 28 @@ -512,9 +512,9 @@ "source_mapping": { "start": 703, "length": 357, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 25, @@ -537,9 +537,9 @@ "source_mapping": { "start": 28, "length": 2209, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -624,9 +624,9 @@ "source_mapping": { "start": 1026, "length": 27, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 32 @@ -641,9 +641,9 @@ "source_mapping": { "start": 703, "length": 357, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 25, @@ -666,9 +666,9 @@ "source_mapping": { "start": 28, "length": 2209, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", "is_dependency": false, "lines": [ 3, @@ -749,10 +749,10 @@ } } ], - "description": "Reentrancy in Reentrancy.withdrawBalance() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#25-33):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call{value: userBalance[msg.sender]}() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#28)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#32)\n\tReentrancy.userBalance (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#55-64)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L25-L33):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call{value: userBalance[msg.sender]}()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L28)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L32)\n\t[Reentrancy.userBalance](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L55-L64)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.7.6/reentrancy.sol#L25-L33", - "id": "a20a04b25c124d64a595c2dec1a37f745f1594c4f0461622c558d66911ea5235", + "description": "Reentrancy in Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#25-33):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call{value: userBalance[msg.sender]}() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#28)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#32)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#55-64)\n", + "markdown": "Reentrancy in [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L25-L33):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call{value: userBalance[msg.sender]}()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L28)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L32)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L55-L64)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L25-L33", + "id": "cec0a7af1ea200527f6cae87c979e9d4847cd646fa9aff3e4d60e2fb52ac9974", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol b/tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol similarity index 100% rename from tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol rename to tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol diff --git a/tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol.0.7.6.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol.0.7.6.ReentrancyEth.json similarity index 74% rename from tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol.0.7.6.ReentrancyEth.json rename to tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol.0.7.6.ReentrancyEth.json index 7f45a528f..93dc2049f 100644 --- a/tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol.0.7.6.ReentrancyEth.json +++ b/tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol.0.7.6.ReentrancyEth.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 696, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -32,9 +32,9 @@ "source_mapping": { "start": 227, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -75,9 +75,9 @@ "source_mapping": { "start": 807, "length": 76, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 24 @@ -92,9 +92,9 @@ "source_mapping": { "start": 696, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -116,9 +116,9 @@ "source_mapping": { "start": 227, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -164,9 +164,9 @@ "source_mapping": { "start": 746, "length": 51, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 23 @@ -181,9 +181,9 @@ "source_mapping": { "start": 696, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -205,9 +205,9 @@ "source_mapping": { "start": 227, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -253,9 +253,9 @@ "source_mapping": { "start": 894, "length": 34, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 26 @@ -270,9 +270,9 @@ "source_mapping": { "start": 696, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -294,9 +294,9 @@ "source_mapping": { "start": 227, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -343,9 +343,9 @@ "source_mapping": { "start": 938, "length": 36, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 27 @@ -360,9 +360,9 @@ "source_mapping": { "start": 696, "length": 286, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 22, @@ -384,9 +384,9 @@ "source_mapping": { "start": 227, "length": 758, - "filename_relative": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", "is_dependency": false, "lines": [ 8, @@ -428,10 +428,10 @@ } } ], - "description": "Reentrancy in Reentrancy.withdraw(address) (tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#22-29):\n\tExternal calls:\n\t- require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#24)\n\tExternal calls sending eth:\n\t- msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#23)\n\tState variables written after the call(s):\n\t- eth_deposed[token][msg.sender] = 0 (tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#26)\n\tReentrancy.eth_deposed (tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#10) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_eth(address) (tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#13-15)\n\t- Reentrancy.withdraw(address) (tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#22-29)\n\t- token_deposed[token][msg.sender] = 0 (tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#27)\n\tReentrancy.token_deposed (tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#11) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_token(address,uint256) (tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#17-20)\n\t- Reentrancy.withdraw(address) (tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#22-29)\n", - "markdown": "Reentrancy in [Reentrancy.withdraw(address)](tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L22-L29):\n\tExternal calls:\n\t- [require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))](tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L24)\n\tExternal calls sending eth:\n\t- [msg.sender.transfer(eth_deposed[token][msg.sender])](tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L23)\n\tState variables written after the call(s):\n\t- [eth_deposed[token][msg.sender] = 0](tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L26)\n\t[Reentrancy.eth_deposed](tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L10) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_eth(address)](tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L13-L15)\n\t- [Reentrancy.withdraw(address)](tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L22-L29)\n\t- [token_deposed[token][msg.sender] = 0](tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L27)\n\t[Reentrancy.token_deposed](tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L11) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_token(address,uint256)](tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L17-L20)\n\t- [Reentrancy.withdraw(address)](tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L22-L29)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L22-L29", - "id": "8aacbf836cda179a2f29017ba3fb238dbb3e88837efd207cd07622e5c746f56a", + "description": "Reentrancy in Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#22-29):\n\tExternal calls:\n\t- require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#24)\n\tExternal calls sending eth:\n\t- msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#23)\n\tState variables written after the call(s):\n\t- eth_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#26)\n\tReentrancy.eth_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#10) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_eth(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#13-15)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#22-29)\n\t- token_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#27)\n\tReentrancy.token_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#11) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_token(address,uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#17-20)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#22-29)\n", + "markdown": "Reentrancy in [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L22-L29):\n\tExternal calls:\n\t- [require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L24)\n\tExternal calls sending eth:\n\t- [msg.sender.transfer(eth_deposed[token][msg.sender])](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L23)\n\tState variables written after the call(s):\n\t- [eth_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L26)\n\t[Reentrancy.eth_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L10) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_eth(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L13-L15)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L22-L29)\n\t- [token_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L27)\n\t[Reentrancy.token_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L11) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_token(address,uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L17-L20)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L22-L29)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L22-L29", + "id": "57b8ea5ef49cfc6c27d5a658eaf5d88d46f4158a7235777f2e37cb17590a57e4", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol b/tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol similarity index 100% rename from tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol rename to tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol diff --git a/tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol.0.8.10.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol.0.8.10.ReentrancyEth.json similarity index 70% rename from tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol.0.8.10.ReentrancyEth.json rename to tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol.0.8.10.ReentrancyEth.json index c9754292b..627829853 100644 --- a/tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol.0.8.10.ReentrancyEth.json +++ b/tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol.0.8.10.ReentrancyEth.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 133, "length": 194, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "is_dependency": false, "lines": [ 8, @@ -29,9 +29,9 @@ "source_mapping": { "start": 67, "length": 534, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "is_dependency": false, "lines": [ 5, @@ -65,9 +65,9 @@ "source_mapping": { "start": 231, "length": 48, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "is_dependency": false, "lines": [ 10 @@ -82,9 +82,9 @@ "source_mapping": { "start": 133, "length": 194, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "is_dependency": false, "lines": [ 8, @@ -103,9 +103,9 @@ "source_mapping": { "start": 67, "length": 534, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "is_dependency": false, "lines": [ 5, @@ -144,9 +144,9 @@ "source_mapping": { "start": 290, "length": 30, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "is_dependency": false, "lines": [ 11 @@ -161,9 +161,9 @@ "source_mapping": { "start": 133, "length": 194, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "is_dependency": false, "lines": [ 8, @@ -182,9 +182,9 @@ "source_mapping": { "start": 67, "length": 534, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", "is_dependency": false, "lines": [ 5, @@ -219,10 +219,10 @@ } } ], - "description": "Reentrancy in TestWithBug.withdraw(uint256) (tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#8-12):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#10)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#11)\n\tTestWithBug.balances (tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#6) can be used in cross function reentrancies:\n\t- TestWithBug.withdraw(uint256) (tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#8-12)\n\t- TestWithBug.withdrawFiltered(uint256) (tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#15-19)\n", - "markdown": "Reentrancy in [TestWithBug.withdraw(uint256)](tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L8-L12):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L10)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L11)\n\t[TestWithBug.balances](tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L6) can be used in cross function reentrancies:\n\t- [TestWithBug.withdraw(uint256)](tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L8-L12)\n\t- [TestWithBug.withdrawFiltered(uint256)](tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L15-L19)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L8-L12", - "id": "176d2b5b09c260c72fd638ff8b5db4709df3ff3eb253daa1cfde254c8299fb94", + "description": "Reentrancy in TestWithBug.withdraw(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#8-12):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#10)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#11)\n\tTestWithBug.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#6) can be used in cross function reentrancies:\n\t- TestWithBug.withdraw(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#8-12)\n\t- TestWithBug.withdrawFiltered(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#15-19)\n", + "markdown": "Reentrancy in [TestWithBug.withdraw(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L8-L12):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L10)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L11)\n\t[TestWithBug.balances](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L6) can be used in cross function reentrancies:\n\t- [TestWithBug.withdraw(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L8-L12)\n\t- [TestWithBug.withdrawFiltered(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L15-L19)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L8-L12", + "id": "a39e8bc9ea5df1e8d350cd5043066f0d6db8cf3e3b6951385d51bfe675a1a654", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol b/tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol similarity index 100% rename from tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol rename to tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol diff --git a/tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol.0.8.10.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol.0.8.10.ReentrancyEth.json similarity index 73% rename from tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol.0.8.10.ReentrancyEth.json rename to tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol.0.8.10.ReentrancyEth.json index 9f1dbed3e..52082ae94 100644 --- a/tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol.0.8.10.ReentrancyEth.json +++ b/tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol.0.8.10.ReentrancyEth.json @@ -4,20 +4,20 @@ "elements": [ { "type": "function", - "name": "withdraw", + "name": "withdraw_internal", "source_mapping": { - "start": 3089, - "length": 207, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 1320, + "length": 205, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 138, - 139, - 140, - 141, - 142 + 62, + 63, + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -25,57 +25,64 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestWithBugNonReentrantRead", + "name": "TestWithBugInternal", "source_mapping": { - "start": 2959, - "length": 629, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 1100, + "length": 698, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "withdraw(uint256)" + "signature": "withdraw_internal(uint256)" } }, { "type": "node", "name": "Receiver(msg.sender).send_funds{value: amount}()", "source_mapping": { - "start": 3200, + "start": 1429, "length": 48, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 140 + 64 ], "starting_column": 10, "ending_column": 58 @@ -83,20 +90,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "withdraw", + "name": "withdraw_internal", "source_mapping": { - "start": 3089, - "length": 207, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 1320, + "length": 205, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 138, - 139, - 140, - 141, - 142 + 62, + 63, + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -104,43 +111,50 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestWithBugNonReentrantRead", + "name": "TestWithBugInternal", "source_mapping": { - "start": 2959, - "length": 629, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 1100, + "length": 698, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "withdraw(uint256)" + "signature": "withdraw_internal(uint256)" } } }, @@ -152,14 +166,14 @@ "type": "node", "name": "balances[msg.sender] -= amount", "source_mapping": { - "start": 3259, + "start": 1488, "length": 30, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 141 + 65 ], "starting_column": 10, "ending_column": 40 @@ -167,20 +181,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "withdraw", + "name": "withdraw_internal", "source_mapping": { - "start": 3089, - "length": 207, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 1320, + "length": 205, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 138, - 139, - 140, - 141, - 142 + 62, + 63, + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -188,43 +202,50 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestWithBugNonReentrantRead", + "name": "TestWithBugInternal", "source_mapping": { - "start": 2959, - "length": 629, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 1100, + "length": 698, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "withdraw(uint256)" + "signature": "withdraw_internal(uint256)" } } }, @@ -234,10 +255,10 @@ } } ], - "description": "Reentrancy in TestWithBugNonReentrantRead.withdraw(uint256) (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#138-142):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#140)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#141)\n\tTestWithBugNonReentrantRead.balances (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#132) can be used in cross function reentrancies:\n\t- TestWithBugNonReentrantRead.read() (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#146-149)\n", - "markdown": "Reentrancy in [TestWithBugNonReentrantRead.withdraw(uint256)](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L138-L142):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L140)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L141)\n\t[TestWithBugNonReentrantRead.balances](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L132) can be used in cross function reentrancies:\n\t- [TestWithBugNonReentrantRead.read()](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L146-L149)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L138-L142", - "id": "0b2149d8ea8554c24092bad5ce3061d661d4f0447d5d96716893538474bca40f", + "description": "Reentrancy in TestWithBugInternal.withdraw_internal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#62-66):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#64)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#65)\n\tTestWithBugInternal.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#52) can be used in cross function reentrancies:\n\t- TestWithBugInternal.withdraw_all_internal() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#72-76)\n", + "markdown": "Reentrancy in [TestWithBugInternal.withdraw_internal(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L62-L66):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L64)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L65)\n\t[TestWithBugInternal.balances](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L52) can be used in cross function reentrancies:\n\t- [TestWithBugInternal.withdraw_all_internal()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L72-L76)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L62-L66", + "id": "4f446ae8b35f194e5708d12c386d122923fc4f63c17ee05d466b0aa69cd872fc", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" @@ -246,20 +267,20 @@ "elements": [ { "type": "function", - "name": "withdraw_internal", + "name": "withdraw", "source_mapping": { - "start": 1320, - "length": 205, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 181, + "length": 207, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 62, - 63, - 64, - 65, - 66 + 13, + 14, + 15, + 16, + 17 ], "starting_column": 5, "ending_column": 6 @@ -267,64 +288,56 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestWithBugInternal", + "name": "TestWithBug", "source_mapping": { - "start": 1100, - "length": 698, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 67, + "length": 506, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "withdraw_internal(uint256)" + "signature": "withdraw(uint256)" } }, { "type": "node", "name": "Receiver(msg.sender).send_funds{value: amount}()", "source_mapping": { - "start": 1429, + "start": 292, "length": 48, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 64 + 15 ], "starting_column": 10, "ending_column": 58 @@ -332,20 +345,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "withdraw_internal", + "name": "withdraw", "source_mapping": { - "start": 1320, - "length": 205, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 181, + "length": 207, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 62, - 63, - 64, - 65, - 66 + 13, + 14, + 15, + 16, + 17 ], "starting_column": 5, "ending_column": 6 @@ -353,50 +366,42 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestWithBugInternal", + "name": "TestWithBug", "source_mapping": { - "start": 1100, - "length": 698, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 67, + "length": 506, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "withdraw_internal(uint256)" + "signature": "withdraw(uint256)" } } }, @@ -408,14 +413,14 @@ "type": "node", "name": "balances[msg.sender] -= amount", "source_mapping": { - "start": 1488, + "start": 351, "length": 30, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 65 + 16 ], "starting_column": 10, "ending_column": 40 @@ -423,20 +428,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "withdraw_internal", + "name": "withdraw", "source_mapping": { - "start": 1320, - "length": 205, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 181, + "length": 207, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 62, - 63, - 64, - 65, - 66 + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "is_dependency": false, + "lines": [ + 13, + 14, + 15, + 16, + 17 ], "starting_column": 5, "ending_column": 6 @@ -444,50 +449,42 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestWithBugInternal", + "name": "TestWithBug", "source_mapping": { - "start": 1100, - "length": 698, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 67, + "length": 506, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "withdraw_internal(uint256)" + "signature": "withdraw(uint256)" } } }, @@ -497,10 +494,10 @@ } } ], - "description": "Reentrancy in TestWithBugInternal.withdraw_internal(uint256) (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#62-66):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#64)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#65)\n\tTestWithBugInternal.balances (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#52) can be used in cross function reentrancies:\n\t- TestWithBugInternal.withdraw_all_internal() (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#72-76)\n", - "markdown": "Reentrancy in [TestWithBugInternal.withdraw_internal(uint256)](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L62-L66):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L64)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L65)\n\t[TestWithBugInternal.balances](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L52) can be used in cross function reentrancies:\n\t- [TestWithBugInternal.withdraw_all_internal()](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L72-L76)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L62-L66", - "id": "7d618f027540d61d9af79a3a9475677476d1c4d7ad1be68ff8026f6c0d4cdc82", + "description": "Reentrancy in TestWithBug.withdraw(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#13-17):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#15)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#16)\n\tTestWithBug.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#7) can be used in cross function reentrancies:\n\t- TestWithBug.withdraw_all() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#19-23)\n", + "markdown": "Reentrancy in [TestWithBug.withdraw(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L13-L17):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L15)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L16)\n\t[TestWithBug.balances](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L7) can be used in cross function reentrancies:\n\t- [TestWithBug.withdraw_all()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L19-L23)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L13-L17", + "id": "8b16f075685a85086648e20e2b9cc6b92f6acffd5aeb569fd7a12aac2e536c7d", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" @@ -513,9 +510,9 @@ "source_mapping": { "start": 2749, "length": 205, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ 122, @@ -534,9 +531,9 @@ "source_mapping": { "start": 2516, "length": 441, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ 110, @@ -572,9 +569,9 @@ "source_mapping": { "start": 2858, "length": 48, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ 124 @@ -589,9 +586,9 @@ "source_mapping": { "start": 2749, "length": 205, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ 122, @@ -610,9 +607,9 @@ "source_mapping": { "start": 2516, "length": 441, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ 110, @@ -653,9 +650,9 @@ "source_mapping": { "start": 2917, "length": 30, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ 125 @@ -670,9 +667,9 @@ "source_mapping": { "start": 2749, "length": 205, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ 122, @@ -691,9 +688,9 @@ "source_mapping": { "start": 2516, "length": 441, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ 110, @@ -730,10 +727,10 @@ } } ], - "description": "Reentrancy in TestBugWithPublicVariable.withdraw_internal(uint256) (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#122-126):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#124)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#125)\n\tTestBugWithPublicVariable.balances (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#112) can be used in cross function reentrancies:\n\t- TestBugWithPublicVariable.balances (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#112)\n", - "markdown": "Reentrancy in [TestBugWithPublicVariable.withdraw_internal(uint256)](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L122-L126):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L124)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L125)\n\t[TestBugWithPublicVariable.balances](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L112) can be used in cross function reentrancies:\n\t- [TestBugWithPublicVariable.balances](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L112)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L122-L126", - "id": "a3e52c882aa9fb88119aa3507f4158436bfe3f1abee0828665afa41213587097", + "description": "Reentrancy in TestBugWithPublicVariable.withdraw_internal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#122-126):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#124)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#125)\n\tTestBugWithPublicVariable.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#112) can be used in cross function reentrancies:\n\t- TestBugWithPublicVariable.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#112)\n", + "markdown": "Reentrancy in [TestBugWithPublicVariable.withdraw_internal(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L122-L126):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L124)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L125)\n\t[TestBugWithPublicVariable.balances](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L112) can be used in cross function reentrancies:\n\t- [TestBugWithPublicVariable.balances](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L112)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L122-L126", + "id": "a5e43c5bba73814bdd39f88d7edf362fca7cdb7efd0b81c8eade67ff4a0685bd", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" @@ -744,18 +741,18 @@ "type": "function", "name": "withdraw", "source_mapping": { - "start": 181, + "start": 3089, "length": 207, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 13, - 14, - 15, - 16, - 17 + 138, + 139, + 140, + 141, + 142 ], "starting_column": 5, "ending_column": 6 @@ -763,36 +760,37 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestWithBug", + "name": "TestWithBugNonReentrantRead", "source_mapping": { - "start": 67, - "length": 506, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 2959, + "length": 629, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151 ], "starting_column": 1, "ending_column": 2 @@ -805,14 +803,14 @@ "type": "node", "name": "Receiver(msg.sender).send_funds{value: amount}()", "source_mapping": { - "start": 292, + "start": 3200, "length": 48, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 15 + 140 ], "starting_column": 10, "ending_column": 58 @@ -822,18 +820,18 @@ "type": "function", "name": "withdraw", "source_mapping": { - "start": 181, + "start": 3089, "length": 207, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 13, - 14, - 15, - 16, - 17 + 138, + 139, + 140, + 141, + 142 ], "starting_column": 5, "ending_column": 6 @@ -841,36 +839,37 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestWithBug", + "name": "TestWithBugNonReentrantRead", "source_mapping": { - "start": 67, - "length": 506, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 2959, + "length": 629, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151 ], "starting_column": 1, "ending_column": 2 @@ -888,14 +887,14 @@ "type": "node", "name": "balances[msg.sender] -= amount", "source_mapping": { - "start": 351, + "start": 3259, "length": 30, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 16 + 141 ], "starting_column": 10, "ending_column": 40 @@ -905,18 +904,18 @@ "type": "function", "name": "withdraw", "source_mapping": { - "start": 181, + "start": 3089, "length": 207, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 13, - 14, - 15, - 16, - 17 + 138, + 139, + 140, + 141, + 142 ], "starting_column": 5, "ending_column": 6 @@ -924,36 +923,37 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "TestWithBug", + "name": "TestWithBugNonReentrantRead", "source_mapping": { - "start": 67, - "length": 506, - "filename_relative": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "start": 2959, + "length": 629, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151 ], "starting_column": 1, "ending_column": 2 @@ -969,10 +969,10 @@ } } ], - "description": "Reentrancy in TestWithBug.withdraw(uint256) (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#13-17):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#15)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#16)\n\tTestWithBug.balances (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#7) can be used in cross function reentrancies:\n\t- TestWithBug.withdraw_all() (tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#19-23)\n", - "markdown": "Reentrancy in [TestWithBug.withdraw(uint256)](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L13-L17):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L15)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L16)\n\t[TestWithBug.balances](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L7) can be used in cross function reentrancies:\n\t- [TestWithBug.withdraw_all()](tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L19-L23)\n", - "first_markdown_element": "tests/detectors/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L13-L17", - "id": "bcfa65e776908d618f202fa48f03dde3fbf8397b752d2e8cc3c8e46019e9e174", + "description": "Reentrancy in TestWithBugNonReentrantRead.withdraw(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#138-142):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#140)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#141)\n\tTestWithBugNonReentrantRead.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#132) can be used in cross function reentrancies:\n\t- TestWithBugNonReentrantRead.read() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#146-149)\n", + "markdown": "Reentrancy in [TestWithBugNonReentrantRead.withdraw(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L138-L142):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L140)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L141)\n\t[TestWithBugNonReentrantRead.balances](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L132) can be used in cross function reentrancies:\n\t- [TestWithBugNonReentrantRead.read()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L146-L149)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L138-L142", + "id": "b79d8012bf893f7647d07b05e004a8b921515338c9030856d8fff9d5d80f4bfc", "check": "reentrancy-eth", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol b/tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol similarity index 100% rename from tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol rename to tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol diff --git a/tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol.0.5.16.ReentrancyEvent.json b/tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol.0.5.16.ReentrancyEvent.json similarity index 75% rename from tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol.0.5.16.ReentrancyEvent.json rename to tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol.0.5.16.ReentrancyEvent.json index 649278f4f..a297bb05e 100644 --- a/tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol.0.5.16.ReentrancyEvent.json +++ b/tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol.0.5.16.ReentrancyEvent.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 86, "length": 68, - "filename_relative": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "is_dependency": false, "lines": [ 14, @@ -28,9 +28,9 @@ "source_mapping": { "start": 51, "length": 193, - "filename_relative": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "is_dependency": false, "lines": [ 11, @@ -61,9 +61,9 @@ "source_mapping": { "start": 120, "length": 5, - "filename_relative": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "is_dependency": false, "lines": [ 15 @@ -78,9 +78,9 @@ "source_mapping": { "start": 86, "length": 68, - "filename_relative": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "is_dependency": false, "lines": [ 14, @@ -98,9 +98,9 @@ "source_mapping": { "start": 51, "length": 193, - "filename_relative": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "is_dependency": false, "lines": [ 11, @@ -136,9 +136,9 @@ "source_mapping": { "start": 135, "length": 8, - "filename_relative": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "is_dependency": false, "lines": [ 16 @@ -153,9 +153,9 @@ "source_mapping": { "start": 86, "length": 68, - "filename_relative": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "is_dependency": false, "lines": [ 14, @@ -173,9 +173,9 @@ "source_mapping": { "start": 51, "length": 193, - "filename_relative": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", "is_dependency": false, "lines": [ 11, @@ -206,10 +206,10 @@ } } ], - "description": "Reentrancy in Test.bug(C) (tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol#14-17):\n\tExternal calls:\n\t- c.f() (tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol#15)\n\tEvent emitted after the call(s):\n\t- E() (tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol#16)\n", - "markdown": "Reentrancy in [Test.bug(C)](tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol#L14-L17):\n\tExternal calls:\n\t- [c.f()](tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol#L15)\n\tEvent emitted after the call(s):\n\t- [E()](tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol#L16)\n", - "first_markdown_element": "tests/detectors/reentrancy-events/0.5.16/reentrancy-events.sol#L14-L17", - "id": "314eb87452ecb57911a225bbbd538d33f9204518026249a12410e19413554727", + "description": "Reentrancy in Test.bug(C) (tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#14-17):\n\tExternal calls:\n\t- c.f() (tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#15)\n\tEvent emitted after the call(s):\n\t- E() (tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#16)\n", + "markdown": "Reentrancy in [Test.bug(C)](tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#L14-L17):\n\tExternal calls:\n\t- [c.f()](tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#L15)\n\tEvent emitted after the call(s):\n\t- [E()](tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#L14-L17", + "id": "6c7667330a55c58c55cce9ae6835edb150459c2c5d86e40406978699fbdeaa11", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol b/tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol similarity index 100% rename from tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol rename to tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol diff --git a/tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol.0.6.11.ReentrancyEvent.json b/tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol.0.6.11.ReentrancyEvent.json similarity index 75% rename from tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol.0.6.11.ReentrancyEvent.json rename to tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol.0.6.11.ReentrancyEvent.json index df705566d..721b54254 100644 --- a/tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol.0.6.11.ReentrancyEvent.json +++ b/tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol.0.6.11.ReentrancyEvent.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 86, "length": 68, - "filename_relative": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "is_dependency": false, "lines": [ 14, @@ -28,9 +28,9 @@ "source_mapping": { "start": 51, "length": 193, - "filename_relative": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "is_dependency": false, "lines": [ 11, @@ -61,9 +61,9 @@ "source_mapping": { "start": 120, "length": 5, - "filename_relative": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "is_dependency": false, "lines": [ 15 @@ -78,9 +78,9 @@ "source_mapping": { "start": 86, "length": 68, - "filename_relative": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "is_dependency": false, "lines": [ 14, @@ -98,9 +98,9 @@ "source_mapping": { "start": 51, "length": 193, - "filename_relative": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "is_dependency": false, "lines": [ 11, @@ -136,9 +136,9 @@ "source_mapping": { "start": 135, "length": 8, - "filename_relative": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "is_dependency": false, "lines": [ 16 @@ -153,9 +153,9 @@ "source_mapping": { "start": 86, "length": 68, - "filename_relative": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "is_dependency": false, "lines": [ 14, @@ -173,9 +173,9 @@ "source_mapping": { "start": 51, "length": 193, - "filename_relative": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", "is_dependency": false, "lines": [ 11, @@ -206,10 +206,10 @@ } } ], - "description": "Reentrancy in Test.bug(C) (tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol#14-17):\n\tExternal calls:\n\t- c.f() (tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol#15)\n\tEvent emitted after the call(s):\n\t- E() (tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol#16)\n", - "markdown": "Reentrancy in [Test.bug(C)](tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol#L14-L17):\n\tExternal calls:\n\t- [c.f()](tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol#L15)\n\tEvent emitted after the call(s):\n\t- [E()](tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol#L16)\n", - "first_markdown_element": "tests/detectors/reentrancy-events/0.6.11/reentrancy-events.sol#L14-L17", - "id": "1f754abe7a9cadfa9e0ea549a49219ba95c55bb5eaf79698de27f0fa460eb0f2", + "description": "Reentrancy in Test.bug(C) (tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#14-17):\n\tExternal calls:\n\t- c.f() (tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#15)\n\tEvent emitted after the call(s):\n\t- E() (tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#16)\n", + "markdown": "Reentrancy in [Test.bug(C)](tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#L14-L17):\n\tExternal calls:\n\t- [c.f()](tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#L15)\n\tEvent emitted after the call(s):\n\t- [E()](tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#L14-L17", + "id": "57dfae738fee13bc099219197e91ba9d4baee9346b386d5e9789ff7210932775", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol b/tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol similarity index 100% rename from tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol rename to tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol diff --git a/tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol.0.7.6.ReentrancyEvent.json b/tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol.0.7.6.ReentrancyEvent.json similarity index 75% rename from tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol.0.7.6.ReentrancyEvent.json rename to tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol.0.7.6.ReentrancyEvent.json index 174b7c5cd..1b4ea36ae 100644 --- a/tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol.0.7.6.ReentrancyEvent.json +++ b/tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol.0.7.6.ReentrancyEvent.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 86, "length": 68, - "filename_relative": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "is_dependency": false, "lines": [ 14, @@ -28,9 +28,9 @@ "source_mapping": { "start": 51, "length": 193, - "filename_relative": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "is_dependency": false, "lines": [ 11, @@ -61,9 +61,9 @@ "source_mapping": { "start": 120, "length": 5, - "filename_relative": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "is_dependency": false, "lines": [ 15 @@ -78,9 +78,9 @@ "source_mapping": { "start": 86, "length": 68, - "filename_relative": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "is_dependency": false, "lines": [ 14, @@ -98,9 +98,9 @@ "source_mapping": { "start": 51, "length": 193, - "filename_relative": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "is_dependency": false, "lines": [ 11, @@ -136,9 +136,9 @@ "source_mapping": { "start": 135, "length": 8, - "filename_relative": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "is_dependency": false, "lines": [ 16 @@ -153,9 +153,9 @@ "source_mapping": { "start": 86, "length": 68, - "filename_relative": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "is_dependency": false, "lines": [ 14, @@ -173,9 +173,9 @@ "source_mapping": { "start": 51, "length": 193, - "filename_relative": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", "is_dependency": false, "lines": [ 11, @@ -206,10 +206,10 @@ } } ], - "description": "Reentrancy in Test.bug(C) (tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol#14-17):\n\tExternal calls:\n\t- c.f() (tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol#15)\n\tEvent emitted after the call(s):\n\t- E() (tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol#16)\n", - "markdown": "Reentrancy in [Test.bug(C)](tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol#L14-L17):\n\tExternal calls:\n\t- [c.f()](tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol#L15)\n\tEvent emitted after the call(s):\n\t- [E()](tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol#L16)\n", - "first_markdown_element": "tests/detectors/reentrancy-events/0.7.6/reentrancy-events.sol#L14-L17", - "id": "959396e18ec2c541dcb7c9e9f318504e794922dd6f48ffd9885d11289b5f83ba", + "description": "Reentrancy in Test.bug(C) (tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#14-17):\n\tExternal calls:\n\t- c.f() (tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#15)\n\tEvent emitted after the call(s):\n\t- E() (tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#16)\n", + "markdown": "Reentrancy in [Test.bug(C)](tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#L14-L17):\n\tExternal calls:\n\t- [c.f()](tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#L15)\n\tEvent emitted after the call(s):\n\t- [E()](tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#L14-L17", + "id": "eb179fcb7697d6ca861dc9623c9733389f70206ab7b0d7d8b2f3469a17a3ab7f", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol similarity index 100% rename from tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol diff --git a/tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol.0.4.25.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol.0.4.25.ReentrancyReadBeforeWritten.json similarity index 95% rename from tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol.0.4.25.ReentrancyReadBeforeWritten.json rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol.0.4.25.ReentrancyReadBeforeWritten.json index 67304b3a5..dc81e0f5d 100644 --- a/tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol.0.4.25.ReentrancyReadBeforeWritten.json +++ b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol.0.4.25.ReentrancyReadBeforeWritten.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 39505, "length": 735, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 1037, @@ -45,9 +45,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -594,9 +594,9 @@ "source_mapping": { "start": 39789, "length": 145, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 1044, @@ -613,9 +613,9 @@ "source_mapping": { "start": 39505, "length": 735, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 1037, @@ -650,9 +650,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -1204,9 +1204,9 @@ "source_mapping": { "start": 39977, "length": 53, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 1048 @@ -1221,9 +1221,9 @@ "source_mapping": { "start": 39505, "length": 735, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 1037, @@ -1258,9 +1258,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -1812,9 +1812,9 @@ "source_mapping": { "start": 40100, "length": 37, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 1052 @@ -1829,9 +1829,9 @@ "source_mapping": { "start": 39505, "length": 735, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 1037, @@ -1866,9 +1866,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -2420,9 +2420,9 @@ "source_mapping": { "start": 40180, "length": 32, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 1055 @@ -2437,9 +2437,9 @@ "source_mapping": { "start": 39505, "length": 735, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 1037, @@ -2474,9 +2474,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -3024,10 +3024,10 @@ } } ], - "description": "Reentrancy in DAO.retrieveDAOReward(bool) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1037-1057):\n\tExternal calls:\n\t- reward = (rewardToken[msg.sender] * DAOrewardAccount.accumulatedInput()) / totalRewardToken - DAOpaidOut[msg.sender] (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1044-1046)\n\t- ! DAOrewardAccount.payOut(dao.rewardAccount(),reward) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1048)\n\t- ! DAOrewardAccount.payOut(dao,reward) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1052)\n\tState variables written after the call(s):\n\t- DAOpaidOut[msg.sender] += reward (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1055)\n\tDAOInterface.DAOpaidOut (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#423) can be used in cross function reentrancies:\n\t- DAOInterface.DAOpaidOut (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#423)\n\t- DAO.newContract(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1022-1034)\n\t- DAO.retrieveDAOReward(bool) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1037-1057)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n", - "markdown": "Reentrancy in [DAO.retrieveDAOReward(bool)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1037-L1057):\n\tExternal calls:\n\t- [reward = (rewardToken[msg.sender] * DAOrewardAccount.accumulatedInput()) / totalRewardToken - DAOpaidOut[msg.sender]](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1044-L1046)\n\t- [! DAOrewardAccount.payOut(dao.rewardAccount(),reward)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1048)\n\t- [! DAOrewardAccount.payOut(dao,reward)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1052)\n\tState variables written after the call(s):\n\t- [DAOpaidOut[msg.sender] += reward](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1055)\n\t[DAOInterface.DAOpaidOut](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L423) can be used in cross function reentrancies:\n\t- [DAOInterface.DAOpaidOut](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L423)\n\t- [DAO.newContract(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1022-L1034)\n\t- [DAO.retrieveDAOReward(bool)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1037-L1057)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n", - "first_markdown_element": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1037-L1057", - "id": "46f3602c51aa374d23e5b813ad0fe727cb1ea9b91d446c8e8eee0665554d8752", + "description": "Reentrancy in DAO.retrieveDAOReward(bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1037-1057):\n\tExternal calls:\n\t- reward = (rewardToken[msg.sender] * DAOrewardAccount.accumulatedInput()) / totalRewardToken - DAOpaidOut[msg.sender] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1044-1046)\n\t- ! DAOrewardAccount.payOut(dao.rewardAccount(),reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1048)\n\t- ! DAOrewardAccount.payOut(dao,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1052)\n\tState variables written after the call(s):\n\t- DAOpaidOut[msg.sender] += reward (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1055)\n\tDAOInterface.DAOpaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#423) can be used in cross function reentrancies:\n\t- DAOInterface.DAOpaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#423)\n\t- DAO.newContract(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1022-1034)\n\t- DAO.retrieveDAOReward(bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1037-1057)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n", + "markdown": "Reentrancy in [DAO.retrieveDAOReward(bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1037-L1057):\n\tExternal calls:\n\t- [reward = (rewardToken[msg.sender] * DAOrewardAccount.accumulatedInput()) / totalRewardToken - DAOpaidOut[msg.sender]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1044-L1046)\n\t- [! DAOrewardAccount.payOut(dao.rewardAccount(),reward)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1048)\n\t- [! DAOrewardAccount.payOut(dao,reward)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1052)\n\tState variables written after the call(s):\n\t- [DAOpaidOut[msg.sender] += reward](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1055)\n\t[DAOInterface.DAOpaidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L423) can be used in cross function reentrancies:\n\t- [DAOInterface.DAOpaidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L423)\n\t- [DAO.newContract(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1022-L1034)\n\t- [DAO.retrieveDAOReward(bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1037-L1057)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1037-L1057", + "id": "48ff761b454067eaeae40c5b71f220484bc0dbee9802f41176c9d09f362b1234", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium" @@ -3036,25 +3036,26 @@ "elements": [ { "type": "function", - "name": "transferFromWithoutReward", + "name": "withdrawRewardFor", "source_mapping": { - "start": 41743, - "length": 247, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 40361, + "length": 473, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121 + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074 ], "starting_column": 5, "ending_column": 6 @@ -3066,9 +3067,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -3606,47 +3607,49 @@ "ending_column": 2 } }, - "signature": "transferFromWithoutReward(address,address,uint256)" + "signature": "withdrawRewardFor(address)" } }, { "type": "node", - "name": "! withdrawRewardFor(_from)", + "name": "reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]", "source_mapping": { - "start": 41890, - "length": 25, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 40581, + "length": 116, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1118 + 1068, + 1069 ], - "starting_column": 13, - "ending_column": 38 + "starting_column": 9, + "ending_column": 103 }, "type_specific_fields": { "parent": { "type": "function", - "name": "transferFromWithoutReward", + "name": "withdrawRewardFor", "source_mapping": { - "start": 41743, - "length": 247, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 40361, + "length": 473, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121 + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074 ], "starting_column": 5, "ending_column": 6 @@ -3658,9 +3661,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -4198,7 +4201,7 @@ "ending_column": 2 } }, - "signature": "transferFromWithoutReward(address,address,uint256)" + "signature": "withdrawRewardFor(address)" } } }, @@ -4208,19 +4211,19 @@ }, { "type": "node", - "name": "(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]", + "name": "! rewardAccount.payOut(_account,reward)", "source_mapping": { - "start": 40461, - "length": 90, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 40711, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1065 + 1070 ], "starting_column": 13, - "ending_column": 103 + "ending_column": 52 }, "type_specific_fields": { "parent": { @@ -4229,9 +4232,9 @@ "source_mapping": { "start": 40361, "length": 473, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 1064, @@ -4256,9 +4259,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -4801,25 +4804,24 @@ } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]", + "name": "paidOut[_account] += reward", "source_mapping": { - "start": 40581, - "length": 116, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 40779, + "length": 27, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1068, - 1069 + 1072 ], "starting_column": 9, - "ending_column": 103 + "ending_column": 36 }, "type_specific_fields": { "parent": { @@ -4828,9 +4830,9 @@ "source_mapping": { "start": 40361, "length": 473, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 1064, @@ -4855,9 +4857,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -5400,9644 +5402,120 @@ } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "paidOut" } - }, + } + ], + "description": "Reentrancy in DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074):\n\tExternal calls:\n\t- reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069)\n\t- ! rewardAccount.payOut(_account,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1070)\n\tState variables written after the call(s):\n\t- paidOut[_account] += reward (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1072)\n\tDAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies:\n\t- DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.transferPaidOut(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136)\n\t- DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n", + "markdown": "Reentrancy in [DAO.withdrawRewardFor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074):\n\tExternal calls:\n\t- [reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1068-L1069)\n\t- [! rewardAccount.payOut(_account,reward)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1070)\n\tState variables written after the call(s):\n\t- [paidOut[_account] += reward](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1072)\n\t[DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426) can be used in cross function reentrancies:\n\t- [DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.transferPaidOut(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1124-L1136)\n\t- [DAO.withdrawRewardFor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074", + "id": "72166dde55a4b03eff9ca22972a9d44de7afd0f5976f9795dde31801a29f5ddb", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ { - "type": "node", - "name": "! rewardAccount.payOut(_account,reward)", + "type": "function", + "name": "splitDAO", "source_mapping": { - "start": 40711, - "length": 39, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 36148, + "length": 2849, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1070 + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020 ], - "starting_column": 13, - "ending_column": 52 + "starting_column": 5, + "ending_column": 6 }, "type_specific_fields": { "parent": { - "type": "function", - "name": "withdrawRewardFor", + "type": "contract", + "name": "DAO", "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "transferFrom(_from,_to,_value)", - "source_mapping": { - "start": 41944, - "length": 39, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1120 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferFromWithoutReward", - "source_mapping": { - "start": 41743, - "length": 247, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFromWithoutReward(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - }, - { - "type": "node", - "name": "balances[_to] += _amount", - "source_mapping": { - "start": 4393, - "length": 24, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 120 - ], - "starting_column": 13, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferFrom", - "source_mapping": { - "start": 4127, - "length": 509, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 3440, - "length": 1550, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFrom(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - }, - { - "type": "node", - "name": "balances[_from] -= _amount", - "source_mapping": { - "start": 4431, - "length": 26, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 121 - ], - "starting_column": 13, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferFrom", - "source_mapping": { - "start": 4127, - "length": 509, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 3440, - "length": 1550, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFrom(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - }, - { - "type": "node", - "name": "transferFrom(_from,_to,_value)", - "source_mapping": { - "start": 41944, - "length": 39, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1120 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferFromWithoutReward", - "source_mapping": { - "start": 41743, - "length": 247, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFromWithoutReward(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "paidOut" - } - }, - { - "type": "node", - "name": "paidOut[_from] -= transferPaidOut", - "source_mapping": { - "start": 42279, - "length": 33, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1133 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferPaidOut", - "source_mapping": { - "start": 41997, - "length": 384, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferPaidOut(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "paidOut" - } - }, - { - "type": "node", - "name": "paidOut[_to] += transferPaidOut", - "source_mapping": { - "start": 42322, - "length": 31, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1134 - ], - "starting_column": 9, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferPaidOut", - "source_mapping": { - "start": 41997, - "length": 384, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferPaidOut(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "paidOut" - } - } - ], - "description": "Reentrancy in DAO.transferFromWithoutReward(address,address,uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1112-1121):\n\tExternal calls:\n\t- ! withdrawRewardFor(_from) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1118)\n\t\t- (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account] (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1065)\n\t\t- reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069)\n\t\t- ! rewardAccount.payOut(_account,reward) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1070)\n\tState variables written after the call(s):\n\t- transferFrom(_from,_to,_value) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1120)\n\t\t- balances[_to] += _amount (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#120)\n\t\t- balances[_from] -= _amount (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#121)\n\tTokenInterface.balances (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#41) can be used in cross function reentrancies:\n\t- Token.balanceOf(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#95-97)\n\t- TokenCreation.createTokenProxy(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#299-316)\n\t- TokenCreation.refund() (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#318-332)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- Token.transfer(address,uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#99-108)\n\t- Token.transferFrom(address,address,uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#110-128)\n\t- DAO.vote(uint256,bool) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- transferFrom(_from,_to,_value) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1120)\n\t\t- paidOut[_from] -= transferPaidOut (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1133)\n\t\t- paidOut[_to] += transferPaidOut (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1134)\n\tDAOInterface.paidOut (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies:\n\t- DAOInterface.paidOut (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#426)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.transferPaidOut(address,address,uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136)\n\t- DAO.withdrawRewardFor(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n", - "markdown": "Reentrancy in [DAO.transferFromWithoutReward(address,address,uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1112-L1121):\n\tExternal calls:\n\t- [! withdrawRewardFor(_from)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1118)\n\t\t- [(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1065)\n\t\t- [reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1068-L1069)\n\t\t- [! rewardAccount.payOut(_account,reward)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1070)\n\tState variables written after the call(s):\n\t- [transferFrom(_from,_to,_value)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1120)\n\t\t- [balances[_to] += _amount](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L120)\n\t\t- [balances[_from] -= _amount](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L121)\n\t[TokenInterface.balances](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L41) can be used in cross function reentrancies:\n\t- [Token.balanceOf(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L95-L97)\n\t- [TokenCreation.createTokenProxy(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L299-L316)\n\t- [TokenCreation.refund()](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L318-L332)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [Token.transfer(address,uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L99-L108)\n\t- [Token.transferFrom(address,address,uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L110-L128)\n\t- [DAO.vote(uint256,bool)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [transferFrom(_from,_to,_value)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1120)\n\t\t- [paidOut[_from] -= transferPaidOut](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1133)\n\t\t- [paidOut[_to] += transferPaidOut](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1134)\n\t[DAOInterface.paidOut](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L426) can be used in cross function reentrancies:\n\t- [DAOInterface.paidOut](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L426)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.transferPaidOut(address,address,uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1124-L1136)\n\t- [DAO.withdrawRewardFor(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n", - "first_markdown_element": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1112-L1121", - "id": "909a0ca64efee741832ff649b172fed1112e86771da217fea671356d66c42a49", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - }, - { - "type": "node", - "name": "p.splitData[0].newDAO = createNewDAO(_newCurator)", - "source_mapping": { - "start": 37159, - "length": 49, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 974 - ], - "starting_column": 13, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod)", - "source_mapping": { - "start": 44544, - "length": 74, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1196 - ], - "starting_column": 9, - "ending_column": 83 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "createNewDAO", - "source_mapping": { - "start": 44427, - "length": 198, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1194, - 1195, - 1196, - 1197 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "createNewDAO(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "withdrawRewardFor(msg.sender)", - "source_mapping": { - "start": 38796, - "length": 29, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1015 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]", - "source_mapping": { - "start": 40461, - "length": 90, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1065 - ], - "starting_column": 13, - "ending_column": 103 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]", - "source_mapping": { - "start": 40581, - "length": 116, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1068, - 1069 - ], - "starting_column": 9, - "ending_column": 103 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "! rewardAccount.payOut(_account,reward)", - "source_mapping": { - "start": 40711, - "length": 39, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1070 - ], - "starting_column": 13, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "balances[msg.sender] = 0", - "source_mapping": { - "start": 38912, - "length": 24, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1017 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - }, - { - "type": "node", - "name": "paidOut[msg.sender] = 0", - "source_mapping": { - "start": 38946, - "length": 23, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1018 - ], - "starting_column": 9, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "paidOut" - } - }, - { - "type": "node", - "name": "totalSupply -= balances[msg.sender]", - "source_mapping": { - "start": 38867, - "length": 35, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1016 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "totalSupply" - } - } - ], - "description": "Reentrancy in DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020):\n\tExternal calls:\n\t- p.splitData[0].newDAO = createNewDAO(_newCurator) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#974)\n\t\t- daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1196)\n\t- withdrawRewardFor(msg.sender) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1015)\n\t\t- (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account] (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1065)\n\t\t- reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069)\n\t\t- ! rewardAccount.payOut(_account,reward) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1070)\n\tState variables written after the call(s):\n\t- balances[msg.sender] = 0 (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1017)\n\tTokenInterface.balances (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#41) can be used in cross function reentrancies:\n\t- Token.balanceOf(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#95-97)\n\t- TokenCreation.createTokenProxy(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#299-316)\n\t- TokenCreation.refund() (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#318-332)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- Token.transfer(address,uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#99-108)\n\t- Token.transferFrom(address,address,uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#110-128)\n\t- DAO.vote(uint256,bool) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- paidOut[msg.sender] = 0 (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1018)\n\tDAOInterface.paidOut (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies:\n\t- DAOInterface.paidOut (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#426)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.transferPaidOut(address,address,uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136)\n\t- DAO.withdrawRewardFor(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n\t- totalSupply -= balances[msg.sender] (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1016)\n\tTokenInterface.totalSupply (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#45) can be used in cross function reentrancies:\n\t- TokenCreation.createTokenProxy(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#299-316)\n\t- DAO.executeProposal(uint256,bytes) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.minQuorum(uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1174-1178)\n\t- TokenCreation.refund() (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#318-332)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- TokenInterface.totalSupply (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#45)\n\t- DAO.withdrawRewardFor(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n", - "markdown": "Reentrancy in [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020):\n\tExternal calls:\n\t- [p.splitData[0].newDAO = createNewDAO(_newCurator)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L974)\n\t\t- [daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1196)\n\t- [withdrawRewardFor(msg.sender)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1015)\n\t\t- [(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1065)\n\t\t- [reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1068-L1069)\n\t\t- [! rewardAccount.payOut(_account,reward)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1070)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] = 0](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1017)\n\t[TokenInterface.balances](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L41) can be used in cross function reentrancies:\n\t- [Token.balanceOf(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L95-L97)\n\t- [TokenCreation.createTokenProxy(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L299-L316)\n\t- [TokenCreation.refund()](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L318-L332)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [Token.transfer(address,uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L99-L108)\n\t- [Token.transferFrom(address,address,uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L110-L128)\n\t- [DAO.vote(uint256,bool)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [paidOut[msg.sender] = 0](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1018)\n\t[DAOInterface.paidOut](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L426) can be used in cross function reentrancies:\n\t- [DAOInterface.paidOut](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L426)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.transferPaidOut(address,address,uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1124-L1136)\n\t- [DAO.withdrawRewardFor(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n\t- [totalSupply -= balances[msg.sender]](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1016)\n\t[TokenInterface.totalSupply](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L45) can be used in cross function reentrancies:\n\t- [TokenCreation.createTokenProxy(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L299-L316)\n\t- [DAO.executeProposal(uint256,bytes)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.minQuorum(uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1174-L1178)\n\t- [TokenCreation.refund()](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L318-L332)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [TokenInterface.totalSupply](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L45)\n\t- [DAO.withdrawRewardFor(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n", - "first_markdown_element": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020", - "id": "963e4c36f1b98773a1c2817e28fb118a93db29d43e20dfa8d001139ba2a4175f", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "transferWithoutReward", - "source_mapping": { - "start": 41191, - "length": 175, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1091, - 1092, - 1093, - 1094, - 1095 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -15366,50 +5844,3356 @@ 1017, 1018, 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "splitDAO(uint256,address)" + } + }, + { + "type": "node", + "name": "p.splitData[0].newDAO = createNewDAO(_newCurator)", + "source_mapping": { + "start": 37159, + "length": 49, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 974 + ], + "starting_column": 13, + "ending_column": 62 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "splitDAO", + "source_mapping": { + "start": 36148, + "length": 2849, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "splitDAO(uint256,address)" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls" + } + }, + { + "type": "node", + "name": "daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod)", + "source_mapping": { + "start": 44544, + "length": 74, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1196 + ], + "starting_column": 9, + "ending_column": 83 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createNewDAO", + "source_mapping": { + "start": 44427, + "length": 198, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1194, + 1195, + 1196, + 1197 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createNewDAO(address)" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" + } + }, + { + "type": "node", + "name": "withdrawRewardFor(msg.sender)", + "source_mapping": { + "start": 38796, + "length": 29, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1015 + ], + "starting_column": 9, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "splitDAO", + "source_mapping": { + "start": 36148, + "length": 2849, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "splitDAO(uint256,address)" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls" + } + }, + { + "type": "node", + "name": "(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]", + "source_mapping": { + "start": 40461, + "length": 90, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1065 + ], + "starting_column": 13, + "ending_column": 103 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawRewardFor", + "source_mapping": { + "start": 40361, + "length": 473, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawRewardFor(address)" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" + } + }, + { + "type": "node", + "name": "reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]", + "source_mapping": { + "start": 40581, + "length": 116, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1068, + 1069 + ], + "starting_column": 9, + "ending_column": 103 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawRewardFor", + "source_mapping": { + "start": 40361, + "length": 473, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawRewardFor(address)" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" + } + }, + { + "type": "node", + "name": "! rewardAccount.payOut(_account,reward)", + "source_mapping": { + "start": 40711, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1070 + ], + "starting_column": 13, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawRewardFor", + "source_mapping": { + "start": 40361, + "length": 473, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ 1064, 1065, 1066, @@ -15420,197 +9204,668 @@ 1071, 1072, 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 + 1074 ], - "starting_column": 1, - "ending_column": 2 + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawRewardFor(address)" } - }, - "signature": "transferWithoutReward(address,uint256)" + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "! getMyReward()", + "name": "balances[msg.sender] = 0", "source_mapping": { - "start": 41288, - "length": 14, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 38912, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1092 + 1017 ], - "starting_column": 13, - "ending_column": 27 + "starting_column": 9, + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "transferWithoutReward", + "name": "splitDAO", "source_mapping": { - "start": 41191, - "length": 175, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 36148, + "length": 2849, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1091, - 1092, - 1093, - 1094, - 1095 + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020 ], "starting_column": 5, "ending_column": 6 @@ -15622,9 +9877,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -16162,53 +10417,117 @@ "ending_column": 2 } }, - "signature": "transferWithoutReward(address,uint256)" + "signature": "splitDAO(uint256,address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "variables_written", + "variable_name": "balances" } }, { "type": "node", - "name": "(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]", + "name": "paidOut[msg.sender] = 0", "source_mapping": { - "start": 40461, - "length": 90, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 38946, + "length": 23, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1065 + 1018 ], - "starting_column": 13, - "ending_column": 103 + "starting_column": 9, + "ending_column": 32 }, "type_specific_fields": { "parent": { "type": "function", - "name": "withdrawRewardFor", + "name": "splitDAO", "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 36148, + "length": 2849, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020 ], "starting_column": 5, "ending_column": 6 @@ -16220,9 +10539,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -16760,54 +11079,117 @@ "ending_column": 2 } }, - "signature": "withdrawRewardFor(address)" + "signature": "splitDAO(uint256,address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "paidOut" } }, { "type": "node", - "name": "reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]", + "name": "totalSupply -= balances[msg.sender]", "source_mapping": { - "start": 40581, - "length": 116, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 38867, + "length": 35, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1068, - 1069 + 1016 ], "starting_column": 9, - "ending_column": 103 + "ending_column": 44 }, "type_specific_fields": { "parent": { "type": "function", - "name": "withdrawRewardFor", + "name": "splitDAO", "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 36148, + "length": 2849, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020 ], "starting_column": 5, "ending_column": 6 @@ -16819,9 +11201,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -17359,53 +11741,767 @@ "ending_column": 2 } }, - "signature": "withdrawRewardFor(address)" + "signature": "splitDAO(uint256,address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "totalSupply" + } + } + ], + "description": "Reentrancy in DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020):\n\tExternal calls:\n\t- p.splitData[0].newDAO = createNewDAO(_newCurator) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#974)\n\t\t- daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1196)\n\t- withdrawRewardFor(msg.sender) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1015)\n\t\t- (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1065)\n\t\t- reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069)\n\t\t- ! rewardAccount.payOut(_account,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1070)\n\tState variables written after the call(s):\n\t- balances[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1017)\n\tTokenInterface.balances (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#41) can be used in cross function reentrancies:\n\t- Token.balanceOf(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#95-97)\n\t- TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#299-316)\n\t- TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#318-332)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- Token.transfer(address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#99-108)\n\t- Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#110-128)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- paidOut[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1018)\n\tDAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies:\n\t- DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.transferPaidOut(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136)\n\t- DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n\t- totalSupply -= balances[msg.sender] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1016)\n\tTokenInterface.totalSupply (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#45) can be used in cross function reentrancies:\n\t- TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#299-316)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.minQuorum(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1174-1178)\n\t- TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#318-332)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- TokenInterface.totalSupply (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#45)\n\t- DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n", + "markdown": "Reentrancy in [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020):\n\tExternal calls:\n\t- [p.splitData[0].newDAO = createNewDAO(_newCurator)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L974)\n\t\t- [daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1196)\n\t- [withdrawRewardFor(msg.sender)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1015)\n\t\t- [(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1065)\n\t\t- [reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1068-L1069)\n\t\t- [! rewardAccount.payOut(_account,reward)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1070)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1017)\n\t[TokenInterface.balances](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L41) can be used in cross function reentrancies:\n\t- [Token.balanceOf(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L95-L97)\n\t- [TokenCreation.createTokenProxy(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L299-L316)\n\t- [TokenCreation.refund()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L318-L332)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [Token.transfer(address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L99-L108)\n\t- [Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L110-L128)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [paidOut[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1018)\n\t[DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426) can be used in cross function reentrancies:\n\t- [DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.transferPaidOut(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1124-L1136)\n\t- [DAO.withdrawRewardFor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n\t- [totalSupply -= balances[msg.sender]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1016)\n\t[TokenInterface.totalSupply](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L45) can be used in cross function reentrancies:\n\t- [TokenCreation.createTokenProxy(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L299-L316)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.minQuorum(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1174-L1178)\n\t- [TokenCreation.refund()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L318-L332)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [TokenInterface.totalSupply](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L45)\n\t- [DAO.withdrawRewardFor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020", + "id": "b5e0d89e8dfd1630d85dd7e57ea229d39c0c99b61d05b206ac600de851a9f8d4", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "splitDAO", + "source_mapping": { + "start": 36148, + "length": 2849, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" + }, + "signature": "splitDAO(uint256,address)" } }, { "type": "node", - "name": "! rewardAccount.payOut(_account,reward)", + "name": "p.splitData[0].newDAO = createNewDAO(_newCurator)", "source_mapping": { - "start": 40711, - "length": 39, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 37159, + "length": 49, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1070 + 974 ], "starting_column": 13, - "ending_column": 52 + "ending_column": 62 }, "type_specific_fields": { "parent": { "type": "function", - "name": "withdrawRewardFor", + "name": "splitDAO", "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 36148, + "length": 2849, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020 ], "starting_column": 5, "ending_column": 6 @@ -17417,9 +12513,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -17957,47 +13053,46 @@ "ending_column": 2 } }, - "signature": "withdrawRewardFor(address)" + "signature": "splitDAO(uint256,address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "transfer(_to,_value)", + "name": "daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod)", "source_mapping": { - "start": 41331, - "length": 28, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 44544, + "length": 74, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1094 + 1196 ], "starting_column": 9, - "ending_column": 37 + "ending_column": 83 }, "type_specific_fields": { "parent": { "type": "function", - "name": "transferWithoutReward", + "name": "createNewDAO", "source_mapping": { - "start": 41191, - "length": 175, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 44427, + "length": 198, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1091, - 1092, - 1093, - 1094, - 1095 + 1194, + 1195, + 1196, + 1197 ], "starting_column": 5, "ending_column": 6 @@ -18009,9 +13104,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -18549,171 +13644,116 @@ "ending_column": 2 } }, - "signature": "transferWithoutReward(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - }, - { - "type": "node", - "name": "balances[msg.sender] -= _amount", - "source_mapping": { - "start": 3920, - "length": 31, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 101 - ], - "starting_column": 13, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transfer", - "source_mapping": { - "start": 3765, - "length": 356, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 3440, - "length": 1550, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transfer(address,uint256)" + "signature": "createNewDAO(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "balances[_to] += _amount", + "name": "p.splitData[0].splitBalance = actualBalance()", "source_mapping": { - "start": 3965, - "length": 24, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 37456, + "length": 45, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 102 + 981 ], "starting_column": 13, - "ending_column": 37 + "ending_column": 58 }, "type_specific_fields": { "parent": { "type": "function", - "name": "transfer", + "name": "splitDAO", "source_mapping": { - "start": 3765, - "length": 356, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 36148, + "length": 2849, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108 + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020 ], "starting_column": 5, "ending_column": 6 @@ -18721,112 +13761,661 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "Token", + "name": "DAO", "source_mapping": { - "start": 3440, - "length": 1550, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 ], "starting_column": 1, "ending_column": 2 } }, - "signature": "transfer(address,uint256)" + "signature": "splitDAO(uint256,address)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "balances" + "variable_name": "proposals" } }, { "type": "node", - "name": "transfer(_to,_value)", + "name": "p.splitData[0].rewardToken = rewardToken[address(this)]", "source_mapping": { - "start": 41331, - "length": 28, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 37515, + "length": 55, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1094 + 982 ], - "starting_column": 9, - "ending_column": 37 + "starting_column": 13, + "ending_column": 68 }, "type_specific_fields": { "parent": { "type": "function", - "name": "transferWithoutReward", + "name": "splitDAO", "source_mapping": { - "start": 41191, - "length": 175, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 36148, + "length": 2849, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1091, - 1092, - 1093, - 1094, - 1095 + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020 ], "starting_column": 5, "ending_column": 6 @@ -18838,9 +14427,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -19378,56 +14967,117 @@ "ending_column": 2 } }, - "signature": "transferWithoutReward(address,uint256)" + "signature": "splitDAO(uint256,address)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "paidOut" + "variable_name": "proposals" } }, { "type": "node", - "name": "paidOut[_from] -= transferPaidOut", + "name": "p.splitData[0].totalSupply = totalSupply", "source_mapping": { - "start": 42279, - "length": 33, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 37584, + "length": 40, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1133 + 983 ], - "starting_column": 9, - "ending_column": 42 + "starting_column": 13, + "ending_column": 53 }, "type_specific_fields": { "parent": { "type": "function", - "name": "transferPaidOut", + "name": "splitDAO", "source_mapping": { - "start": 41997, - "length": 384, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 36148, + "length": 2849, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136 + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020 ], "starting_column": 5, "ending_column": 6 @@ -19439,9 +15089,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -19979,56 +15629,117 @@ "ending_column": 2 } }, - "signature": "transferPaidOut(address,address,uint256)" + "signature": "splitDAO(uint256,address)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "paidOut" + "variable_name": "proposals" } }, { "type": "node", - "name": "paidOut[_to] += transferPaidOut", + "name": "p.proposalPassed = true", "source_mapping": { - "start": 42322, - "length": 31, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 37638, + "length": 23, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1134 + 984 ], - "starting_column": 9, - "ending_column": 40 + "starting_column": 13, + "ending_column": 36 }, "type_specific_fields": { "parent": { "type": "function", - "name": "transferPaidOut", + "name": "splitDAO", "source_mapping": { - "start": 41997, - "length": 384, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 36148, + "length": 2849, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136 + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020 ], "starting_column": 5, "ending_column": 6 @@ -20040,9 +15751,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -20580,20 +16291,20 @@ "ending_column": 2 } }, - "signature": "transferPaidOut(address,address,uint256)" + "signature": "splitDAO(uint256,address)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "paidOut" + "variable_name": "proposals" } } ], - "description": "Reentrancy in DAO.transferWithoutReward(address,uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1091-1095):\n\tExternal calls:\n\t- ! getMyReward() (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1092)\n\t\t- (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account] (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1065)\n\t\t- reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069)\n\t\t- ! rewardAccount.payOut(_account,reward) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1070)\n\tState variables written after the call(s):\n\t- transfer(_to,_value) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1094)\n\t\t- balances[msg.sender] -= _amount (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#101)\n\t\t- balances[_to] += _amount (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#102)\n\tTokenInterface.balances (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#41) can be used in cross function reentrancies:\n\t- Token.balanceOf(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#95-97)\n\t- TokenCreation.createTokenProxy(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#299-316)\n\t- TokenCreation.refund() (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#318-332)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- Token.transfer(address,uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#99-108)\n\t- Token.transferFrom(address,address,uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#110-128)\n\t- DAO.vote(uint256,bool) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- transfer(_to,_value) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1094)\n\t\t- paidOut[_from] -= transferPaidOut (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1133)\n\t\t- paidOut[_to] += transferPaidOut (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1134)\n\tDAOInterface.paidOut (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies:\n\t- DAOInterface.paidOut (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#426)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.transferPaidOut(address,address,uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136)\n\t- DAO.withdrawRewardFor(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n", - "markdown": "Reentrancy in [DAO.transferWithoutReward(address,uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1091-L1095):\n\tExternal calls:\n\t- [! getMyReward()](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1092)\n\t\t- [(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1065)\n\t\t- [reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1068-L1069)\n\t\t- [! rewardAccount.payOut(_account,reward)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1070)\n\tState variables written after the call(s):\n\t- [transfer(_to,_value)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1094)\n\t\t- [balances[msg.sender] -= _amount](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L101)\n\t\t- [balances[_to] += _amount](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L102)\n\t[TokenInterface.balances](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L41) can be used in cross function reentrancies:\n\t- [Token.balanceOf(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L95-L97)\n\t- [TokenCreation.createTokenProxy(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L299-L316)\n\t- [TokenCreation.refund()](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L318-L332)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [Token.transfer(address,uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L99-L108)\n\t- [Token.transferFrom(address,address,uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L110-L128)\n\t- [DAO.vote(uint256,bool)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [transfer(_to,_value)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1094)\n\t\t- [paidOut[_from] -= transferPaidOut](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1133)\n\t\t- [paidOut[_to] += transferPaidOut](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1134)\n\t[DAOInterface.paidOut](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L426) can be used in cross function reentrancies:\n\t- [DAOInterface.paidOut](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L426)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.transferPaidOut(address,address,uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1124-L1136)\n\t- [DAO.withdrawRewardFor(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n", - "first_markdown_element": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1091-L1095", - "id": "ad6f23948098980472bb7aff30e5fff31c6b90fe570d3f9fa5aa33faaddf32e3", + "description": "Reentrancy in DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020):\n\tExternal calls:\n\t- p.splitData[0].newDAO = createNewDAO(_newCurator) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#974)\n\t\t- daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1196)\n\tState variables written after the call(s):\n\t- p.splitData[0].splitBalance = actualBalance() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#981)\n\tDAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- p.splitData[0].rewardToken = rewardToken[address(this)] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#982)\n\tDAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- p.splitData[0].totalSupply = totalSupply (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#983)\n\tDAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- p.proposalPassed = true (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#984)\n\tDAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n", + "markdown": "Reentrancy in [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020):\n\tExternal calls:\n\t- [p.splitData[0].newDAO = createNewDAO(_newCurator)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L974)\n\t\t- [daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1196)\n\tState variables written after the call(s):\n\t- [p.splitData[0].splitBalance = actualBalance()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L981)\n\t[DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [p.splitData[0].rewardToken = rewardToken[address(this)]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L982)\n\t[DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [p.splitData[0].totalSupply = totalSupply](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L983)\n\t[DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [p.proposalPassed = true](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L984)\n\t[DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020", + "id": "d5c4fd83d69b85c498cf950e0fcb501bdd4b8860f67cef98ada5bfcf180ad881", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium" @@ -20602,89 +16313,25 @@ "elements": [ { "type": "function", - "name": "splitDAO", + "name": "transferFromWithoutReward", "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 41743, + "length": 247, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121 ], "starting_column": 5, "ending_column": 6 @@ -20696,9 +16343,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -21232,115 +16879,1248 @@ 1222, 1223 ], - "starting_column": 1, - "ending_column": 2 + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "transferFromWithoutReward(address,address,uint256)" + } + }, + { + "type": "node", + "name": "! withdrawRewardFor(_from)", + "source_mapping": { + "start": 41890, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1118 + ], + "starting_column": 13, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "transferFromWithoutReward", + "source_mapping": { + "start": 41743, + "length": 247, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "transferFromWithoutReward(address,address,uint256)" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls" + } + }, + { + "type": "node", + "name": "(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]", + "source_mapping": { + "start": 40461, + "length": 90, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1065 + ], + "starting_column": 13, + "ending_column": 103 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawRewardFor", + "source_mapping": { + "start": 40361, + "length": 473, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawRewardFor(address)" } - }, - "signature": "splitDAO(uint256,address)" + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "p.splitData[0].newDAO = createNewDAO(_newCurator)", + "name": "reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]", "source_mapping": { - "start": 37159, - "length": 49, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 40581, + "length": 116, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 974 + 1068, + 1069 ], - "starting_column": 13, - "ending_column": 62 + "starting_column": 9, + "ending_column": 103 }, "type_specific_fields": { "parent": { "type": "function", - "name": "splitDAO", + "name": "withdrawRewardFor", "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 40361, + "length": 473, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074 ], "starting_column": 5, "ending_column": 6 @@ -21352,9 +18132,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -21892,46 +18672,53 @@ "ending_column": 2 } }, - "signature": "splitDAO(uint256,address)" + "signature": "withdrawRewardFor(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod)", + "name": "! rewardAccount.payOut(_account,reward)", "source_mapping": { - "start": 44544, - "length": 74, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 40711, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1196 + 1070 ], - "starting_column": 9, - "ending_column": 83 + "starting_column": 13, + "ending_column": 52 }, "type_specific_fields": { "parent": { "type": "function", - "name": "createNewDAO", + "name": "withdrawRewardFor", "source_mapping": { - "start": 44427, - "length": 198, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 40361, + "length": 473, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1194, - 1195, - 1196, - 1197 + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074 ], "starting_column": 5, "ending_column": 6 @@ -21943,9 +18730,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -22483,7 +19270,7 @@ "ending_column": 2 } }, - "signature": "createNewDAO(address)" + "signature": "withdrawRewardFor(address)" } } }, @@ -22493,106 +19280,42 @@ }, { "type": "node", - "name": "p.splitData[0].splitBalance = actualBalance()", + "name": "transferFrom(_from,_to,_value)", "source_mapping": { - "start": 37456, - "length": 45, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 41944, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 981 + 1120 ], - "starting_column": 13, - "ending_column": 58 + "starting_column": 9, + "ending_column": 48 }, "type_specific_fields": { "parent": { "type": "function", - "name": "splitDAO", + "name": "transferFromWithoutReward", "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 41743, + "length": 247, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121 ], "starting_column": 5, "ending_column": 6 @@ -22604,9 +19327,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -23144,117 +19867,307 @@ "ending_column": 2 } }, - "signature": "splitDAO(uint256,address)" + "signature": "transferFromWithoutReward(address,address,uint256)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "balances" + } + }, + { + "type": "node", + "name": "balances[_to] += _amount", + "source_mapping": { + "start": 4393, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 120 + ], + "starting_column": 13, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "transferFrom", + "source_mapping": { + "start": 4127, + "length": 509, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Token", + "source_mapping": { + "start": 3440, + "length": 1550, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "transferFrom(address,address,uint256)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "proposals" + "variable_name": "balances" } }, { "type": "node", - "name": "p.splitData[0].rewardToken = rewardToken[address(this)]", + "name": "balances[_from] -= _amount", "source_mapping": { - "start": 37515, - "length": 55, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 4431, + "length": 26, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 982 + 121 ], "starting_column": 13, - "ending_column": 68 + "ending_column": 39 }, "type_specific_fields": { "parent": { "type": "function", - "name": "splitDAO", + "name": "transferFrom", "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 4127, + "length": 509, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Token", + "source_mapping": { + "start": 3440, + "length": 1550, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "transferFrom(address,address,uint256)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "balances" + } + }, + { + "type": "node", + "name": "transferFrom(_from,_to,_value)", + "source_mapping": { + "start": 41944, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1120 + ], + "starting_column": 9, + "ending_column": 48 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "transferFromWithoutReward", + "source_mapping": { + "start": 41743, + "length": 247, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121 ], "starting_column": 5, "ending_column": 6 @@ -23266,9 +20179,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -23806,117 +20719,56 @@ "ending_column": 2 } }, - "signature": "splitDAO(uint256,address)" + "signature": "transferFromWithoutReward(address,address,uint256)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "proposals" + "variable_name": "paidOut" } }, { "type": "node", - "name": "p.splitData[0].totalSupply = totalSupply", + "name": "paidOut[_from] -= transferPaidOut", "source_mapping": { - "start": 37584, - "length": 40, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 42279, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 983 - ], - "starting_column": 13, - "ending_column": 53 + 1133 + ], + "starting_column": 9, + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "splitDAO", + "name": "transferPaidOut", "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 41997, + "length": 384, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136 ], "starting_column": 5, "ending_column": 6 @@ -23928,9 +20780,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -24468,117 +21320,56 @@ "ending_column": 2 } }, - "signature": "splitDAO(uint256,address)" + "signature": "transferPaidOut(address,address,uint256)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "proposals" + "variable_name": "paidOut" } }, { "type": "node", - "name": "p.proposalPassed = true", + "name": "paidOut[_to] += transferPaidOut", "source_mapping": { - "start": 37638, - "length": 23, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 42322, + "length": 31, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 984 + 1134 ], - "starting_column": 13, - "ending_column": 36 + "starting_column": 9, + "ending_column": 40 }, "type_specific_fields": { "parent": { "type": "function", - "name": "splitDAO", + "name": "transferPaidOut", "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 41997, + "length": 384, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136 ], "starting_column": 5, "ending_column": 6 @@ -24590,9 +21381,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -25130,20 +21921,20 @@ "ending_column": 2 } }, - "signature": "splitDAO(uint256,address)" + "signature": "transferPaidOut(address,address,uint256)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "proposals" + "variable_name": "paidOut" } } ], - "description": "Reentrancy in DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020):\n\tExternal calls:\n\t- p.splitData[0].newDAO = createNewDAO(_newCurator) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#974)\n\t\t- daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1196)\n\tState variables written after the call(s):\n\t- p.splitData[0].splitBalance = actualBalance() (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#981)\n\tDAOInterface.proposals (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- p.splitData[0].rewardToken = rewardToken[address(this)] (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#982)\n\tDAOInterface.proposals (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- p.splitData[0].totalSupply = totalSupply (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#983)\n\tDAOInterface.proposals (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- p.proposalPassed = true (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#984)\n\tDAOInterface.proposals (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n", - "markdown": "Reentrancy in [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020):\n\tExternal calls:\n\t- [p.splitData[0].newDAO = createNewDAO(_newCurator)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L974)\n\t\t- [daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1196)\n\tState variables written after the call(s):\n\t- [p.splitData[0].splitBalance = actualBalance()](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L981)\n\t[DAOInterface.proposals](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [p.splitData[0].rewardToken = rewardToken[address(this)]](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L982)\n\t[DAOInterface.proposals](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [p.splitData[0].totalSupply = totalSupply](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L983)\n\t[DAOInterface.proposals](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [p.proposalPassed = true](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L984)\n\t[DAOInterface.proposals](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n", - "first_markdown_element": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020", - "id": "e68209eb3271625f1c21778f53fe675ae0daaa8c769d3a73d7cc49fc0b9624c0", + "description": "Reentrancy in DAO.transferFromWithoutReward(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1112-1121):\n\tExternal calls:\n\t- ! withdrawRewardFor(_from) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1118)\n\t\t- (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1065)\n\t\t- reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069)\n\t\t- ! rewardAccount.payOut(_account,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1070)\n\tState variables written after the call(s):\n\t- transferFrom(_from,_to,_value) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1120)\n\t\t- balances[_to] += _amount (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#120)\n\t\t- balances[_from] -= _amount (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#121)\n\tTokenInterface.balances (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#41) can be used in cross function reentrancies:\n\t- Token.balanceOf(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#95-97)\n\t- TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#299-316)\n\t- TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#318-332)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- Token.transfer(address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#99-108)\n\t- Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#110-128)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- transferFrom(_from,_to,_value) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1120)\n\t\t- paidOut[_from] -= transferPaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1133)\n\t\t- paidOut[_to] += transferPaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1134)\n\tDAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies:\n\t- DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.transferPaidOut(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136)\n\t- DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n", + "markdown": "Reentrancy in [DAO.transferFromWithoutReward(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1112-L1121):\n\tExternal calls:\n\t- [! withdrawRewardFor(_from)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1118)\n\t\t- [(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1065)\n\t\t- [reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1068-L1069)\n\t\t- [! rewardAccount.payOut(_account,reward)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1070)\n\tState variables written after the call(s):\n\t- [transferFrom(_from,_to,_value)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1120)\n\t\t- [balances[_to] += _amount](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L120)\n\t\t- [balances[_from] -= _amount](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L121)\n\t[TokenInterface.balances](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L41) can be used in cross function reentrancies:\n\t- [Token.balanceOf(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L95-L97)\n\t- [TokenCreation.createTokenProxy(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L299-L316)\n\t- [TokenCreation.refund()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L318-L332)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [Token.transfer(address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L99-L108)\n\t- [Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L110-L128)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [transferFrom(_from,_to,_value)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1120)\n\t\t- [paidOut[_from] -= transferPaidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1133)\n\t\t- [paidOut[_to] += transferPaidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1134)\n\t[DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426) can be used in cross function reentrancies:\n\t- [DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.transferPaidOut(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1124-L1136)\n\t- [DAO.withdrawRewardFor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1112-L1121", + "id": "e74ce16aec9de9f8c37762ef749b95f2cba0d27a1d386d41cf1ad708da41dc38", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium" @@ -25152,26 +21943,20 @@ "elements": [ { "type": "function", - "name": "withdrawRewardFor", + "name": "transferWithoutReward", "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 41191, + "length": 175, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 + 1091, + 1092, + 1093, + 1094, + 1095 ], "starting_column": 5, "ending_column": 6 @@ -25183,9 +21968,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -25568,204 +22353,3413 @@ 1071, 1072, 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "transferWithoutReward(address,uint256)" + } + }, + { + "type": "node", + "name": "! getMyReward()", + "source_mapping": { + "start": 41288, + "length": 14, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1092 + ], + "starting_column": 13, + "ending_column": 27 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "transferWithoutReward", + "source_mapping": { + "start": 41191, + "length": 175, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1091, + 1092, + 1093, + 1094, + 1095 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "transferWithoutReward(address,uint256)" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls" + } + }, + { + "type": "node", + "name": "(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]", + "source_mapping": { + "start": 40461, + "length": 90, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1065 + ], + "starting_column": 13, + "ending_column": 103 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawRewardFor", + "source_mapping": { + "start": 40361, + "length": 473, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawRewardFor(address)" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" + } + }, + { + "type": "node", + "name": "reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]", + "source_mapping": { + "start": 40581, + "length": 116, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1068, + 1069 + ], + "starting_column": 9, + "ending_column": 103 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawRewardFor", + "source_mapping": { + "start": 40361, + "length": 473, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawRewardFor(address)" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" + } + }, + { + "type": "node", + "name": "! rewardAccount.payOut(_account,reward)", + "source_mapping": { + "start": 40711, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1070 + ], + "starting_column": 13, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "withdrawRewardFor", + "source_mapping": { + "start": 40361, + "length": 473, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawRewardFor(address)" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" + } + }, + { + "type": "node", + "name": "transfer(_to,_value)", + "source_mapping": { + "start": 41331, + "length": 28, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1094 + ], + "starting_column": 9, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "transferWithoutReward", + "source_mapping": { + "start": 41191, + "length": 175, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 1091, + 1092, + 1093, + 1094, + 1095 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DAO", + "source_mapping": { + "start": 28296, + "length": 17108, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "transferWithoutReward(address,uint256)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "balances" + } + }, + { + "type": "node", + "name": "balances[msg.sender] -= _amount", + "source_mapping": { + "start": 3920, + "length": 31, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 101 + ], + "starting_column": 13, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "transfer", + "source_mapping": { + "start": 3765, + "length": 356, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Token", + "source_mapping": { + "start": 3440, + "length": 1550, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "transfer(address,uint256)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "balances" + } + }, + { + "type": "node", + "name": "balances[_to] += _amount", + "source_mapping": { + "start": 3965, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 102 + ], + "starting_column": 13, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "transfer", + "source_mapping": { + "start": 3765, + "length": 356, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108 ], - "starting_column": 1, - "ending_column": 2 + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Token", + "source_mapping": { + "start": 3440, + "length": 1550, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", + "is_dependency": false, + "lines": [ + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "transfer(address,uint256)" } - }, - "signature": "withdrawRewardFor(address)" + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "balances" } }, { "type": "node", - "name": "reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]", + "name": "transfer(_to,_value)", "source_mapping": { - "start": 40581, - "length": 116, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 41331, + "length": 28, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1068, - 1069 + 1094 ], "starting_column": 9, - "ending_column": 103 + "ending_column": 37 }, "type_specific_fields": { "parent": { "type": "function", - "name": "withdrawRewardFor", + "name": "transferWithoutReward", "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 41191, + "length": 175, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 + 1091, + 1092, + 1093, + 1094, + 1095 ], "starting_column": 5, "ending_column": 6 @@ -25777,9 +25771,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -26317,53 +26311,56 @@ "ending_column": 2 } }, - "signature": "withdrawRewardFor(address)" + "signature": "transferWithoutReward(address,uint256)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "variables_written", + "variable_name": "paidOut" } }, { "type": "node", - "name": "! rewardAccount.payOut(_account,reward)", + "name": "paidOut[_from] -= transferPaidOut", "source_mapping": { - "start": 40711, - "length": 39, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 42279, + "length": 33, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1070 + 1133 ], - "starting_column": 13, - "ending_column": 52 + "starting_column": 9, + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "withdrawRewardFor", + "name": "transferPaidOut", "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 41997, + "length": 384, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136 ], "starting_column": 5, "ending_column": 6 @@ -26375,9 +26372,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -26915,53 +26912,56 @@ "ending_column": 2 } }, - "signature": "withdrawRewardFor(address)" + "signature": "transferPaidOut(address,address,uint256)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "variables_written", + "variable_name": "paidOut" } }, { "type": "node", - "name": "paidOut[_account] += reward", + "name": "paidOut[_to] += transferPaidOut", "source_mapping": { - "start": 40779, - "length": 27, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 42322, + "length": 31, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1072 + 1134 ], "starting_column": 9, - "ending_column": 36 + "ending_column": 40 }, "type_specific_fields": { "parent": { "type": "function", - "name": "withdrawRewardFor", + "name": "transferPaidOut", "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "start": 41997, + "length": 384, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136 ], "starting_column": 5, "ending_column": 6 @@ -26973,9 +26973,9 @@ "source_mapping": { "start": 28296, "length": 17108, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", "is_dependency": false, "lines": [ 694, @@ -27513,7 +27513,7 @@ "ending_column": 2 } }, - "signature": "withdrawRewardFor(address)" + "signature": "transferPaidOut(address,address,uint256)" } } }, @@ -27523,10 +27523,10 @@ } } ], - "description": "Reentrancy in DAO.withdrawRewardFor(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074):\n\tExternal calls:\n\t- reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069)\n\t- ! rewardAccount.payOut(_account,reward) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1070)\n\tState variables written after the call(s):\n\t- paidOut[_account] += reward (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1072)\n\tDAOInterface.paidOut (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies:\n\t- DAOInterface.paidOut (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#426)\n\t- DAO.splitDAO(uint256,address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.transferPaidOut(address,address,uint256) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136)\n\t- DAO.withdrawRewardFor(address) (tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n", - "markdown": "Reentrancy in [DAO.withdrawRewardFor(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074):\n\tExternal calls:\n\t- [reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1068-L1069)\n\t- [! rewardAccount.payOut(_account,reward)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1070)\n\tState variables written after the call(s):\n\t- [paidOut[_account] += reward](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1072)\n\t[DAOInterface.paidOut](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L426) can be used in cross function reentrancies:\n\t- [DAOInterface.paidOut](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L426)\n\t- [DAO.splitDAO(uint256,address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.transferPaidOut(address,address,uint256)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1124-L1136)\n\t- [DAO.withdrawRewardFor(address)](tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n", - "first_markdown_element": "tests/detectors/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074", - "id": "f722fd06c30754e9f97e39e08629bbfc87c8791397463889c85944b9223026dc", + "description": "Reentrancy in DAO.transferWithoutReward(address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1091-1095):\n\tExternal calls:\n\t- ! getMyReward() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1092)\n\t\t- (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1065)\n\t\t- reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069)\n\t\t- ! rewardAccount.payOut(_account,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1070)\n\tState variables written after the call(s):\n\t- transfer(_to,_value) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1094)\n\t\t- balances[msg.sender] -= _amount (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#101)\n\t\t- balances[_to] += _amount (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#102)\n\tTokenInterface.balances (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#41) can be used in cross function reentrancies:\n\t- Token.balanceOf(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#95-97)\n\t- TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#299-316)\n\t- TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#318-332)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- Token.transfer(address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#99-108)\n\t- Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#110-128)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- transfer(_to,_value) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1094)\n\t\t- paidOut[_from] -= transferPaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1133)\n\t\t- paidOut[_to] += transferPaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1134)\n\tDAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies:\n\t- DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.transferPaidOut(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136)\n\t- DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n", + "markdown": "Reentrancy in [DAO.transferWithoutReward(address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1091-L1095):\n\tExternal calls:\n\t- [! getMyReward()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1092)\n\t\t- [(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1065)\n\t\t- [reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1068-L1069)\n\t\t- [! rewardAccount.payOut(_account,reward)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1070)\n\tState variables written after the call(s):\n\t- [transfer(_to,_value)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1094)\n\t\t- [balances[msg.sender] -= _amount](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L101)\n\t\t- [balances[_to] += _amount](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L102)\n\t[TokenInterface.balances](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L41) can be used in cross function reentrancies:\n\t- [Token.balanceOf(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L95-L97)\n\t- [TokenCreation.createTokenProxy(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L299-L316)\n\t- [TokenCreation.refund()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L318-L332)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [Token.transfer(address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L99-L108)\n\t- [Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L110-L128)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [transfer(_to,_value)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1094)\n\t\t- [paidOut[_from] -= transferPaidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1133)\n\t\t- [paidOut[_to] += transferPaidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1134)\n\t[DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426) can be used in cross function reentrancies:\n\t- [DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.transferPaidOut(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1124-L1136)\n\t- [DAO.withdrawRewardFor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1091-L1095", + "id": "fe6ba50f9fe5accbf51b8c33af2714aa9b9fa83b40d676c814d9a1ac19978352", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol similarity index 100% rename from tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol diff --git a/tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol.0.4.25.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol.0.4.25.ReentrancyReadBeforeWritten.json similarity index 78% rename from tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol.0.4.25.ReentrancyReadBeforeWritten.json rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol.0.4.25.ReentrancyReadBeforeWritten.json index 56e1888f9..6e78e3971 100644 --- a/tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol.0.4.25.ReentrancyReadBeforeWritten.json +++ b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol.0.4.25.ReentrancyReadBeforeWritten.json @@ -4,21 +4,22 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 485, - "length": 158, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "start": 326, + "length": 153, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28, - 29 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -30,9 +31,9 @@ "source_mapping": { "start": 28, "length": 776, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -77,43 +78,44 @@ "ending_column": 2 } }, - "signature": "bad1(address)" + "signature": "bad0()" } }, { "type": "node", - "name": "success = msg.sender.call()", + "name": "! (msg.sender.call())", "source_mapping": { - "start": 560, - "length": 34, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "start": 391, + "length": 20, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ - 26 + 18 ], - "starting_column": 9, - "ending_column": 43 + "starting_column": 13, + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 485, - "length": 158, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "start": 326, + "length": 153, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28, - 29 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -125,9 +127,9 @@ "source_mapping": { "start": 28, "length": 776, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -172,7 +174,7 @@ "ending_column": 2 } }, - "signature": "bad1(address)" + "signature": "bad0()" } } }, @@ -182,38 +184,39 @@ }, { "type": "node", - "name": "bad0()", + "name": "notCalled = false", "source_mapping": { - "start": 630, - "length": 6, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "start": 455, + "length": 17, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ - 28 + 21 ], "starting_column": 9, - "ending_column": 15 + "ending_column": 26 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 485, - "length": 158, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "start": 326, + "length": 153, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28, - 29 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -225,9 +228,9 @@ "source_mapping": { "start": 28, "length": 776, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -272,49 +275,138 @@ "ending_column": 2 } }, - "signature": "bad1(address)" + "signature": "bad0()" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "variables_written", + "variable_name": "notCalled" } - }, + } + ], + "description": "Reentrancy in ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#16-22):\n\tExternal calls:\n\t- ! (msg.sender.call()) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#21)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#16-22)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#24-29)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#31-37)\n", + "markdown": "Reentrancy in [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L16-L22):\n\tExternal calls:\n\t- [! (msg.sender.call())](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L21)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L16-L22)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L24-L29)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L31-L37)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L16-L22", + "id": "933549b102ad856713f3d95a954fc77ec57f7ccf0f4d9de708f391cf094a8d65", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ { - "type": "node", - "name": "! (msg.sender.call())", + "type": "function", + "name": "bad1", "source_mapping": { - "start": 391, - "length": 20, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "start": 485, + "length": 158, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ - 18 + 24, + 25, + 26, + 27, + 28, + 29 ], - "starting_column": 13, - "ending_column": 33 + "starting_column": 5, + "ending_column": 6 }, "type_specific_fields": { "parent": { - "type": "function", - "name": "bad0", + "type": "contract", + "name": "ReentrancyWrite", "source_mapping": { - "start": 326, - "length": 153, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "start": 28, + "length": 776, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, 16, 17, 18, 19, 20, 21, - 22 + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad1(address)" + } + }, + { + "type": "node", + "name": "success = msg.sender.call()", + "source_mapping": { + "start": 560, + "length": 34, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "is_dependency": false, + "lines": [ + 26 + ], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 485, + "length": 158, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "is_dependency": false, + "lines": [ + 24, + 25, + 26, + 27, + 28, + 29 ], "starting_column": 5, "ending_column": 6 @@ -326,9 +418,9 @@ "source_mapping": { "start": 28, "length": 776, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -373,12 +465,12 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad1(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { @@ -387,9 +479,9 @@ "source_mapping": { "start": 630, "length": 6, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ 28 @@ -404,9 +496,9 @@ "source_mapping": { "start": 485, "length": 158, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ 24, @@ -426,9 +518,9 @@ "source_mapping": { "start": 28, "length": 776, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -478,25 +570,24 @@ } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "notCalled = false", + "name": "! (msg.sender.call())", "source_mapping": { - "start": 455, - "length": 17, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "start": 391, + "length": 20, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ - 21 + 18 ], - "starting_column": 9, - "ending_column": 26 + "starting_column": 13, + "ending_column": 33 }, "type_specific_fields": { "parent": { @@ -505,9 +596,9 @@ "source_mapping": { "start": 326, "length": 153, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ 16, @@ -528,9 +619,9 @@ "source_mapping": { "start": 28, "length": 776, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -580,135 +671,43 @@ } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" + "underlying_type": "external_calls_sending_eth" } - } - ], - "description": "Reentrancy in ReentrancyWrite.bad1(address) (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#24-29):\n\tExternal calls:\n\t- success = msg.sender.call() (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#26)\n\t- bad0() (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#28)\n\t\t- ! (msg.sender.call()) (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- bad0() (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#28)\n\t\t- notCalled = false (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#21)\n\tReentrancyWrite.notCalled (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#16-22)\n\t- ReentrancyWrite.bad1(address) (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#24-29)\n\t- ReentrancyWrite.constructor(address) (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#31-37)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad1(address)](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L24-L29):\n\tExternal calls:\n\t- [success = msg.sender.call()](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L26)\n\t- [bad0()](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L28)\n\t\t- [! (msg.sender.call())](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [bad0()](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L28)\n\t\t- [notCalled = false](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L21)\n\t[ReentrancyWrite.notCalled](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L16-L22)\n\t- [ReentrancyWrite.bad1(address)](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L24-L29)\n\t- [ReentrancyWrite.constructor(address)](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L31-L37)\n", - "first_markdown_element": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L24-L29", - "id": "3abbc9e8f73096dd53d7a40513439b00f2bcfb9c594446c25eb8f0845a83f634", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ + }, { - "type": "function", - "name": "bad0", + "type": "node", + "name": "bad0()", "source_mapping": { - "start": 326, - "length": 153, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "start": 630, + "length": 6, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 28 ], - "starting_column": 5, - "ending_column": 6 + "starting_column": 9, + "ending_column": 15 }, "type_specific_fields": { "parent": { - "type": "contract", - "name": "ReentrancyWrite", + "type": "function", + "name": "bad1", "source_mapping": { - "start": 28, - "length": 776, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "start": 485, + "length": 158, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, 24, 25, 26, 27, 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "! (msg.sender.call())", - "source_mapping": { - "start": 391, - "length": 20, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 13, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 326, - "length": 153, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 + 29 ], "starting_column": 5, "ending_column": 6 @@ -720,9 +719,9 @@ "source_mapping": { "start": 28, "length": 776, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -767,12 +766,13 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad1(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "variables_written", + "variable_name": "notCalled" } }, { @@ -781,9 +781,9 @@ "source_mapping": { "start": 455, "length": 17, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ 21 @@ -798,9 +798,9 @@ "source_mapping": { "start": 326, "length": 153, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ 16, @@ -821,9 +821,9 @@ "source_mapping": { "start": 28, "length": 776, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -878,10 +878,10 @@ } } ], - "description": "Reentrancy in ReentrancyWrite.bad0() (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#16-22):\n\tExternal calls:\n\t- ! (msg.sender.call()) (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- notCalled = false (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#21)\n\tReentrancyWrite.notCalled (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#16-22)\n\t- ReentrancyWrite.bad1(address) (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#24-29)\n\t- ReentrancyWrite.constructor(address) (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#31-37)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad0()](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L16-L22):\n\tExternal calls:\n\t- [! (msg.sender.call())](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [notCalled = false](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L21)\n\t[ReentrancyWrite.notCalled](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L16-L22)\n\t- [ReentrancyWrite.bad1(address)](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L24-L29)\n\t- [ReentrancyWrite.constructor(address)](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L31-L37)\n", - "first_markdown_element": "tests/detectors/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L16-L22", - "id": "849ca5d32a80a76091f9049ebde3e9267a1c1bc22fd11197246e748b56a31f3b", + "description": "Reentrancy in ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#24-29):\n\tExternal calls:\n\t- success = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#26)\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#28)\n\t\t- ! (msg.sender.call()) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#28)\n\t\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#21)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#16-22)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#24-29)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#31-37)\n", + "markdown": "Reentrancy in [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L24-L29):\n\tExternal calls:\n\t- [success = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L26)\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L28)\n\t\t- [! (msg.sender.call())](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L28)\n\t\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L21)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L16-L22)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L24-L29)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L31-L37)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L24-L29", + "id": "ac39ee6d5de5be925fc4f4038716ee18f762da9548d34786a3b925a9dcd6dbd3", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol similarity index 100% rename from tests/detectors/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol diff --git a/tests/detectors/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol.0.5.16.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol.0.5.16.ReentrancyReadBeforeWritten.json similarity index 100% rename from tests/detectors/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol.0.5.16.ReentrancyReadBeforeWritten.json rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol.0.5.16.ReentrancyReadBeforeWritten.json diff --git a/tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol similarity index 100% rename from tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol diff --git a/tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol.0.5.16.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol.0.5.16.ReentrancyReadBeforeWritten.json similarity index 78% rename from tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol.0.5.16.ReentrancyReadBeforeWritten.json rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol.0.5.16.ReentrancyReadBeforeWritten.json index d22a8dc15..404362007 100644 --- a/tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol.0.5.16.ReentrancyReadBeforeWritten.json +++ b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol.0.5.16.ReentrancyReadBeforeWritten.json @@ -4,21 +4,23 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 530, - "length": 161, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "start": 336, + "length": 188, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27, - 28, - 29, - 30 + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 ], "starting_column": 5, "ending_column": 6 @@ -30,9 +32,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -79,21 +81,21 @@ "ending_column": 2 } }, - "signature": "bad1(address)" + "signature": "bad0()" } }, { "type": "node", "name": "(success) = msg.sender.call()", "source_mapping": { - "start": 605, + "start": 397, "length": 37, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ - 27 + 18 ], "starting_column": 9, "ending_column": 46 @@ -101,21 +103,23 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 530, - "length": 161, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "start": 336, + "length": 188, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27, - 28, - 29, - 30 + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 ], "starting_column": 5, "ending_column": 6 @@ -127,9 +131,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -176,7 +180,7 @@ "ending_column": 2 } }, - "signature": "bad1(address)" + "signature": "bad0()" } } }, @@ -186,38 +190,40 @@ }, { "type": "node", - "name": "bad0()", + "name": "notCalled = false", "source_mapping": { - "start": 678, - "length": 6, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "start": 500, + "length": 17, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ - 29 + 22 ], "starting_column": 9, - "ending_column": 15 + "ending_column": 26 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 530, - "length": 161, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "start": 336, + "length": 188, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27, - 28, - 29, - 30 + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 ], "starting_column": 5, "ending_column": 6 @@ -229,9 +235,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -278,42 +284,72 @@ "ending_column": 2 } }, - "signature": "bad1(address)" + "signature": "bad0()" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "variables_written", + "variable_name": "notCalled" } - }, + } + ], + "description": "Reentrancy in ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#16-23):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#22)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#16-23)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#25-30)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#32-39)\n", + "markdown": "Reentrancy in [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L16-L23):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L22)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L16-L23)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L25-L30)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L32-L39)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L16-L23", + "id": "41ceea104e666924bd8048ba89d761acca8408a3b82d77831baa2a6d0a4130f0", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ { - "type": "node", - "name": "(success) = msg.sender.call()", + "type": "function", + "name": "bad1", "source_mapping": { - "start": 397, - "length": 37, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "start": 530, + "length": 161, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ - 18 + 25, + 26, + 27, + 28, + 29, + 30 ], - "starting_column": 9, - "ending_column": 46 + "starting_column": 5, + "ending_column": 6 }, "type_specific_fields": { "parent": { - "type": "function", - "name": "bad0", + "type": "contract", + "name": "ReentrancyWrite", "source_mapping": { - "start": 336, - "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "start": 28, + "length": 859, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, 16, 17, 18, @@ -321,7 +357,67 @@ 20, 21, 22, - 23 + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad1(address)" + } + }, + { + "type": "node", + "name": "(success) = msg.sender.call()", + "source_mapping": { + "start": 605, + "length": 37, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "is_dependency": false, + "lines": [ + 27 + ], + "starting_column": 9, + "ending_column": 46 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 530, + "length": 161, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "is_dependency": false, + "lines": [ + 25, + 26, + 27, + 28, + 29, + 30 ], "starting_column": 5, "ending_column": 6 @@ -333,9 +429,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -382,12 +478,12 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad1(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { @@ -396,9 +492,9 @@ "source_mapping": { "start": 678, "length": 6, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ 29 @@ -413,9 +509,9 @@ "source_mapping": { "start": 530, "length": 161, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ 25, @@ -435,9 +531,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -489,25 +585,24 @@ } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "notCalled = false", + "name": "(success) = msg.sender.call()", "source_mapping": { - "start": 500, - "length": 17, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "start": 397, + "length": 37, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ - 22 + 18 ], "starting_column": 9, - "ending_column": 26 + "ending_column": 46 }, "type_specific_fields": { "parent": { @@ -516,9 +611,9 @@ "source_mapping": { "start": 336, "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ 16, @@ -540,9 +635,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -594,139 +689,43 @@ } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" + "underlying_type": "external_calls_sending_eth" } - } - ], - "description": "Reentrancy in ReentrancyWrite.bad1(address) (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#25-30):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#27)\n\t- bad0() (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#29)\n\t\t- (success) = msg.sender.call() (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- bad0() (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#29)\n\t\t- notCalled = false (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#22)\n\tReentrancyWrite.notCalled (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#16-23)\n\t- ReentrancyWrite.bad1(address) (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#25-30)\n\t- ReentrancyWrite.constructor(address) (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#32-39)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad1(address)](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L25-L30):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L27)\n\t- [bad0()](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L29)\n\t\t- [(success) = msg.sender.call()](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [bad0()](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L29)\n\t\t- [notCalled = false](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L22)\n\t[ReentrancyWrite.notCalled](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L16-L23)\n\t- [ReentrancyWrite.bad1(address)](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L25-L30)\n\t- [ReentrancyWrite.constructor(address)](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L32-L39)\n", - "first_markdown_element": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L25-L30", - "id": "80cbbc2ca9b1ec618f677d49ad8c55c3e7b458a8f8f2d5083e5388dabf526d6f", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ + }, { - "type": "function", - "name": "bad0", + "type": "node", + "name": "bad0()", "source_mapping": { - "start": 336, - "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "start": 678, + "length": 6, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23 + 29 ], - "starting_column": 5, - "ending_column": 6 + "starting_column": 9, + "ending_column": 15 }, "type_specific_fields": { "parent": { - "type": "contract", - "name": "ReentrancyWrite", + "type": "function", + "name": "bad1", "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "start": 530, + "length": 161, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, 25, 26, 27, 28, 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 397, - "length": 37, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 336, - "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23 + 30 ], "starting_column": 5, "ending_column": 6 @@ -738,9 +737,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -787,12 +786,13 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad1(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "variables_written", + "variable_name": "notCalled" } }, { @@ -801,9 +801,9 @@ "source_mapping": { "start": 500, "length": 17, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ 22 @@ -818,9 +818,9 @@ "source_mapping": { "start": 336, "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ 16, @@ -842,9 +842,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -901,10 +901,10 @@ } } ], - "description": "Reentrancy in ReentrancyWrite.bad0() (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#16-23):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- notCalled = false (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#22)\n\tReentrancyWrite.notCalled (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#16-23)\n\t- ReentrancyWrite.bad1(address) (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#25-30)\n\t- ReentrancyWrite.constructor(address) (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#32-39)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad0()](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L16-L23):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [notCalled = false](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L22)\n\t[ReentrancyWrite.notCalled](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L16-L23)\n\t- [ReentrancyWrite.bad1(address)](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L25-L30)\n\t- [ReentrancyWrite.constructor(address)](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L32-L39)\n", - "first_markdown_element": "tests/detectors/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L16-L23", - "id": "aec3401a9ebdcd0961e5a0f704379be83fc18e5c8ea5e98641b0ea1783184a3d", + "description": "Reentrancy in ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#25-30):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#27)\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#29)\n\t\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#29)\n\t\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#22)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#16-23)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#25-30)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#32-39)\n", + "markdown": "Reentrancy in [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L25-L30):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L27)\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L29)\n\t\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L29)\n\t\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L22)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L16-L23)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L25-L30)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L32-L39)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L25-L30", + "id": "bd0b8f5e977c52e5cb17a3fdac3796ef55f28259d65be4b970be40d3f0f7ad6f", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol similarity index 100% rename from tests/detectors/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol diff --git a/tests/detectors/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol.0.6.11.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol.0.6.11.ReentrancyReadBeforeWritten.json similarity index 100% rename from tests/detectors/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol.0.6.11.ReentrancyReadBeforeWritten.json rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol.0.6.11.ReentrancyReadBeforeWritten.json diff --git a/tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol similarity index 100% rename from tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol diff --git a/tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol.0.6.11.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol.0.6.11.ReentrancyReadBeforeWritten.json similarity index 78% rename from tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol.0.6.11.ReentrancyReadBeforeWritten.json rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol.0.6.11.ReentrancyReadBeforeWritten.json index b414073d1..9615749d6 100644 --- a/tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol.0.6.11.ReentrancyReadBeforeWritten.json +++ b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol.0.6.11.ReentrancyReadBeforeWritten.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 336, "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 16, @@ -32,9 +32,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -90,9 +90,9 @@ "source_mapping": { "start": 397, "length": 37, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 18 @@ -107,9 +107,9 @@ "source_mapping": { "start": 336, "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 16, @@ -131,9 +131,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -194,9 +194,9 @@ "source_mapping": { "start": 500, "length": 17, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 22 @@ -211,9 +211,9 @@ "source_mapping": { "start": 336, "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 16, @@ -235,9 +235,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -294,10 +294,10 @@ } } ], - "description": "Reentrancy in ReentrancyWrite.bad0() (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#16-23):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- notCalled = false (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#22)\n\tReentrancyWrite.notCalled (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#16-23)\n\t- ReentrancyWrite.bad1(address) (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#25-30)\n\t- ReentrancyWrite.constructor(address) (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#32-39)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad0()](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L16-L23):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [notCalled = false](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L22)\n\t[ReentrancyWrite.notCalled](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L16-L23)\n\t- [ReentrancyWrite.bad1(address)](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L25-L30)\n\t- [ReentrancyWrite.constructor(address)](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L32-L39)\n", - "first_markdown_element": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L16-L23", - "id": "92d6df62568c8094a9c5cd5c7e4c7162054281244d3d3a1d4efe7df14d18a35a", + "description": "Reentrancy in ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#16-23):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#22)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#16-23)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#25-30)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#32-39)\n", + "markdown": "Reentrancy in [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L16-L23):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L22)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L16-L23)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L25-L30)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L32-L39)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L16-L23", + "id": "aa356923ac753b7b9c7a5225d800da7f8d0c9cd9648155ab65a841ef2ea03cee", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium" @@ -310,9 +310,9 @@ "source_mapping": { "start": 530, "length": 161, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 25, @@ -332,9 +332,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -390,9 +390,9 @@ "source_mapping": { "start": 605, "length": 37, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 27 @@ -407,9 +407,9 @@ "source_mapping": { "start": 530, "length": 161, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 25, @@ -429,9 +429,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -492,9 +492,9 @@ "source_mapping": { "start": 678, "length": 6, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 29 @@ -509,9 +509,9 @@ "source_mapping": { "start": 530, "length": 161, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 25, @@ -531,9 +531,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -594,9 +594,9 @@ "source_mapping": { "start": 397, "length": 37, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 18 @@ -611,9 +611,9 @@ "source_mapping": { "start": 336, "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 16, @@ -635,9 +635,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -698,9 +698,9 @@ "source_mapping": { "start": 678, "length": 6, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 29 @@ -715,9 +715,9 @@ "source_mapping": { "start": 530, "length": 161, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 25, @@ -737,9 +737,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -801,9 +801,9 @@ "source_mapping": { "start": 500, "length": 17, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 22 @@ -818,9 +818,9 @@ "source_mapping": { "start": 336, "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 16, @@ -842,9 +842,9 @@ "source_mapping": { "start": 28, "length": 859, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", "is_dependency": false, "lines": [ 3, @@ -901,10 +901,10 @@ } } ], - "description": "Reentrancy in ReentrancyWrite.bad1(address) (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#25-30):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#27)\n\t- bad0() (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#29)\n\t\t- (success) = msg.sender.call() (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- bad0() (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#29)\n\t\t- notCalled = false (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#22)\n\tReentrancyWrite.notCalled (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#16-23)\n\t- ReentrancyWrite.bad1(address) (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#25-30)\n\t- ReentrancyWrite.constructor(address) (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#32-39)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad1(address)](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L25-L30):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L27)\n\t- [bad0()](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L29)\n\t\t- [(success) = msg.sender.call()](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [bad0()](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L29)\n\t\t- [notCalled = false](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L22)\n\t[ReentrancyWrite.notCalled](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L16-L23)\n\t- [ReentrancyWrite.bad1(address)](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L25-L30)\n\t- [ReentrancyWrite.constructor(address)](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L32-L39)\n", - "first_markdown_element": "tests/detectors/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L25-L30", - "id": "b0372b9d2879e62eb13c185a89ae1e80653ef3339cb5521630a9717e1592100e", + "description": "Reentrancy in ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#25-30):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#27)\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#29)\n\t\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#29)\n\t\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#22)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#16-23)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#25-30)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#32-39)\n", + "markdown": "Reentrancy in [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L25-L30):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L27)\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L29)\n\t\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L29)\n\t\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L22)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L16-L23)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L25-L30)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L32-L39)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L25-L30", + "id": "aef958ec49549d90b692c58d3d6a19ef5c4bcc3ff6ceed7dfd7d01210601d847", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol similarity index 100% rename from tests/detectors/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol diff --git a/tests/detectors/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol.0.7.6.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol.0.7.6.ReentrancyReadBeforeWritten.json similarity index 100% rename from tests/detectors/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol.0.7.6.ReentrancyReadBeforeWritten.json rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol.0.7.6.ReentrancyReadBeforeWritten.json diff --git a/tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol similarity index 100% rename from tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol diff --git a/tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol.0.7.6.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol.0.7.6.ReentrancyReadBeforeWritten.json similarity index 78% rename from tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol.0.7.6.ReentrancyReadBeforeWritten.json rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol.0.7.6.ReentrancyReadBeforeWritten.json index 7c01c5ce0..3105cb9a1 100644 --- a/tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol.0.7.6.ReentrancyReadBeforeWritten.json +++ b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol.0.7.6.ReentrancyReadBeforeWritten.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 383, "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 20, @@ -32,9 +32,9 @@ "source_mapping": { "start": 82, "length": 852, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 7, @@ -90,9 +90,9 @@ "source_mapping": { "start": 444, "length": 37, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 22 @@ -107,9 +107,9 @@ "source_mapping": { "start": 383, "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 20, @@ -131,9 +131,9 @@ "source_mapping": { "start": 82, "length": 852, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 7, @@ -194,9 +194,9 @@ "source_mapping": { "start": 547, "length": 17, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 26 @@ -211,9 +211,9 @@ "source_mapping": { "start": 383, "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 20, @@ -235,9 +235,9 @@ "source_mapping": { "start": 82, "length": 852, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 7, @@ -294,10 +294,10 @@ } } ], - "description": "Reentrancy in ReentrancyWrite.bad0() (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#20-27):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#22)\n\tState variables written after the call(s):\n\t- notCalled = false (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#26)\n\tReentrancyWrite.notCalled (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#8) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#20-27)\n\t- ReentrancyWrite.bad1(address) (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#29-34)\n\t- ReentrancyWrite.constructor(address) (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#11-18)\n\t- ReentrancyWrite.good() (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#36-43)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad0()](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L20-L27):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L22)\n\tState variables written after the call(s):\n\t- [notCalled = false](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L26)\n\t[ReentrancyWrite.notCalled](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L8) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L20-L27)\n\t- [ReentrancyWrite.bad1(address)](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L29-L34)\n\t- [ReentrancyWrite.constructor(address)](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L11-L18)\n\t- [ReentrancyWrite.good()](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L36-L43)\n", - "first_markdown_element": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L20-L27", - "id": "24a6dbb0286f86f1dac424bdc447262dcbfda1a1c637c4c0f21885b82eb9af24", + "description": "Reentrancy in ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#20-27):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#22)\n\tState variables written after the call(s):\n\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#26)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#8) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#20-27)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#29-34)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#11-18)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#36-43)\n", + "markdown": "Reentrancy in [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L20-L27):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L22)\n\tState variables written after the call(s):\n\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L26)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L8) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L20-L27)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L29-L34)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L11-L18)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L36-L43)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L20-L27", + "id": "0c8d97025b73e61d9f897d2b4603c5ad3ca69bad370573776bc0a89982824b9d", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium" @@ -310,9 +310,9 @@ "source_mapping": { "start": 577, "length": 161, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 29, @@ -332,9 +332,9 @@ "source_mapping": { "start": 82, "length": 852, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 7, @@ -390,9 +390,9 @@ "source_mapping": { "start": 652, "length": 37, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 31 @@ -407,9 +407,9 @@ "source_mapping": { "start": 577, "length": 161, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 29, @@ -429,9 +429,9 @@ "source_mapping": { "start": 82, "length": 852, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 7, @@ -492,9 +492,9 @@ "source_mapping": { "start": 725, "length": 6, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 33 @@ -509,9 +509,9 @@ "source_mapping": { "start": 577, "length": 161, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 29, @@ -531,9 +531,9 @@ "source_mapping": { "start": 82, "length": 852, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 7, @@ -594,9 +594,9 @@ "source_mapping": { "start": 444, "length": 37, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 22 @@ -611,9 +611,9 @@ "source_mapping": { "start": 383, "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 20, @@ -635,9 +635,9 @@ "source_mapping": { "start": 82, "length": 852, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 7, @@ -698,9 +698,9 @@ "source_mapping": { "start": 725, "length": 6, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 33 @@ -715,9 +715,9 @@ "source_mapping": { "start": 577, "length": 161, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 29, @@ -737,9 +737,9 @@ "source_mapping": { "start": 82, "length": 852, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 7, @@ -801,9 +801,9 @@ "source_mapping": { "start": 547, "length": 17, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 26 @@ -818,9 +818,9 @@ "source_mapping": { "start": 383, "length": 188, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 20, @@ -842,9 +842,9 @@ "source_mapping": { "start": 82, "length": 852, - "filename_relative": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", "is_dependency": false, "lines": [ 7, @@ -901,10 +901,10 @@ } } ], - "description": "Reentrancy in ReentrancyWrite.bad1(address) (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#29-34):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#31)\n\t- bad0() (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#33)\n\t\t- (success) = msg.sender.call() (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#22)\n\tState variables written after the call(s):\n\t- bad0() (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#33)\n\t\t- notCalled = false (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#26)\n\tReentrancyWrite.notCalled (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#8) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#20-27)\n\t- ReentrancyWrite.bad1(address) (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#29-34)\n\t- ReentrancyWrite.constructor(address) (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#11-18)\n\t- ReentrancyWrite.good() (tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#36-43)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad1(address)](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L29-L34):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L31)\n\t- [bad0()](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L33)\n\t\t- [(success) = msg.sender.call()](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L22)\n\tState variables written after the call(s):\n\t- [bad0()](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L33)\n\t\t- [notCalled = false](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L26)\n\t[ReentrancyWrite.notCalled](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L8) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L20-L27)\n\t- [ReentrancyWrite.bad1(address)](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L29-L34)\n\t- [ReentrancyWrite.constructor(address)](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L11-L18)\n\t- [ReentrancyWrite.good()](tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L36-L43)\n", - "first_markdown_element": "tests/detectors/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L29-L34", - "id": "e8259d1bbe21b2c12ea23f8ed1c67b9a8f63a1828d3b91db1f7b78ddd43ef7d6", + "description": "Reentrancy in ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#29-34):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#31)\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#33)\n\t\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#22)\n\tState variables written after the call(s):\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#33)\n\t\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#26)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#8) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#20-27)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#29-34)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#11-18)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#36-43)\n", + "markdown": "Reentrancy in [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L29-L34):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L31)\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L33)\n\t\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L22)\n\tState variables written after the call(s):\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L33)\n\t\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L26)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L8) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L20-L27)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L29-L34)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L11-L18)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L36-L43)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L29-L34", + "id": "3eb741c75e4861743cc201d67e160aca27ccda58b8cb3bb6dc5e7df7511ca159", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/reentrancy-no-eth/0.8.2/comment.sol b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.8.2/comment.sol similarity index 100% rename from tests/detectors/reentrancy-no-eth/0.8.2/comment.sol rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.8.2/comment.sol diff --git a/tests/detectors/reentrancy-no-eth/0.8.2/comment.sol.0.8.2.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.8.2/comment.sol.0.8.2.ReentrancyReadBeforeWritten.json similarity index 100% rename from tests/detectors/reentrancy-no-eth/0.8.2/comment.sol.0.8.2.ReentrancyReadBeforeWritten.json rename to tests/e2e/detectors/test_data/reentrancy-no-eth/0.8.2/comment.sol.0.8.2.ReentrancyReadBeforeWritten.json diff --git a/tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol b/tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol similarity index 100% rename from tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol rename to tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol diff --git a/tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol.0.4.21.ReusedBaseConstructor.json b/tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol.0.4.21.ReusedBaseConstructor.json similarity index 59% rename from tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol.0.4.21.ReusedBaseConstructor.json rename to tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol.0.4.21.ReusedBaseConstructor.json index 973cb0b52..1e736582d 100644 --- a/tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol.0.4.21.ReusedBaseConstructor.json +++ b/tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol.0.4.21.ReusedBaseConstructor.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 295, "length": 77, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 26, @@ -29,9 +29,9 @@ "source_mapping": { "start": 176, "length": 42, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 15, @@ -48,9 +48,9 @@ "source_mapping": { "start": 155, "length": 65, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 14, @@ -72,9 +72,9 @@ "source_mapping": { "start": 295, "length": 77, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 26, @@ -93,9 +93,9 @@ "source_mapping": { "start": 222, "length": 71, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -109,9 +109,9 @@ } } ], - "description": "E (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) gives base constructor C.C(uint256) (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#15-17) arguments more than once in inheritance hierarchy:\n\t- From E (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) constructor definition\n\t- From D (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#20-24) constructor definition\n", - "markdown": "[E](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) gives base constructor [C.C(uint256)](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L15-L17) arguments more than once in inheritance hierarchy:\n\t- From [E](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) constructor definition\n\t- From [D](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L20-L24) constructor definition\n", - "first_markdown_element": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30", + "description": "E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) gives base constructor C.C(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#15-17) arguments more than once in inheritance hierarchy:\n\t- From E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) constructor definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#20-24) constructor definition\n", + "markdown": "[E](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) gives base constructor [C.C(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L15-L17) arguments more than once in inheritance hierarchy:\n\t- From [E](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) constructor definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L20-L24) constructor definition\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30", "id": "085dceba8f0b37580e72952eafe1368bf0d09f10c2f44c0b6ff53ad7e72f92b1", "check": "reused-constructor", "impact": "Medium", @@ -125,9 +125,9 @@ "source_mapping": { "start": 295, "length": 77, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 26, @@ -146,9 +146,9 @@ "source_mapping": { "start": 34, "length": 50, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 3, @@ -165,9 +165,9 @@ "source_mapping": { "start": 0, "length": 86, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 1, @@ -190,9 +190,9 @@ "source_mapping": { "start": 155, "length": 65, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 14, @@ -211,9 +211,9 @@ "source_mapping": { "start": 88, "length": 65, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 8, @@ -227,9 +227,9 @@ } } ], - "description": "E (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) gives base constructor A.A(uint256) (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[E](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) gives base constructor [A.A(uint256)](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30", + "description": "E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) gives base constructor A.A(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition\n", + "markdown": "[E](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) gives base constructor [A.A(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L8-L12) constructor definition\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30", "id": "14d6bffb3f1849cfebb7156cb797315fd01ac83911a1261650f702792f4db830", "check": "reused-constructor", "impact": "Medium", @@ -243,9 +243,9 @@ "source_mapping": { "start": 375, "length": 57, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 33, @@ -265,9 +265,9 @@ "source_mapping": { "start": 34, "length": 50, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 3, @@ -284,9 +284,9 @@ "source_mapping": { "start": 0, "length": 86, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 1, @@ -309,9 +309,9 @@ "source_mapping": { "start": 375, "length": 57, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 33, @@ -331,9 +331,9 @@ "source_mapping": { "start": 88, "length": 65, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 8, @@ -347,9 +347,9 @@ } } ], - "description": "F (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#33-38) gives base constructor A.A(uint256) (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From F (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#33-38) constructor definition\n\t- From B (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[F](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L33-L38) gives base constructor [A.A(uint256)](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [F](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L33-L38) constructor definition\n\t- From [B](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L33-L38", + "description": "F (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#33-38) gives base constructor A.A(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From F (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#33-38) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition\n", + "markdown": "[F](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L33-L38) gives base constructor [A.A(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [F](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L33-L38) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L8-L12) constructor definition\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L33-L38", "id": "71e08d0e5c44bbc2671e014018a6333bd92db7380a85732bf2d17aa5500f6434", "check": "reused-constructor", "impact": "Medium", @@ -363,9 +363,9 @@ "source_mapping": { "start": 222, "length": 71, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -384,9 +384,9 @@ "source_mapping": { "start": 34, "length": 50, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 3, @@ -403,9 +403,9 @@ "source_mapping": { "start": 0, "length": 86, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 1, @@ -428,9 +428,9 @@ "source_mapping": { "start": 155, "length": 65, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 14, @@ -449,9 +449,9 @@ "source_mapping": { "start": 88, "length": 65, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 8, @@ -465,9 +465,9 @@ } } ], - "description": "D (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#20-24) gives base constructor A.A(uint256) (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[D](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L20-L24) gives base constructor [A.A(uint256)](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L20-L24", + "description": "D (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#20-24) gives base constructor A.A(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition\n", + "markdown": "[D](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L20-L24) gives base constructor [A.A(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L8-L12) constructor definition\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L20-L24", "id": "7436d3215ee6260f9a4b2f4697fa242225ad3f10e30bfbd162679a5e3fa48f10", "check": "reused-constructor", "impact": "Medium", @@ -481,9 +481,9 @@ "source_mapping": { "start": 155, "length": 65, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 14, @@ -502,9 +502,9 @@ "source_mapping": { "start": 34, "length": 50, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 3, @@ -521,9 +521,9 @@ "source_mapping": { "start": 0, "length": 86, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 1, @@ -546,9 +546,9 @@ "source_mapping": { "start": 155, "length": 65, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 14, @@ -567,9 +567,9 @@ "source_mapping": { "start": 88, "length": 65, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 8, @@ -583,9 +583,9 @@ } } ], - "description": "C (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) gives base constructor A.A(uint256) (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[C](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18) gives base constructor [A.A(uint256)](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18", + "description": "C (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) gives base constructor A.A(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition\n", + "markdown": "[C](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18) gives base constructor [A.A(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L8-L12) constructor definition\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18", "id": "d2847fcb309e0ee45dfb303bf749123bbebee692a080ae6a718a76ef785ae8d2", "check": "reused-constructor", "impact": "Medium", @@ -599,9 +599,9 @@ "source_mapping": { "start": 295, "length": 77, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 26, @@ -620,9 +620,9 @@ "source_mapping": { "start": 109, "length": 42, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 9, @@ -639,9 +639,9 @@ "source_mapping": { "start": 88, "length": 65, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 8, @@ -663,9 +663,9 @@ "source_mapping": { "start": 295, "length": 77, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 26, @@ -684,9 +684,9 @@ "source_mapping": { "start": 222, "length": 71, - "filename_relative": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -700,9 +700,9 @@ } } ], - "description": "E (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) gives base constructor B.B(uint256) (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#9-11) arguments more than once in inheritance hierarchy:\n\t- From E (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) constructor definition\n\t- From D (tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#20-24) constructor definition\n", - "markdown": "[E](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) gives base constructor [B.B(uint256)](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L9-L11) arguments more than once in inheritance hierarchy:\n\t- From [E](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) constructor definition\n\t- From [D](tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L20-L24) constructor definition\n", - "first_markdown_element": "tests/detectors/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30", + "description": "E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) gives base constructor B.B(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#9-11) arguments more than once in inheritance hierarchy:\n\t- From E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) constructor definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#20-24) constructor definition\n", + "markdown": "[E](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) gives base constructor [B.B(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L9-L11) arguments more than once in inheritance hierarchy:\n\t- From [E](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) constructor definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L20-L24) constructor definition\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30", "id": "e79d62c434ba85788dd5087e4994bb136be6b9e8a55e8057b0e30c9b0436abdc", "check": "reused-constructor", "impact": "Medium", diff --git a/tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol b/tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol similarity index 100% rename from tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol rename to tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol diff --git a/tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol.0.4.25.ReusedBaseConstructor.json b/tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol.0.4.25.ReusedBaseConstructor.json similarity index 59% rename from tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol.0.4.25.ReusedBaseConstructor.json rename to tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol.0.4.25.ReusedBaseConstructor.json index c5c42e83a..0e7952479 100644 --- a/tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol.0.4.25.ReusedBaseConstructor.json +++ b/tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol.0.4.25.ReusedBaseConstructor.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 225, "length": 72, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -29,9 +29,9 @@ "source_mapping": { "start": 34, "length": 51, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 3, @@ -48,9 +48,9 @@ "source_mapping": { "start": 0, "length": 87, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 1, @@ -73,9 +73,9 @@ "source_mapping": { "start": 157, "length": 66, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 14, @@ -94,9 +94,9 @@ "source_mapping": { "start": 89, "length": 66, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 8, @@ -110,9 +110,9 @@ } } ], - "description": "D (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) gives base constructor A.constructor(uint256) (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[D](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) gives base constructor [A.constructor(uint256)](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24", + "description": "D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) gives base constructor A.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition\n", + "markdown": "[D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) gives base constructor [A.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L8-L12) constructor definition\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24", "id": "1f85bf19873eaee39a8f703b0c783aa86e34c91fad5556ee831eb7c6adcfdb77", "check": "reused-constructor", "impact": "Medium", @@ -126,9 +126,9 @@ "source_mapping": { "start": 157, "length": 66, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 14, @@ -147,9 +147,9 @@ "source_mapping": { "start": 34, "length": 51, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 3, @@ -166,9 +166,9 @@ "source_mapping": { "start": 0, "length": 87, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 1, @@ -191,9 +191,9 @@ "source_mapping": { "start": 157, "length": 66, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 14, @@ -212,9 +212,9 @@ "source_mapping": { "start": 89, "length": 66, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 8, @@ -228,9 +228,9 @@ } } ], - "description": "C (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) gives base constructor A.constructor(uint256) (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[C](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18) gives base constructor [A.constructor(uint256)](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18", + "description": "C (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) gives base constructor A.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition\n", + "markdown": "[C](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18) gives base constructor [A.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L8-L12) constructor definition\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18", "id": "2d9d2b1b6d2540f86fd909f9766e128da573e659f40a50835cc9adef3c4dbee8", "check": "reused-constructor", "impact": "Medium", @@ -244,9 +244,9 @@ "source_mapping": { "start": 299, "length": 78, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 26, @@ -265,9 +265,9 @@ "source_mapping": { "start": 178, "length": 43, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 15, @@ -284,9 +284,9 @@ "source_mapping": { "start": 157, "length": 66, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 14, @@ -308,9 +308,9 @@ "source_mapping": { "start": 299, "length": 78, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 26, @@ -329,9 +329,9 @@ "source_mapping": { "start": 225, "length": 72, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -350,9 +350,9 @@ "source_mapping": { "start": 225, "length": 72, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -366,9 +366,9 @@ } } ], - "description": "E (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) gives base constructor C.constructor(uint256) (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#15-17) arguments more than once in inheritance hierarchy:\n\t- From E (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) constructor definition\n\t- From D (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition\n", - "markdown": "[E](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) gives base constructor [C.constructor(uint256)](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L15-L17) arguments more than once in inheritance hierarchy:\n\t- From [E](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) constructor definition\n\t- From [D](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) constructor definition\n", - "first_markdown_element": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30", + "description": "E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) gives base constructor C.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#15-17) arguments more than once in inheritance hierarchy:\n\t- From E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) constructor definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition\n", + "markdown": "[E](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) gives base constructor [C.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L15-L17) arguments more than once in inheritance hierarchy:\n\t- From [E](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) constructor definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) constructor definition\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30", "id": "33b16377cf3026b60d644e79d92682e6e626d7ad6598387440c9b20fd8aa44fe", "check": "reused-constructor", "impact": "Medium", @@ -382,9 +382,9 @@ "source_mapping": { "start": 225, "length": 72, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -403,9 +403,9 @@ "source_mapping": { "start": 110, "length": 43, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 9, @@ -422,9 +422,9 @@ "source_mapping": { "start": 89, "length": 66, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 8, @@ -446,9 +446,9 @@ "source_mapping": { "start": 225, "length": 72, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -467,9 +467,9 @@ "source_mapping": { "start": 225, "length": 72, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -483,9 +483,9 @@ } } ], - "description": "D (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) gives base constructor B.constructor(uint256) (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#9-11) arguments more than once in inheritance hierarchy:\n\t- From D (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition\n", - "markdown": "[D](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) gives base constructor [B.constructor(uint256)](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L9-L11) arguments more than once in inheritance hierarchy:\n\t- From [D](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) constructor definition\n", - "first_markdown_element": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24", + "description": "D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) gives base constructor B.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#9-11) arguments more than once in inheritance hierarchy:\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition\n", + "markdown": "[D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) gives base constructor [B.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L9-L11) arguments more than once in inheritance hierarchy:\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) constructor definition\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24", "id": "5f3b188e7d6c737684f829c3fde96f739cd502b4aba8f3f6e3ceab7decffa618", "check": "reused-constructor", "impact": "Medium", @@ -499,9 +499,9 @@ "source_mapping": { "start": 225, "length": 72, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -520,9 +520,9 @@ "source_mapping": { "start": 178, "length": 43, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 15, @@ -539,9 +539,9 @@ "source_mapping": { "start": 157, "length": 66, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 14, @@ -563,9 +563,9 @@ "source_mapping": { "start": 225, "length": 72, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -584,9 +584,9 @@ "source_mapping": { "start": 225, "length": 72, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -600,9 +600,9 @@ } } ], - "description": "D (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) gives base constructor C.constructor(uint256) (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#15-17) arguments more than once in inheritance hierarchy:\n\t- From D (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition\n", - "markdown": "[D](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) gives base constructor [C.constructor(uint256)](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L15-L17) arguments more than once in inheritance hierarchy:\n\t- From [D](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) constructor definition\n", - "first_markdown_element": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24", + "description": "D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) gives base constructor C.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#15-17) arguments more than once in inheritance hierarchy:\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition\n", + "markdown": "[D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) gives base constructor [C.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L15-L17) arguments more than once in inheritance hierarchy:\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) constructor definition\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24", "id": "b579da8996b6a1a35169bcae74ad8126c68fb0a1819d3977cea3e0e295ff2d5c", "check": "reused-constructor", "impact": "Medium", @@ -616,9 +616,9 @@ "source_mapping": { "start": 380, "length": 58, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 33, @@ -638,9 +638,9 @@ "source_mapping": { "start": 34, "length": 51, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 3, @@ -657,9 +657,9 @@ "source_mapping": { "start": 0, "length": 87, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 1, @@ -682,9 +682,9 @@ "source_mapping": { "start": 380, "length": 58, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 33, @@ -704,9 +704,9 @@ "source_mapping": { "start": 89, "length": 66, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 8, @@ -720,9 +720,9 @@ } } ], - "description": "F (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#33-38) gives base constructor A.constructor(uint256) (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From F (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#33-38) constructor definition\n\t- From B (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[F](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L33-L38) gives base constructor [A.constructor(uint256)](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [F](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L33-L38) constructor definition\n\t- From [B](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L33-L38", + "description": "F (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#33-38) gives base constructor A.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From F (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#33-38) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition\n", + "markdown": "[F](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L33-L38) gives base constructor [A.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [F](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L33-L38) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L8-L12) constructor definition\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L33-L38", "id": "b74eb2b11af7a004b623d28b035228963f09aed588c95efed636021f426c5cdc", "check": "reused-constructor", "impact": "Medium", @@ -736,9 +736,9 @@ "source_mapping": { "start": 299, "length": 78, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 26, @@ -757,9 +757,9 @@ "source_mapping": { "start": 110, "length": 43, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 9, @@ -776,9 +776,9 @@ "source_mapping": { "start": 89, "length": 66, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 8, @@ -800,9 +800,9 @@ "source_mapping": { "start": 299, "length": 78, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 26, @@ -821,9 +821,9 @@ "source_mapping": { "start": 299, "length": 78, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 26, @@ -842,9 +842,9 @@ "source_mapping": { "start": 225, "length": 72, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -863,9 +863,9 @@ "source_mapping": { "start": 225, "length": 72, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -879,9 +879,9 @@ } } ], - "description": "E (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) gives base constructor B.constructor(uint256) (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#9-11) arguments more than once in inheritance hierarchy:\n\t- From E (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) contract definition\n\t- From E (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) constructor definition\n\t- From D (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition\n", - "markdown": "[E](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) gives base constructor [B.constructor(uint256)](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L9-L11) arguments more than once in inheritance hierarchy:\n\t- From [E](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) contract definition\n\t- From [E](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) constructor definition\n\t- From [D](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) constructor definition\n", - "first_markdown_element": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30", + "description": "E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) gives base constructor B.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#9-11) arguments more than once in inheritance hierarchy:\n\t- From E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) contract definition\n\t- From E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) constructor definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition\n", + "markdown": "[E](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) gives base constructor [B.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L9-L11) arguments more than once in inheritance hierarchy:\n\t- From [E](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) contract definition\n\t- From [E](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) constructor definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) constructor definition\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30", "id": "ee7d44329ffb81dc06e2a2f1b3a166a5115287a1175b32cf828b57479afbc4ae", "check": "reused-constructor", "impact": "Medium", @@ -895,9 +895,9 @@ "source_mapping": { "start": 299, "length": 78, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 26, @@ -916,9 +916,9 @@ "source_mapping": { "start": 34, "length": 51, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 3, @@ -935,9 +935,9 @@ "source_mapping": { "start": 0, "length": 87, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 1, @@ -960,9 +960,9 @@ "source_mapping": { "start": 157, "length": 66, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 14, @@ -981,9 +981,9 @@ "source_mapping": { "start": 89, "length": 66, - "filename_relative": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", "is_dependency": false, "lines": [ 8, @@ -997,9 +997,9 @@ } } ], - "description": "E (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) gives base constructor A.constructor(uint256) (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[E](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) gives base constructor [A.constructor(uint256)](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/detectors/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30", + "description": "E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) gives base constructor A.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition\n", + "markdown": "[E](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) gives base constructor [A.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L8-L12) constructor definition\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30", "id": "f5c86955c15d44fe9471680d12d37843a15ba934cbb124786cadab0919ea68d1", "check": "reused-constructor", "impact": "Medium", diff --git a/tests/detectors/rtlo/0.4.25/right_to_left_override.sol b/tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol similarity index 100% rename from tests/detectors/rtlo/0.4.25/right_to_left_override.sol rename to tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol diff --git a/tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol.0.4.25.RightToLeftOverride.json b/tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol.0.4.25.RightToLeftOverride.json new file mode 100644 index 000000000..f274accdf --- /dev/null +++ b/tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol.0.4.25.RightToLeftOverride.json @@ -0,0 +1,32 @@ +[ + [ + { + "elements": [ + { + "type": "other", + "name": "rtlo-character", + "source_mapping": { + "start": 96, + "length": 3, + "filename_relative": "tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol", + "is_dependency": false, + "lines": [ + 7 + ], + "starting_column": 18, + "ending_column": 21 + } + } + ], + "description": "tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", + "markdown": "tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", + "first_markdown_element": "", + "id": "bb5125457e77dc20d54c832822ee40ec1ea295724482eeb47b96476dd9fee7eb", + "check": "rtlo", + "impact": "High", + "confidence": "High" + } + ] +] \ No newline at end of file diff --git a/tests/detectors/rtlo/0.5.16/right_to_left_override.sol b/tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol similarity index 100% rename from tests/detectors/rtlo/0.5.16/right_to_left_override.sol rename to tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol diff --git a/tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol.0.5.16.RightToLeftOverride.json b/tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol.0.5.16.RightToLeftOverride.json new file mode 100644 index 000000000..6bd7bd699 --- /dev/null +++ b/tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol.0.5.16.RightToLeftOverride.json @@ -0,0 +1,32 @@ +[ + [ + { + "elements": [ + { + "type": "other", + "name": "rtlo-character", + "source_mapping": { + "start": 96, + "length": 3, + "filename_relative": "tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol", + "is_dependency": false, + "lines": [ + 7 + ], + "starting_column": 18, + "ending_column": 21 + } + } + ], + "description": "tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", + "markdown": "tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", + "first_markdown_element": "", + "id": "721d2f64c7a644099d98238b8af0172c84722cf1702ed29537d0fc701f0d8d88", + "check": "rtlo", + "impact": "High", + "confidence": "High" + } + ] +] \ No newline at end of file diff --git a/tests/detectors/rtlo/0.6.11/right_to_left_override.sol b/tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol similarity index 100% rename from tests/detectors/rtlo/0.6.11/right_to_left_override.sol rename to tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol diff --git a/tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol.0.6.11.RightToLeftOverride.json b/tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol.0.6.11.RightToLeftOverride.json new file mode 100644 index 000000000..3dbac6de8 --- /dev/null +++ b/tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol.0.6.11.RightToLeftOverride.json @@ -0,0 +1,32 @@ +[ + [ + { + "elements": [ + { + "type": "other", + "name": "rtlo-character", + "source_mapping": { + "start": 96, + "length": 3, + "filename_relative": "tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol", + "is_dependency": false, + "lines": [ + 7 + ], + "starting_column": 18, + "ending_column": 21 + } + } + ], + "description": "tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", + "markdown": "tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", + "first_markdown_element": "", + "id": "47d896764ded59ddc17f6ded902e9826d1688fd3af59985d184d30fa6b5e6976", + "check": "rtlo", + "impact": "High", + "confidence": "High" + } + ] +] \ No newline at end of file diff --git a/tests/detectors/rtlo/0.8.0/unicode_direction_override.sol b/tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol similarity index 100% rename from tests/detectors/rtlo/0.8.0/unicode_direction_override.sol rename to tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol diff --git a/tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol.0.8.0.RightToLeftOverride.json b/tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol.0.8.0.RightToLeftOverride.json new file mode 100644 index 000000000..0dc779146 --- /dev/null +++ b/tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol.0.8.0.RightToLeftOverride.json @@ -0,0 +1,88 @@ +[ + [ + { + "elements": [ + { + "type": "other", + "name": "rtlo-character", + "source_mapping": { + "start": 336, + "length": 3, + "filename_relative": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol", + "is_dependency": false, + "lines": [ + 8 + ], + "starting_column": 14, + "ending_column": 17 + } + } + ], + "description": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 336:\n\t- b' /*ok \\xe2\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", + "markdown": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 336:\n\t- b' /*ok \\xe2\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", + "first_markdown_element": "", + "id": "8de5d775d29d586295f60570ff608aef85da40156380c246eada316dbaf94db5", + "check": "rtlo", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "other", + "name": "rtlo-character", + "source_mapping": { + "start": 348, + "length": 3, + "filename_relative": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol", + "is_dependency": false, + "lines": [ + 8 + ], + "starting_column": 26, + "ending_column": 29 + } + } + ], + "description": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 348:\n\t- b'\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", + "markdown": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 348:\n\t- b'\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", + "first_markdown_element": "", + "id": "98f55f22798ec4805d32c89953fc385f02f1e69ebfc22bde91d64c5676098a6a", + "check": "rtlo", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "other", + "name": "rtlo-character", + "source_mapping": { + "start": 342, + "length": 3, + "filename_relative": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol", + "is_dependency": false, + "lines": [ + 8 + ], + "starting_column": 20, + "ending_column": 23 + } + } + ], + "description": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 342:\n\t- b'\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", + "markdown": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 342:\n\t- b'\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", + "first_markdown_element": "", + "id": "fa1214e29688e5f4e8b915ec0e80bb5ffe0bae47468d588398bc209ed990cdfc", + "check": "rtlo", + "impact": "High", + "confidence": "High" + } + ] +] \ No newline at end of file diff --git a/tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol b/tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol similarity index 100% rename from tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol rename to tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol diff --git a/tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol.0.4.25.ShadowingAbstractDetection.json b/tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol.0.4.25.ShadowingAbstractDetection.json similarity index 64% rename from tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol.0.4.25.ShadowingAbstractDetection.json rename to tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol.0.4.25.ShadowingAbstractDetection.json index 9cbd66d07..d9f03c8a3 100644 --- a/tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol.0.4.25.ShadowingAbstractDetection.json +++ b/tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol.0.4.25.ShadowingAbstractDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 92, "length": 13, - "filename_relative": "tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", "is_dependency": false, "lines": [ 7 @@ -25,9 +25,9 @@ "source_mapping": { "start": 46, "length": 63, - "filename_relative": "tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", "is_dependency": false, "lines": [ 6, @@ -47,9 +47,9 @@ "source_mapping": { "start": 27, "length": 13, - "filename_relative": "tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", "is_dependency": false, "lines": [ 2 @@ -64,9 +64,9 @@ "source_mapping": { "start": 0, "length": 44, - "filename_relative": "tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", "is_dependency": false, "lines": [ 1, @@ -81,9 +81,9 @@ } } ], - "description": "DerivedContract.owner (tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol#7) shadows:\n\t- BaseContract.owner (tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol#2)\n", - "markdown": "[DerivedContract.owner](tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol#L7) shadows:\n\t- [BaseContract.owner](tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol#L2)\n", - "first_markdown_element": "tests/detectors/shadowing-abstract/0.4.25/shadowing_abstract.sol#L7", + "description": "DerivedContract.owner (tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol#7) shadows:\n\t- BaseContract.owner (tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol#2)\n", + "markdown": "[DerivedContract.owner](tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol#L7) shadows:\n\t- [BaseContract.owner](tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol#L2)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol#L7", "id": "9c5c3fc5091b9ecd6ec271fdbb3036d9d3426cdf9a09d6cc293fd7de9240e4ab", "check": "shadowing-abstract", "impact": "Medium", diff --git a/tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol b/tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol similarity index 100% rename from tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol rename to tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol diff --git a/tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol.0.5.16.ShadowingAbstractDetection.json b/tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol.0.5.16.ShadowingAbstractDetection.json similarity index 64% rename from tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol.0.5.16.ShadowingAbstractDetection.json rename to tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol.0.5.16.ShadowingAbstractDetection.json index c5cd1b3d7..038141f6b 100644 --- a/tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol.0.5.16.ShadowingAbstractDetection.json +++ b/tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol.0.5.16.ShadowingAbstractDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 92, "length": 13, - "filename_relative": "tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", "is_dependency": false, "lines": [ 7 @@ -25,9 +25,9 @@ "source_mapping": { "start": 46, "length": 63, - "filename_relative": "tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", "is_dependency": false, "lines": [ 6, @@ -47,9 +47,9 @@ "source_mapping": { "start": 27, "length": 13, - "filename_relative": "tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", "is_dependency": false, "lines": [ 2 @@ -64,9 +64,9 @@ "source_mapping": { "start": 0, "length": 44, - "filename_relative": "tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", "is_dependency": false, "lines": [ 1, @@ -81,9 +81,9 @@ } } ], - "description": "DerivedContract.owner (tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol#7) shadows:\n\t- BaseContract.owner (tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol#2)\n", - "markdown": "[DerivedContract.owner](tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol#L7) shadows:\n\t- [BaseContract.owner](tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol#L2)\n", - "first_markdown_element": "tests/detectors/shadowing-abstract/0.5.16/shadowing_abstract.sol#L7", + "description": "DerivedContract.owner (tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol#7) shadows:\n\t- BaseContract.owner (tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol#2)\n", + "markdown": "[DerivedContract.owner](tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol#L7) shadows:\n\t- [BaseContract.owner](tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol#L2)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol#L7", "id": "9c5c3fc5091b9ecd6ec271fdbb3036d9d3426cdf9a09d6cc293fd7de9240e4ab", "check": "shadowing-abstract", "impact": "Medium", diff --git a/tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol b/tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol similarity index 100% rename from tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol rename to tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol diff --git a/tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol.0.7.5.ShadowingAbstractDetection.json b/tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol.0.7.5.ShadowingAbstractDetection.json similarity index 64% rename from tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol.0.7.5.ShadowingAbstractDetection.json rename to tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol.0.7.5.ShadowingAbstractDetection.json index 97c3998d4..a42cbaf6a 100644 --- a/tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol.0.7.5.ShadowingAbstractDetection.json +++ b/tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol.0.7.5.ShadowingAbstractDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 127, "length": 24, - "filename_relative": "tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", "is_dependency": false, "lines": [ 7 @@ -25,9 +25,9 @@ "source_mapping": { "start": 81, "length": 73, - "filename_relative": "tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", "is_dependency": false, "lines": [ 6, @@ -46,9 +46,9 @@ "source_mapping": { "start": 51, "length": 25, - "filename_relative": "tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", "is_dependency": false, "lines": [ 3 @@ -63,9 +63,9 @@ "source_mapping": { "start": 24, "length": 55, - "filename_relative": "tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", "is_dependency": false, "lines": [ 2, @@ -79,9 +79,9 @@ } } ], - "description": "DerivedContract.__gap (tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol#7) shadows:\n\t- BaseContract.__gap (tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol#3)\n", - "markdown": "[DerivedContract.__gap](tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol#L7) shadows:\n\t- [BaseContract.__gap](tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol#L3)\n", - "first_markdown_element": "tests/detectors/shadowing-abstract/0.7.5/public_gap_variable.sol#L7", + "description": "DerivedContract.__gap (tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol#7) shadows:\n\t- BaseContract.__gap (tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol#3)\n", + "markdown": "[DerivedContract.__gap](tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol#L7) shadows:\n\t- [BaseContract.__gap](tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol#L7", "id": "8f81b2b4b3285fe96f0b580cdd2144cc6cf6808d970ba68878b9901744069c4c", "check": "shadowing-abstract", "impact": "Medium", diff --git a/tests/detectors/shadowing-abstract/0.7.5/shadowing_state_variable.sol b/tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/shadowing_state_variable.sol similarity index 100% rename from tests/detectors/shadowing-abstract/0.7.5/shadowing_state_variable.sol rename to tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/shadowing_state_variable.sol diff --git a/tests/detectors/shadowing-abstract/0.7.5/shadowing_state_variable.sol.0.7.5.ShadowingAbstractDetection.json b/tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/shadowing_state_variable.sol.0.7.5.ShadowingAbstractDetection.json similarity index 100% rename from tests/detectors/shadowing-abstract/0.7.5/shadowing_state_variable.sol.0.7.5.ShadowingAbstractDetection.json rename to tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/shadowing_state_variable.sol.0.7.5.ShadowingAbstractDetection.json diff --git a/tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol b/tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol similarity index 100% rename from tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol rename to tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol diff --git a/tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol.0.4.25.BuiltinSymbolShadowing.json b/tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol.0.4.25.BuiltinSymbolShadowing.json similarity index 68% rename from tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol.0.4.25.BuiltinSymbolShadowing.json rename to tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol.0.4.25.BuiltinSymbolShadowing.json index 801bcc38b..a9e1bc63f 100644 --- a/tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol.0.4.25.BuiltinSymbolShadowing.json +++ b/tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol.0.4.25.BuiltinSymbolShadowing.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 527, "length": 15, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 32 @@ -25,9 +25,9 @@ "source_mapping": { "start": 504, "length": 42, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 31, @@ -42,9 +42,9 @@ } } ], - "description": "Reserved.mutable (tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#32) (state variable) shadows built-in symbol\"\n", - "markdown": "[Reserved.mutable](tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L32) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L32", + "description": "Reserved.mutable (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#32) (state variable) shadows built-in symbol\"\n", + "markdown": "[Reserved.mutable](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L32) (state variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L32", "id": "11840553a9e11623596d7a07275814e65a5b1d90277ae0e2954cd8ce74d6a6d2", "check": "shadowing-builtin", "impact": "Low", @@ -58,9 +58,9 @@ "source_mapping": { "start": 170, "length": 18, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 11 @@ -75,9 +75,9 @@ "source_mapping": { "start": 122, "length": 139, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 10, @@ -95,9 +95,9 @@ } } ], - "description": "ExtendedContract.ecrecover (tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#11) (state variable) shadows built-in symbol\"\n", - "markdown": "[ExtendedContract.ecrecover](tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L11) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L11", + "description": "ExtendedContract.ecrecover (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#11) (state variable) shadows built-in symbol\"\n", + "markdown": "[ExtendedContract.ecrecover](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L11) (state variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L11", "id": "39737925cf3bd4ebf9a1c7bbe39da8b80ba28e5a3d93a938d1a4cca78a6a436d", "check": "shadowing-builtin", "impact": "Low", @@ -111,9 +111,9 @@ "source_mapping": { "start": 449, "length": 14, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 25 @@ -128,9 +128,9 @@ "source_mapping": { "start": 380, "length": 120, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 23, @@ -150,9 +150,9 @@ "source_mapping": { "start": 263, "length": 239, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 18, @@ -178,9 +178,9 @@ } } ], - "description": "FurtherExtendedContract.require().keccak256 (tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#25) (local variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.require().keccak256](tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L25) (local variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L25", + "description": "FurtherExtendedContract.require().keccak256 (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#25) (local variable) shadows built-in symbol\"\n", + "markdown": "[FurtherExtendedContract.require().keccak256](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L25) (local variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L25", "id": "40f0453d27abf2d9ed76fe60853b6e2e0cd9a443d639e9da457460ea02b2bdc7", "check": "shadowing-builtin", "impact": "Low", @@ -194,9 +194,9 @@ "source_mapping": { "start": 365, "length": 8, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 21 @@ -211,9 +211,9 @@ "source_mapping": { "start": 263, "length": 239, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 18, @@ -236,9 +236,9 @@ } } ], - "description": "FurtherExtendedContract.abi (tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#21) (state variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.abi](tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L21) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L21", + "description": "FurtherExtendedContract.abi (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#21) (state variable) shadows built-in symbol\"\n", + "markdown": "[FurtherExtendedContract.abi](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L21) (state variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L21", "id": "4665243a2df090e3543ab26447528fa3401916f4669fe1264145891846d4bc40", "check": "shadowing-builtin", "impact": "Low", @@ -252,9 +252,9 @@ "source_mapping": { "start": 54, "length": 14, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 4 @@ -269,9 +269,9 @@ "source_mapping": { "start": 26, "length": 94, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 3, @@ -288,9 +288,9 @@ } } ], - "description": "BaseContract.blockhash (tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#4) (state variable) shadows built-in symbol\"\n", - "markdown": "[BaseContract.blockhash](tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L4) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L4", + "description": "BaseContract.blockhash (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#4) (state variable) shadows built-in symbol\"\n", + "markdown": "[BaseContract.blockhash](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L4) (state variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L4", "id": "61d1c1452e694c321d00576decdf35c62efbe8860f664273955fadce5e063cc8", "check": "shadowing-builtin", "impact": "Low", @@ -304,9 +304,9 @@ "source_mapping": { "start": 346, "length": 13, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 20 @@ -321,9 +321,9 @@ "source_mapping": { "start": 263, "length": 239, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 18, @@ -346,9 +346,9 @@ } } ], - "description": "FurtherExtendedContract.this (tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#20) (state variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.this](tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L20) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L20", + "description": "FurtherExtendedContract.this (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#20) (state variable) shadows built-in symbol\"\n", + "markdown": "[FurtherExtendedContract.this](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L20) (state variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L20", "id": "87e1cc0cb95181dd120d3e6e55d89fdc7b5cd01da2f89cd7a3d105738f57c10b", "check": "shadowing-builtin", "impact": "Low", @@ -362,9 +362,9 @@ "source_mapping": { "start": 74, "length": 8, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 5 @@ -379,9 +379,9 @@ "source_mapping": { "start": 26, "length": 94, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 3, @@ -398,9 +398,9 @@ } } ], - "description": "BaseContract.now (tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#5) (state variable) shadows built-in symbol\"\n", - "markdown": "[BaseContract.now](tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L5) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L5", + "description": "BaseContract.now (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#5) (state variable) shadows built-in symbol\"\n", + "markdown": "[BaseContract.now](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L5) (state variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L5", "id": "942ad0405af0bc533374dded6e2474c53892747c98d2df14d59cbb6840fa18b3", "check": "shadowing-builtin", "impact": "Low", @@ -414,9 +414,9 @@ "source_mapping": { "start": 89, "length": 29, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 7 @@ -431,9 +431,9 @@ "source_mapping": { "start": 26, "length": 94, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 3, @@ -451,9 +451,9 @@ } } ], - "description": "BaseContractrevert(bool) (tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#7) (event) shadows built-in symbol\"\n", - "markdown": "[BaseContractrevert(bool)](tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L7) (event) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L7", + "description": "BaseContractrevert(bool) (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#7) (event) shadows built-in symbol\"\n", + "markdown": "[BaseContractrevert(bool)](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L7) (event) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L7", "id": "9c428e61cb4832d899b2bb711c8d428154425dbadf5dfc2e2d857254824d8f72", "check": "shadowing-builtin", "impact": "Low", @@ -467,9 +467,9 @@ "source_mapping": { "start": 244, "length": 8, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 14 @@ -484,9 +484,9 @@ "source_mapping": { "start": 195, "length": 64, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 13, @@ -503,9 +503,9 @@ "source_mapping": { "start": 122, "length": 139, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 10, @@ -526,9 +526,9 @@ } } ], - "description": "ExtendedContract.assert(bool).msg (tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#14) (local variable) shadows built-in symbol\"\n", - "markdown": "[ExtendedContract.assert(bool).msg](tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L14) (local variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L14", + "description": "ExtendedContract.assert(bool).msg (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#14) (local variable) shadows built-in symbol\"\n", + "markdown": "[ExtendedContract.assert(bool).msg](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L14) (local variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L14", "id": "a2a7e1e27320d38e52b51c9b1ec67cca0a403673ff6fdd59652f9cd8425d011f", "check": "shadowing-builtin", "impact": "Low", @@ -542,9 +542,9 @@ "source_mapping": { "start": 195, "length": 64, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 13, @@ -561,9 +561,9 @@ "source_mapping": { "start": 122, "length": 139, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 10, @@ -582,9 +582,9 @@ } } ], - "description": "ExtendedContract.assert(bool) (tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#13-15) (function) shadows built-in symbol\"\n", - "markdown": "[ExtendedContract.assert(bool)](tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L13-L15) (function) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L13-L15", + "description": "ExtendedContract.assert(bool) (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#13-15) (function) shadows built-in symbol\"\n", + "markdown": "[ExtendedContract.assert(bool)](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L13-L15) (function) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L13-L15", "id": "b3a1b23c1daed52b1a2ff5fb76d4fcdf2bc0b2126524303321cf8e7835116d6f", "check": "shadowing-builtin", "impact": "Low", @@ -598,9 +598,9 @@ "source_mapping": { "start": 473, "length": 9, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 26 @@ -615,9 +615,9 @@ "source_mapping": { "start": 380, "length": 120, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 23, @@ -637,9 +637,9 @@ "source_mapping": { "start": 263, "length": 239, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 18, @@ -665,9 +665,9 @@ } } ], - "description": "FurtherExtendedContract.require().sha3 (tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#26) (local variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.require().sha3](tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L26) (local variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L26", + "description": "FurtherExtendedContract.require().sha3 (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#26) (local variable) shadows built-in symbol\"\n", + "markdown": "[FurtherExtendedContract.require().sha3](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L26) (local variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L26", "id": "c481dbbf77c99cb337740a656ebabae1c89bf13b9d7b7d315dcf54feeab1cd63", "check": "shadowing-builtin", "impact": "Low", @@ -681,9 +681,9 @@ "source_mapping": { "start": 322, "length": 18, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 19 @@ -698,9 +698,9 @@ "source_mapping": { "start": 263, "length": 239, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 18, @@ -723,9 +723,9 @@ } } ], - "description": "FurtherExtendedContract.blockhash (tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#19) (state variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.blockhash](tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L19) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L19", + "description": "FurtherExtendedContract.blockhash (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#19) (state variable) shadows built-in symbol\"\n", + "markdown": "[FurtherExtendedContract.blockhash](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L19) (state variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L19", "id": "d405ccbec679f921252d475591a890a89a023b375dc4994119967693692f8da9", "check": "shadowing-builtin", "impact": "Low", @@ -739,9 +739,9 @@ "source_mapping": { "start": 380, "length": 120, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 23, @@ -761,9 +761,9 @@ "source_mapping": { "start": 263, "length": 239, - "filename_relative": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 18, @@ -787,9 +787,9 @@ } } ], - "description": "FurtherExtendedContract.require() (tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#23-28) (modifier) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.require()](tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L23-L28) (modifier) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L23-L28", + "description": "FurtherExtendedContract.require() (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#23-28) (modifier) shadows built-in symbol\"\n", + "markdown": "[FurtherExtendedContract.require()](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L23-L28) (modifier) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L23-L28", "id": "db6c26c9a7c319c1a34c486e6e625c0906a2b118f8cd72f38a38c167832aab4f", "check": "shadowing-builtin", "impact": "Low", diff --git a/tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol b/tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol similarity index 100% rename from tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol rename to tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol diff --git a/tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol.0.5.16.BuiltinSymbolShadowing.json b/tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol.0.5.16.BuiltinSymbolShadowing.json similarity index 68% rename from tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol.0.5.16.BuiltinSymbolShadowing.json rename to tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol.0.5.16.BuiltinSymbolShadowing.json index 6fa7f2413..e12347591 100644 --- a/tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol.0.5.16.BuiltinSymbolShadowing.json +++ b/tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol.0.5.16.BuiltinSymbolShadowing.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 173, "length": 18, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 11 @@ -25,9 +25,9 @@ "source_mapping": { "start": 125, "length": 139, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 10, @@ -45,9 +45,9 @@ } } ], - "description": "ExtendedContract.ecrecover (tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#11) (state variable) shadows built-in symbol\"\n", - "markdown": "[ExtendedContract.ecrecover](tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L11) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L11", + "description": "ExtendedContract.ecrecover (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#11) (state variable) shadows built-in symbol\"\n", + "markdown": "[ExtendedContract.ecrecover](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L11) (state variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L11", "id": "39737925cf3bd4ebf9a1c7bbe39da8b80ba28e5a3d93a938d1a4cca78a6a436d", "check": "shadowing-builtin", "impact": "Low", @@ -61,9 +61,9 @@ "source_mapping": { "start": 452, "length": 14, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 25 @@ -78,9 +78,9 @@ "source_mapping": { "start": 383, "length": 120, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 23, @@ -100,9 +100,9 @@ "source_mapping": { "start": 266, "length": 239, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 18, @@ -128,9 +128,9 @@ } } ], - "description": "FurtherExtendedContract.require().keccak256 (tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#25) (local variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.require().keccak256](tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L25) (local variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L25", + "description": "FurtherExtendedContract.require().keccak256 (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#25) (local variable) shadows built-in symbol\"\n", + "markdown": "[FurtherExtendedContract.require().keccak256](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L25) (local variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L25", "id": "40f0453d27abf2d9ed76fe60853b6e2e0cd9a443d639e9da457460ea02b2bdc7", "check": "shadowing-builtin", "impact": "Low", @@ -144,9 +144,9 @@ "source_mapping": { "start": 368, "length": 8, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 21 @@ -161,9 +161,9 @@ "source_mapping": { "start": 266, "length": 239, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 18, @@ -186,9 +186,9 @@ } } ], - "description": "FurtherExtendedContract.abi (tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#21) (state variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.abi](tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L21) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L21", + "description": "FurtherExtendedContract.abi (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#21) (state variable) shadows built-in symbol\"\n", + "markdown": "[FurtherExtendedContract.abi](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L21) (state variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L21", "id": "4665243a2df090e3543ab26447528fa3401916f4669fe1264145891846d4bc40", "check": "shadowing-builtin", "impact": "Low", @@ -202,9 +202,9 @@ "source_mapping": { "start": 57, "length": 14, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 4 @@ -219,9 +219,9 @@ "source_mapping": { "start": 29, "length": 94, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 3, @@ -238,9 +238,9 @@ } } ], - "description": "BaseContract.blockhash (tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#4) (state variable) shadows built-in symbol\"\n", - "markdown": "[BaseContract.blockhash](tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L4) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L4", + "description": "BaseContract.blockhash (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#4) (state variable) shadows built-in symbol\"\n", + "markdown": "[BaseContract.blockhash](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L4) (state variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L4", "id": "61d1c1452e694c321d00576decdf35c62efbe8860f664273955fadce5e063cc8", "check": "shadowing-builtin", "impact": "Low", @@ -254,9 +254,9 @@ "source_mapping": { "start": 349, "length": 13, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 20 @@ -271,9 +271,9 @@ "source_mapping": { "start": 266, "length": 239, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 18, @@ -296,9 +296,9 @@ } } ], - "description": "FurtherExtendedContract.this (tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#20) (state variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.this](tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L20) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L20", + "description": "FurtherExtendedContract.this (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#20) (state variable) shadows built-in symbol\"\n", + "markdown": "[FurtherExtendedContract.this](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L20) (state variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L20", "id": "87e1cc0cb95181dd120d3e6e55d89fdc7b5cd01da2f89cd7a3d105738f57c10b", "check": "shadowing-builtin", "impact": "Low", @@ -312,9 +312,9 @@ "source_mapping": { "start": 77, "length": 8, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 5 @@ -329,9 +329,9 @@ "source_mapping": { "start": 29, "length": 94, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 3, @@ -348,9 +348,9 @@ } } ], - "description": "BaseContract.now (tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#5) (state variable) shadows built-in symbol\"\n", - "markdown": "[BaseContract.now](tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L5) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L5", + "description": "BaseContract.now (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#5) (state variable) shadows built-in symbol\"\n", + "markdown": "[BaseContract.now](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L5) (state variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L5", "id": "942ad0405af0bc533374dded6e2474c53892747c98d2df14d59cbb6840fa18b3", "check": "shadowing-builtin", "impact": "Low", @@ -364,9 +364,9 @@ "source_mapping": { "start": 92, "length": 29, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 7 @@ -381,9 +381,9 @@ "source_mapping": { "start": 29, "length": 94, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 3, @@ -401,9 +401,9 @@ } } ], - "description": "BaseContractrevert(bool) (tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#7) (event) shadows built-in symbol\"\n", - "markdown": "[BaseContractrevert(bool)](tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L7) (event) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L7", + "description": "BaseContractrevert(bool) (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#7) (event) shadows built-in symbol\"\n", + "markdown": "[BaseContractrevert(bool)](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L7) (event) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L7", "id": "9c428e61cb4832d899b2bb711c8d428154425dbadf5dfc2e2d857254824d8f72", "check": "shadowing-builtin", "impact": "Low", @@ -417,9 +417,9 @@ "source_mapping": { "start": 247, "length": 8, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 14 @@ -434,9 +434,9 @@ "source_mapping": { "start": 198, "length": 64, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 13, @@ -453,9 +453,9 @@ "source_mapping": { "start": 125, "length": 139, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 10, @@ -476,9 +476,9 @@ } } ], - "description": "ExtendedContract.assert(bool).msg (tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#14) (local variable) shadows built-in symbol\"\n", - "markdown": "[ExtendedContract.assert(bool).msg](tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L14) (local variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L14", + "description": "ExtendedContract.assert(bool).msg (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#14) (local variable) shadows built-in symbol\"\n", + "markdown": "[ExtendedContract.assert(bool).msg](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L14) (local variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L14", "id": "a2a7e1e27320d38e52b51c9b1ec67cca0a403673ff6fdd59652f9cd8425d011f", "check": "shadowing-builtin", "impact": "Low", @@ -492,9 +492,9 @@ "source_mapping": { "start": 198, "length": 64, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 13, @@ -511,9 +511,9 @@ "source_mapping": { "start": 125, "length": 139, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 10, @@ -532,9 +532,9 @@ } } ], - "description": "ExtendedContract.assert(bool) (tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#13-15) (function) shadows built-in symbol\"\n", - "markdown": "[ExtendedContract.assert(bool)](tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L13-L15) (function) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L13-L15", + "description": "ExtendedContract.assert(bool) (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#13-15) (function) shadows built-in symbol\"\n", + "markdown": "[ExtendedContract.assert(bool)](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L13-L15) (function) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L13-L15", "id": "b3a1b23c1daed52b1a2ff5fb76d4fcdf2bc0b2126524303321cf8e7835116d6f", "check": "shadowing-builtin", "impact": "Low", @@ -548,9 +548,9 @@ "source_mapping": { "start": 476, "length": 9, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 26 @@ -565,9 +565,9 @@ "source_mapping": { "start": 383, "length": 120, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 23, @@ -587,9 +587,9 @@ "source_mapping": { "start": 266, "length": 239, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 18, @@ -615,9 +615,9 @@ } } ], - "description": "FurtherExtendedContract.require().sha3 (tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#26) (local variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.require().sha3](tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L26) (local variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L26", + "description": "FurtherExtendedContract.require().sha3 (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#26) (local variable) shadows built-in symbol\"\n", + "markdown": "[FurtherExtendedContract.require().sha3](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L26) (local variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L26", "id": "c481dbbf77c99cb337740a656ebabae1c89bf13b9d7b7d315dcf54feeab1cd63", "check": "shadowing-builtin", "impact": "Low", @@ -631,9 +631,9 @@ "source_mapping": { "start": 325, "length": 18, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 19 @@ -648,9 +648,9 @@ "source_mapping": { "start": 266, "length": 239, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 18, @@ -673,9 +673,9 @@ } } ], - "description": "FurtherExtendedContract.blockhash (tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#19) (state variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.blockhash](tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L19) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L19", + "description": "FurtherExtendedContract.blockhash (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#19) (state variable) shadows built-in symbol\"\n", + "markdown": "[FurtherExtendedContract.blockhash](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L19) (state variable) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L19", "id": "d405ccbec679f921252d475591a890a89a023b375dc4994119967693692f8da9", "check": "shadowing-builtin", "impact": "Low", @@ -689,9 +689,9 @@ "source_mapping": { "start": 383, "length": 120, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 23, @@ -711,9 +711,9 @@ "source_mapping": { "start": 266, "length": 239, - "filename_relative": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", "is_dependency": false, "lines": [ 18, @@ -737,9 +737,9 @@ } } ], - "description": "FurtherExtendedContract.require() (tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#23-28) (modifier) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.require()](tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L23-L28) (modifier) shadows built-in symbol\"\n", - "first_markdown_element": "tests/detectors/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L23-L28", + "description": "FurtherExtendedContract.require() (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#23-28) (modifier) shadows built-in symbol\"\n", + "markdown": "[FurtherExtendedContract.require()](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L23-L28) (modifier) shadows built-in symbol\"\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L23-L28", "id": "db6c26c9a7c319c1a34c486e6e625c0906a2b118f8cd72f38a38c167832aab4f", "check": "shadowing-builtin", "impact": "Low", diff --git a/tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol b/tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol similarity index 100% rename from tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol rename to tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol diff --git a/tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol.0.4.25.LocalShadowing.json b/tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol.0.4.25.LocalShadowing.json similarity index 71% rename from tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol.0.4.25.LocalShadowing.json rename to tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol.0.4.25.LocalShadowing.json index e12b5f26d..01d1ce42c 100644 --- a/tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol.0.4.25.LocalShadowing.json +++ b/tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol.0.4.25.LocalShadowing.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 376, "length": 6, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -25,9 +25,9 @@ "source_mapping": { "start": 351, "length": 79, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -42,9 +42,9 @@ "source_mapping": { "start": 197, "length": 235, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -74,9 +74,9 @@ "source_mapping": { "start": 256, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 17 @@ -91,9 +91,9 @@ "source_mapping": { "start": 197, "length": 235, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -120,9 +120,9 @@ "source_mapping": { "start": 133, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 9 @@ -137,9 +137,9 @@ "source_mapping": { "start": 85, "length": 110, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 8, @@ -162,9 +162,9 @@ "source_mapping": { "start": 54, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 4 @@ -179,9 +179,9 @@ "source_mapping": { "start": 26, "length": 57, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 3, @@ -196,9 +196,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).x (tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.x (tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#17) (state variable)\n\t- ExtendedContract.x (tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#9) (state variable)\n\t- BaseContract.x (tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#4) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).x](tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.x](tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L17) (state variable)\n\t- [ExtendedContract.x](tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L9) (state variable)\n\t- [BaseContract.x](tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L4) (state variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).x (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.x (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#17) (state variable)\n\t- ExtendedContract.x (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#9) (state variable)\n\t- BaseContract.x (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#4) (state variable)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).x](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.x](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L17) (state variable)\n\t- [ExtendedContract.x](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L9) (state variable)\n\t- [BaseContract.x](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L4) (state variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", "id": "0991435c12aa2d6f15e8da2a00a18e9c58ef65dcf31137cdb561655317353247", "check": "shadowing-local", "impact": "Low", @@ -212,9 +212,9 @@ "source_mapping": { "start": 533, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 30 @@ -229,9 +229,9 @@ "source_mapping": { "start": 486, "length": 88, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 30, @@ -248,9 +248,9 @@ "source_mapping": { "start": 434, "length": 225, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 28, @@ -279,9 +279,9 @@ "source_mapping": { "start": 470, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 29 @@ -296,9 +296,9 @@ "source_mapping": { "start": 434, "length": 225, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 28, @@ -319,9 +319,9 @@ } } ], - "description": "LocalReturnVariables.shadowedState().state (tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#30) shadows:\n\t- LocalReturnVariables.state (tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#29) (state variable)\n", - "markdown": "[LocalReturnVariables.shadowedState().state](tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L30) shadows:\n\t- [LocalReturnVariables.state](tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L29) (state variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L30", + "description": "LocalReturnVariables.shadowedState().state (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#30) shadows:\n\t- LocalReturnVariables.state (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#29) (state variable)\n", + "markdown": "[LocalReturnVariables.shadowedState().state](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L30) shadows:\n\t- [LocalReturnVariables.state](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L29) (state variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L30", "id": "1b0030affabcff703e57e4f388b86dbda0f412e51ba8d15248bcae9e4748a012", "check": "shadowing-local", "impact": "Low", @@ -335,9 +335,9 @@ "source_mapping": { "start": 398, "length": 5, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -352,9 +352,9 @@ "source_mapping": { "start": 351, "length": 79, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -369,9 +369,9 @@ "source_mapping": { "start": 197, "length": 235, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -401,9 +401,9 @@ "source_mapping": { "start": 70, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 5 @@ -418,9 +418,9 @@ "source_mapping": { "start": 26, "length": 57, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 3, @@ -435,9 +435,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).y (tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- BaseContract.y (tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#5) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).y](tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [BaseContract.y](tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L5) (state variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).y (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- BaseContract.y (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#5) (state variable)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).y](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [BaseContract.y](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L5) (state variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", "id": "465bd81cbb09a3d2cc84ea6102fb059296f1970e85e2d86a171f8219f1a34508", "check": "shadowing-local", "impact": "Low", @@ -451,9 +451,9 @@ "source_mapping": { "start": 421, "length": 6, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -468,9 +468,9 @@ "source_mapping": { "start": 351, "length": 79, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -485,9 +485,9 @@ "source_mapping": { "start": 197, "length": 235, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -517,9 +517,9 @@ "source_mapping": { "start": 183, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 13 @@ -534,9 +534,9 @@ "source_mapping": { "start": 85, "length": 110, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 8, @@ -555,9 +555,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).v (tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContractv() (tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#13) (event)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).v](tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContractv()](tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L13) (event)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).v (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContractv() (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#13) (event)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).v](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContractv()](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L13) (event)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", "id": "973e31cc30dc7a3e1f089dfa5848234075f237f78fa492c772b1083e12c79054", "check": "shadowing-local", "impact": "Low", @@ -571,9 +571,9 @@ "source_mapping": { "start": 413, "length": 6, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -588,9 +588,9 @@ "source_mapping": { "start": 351, "length": 79, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -605,9 +605,9 @@ "source_mapping": { "start": 197, "length": 235, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -637,9 +637,9 @@ "source_mapping": { "start": 274, "length": 71, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 20, @@ -657,9 +657,9 @@ "source_mapping": { "start": 197, "length": 235, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -682,9 +682,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).w (tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.w() (tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#20-23) (modifier)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).w](tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.w()](tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L20-L23) (modifier)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).w (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.w() (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#20-23) (modifier)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).w](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.w()](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L20-L23) (modifier)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", "id": "a94a2b9331482c75582868e6d3cc5c9b01487e7505f219abcf36a20d76e0b089", "check": "shadowing-local", "impact": "Low", @@ -698,9 +698,9 @@ "source_mapping": { "start": 405, "length": 6, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -715,9 +715,9 @@ "source_mapping": { "start": 351, "length": 79, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -732,9 +732,9 @@ "source_mapping": { "start": 197, "length": 235, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -764,9 +764,9 @@ "source_mapping": { "start": 150, "length": 27, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 11 @@ -781,9 +781,9 @@ "source_mapping": { "start": 85, "length": 110, - "filename_relative": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 8, @@ -802,9 +802,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).z (tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContract.z() (tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#11) (function)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).z](tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContract.z()](tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L11) (function)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).z (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContract.z() (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#11) (function)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).z](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContract.z()](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L11) (function)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", "id": "e3d2948e9c1252fe84e0d7e58f6682af7af84ef209f6e71f039faccabf07b0bd", "check": "shadowing-local", "impact": "Low", diff --git a/tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol b/tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol similarity index 100% rename from tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol rename to tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol diff --git a/tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol.0.5.16.LocalShadowing.json b/tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol.0.5.16.LocalShadowing.json similarity index 72% rename from tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol.0.5.16.LocalShadowing.json rename to tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol.0.5.16.LocalShadowing.json index d4d54ad9d..11c615913 100644 --- a/tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol.0.5.16.LocalShadowing.json +++ b/tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol.0.5.16.LocalShadowing.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 379, "length": 6, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -25,9 +25,9 @@ "source_mapping": { "start": 354, "length": 79, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -42,9 +42,9 @@ "source_mapping": { "start": 200, "length": 235, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -74,9 +74,9 @@ "source_mapping": { "start": 259, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 17 @@ -91,9 +91,9 @@ "source_mapping": { "start": 200, "length": 235, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -120,9 +120,9 @@ "source_mapping": { "start": 136, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 9 @@ -137,9 +137,9 @@ "source_mapping": { "start": 88, "length": 110, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 8, @@ -162,9 +162,9 @@ "source_mapping": { "start": 57, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 4 @@ -179,9 +179,9 @@ "source_mapping": { "start": 29, "length": 57, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 3, @@ -196,9 +196,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).x (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.x (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#17) (state variable)\n\t- ExtendedContract.x (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#9) (state variable)\n\t- BaseContract.x (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#4) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).x](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.x](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L17) (state variable)\n\t- [ExtendedContract.x](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L9) (state variable)\n\t- [BaseContract.x](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L4) (state variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).x (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.x (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#17) (state variable)\n\t- ExtendedContract.x (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#9) (state variable)\n\t- BaseContract.x (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#4) (state variable)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).x](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.x](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L17) (state variable)\n\t- [ExtendedContract.x](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L9) (state variable)\n\t- [BaseContract.x](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L4) (state variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", "id": "0991435c12aa2d6f15e8da2a00a18e9c58ef65dcf31137cdb561655317353247", "check": "shadowing-local", "impact": "Low", @@ -212,9 +212,9 @@ "source_mapping": { "start": 536, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 30 @@ -229,9 +229,9 @@ "source_mapping": { "start": 489, "length": 88, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 30, @@ -248,9 +248,9 @@ "source_mapping": { "start": 437, "length": 344, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 28, @@ -283,9 +283,9 @@ "source_mapping": { "start": 473, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 29 @@ -300,9 +300,9 @@ "source_mapping": { "start": 437, "length": 344, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 28, @@ -327,9 +327,9 @@ } } ], - "description": "LocalReturnVariables.shadowedState().state (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#30) shadows:\n\t- LocalReturnVariables.state (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#29) (state variable)\n", - "markdown": "[LocalReturnVariables.shadowedState().state](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L30) shadows:\n\t- [LocalReturnVariables.state](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L29) (state variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L30", + "description": "LocalReturnVariables.shadowedState().state (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#30) shadows:\n\t- LocalReturnVariables.state (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#29) (state variable)\n", + "markdown": "[LocalReturnVariables.shadowedState().state](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L30) shadows:\n\t- [LocalReturnVariables.state](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L29) (state variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L30", "id": "1b0030affabcff703e57e4f388b86dbda0f412e51ba8d15248bcae9e4748a012", "check": "shadowing-local", "impact": "Low", @@ -343,9 +343,9 @@ "source_mapping": { "start": 401, "length": 5, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -360,9 +360,9 @@ "source_mapping": { "start": 354, "length": 79, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -377,9 +377,9 @@ "source_mapping": { "start": 200, "length": 235, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -409,9 +409,9 @@ "source_mapping": { "start": 73, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 5 @@ -426,9 +426,9 @@ "source_mapping": { "start": 29, "length": 57, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 3, @@ -443,9 +443,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).y (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- BaseContract.y (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#5) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).y](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [BaseContract.y](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L5) (state variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).y (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- BaseContract.y (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#5) (state variable)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).y](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [BaseContract.y](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L5) (state variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", "id": "465bd81cbb09a3d2cc84ea6102fb059296f1970e85e2d86a171f8219f1a34508", "check": "shadowing-local", "impact": "Low", @@ -459,9 +459,9 @@ "source_mapping": { "start": 424, "length": 6, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -476,9 +476,9 @@ "source_mapping": { "start": 354, "length": 79, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -493,9 +493,9 @@ "source_mapping": { "start": 200, "length": 235, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -525,9 +525,9 @@ "source_mapping": { "start": 186, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 13 @@ -542,9 +542,9 @@ "source_mapping": { "start": 88, "length": 110, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 8, @@ -563,9 +563,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).v (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContractv() (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#13) (event)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).v](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContractv()](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L13) (event)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).v (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContractv() (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#13) (event)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).v](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContractv()](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L13) (event)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", "id": "973e31cc30dc7a3e1f089dfa5848234075f237f78fa492c772b1083e12c79054", "check": "shadowing-local", "impact": "Low", @@ -579,9 +579,9 @@ "source_mapping": { "start": 416, "length": 6, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -596,9 +596,9 @@ "source_mapping": { "start": 354, "length": 79, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -613,9 +613,9 @@ "source_mapping": { "start": 200, "length": 235, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -645,9 +645,9 @@ "source_mapping": { "start": 277, "length": 71, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 20, @@ -665,9 +665,9 @@ "source_mapping": { "start": 200, "length": 235, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -690,9 +690,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).w (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.w() (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#20-23) (modifier)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).w](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.w()](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L20-L23) (modifier)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).w (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.w() (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#20-23) (modifier)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).w](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.w()](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L20-L23) (modifier)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", "id": "a94a2b9331482c75582868e6d3cc5c9b01487e7505f219abcf36a20d76e0b089", "check": "shadowing-local", "impact": "Low", @@ -706,9 +706,9 @@ "source_mapping": { "start": 653, "length": 14, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 34 @@ -723,9 +723,9 @@ "source_mapping": { "start": 583, "length": 113, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 33, @@ -743,9 +743,9 @@ "source_mapping": { "start": 437, "length": 344, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 28, @@ -778,9 +778,9 @@ "source_mapping": { "start": 631, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 33 @@ -795,9 +795,9 @@ "source_mapping": { "start": 583, "length": 113, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 33, @@ -815,9 +815,9 @@ "source_mapping": { "start": 437, "length": 344, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 28, @@ -845,9 +845,9 @@ } } ], - "description": "LocalReturnVariables.shadowedReturn().local_scope_0 (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#34) shadows:\n\t- LocalReturnVariables.shadowedReturn().local (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#33) (return variable)\n", - "markdown": "[LocalReturnVariables.shadowedReturn().local_scope_0](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L34) shadows:\n\t- [LocalReturnVariables.shadowedReturn().local](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L33) (return variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L34", + "description": "LocalReturnVariables.shadowedReturn().local_scope_0 (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#34) shadows:\n\t- LocalReturnVariables.shadowedReturn().local (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#33) (return variable)\n", + "markdown": "[LocalReturnVariables.shadowedReturn().local_scope_0](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L34) shadows:\n\t- [LocalReturnVariables.shadowedReturn().local](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L33) (return variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L34", "id": "cd63bdf3f6420e4e109d20ec44b52fcbcbde1c5b6a0701fc6994b35960ab1e85", "check": "shadowing-local", "impact": "Low", @@ -861,9 +861,9 @@ "source_mapping": { "start": 408, "length": 6, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -878,9 +878,9 @@ "source_mapping": { "start": 354, "length": 79, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -895,9 +895,9 @@ "source_mapping": { "start": 200, "length": 235, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -927,9 +927,9 @@ "source_mapping": { "start": 153, "length": 27, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 11 @@ -944,9 +944,9 @@ "source_mapping": { "start": 88, "length": 110, - "filename_relative": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 8, @@ -965,9 +965,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).z (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContract.z() (tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#11) (function)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).z](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContract.z()](tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L11) (function)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).z (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContract.z() (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#11) (function)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).z](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContract.z()](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L11) (function)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", "id": "e3d2948e9c1252fe84e0d7e58f6682af7af84ef209f6e71f039faccabf07b0bd", "check": "shadowing-local", "impact": "Low", diff --git a/tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol b/tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol similarity index 100% rename from tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol rename to tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol diff --git a/tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol.0.6.11.LocalShadowing.json b/tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol.0.6.11.LocalShadowing.json similarity index 73% rename from tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol.0.6.11.LocalShadowing.json rename to tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol.0.6.11.LocalShadowing.json index 2dc747505..834751662 100644 --- a/tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol.0.6.11.LocalShadowing.json +++ b/tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol.0.6.11.LocalShadowing.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 541, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 30 @@ -25,9 +25,9 @@ "source_mapping": { "start": 494, "length": 88, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 30, @@ -44,9 +44,9 @@ "source_mapping": { "start": 442, "length": 344, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 28, @@ -79,9 +79,9 @@ "source_mapping": { "start": 478, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 29 @@ -96,9 +96,9 @@ "source_mapping": { "start": 442, "length": 344, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 28, @@ -123,9 +123,9 @@ } } ], - "description": "LocalReturnVariables.shadowedState().state (tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#30) shadows:\n\t- LocalReturnVariables.state (tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#29) (state variable)\n", - "markdown": "[LocalReturnVariables.shadowedState().state](tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L30) shadows:\n\t- [LocalReturnVariables.state](tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L29) (state variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L30", + "description": "LocalReturnVariables.shadowedState().state (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#30) shadows:\n\t- LocalReturnVariables.state (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#29) (state variable)\n", + "markdown": "[LocalReturnVariables.shadowedState().state](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L30) shadows:\n\t- [LocalReturnVariables.state](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L29) (state variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L30", "id": "1b0030affabcff703e57e4f388b86dbda0f412e51ba8d15248bcae9e4748a012", "check": "shadowing-local", "impact": "Low", @@ -139,9 +139,9 @@ "source_mapping": { "start": 406, "length": 5, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -156,9 +156,9 @@ "source_mapping": { "start": 357, "length": 81, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -173,9 +173,9 @@ "source_mapping": { "start": 201, "length": 239, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -205,9 +205,9 @@ "source_mapping": { "start": 73, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 5 @@ -222,9 +222,9 @@ "source_mapping": { "start": 29, "length": 57, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 3, @@ -239,9 +239,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).y (tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- BaseContract.y (tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#5) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).y](tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [BaseContract.y](tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L5) (state variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).y (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- BaseContract.y (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#5) (state variable)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).y](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [BaseContract.y](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L5) (state variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", "id": "465bd81cbb09a3d2cc84ea6102fb059296f1970e85e2d86a171f8219f1a34508", "check": "shadowing-local", "impact": "Low", @@ -255,9 +255,9 @@ "source_mapping": { "start": 429, "length": 6, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -272,9 +272,9 @@ "source_mapping": { "start": 357, "length": 81, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -289,9 +289,9 @@ "source_mapping": { "start": 201, "length": 239, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -321,9 +321,9 @@ "source_mapping": { "start": 187, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 13 @@ -338,9 +338,9 @@ "source_mapping": { "start": 88, "length": 111, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 8, @@ -359,9 +359,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).v (tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContractv() (tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#13) (event)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).v](tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContractv()](tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L13) (event)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).v (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContractv() (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#13) (event)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).v](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContractv()](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L13) (event)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", "id": "973e31cc30dc7a3e1f089dfa5848234075f237f78fa492c772b1083e12c79054", "check": "shadowing-local", "impact": "Low", @@ -375,9 +375,9 @@ "source_mapping": { "start": 421, "length": 6, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -392,9 +392,9 @@ "source_mapping": { "start": 357, "length": 81, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -409,9 +409,9 @@ "source_mapping": { "start": 201, "length": 239, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -441,9 +441,9 @@ "source_mapping": { "start": 280, "length": 71, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 20, @@ -461,9 +461,9 @@ "source_mapping": { "start": 201, "length": 239, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -486,9 +486,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).w (tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.w() (tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#20-23) (modifier)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).w](tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.w()](tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L20-L23) (modifier)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).w (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.w() (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#20-23) (modifier)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).w](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.w()](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L20-L23) (modifier)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", "id": "a94a2b9331482c75582868e6d3cc5c9b01487e7505f219abcf36a20d76e0b089", "check": "shadowing-local", "impact": "Low", @@ -502,9 +502,9 @@ "source_mapping": { "start": 382, "length": 8, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -519,9 +519,9 @@ "source_mapping": { "start": 357, "length": 81, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -536,9 +536,9 @@ "source_mapping": { "start": 201, "length": 239, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -568,9 +568,9 @@ "source_mapping": { "start": 260, "length": 12, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 17 @@ -585,9 +585,9 @@ "source_mapping": { "start": 201, "length": 239, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -609,9 +609,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).__x (tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.__x (tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#17) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).__x](tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.__x](tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L17) (state variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).__x (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.__x (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#17) (state variable)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).__x](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.__x](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L17) (state variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", "id": "cd61765f88a1447471f5c75c7a488af44534d81be3998f5d01a6b5fa8f693327", "check": "shadowing-local", "impact": "Low", @@ -625,9 +625,9 @@ "source_mapping": { "start": 658, "length": 14, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 34 @@ -642,9 +642,9 @@ "source_mapping": { "start": 588, "length": 113, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 33, @@ -662,9 +662,9 @@ "source_mapping": { "start": 442, "length": 344, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 28, @@ -697,9 +697,9 @@ "source_mapping": { "start": 636, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 33 @@ -714,9 +714,9 @@ "source_mapping": { "start": 588, "length": 113, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 33, @@ -734,9 +734,9 @@ "source_mapping": { "start": 442, "length": 344, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 28, @@ -764,9 +764,9 @@ } } ], - "description": "LocalReturnVariables.shadowedReturn().local_scope_0 (tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#34) shadows:\n\t- LocalReturnVariables.shadowedReturn().local (tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#33) (return variable)\n", - "markdown": "[LocalReturnVariables.shadowedReturn().local_scope_0](tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L34) shadows:\n\t- [LocalReturnVariables.shadowedReturn().local](tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L33) (return variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L34", + "description": "LocalReturnVariables.shadowedReturn().local_scope_0 (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#34) shadows:\n\t- LocalReturnVariables.shadowedReturn().local (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#33) (return variable)\n", + "markdown": "[LocalReturnVariables.shadowedReturn().local_scope_0](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L34) shadows:\n\t- [LocalReturnVariables.shadowedReturn().local](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L33) (return variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L34", "id": "cd63bdf3f6420e4e109d20ec44b52fcbcbde1c5b6a0701fc6994b35960ab1e85", "check": "shadowing-local", "impact": "Low", @@ -780,9 +780,9 @@ "source_mapping": { "start": 413, "length": 6, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -797,9 +797,9 @@ "source_mapping": { "start": 357, "length": 81, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -814,9 +814,9 @@ "source_mapping": { "start": 201, "length": 239, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -846,9 +846,9 @@ "source_mapping": { "start": 154, "length": 27, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 11 @@ -863,9 +863,9 @@ "source_mapping": { "start": 88, "length": 111, - "filename_relative": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 8, @@ -884,9 +884,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).z (tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContract.z() (tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#11) (function)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).z](tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContract.z()](tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L11) (function)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).z (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContract.z() (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#11) (function)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).z](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContract.z()](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L11) (function)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", "id": "e3d2948e9c1252fe84e0d7e58f6682af7af84ef209f6e71f039faccabf07b0bd", "check": "shadowing-local", "impact": "Low", diff --git a/tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol b/tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol similarity index 100% rename from tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol rename to tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol diff --git a/tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol.0.7.6.LocalShadowing.json b/tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol.0.7.6.LocalShadowing.json similarity index 73% rename from tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol.0.7.6.LocalShadowing.json rename to tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol.0.7.6.LocalShadowing.json index e013dc0eb..ebeacebd5 100644 --- a/tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol.0.7.6.LocalShadowing.json +++ b/tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol.0.7.6.LocalShadowing.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 541, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 30 @@ -25,9 +25,9 @@ "source_mapping": { "start": 494, "length": 88, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 30, @@ -44,9 +44,9 @@ "source_mapping": { "start": 442, "length": 344, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 28, @@ -78,9 +78,9 @@ "source_mapping": { "start": 478, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 29 @@ -95,9 +95,9 @@ "source_mapping": { "start": 442, "length": 344, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 28, @@ -121,9 +121,9 @@ } } ], - "description": "LocalReturnVariables.shadowedState().state (tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#30) shadows:\n\t- LocalReturnVariables.state (tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#29) (state variable)\n", - "markdown": "[LocalReturnVariables.shadowedState().state](tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L30) shadows:\n\t- [LocalReturnVariables.state](tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L29) (state variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L30", + "description": "LocalReturnVariables.shadowedState().state (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#30) shadows:\n\t- LocalReturnVariables.state (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#29) (state variable)\n", + "markdown": "[LocalReturnVariables.shadowedState().state](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L30) shadows:\n\t- [LocalReturnVariables.state](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L29) (state variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L30", "id": "1b0030affabcff703e57e4f388b86dbda0f412e51ba8d15248bcae9e4748a012", "check": "shadowing-local", "impact": "Low", @@ -137,9 +137,9 @@ "source_mapping": { "start": 406, "length": 5, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -154,9 +154,9 @@ "source_mapping": { "start": 357, "length": 81, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -171,9 +171,9 @@ "source_mapping": { "start": 201, "length": 239, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -203,9 +203,9 @@ "source_mapping": { "start": 73, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 5 @@ -220,9 +220,9 @@ "source_mapping": { "start": 29, "length": 57, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 3, @@ -237,9 +237,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).y (tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- BaseContract.y (tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#5) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).y](tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [BaseContract.y](tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L5) (state variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).y (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- BaseContract.y (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#5) (state variable)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).y](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [BaseContract.y](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L5) (state variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", "id": "465bd81cbb09a3d2cc84ea6102fb059296f1970e85e2d86a171f8219f1a34508", "check": "shadowing-local", "impact": "Low", @@ -253,9 +253,9 @@ "source_mapping": { "start": 429, "length": 6, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -270,9 +270,9 @@ "source_mapping": { "start": 357, "length": 81, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -287,9 +287,9 @@ "source_mapping": { "start": 201, "length": 239, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -319,9 +319,9 @@ "source_mapping": { "start": 187, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 13 @@ -336,9 +336,9 @@ "source_mapping": { "start": 88, "length": 111, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 8, @@ -357,9 +357,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).v (tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContractv() (tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#13) (event)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).v](tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContractv()](tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L13) (event)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).v (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContractv() (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#13) (event)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).v](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContractv()](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L13) (event)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", "id": "973e31cc30dc7a3e1f089dfa5848234075f237f78fa492c772b1083e12c79054", "check": "shadowing-local", "impact": "Low", @@ -373,9 +373,9 @@ "source_mapping": { "start": 421, "length": 6, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -390,9 +390,9 @@ "source_mapping": { "start": 357, "length": 81, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -407,9 +407,9 @@ "source_mapping": { "start": 201, "length": 239, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -439,9 +439,9 @@ "source_mapping": { "start": 280, "length": 71, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 20, @@ -459,9 +459,9 @@ "source_mapping": { "start": 201, "length": 239, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -484,9 +484,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).w (tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.w() (tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#20-23) (modifier)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).w](tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.w()](tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L20-L23) (modifier)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).w (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.w() (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#20-23) (modifier)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).w](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.w()](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L20-L23) (modifier)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", "id": "a94a2b9331482c75582868e6d3cc5c9b01487e7505f219abcf36a20d76e0b089", "check": "shadowing-local", "impact": "Low", @@ -500,9 +500,9 @@ "source_mapping": { "start": 382, "length": 8, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -517,9 +517,9 @@ "source_mapping": { "start": 357, "length": 81, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -534,9 +534,9 @@ "source_mapping": { "start": 201, "length": 239, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -566,9 +566,9 @@ "source_mapping": { "start": 260, "length": 12, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 17 @@ -583,9 +583,9 @@ "source_mapping": { "start": 201, "length": 239, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -607,9 +607,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).__x (tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.__x (tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#17) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).__x](tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.__x](tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L17) (state variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).__x (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.__x (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#17) (state variable)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).__x](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.__x](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L17) (state variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", "id": "cd61765f88a1447471f5c75c7a488af44534d81be3998f5d01a6b5fa8f693327", "check": "shadowing-local", "impact": "Low", @@ -623,9 +623,9 @@ "source_mapping": { "start": 658, "length": 14, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 34 @@ -640,9 +640,9 @@ "source_mapping": { "start": 588, "length": 113, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 33, @@ -660,9 +660,9 @@ "source_mapping": { "start": 442, "length": 344, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 28, @@ -694,9 +694,9 @@ "source_mapping": { "start": 636, "length": 10, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 33 @@ -711,9 +711,9 @@ "source_mapping": { "start": 588, "length": 113, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 33, @@ -731,9 +731,9 @@ "source_mapping": { "start": 442, "length": 344, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 28, @@ -760,9 +760,9 @@ } } ], - "description": "LocalReturnVariables.shadowedReturn().local_scope_0 (tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#34) shadows:\n\t- LocalReturnVariables.shadowedReturn().local (tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#33) (return variable)\n", - "markdown": "[LocalReturnVariables.shadowedReturn().local_scope_0](tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L34) shadows:\n\t- [LocalReturnVariables.shadowedReturn().local](tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L33) (return variable)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L34", + "description": "LocalReturnVariables.shadowedReturn().local_scope_0 (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#34) shadows:\n\t- LocalReturnVariables.shadowedReturn().local (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#33) (return variable)\n", + "markdown": "[LocalReturnVariables.shadowedReturn().local_scope_0](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L34) shadows:\n\t- [LocalReturnVariables.shadowedReturn().local](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L33) (return variable)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L34", "id": "cd63bdf3f6420e4e109d20ec44b52fcbcbde1c5b6a0701fc6994b35960ab1e85", "check": "shadowing-local", "impact": "Low", @@ -776,9 +776,9 @@ "source_mapping": { "start": 413, "length": 6, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -793,9 +793,9 @@ "source_mapping": { "start": 357, "length": 81, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 25 @@ -810,9 +810,9 @@ "source_mapping": { "start": 201, "length": 239, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 16, @@ -842,9 +842,9 @@ "source_mapping": { "start": 154, "length": 27, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 11 @@ -859,9 +859,9 @@ "source_mapping": { "start": 88, "length": 111, - "filename_relative": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", "is_dependency": false, "lines": [ 8, @@ -880,9 +880,9 @@ } } ], - "description": "FurtherExtendedContract.shadowingParent(uint256).z (tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContract.z() (tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#11) (function)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).z](tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContract.z()](tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L11) (function)\n", - "first_markdown_element": "tests/detectors/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", + "description": "FurtherExtendedContract.shadowingParent(uint256).z (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContract.z() (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#11) (function)\n", + "markdown": "[FurtherExtendedContract.shadowingParent(uint256).z](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContract.z()](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L11) (function)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", "id": "e3d2948e9c1252fe84e0d7e58f6682af7af84ef209f6e71f039faccabf07b0bd", "check": "shadowing-local", "impact": "Low", diff --git a/tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol b/tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol similarity index 100% rename from tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol rename to tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol diff --git a/tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol.0.4.25.StateShadowing.json b/tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol.0.4.25.StateShadowing.json similarity index 67% rename from tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol.0.4.25.StateShadowing.json rename to tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol.0.4.25.StateShadowing.json index 648750110..7a085c8ba 100644 --- a/tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol.0.4.25.StateShadowing.json +++ b/tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol.0.4.25.StateShadowing.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 172, "length": 13, - "filename_relative": "tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", "is_dependency": false, "lines": [ 12 @@ -25,9 +25,9 @@ "source_mapping": { "start": 126, "length": 210, - "filename_relative": "tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", "is_dependency": false, "lines": [ 11, @@ -54,9 +54,9 @@ "source_mapping": { "start": 27, "length": 13, - "filename_relative": "tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", "is_dependency": false, "lines": [ 2 @@ -71,9 +71,9 @@ "source_mapping": { "start": 0, "length": 124, - "filename_relative": "tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", "is_dependency": false, "lines": [ 1, @@ -93,9 +93,9 @@ } } ], - "description": "DerivedContract.owner (tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol#12) shadows:\n\t- BaseContract.owner (tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol#2)\n", - "markdown": "[DerivedContract.owner](tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol#L12) shadows:\n\t- [BaseContract.owner](tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol#L2)\n", - "first_markdown_element": "tests/detectors/shadowing-state/0.4.25/shadowing_state_variable.sol#L12", + "description": "DerivedContract.owner (tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol#12) shadows:\n\t- BaseContract.owner (tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol#2)\n", + "markdown": "[DerivedContract.owner](tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol#L12) shadows:\n\t- [BaseContract.owner](tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol#L2)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol#L12", "id": "9c5c3fc5091b9ecd6ec271fdbb3036d9d3426cdf9a09d6cc293fd7de9240e4ab", "check": "shadowing-state", "impact": "High", diff --git a/tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol b/tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol similarity index 100% rename from tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol rename to tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol diff --git a/tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol.0.5.16.StateShadowing.json b/tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol.0.5.16.StateShadowing.json similarity index 67% rename from tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol.0.5.16.StateShadowing.json rename to tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol.0.5.16.StateShadowing.json index 953f9c825..ddbd655ed 100644 --- a/tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol.0.5.16.StateShadowing.json +++ b/tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol.0.5.16.StateShadowing.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 172, "length": 13, - "filename_relative": "tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", "is_dependency": false, "lines": [ 12 @@ -25,9 +25,9 @@ "source_mapping": { "start": 126, "length": 227, - "filename_relative": "tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", "is_dependency": false, "lines": [ 11, @@ -54,9 +54,9 @@ "source_mapping": { "start": 27, "length": 13, - "filename_relative": "tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", "is_dependency": false, "lines": [ 2 @@ -71,9 +71,9 @@ "source_mapping": { "start": 0, "length": 124, - "filename_relative": "tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", "is_dependency": false, "lines": [ 1, @@ -93,9 +93,9 @@ } } ], - "description": "DerivedContract.owner (tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol#12) shadows:\n\t- BaseContract.owner (tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol#2)\n", - "markdown": "[DerivedContract.owner](tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol#L12) shadows:\n\t- [BaseContract.owner](tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol#L2)\n", - "first_markdown_element": "tests/detectors/shadowing-state/0.5.16/shadowing_state_variable.sol#L12", + "description": "DerivedContract.owner (tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol#12) shadows:\n\t- BaseContract.owner (tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol#2)\n", + "markdown": "[DerivedContract.owner](tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol#L12) shadows:\n\t- [BaseContract.owner](tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol#L2)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol#L12", "id": "9c5c3fc5091b9ecd6ec271fdbb3036d9d3426cdf9a09d6cc293fd7de9240e4ab", "check": "shadowing-state", "impact": "High", diff --git a/tests/detectors/shadowing-state/0.6.11/shadowing_state_variable.sol b/tests/e2e/detectors/test_data/shadowing-state/0.6.11/shadowing_state_variable.sol similarity index 100% rename from tests/detectors/shadowing-state/0.6.11/shadowing_state_variable.sol rename to tests/e2e/detectors/test_data/shadowing-state/0.6.11/shadowing_state_variable.sol diff --git a/tests/detectors/shadowing-state/0.6.11/shadowing_state_variable.sol.0.6.11.StateShadowing.json b/tests/e2e/detectors/test_data/shadowing-state/0.6.11/shadowing_state_variable.sol.0.6.11.StateShadowing.json similarity index 100% rename from tests/detectors/shadowing-state/0.6.11/shadowing_state_variable.sol.0.6.11.StateShadowing.json rename to tests/e2e/detectors/test_data/shadowing-state/0.6.11/shadowing_state_variable.sol.0.6.11.StateShadowing.json diff --git a/tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol b/tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol similarity index 100% rename from tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol rename to tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol diff --git a/tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol.0.7.5.StateShadowing.json b/tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol.0.7.5.StateShadowing.json similarity index 65% rename from tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol.0.7.5.StateShadowing.json rename to tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol.0.7.5.StateShadowing.json index fb9824ca1..93578d854 100644 --- a/tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol.0.7.5.StateShadowing.json +++ b/tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol.0.7.5.StateShadowing.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 156, "length": 24, - "filename_relative": "tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", "is_dependency": false, "lines": [ 8 @@ -25,9 +25,9 @@ "source_mapping": { "start": 110, "length": 102, - "filename_relative": "tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", "is_dependency": false, "lines": [ 7, @@ -47,9 +47,9 @@ "source_mapping": { "start": 51, "length": 25, - "filename_relative": "tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", "is_dependency": false, "lines": [ 3 @@ -64,9 +64,9 @@ "source_mapping": { "start": 24, "length": 84, - "filename_relative": "tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", "is_dependency": false, "lines": [ 2, @@ -81,9 +81,9 @@ } } ], - "description": "DerivedContract.__gap (tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol#8) shadows:\n\t- BaseContract.__gap (tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol#3)\n", - "markdown": "[DerivedContract.__gap](tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol#L8) shadows:\n\t- [BaseContract.__gap](tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol#L3)\n", - "first_markdown_element": "tests/detectors/shadowing-state/0.7.5/public_gap_variable.sol#L8", + "description": "DerivedContract.__gap (tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol#8) shadows:\n\t- BaseContract.__gap (tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol#3)\n", + "markdown": "[DerivedContract.__gap](tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol#L8) shadows:\n\t- [BaseContract.__gap](tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol#L8", "id": "8f81b2b4b3285fe96f0b580cdd2144cc6cf6808d970ba68878b9901744069c4c", "check": "shadowing-state", "impact": "High", diff --git a/tests/detectors/shadowing-state/0.7.5/shadowing_state_variable.sol b/tests/e2e/detectors/test_data/shadowing-state/0.7.5/shadowing_state_variable.sol similarity index 100% rename from tests/detectors/shadowing-state/0.7.5/shadowing_state_variable.sol rename to tests/e2e/detectors/test_data/shadowing-state/0.7.5/shadowing_state_variable.sol diff --git a/tests/detectors/shadowing-state/0.7.5/shadowing_state_variable.sol.0.7.5.StateShadowing.json b/tests/e2e/detectors/test_data/shadowing-state/0.7.5/shadowing_state_variable.sol.0.7.5.StateShadowing.json similarity index 100% rename from tests/detectors/shadowing-state/0.7.5/shadowing_state_variable.sol.0.7.5.StateShadowing.json rename to tests/e2e/detectors/test_data/shadowing-state/0.7.5/shadowing_state_variable.sol.0.7.5.StateShadowing.json diff --git a/tests/detectors/shadowing-state/0.7.6/shadowing_state_variable.sol b/tests/e2e/detectors/test_data/shadowing-state/0.7.6/shadowing_state_variable.sol similarity index 100% rename from tests/detectors/shadowing-state/0.7.6/shadowing_state_variable.sol rename to tests/e2e/detectors/test_data/shadowing-state/0.7.6/shadowing_state_variable.sol diff --git a/tests/detectors/shadowing-state/0.7.6/shadowing_state_variable.sol.0.7.6.StateShadowing.json b/tests/e2e/detectors/test_data/shadowing-state/0.7.6/shadowing_state_variable.sol.0.7.6.StateShadowing.json similarity index 100% rename from tests/detectors/shadowing-state/0.7.6/shadowing_state_variable.sol.0.7.6.StateShadowing.json rename to tests/e2e/detectors/test_data/shadowing-state/0.7.6/shadowing_state_variable.sol.0.7.6.StateShadowing.json diff --git a/tests/detectors/similar-names/0.4.25/similar_variables.sol b/tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol similarity index 100% rename from tests/detectors/similar-names/0.4.25/similar_variables.sol rename to tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol diff --git a/tests/detectors/similar-names/0.4.25/similar_variables.sol.0.4.25.SimilarVarsDetection.json b/tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol.0.4.25.SimilarVarsDetection.json similarity index 77% rename from tests/detectors/similar-names/0.4.25/similar_variables.sol.0.4.25.SimilarVarsDetection.json rename to tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol.0.4.25.SimilarVarsDetection.json index 71d0228f9..ca8ff4d95 100644 --- a/tests/detectors/similar-names/0.4.25/similar_variables.sol.0.4.25.SimilarVarsDetection.json +++ b/tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol.0.4.25.SimilarVarsDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 69, "length": 21, - "filename_relative": "tests/detectors/similar-names/0.4.25/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.4.25/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", "is_dependency": false, "lines": [ 3 @@ -25,9 +25,9 @@ "source_mapping": { "start": 23, "length": 149, - "filename_relative": "tests/detectors/similar-names/0.4.25/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.4.25/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", "is_dependency": false, "lines": [ 2, @@ -46,9 +46,9 @@ "source_mapping": { "start": 0, "length": 174, - "filename_relative": "tests/detectors/similar-names/0.4.25/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.4.25/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", "is_dependency": false, "lines": [ 1, @@ -75,9 +75,9 @@ "source_mapping": { "start": 100, "length": 21, - "filename_relative": "tests/detectors/similar-names/0.4.25/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.4.25/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", "is_dependency": false, "lines": [ 4 @@ -92,9 +92,9 @@ "source_mapping": { "start": 23, "length": 149, - "filename_relative": "tests/detectors/similar-names/0.4.25/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.4.25/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", "is_dependency": false, "lines": [ 2, @@ -113,9 +113,9 @@ "source_mapping": { "start": 0, "length": 174, - "filename_relative": "tests/detectors/similar-names/0.4.25/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.4.25/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", "is_dependency": false, "lines": [ 1, @@ -137,9 +137,9 @@ } } ], - "description": "Variable Similar.f().testVariable (tests/detectors/similar-names/0.4.25/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/detectors/similar-names/0.4.25/similar_variables.sol#4)\n", - "markdown": "Variable [Similar.f().testVariable](tests/detectors/similar-names/0.4.25/similar_variables.sol#L3) is too similar to [Similar.f().textVariable](tests/detectors/similar-names/0.4.25/similar_variables.sol#L4)\n", - "first_markdown_element": "tests/detectors/similar-names/0.4.25/similar_variables.sol#L3", + "description": "Variable Similar.f().testVariable (tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol#4)\n", + "markdown": "Variable [Similar.f().testVariable](tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol#L3) is too similar to [Similar.f().textVariable](tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol#L4)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol#L3", "id": "2f767a2bb6f48a8435ce456e2d3ad859bdeccf66507735a14e20515e914038d5", "check": "similar-names", "impact": "Informational", diff --git a/tests/detectors/similar-names/0.5.16/similar_variables.sol b/tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol similarity index 100% rename from tests/detectors/similar-names/0.5.16/similar_variables.sol rename to tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol diff --git a/tests/detectors/similar-names/0.5.16/similar_variables.sol.0.5.16.SimilarVarsDetection.json b/tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol.0.5.16.SimilarVarsDetection.json similarity index 77% rename from tests/detectors/similar-names/0.5.16/similar_variables.sol.0.5.16.SimilarVarsDetection.json rename to tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol.0.5.16.SimilarVarsDetection.json index 29a08ad8a..6bdc717e6 100644 --- a/tests/detectors/similar-names/0.5.16/similar_variables.sol.0.5.16.SimilarVarsDetection.json +++ b/tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol.0.5.16.SimilarVarsDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 69, "length": 21, - "filename_relative": "tests/detectors/similar-names/0.5.16/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.5.16/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", "is_dependency": false, "lines": [ 3 @@ -25,9 +25,9 @@ "source_mapping": { "start": 23, "length": 149, - "filename_relative": "tests/detectors/similar-names/0.5.16/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.5.16/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", "is_dependency": false, "lines": [ 2, @@ -46,9 +46,9 @@ "source_mapping": { "start": 0, "length": 174, - "filename_relative": "tests/detectors/similar-names/0.5.16/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.5.16/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", "is_dependency": false, "lines": [ 1, @@ -75,9 +75,9 @@ "source_mapping": { "start": 100, "length": 21, - "filename_relative": "tests/detectors/similar-names/0.5.16/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.5.16/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", "is_dependency": false, "lines": [ 4 @@ -92,9 +92,9 @@ "source_mapping": { "start": 23, "length": 149, - "filename_relative": "tests/detectors/similar-names/0.5.16/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.5.16/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", "is_dependency": false, "lines": [ 2, @@ -113,9 +113,9 @@ "source_mapping": { "start": 0, "length": 174, - "filename_relative": "tests/detectors/similar-names/0.5.16/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.5.16/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", "is_dependency": false, "lines": [ 1, @@ -137,9 +137,9 @@ } } ], - "description": "Variable Similar.f().testVariable (tests/detectors/similar-names/0.5.16/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/detectors/similar-names/0.5.16/similar_variables.sol#4)\n", - "markdown": "Variable [Similar.f().testVariable](tests/detectors/similar-names/0.5.16/similar_variables.sol#L3) is too similar to [Similar.f().textVariable](tests/detectors/similar-names/0.5.16/similar_variables.sol#L4)\n", - "first_markdown_element": "tests/detectors/similar-names/0.5.16/similar_variables.sol#L3", + "description": "Variable Similar.f().testVariable (tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol#4)\n", + "markdown": "Variable [Similar.f().testVariable](tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol#L3) is too similar to [Similar.f().textVariable](tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol#L4)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol#L3", "id": "2f767a2bb6f48a8435ce456e2d3ad859bdeccf66507735a14e20515e914038d5", "check": "similar-names", "impact": "Informational", diff --git a/tests/detectors/similar-names/0.6.11/similar_variables.sol b/tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol similarity index 100% rename from tests/detectors/similar-names/0.6.11/similar_variables.sol rename to tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol diff --git a/tests/detectors/similar-names/0.6.11/similar_variables.sol.0.6.11.SimilarVarsDetection.json b/tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol.0.6.11.SimilarVarsDetection.json similarity index 77% rename from tests/detectors/similar-names/0.6.11/similar_variables.sol.0.6.11.SimilarVarsDetection.json rename to tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol.0.6.11.SimilarVarsDetection.json index 18be023a0..cb4140fff 100644 --- a/tests/detectors/similar-names/0.6.11/similar_variables.sol.0.6.11.SimilarVarsDetection.json +++ b/tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol.0.6.11.SimilarVarsDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 69, "length": 21, - "filename_relative": "tests/detectors/similar-names/0.6.11/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.6.11/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", "is_dependency": false, "lines": [ 3 @@ -25,9 +25,9 @@ "source_mapping": { "start": 23, "length": 149, - "filename_relative": "tests/detectors/similar-names/0.6.11/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.6.11/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", "is_dependency": false, "lines": [ 2, @@ -46,9 +46,9 @@ "source_mapping": { "start": 0, "length": 174, - "filename_relative": "tests/detectors/similar-names/0.6.11/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.6.11/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", "is_dependency": false, "lines": [ 1, @@ -75,9 +75,9 @@ "source_mapping": { "start": 100, "length": 21, - "filename_relative": "tests/detectors/similar-names/0.6.11/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.6.11/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", "is_dependency": false, "lines": [ 4 @@ -92,9 +92,9 @@ "source_mapping": { "start": 23, "length": 149, - "filename_relative": "tests/detectors/similar-names/0.6.11/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.6.11/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", "is_dependency": false, "lines": [ 2, @@ -113,9 +113,9 @@ "source_mapping": { "start": 0, "length": 174, - "filename_relative": "tests/detectors/similar-names/0.6.11/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.6.11/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", "is_dependency": false, "lines": [ 1, @@ -137,9 +137,9 @@ } } ], - "description": "Variable Similar.f().testVariable (tests/detectors/similar-names/0.6.11/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/detectors/similar-names/0.6.11/similar_variables.sol#4)\n", - "markdown": "Variable [Similar.f().testVariable](tests/detectors/similar-names/0.6.11/similar_variables.sol#L3) is too similar to [Similar.f().textVariable](tests/detectors/similar-names/0.6.11/similar_variables.sol#L4)\n", - "first_markdown_element": "tests/detectors/similar-names/0.6.11/similar_variables.sol#L3", + "description": "Variable Similar.f().testVariable (tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol#4)\n", + "markdown": "Variable [Similar.f().testVariable](tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol#L3) is too similar to [Similar.f().textVariable](tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol#L4)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol#L3", "id": "2f767a2bb6f48a8435ce456e2d3ad859bdeccf66507735a14e20515e914038d5", "check": "similar-names", "impact": "Informational", diff --git a/tests/detectors/similar-names/0.7.6/similar_variables.sol b/tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol similarity index 100% rename from tests/detectors/similar-names/0.7.6/similar_variables.sol rename to tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol diff --git a/tests/detectors/similar-names/0.7.6/similar_variables.sol.0.7.6.SimilarVarsDetection.json b/tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol.0.7.6.SimilarVarsDetection.json similarity index 77% rename from tests/detectors/similar-names/0.7.6/similar_variables.sol.0.7.6.SimilarVarsDetection.json rename to tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol.0.7.6.SimilarVarsDetection.json index fbb5dd766..959b53404 100644 --- a/tests/detectors/similar-names/0.7.6/similar_variables.sol.0.7.6.SimilarVarsDetection.json +++ b/tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol.0.7.6.SimilarVarsDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 69, "length": 21, - "filename_relative": "tests/detectors/similar-names/0.7.6/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.7.6/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", "is_dependency": false, "lines": [ 3 @@ -25,9 +25,9 @@ "source_mapping": { "start": 23, "length": 149, - "filename_relative": "tests/detectors/similar-names/0.7.6/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.7.6/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", "is_dependency": false, "lines": [ 2, @@ -46,9 +46,9 @@ "source_mapping": { "start": 0, "length": 174, - "filename_relative": "tests/detectors/similar-names/0.7.6/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.7.6/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", "is_dependency": false, "lines": [ 1, @@ -75,9 +75,9 @@ "source_mapping": { "start": 100, "length": 21, - "filename_relative": "tests/detectors/similar-names/0.7.6/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.7.6/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", "is_dependency": false, "lines": [ 4 @@ -92,9 +92,9 @@ "source_mapping": { "start": 23, "length": 149, - "filename_relative": "tests/detectors/similar-names/0.7.6/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.7.6/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", "is_dependency": false, "lines": [ 2, @@ -113,9 +113,9 @@ "source_mapping": { "start": 0, "length": 174, - "filename_relative": "tests/detectors/similar-names/0.7.6/similar_variables.sol", + "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/similar-names/0.7.6/similar_variables.sol", + "filename_short": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", "is_dependency": false, "lines": [ 1, @@ -137,9 +137,9 @@ } } ], - "description": "Variable Similar.f().testVariable (tests/detectors/similar-names/0.7.6/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/detectors/similar-names/0.7.6/similar_variables.sol#4)\n", - "markdown": "Variable [Similar.f().testVariable](tests/detectors/similar-names/0.7.6/similar_variables.sol#L3) is too similar to [Similar.f().textVariable](tests/detectors/similar-names/0.7.6/similar_variables.sol#L4)\n", - "first_markdown_element": "tests/detectors/similar-names/0.7.6/similar_variables.sol#L3", + "description": "Variable Similar.f().testVariable (tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol#4)\n", + "markdown": "Variable [Similar.f().testVariable](tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol#L3) is too similar to [Similar.f().textVariable](tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol#L4)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol#L3", "id": "2f767a2bb6f48a8435ce456e2d3ad859bdeccf66507735a14e20515e914038d5", "check": "similar-names", "impact": "Informational", diff --git a/tests/detectors/solc-version/0.4.25/static.sol b/tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol similarity index 100% rename from tests/detectors/solc-version/0.4.25/static.sol rename to tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol diff --git a/tests/detectors/solc-version/0.4.25/static.sol.0.4.25.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol.0.4.25.IncorrectSolc.json similarity index 67% rename from tests/detectors/solc-version/0.4.25/static.sol.0.4.25.IncorrectSolc.json rename to tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol.0.4.25.IncorrectSolc.json index 9dea129b5..20ffda221 100644 --- a/tests/detectors/solc-version/0.4.25/static.sol.0.4.25.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol.0.4.25.IncorrectSolc.json @@ -1,5 +1,15 @@ [ [ + { + "elements": [], + "description": "solc-0.4.25 is not recommended for deployment\n", + "markdown": "solc-0.4.25 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "4d64003d70a62b1c6963f871e841b6cbd633d07d95554e1a50e0f25d9b71ebb3", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + }, { "elements": [ { @@ -8,9 +18,9 @@ "source_mapping": { "start": 0, "length": 23, - "filename_relative": "tests/detectors/solc-version/0.4.25/static.sol", + "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/solc-version/0.4.25/static.sol", + "filename_short": "tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol", "is_dependency": false, "lines": [ 1 @@ -27,20 +37,10 @@ } } ], - "description": "Pragma version0.4.25 (tests/detectors/solc-version/0.4.25/static.sol#1) allows old versions\n", - "markdown": "Pragma version[0.4.25](tests/detectors/solc-version/0.4.25/static.sol#L1) allows old versions\n", - "first_markdown_element": "tests/detectors/solc-version/0.4.25/static.sol#L1", - "id": "029e1373a8867a45707d0ef3f6d0895191b9a4c60e71980c2ac58b5589c6256c", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "solc-0.4.25 is not recommended for deployment\n", - "markdown": "solc-0.4.25 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "4d64003d70a62b1c6963f871e841b6cbd633d07d95554e1a50e0f25d9b71ebb3", + "description": "Pragma version0.4.25 (tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol#1) allows old versions\n", + "markdown": "Pragma version[0.4.25](tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol#L1) allows old versions\n", + "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol#L1", + "id": "4e5f2e515609476e00f6be631f981c3589c446b78660745af9a3593ca1130fef", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/solc-version/0.5.14/static.sol b/tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol similarity index 100% rename from tests/detectors/solc-version/0.5.14/static.sol rename to tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol diff --git a/tests/detectors/solc-version/0.5.14/static.sol.0.5.14.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol.0.5.14.IncorrectSolc.json similarity index 64% rename from tests/detectors/solc-version/0.5.14/static.sol.0.5.14.IncorrectSolc.json rename to tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol.0.5.14.IncorrectSolc.json index 03aded254..a43f586bc 100644 --- a/tests/detectors/solc-version/0.5.14/static.sol.0.5.14.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol.0.5.14.IncorrectSolc.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 0, "length": 23, - "filename_relative": "tests/detectors/solc-version/0.5.14/static.sol", + "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/solc-version/0.5.14/static.sol", + "filename_short": "tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol", "is_dependency": false, "lines": [ 1 @@ -27,10 +27,10 @@ } } ], - "description": "Pragma version0.5.14 (tests/detectors/solc-version/0.5.14/static.sol#1) is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n", - "markdown": "Pragma version[0.5.14](tests/detectors/solc-version/0.5.14/static.sol#L1) is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n", - "first_markdown_element": "tests/detectors/solc-version/0.5.14/static.sol#L1", - "id": "cf9412fdac7f959dea885dbcebb2f9cfb0f3b0ca55f8fc84ebdc51e09eaf6957", + "description": "Pragma version0.5.14 (tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol#1) is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n", + "markdown": "Pragma version[0.5.14](tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol#L1) is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol#L1", + "id": "ba83251344888926a6441f526dc8f9e88cae6c86918e93a323d705d491f8e7a1", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/solc-version/0.5.16/dynamic_1.sol b/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol similarity index 100% rename from tests/detectors/solc-version/0.5.16/dynamic_1.sol rename to tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol diff --git a/tests/detectors/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json similarity index 57% rename from tests/detectors/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json rename to tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json index 599392dc8..b957668f0 100644 --- a/tests/detectors/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json @@ -1,15 +1,5 @@ [ [ - { - "elements": [], - "description": "solc-0.5.16 is not recommended for deployment\n", - "markdown": "solc-0.5.16 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "94ddf430efb860e471a768a108c851848fa998e8a2c489c6fb23ed71d3ef4b09", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, { "elements": [ { @@ -18,9 +8,9 @@ "source_mapping": { "start": 0, "length": 24, - "filename_relative": "tests/detectors/solc-version/0.5.16/dynamic_1.sol", + "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/solc-version/0.5.16/dynamic_1.sol", + "filename_short": "tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol", "is_dependency": false, "lines": [ 1 @@ -38,10 +28,20 @@ } } ], - "description": "Pragma version^0.5.15 (tests/detectors/solc-version/0.5.16/dynamic_1.sol#1) allows old versions\n", - "markdown": "Pragma version[^0.5.15](tests/detectors/solc-version/0.5.16/dynamic_1.sol#L1) allows old versions\n", - "first_markdown_element": "tests/detectors/solc-version/0.5.16/dynamic_1.sol#L1", - "id": "b837ad353716586dca5845e185efa85b1ed38c36ff731820ea9a42fc72171527", + "description": "Pragma version^0.5.15 (tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol#1) allows old versions\n", + "markdown": "Pragma version[^0.5.15](tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol#L1) allows old versions\n", + "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol#L1", + "id": "91d2ad5b0149c3b4c4625cb637af4532cf9598a5a2b067ebd2c8e9b6bb5fc079", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "solc-0.5.15 is not recommended for deployment\n", + "markdown": "solc-0.5.15 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "f968b391557275cb3d691dfc65ba75d1e189238446ae8e37060e0a9af12a48c8", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/solc-version/0.5.16/dynamic_2.sol b/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol similarity index 100% rename from tests/detectors/solc-version/0.5.16/dynamic_2.sol rename to tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol diff --git a/tests/detectors/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json similarity index 57% rename from tests/detectors/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json rename to tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json index 8eacb5663..6e4b0e069 100644 --- a/tests/detectors/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 0, "length": 31, - "filename_relative": "tests/detectors/solc-version/0.5.16/dynamic_2.sol", + "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/solc-version/0.5.16/dynamic_2.sol", + "filename_short": "tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol", "is_dependency": false, "lines": [ 1 @@ -31,20 +31,20 @@ } } ], - "description": "Pragma version>=0.5.0<0.6.0 (tests/detectors/solc-version/0.5.16/dynamic_2.sol#1) allows old versions\n", - "markdown": "Pragma version[>=0.5.0<0.6.0](tests/detectors/solc-version/0.5.16/dynamic_2.sol#L1) allows old versions\n", - "first_markdown_element": "tests/detectors/solc-version/0.5.16/dynamic_2.sol#L1", - "id": "0f9930eec9fe7848abc3ded6a5fc053e0208ffa1510b01518fb1348e0f0b01b1", + "description": "Pragma version>=0.5.0<0.6.0 (tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol#1) allows old versions\n", + "markdown": "Pragma version[>=0.5.0<0.6.0](tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol#L1) allows old versions\n", + "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol#L1", + "id": "02a864c253786052cb7908fed97573b424063a911900f7b2a444ccf28773935a", "check": "solc-version", "impact": "Informational", "confidence": "High" }, { "elements": [], - "description": "solc-0.5.16 is not recommended for deployment\n", - "markdown": "solc-0.5.16 is not recommended for deployment\n", + "description": "solc-0.5.0 is not recommended for deployment\n", + "markdown": "solc-0.5.0 is not recommended for deployment\n", "first_markdown_element": "", - "id": "94ddf430efb860e471a768a108c851848fa998e8a2c489c6fb23ed71d3ef4b09", + "id": "21539c75e015cde5bdae3a77b39cf5d17be24d0b87a05da1d6b5d5020b7aef22", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/solc-version/0.5.16/static.sol b/tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol similarity index 100% rename from tests/detectors/solc-version/0.5.16/static.sol rename to tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol diff --git a/tests/detectors/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json similarity index 67% rename from tests/detectors/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json rename to tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json index df4bac19d..28fb98f0a 100644 --- a/tests/detectors/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json @@ -1,5 +1,15 @@ [ [ + { + "elements": [], + "description": "solc-0.5.16 is not recommended for deployment\n", + "markdown": "solc-0.5.16 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "94ddf430efb860e471a768a108c851848fa998e8a2c489c6fb23ed71d3ef4b09", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + }, { "elements": [ { @@ -8,9 +18,9 @@ "source_mapping": { "start": 0, "length": 23, - "filename_relative": "tests/detectors/solc-version/0.5.16/static.sol", + "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/solc-version/0.5.16/static.sol", + "filename_short": "tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol", "is_dependency": false, "lines": [ 1 @@ -27,20 +37,10 @@ } } ], - "description": "Pragma version0.5.16 (tests/detectors/solc-version/0.5.16/static.sol#1) allows old versions\n", - "markdown": "Pragma version[0.5.16](tests/detectors/solc-version/0.5.16/static.sol#L1) allows old versions\n", - "first_markdown_element": "tests/detectors/solc-version/0.5.16/static.sol#L1", - "id": "2407d991de90e57d2f6b6bdbc61bb939845a5c0bb2d82910ed4c49abff2ab6e3", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "solc-0.5.16 is not recommended for deployment\n", - "markdown": "solc-0.5.16 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "94ddf430efb860e471a768a108c851848fa998e8a2c489c6fb23ed71d3ef4b09", + "description": "Pragma version0.5.16 (tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol#1) allows old versions\n", + "markdown": "Pragma version[0.5.16](tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol#L1) allows old versions\n", + "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol#L1", + "id": "ff39ee4e334e44fff23e833d9ee84b4cfcb43bd2ac704a9d5aa1ef82a1a38d5d", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/solc-version/0.6.10/static.sol b/tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol similarity index 100% rename from tests/detectors/solc-version/0.6.10/static.sol rename to tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol diff --git a/tests/detectors/solc-version/0.6.10/static.sol.0.6.10.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol.0.6.10.IncorrectSolc.json similarity index 67% rename from tests/detectors/solc-version/0.6.10/static.sol.0.6.10.IncorrectSolc.json rename to tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol.0.6.10.IncorrectSolc.json index 10d0a03fc..fc324892e 100644 --- a/tests/detectors/solc-version/0.6.10/static.sol.0.6.10.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol.0.6.10.IncorrectSolc.json @@ -18,9 +18,9 @@ "source_mapping": { "start": 0, "length": 23, - "filename_relative": "tests/detectors/solc-version/0.6.10/static.sol", + "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/solc-version/0.6.10/static.sol", + "filename_short": "tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol", "is_dependency": false, "lines": [ 1 @@ -37,10 +37,10 @@ } } ], - "description": "Pragma version0.6.10 (tests/detectors/solc-version/0.6.10/static.sol#1) allows old versions\n", - "markdown": "Pragma version[0.6.10](tests/detectors/solc-version/0.6.10/static.sol#L1) allows old versions\n", - "first_markdown_element": "tests/detectors/solc-version/0.6.10/static.sol#L1", - "id": "f8fa962b3064cc35b3504cfbd7bd2067f90239895c1c23a55ce6666803131780", + "description": "Pragma version0.6.10 (tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol#1) allows old versions\n", + "markdown": "Pragma version[0.6.10](tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol#L1) allows old versions\n", + "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol#L1", + "id": "cd90c39225151b788bfa16a1691e7536f51464cd6e59f55694a1022e6aea7d96", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/solc-version/0.6.11/dynamic_1.sol b/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol similarity index 100% rename from tests/detectors/solc-version/0.6.11/dynamic_1.sol rename to tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol diff --git a/tests/detectors/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json similarity index 57% rename from tests/detectors/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json rename to tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json index a71fa6406..b3e1d8420 100644 --- a/tests/detectors/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json @@ -1,5 +1,15 @@ [ [ + { + "elements": [], + "description": "solc-0.6.10 is not recommended for deployment\n", + "markdown": "solc-0.6.10 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "b2c2f26d29a163098673e6dcb2342e00d94996a84040bac62f7dbb2f20fa8f28", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + }, { "elements": [ { @@ -8,9 +18,9 @@ "source_mapping": { "start": 0, "length": 24, - "filename_relative": "tests/detectors/solc-version/0.6.11/dynamic_1.sol", + "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/solc-version/0.6.11/dynamic_1.sol", + "filename_short": "tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol", "is_dependency": false, "lines": [ 1 @@ -28,20 +38,10 @@ } } ], - "description": "Pragma version^0.6.10 (tests/detectors/solc-version/0.6.11/dynamic_1.sol#1) allows old versions\n", - "markdown": "Pragma version[^0.6.10](tests/detectors/solc-version/0.6.11/dynamic_1.sol#L1) allows old versions\n", - "first_markdown_element": "tests/detectors/solc-version/0.6.11/dynamic_1.sol#L1", - "id": "ba2de3955a664b3846697e1ad89d5eb477b9992d67d86bf5ac36b904a8ccca4b", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "solc-0.6.11 is not recommended for deployment\n", - "markdown": "solc-0.6.11 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "bafd522d637977886f038e619ad47c1987efedc6c4c24515e6e27b23585535bd", + "description": "Pragma version^0.6.10 (tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol#1) allows old versions\n", + "markdown": "Pragma version[^0.6.10](tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol#L1) allows old versions\n", + "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol#L1", + "id": "fe9bdf90f61e61a27a7b6cff5d46a367791bb8a4e5cee82b66b2a387fcb1b07c", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/solc-version/0.6.11/dynamic_2.sol b/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol similarity index 100% rename from tests/detectors/solc-version/0.6.11/dynamic_2.sol rename to tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol diff --git a/tests/detectors/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json similarity index 57% rename from tests/detectors/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json rename to tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json index d6cac106b..09d9bab0f 100644 --- a/tests/detectors/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json @@ -1,5 +1,15 @@ [ [ + { + "elements": [], + "description": "solc-0.6.0 is not recommended for deployment\n", + "markdown": "solc-0.6.0 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "7740810b9fcfaf3efb5f0190072038a7d60dee014bb62485850611033bd7a5f0", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + }, { "elements": [ { @@ -8,9 +18,9 @@ "source_mapping": { "start": 0, "length": 31, - "filename_relative": "tests/detectors/solc-version/0.6.11/dynamic_2.sol", + "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/solc-version/0.6.11/dynamic_2.sol", + "filename_short": "tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol", "is_dependency": false, "lines": [ 1 @@ -31,20 +41,10 @@ } } ], - "description": "Pragma version>=0.6.0<0.7.0 (tests/detectors/solc-version/0.6.11/dynamic_2.sol#1) allows old versions\n", - "markdown": "Pragma version[>=0.6.0<0.7.0](tests/detectors/solc-version/0.6.11/dynamic_2.sol#L1) allows old versions\n", - "first_markdown_element": "tests/detectors/solc-version/0.6.11/dynamic_2.sol#L1", - "id": "8c08bc3809d977ad0253b208683307501206a69d53c84f78e68fad3ae144117c", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "solc-0.6.11 is not recommended for deployment\n", - "markdown": "solc-0.6.11 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "bafd522d637977886f038e619ad47c1987efedc6c4c24515e6e27b23585535bd", + "description": "Pragma version>=0.6.0<0.7.0 (tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol#1) allows old versions\n", + "markdown": "Pragma version[>=0.6.0<0.7.0](tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol#L1) allows old versions\n", + "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol#L1", + "id": "a25609bb9ae5982429e846e71d245a10687e54dd89db1e026ce8abc372a6b10a", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/solc-version/0.6.11/static.sol b/tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol similarity index 100% rename from tests/detectors/solc-version/0.6.11/static.sol rename to tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol diff --git a/tests/detectors/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json similarity index 67% rename from tests/detectors/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json rename to tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json index 61ea21e16..97f46f030 100644 --- a/tests/detectors/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 0, "length": 23, - "filename_relative": "tests/detectors/solc-version/0.6.11/static.sol", + "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/solc-version/0.6.11/static.sol", + "filename_short": "tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol", "is_dependency": false, "lines": [ 1 @@ -27,10 +27,10 @@ } } ], - "description": "Pragma version0.6.11 (tests/detectors/solc-version/0.6.11/static.sol#1) allows old versions\n", - "markdown": "Pragma version[0.6.11](tests/detectors/solc-version/0.6.11/static.sol#L1) allows old versions\n", - "first_markdown_element": "tests/detectors/solc-version/0.6.11/static.sol#L1", - "id": "ad7b24eed22ac098a57ae02ade0ccffb4cb094e851effe93cad1d0a65b489816", + "description": "Pragma version0.6.11 (tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol#1) allows old versions\n", + "markdown": "Pragma version[0.6.11](tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol#L1) allows old versions\n", + "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol#L1", + "id": "1a28cd562fc4e98f8404f2c820705720133d7ad9abc8eeca6940753963e73ea8", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/solc-version/0.7.4/static.sol b/tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol similarity index 100% rename from tests/detectors/solc-version/0.7.4/static.sol rename to tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol diff --git a/tests/detectors/solc-version/0.7.4/static.sol.0.7.4.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol.0.7.4.IncorrectSolc.json similarity index 67% rename from tests/detectors/solc-version/0.7.4/static.sol.0.7.4.IncorrectSolc.json rename to tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol.0.7.4.IncorrectSolc.json index 6c3c37cde..a1927027b 100644 --- a/tests/detectors/solc-version/0.7.4/static.sol.0.7.4.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol.0.7.4.IncorrectSolc.json @@ -1,15 +1,5 @@ [ [ - { - "elements": [], - "description": "solc-0.7.4 is not recommended for deployment\n", - "markdown": "solc-0.7.4 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "27e54a3813c974274b355c03bd742d4f2b8cd63fa57143b4fb741cbecd022dd2", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, { "elements": [ { @@ -18,9 +8,9 @@ "source_mapping": { "start": 0, "length": 22, - "filename_relative": "tests/detectors/solc-version/0.7.4/static.sol", + "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/solc-version/0.7.4/static.sol", + "filename_short": "tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol", "is_dependency": false, "lines": [ 1 @@ -37,10 +27,20 @@ } } ], - "description": "Pragma version0.7.4 (tests/detectors/solc-version/0.7.4/static.sol#1) allows old versions\n", - "markdown": "Pragma version[0.7.4](tests/detectors/solc-version/0.7.4/static.sol#L1) allows old versions\n", - "first_markdown_element": "tests/detectors/solc-version/0.7.4/static.sol#L1", - "id": "770bd3666c605dc3b8e7422296714d365b70b9bf6b75b35ef42c2068568dd6f2", + "description": "Pragma version0.7.4 (tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol#1) allows old versions\n", + "markdown": "Pragma version[0.7.4](tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol#L1) allows old versions\n", + "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol#L1", + "id": "0b68e24ddb7139f74a8dd063388c1337e1372799f60bface7a5d177b8793b741", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "solc-0.7.4 is not recommended for deployment\n", + "markdown": "solc-0.7.4 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "27e54a3813c974274b355c03bd742d4f2b8cd63fa57143b4fb741cbecd022dd2", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/solc-version/0.7.6/dynamic_1.sol b/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol similarity index 100% rename from tests/detectors/solc-version/0.7.6/dynamic_1.sol rename to tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol diff --git a/tests/detectors/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json similarity index 57% rename from tests/detectors/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json rename to tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json index 763302445..15bebfe02 100644 --- a/tests/detectors/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json @@ -2,10 +2,10 @@ [ { "elements": [], - "description": "solc-0.7.6 is not recommended for deployment\n", - "markdown": "solc-0.7.6 is not recommended for deployment\n", + "description": "solc-0.7.4 is not recommended for deployment\n", + "markdown": "solc-0.7.4 is not recommended for deployment\n", "first_markdown_element": "", - "id": "ddb8ee36d9dd69b14eab702506268f8f9ef3283777d042e197277e29407b386e", + "id": "27e54a3813c974274b355c03bd742d4f2b8cd63fa57143b4fb741cbecd022dd2", "check": "solc-version", "impact": "Informational", "confidence": "High" @@ -18,9 +18,9 @@ "source_mapping": { "start": 0, "length": 23, - "filename_relative": "tests/detectors/solc-version/0.7.6/dynamic_1.sol", + "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/solc-version/0.7.6/dynamic_1.sol", + "filename_short": "tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol", "is_dependency": false, "lines": [ 1 @@ -38,10 +38,10 @@ } } ], - "description": "Pragma version^0.7.4 (tests/detectors/solc-version/0.7.6/dynamic_1.sol#1) allows old versions\n", - "markdown": "Pragma version[^0.7.4](tests/detectors/solc-version/0.7.6/dynamic_1.sol#L1) allows old versions\n", - "first_markdown_element": "tests/detectors/solc-version/0.7.6/dynamic_1.sol#L1", - "id": "e46d6be1a19a445ff20b2e96a37cb7355cf88d3c93d72bfc963db2a86f303d11", + "description": "Pragma version^0.7.4 (tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol#1) allows old versions\n", + "markdown": "Pragma version[^0.7.4](tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol#L1) allows old versions\n", + "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol#L1", + "id": "a26793ac70a065f8101c425f5a93a44e10518267fd539c588a81aeaa273f8f4e", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/solc-version/0.7.6/dynamic_2.sol b/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol similarity index 100% rename from tests/detectors/solc-version/0.7.6/dynamic_2.sol rename to tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol diff --git a/tests/detectors/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json similarity index 62% rename from tests/detectors/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json rename to tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json index 516f3142b..6e78655a1 100644 --- a/tests/detectors/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 0, "length": 32, - "filename_relative": "tests/detectors/solc-version/0.7.6/dynamic_2.sol", + "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/solc-version/0.7.6/dynamic_2.sol", + "filename_short": "tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol", "is_dependency": false, "lines": [ 1 @@ -31,20 +31,20 @@ } } ], - "description": "Pragma version>=0.7.0<=0.7.6 (tests/detectors/solc-version/0.7.6/dynamic_2.sol#1) is too complex\n", - "markdown": "Pragma version[>=0.7.0<=0.7.6](tests/detectors/solc-version/0.7.6/dynamic_2.sol#L1) is too complex\n", - "first_markdown_element": "tests/detectors/solc-version/0.7.6/dynamic_2.sol#L1", - "id": "d63860d6851dda74b9cb989aa5ef5bbb9bcc22c1b6f217b9356c0fc843b78386", + "description": "Pragma version>=0.7.0<=0.7.6 (tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol#1) is too complex\n", + "markdown": "Pragma version[>=0.7.0<=0.7.6](tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol#L1) is too complex\n", + "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol#L1", + "id": "553e646c4f06caff84790d2bf426d1b639f5ab492f06d35c1cc1de27171a5458", "check": "solc-version", "impact": "Informational", "confidence": "High" }, { "elements": [], - "description": "solc-0.7.6 is not recommended for deployment\n", - "markdown": "solc-0.7.6 is not recommended for deployment\n", + "description": "solc-0.7.0 is not recommended for deployment\n", + "markdown": "solc-0.7.0 is not recommended for deployment\n", "first_markdown_element": "", - "id": "ddb8ee36d9dd69b14eab702506268f8f9ef3283777d042e197277e29407b386e", + "id": "a25ebaec6910184d3cb938f8638d2eeeb46edf25c444b137264555e9743d67bd", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/solc-version/0.7.6/static.sol b/tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol similarity index 100% rename from tests/detectors/solc-version/0.7.6/static.sol rename to tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol diff --git a/tests/detectors/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json similarity index 67% rename from tests/detectors/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json rename to tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json index 426786fff..2feda0b82 100644 --- a/tests/detectors/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json @@ -1,15 +1,5 @@ [ [ - { - "elements": [], - "description": "solc-0.7.6 is not recommended for deployment\n", - "markdown": "solc-0.7.6 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "ddb8ee36d9dd69b14eab702506268f8f9ef3283777d042e197277e29407b386e", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, { "elements": [ { @@ -18,9 +8,9 @@ "source_mapping": { "start": 0, "length": 22, - "filename_relative": "tests/detectors/solc-version/0.7.6/static.sol", + "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/solc-version/0.7.6/static.sol", + "filename_short": "tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol", "is_dependency": false, "lines": [ 1 @@ -37,10 +27,20 @@ } } ], - "description": "Pragma version0.7.6 (tests/detectors/solc-version/0.7.6/static.sol#1) allows old versions\n", - "markdown": "Pragma version[0.7.6](tests/detectors/solc-version/0.7.6/static.sol#L1) allows old versions\n", - "first_markdown_element": "tests/detectors/solc-version/0.7.6/static.sol#L1", - "id": "e7a5c0ee3d0af7a59907908f88499f79435e302745284c6279167a1cc209b4ed", + "description": "Pragma version0.7.6 (tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol#1) allows old versions\n", + "markdown": "Pragma version[0.7.6](tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol#L1) allows old versions\n", + "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol#L1", + "id": "730c7b68388c8968a0dc7398162989157d0fc6c1223b719c86abaa23aa141422", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "solc-0.7.6 is not recommended for deployment\n", + "markdown": "solc-0.7.6 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "ddb8ee36d9dd69b14eab702506268f8f9ef3283777d042e197277e29407b386e", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/detectors/storage-array/0.5.10/storage_signed_integer_array.sol b/tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol similarity index 100% rename from tests/detectors/storage-array/0.5.10/storage_signed_integer_array.sol rename to tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol diff --git a/tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json b/tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json new file mode 100644 index 000000000..8e6c6b2d9 --- /dev/null +++ b/tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json @@ -0,0 +1,757 @@ +[ + [ + { + "elements": [ + { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + { + "type": "function", + "name": "good3", + "source_mapping": { + "start": 1823, + "length": 267, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 35, + 36, + 37 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "good3(int256[3])" + } + }, + { + "type": "node", + "name": "intArray = userArray", + "source_mapping": { + "start": 1964, + "length": 20, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 36 + ], + "starting_column": 5, + "ending_column": 25 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "good3", + "source_mapping": { + "start": 1823, + "length": 267, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 35, + 36, + 37 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "good3(int256[3])" + } + } + } + } + ], + "description": "Contract A (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#3-45) \n\t- Function A.good3(int256[3]) (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#35-37)\n\t\t- intArray = userArray (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#36) has a storage signed integer array assignment\n", + "markdown": "Contract [A](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.good3(int256[3])](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L35-L37)\n\t\t- [intArray = userArray](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L36) has a storage signed integer array assignment\n", + "first_markdown_element": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L3-L45", + "id": "3948ae5e1f85032e07e32463f54e7ae97c3c144e228797680240014ea725f94d", + "check": "storage-array", + "impact": "High", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 601, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 15, + 16, + 17 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad1(int128[3])" + } + }, + { + "type": "node", + "name": "intArray = userArray", + "source_mapping": { + "start": 746, + "length": 20, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 16 + ], + "starting_column": 5, + "ending_column": 25 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 601, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 15, + 16, + 17 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad1(int128[3])" + } + } + } + } + ], + "description": "Contract A (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#3-45) \n\t- Function A.bad1(int128[3]) (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#15-17)\n\t\t- intArray = userArray (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#16) has a storage signed integer array assignment\n", + "markdown": "Contract [A](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.bad1(int128[3])](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L15-L17)\n\t\t- [intArray = userArray](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L16) has a storage signed integer array assignment\n", + "first_markdown_element": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L3-L45", + "id": "631aef0a5d3c7759d489e7ceb2e9721bc723e92fddfb55fbb6d16837104dee99", + "check": "storage-array", + "impact": "High", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + { + "type": "function", + "name": "bad0", + "source_mapping": { + "start": 355, + "length": 132, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 10, + 11, + 12 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad0()" + } + }, + { + "type": "node", + "name": "intArray = (- 1,- 2,- 3)", + "source_mapping": { + "start": 384, + "length": 23, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 11 + ], + "starting_column": 5, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad0", + "source_mapping": { + "start": 355, + "length": 132, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 10, + 11, + 12 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad0()" + } + } + } + } + ], + "description": "Contract A (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#3-45) \n\t- Function A.bad0() (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#10-12)\n\t\t- intArray = (- 1,- 2,- 3) (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#11) has a storage signed integer array assignment\n", + "markdown": "Contract [A](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.bad0()](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L10-L12)\n\t\t- [intArray = (- 1,- 2,- 3)](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L11) has a storage signed integer array assignment\n", + "first_markdown_element": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L3-L45", + "id": "6b15bf486dbb4488d1a70536ede22b1ede312e7d03479557fb43c125b82f1f92", + "check": "storage-array", + "impact": "High", + "confidence": "Medium" + } + ] +] \ No newline at end of file diff --git a/tests/detectors/storage-array/0.5.16/storage_signed_integer_array.sol b/tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol similarity index 100% rename from tests/detectors/storage-array/0.5.16/storage_signed_integer_array.sol rename to tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol diff --git a/tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json b/tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json new file mode 100644 index 000000000..043d0e607 --- /dev/null +++ b/tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json @@ -0,0 +1,757 @@ +[ + [ + { + "elements": [ + { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + { + "type": "function", + "name": "good3", + "source_mapping": { + "start": 1823, + "length": 267, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 35, + 36, + 37 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "good3(int256[3])" + } + }, + { + "type": "node", + "name": "intArray = userArray", + "source_mapping": { + "start": 1964, + "length": 20, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 36 + ], + "starting_column": 5, + "ending_column": 25 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "good3", + "source_mapping": { + "start": 1823, + "length": 267, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 35, + 36, + 37 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "good3(int256[3])" + } + } + } + } + ], + "description": "Contract A (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#3-45) \n\t- Function A.good3(int256[3]) (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#35-37)\n\t\t- intArray = userArray (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#36) has a storage signed integer array assignment\n", + "markdown": "Contract [A](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.good3(int256[3])](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L35-L37)\n\t\t- [intArray = userArray](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L36) has a storage signed integer array assignment\n", + "first_markdown_element": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L3-L45", + "id": "0109ebb10600cb7b9f9f3bb49a6e72e29b9a1bcac9011f8a2fcf8b8cf1be1ccc", + "check": "storage-array", + "impact": "High", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + { + "type": "function", + "name": "bad0", + "source_mapping": { + "start": 355, + "length": 132, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 10, + 11, + 12 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad0()" + } + }, + { + "type": "node", + "name": "intArray = (- 1,- 2,- 3)", + "source_mapping": { + "start": 384, + "length": 23, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 11 + ], + "starting_column": 5, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad0", + "source_mapping": { + "start": 355, + "length": 132, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 10, + 11, + 12 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad0()" + } + } + } + } + ], + "description": "Contract A (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#3-45) \n\t- Function A.bad0() (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#10-12)\n\t\t- intArray = (- 1,- 2,- 3) (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#11) has a storage signed integer array assignment\n", + "markdown": "Contract [A](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.bad0()](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L10-L12)\n\t\t- [intArray = (- 1,- 2,- 3)](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L11) has a storage signed integer array assignment\n", + "first_markdown_element": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L3-L45", + "id": "79c53128e44603485fdf502967c92aa6ad8fb1af52343835a44655c101218f75", + "check": "storage-array", + "impact": "High", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 601, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 15, + 16, + 17 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad1(int128[3])" + } + }, + { + "type": "node", + "name": "intArray = userArray", + "source_mapping": { + "start": 746, + "length": 20, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 16 + ], + "starting_column": 5, + "ending_column": 25 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 601, + "length": 170, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 15, + 16, + 17 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "A", + "source_mapping": { + "start": 25, + "length": 2256, + "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "bad1(int128[3])" + } + } + } + } + ], + "description": "Contract A (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#3-45) \n\t- Function A.bad1(int128[3]) (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#15-17)\n\t\t- intArray = userArray (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#16) has a storage signed integer array assignment\n", + "markdown": "Contract [A](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.bad1(int128[3])](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L15-L17)\n\t\t- [intArray = userArray](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L16) has a storage signed integer array assignment\n", + "first_markdown_element": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L3-L45", + "id": "ff29abd9707859837debdb3c3bc5261fbc5146642353819d17853729a516faf9", + "check": "storage-array", + "impact": "High", + "confidence": "Medium" + } + ] +] \ No newline at end of file diff --git a/tests/detectors/suicidal/0.4.25/suicidal.sol b/tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol similarity index 100% rename from tests/detectors/suicidal/0.4.25/suicidal.sol rename to tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol diff --git a/tests/detectors/suicidal/0.4.25/suicidal.sol.0.4.25.Suicidal.json b/tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol.0.4.25.Suicidal.json similarity index 68% rename from tests/detectors/suicidal/0.4.25/suicidal.sol.0.4.25.Suicidal.json rename to tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol.0.4.25.Suicidal.json index 2bd3d62ff..4f1d5835f 100644 --- a/tests/detectors/suicidal/0.4.25/suicidal.sol.0.4.25.Suicidal.json +++ b/tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol.0.4.25.Suicidal.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 18, "length": 74, - "filename_relative": "tests/detectors/suicidal/0.4.25/suicidal.sol", + "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/suicidal/0.4.25/suicidal.sol", + "filename_short": "tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol", "is_dependency": false, "lines": [ 4, @@ -27,9 +27,9 @@ "source_mapping": { "start": 1, "length": 94, - "filename_relative": "tests/detectors/suicidal/0.4.25/suicidal.sol", + "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/suicidal/0.4.25/suicidal.sol", + "filename_short": "tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol", "is_dependency": false, "lines": [ 2, @@ -48,9 +48,9 @@ } } ], - "description": "C.i_am_a_backdoor() (tests/detectors/suicidal/0.4.25/suicidal.sol#4-6) allows anyone to destruct the contract\n", - "markdown": "[C.i_am_a_backdoor()](tests/detectors/suicidal/0.4.25/suicidal.sol#L4-L6) allows anyone to destruct the contract\n", - "first_markdown_element": "tests/detectors/suicidal/0.4.25/suicidal.sol#L4-L6", + "description": "C.i_am_a_backdoor() (tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol#4-6) allows anyone to destruct the contract\n", + "markdown": "[C.i_am_a_backdoor()](tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol#L4-L6) allows anyone to destruct the contract\n", + "first_markdown_element": "tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol#L4-L6", "id": "bb1e4596537b6e2c29f4221e733692fd6dac8555095181718e440ca525016eb7", "check": "suicidal", "impact": "High", diff --git a/tests/detectors/suicidal/0.5.16/suicidal.sol b/tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol similarity index 100% rename from tests/detectors/suicidal/0.5.16/suicidal.sol rename to tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol diff --git a/tests/detectors/suicidal/0.5.16/suicidal.sol.0.5.16.Suicidal.json b/tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol.0.5.16.Suicidal.json similarity index 68% rename from tests/detectors/suicidal/0.5.16/suicidal.sol.0.5.16.Suicidal.json rename to tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol.0.5.16.Suicidal.json index de2db58c0..d7999c9d9 100644 --- a/tests/detectors/suicidal/0.5.16/suicidal.sol.0.5.16.Suicidal.json +++ b/tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol.0.5.16.Suicidal.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 18, "length": 74, - "filename_relative": "tests/detectors/suicidal/0.5.16/suicidal.sol", + "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/suicidal/0.5.16/suicidal.sol", + "filename_short": "tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol", "is_dependency": false, "lines": [ 4, @@ -27,9 +27,9 @@ "source_mapping": { "start": 1, "length": 94, - "filename_relative": "tests/detectors/suicidal/0.5.16/suicidal.sol", + "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/suicidal/0.5.16/suicidal.sol", + "filename_short": "tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol", "is_dependency": false, "lines": [ 2, @@ -48,9 +48,9 @@ } } ], - "description": "C.i_am_a_backdoor() (tests/detectors/suicidal/0.5.16/suicidal.sol#4-6) allows anyone to destruct the contract\n", - "markdown": "[C.i_am_a_backdoor()](tests/detectors/suicidal/0.5.16/suicidal.sol#L4-L6) allows anyone to destruct the contract\n", - "first_markdown_element": "tests/detectors/suicidal/0.5.16/suicidal.sol#L4-L6", + "description": "C.i_am_a_backdoor() (tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol#4-6) allows anyone to destruct the contract\n", + "markdown": "[C.i_am_a_backdoor()](tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol#L4-L6) allows anyone to destruct the contract\n", + "first_markdown_element": "tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol#L4-L6", "id": "bb1e4596537b6e2c29f4221e733692fd6dac8555095181718e440ca525016eb7", "check": "suicidal", "impact": "High", diff --git a/tests/detectors/suicidal/0.6.11/suicidal.sol b/tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol similarity index 100% rename from tests/detectors/suicidal/0.6.11/suicidal.sol rename to tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol diff --git a/tests/detectors/suicidal/0.6.11/suicidal.sol.0.6.11.Suicidal.json b/tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol.0.6.11.Suicidal.json similarity index 68% rename from tests/detectors/suicidal/0.6.11/suicidal.sol.0.6.11.Suicidal.json rename to tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol.0.6.11.Suicidal.json index 842344809..bec245766 100644 --- a/tests/detectors/suicidal/0.6.11/suicidal.sol.0.6.11.Suicidal.json +++ b/tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol.0.6.11.Suicidal.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 18, "length": 74, - "filename_relative": "tests/detectors/suicidal/0.6.11/suicidal.sol", + "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/suicidal/0.6.11/suicidal.sol", + "filename_short": "tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol", "is_dependency": false, "lines": [ 4, @@ -27,9 +27,9 @@ "source_mapping": { "start": 1, "length": 94, - "filename_relative": "tests/detectors/suicidal/0.6.11/suicidal.sol", + "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/suicidal/0.6.11/suicidal.sol", + "filename_short": "tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol", "is_dependency": false, "lines": [ 2, @@ -48,9 +48,9 @@ } } ], - "description": "C.i_am_a_backdoor() (tests/detectors/suicidal/0.6.11/suicidal.sol#4-6) allows anyone to destruct the contract\n", - "markdown": "[C.i_am_a_backdoor()](tests/detectors/suicidal/0.6.11/suicidal.sol#L4-L6) allows anyone to destruct the contract\n", - "first_markdown_element": "tests/detectors/suicidal/0.6.11/suicidal.sol#L4-L6", + "description": "C.i_am_a_backdoor() (tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol#4-6) allows anyone to destruct the contract\n", + "markdown": "[C.i_am_a_backdoor()](tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol#L4-L6) allows anyone to destruct the contract\n", + "first_markdown_element": "tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol#L4-L6", "id": "bb1e4596537b6e2c29f4221e733692fd6dac8555095181718e440ca525016eb7", "check": "suicidal", "impact": "High", diff --git a/tests/detectors/suicidal/0.7.6/suicidal.sol b/tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol similarity index 100% rename from tests/detectors/suicidal/0.7.6/suicidal.sol rename to tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol diff --git a/tests/detectors/suicidal/0.7.6/suicidal.sol.0.7.6.Suicidal.json b/tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol.0.7.6.Suicidal.json similarity index 69% rename from tests/detectors/suicidal/0.7.6/suicidal.sol.0.7.6.Suicidal.json rename to tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol.0.7.6.Suicidal.json index 0dd3f119f..01b0dde93 100644 --- a/tests/detectors/suicidal/0.7.6/suicidal.sol.0.7.6.Suicidal.json +++ b/tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol.0.7.6.Suicidal.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 18, "length": 74, - "filename_relative": "tests/detectors/suicidal/0.7.6/suicidal.sol", + "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/suicidal/0.7.6/suicidal.sol", + "filename_short": "tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol", "is_dependency": false, "lines": [ 4, @@ -27,9 +27,9 @@ "source_mapping": { "start": 1, "length": 94, - "filename_relative": "tests/detectors/suicidal/0.7.6/suicidal.sol", + "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/suicidal/0.7.6/suicidal.sol", + "filename_short": "tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol", "is_dependency": false, "lines": [ 2, @@ -48,9 +48,9 @@ } } ], - "description": "C.i_am_a_backdoor() (tests/detectors/suicidal/0.7.6/suicidal.sol#4-6) allows anyone to destruct the contract\n", - "markdown": "[C.i_am_a_backdoor()](tests/detectors/suicidal/0.7.6/suicidal.sol#L4-L6) allows anyone to destruct the contract\n", - "first_markdown_element": "tests/detectors/suicidal/0.7.6/suicidal.sol#L4-L6", + "description": "C.i_am_a_backdoor() (tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol#4-6) allows anyone to destruct the contract\n", + "markdown": "[C.i_am_a_backdoor()](tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol#L4-L6) allows anyone to destruct the contract\n", + "first_markdown_element": "tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol#L4-L6", "id": "bb1e4596537b6e2c29f4221e733692fd6dac8555095181718e440ca525016eb7", "check": "suicidal", "impact": "High", diff --git a/tests/detectors/tautology/0.4.25/type_based_tautology.sol b/tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol similarity index 100% rename from tests/detectors/tautology/0.4.25/type_based_tautology.sol rename to tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol diff --git a/tests/detectors/tautology/0.4.25/type_based_tautology.sol.0.4.25.TypeBasedTautology.json b/tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol.0.4.25.TypeBasedTautology.json similarity index 73% rename from tests/detectors/tautology/0.4.25/type_based_tautology.sol.0.4.25.TypeBasedTautology.json rename to tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol.0.4.25.TypeBasedTautology.json index 6164ab1c6..c40705123 100644 --- a/tests/detectors/tautology/0.4.25/type_based_tautology.sol.0.4.25.TypeBasedTautology.json +++ b/tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol.0.4.25.TypeBasedTautology.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 150, "length": 80, - "filename_relative": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "is_dependency": false, "lines": [ 9, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -59,9 +59,9 @@ "source_mapping": { "start": 202, "length": 16, - "filename_relative": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "is_dependency": false, "lines": [ 10 @@ -76,9 +76,9 @@ "source_mapping": { "start": 150, "length": 80, - "filename_relative": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "is_dependency": false, "lines": [ 9, @@ -95,9 +95,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -124,10 +124,10 @@ } } ], - "description": "A.g(uint8) (tests/detectors/tautology/0.4.25/type_based_tautology.sol#9-11) contains a tautology or contradiction:\n\t- (y < 512) (tests/detectors/tautology/0.4.25/type_based_tautology.sol#10)\n", - "markdown": "[A.g(uint8)](tests/detectors/tautology/0.4.25/type_based_tautology.sol#L9-L11) contains a tautology or contradiction:\n\t- [(y < 512)](tests/detectors/tautology/0.4.25/type_based_tautology.sol#L10)\n", - "first_markdown_element": "tests/detectors/tautology/0.4.25/type_based_tautology.sol#L9-L11", - "id": "75dfe0b8776a8cf490a4e3f30366dec173fd0dc7418335f77c68ba5bca536382", + "description": "A.g(uint8) (tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#9-11) contains a tautology or contradiction:\n\t- (y < 512) (tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#10)\n", + "markdown": "[A.g(uint8)](tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#L9-L11) contains a tautology or contradiction:\n\t- [(y < 512)](tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#L9-L11", + "id": "2d5afaf7ffe75ae8bd3fe6831af4fdbc60c3151ccaedbf03a96dc28463ab87f7", "check": "tautology", "impact": "Medium", "confidence": "High" @@ -140,9 +140,9 @@ "source_mapping": { "start": 14, "length": 133, - "filename_relative": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "is_dependency": false, "lines": [ 2, @@ -162,9 +162,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -194,9 +194,9 @@ "source_mapping": { "start": 69, "length": 6, - "filename_relative": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "is_dependency": false, "lines": [ 3 @@ -211,9 +211,9 @@ "source_mapping": { "start": 14, "length": 133, - "filename_relative": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "is_dependency": false, "lines": [ 2, @@ -233,9 +233,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.4.25/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -262,10 +262,10 @@ } } ], - "description": "A.f(uint256) (tests/detectors/tautology/0.4.25/type_based_tautology.sol#2-7) contains a tautology or contradiction:\n\t- x >= 0 (tests/detectors/tautology/0.4.25/type_based_tautology.sol#3)\n", - "markdown": "[A.f(uint256)](tests/detectors/tautology/0.4.25/type_based_tautology.sol#L2-L7) contains a tautology or contradiction:\n\t- [x >= 0](tests/detectors/tautology/0.4.25/type_based_tautology.sol#L3)\n", - "first_markdown_element": "tests/detectors/tautology/0.4.25/type_based_tautology.sol#L2-L7", - "id": "c9b8085dbb7e6d0dfc2ee5711ac45a70e4c0f494ac4efcae42a6b947e3170ddb", + "description": "A.f(uint256) (tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#2-7) contains a tautology or contradiction:\n\t- x >= 0 (tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#3)\n", + "markdown": "[A.f(uint256)](tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#L2-L7) contains a tautology or contradiction:\n\t- [x >= 0](tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#L2-L7", + "id": "8e35298d2cfa14f0683bc976a299c6c757f7b036a96443fa8ddae8ff8edab0a6", "check": "tautology", "impact": "Medium", "confidence": "High" diff --git a/tests/detectors/tautology/0.5.16/type_based_tautology.sol b/tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol similarity index 100% rename from tests/detectors/tautology/0.5.16/type_based_tautology.sol rename to tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol diff --git a/tests/detectors/tautology/0.5.16/type_based_tautology.sol.0.5.16.TypeBasedTautology.json b/tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol.0.5.16.TypeBasedTautology.json similarity index 73% rename from tests/detectors/tautology/0.5.16/type_based_tautology.sol.0.5.16.TypeBasedTautology.json rename to tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol.0.5.16.TypeBasedTautology.json index 35a608c61..ae70b276a 100644 --- a/tests/detectors/tautology/0.5.16/type_based_tautology.sol.0.5.16.TypeBasedTautology.json +++ b/tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol.0.5.16.TypeBasedTautology.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 150, "length": 80, - "filename_relative": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "is_dependency": false, "lines": [ 9, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -59,9 +59,9 @@ "source_mapping": { "start": 202, "length": 16, - "filename_relative": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "is_dependency": false, "lines": [ 10 @@ -76,9 +76,9 @@ "source_mapping": { "start": 150, "length": 80, - "filename_relative": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "is_dependency": false, "lines": [ 9, @@ -95,9 +95,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -124,10 +124,10 @@ } } ], - "description": "A.g(uint8) (tests/detectors/tautology/0.5.16/type_based_tautology.sol#9-11) contains a tautology or contradiction:\n\t- (y < 512) (tests/detectors/tautology/0.5.16/type_based_tautology.sol#10)\n", - "markdown": "[A.g(uint8)](tests/detectors/tautology/0.5.16/type_based_tautology.sol#L9-L11) contains a tautology or contradiction:\n\t- [(y < 512)](tests/detectors/tautology/0.5.16/type_based_tautology.sol#L10)\n", - "first_markdown_element": "tests/detectors/tautology/0.5.16/type_based_tautology.sol#L9-L11", - "id": "0c29aa92764cb30104a4c4ba02e307d5949143b4cbfa2d8a52d9473140907872", + "description": "A.g(uint8) (tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#9-11) contains a tautology or contradiction:\n\t- (y < 512) (tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#10)\n", + "markdown": "[A.g(uint8)](tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#L9-L11) contains a tautology or contradiction:\n\t- [(y < 512)](tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#L9-L11", + "id": "4104ae382ec7ca18aa48706d1336f1cf8a1420e3bbca67931fca5a534f59eaca", "check": "tautology", "impact": "Medium", "confidence": "High" @@ -140,9 +140,9 @@ "source_mapping": { "start": 14, "length": 133, - "filename_relative": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "is_dependency": false, "lines": [ 2, @@ -162,9 +162,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -194,9 +194,9 @@ "source_mapping": { "start": 69, "length": 6, - "filename_relative": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "is_dependency": false, "lines": [ 3 @@ -211,9 +211,9 @@ "source_mapping": { "start": 14, "length": 133, - "filename_relative": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "is_dependency": false, "lines": [ 2, @@ -233,9 +233,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.5.16/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -262,10 +262,10 @@ } } ], - "description": "A.f(uint256) (tests/detectors/tautology/0.5.16/type_based_tautology.sol#2-7) contains a tautology or contradiction:\n\t- x >= 0 (tests/detectors/tautology/0.5.16/type_based_tautology.sol#3)\n", - "markdown": "[A.f(uint256)](tests/detectors/tautology/0.5.16/type_based_tautology.sol#L2-L7) contains a tautology or contradiction:\n\t- [x >= 0](tests/detectors/tautology/0.5.16/type_based_tautology.sol#L3)\n", - "first_markdown_element": "tests/detectors/tautology/0.5.16/type_based_tautology.sol#L2-L7", - "id": "764eb2c7aa5cd1a30d16deb620e0dc3b8a9e9170978908bcc1f6fc1ac5a8daa1", + "description": "A.f(uint256) (tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#2-7) contains a tautology or contradiction:\n\t- x >= 0 (tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#3)\n", + "markdown": "[A.f(uint256)](tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#L2-L7) contains a tautology or contradiction:\n\t- [x >= 0](tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#L2-L7", + "id": "5b31f4bb71fc1840be393b354338ffba3380a788f823be9f3bfb017ab2876051", "check": "tautology", "impact": "Medium", "confidence": "High" diff --git a/tests/detectors/tautology/0.6.11/type_based_tautology.sol b/tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol similarity index 100% rename from tests/detectors/tautology/0.6.11/type_based_tautology.sol rename to tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol diff --git a/tests/detectors/tautology/0.6.11/type_based_tautology.sol.0.6.11.TypeBasedTautology.json b/tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol.0.6.11.TypeBasedTautology.json similarity index 73% rename from tests/detectors/tautology/0.6.11/type_based_tautology.sol.0.6.11.TypeBasedTautology.json rename to tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol.0.6.11.TypeBasedTautology.json index 38090fa5b..b3484d6ac 100644 --- a/tests/detectors/tautology/0.6.11/type_based_tautology.sol.0.6.11.TypeBasedTautology.json +++ b/tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol.0.6.11.TypeBasedTautology.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 150, "length": 80, - "filename_relative": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "is_dependency": false, "lines": [ 9, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -59,9 +59,9 @@ "source_mapping": { "start": 202, "length": 16, - "filename_relative": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "is_dependency": false, "lines": [ 10 @@ -76,9 +76,9 @@ "source_mapping": { "start": 150, "length": 80, - "filename_relative": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "is_dependency": false, "lines": [ 9, @@ -95,9 +95,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -124,10 +124,10 @@ } } ], - "description": "A.g(uint8) (tests/detectors/tautology/0.6.11/type_based_tautology.sol#9-11) contains a tautology or contradiction:\n\t- (y < 512) (tests/detectors/tautology/0.6.11/type_based_tautology.sol#10)\n", - "markdown": "[A.g(uint8)](tests/detectors/tautology/0.6.11/type_based_tautology.sol#L9-L11) contains a tautology or contradiction:\n\t- [(y < 512)](tests/detectors/tautology/0.6.11/type_based_tautology.sol#L10)\n", - "first_markdown_element": "tests/detectors/tautology/0.6.11/type_based_tautology.sol#L9-L11", - "id": "51bc777574da16aab9aefb9d0294fdad9ef3a44136e9e7b1f7e05cfd9c1d4e54", + "description": "A.g(uint8) (tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#9-11) contains a tautology or contradiction:\n\t- (y < 512) (tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#10)\n", + "markdown": "[A.g(uint8)](tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#L9-L11) contains a tautology or contradiction:\n\t- [(y < 512)](tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#L9-L11", + "id": "847fae465158df30ff5281b9fb6c4fe56bc62126a24263e5b73cfe189ea88101", "check": "tautology", "impact": "Medium", "confidence": "High" @@ -140,9 +140,9 @@ "source_mapping": { "start": 14, "length": 133, - "filename_relative": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "is_dependency": false, "lines": [ 2, @@ -162,9 +162,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -194,9 +194,9 @@ "source_mapping": { "start": 69, "length": 6, - "filename_relative": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "is_dependency": false, "lines": [ 3 @@ -211,9 +211,9 @@ "source_mapping": { "start": 14, "length": 133, - "filename_relative": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "is_dependency": false, "lines": [ 2, @@ -233,9 +233,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.6.11/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -262,10 +262,10 @@ } } ], - "description": "A.f(uint256) (tests/detectors/tautology/0.6.11/type_based_tautology.sol#2-7) contains a tautology or contradiction:\n\t- x >= 0 (tests/detectors/tautology/0.6.11/type_based_tautology.sol#3)\n", - "markdown": "[A.f(uint256)](tests/detectors/tautology/0.6.11/type_based_tautology.sol#L2-L7) contains a tautology or contradiction:\n\t- [x >= 0](tests/detectors/tautology/0.6.11/type_based_tautology.sol#L3)\n", - "first_markdown_element": "tests/detectors/tautology/0.6.11/type_based_tautology.sol#L2-L7", - "id": "fec3df769045cbe4984e50b2f651f60ffc36b116bc7273a64f761e8fbfc674b9", + "description": "A.f(uint256) (tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#2-7) contains a tautology or contradiction:\n\t- x >= 0 (tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#3)\n", + "markdown": "[A.f(uint256)](tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#L2-L7) contains a tautology or contradiction:\n\t- [x >= 0](tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#L2-L7", + "id": "eadd3a6e49d82eee622768c1de7238bc9a7dab02bfa86a7622fc0499f0398a84", "check": "tautology", "impact": "Medium", "confidence": "High" diff --git a/tests/detectors/tautology/0.7.6/type_based_tautology.sol b/tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol similarity index 100% rename from tests/detectors/tautology/0.7.6/type_based_tautology.sol rename to tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol diff --git a/tests/detectors/tautology/0.7.6/type_based_tautology.sol.0.7.6.TypeBasedTautology.json b/tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol.0.7.6.TypeBasedTautology.json similarity index 73% rename from tests/detectors/tautology/0.7.6/type_based_tautology.sol.0.7.6.TypeBasedTautology.json rename to tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol.0.7.6.TypeBasedTautology.json index a667c1551..54356483e 100644 --- a/tests/detectors/tautology/0.7.6/type_based_tautology.sol.0.7.6.TypeBasedTautology.json +++ b/tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol.0.7.6.TypeBasedTautology.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 150, "length": 80, - "filename_relative": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "is_dependency": false, "lines": [ 9, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -59,9 +59,9 @@ "source_mapping": { "start": 202, "length": 16, - "filename_relative": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "is_dependency": false, "lines": [ 10 @@ -76,9 +76,9 @@ "source_mapping": { "start": 150, "length": 80, - "filename_relative": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "is_dependency": false, "lines": [ 9, @@ -95,9 +95,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -124,10 +124,10 @@ } } ], - "description": "A.g(uint8) (tests/detectors/tautology/0.7.6/type_based_tautology.sol#9-11) contains a tautology or contradiction:\n\t- (y < 512) (tests/detectors/tautology/0.7.6/type_based_tautology.sol#10)\n", - "markdown": "[A.g(uint8)](tests/detectors/tautology/0.7.6/type_based_tautology.sol#L9-L11) contains a tautology or contradiction:\n\t- [(y < 512)](tests/detectors/tautology/0.7.6/type_based_tautology.sol#L10)\n", - "first_markdown_element": "tests/detectors/tautology/0.7.6/type_based_tautology.sol#L9-L11", - "id": "036b1ecab6ee0dcb07806dbd8ffb05abf29941bbbcbb161da0013b31be51b3de", + "description": "A.g(uint8) (tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#9-11) contains a tautology or contradiction:\n\t- (y < 512) (tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#10)\n", + "markdown": "[A.g(uint8)](tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#L9-L11) contains a tautology or contradiction:\n\t- [(y < 512)](tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#L9-L11", + "id": "8775db38ad7ea2dae79cc8a2998e6babf60b8d925894c198fde99ce0d56f8dd8", "check": "tautology", "impact": "Medium", "confidence": "High" @@ -140,9 +140,9 @@ "source_mapping": { "start": 14, "length": 133, - "filename_relative": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "is_dependency": false, "lines": [ 2, @@ -162,9 +162,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -194,9 +194,9 @@ "source_mapping": { "start": 69, "length": 6, - "filename_relative": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "is_dependency": false, "lines": [ 3 @@ -211,9 +211,9 @@ "source_mapping": { "start": 14, "length": 133, - "filename_relative": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "is_dependency": false, "lines": [ 2, @@ -233,9 +233,9 @@ "source_mapping": { "start": 0, "length": 232, - "filename_relative": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tautology/0.7.6/type_based_tautology.sol", + "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", "is_dependency": false, "lines": [ 1, @@ -262,10 +262,10 @@ } } ], - "description": "A.f(uint256) (tests/detectors/tautology/0.7.6/type_based_tautology.sol#2-7) contains a tautology or contradiction:\n\t- x >= 0 (tests/detectors/tautology/0.7.6/type_based_tautology.sol#3)\n", - "markdown": "[A.f(uint256)](tests/detectors/tautology/0.7.6/type_based_tautology.sol#L2-L7) contains a tautology or contradiction:\n\t- [x >= 0](tests/detectors/tautology/0.7.6/type_based_tautology.sol#L3)\n", - "first_markdown_element": "tests/detectors/tautology/0.7.6/type_based_tautology.sol#L2-L7", - "id": "e444c1c7287bff97cae3505472d10d8ef5e01aa1f2e7660c81a3beb11eeaea0e", + "description": "A.f(uint256) (tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#2-7) contains a tautology or contradiction:\n\t- x >= 0 (tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#3)\n", + "markdown": "[A.f(uint256)](tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#L2-L7) contains a tautology or contradiction:\n\t- [x >= 0](tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#L2-L7", + "id": "bdb95728224ebe35a966e39c2ad0f8e705087e7577bc7bfb30b383652171813e", "check": "tautology", "impact": "Medium", "confidence": "High" diff --git a/tests/detectors/timestamp/0.4.25/timestamp.sol b/tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol similarity index 100% rename from tests/detectors/timestamp/0.4.25/timestamp.sol rename to tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol diff --git a/tests/detectors/timestamp/0.4.25/timestamp.sol.0.4.25.Timestamp.json b/tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol.0.4.25.Timestamp.json similarity index 76% rename from tests/detectors/timestamp/0.4.25/timestamp.sol.0.4.25.Timestamp.json rename to tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol.0.4.25.Timestamp.json index aaaffd91c..2bac9145f 100644 --- a/tests/detectors/timestamp/0.4.25/timestamp.sol.0.4.25.Timestamp.json +++ b/tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol.0.4.25.Timestamp.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad0", "source_mapping": { - "start": 231, - "length": 79, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "start": 47, + "length": 70, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ - 13, - 14, - 15 + 4, + 5, + 6 ], "starting_column": 5, "ending_column": 6 @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -57,40 +57,40 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad0()" } }, { "type": "node", - "name": "block.timestamp > 0", + "name": "require(bool)(block.timestamp == 0)", "source_mapping": { - "start": 279, - "length": 24, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "start": 81, + "length": 29, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ - 14 + 5 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 38 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad0", "source_mapping": { - "start": 231, - "length": 79, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "start": 47, + "length": 70, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ - 13, - 14, - 15 + 4, + 5, + 6 ], "starting_column": 5, "ending_column": 6 @@ -102,9 +102,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -132,16 +132,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad0()" } } } } ], - "description": "Timestamp.bad2() (tests/detectors/timestamp/0.4.25/timestamp.sol#13-15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > 0 (tests/detectors/timestamp/0.4.25/timestamp.sol#14)\n", - "markdown": "[Timestamp.bad2()](tests/detectors/timestamp/0.4.25/timestamp.sol#L13-L15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > 0](tests/detectors/timestamp/0.4.25/timestamp.sol#L14)\n", - "first_markdown_element": "tests/detectors/timestamp/0.4.25/timestamp.sol#L13-L15", - "id": "2182d79d032d47fdf8137bc06dd7d4c1796356e19fab558e282f5d596391ec58", + "description": "Timestamp.bad0() (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#4-6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#5)\n", + "markdown": "[Timestamp.bad0()](tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L4-L6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(block.timestamp == 0)](tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L5)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L4-L6", + "id": "03594e6df776c41fb3de4b4b7858ab3dd2b36ed0b2bd9dccb5a343732d26e7f4", "check": "timestamp", "impact": "Low", "confidence": "Medium" @@ -150,18 +150,19 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 47, - "length": 70, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "start": 126, + "length": 96, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ - 4, - 5, - 6 + 8, + 9, + 10, + 11 ], "starting_column": 5, "ending_column": 6 @@ -173,9 +174,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -203,40 +204,41 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad1()" } }, { "type": "node", - "name": "require(bool)(block.timestamp == 0)", + "name": "require(bool)(time == 0)", "source_mapping": { - "start": 81, - "length": 29, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "start": 197, + "length": 18, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ - 5 + 10 ], "starting_column": 9, - "ending_column": 38 + "ending_column": 27 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 47, - "length": 70, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "start": 126, + "length": 96, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ - 4, - 5, - 6 + 8, + 9, + 10, + 11 ], "starting_column": 5, "ending_column": 6 @@ -248,9 +250,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -278,16 +280,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad1()" } } } } ], - "description": "Timestamp.bad0() (tests/detectors/timestamp/0.4.25/timestamp.sol#4-6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(block.timestamp == 0) (tests/detectors/timestamp/0.4.25/timestamp.sol#5)\n", - "markdown": "[Timestamp.bad0()](tests/detectors/timestamp/0.4.25/timestamp.sol#L4-L6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(block.timestamp == 0)](tests/detectors/timestamp/0.4.25/timestamp.sol#L5)\n", - "first_markdown_element": "tests/detectors/timestamp/0.4.25/timestamp.sol#L4-L6", - "id": "9d7c44d1a332d53aacc312d316891fc85c62db8b5a5a638a64cdb718c9f20029", + "description": "Timestamp.bad1() (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#8-11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(time == 0) (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#10)\n", + "markdown": "[Timestamp.bad1()](tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L8-L11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(time == 0)](tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L8-L11", + "id": "e2b861584cc340e917c6ac6a1191895909bd447d58b3b73907bfc766af3a69e8", "check": "timestamp", "impact": "Low", "confidence": "Medium" @@ -296,19 +298,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 126, - "length": 96, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "start": 231, + "length": 79, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10, - 11 + 13, + 14, + 15 ], "starting_column": 5, "ending_column": 6 @@ -320,9 +321,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -350,41 +351,40 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad2()" } }, { "type": "node", - "name": "require(bool)(time == 0)", + "name": "block.timestamp > 0", "source_mapping": { - "start": 197, - "length": 18, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "start": 279, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ - 10 + 14 ], "starting_column": 9, - "ending_column": 27 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 126, - "length": 96, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "start": 231, + "length": 79, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10, - 11 + 13, + 14, + 15 ], "starting_column": 5, "ending_column": 6 @@ -396,9 +396,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.4.25/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -426,16 +426,16 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad2()" } } } } ], - "description": "Timestamp.bad1() (tests/detectors/timestamp/0.4.25/timestamp.sol#8-11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(time == 0) (tests/detectors/timestamp/0.4.25/timestamp.sol#10)\n", - "markdown": "[Timestamp.bad1()](tests/detectors/timestamp/0.4.25/timestamp.sol#L8-L11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(time == 0)](tests/detectors/timestamp/0.4.25/timestamp.sol#L10)\n", - "first_markdown_element": "tests/detectors/timestamp/0.4.25/timestamp.sol#L8-L11", - "id": "d2f6167c2351e267210692e16350d8426db102519fe3eaeeadb6d17d2445dbbd", + "description": "Timestamp.bad2() (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#13-15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > 0 (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#14)\n", + "markdown": "[Timestamp.bad2()](tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L13-L15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > 0](tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L13-L15", + "id": "f66328b4b47ebaaf78184cdcfa95e1fe0fd9a1ed3de1c93968f4b6325c174f4b", "check": "timestamp", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/timestamp/0.5.16/timestamp.sol b/tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol similarity index 100% rename from tests/detectors/timestamp/0.5.16/timestamp.sol rename to tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol diff --git a/tests/detectors/timestamp/0.5.16/timestamp.sol.0.5.16.Timestamp.json b/tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol.0.5.16.Timestamp.json similarity index 76% rename from tests/detectors/timestamp/0.5.16/timestamp.sol.0.5.16.Timestamp.json rename to tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol.0.5.16.Timestamp.json index 9a73beb8b..18f29cbee 100644 --- a/tests/detectors/timestamp/0.5.16/timestamp.sol.0.5.16.Timestamp.json +++ b/tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol.0.5.16.Timestamp.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 126, "length": 96, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 8, @@ -28,9 +28,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -67,9 +67,9 @@ "source_mapping": { "start": 197, "length": 18, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 10 @@ -84,9 +84,9 @@ "source_mapping": { "start": 126, "length": 96, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 8, @@ -104,9 +104,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -140,10 +140,10 @@ } } ], - "description": "Timestamp.bad1() (tests/detectors/timestamp/0.5.16/timestamp.sol#8-11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(time == 0) (tests/detectors/timestamp/0.5.16/timestamp.sol#10)\n", - "markdown": "[Timestamp.bad1()](tests/detectors/timestamp/0.5.16/timestamp.sol#L8-L11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(time == 0)](tests/detectors/timestamp/0.5.16/timestamp.sol#L10)\n", - "first_markdown_element": "tests/detectors/timestamp/0.5.16/timestamp.sol#L8-L11", - "id": "95b42362b948094ddfa2507b20840e67789d4c5d92e8e3ddac30f5b6577dc1cb", + "description": "Timestamp.bad1() (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#8-11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(time == 0) (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#10)\n", + "markdown": "[Timestamp.bad1()](tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L8-L11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(time == 0)](tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L8-L11", + "id": "49a0bfcb661a31edaa9b37280b8000653c712209b40cd415e386536633730b7f", "check": "timestamp", "impact": "Low", "confidence": "Medium" @@ -156,9 +156,9 @@ "source_mapping": { "start": 47, "length": 70, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 4, @@ -175,9 +175,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -214,9 +214,9 @@ "source_mapping": { "start": 81, "length": 29, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 5 @@ -231,9 +231,9 @@ "source_mapping": { "start": 47, "length": 70, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 4, @@ -250,9 +250,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -286,10 +286,10 @@ } } ], - "description": "Timestamp.bad0() (tests/detectors/timestamp/0.5.16/timestamp.sol#4-6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(block.timestamp == 0) (tests/detectors/timestamp/0.5.16/timestamp.sol#5)\n", - "markdown": "[Timestamp.bad0()](tests/detectors/timestamp/0.5.16/timestamp.sol#L4-L6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(block.timestamp == 0)](tests/detectors/timestamp/0.5.16/timestamp.sol#L5)\n", - "first_markdown_element": "tests/detectors/timestamp/0.5.16/timestamp.sol#L4-L6", - "id": "ae9cf69893e0e1a3487dc6ce8a8ae0f5ea9628607d77d32b3dfcb0202617d6e3", + "description": "Timestamp.bad0() (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#4-6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#5)\n", + "markdown": "[Timestamp.bad0()](tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L4-L6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(block.timestamp == 0)](tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L5)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L4-L6", + "id": "4df4c103af282998c5004ea73cf301de8b030dce3eae9174fabc560da2c8dfcc", "check": "timestamp", "impact": "Low", "confidence": "Medium" @@ -302,9 +302,9 @@ "source_mapping": { "start": 231, "length": 79, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 13, @@ -321,9 +321,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -360,9 +360,9 @@ "source_mapping": { "start": 279, "length": 24, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 14 @@ -377,9 +377,9 @@ "source_mapping": { "start": 231, "length": 79, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 13, @@ -396,9 +396,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.5.16/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -432,10 +432,10 @@ } } ], - "description": "Timestamp.bad2() (tests/detectors/timestamp/0.5.16/timestamp.sol#13-15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > 0 (tests/detectors/timestamp/0.5.16/timestamp.sol#14)\n", - "markdown": "[Timestamp.bad2()](tests/detectors/timestamp/0.5.16/timestamp.sol#L13-L15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > 0](tests/detectors/timestamp/0.5.16/timestamp.sol#L14)\n", - "first_markdown_element": "tests/detectors/timestamp/0.5.16/timestamp.sol#L13-L15", - "id": "d4fe55a5e15b7b87f60c4156128807b333a4a630b25b18eb3a495b3613f764db", + "description": "Timestamp.bad2() (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#13-15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > 0 (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#14)\n", + "markdown": "[Timestamp.bad2()](tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L13-L15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > 0](tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L13-L15", + "id": "8783893a5aa7a9e13ef0b39ba3f525610aea6b2ae8b5f994552a87c0dc4c8263", "check": "timestamp", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/timestamp/0.6.11/timestamp.sol b/tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol similarity index 100% rename from tests/detectors/timestamp/0.6.11/timestamp.sol rename to tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol diff --git a/tests/detectors/timestamp/0.6.11/timestamp.sol.0.6.11.Timestamp.json b/tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol.0.6.11.Timestamp.json similarity index 76% rename from tests/detectors/timestamp/0.6.11/timestamp.sol.0.6.11.Timestamp.json rename to tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol.0.6.11.Timestamp.json index 669ce43ff..09671e31b 100644 --- a/tests/detectors/timestamp/0.6.11/timestamp.sol.0.6.11.Timestamp.json +++ b/tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol.0.6.11.Timestamp.json @@ -4,19 +4,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 126, - "length": 96, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "start": 47, + "length": 70, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10, - 11 + 4, + 5, + 6 ], "starting_column": 5, "ending_column": 6 @@ -28,9 +27,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -58,41 +57,40 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad0()" } }, { "type": "node", - "name": "require(bool)(time == 0)", + "name": "require(bool)(block.timestamp == 0)", "source_mapping": { - "start": 197, - "length": 18, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "start": 81, + "length": 29, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ - 10 + 5 ], "starting_column": 9, - "ending_column": 27 + "ending_column": 38 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 126, - "length": 96, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "start": 47, + "length": 70, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10, - 11 + 4, + 5, + 6 ], "starting_column": 5, "ending_column": 6 @@ -104,9 +102,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -134,16 +132,16 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad0()" } } } } ], - "description": "Timestamp.bad1() (tests/detectors/timestamp/0.6.11/timestamp.sol#8-11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(time == 0) (tests/detectors/timestamp/0.6.11/timestamp.sol#10)\n", - "markdown": "[Timestamp.bad1()](tests/detectors/timestamp/0.6.11/timestamp.sol#L8-L11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(time == 0)](tests/detectors/timestamp/0.6.11/timestamp.sol#L10)\n", - "first_markdown_element": "tests/detectors/timestamp/0.6.11/timestamp.sol#L8-L11", - "id": "5d42d80cf0c66675f78bbf7717e2c532f05e8b0641d100c436ef8e1d6dc02f61", + "description": "Timestamp.bad0() (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#4-6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#5)\n", + "markdown": "[Timestamp.bad0()](tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L4-L6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(block.timestamp == 0)](tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L5)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L4-L6", + "id": "23a1b86e2f94f257d4234ff06cc78c782f0dc8c2628452a58625edb30d620c0d", "check": "timestamp", "impact": "Low", "confidence": "Medium" @@ -152,18 +150,19 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad1", "source_mapping": { - "start": 231, - "length": 79, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "start": 126, + "length": 96, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ - 13, - 14, - 15 + 8, + 9, + 10, + 11 ], "starting_column": 5, "ending_column": 6 @@ -175,9 +174,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -205,40 +204,41 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad1()" } }, { "type": "node", - "name": "block.timestamp > 0", + "name": "require(bool)(time == 0)", "source_mapping": { - "start": 279, - "length": 24, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "start": 197, + "length": 18, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ - 14 + 10 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 27 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad1", "source_mapping": { - "start": 231, - "length": 79, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "start": 126, + "length": 96, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ - 13, - 14, - 15 + 8, + 9, + 10, + 11 ], "starting_column": 5, "ending_column": 6 @@ -250,9 +250,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -280,16 +280,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad1()" } } } } ], - "description": "Timestamp.bad2() (tests/detectors/timestamp/0.6.11/timestamp.sol#13-15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > 0 (tests/detectors/timestamp/0.6.11/timestamp.sol#14)\n", - "markdown": "[Timestamp.bad2()](tests/detectors/timestamp/0.6.11/timestamp.sol#L13-L15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > 0](tests/detectors/timestamp/0.6.11/timestamp.sol#L14)\n", - "first_markdown_element": "tests/detectors/timestamp/0.6.11/timestamp.sol#L13-L15", - "id": "c2c1fc5eaaf8498a2f03135fb61180314cbd104df5ab6b2447620b8ac3978cac", + "description": "Timestamp.bad1() (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#8-11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(time == 0) (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#10)\n", + "markdown": "[Timestamp.bad1()](tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L8-L11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(time == 0)](tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L8-L11", + "id": "31b6ab92cef91ce4098c8adbffe3e22bc84eb6e3f30fb85e63cd33eadd08e496", "check": "timestamp", "impact": "Low", "confidence": "Medium" @@ -298,18 +298,18 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad2", "source_mapping": { - "start": 47, - "length": 70, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "start": 231, + "length": 79, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ - 4, - 5, - 6 + 13, + 14, + 15 ], "starting_column": 5, "ending_column": 6 @@ -321,9 +321,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -351,40 +351,40 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad2()" } }, { "type": "node", - "name": "require(bool)(block.timestamp == 0)", + "name": "block.timestamp > 0", "source_mapping": { - "start": 81, - "length": 29, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "start": 279, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ - 5 + 14 ], "starting_column": 9, - "ending_column": 38 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad2", "source_mapping": { - "start": 47, - "length": 70, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "start": 231, + "length": 79, + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ - 4, - 5, - 6 + 13, + 14, + 15 ], "starting_column": 5, "ending_column": 6 @@ -396,9 +396,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.6.11/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -426,16 +426,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad2()" } } } } ], - "description": "Timestamp.bad0() (tests/detectors/timestamp/0.6.11/timestamp.sol#4-6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(block.timestamp == 0) (tests/detectors/timestamp/0.6.11/timestamp.sol#5)\n", - "markdown": "[Timestamp.bad0()](tests/detectors/timestamp/0.6.11/timestamp.sol#L4-L6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(block.timestamp == 0)](tests/detectors/timestamp/0.6.11/timestamp.sol#L5)\n", - "first_markdown_element": "tests/detectors/timestamp/0.6.11/timestamp.sol#L4-L6", - "id": "e4e3a8ade3a3bd11b4788b70785548f81395e776a86f2940834731e8f5e05bdc", + "description": "Timestamp.bad2() (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#13-15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > 0 (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#14)\n", + "markdown": "[Timestamp.bad2()](tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L13-L15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > 0](tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L13-L15", + "id": "bb9f5bde3d69a13c45f96610397f1c0a5a3a56b796ae577fbfc3d0dfc2c3d862", "check": "timestamp", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/timestamp/0.7.6/timestamp.sol b/tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol similarity index 100% rename from tests/detectors/timestamp/0.7.6/timestamp.sol rename to tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol diff --git a/tests/detectors/timestamp/0.7.6/timestamp.sol.0.7.6.Timestamp.json b/tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol.0.7.6.Timestamp.json similarity index 76% rename from tests/detectors/timestamp/0.7.6/timestamp.sol.0.7.6.Timestamp.json rename to tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol.0.7.6.Timestamp.json index 95883faa2..5606861c1 100644 --- a/tests/detectors/timestamp/0.7.6/timestamp.sol.0.7.6.Timestamp.json +++ b/tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol.0.7.6.Timestamp.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 231, "length": 79, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 13, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -66,9 +66,9 @@ "source_mapping": { "start": 279, "length": 24, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 14 @@ -83,9 +83,9 @@ "source_mapping": { "start": 231, "length": 79, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 13, @@ -102,9 +102,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -138,10 +138,10 @@ } } ], - "description": "Timestamp.bad2() (tests/detectors/timestamp/0.7.6/timestamp.sol#13-15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > 0 (tests/detectors/timestamp/0.7.6/timestamp.sol#14)\n", - "markdown": "[Timestamp.bad2()](tests/detectors/timestamp/0.7.6/timestamp.sol#L13-L15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > 0](tests/detectors/timestamp/0.7.6/timestamp.sol#L14)\n", - "first_markdown_element": "tests/detectors/timestamp/0.7.6/timestamp.sol#L13-L15", - "id": "11b3472709ff3f3a4b3ec47abaa5a62f8dbfcd3b0b6bea0972f5b3d790049130", + "description": "Timestamp.bad2() (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#13-15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > 0 (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#14)\n", + "markdown": "[Timestamp.bad2()](tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L13-L15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > 0](tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L13-L15", + "id": "7eb1c390d5c07173eb75465abb24e6996b100848e292c0462a666ca614907770", "check": "timestamp", "impact": "Low", "confidence": "Medium" @@ -154,9 +154,9 @@ "source_mapping": { "start": 47, "length": 70, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 4, @@ -173,9 +173,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -212,9 +212,9 @@ "source_mapping": { "start": 81, "length": 29, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 5 @@ -229,9 +229,9 @@ "source_mapping": { "start": 47, "length": 70, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 4, @@ -248,9 +248,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -284,10 +284,10 @@ } } ], - "description": "Timestamp.bad0() (tests/detectors/timestamp/0.7.6/timestamp.sol#4-6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(block.timestamp == 0) (tests/detectors/timestamp/0.7.6/timestamp.sol#5)\n", - "markdown": "[Timestamp.bad0()](tests/detectors/timestamp/0.7.6/timestamp.sol#L4-L6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(block.timestamp == 0)](tests/detectors/timestamp/0.7.6/timestamp.sol#L5)\n", - "first_markdown_element": "tests/detectors/timestamp/0.7.6/timestamp.sol#L4-L6", - "id": "e776b1a35c5ff7cecd1cf6eba25c7017c852dfab68d0aaa8b2c8ecaf97b69a6b", + "description": "Timestamp.bad0() (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#4-6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#5)\n", + "markdown": "[Timestamp.bad0()](tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L4-L6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(block.timestamp == 0)](tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L5)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L4-L6", + "id": "7efbdd62dbabbb488457b4ec4e4aef7f07852c5d817f9957a1b70455af297d0d", "check": "timestamp", "impact": "Low", "confidence": "Medium" @@ -300,9 +300,9 @@ "source_mapping": { "start": 126, "length": 96, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 8, @@ -320,9 +320,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -359,9 +359,9 @@ "source_mapping": { "start": 197, "length": 18, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 10 @@ -376,9 +376,9 @@ "source_mapping": { "start": 126, "length": 96, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 8, @@ -396,9 +396,9 @@ "source_mapping": { "start": 0, "length": 402, - "filename_relative": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/timestamp/0.7.6/timestamp.sol", + "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", "is_dependency": false, "lines": [ 1, @@ -432,10 +432,10 @@ } } ], - "description": "Timestamp.bad1() (tests/detectors/timestamp/0.7.6/timestamp.sol#8-11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(time == 0) (tests/detectors/timestamp/0.7.6/timestamp.sol#10)\n", - "markdown": "[Timestamp.bad1()](tests/detectors/timestamp/0.7.6/timestamp.sol#L8-L11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(time == 0)](tests/detectors/timestamp/0.7.6/timestamp.sol#L10)\n", - "first_markdown_element": "tests/detectors/timestamp/0.7.6/timestamp.sol#L8-L11", - "id": "fc05e44a41cc99fb6e68c9d8bfc8cbc97377f3327ed7a3c75ba170c9e75394d1", + "description": "Timestamp.bad1() (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#8-11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(time == 0) (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#10)\n", + "markdown": "[Timestamp.bad1()](tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L8-L11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(time == 0)](tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L8-L11", + "id": "d5e863862b123d4e87ea1d43501d463ef36caa3c90c5d42e4df981c3e62f5661", "check": "timestamp", "impact": "Low", "confidence": "Medium" diff --git a/tests/detectors/too-many-digits/0.4.25/too_many_digits.sol b/tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol similarity index 100% rename from tests/detectors/too-many-digits/0.4.25/too_many_digits.sol rename to tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol diff --git a/tests/detectors/too-many-digits/0.4.25/too_many_digits.sol.0.4.25.TooManyDigits.json b/tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol.0.4.25.TooManyDigits.json similarity index 80% rename from tests/detectors/too-many-digits/0.4.25/too_many_digits.sol.0.4.25.TooManyDigits.json rename to tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol.0.4.25.TooManyDigits.json index 975e66c22..47eb60ef0 100644 --- a/tests/detectors/too-many-digits/0.4.25/too_many_digits.sol.0.4.25.TooManyDigits.json +++ b/tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol.0.4.25.TooManyDigits.json @@ -4,22 +4,20 @@ "elements": [ { "type": "function", - "name": "f", + "name": "h", "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "start": 456, + "length": 113, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 5, "ending_column": 6 @@ -31,9 +29,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -82,44 +80,42 @@ "ending_column": 2 } }, - "signature": "f()" + "signature": "h()" } }, { "type": "node", - "name": "x3 = 1000000000000000000", + "name": "x2 = 100000", "source_mapping": { - "start": 272, - "length": 29, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "start": 512, + "length": 16, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ - 12 + 22 ], "starting_column": 9, - "ending_column": 38 + "ending_column": 25 }, "type_specific_fields": { "parent": { "type": "function", - "name": "f", + "name": "h", "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "start": 456, + "length": 113, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 5, "ending_column": 6 @@ -131,9 +127,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -182,16 +178,16 @@ "ending_column": 2 } }, - "signature": "f()" + "signature": "h()" } } } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x3 = 1000000000000000000 (tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#12)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x3 = 1000000000000000000](tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L12)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L9-L15", - "id": "07b9feef94432fdda97b5b5f32b4b6acfa23801e48f9fbd9997c5c3142c56474", + "description": "C.h() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#20-24) uses literals with too many digits:\n\t- x2 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#22)\n", + "markdown": "[C.h()](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L20-L24) uses literals with too many digits:\n\t- [x2 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L20-L24", + "id": "053e072eea67b5308f8292cf1830c330fbc80a99a5a45343e29150fe26d51928", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -200,20 +196,22 @@ "elements": [ { "type": "function", - "name": "h", + "name": "f", "source_mapping": { - "start": 456, - "length": 113, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "start": 177, + "length": 195, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 9, + 10, + 11, + 12, + 13, + 14, + 15 ], "starting_column": 5, "ending_column": 6 @@ -225,9 +223,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -276,21 +274,21 @@ "ending_column": 2 } }, - "signature": "h()" + "signature": "f()" } }, { "type": "node", - "name": "x2 = 100000", + "name": "x4 = 100000", "source_mapping": { - "start": 512, + "start": 311, "length": 16, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ - 22 + 13 ], "starting_column": 9, "ending_column": 25 @@ -298,20 +296,22 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "h", + "name": "f", "source_mapping": { - "start": 456, - "length": 113, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "start": 177, + "length": 195, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 9, + 10, + 11, + 12, + 13, + 14, + 15 ], "starting_column": 5, "ending_column": 6 @@ -323,9 +323,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -374,16 +374,16 @@ "ending_column": 2 } }, - "signature": "h()" + "signature": "f()" } } } } ], - "description": "C.h() (tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#20-24) uses literals with too many digits:\n\t- x2 = 100000 (tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#22)\n", - "markdown": "[C.h()](tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L20-L24) uses literals with too many digits:\n\t- [x2 = 100000](tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L22)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L20-L24", - "id": "2ae61bfeb6a9bad69fe9cb1990583dae50614da8a86cc9a720493218e11e0aa5", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x4 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#13)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x4 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L13)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15", + "id": "579e9c63d2b881823eca4226876a901fc6c9de7a96a54e1615165f944f4ec993", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -396,9 +396,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -419,9 +419,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -479,9 +479,9 @@ "source_mapping": { "start": 209, "length": 18, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 10 @@ -496,9 +496,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -519,9 +519,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -576,10 +576,10 @@ } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x1 = 0x000001 (tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#10)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x1 = 0x000001](tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L10)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L9-L15", - "id": "33591d733ce2e17a001b912024d5bbe2fd89b63811968c715cf1feed5e302ef1", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x1 = 0x000001 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#10)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x1 = 0x000001](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15", + "id": "8333f893ea49b4205a270184968190c9eb89af862b58bb167b33ca792a74a68c", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -592,9 +592,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -615,9 +615,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -671,19 +671,19 @@ }, { "type": "node", - "name": "x2 = 0x0000000000001", + "name": "x3 = 1000000000000000000", "source_mapping": { - "start": 237, - "length": 25, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "start": 272, + "length": 29, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ - 11 + 12 ], "starting_column": 9, - "ending_column": 34 + "ending_column": 38 }, "type_specific_fields": { "parent": { @@ -692,9 +692,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -715,9 +715,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -772,10 +772,10 @@ } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x2 = 0x0000000000001 (tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#11)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x2 = 0x0000000000001](tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L11)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L9-L15", - "id": "3e08ab6e8312a9489e23b50c6252a0ae7db88a7fc2c9d83c34d6d8aceb634d08", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x3 = 1000000000000000000 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#12)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x3 = 1000000000000000000](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L12)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15", + "id": "e954700672dbefd40444a24fc867f6989e2d37011867a6cd4c2f651e249292a7", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -788,9 +788,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -811,9 +811,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -867,19 +867,19 @@ }, { "type": "node", - "name": "x4 = 100000", + "name": "x2 = 0x0000000000001", "source_mapping": { - "start": 311, - "length": 16, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "start": 237, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ - 13 + 11 ], "starting_column": 9, - "ending_column": 25 + "ending_column": 34 }, "type_specific_fields": { "parent": { @@ -888,9 +888,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -911,9 +911,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -968,10 +968,10 @@ } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x4 = 100000 (tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#13)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x4 = 100000](tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L13)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.4.25/too_many_digits.sol#L9-L15", - "id": "809a1adef5afed04cc3371628a1595dd47bb1b1003a9e0cc6be72987c4034345", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x2 = 0x0000000000001 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#11)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x2 = 0x0000000000001](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15", + "id": "ec348978a30da0283b0660abafc5a51687f5a12774a950944c56cebaf9de63c8", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" diff --git a/tests/detectors/too-many-digits/0.5.16/too_many_digits.sol b/tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol similarity index 100% rename from tests/detectors/too-many-digits/0.5.16/too_many_digits.sol rename to tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol diff --git a/tests/detectors/too-many-digits/0.5.16/too_many_digits.sol.0.5.16.TooManyDigits.json b/tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol.0.5.16.TooManyDigits.json similarity index 80% rename from tests/detectors/too-many-digits/0.5.16/too_many_digits.sol.0.5.16.TooManyDigits.json rename to tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol.0.5.16.TooManyDigits.json index 48de35e9e..a90452e7b 100644 --- a/tests/detectors/too-many-digits/0.5.16/too_many_digits.sol.0.5.16.TooManyDigits.json +++ b/tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol.0.5.16.TooManyDigits.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -31,9 +31,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -87,19 +87,19 @@ }, { "type": "node", - "name": "x1 = 0x000001", + "name": "x2 = 0x0000000000001", "source_mapping": { - "start": 209, - "length": 18, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "start": 237, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ - 10 + 11 ], "starting_column": 9, - "ending_column": 27 + "ending_column": 34 }, "type_specific_fields": { "parent": { @@ -108,9 +108,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -131,9 +131,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -188,10 +188,10 @@ } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x1 = 0x000001 (tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#10)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x1 = 0x000001](tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L10)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L9-L15", - "id": "1ad454f157e4c16e1b79b5905e83eff1b82192d65933847f4b39548bc170b7ea", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x2 = 0x0000000000001 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#11)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x2 = 0x0000000000001](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15", + "id": "4330493d2b1ee0d0cbefafa7f9b0d7f58e9aec83268f33dd85bf2c0046add1fc", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -204,9 +204,9 @@ "source_mapping": { "start": 456, "length": 113, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 20, @@ -225,9 +225,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -285,9 +285,9 @@ "source_mapping": { "start": 512, "length": 16, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 22 @@ -302,9 +302,9 @@ "source_mapping": { "start": 456, "length": 113, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 20, @@ -323,9 +323,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -380,10 +380,10 @@ } } ], - "description": "C.h() (tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#20-24) uses literals with too many digits:\n\t- x2 = 100000 (tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#22)\n", - "markdown": "[C.h()](tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L20-L24) uses literals with too many digits:\n\t- [x2 = 100000](tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L22)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L20-L24", - "id": "2ca6b97b24a0e595f484c9a0090c3b17b654c167be300e04d9c2cc9a44406d10", + "description": "C.h() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#20-24) uses literals with too many digits:\n\t- x2 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#22)\n", + "markdown": "[C.h()](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L20-L24) uses literals with too many digits:\n\t- [x2 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L20-L24", + "id": "590bcf5dc5ea643fac6c0b3e1e819626e2f44d18caa50845adf179044616072a", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -396,9 +396,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -419,9 +419,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -475,19 +475,19 @@ }, { "type": "node", - "name": "x4 = 100000", + "name": "x3 = 1000000000000000000", "source_mapping": { - "start": 311, - "length": 16, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "start": 272, + "length": 29, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ - 13 + 12 ], "starting_column": 9, - "ending_column": 25 + "ending_column": 38 }, "type_specific_fields": { "parent": { @@ -496,9 +496,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -519,9 +519,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -576,10 +576,10 @@ } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x4 = 100000 (tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#13)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x4 = 100000](tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L13)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L9-L15", - "id": "7e07e946fcdb14de3e3d3bc796f8f6aff17f22002129db4937e0d12767260d3d", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x3 = 1000000000000000000 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#12)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x3 = 1000000000000000000](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L12)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15", + "id": "69afedac402e965c98ab17a5927f0ce44f3497e4d4f9f6c1db6b21c6e9c1763b", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -592,9 +592,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -615,9 +615,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -671,19 +671,19 @@ }, { "type": "node", - "name": "x2 = 0x0000000000001", + "name": "x1 = 0x000001", "source_mapping": { - "start": 237, - "length": 25, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "start": 209, + "length": 18, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ - 11 + 10 ], "starting_column": 9, - "ending_column": 34 + "ending_column": 27 }, "type_specific_fields": { "parent": { @@ -692,9 +692,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -715,9 +715,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -772,10 +772,10 @@ } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x2 = 0x0000000000001 (tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#11)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x2 = 0x0000000000001](tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L11)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L9-L15", - "id": "ae48ab82ba202c409ec056e498d7255162ef5ab54ddb9ced3b46feb51f4c5021", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x1 = 0x000001 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#10)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x1 = 0x000001](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15", + "id": "6f2cd82484200efd6897d01be4e6b4b24437d10a2de204a5efd9fea2b1661015", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -788,9 +788,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -811,9 +811,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -867,19 +867,19 @@ }, { "type": "node", - "name": "x3 = 1000000000000000000", + "name": "x4 = 100000", "source_mapping": { - "start": 272, - "length": 29, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "start": 311, + "length": 16, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ - 12 + 13 ], "starting_column": 9, - "ending_column": 38 + "ending_column": 25 }, "type_specific_fields": { "parent": { @@ -888,9 +888,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -911,9 +911,9 @@ "source_mapping": { "start": 28, "length": 999, - "filename_relative": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -968,10 +968,10 @@ } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x3 = 1000000000000000000 (tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#12)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x3 = 1000000000000000000](tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L12)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.5.16/too_many_digits.sol#L9-L15", - "id": "c295b48b8aece38cfd41bceca05ef1953bf5bf0018073076809087a4580ff086", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x4 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#13)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x4 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L13)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15", + "id": "9c2d8aa12c825077848edceeb4f633f4afa334accd986efa4f6062ca9667ebcf", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" diff --git a/tests/detectors/too-many-digits/0.6.11/too_many_digits.sol b/tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol similarity index 100% rename from tests/detectors/too-many-digits/0.6.11/too_many_digits.sol rename to tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol diff --git a/tests/detectors/too-many-digits/0.6.11/too_many_digits.sol.0.6.11.TooManyDigits.json b/tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol.0.6.11.TooManyDigits.json similarity index 80% rename from tests/detectors/too-many-digits/0.6.11/too_many_digits.sol.0.6.11.TooManyDigits.json rename to tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol.0.6.11.TooManyDigits.json index c140503cf..6ad103d2b 100644 --- a/tests/detectors/too-many-digits/0.6.11/too_many_digits.sol.0.6.11.TooManyDigits.json +++ b/tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol.0.6.11.TooManyDigits.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -31,9 +31,9 @@ "source_mapping": { "start": 28, "length": 1000, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -88,19 +88,19 @@ }, { "type": "node", - "name": "x2 = 0x0000000000001", + "name": "x3 = 1000000000000000000", "source_mapping": { - "start": 237, - "length": 25, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "start": 272, + "length": 29, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ - 11 + 12 ], "starting_column": 9, - "ending_column": 34 + "ending_column": 38 }, "type_specific_fields": { "parent": { @@ -109,9 +109,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -132,9 +132,9 @@ "source_mapping": { "start": 28, "length": 1000, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -190,10 +190,10 @@ } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x2 = 0x0000000000001 (tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#11)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x2 = 0x0000000000001](tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L11)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L9-L15", - "id": "302b9a771b1009999d212d50adb2b938ccf41f2c26880fe17060a8922ea4836a", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x3 = 1000000000000000000 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#12)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x3 = 1000000000000000000](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L12)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15", + "id": "04b17f2c4d0e28c1d74160bbb3770c986a068a50438a21e521b518867ea7ffb4", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -202,20 +202,22 @@ "elements": [ { "type": "function", - "name": "h", + "name": "f", "source_mapping": { - "start": 456, - "length": 113, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "start": 177, + "length": 195, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 9, + 10, + 11, + 12, + 13, + 14, + 15 ], "starting_column": 5, "ending_column": 6 @@ -227,9 +229,9 @@ "source_mapping": { "start": 28, "length": 1000, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -279,42 +281,44 @@ "ending_column": 2 } }, - "signature": "h()" + "signature": "f()" } }, { "type": "node", - "name": "x2 = 100000", + "name": "x2 = 0x0000000000001", "source_mapping": { - "start": 512, - "length": 16, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "start": 237, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ - 22 + 11 ], "starting_column": 9, - "ending_column": 25 + "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", - "name": "h", + "name": "f", "source_mapping": { - "start": 456, - "length": 113, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "start": 177, + "length": 195, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 9, + 10, + 11, + 12, + 13, + 14, + 15 ], "starting_column": 5, "ending_column": 6 @@ -326,9 +330,9 @@ "source_mapping": { "start": 28, "length": 1000, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -378,16 +382,16 @@ "ending_column": 2 } }, - "signature": "h()" + "signature": "f()" } } } } ], - "description": "C.h() (tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#20-24) uses literals with too many digits:\n\t- x2 = 100000 (tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#22)\n", - "markdown": "[C.h()](tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L20-L24) uses literals with too many digits:\n\t- [x2 = 100000](tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L22)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L20-L24", - "id": "7cd1e51c89ae28bc9bf2c7e406b39f97a648cde765fc2a05c14697648ad27e92", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x2 = 0x0000000000001 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#11)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x2 = 0x0000000000001](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15", + "id": "79422ffc3e0bbce7e320954d1a85e216449766995702cef5d594d82c41bf40db", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -400,9 +404,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -423,9 +427,9 @@ "source_mapping": { "start": 28, "length": 1000, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -484,9 +488,9 @@ "source_mapping": { "start": 311, "length": 16, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 13 @@ -501,9 +505,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -524,9 +528,9 @@ "source_mapping": { "start": 28, "length": 1000, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -582,10 +586,10 @@ } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x4 = 100000 (tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#13)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x4 = 100000](tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L13)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L9-L15", - "id": "b8986c1b09fc9896372df90e6b43a08dfb3e3a920bd002ab5ee9eb4a29f92d95", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x4 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#13)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x4 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L13)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15", + "id": "7e5f8ae263ae46f7ab365199289b9737a23dee61f856679dd3ceaa3b3d68ce58", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -594,22 +598,20 @@ "elements": [ { "type": "function", - "name": "f", + "name": "h", "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "start": 456, + "length": 113, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 5, "ending_column": 6 @@ -621,9 +623,9 @@ "source_mapping": { "start": 28, "length": 1000, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -673,44 +675,42 @@ "ending_column": 2 } }, - "signature": "f()" + "signature": "h()" } }, { "type": "node", - "name": "x1 = 0x000001", + "name": "x2 = 100000", "source_mapping": { - "start": 209, - "length": 18, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "start": 512, + "length": 16, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ - 10 + 22 ], "starting_column": 9, - "ending_column": 27 + "ending_column": 25 }, "type_specific_fields": { "parent": { "type": "function", - "name": "f", + "name": "h", "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "start": 456, + "length": 113, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 5, "ending_column": 6 @@ -722,9 +722,9 @@ "source_mapping": { "start": 28, "length": 1000, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -774,16 +774,16 @@ "ending_column": 2 } }, - "signature": "f()" + "signature": "h()" } } } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x1 = 0x000001 (tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#10)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x1 = 0x000001](tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L10)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L9-L15", - "id": "d467d1c664634fc17c861de567ef53f0ce8964e9b337127308dad5d3cb0bc343", + "description": "C.h() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#20-24) uses literals with too many digits:\n\t- x2 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#22)\n", + "markdown": "[C.h()](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L20-L24) uses literals with too many digits:\n\t- [x2 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L20-L24", + "id": "8cecf4ad1009d6c1188cd11ee23c8f7870756189e7d8344657fa9979c2ae6fca", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -796,9 +796,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -819,9 +819,9 @@ "source_mapping": { "start": 28, "length": 1000, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -876,19 +876,19 @@ }, { "type": "node", - "name": "x3 = 1000000000000000000", + "name": "x1 = 0x000001", "source_mapping": { - "start": 272, - "length": 29, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "start": 209, + "length": 18, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ - 12 + 10 ], "starting_column": 9, - "ending_column": 38 + "ending_column": 27 }, "type_specific_fields": { "parent": { @@ -897,9 +897,9 @@ "source_mapping": { "start": 177, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -920,9 +920,9 @@ "source_mapping": { "start": 28, "length": 1000, - "filename_relative": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -978,10 +978,10 @@ } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x3 = 1000000000000000000 (tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#12)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x3 = 1000000000000000000](tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L12)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.6.11/too_many_digits.sol#L9-L15", - "id": "ed4cd26212cad644e275c3784912d9fe2d0789a9cb731a1a20bfdb30554f6f3a", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x1 = 0x000001 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#10)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x1 = 0x000001](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15", + "id": "f52a8172f386c68b1e935f3e2acf75b851a17cca0881dbbd915a3c810337b676", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" diff --git a/tests/detectors/too-many-digits/0.7.6/too_many_digits.sol b/tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol similarity index 100% rename from tests/detectors/too-many-digits/0.7.6/too_many_digits.sol rename to tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol diff --git a/tests/detectors/too-many-digits/0.7.6/too_many_digits.sol.0.7.6.TooManyDigits.json b/tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol.0.7.6.TooManyDigits.json similarity index 80% rename from tests/detectors/too-many-digits/0.7.6/too_many_digits.sol.0.7.6.TooManyDigits.json rename to tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol.0.7.6.TooManyDigits.json index 43842a92b..84ebdae37 100644 --- a/tests/detectors/too-many-digits/0.7.6/too_many_digits.sol.0.7.6.TooManyDigits.json +++ b/tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol.0.7.6.TooManyDigits.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 151, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -31,9 +31,9 @@ "source_mapping": { "start": 2, "length": 917, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -86,19 +86,19 @@ }, { "type": "node", - "name": "x2 = 0x0000000000001", + "name": "x3 = 1000000000000000000", "source_mapping": { - "start": 211, - "length": 25, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "start": 246, + "length": 29, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ - 11 + 12 ], "starting_column": 9, - "ending_column": 34 + "ending_column": 38 }, "type_specific_fields": { "parent": { @@ -107,9 +107,9 @@ "source_mapping": { "start": 151, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -130,9 +130,9 @@ "source_mapping": { "start": 2, "length": 917, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -186,10 +186,10 @@ } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x2 = 0x0000000000001 (tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#11)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x2 = 0x0000000000001](tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L11)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L9-L15", - "id": "41a60e2fb1f3a88adafd67ca77db4633849be26e1b8b9973b8bf9e8ea5a9d024", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x3 = 1000000000000000000 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#12)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x3 = 1000000000000000000](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L12)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15", + "id": "0d18bde863ef2b94fe2573c8e094e8c71ce0530994ab7e1e1120c362f50680ff", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -202,9 +202,9 @@ "source_mapping": { "start": 151, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -225,9 +225,9 @@ "source_mapping": { "start": 2, "length": 917, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -280,19 +280,19 @@ }, { "type": "node", - "name": "x3 = 1000000000000000000", + "name": "x2 = 0x0000000000001", "source_mapping": { - "start": 246, - "length": 29, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "start": 211, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ - 12 + 11 ], "starting_column": 9, - "ending_column": 38 + "ending_column": 34 }, "type_specific_fields": { "parent": { @@ -301,9 +301,9 @@ "source_mapping": { "start": 151, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -324,9 +324,9 @@ "source_mapping": { "start": 2, "length": 917, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -380,10 +380,10 @@ } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x3 = 1000000000000000000 (tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#12)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x3 = 1000000000000000000](tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L12)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L9-L15", - "id": "4876b33b2a9fb13f6def960f7f9060cbf858f117079526017b1b35a928771680", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x2 = 0x0000000000001 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#11)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x2 = 0x0000000000001](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15", + "id": "145cf1a01ee8d6803da8098287a473a5639a6ed377b4185044b448af47a7785d", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -396,9 +396,9 @@ "source_mapping": { "start": 151, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -419,9 +419,9 @@ "source_mapping": { "start": 2, "length": 917, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -478,9 +478,9 @@ "source_mapping": { "start": 183, "length": 18, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 10 @@ -495,9 +495,9 @@ "source_mapping": { "start": 151, "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 9, @@ -518,9 +518,9 @@ "source_mapping": { "start": 2, "length": 917, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -574,10 +574,10 @@ } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x1 = 0x000001 (tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#10)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x1 = 0x000001](tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L10)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L9-L15", - "id": "a053c2f439e1e4ac84469e1aab54f4403d4ab14bf81bae6e7a3d2e489b3514bd", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x1 = 0x000001 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#10)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x1 = 0x000001](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15", + "id": "50fa9983fd37fc3ef4d4fc3def220cbabf3e1e87482c6974e7b574689dc9431f", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -586,22 +586,20 @@ "elements": [ { "type": "function", - "name": "f", + "name": "h", "source_mapping": { - "start": 151, - "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "start": 430, + "length": 113, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 5, "ending_column": 6 @@ -613,9 +611,9 @@ "source_mapping": { "start": 2, "length": 917, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -663,21 +661,21 @@ "ending_column": 2 } }, - "signature": "f()" + "signature": "h()" } }, { "type": "node", - "name": "x4 = 100000", + "name": "x2 = 100000", "source_mapping": { - "start": 285, + "start": 486, "length": 16, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ - 13 + 22 ], "starting_column": 9, "ending_column": 25 @@ -685,22 +683,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "f", + "name": "h", "source_mapping": { - "start": 151, - "length": 195, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "start": 430, + "length": 113, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 5, "ending_column": 6 @@ -712,9 +708,9 @@ "source_mapping": { "start": 2, "length": 917, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -762,16 +758,16 @@ "ending_column": 2 } }, - "signature": "f()" + "signature": "h()" } } } } ], - "description": "C.f() (tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x4 = 100000 (tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#13)\n", - "markdown": "[C.f()](tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x4 = 100000](tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L13)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L9-L15", - "id": "cb3b2fdb9be68cc3ddd7d4eb949471b64b62cf93ba43c377682cbdca2f81321e", + "description": "C.h() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#20-24) uses literals with too many digits:\n\t- x2 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#22)\n", + "markdown": "[C.h()](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L20-L24) uses literals with too many digits:\n\t- [x2 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L20-L24", + "id": "bb3db442853479007fff235805e7bcf030d1cf8c1bbad6fd112b9c996ba61c4a", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" @@ -780,20 +776,22 @@ "elements": [ { "type": "function", - "name": "h", + "name": "f", "source_mapping": { - "start": 430, - "length": 113, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "start": 151, + "length": 195, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 9, + 10, + 11, + 12, + 13, + 14, + 15 ], "starting_column": 5, "ending_column": 6 @@ -805,9 +803,9 @@ "source_mapping": { "start": 2, "length": 917, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -855,21 +853,21 @@ "ending_column": 2 } }, - "signature": "h()" + "signature": "f()" } }, { "type": "node", - "name": "x2 = 100000", + "name": "x4 = 100000", "source_mapping": { - "start": 486, + "start": 285, "length": 16, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ - 22 + 13 ], "starting_column": 9, "ending_column": 25 @@ -877,20 +875,22 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "h", + "name": "f", "source_mapping": { - "start": 430, - "length": 113, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "start": 151, + "length": 195, + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 9, + 10, + 11, + 12, + 13, + 14, + 15 ], "starting_column": 5, "ending_column": 6 @@ -902,9 +902,9 @@ "source_mapping": { "start": 2, "length": 917, - "filename_relative": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol", + "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", "is_dependency": false, "lines": [ 3, @@ -952,16 +952,16 @@ "ending_column": 2 } }, - "signature": "h()" + "signature": "f()" } } } } ], - "description": "C.h() (tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#20-24) uses literals with too many digits:\n\t- x2 = 100000 (tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#22)\n", - "markdown": "[C.h()](tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L20-L24) uses literals with too many digits:\n\t- [x2 = 100000](tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L22)\n", - "first_markdown_element": "tests/detectors/too-many-digits/0.7.6/too_many_digits.sol#L20-L24", - "id": "dc1ea18f753ecea6946e89eb6676abb3813a16bc6a407e6a54ce87beeee261af", + "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x4 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#13)\n", + "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x4 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L13)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15", + "id": "fbf4039e77bad288247e091fc3e7184fdc787f06bc45085f7d79c7cf8c3a0f66", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium" diff --git a/tests/detectors/tx-origin/0.4.25/tx_origin.sol b/tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol similarity index 100% rename from tests/detectors/tx-origin/0.4.25/tx_origin.sol rename to tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol diff --git a/tests/detectors/tx-origin/0.4.25/tx_origin.sol.0.4.25.TxOrigin.json b/tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol.0.4.25.TxOrigin.json similarity index 78% rename from tests/detectors/tx-origin/0.4.25/tx_origin.sol.0.4.25.TxOrigin.json rename to tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol.0.4.25.TxOrigin.json index e1d62e684..02b43f0d1 100644 --- a/tests/detectors/tx-origin/0.4.25/tx_origin.sol.0.4.25.TxOrigin.json +++ b/tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol.0.4.25.TxOrigin.json @@ -4,20 +4,18 @@ "elements": [ { "type": "function", - "name": "bug2", + "name": "bug0", "source_mapping": { - "start": 182, - "length": 89, - "filename_relative": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "start": 116, + "length": 60, + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "is_dependency": false, "lines": [ - 13, - 14, - 15, - 16, - 17 + 9, + 10, + 11 ], "starting_column": 5, "ending_column": 6 @@ -29,9 +27,9 @@ "source_mapping": { "start": 28, "length": 393, - "filename_relative": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -63,42 +61,40 @@ "ending_column": 2 } }, - "signature": "bug2()" + "signature": "bug0()" } }, { "type": "node", - "name": "tx.origin != owner", + "name": "require(bool)(tx.origin == owner)", "source_mapping": { - "start": 212, - "length": 18, - "filename_relative": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "start": 142, + "length": 27, + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "is_dependency": false, "lines": [ - 14 + 10 ], - "starting_column": 13, - "ending_column": 31 + "starting_column": 9, + "ending_column": 36 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bug2", + "name": "bug0", "source_mapping": { - "start": 182, - "length": 89, - "filename_relative": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "start": 116, + "length": 60, + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "is_dependency": false, "lines": [ - 13, - 14, - 15, - 16, - 17 + 9, + 10, + 11 ], "starting_column": 5, "ending_column": 6 @@ -110,9 +106,9 @@ "source_mapping": { "start": 28, "length": 393, - "filename_relative": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -144,16 +140,16 @@ "ending_column": 2 } }, - "signature": "bug2()" + "signature": "bug0()" } } } } ], - "description": "TxOrigin.bug2() (tests/detectors/tx-origin/0.4.25/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/detectors/tx-origin/0.4.25/tx_origin.sol#14)\n", - "markdown": "[TxOrigin.bug2()](tests/detectors/tx-origin/0.4.25/tx_origin.sol#L13-L17) uses tx.origin for authorization: [tx.origin != owner](tests/detectors/tx-origin/0.4.25/tx_origin.sol#L14)\n", - "first_markdown_element": "tests/detectors/tx-origin/0.4.25/tx_origin.sol#L13-L17", - "id": "7abecda0c73eb43dadcd93458222d0848b1dee58af66887f81b9381c90e656f6", + "description": "TxOrigin.bug0() (tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#10)\n", + "markdown": "[TxOrigin.bug0()](tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#L9-L11) uses tx.origin for authorization: [require(bool)(tx.origin == owner)](tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#L9-L11", + "id": "763fe3d84027e0b56f7797a2913da141bb2a3a61872e3faaffd5637a7c215966", "check": "tx-origin", "impact": "Medium", "confidence": "Medium" @@ -162,18 +158,20 @@ "elements": [ { "type": "function", - "name": "bug0", + "name": "bug2", "source_mapping": { - "start": 116, - "length": 60, - "filename_relative": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "start": 182, + "length": 89, + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "is_dependency": false, "lines": [ - 9, - 10, - 11 + 13, + 14, + 15, + 16, + 17 ], "starting_column": 5, "ending_column": 6 @@ -185,9 +183,9 @@ "source_mapping": { "start": 28, "length": 393, - "filename_relative": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -219,40 +217,42 @@ "ending_column": 2 } }, - "signature": "bug0()" + "signature": "bug2()" } }, { "type": "node", - "name": "require(bool)(tx.origin == owner)", + "name": "tx.origin != owner", "source_mapping": { - "start": 142, - "length": 27, - "filename_relative": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "start": 212, + "length": 18, + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "is_dependency": false, "lines": [ - 10 + 14 ], - "starting_column": 9, - "ending_column": 36 + "starting_column": 13, + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bug0", + "name": "bug2", "source_mapping": { - "start": 116, - "length": 60, - "filename_relative": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "start": 182, + "length": 89, + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "is_dependency": false, "lines": [ - 9, - 10, - 11 + 13, + 14, + 15, + 16, + 17 ], "starting_column": 5, "ending_column": 6 @@ -264,9 +264,9 @@ "source_mapping": { "start": 28, "length": 393, - "filename_relative": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.4.25/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -298,16 +298,16 @@ "ending_column": 2 } }, - "signature": "bug0()" + "signature": "bug2()" } } } } ], - "description": "TxOrigin.bug0() (tests/detectors/tx-origin/0.4.25/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/detectors/tx-origin/0.4.25/tx_origin.sol#10)\n", - "markdown": "[TxOrigin.bug0()](tests/detectors/tx-origin/0.4.25/tx_origin.sol#L9-L11) uses tx.origin for authorization: [require(bool)(tx.origin == owner)](tests/detectors/tx-origin/0.4.25/tx_origin.sol#L10)\n", - "first_markdown_element": "tests/detectors/tx-origin/0.4.25/tx_origin.sol#L9-L11", - "id": "b8173796b90a23f4587ed67d7100dfd3c890bf9f96910e177630bb8a6f1703fe", + "description": "TxOrigin.bug2() (tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#14)\n", + "markdown": "[TxOrigin.bug2()](tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#L13-L17) uses tx.origin for authorization: [tx.origin != owner](tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#L13-L17", + "id": "9cd6cc5fbb38a4aa51b6fe687ffc959d61e571c43f7ddb2c2a9d628b06a472a3", "check": "tx-origin", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/tx-origin/0.5.16/tx_origin.sol b/tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol similarity index 100% rename from tests/detectors/tx-origin/0.5.16/tx_origin.sol rename to tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol diff --git a/tests/detectors/tx-origin/0.5.16/tx_origin.sol.0.5.16.TxOrigin.json b/tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol.0.5.16.TxOrigin.json similarity index 78% rename from tests/detectors/tx-origin/0.5.16/tx_origin.sol.0.5.16.TxOrigin.json rename to tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol.0.5.16.TxOrigin.json index 4039d42a7..77cd977b2 100644 --- a/tests/detectors/tx-origin/0.5.16/tx_origin.sol.0.5.16.TxOrigin.json +++ b/tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol.0.5.16.TxOrigin.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 127, "length": 66, - "filename_relative": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "is_dependency": false, "lines": [ 9, @@ -27,9 +27,9 @@ "source_mapping": { "start": 25, "length": 442, - "filename_relative": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -70,9 +70,9 @@ "source_mapping": { "start": 159, "length": 27, - "filename_relative": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "is_dependency": false, "lines": [ 10 @@ -87,9 +87,9 @@ "source_mapping": { "start": 127, "length": 66, - "filename_relative": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "is_dependency": false, "lines": [ 9, @@ -106,9 +106,9 @@ "source_mapping": { "start": 25, "length": 442, - "filename_relative": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -146,10 +146,10 @@ } } ], - "description": "TxOrigin.bug0() (tests/detectors/tx-origin/0.5.16/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/detectors/tx-origin/0.5.16/tx_origin.sol#10)\n", - "markdown": "[TxOrigin.bug0()](tests/detectors/tx-origin/0.5.16/tx_origin.sol#L9-L11) uses tx.origin for authorization: [require(bool)(tx.origin == owner)](tests/detectors/tx-origin/0.5.16/tx_origin.sol#L10)\n", - "first_markdown_element": "tests/detectors/tx-origin/0.5.16/tx_origin.sol#L9-L11", - "id": "17b0e5d0ce8741c95b5fd54f143d62588a291db7741897da6704c30d9e3abccd", + "description": "TxOrigin.bug0() (tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#10)\n", + "markdown": "[TxOrigin.bug0()](tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#L9-L11) uses tx.origin for authorization: [require(bool)(tx.origin == owner)](tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#L9-L11", + "id": "964dc0a5332a1829793bae146cb8c612b19d9f4c7ffabdec535865be0267e453", "check": "tx-origin", "impact": "Medium", "confidence": "Medium" @@ -162,9 +162,9 @@ "source_mapping": { "start": 199, "length": 95, - "filename_relative": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "is_dependency": false, "lines": [ 13, @@ -183,9 +183,9 @@ "source_mapping": { "start": 25, "length": 442, - "filename_relative": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -226,9 +226,9 @@ "source_mapping": { "start": 235, "length": 18, - "filename_relative": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "is_dependency": false, "lines": [ 14 @@ -243,9 +243,9 @@ "source_mapping": { "start": 199, "length": 95, - "filename_relative": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "is_dependency": false, "lines": [ 13, @@ -264,9 +264,9 @@ "source_mapping": { "start": 25, "length": 442, - "filename_relative": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.5.16/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -304,10 +304,10 @@ } } ], - "description": "TxOrigin.bug2() (tests/detectors/tx-origin/0.5.16/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/detectors/tx-origin/0.5.16/tx_origin.sol#14)\n", - "markdown": "[TxOrigin.bug2()](tests/detectors/tx-origin/0.5.16/tx_origin.sol#L13-L17) uses tx.origin for authorization: [tx.origin != owner](tests/detectors/tx-origin/0.5.16/tx_origin.sol#L14)\n", - "first_markdown_element": "tests/detectors/tx-origin/0.5.16/tx_origin.sol#L13-L17", - "id": "f3508f86e8e1e9edd815558ff94afc9428e8c0e2363a447efb86ceeefbc70ee3", + "description": "TxOrigin.bug2() (tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#14)\n", + "markdown": "[TxOrigin.bug2()](tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#L13-L17) uses tx.origin for authorization: [tx.origin != owner](tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#L13-L17", + "id": "c59530b3606736ac49042a2b48fef6644036400f64f91c8d004d0d5bf7031826", "check": "tx-origin", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/tx-origin/0.6.11/tx_origin.sol b/tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol similarity index 100% rename from tests/detectors/tx-origin/0.6.11/tx_origin.sol rename to tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol diff --git a/tests/detectors/tx-origin/0.6.11/tx_origin.sol.0.6.11.TxOrigin.json b/tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol.0.6.11.TxOrigin.json similarity index 78% rename from tests/detectors/tx-origin/0.6.11/tx_origin.sol.0.6.11.TxOrigin.json rename to tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol.0.6.11.TxOrigin.json index c400e5d09..fbc904ae3 100644 --- a/tests/detectors/tx-origin/0.6.11/tx_origin.sol.0.6.11.TxOrigin.json +++ b/tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol.0.6.11.TxOrigin.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 130, "length": 66, - "filename_relative": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "is_dependency": false, "lines": [ 9, @@ -27,9 +27,9 @@ "source_mapping": { "start": 28, "length": 442, - "filename_relative": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -70,9 +70,9 @@ "source_mapping": { "start": 162, "length": 27, - "filename_relative": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "is_dependency": false, "lines": [ 10 @@ -87,9 +87,9 @@ "source_mapping": { "start": 130, "length": 66, - "filename_relative": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "is_dependency": false, "lines": [ 9, @@ -106,9 +106,9 @@ "source_mapping": { "start": 28, "length": 442, - "filename_relative": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -146,10 +146,10 @@ } } ], - "description": "TxOrigin.bug0() (tests/detectors/tx-origin/0.6.11/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/detectors/tx-origin/0.6.11/tx_origin.sol#10)\n", - "markdown": "[TxOrigin.bug0()](tests/detectors/tx-origin/0.6.11/tx_origin.sol#L9-L11) uses tx.origin for authorization: [require(bool)(tx.origin == owner)](tests/detectors/tx-origin/0.6.11/tx_origin.sol#L10)\n", - "first_markdown_element": "tests/detectors/tx-origin/0.6.11/tx_origin.sol#L9-L11", - "id": "5eb57935f1e4650e5340de788d03401c5f010c2bf5f0240254d2235bbe1b970b", + "description": "TxOrigin.bug0() (tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#10)\n", + "markdown": "[TxOrigin.bug0()](tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#L9-L11) uses tx.origin for authorization: [require(bool)(tx.origin == owner)](tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#L9-L11", + "id": "e916fd4b9d754f327bef52f0e01c6184164c070b135260e1ffd7e4297a465e11", "check": "tx-origin", "impact": "Medium", "confidence": "Medium" @@ -162,9 +162,9 @@ "source_mapping": { "start": 202, "length": 95, - "filename_relative": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "is_dependency": false, "lines": [ 13, @@ -183,9 +183,9 @@ "source_mapping": { "start": 28, "length": 442, - "filename_relative": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -226,9 +226,9 @@ "source_mapping": { "start": 238, "length": 18, - "filename_relative": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "is_dependency": false, "lines": [ 14 @@ -243,9 +243,9 @@ "source_mapping": { "start": 202, "length": 95, - "filename_relative": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "is_dependency": false, "lines": [ 13, @@ -264,9 +264,9 @@ "source_mapping": { "start": 28, "length": 442, - "filename_relative": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.6.11/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -304,10 +304,10 @@ } } ], - "description": "TxOrigin.bug2() (tests/detectors/tx-origin/0.6.11/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/detectors/tx-origin/0.6.11/tx_origin.sol#14)\n", - "markdown": "[TxOrigin.bug2()](tests/detectors/tx-origin/0.6.11/tx_origin.sol#L13-L17) uses tx.origin for authorization: [tx.origin != owner](tests/detectors/tx-origin/0.6.11/tx_origin.sol#L14)\n", - "first_markdown_element": "tests/detectors/tx-origin/0.6.11/tx_origin.sol#L13-L17", - "id": "817a27177f073d8ab4a011817ea1e6ebb8b7cba8691c8dea621ee65a77871ee0", + "description": "TxOrigin.bug2() (tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#14)\n", + "markdown": "[TxOrigin.bug2()](tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#L13-L17) uses tx.origin for authorization: [tx.origin != owner](tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#L13-L17", + "id": "fb2810a8b293123b87a1cc869b0a5123a6c43c9eaf5e05635f2f4c8d11dcce01", "check": "tx-origin", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/tx-origin/0.7.6/tx_origin.sol b/tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol similarity index 100% rename from tests/detectors/tx-origin/0.7.6/tx_origin.sol rename to tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol diff --git a/tests/detectors/tx-origin/0.7.6/tx_origin.sol.0.7.6.TxOrigin.json b/tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol.0.7.6.TxOrigin.json similarity index 78% rename from tests/detectors/tx-origin/0.7.6/tx_origin.sol.0.7.6.TxOrigin.json rename to tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol.0.7.6.TxOrigin.json index 63fee8fe2..d0e7139c7 100644 --- a/tests/detectors/tx-origin/0.7.6/tx_origin.sol.0.7.6.TxOrigin.json +++ b/tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol.0.7.6.TxOrigin.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 202, "length": 95, - "filename_relative": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "is_dependency": false, "lines": [ 13, @@ -29,9 +29,9 @@ "source_mapping": { "start": 28, "length": 442, - "filename_relative": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -72,9 +72,9 @@ "source_mapping": { "start": 238, "length": 18, - "filename_relative": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "is_dependency": false, "lines": [ 14 @@ -89,9 +89,9 @@ "source_mapping": { "start": 202, "length": 95, - "filename_relative": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "is_dependency": false, "lines": [ 13, @@ -110,9 +110,9 @@ "source_mapping": { "start": 28, "length": 442, - "filename_relative": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -150,10 +150,10 @@ } } ], - "description": "TxOrigin.bug2() (tests/detectors/tx-origin/0.7.6/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/detectors/tx-origin/0.7.6/tx_origin.sol#14)\n", - "markdown": "[TxOrigin.bug2()](tests/detectors/tx-origin/0.7.6/tx_origin.sol#L13-L17) uses tx.origin for authorization: [tx.origin != owner](tests/detectors/tx-origin/0.7.6/tx_origin.sol#L14)\n", - "first_markdown_element": "tests/detectors/tx-origin/0.7.6/tx_origin.sol#L13-L17", - "id": "1c195c6a3ea5b7e77c12b7580544ef2320699359862c22961726f112ab27b3a5", + "description": "TxOrigin.bug2() (tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#14)\n", + "markdown": "[TxOrigin.bug2()](tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#L13-L17) uses tx.origin for authorization: [tx.origin != owner](tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#L13-L17", + "id": "be02a2e929852a463b8ea0b02d6ac0aa7a977589b305078a506503bae3e539ae", "check": "tx-origin", "impact": "Medium", "confidence": "Medium" @@ -166,9 +166,9 @@ "source_mapping": { "start": 130, "length": 66, - "filename_relative": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "is_dependency": false, "lines": [ 9, @@ -185,9 +185,9 @@ "source_mapping": { "start": 28, "length": 442, - "filename_relative": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -228,9 +228,9 @@ "source_mapping": { "start": 162, "length": 27, - "filename_relative": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "is_dependency": false, "lines": [ 10 @@ -245,9 +245,9 @@ "source_mapping": { "start": 130, "length": 66, - "filename_relative": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "is_dependency": false, "lines": [ 9, @@ -264,9 +264,9 @@ "source_mapping": { "start": 28, "length": 442, - "filename_relative": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/tx-origin/0.7.6/tx_origin.sol", + "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", "is_dependency": false, "lines": [ 3, @@ -304,10 +304,10 @@ } } ], - "description": "TxOrigin.bug0() (tests/detectors/tx-origin/0.7.6/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/detectors/tx-origin/0.7.6/tx_origin.sol#10)\n", - "markdown": "[TxOrigin.bug0()](tests/detectors/tx-origin/0.7.6/tx_origin.sol#L9-L11) uses tx.origin for authorization: [require(bool)(tx.origin == owner)](tests/detectors/tx-origin/0.7.6/tx_origin.sol#L10)\n", - "first_markdown_element": "tests/detectors/tx-origin/0.7.6/tx_origin.sol#L9-L11", - "id": "d3d9d4cb2307781870af54ebca528052197b021adcabf4d0c3a897e96affece3", + "description": "TxOrigin.bug0() (tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#10)\n", + "markdown": "[TxOrigin.bug0()](tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#L9-L11) uses tx.origin for authorization: [require(bool)(tx.origin == owner)](tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#L9-L11", + "id": "d7499b349f6bf0f616986a3a459ecb90cd625e5bf3601d1e2b864bad16a11ec4", "check": "tx-origin", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol similarity index 100% rename from tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol rename to tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol diff --git a/tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol.0.4.25.UncheckedLowLevel.json b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol.0.4.25.UncheckedLowLevel.json similarity index 71% rename from tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol.0.4.25.UncheckedLowLevel.json rename to tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol.0.4.25.UncheckedLowLevel.json index dfdbd5f12..6e32d2a64 100644 --- a/tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol.0.4.25.UncheckedLowLevel.json +++ b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol.0.4.25.UncheckedLowLevel.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 21, "length": 88, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 2, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 214, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 1, @@ -56,9 +56,9 @@ "source_mapping": { "start": 73, "length": 29, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 3 @@ -73,9 +73,9 @@ "source_mapping": { "start": 21, "length": 88, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 2, @@ -92,9 +92,9 @@ "source_mapping": { "start": 0, "length": 214, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 1, @@ -118,10 +118,10 @@ } } ], - "description": "MyConc.bad(address) (tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#2-4) ignores return value by dst.call.value(msg.value)() (tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#L2-L4) ignores return value by [dst.call.value(msg.value)()](tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#L3)\n", - "first_markdown_element": "tests/detectors/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#L2-L4", - "id": "5e99856e75f5f5937a5b9f8f90fc9ce01eabfcf97c0d3e2b59f5cd057add9c19", + "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#2-4) ignores return value by dst.call.value(msg.value)() (tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#3)\n", + "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#L2-L4) ignores return value by [dst.call.value(msg.value)()](tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#L2-L4", + "id": "a53ebce132787a825156e74d4580a7948908502dfa293ced870c2f8cce988567", "check": "unchecked-lowlevel", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol similarity index 100% rename from tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol rename to tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol diff --git a/tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol.0.5.16.UncheckedLowLevel.json b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol.0.5.16.UncheckedLowLevel.json similarity index 71% rename from tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol.0.5.16.UncheckedLowLevel.json rename to tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol.0.5.16.UncheckedLowLevel.json index 2056620b3..8cbe3b1bc 100644 --- a/tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol.0.5.16.UncheckedLowLevel.json +++ b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol.0.5.16.UncheckedLowLevel.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 21, "length": 96, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 2, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 274, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 1, @@ -57,9 +57,9 @@ "source_mapping": { "start": 81, "length": 29, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 3 @@ -74,9 +74,9 @@ "source_mapping": { "start": 21, "length": 96, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 2, @@ -93,9 +93,9 @@ "source_mapping": { "start": 0, "length": 274, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 1, @@ -120,10 +120,10 @@ } } ], - "description": "MyConc.bad(address) (tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#2-4) ignores return value by dst.call.value(msg.value)() (tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#L2-L4) ignores return value by [dst.call.value(msg.value)()](tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#L3)\n", - "first_markdown_element": "tests/detectors/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#L2-L4", - "id": "f03d14053bc8c0d4a6cacad0f9915b9d1be3a711767d92e994ae01f690e2b9ca", + "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#2-4) ignores return value by dst.call.value(msg.value)() (tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#3)\n", + "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#L2-L4) ignores return value by [dst.call.value(msg.value)()](tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#L2-L4", + "id": "681bc51b34d1673cfd5e09101557ba555577312655bcd976ec05109be46c9ed1", "check": "unchecked-lowlevel", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol similarity index 100% rename from tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol rename to tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol diff --git a/tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol.0.6.11.UncheckedLowLevel.json b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol.0.6.11.UncheckedLowLevel.json similarity index 71% rename from tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol.0.6.11.UncheckedLowLevel.json rename to tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol.0.6.11.UncheckedLowLevel.json index 65f0da15f..5c462303c 100644 --- a/tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol.0.6.11.UncheckedLowLevel.json +++ b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol.0.6.11.UncheckedLowLevel.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 21, "length": 96, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 2, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 274, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 1, @@ -57,9 +57,9 @@ "source_mapping": { "start": 81, "length": 29, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 3 @@ -74,9 +74,9 @@ "source_mapping": { "start": 21, "length": 96, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 2, @@ -93,9 +93,9 @@ "source_mapping": { "start": 0, "length": 274, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 1, @@ -120,10 +120,10 @@ } } ], - "description": "MyConc.bad(address) (tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#2-4) ignores return value by dst.call.value(msg.value)() (tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#L2-L4) ignores return value by [dst.call.value(msg.value)()](tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#L3)\n", - "first_markdown_element": "tests/detectors/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#L2-L4", - "id": "9b10d50510f386ab6f8cbfed4486317d581fcb6795ccc773bb0e7922b4e2512f", + "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#2-4) ignores return value by dst.call.value(msg.value)() (tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#3)\n", + "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#L2-L4) ignores return value by [dst.call.value(msg.value)()](tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#L2-L4", + "id": "944a7149ed3900aa7e22a86921df5db6e9952b9bb63ebd1a53967bfbd79ec888", "check": "unchecked-lowlevel", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol similarity index 100% rename from tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol rename to tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol diff --git a/tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol.0.7.6.UncheckedLowLevel.json b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol.0.7.6.UncheckedLowLevel.json similarity index 71% rename from tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol.0.7.6.UncheckedLowLevel.json rename to tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol.0.7.6.UncheckedLowLevel.json index 60d55a8a9..4fb9e18e7 100644 --- a/tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol.0.7.6.UncheckedLowLevel.json +++ b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol.0.7.6.UncheckedLowLevel.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 21, "length": 96, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 2, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 274, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 1, @@ -57,9 +57,9 @@ "source_mapping": { "start": 81, "length": 29, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 3 @@ -74,9 +74,9 @@ "source_mapping": { "start": 21, "length": 96, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 2, @@ -93,9 +93,9 @@ "source_mapping": { "start": 0, "length": 274, - "filename_relative": "tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", "is_dependency": false, "lines": [ 1, @@ -120,10 +120,10 @@ } } ], - "description": "MyConc.bad(address) (tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#2-4) ignores return value by dst.call{value: msg.value}() (tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#L2-L4) ignores return value by [dst.call{value: msg.value}()](tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#L3)\n", - "first_markdown_element": "tests/detectors/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#L2-L4", - "id": "55182dfa175ac27adc4625cf672f25b6b759d8f4645fed76e35bbeace0733169", + "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#2-4) ignores return value by dst.call{value: msg.value}() (tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#3)\n", + "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#L2-L4) ignores return value by [dst.call{value: msg.value}()](tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#L2-L4", + "id": "3d788c931cdecb4919bf36187d46e5f66c541055763747d6822741a05b12eb98", "check": "unchecked-lowlevel", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/unchecked-send/0.4.25/unchecked_send.sol b/tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol similarity index 100% rename from tests/detectors/unchecked-send/0.4.25/unchecked_send.sol rename to tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol diff --git a/tests/detectors/unchecked-send/0.4.25/unchecked_send.sol.0.4.25.UncheckedSend.json b/tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol.0.4.25.UncheckedSend.json similarity index 75% rename from tests/detectors/unchecked-send/0.4.25/unchecked_send.sol.0.4.25.UncheckedSend.json rename to tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol.0.4.25.UncheckedSend.json index 1a15631fd..039c36d9e 100644 --- a/tests/detectors/unchecked-send/0.4.25/unchecked_send.sol.0.4.25.UncheckedSend.json +++ b/tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol.0.4.25.UncheckedSend.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 21, "length": 78, - "filename_relative": "tests/detectors/unchecked-send/0.4.25/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.4.25/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", "is_dependency": false, "lines": [ 2, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 395, - "filename_relative": "tests/detectors/unchecked-send/0.4.25/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.4.25/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", "is_dependency": false, "lines": [ 1, @@ -64,9 +64,9 @@ "source_mapping": { "start": 73, "length": 19, - "filename_relative": "tests/detectors/unchecked-send/0.4.25/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.4.25/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", "is_dependency": false, "lines": [ 3 @@ -81,9 +81,9 @@ "source_mapping": { "start": 21, "length": 78, - "filename_relative": "tests/detectors/unchecked-send/0.4.25/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.4.25/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", "is_dependency": false, "lines": [ 2, @@ -100,9 +100,9 @@ "source_mapping": { "start": 0, "length": 395, - "filename_relative": "tests/detectors/unchecked-send/0.4.25/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.4.25/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", "is_dependency": false, "lines": [ 1, @@ -134,10 +134,10 @@ } } ], - "description": "MyConc.bad(address) (tests/detectors/unchecked-send/0.4.25/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/detectors/unchecked-send/0.4.25/unchecked_send.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/detectors/unchecked-send/0.4.25/unchecked_send.sol#L2-L4) ignores return value by [dst.send(msg.value)](tests/detectors/unchecked-send/0.4.25/unchecked_send.sol#L3)\n", - "first_markdown_element": "tests/detectors/unchecked-send/0.4.25/unchecked_send.sol#L2-L4", - "id": "b94e1c9425182d05c61d316caea5bc02b4b68478b0640db50f80f3a8af690cf8", + "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol#3)\n", + "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol#L2-L4) ignores return value by [dst.send(msg.value)](tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol#L2-L4", + "id": "53c669b7a1a11ee69bc94ea346368fc8f198ab118986b147f83135047186b948", "check": "unchecked-send", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/unchecked-send/0.5.16/unchecked_send.sol b/tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol similarity index 100% rename from tests/detectors/unchecked-send/0.5.16/unchecked_send.sol rename to tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol diff --git a/tests/detectors/unchecked-send/0.5.16/unchecked_send.sol.0.5.16.UncheckedSend.json b/tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol.0.5.16.UncheckedSend.json similarity index 75% rename from tests/detectors/unchecked-send/0.5.16/unchecked_send.sol.0.5.16.UncheckedSend.json rename to tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol.0.5.16.UncheckedSend.json index a24ca9ef9..fd3a9775e 100644 --- a/tests/detectors/unchecked-send/0.5.16/unchecked_send.sol.0.5.16.UncheckedSend.json +++ b/tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol.0.5.16.UncheckedSend.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 21, "length": 86, - "filename_relative": "tests/detectors/unchecked-send/0.5.16/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.5.16/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", "is_dependency": false, "lines": [ 2, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 419, - "filename_relative": "tests/detectors/unchecked-send/0.5.16/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.5.16/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", "is_dependency": false, "lines": [ 1, @@ -64,9 +64,9 @@ "source_mapping": { "start": 81, "length": 19, - "filename_relative": "tests/detectors/unchecked-send/0.5.16/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.5.16/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", "is_dependency": false, "lines": [ 3 @@ -81,9 +81,9 @@ "source_mapping": { "start": 21, "length": 86, - "filename_relative": "tests/detectors/unchecked-send/0.5.16/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.5.16/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", "is_dependency": false, "lines": [ 2, @@ -100,9 +100,9 @@ "source_mapping": { "start": 0, "length": 419, - "filename_relative": "tests/detectors/unchecked-send/0.5.16/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.5.16/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", "is_dependency": false, "lines": [ 1, @@ -134,10 +134,10 @@ } } ], - "description": "MyConc.bad(address) (tests/detectors/unchecked-send/0.5.16/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/detectors/unchecked-send/0.5.16/unchecked_send.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/detectors/unchecked-send/0.5.16/unchecked_send.sol#L2-L4) ignores return value by [dst.send(msg.value)](tests/detectors/unchecked-send/0.5.16/unchecked_send.sol#L3)\n", - "first_markdown_element": "tests/detectors/unchecked-send/0.5.16/unchecked_send.sol#L2-L4", - "id": "0a6498f517f4ce099f69fa38244cd23d58ea065fced5890d0cbbc1e5d3cc2c67", + "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol#3)\n", + "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol#L2-L4) ignores return value by [dst.send(msg.value)](tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol#L2-L4", + "id": "07b3682c6cfb1a5f141bff2d66a2bab2bbef9dd783d4061716ca6f23283d649f", "check": "unchecked-send", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/unchecked-send/0.6.11/unchecked_send.sol b/tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol similarity index 100% rename from tests/detectors/unchecked-send/0.6.11/unchecked_send.sol rename to tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol diff --git a/tests/detectors/unchecked-send/0.6.11/unchecked_send.sol.0.6.11.UncheckedSend.json b/tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol.0.6.11.UncheckedSend.json similarity index 75% rename from tests/detectors/unchecked-send/0.6.11/unchecked_send.sol.0.6.11.UncheckedSend.json rename to tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol.0.6.11.UncheckedSend.json index 736dfeb3d..f74efaa70 100644 --- a/tests/detectors/unchecked-send/0.6.11/unchecked_send.sol.0.6.11.UncheckedSend.json +++ b/tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol.0.6.11.UncheckedSend.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 21, "length": 86, - "filename_relative": "tests/detectors/unchecked-send/0.6.11/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.6.11/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", "is_dependency": false, "lines": [ 2, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 419, - "filename_relative": "tests/detectors/unchecked-send/0.6.11/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.6.11/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", "is_dependency": false, "lines": [ 1, @@ -64,9 +64,9 @@ "source_mapping": { "start": 81, "length": 19, - "filename_relative": "tests/detectors/unchecked-send/0.6.11/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.6.11/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", "is_dependency": false, "lines": [ 3 @@ -81,9 +81,9 @@ "source_mapping": { "start": 21, "length": 86, - "filename_relative": "tests/detectors/unchecked-send/0.6.11/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.6.11/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", "is_dependency": false, "lines": [ 2, @@ -100,9 +100,9 @@ "source_mapping": { "start": 0, "length": 419, - "filename_relative": "tests/detectors/unchecked-send/0.6.11/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.6.11/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", "is_dependency": false, "lines": [ 1, @@ -134,10 +134,10 @@ } } ], - "description": "MyConc.bad(address) (tests/detectors/unchecked-send/0.6.11/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/detectors/unchecked-send/0.6.11/unchecked_send.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/detectors/unchecked-send/0.6.11/unchecked_send.sol#L2-L4) ignores return value by [dst.send(msg.value)](tests/detectors/unchecked-send/0.6.11/unchecked_send.sol#L3)\n", - "first_markdown_element": "tests/detectors/unchecked-send/0.6.11/unchecked_send.sol#L2-L4", - "id": "9050ea44b0aae908f94739cc228af9e1964fe0b0305fd90797259305f9344b5e", + "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol#3)\n", + "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol#L2-L4) ignores return value by [dst.send(msg.value)](tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol#L2-L4", + "id": "5a8a36e26f96ad9c6c96c2fe504e0199561af6e9e25b901ca899655349f7f64d", "check": "unchecked-send", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/unchecked-send/0.7.6/unchecked_send.sol b/tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol similarity index 100% rename from tests/detectors/unchecked-send/0.7.6/unchecked_send.sol rename to tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol diff --git a/tests/detectors/unchecked-send/0.7.6/unchecked_send.sol.0.7.6.UncheckedSend.json b/tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol.0.7.6.UncheckedSend.json similarity index 75% rename from tests/detectors/unchecked-send/0.7.6/unchecked_send.sol.0.7.6.UncheckedSend.json rename to tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol.0.7.6.UncheckedSend.json index 8f8a6ab23..3984b49e9 100644 --- a/tests/detectors/unchecked-send/0.7.6/unchecked_send.sol.0.7.6.UncheckedSend.json +++ b/tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol.0.7.6.UncheckedSend.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 21, "length": 86, - "filename_relative": "tests/detectors/unchecked-send/0.7.6/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.7.6/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", "is_dependency": false, "lines": [ 2, @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 419, - "filename_relative": "tests/detectors/unchecked-send/0.7.6/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.7.6/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", "is_dependency": false, "lines": [ 1, @@ -64,9 +64,9 @@ "source_mapping": { "start": 81, "length": 19, - "filename_relative": "tests/detectors/unchecked-send/0.7.6/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.7.6/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", "is_dependency": false, "lines": [ 3 @@ -81,9 +81,9 @@ "source_mapping": { "start": 21, "length": 86, - "filename_relative": "tests/detectors/unchecked-send/0.7.6/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.7.6/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", "is_dependency": false, "lines": [ 2, @@ -100,9 +100,9 @@ "source_mapping": { "start": 0, "length": 419, - "filename_relative": "tests/detectors/unchecked-send/0.7.6/unchecked_send.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-send/0.7.6/unchecked_send.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", "is_dependency": false, "lines": [ 1, @@ -134,10 +134,10 @@ } } ], - "description": "MyConc.bad(address) (tests/detectors/unchecked-send/0.7.6/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/detectors/unchecked-send/0.7.6/unchecked_send.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/detectors/unchecked-send/0.7.6/unchecked_send.sol#L2-L4) ignores return value by [dst.send(msg.value)](tests/detectors/unchecked-send/0.7.6/unchecked_send.sol#L3)\n", - "first_markdown_element": "tests/detectors/unchecked-send/0.7.6/unchecked_send.sol#L2-L4", - "id": "74d3637eb50def7c93e85041859377832449a73e2546ab915ac91aef6d9a30e8", + "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol#3)\n", + "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol#L2-L4) ignores return value by [dst.send(msg.value)](tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol#L3)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol#L2-L4", + "id": "9b37538e9923917709a86b5e590c69d39664c6ed979db9c15767acc11317872e", "check": "unchecked-send", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol b/tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol similarity index 100% rename from tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol rename to tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol diff --git a/tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol.0.7.6.UncheckedTransfer.json b/tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol.0.7.6.UncheckedTransfer.json similarity index 80% rename from tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol.0.7.6.UncheckedTransfer.json rename to tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol.0.7.6.UncheckedTransfer.json index 46c6b365b..7e14b9765 100644 --- a/tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol.0.7.6.UncheckedTransfer.json +++ b/tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol.0.7.6.UncheckedTransfer.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 461, "length": 70, - "filename_relative": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "is_dependency": false, "lines": [ 20, @@ -27,9 +27,9 @@ "source_mapping": { "start": 330, "length": 1456, - "filename_relative": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "is_dependency": false, "lines": [ 12, @@ -99,9 +99,9 @@ "source_mapping": { "start": 493, "length": 31, - "filename_relative": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "is_dependency": false, "lines": [ 21 @@ -116,9 +116,9 @@ "source_mapping": { "start": 461, "length": 70, - "filename_relative": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "is_dependency": false, "lines": [ 20, @@ -135,9 +135,9 @@ "source_mapping": { "start": 330, "length": 1456, - "filename_relative": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "is_dependency": false, "lines": [ 12, @@ -204,10 +204,10 @@ } } ], - "description": "C.bad0() (tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol#20-22) ignores return value by t.transfer(address(0),1000000000000000000) (tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol#21)\n", - "markdown": "[C.bad0()](tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol#L20-L22) ignores return value by [t.transfer(address(0),1000000000000000000)](tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol#L21)\n", - "first_markdown_element": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol#L20-L22", - "id": "80065ea26ff38c396f5e90355b471bae6064c77a22e2c248d2cb8212542fd685", + "description": "C.bad0() (tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#20-22) ignores return value by t.transfer(address(0),1000000000000000000) (tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#21)\n", + "markdown": "[C.bad0()](tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#L20-L22) ignores return value by [t.transfer(address(0),1000000000000000000)](tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#L21)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#L20-L22", + "id": "e7965c2319b8ce1f10fb8b4c90af763c5bc9e6c74a6706b810de2ee871ed779e", "check": "unchecked-transfer", "impact": "High", "confidence": "Medium" @@ -220,9 +220,9 @@ "source_mapping": { "start": 1043, "length": 90, - "filename_relative": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "is_dependency": false, "lines": [ 40, @@ -239,9 +239,9 @@ "source_mapping": { "start": 330, "length": 1456, - "filename_relative": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "is_dependency": false, "lines": [ 12, @@ -311,9 +311,9 @@ "source_mapping": { "start": 1076, "length": 50, - "filename_relative": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "is_dependency": false, "lines": [ 41 @@ -328,9 +328,9 @@ "source_mapping": { "start": 1043, "length": 90, - "filename_relative": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "is_dependency": false, "lines": [ 40, @@ -347,9 +347,9 @@ "source_mapping": { "start": 330, "length": 1456, - "filename_relative": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol", + "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", "is_dependency": false, "lines": [ 12, @@ -416,10 +416,10 @@ } } ], - "description": "C.bad1() (tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol#40-42) ignores return value by t.transferFrom(address(this),address(0),1000000000000000000) (tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol#41)\n", - "markdown": "[C.bad1()](tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol#L40-L42) ignores return value by [t.transferFrom(address(this),address(0),1000000000000000000)](tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol#L41)\n", - "first_markdown_element": "tests/detectors/unchecked-transfer/0.7.6/unused_return_transfers.sol#L40-L42", - "id": "f5cc3050f74f696eb02ce0887fca6c8b0a4a8a663974a8eddec9206ad787295d", + "description": "C.bad1() (tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#40-42) ignores return value by t.transferFrom(address(this),address(0),1000000000000000000) (tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#41)\n", + "markdown": "[C.bad1()](tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#L40-L42) ignores return value by [t.transferFrom(address(this),address(0),1000000000000000000)](tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#L41)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#L40-L42", + "id": "eb40769155f8a641f5841fb036ba726b798603ce8cde222293c77d436f0c3657", "check": "unchecked-transfer", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol b/tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol similarity index 100% rename from tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol rename to tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol diff --git a/tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol.0.4.25.UnimplementedFunctionDetection.json b/tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol.0.4.25.UnimplementedFunctionDetection.json similarity index 63% rename from tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol.0.4.25.UnimplementedFunctionDetection.json rename to tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol.0.4.25.UnimplementedFunctionDetection.json index c9d7e2df8..002670fea 100644 --- a/tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol.0.4.25.UnimplementedFunctionDetection.json +++ b/tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol.0.4.25.UnimplementedFunctionDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 775, "length": 243, - "filename_relative": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "is_dependency": false, "lines": [ 35, @@ -31,9 +31,9 @@ "source_mapping": { "start": 495, "length": 42, - "filename_relative": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "is_dependency": false, "lines": [ 24 @@ -48,9 +48,9 @@ "source_mapping": { "start": 465, "length": 74, - "filename_relative": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "is_dependency": false, "lines": [ 23, @@ -65,9 +65,9 @@ } } ], - "description": "DerivedContract_good (tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#35-41) does not implement functions:\n\t- BaseInterface3.get(uint256) (tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#24)\n", - "markdown": "[DerivedContract_good](tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#L35-L41) does not implement functions:\n\t- [BaseInterface3.get(uint256)](tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#L24)\n", - "first_markdown_element": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#L35-L41", + "description": "DerivedContract_good (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#35-41) does not implement functions:\n\t- BaseInterface3.get(uint256) (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#24)\n", + "markdown": "[DerivedContract_good](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L35-L41) does not implement functions:\n\t- [BaseInterface3.get(uint256)](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L24)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L35-L41", "id": "08d3e8a72b5da6d189acb46ecd36f00787a87812727526a0cae248a2bac348fc", "check": "unimplemented-functions", "impact": "Informational", @@ -81,9 +81,9 @@ "source_mapping": { "start": 541, "length": 232, - "filename_relative": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "is_dependency": false, "lines": [ 27, @@ -104,9 +104,9 @@ "source_mapping": { "start": 495, "length": 42, - "filename_relative": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "is_dependency": false, "lines": [ 24 @@ -121,9 +121,9 @@ "source_mapping": { "start": 465, "length": 74, - "filename_relative": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "is_dependency": false, "lines": [ 23, @@ -138,9 +138,9 @@ } } ], - "description": "DerivedContract_bad2 (tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#27-33) does not implement functions:\n\t- BaseInterface3.get(uint256) (tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#24)\n", - "markdown": "[DerivedContract_bad2](tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#L27-L33) does not implement functions:\n\t- [BaseInterface3.get(uint256)](tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#L24)\n", - "first_markdown_element": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#L27-L33", + "description": "DerivedContract_bad2 (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#27-33) does not implement functions:\n\t- BaseInterface3.get(uint256) (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#24)\n", + "markdown": "[DerivedContract_bad2](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L27-L33) does not implement functions:\n\t- [BaseInterface3.get(uint256)](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L24)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L27-L33", "id": "31915d2f480e24ddd054de973440a02abdac0ccd6332c47cd4eb8d836d3fddda", "check": "unimplemented-functions", "impact": "Informational", @@ -154,9 +154,9 @@ "source_mapping": { "start": 185, "length": 133, - "filename_relative": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "is_dependency": false, "lines": [ 10, @@ -175,9 +175,9 @@ "source_mapping": { "start": 72, "length": 37, - "filename_relative": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "is_dependency": false, "lines": [ 3 @@ -192,9 +192,9 @@ "source_mapping": { "start": 0, "length": 111, - "filename_relative": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "is_dependency": false, "lines": [ 1, @@ -215,9 +215,9 @@ "source_mapping": { "start": 144, "length": 37, - "filename_relative": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "is_dependency": false, "lines": [ 7 @@ -232,9 +232,9 @@ "source_mapping": { "start": 113, "length": 70, - "filename_relative": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "is_dependency": false, "lines": [ 6, @@ -249,9 +249,9 @@ } } ], - "description": "DerivedContract_bad0 (tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#10-14) does not implement functions:\n\t- BaseInterface.f2() (tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#3)\n\t- BaseInterface2.f3() (tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#7)\n", - "markdown": "[DerivedContract_bad0](tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#L10-L14) does not implement functions:\n\t- [BaseInterface.f2()](tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#L3)\n\t- [BaseInterface2.f3()](tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#L7)\n", - "first_markdown_element": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#L10-L14", + "description": "DerivedContract_bad0 (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#10-14) does not implement functions:\n\t- BaseInterface.f2() (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#3)\n\t- BaseInterface2.f3() (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#7)\n", + "markdown": "[DerivedContract_bad0](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L10-L14) does not implement functions:\n\t- [BaseInterface.f2()](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L3)\n\t- [BaseInterface2.f3()](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L10-L14", "id": "8614d351f7aac0c05e8df6ef7c89c6b46a2b8acf6295c9d5a886ff6489c74a41", "check": "unimplemented-functions", "impact": "Informational", @@ -265,9 +265,9 @@ "source_mapping": { "start": 320, "length": 143, - "filename_relative": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "is_dependency": false, "lines": [ 16, @@ -287,9 +287,9 @@ "source_mapping": { "start": 357, "length": 37, - "filename_relative": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "is_dependency": false, "lines": [ 17 @@ -304,9 +304,9 @@ "source_mapping": { "start": 320, "length": 143, - "filename_relative": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", "is_dependency": false, "lines": [ 16, @@ -324,9 +324,9 @@ } } ], - "description": "AbstractContract_bad1 (tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#16-21) does not implement functions:\n\t- AbstractContract_bad1.f1() (tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#17)\n", - "markdown": "[AbstractContract_bad1](tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#L16-L21) does not implement functions:\n\t- [AbstractContract_bad1.f1()](tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#L17)\n", - "first_markdown_element": "tests/detectors/unimplemented-functions/0.4.25/unimplemented.sol#L16-L21", + "description": "AbstractContract_bad1 (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#16-21) does not implement functions:\n\t- AbstractContract_bad1.f1() (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#17)\n", + "markdown": "[AbstractContract_bad1](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L16-L21) does not implement functions:\n\t- [AbstractContract_bad1.f1()](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L17)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L16-L21", "id": "adc202df4717efc4e19b549c0e623a79fac759a36bffb5d5e4aac401e33375d7", "check": "unimplemented-functions", "impact": "Informational", diff --git a/tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol b/tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol similarity index 100% rename from tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol rename to tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol diff --git a/tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol.0.5.16.UnimplementedFunctionDetection.json b/tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol.0.5.16.UnimplementedFunctionDetection.json similarity index 63% rename from tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol.0.5.16.UnimplementedFunctionDetection.json rename to tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol.0.5.16.UnimplementedFunctionDetection.json index 83eed4952..ea4ac759e 100644 --- a/tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol.0.5.16.UnimplementedFunctionDetection.json +++ b/tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol.0.5.16.UnimplementedFunctionDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 185, "length": 133, - "filename_relative": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "is_dependency": false, "lines": [ 10, @@ -29,9 +29,9 @@ "source_mapping": { "start": 72, "length": 37, - "filename_relative": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "is_dependency": false, "lines": [ 3 @@ -46,9 +46,9 @@ "source_mapping": { "start": 0, "length": 111, - "filename_relative": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "is_dependency": false, "lines": [ 1, @@ -69,9 +69,9 @@ "source_mapping": { "start": 144, "length": 37, - "filename_relative": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "is_dependency": false, "lines": [ 7 @@ -86,9 +86,9 @@ "source_mapping": { "start": 113, "length": 70, - "filename_relative": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "is_dependency": false, "lines": [ 6, @@ -103,9 +103,9 @@ } } ], - "description": "DerivedContract_bad0 (tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol#10-14) does not implement functions:\n\t- BaseInterface.f2() (tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol#3)\n\t- BaseInterface2.f3() (tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol#7)\n", - "markdown": "[DerivedContract_bad0](tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol#L10-L14) does not implement functions:\n\t- [BaseInterface.f2()](tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol#L3)\n\t- [BaseInterface2.f3()](tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol#L7)\n", - "first_markdown_element": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol#L10-L14", + "description": "DerivedContract_bad0 (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#10-14) does not implement functions:\n\t- BaseInterface.f2() (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#3)\n\t- BaseInterface2.f3() (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#7)\n", + "markdown": "[DerivedContract_bad0](tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#L10-L14) does not implement functions:\n\t- [BaseInterface.f2()](tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#L3)\n\t- [BaseInterface2.f3()](tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#L10-L14", "id": "8614d351f7aac0c05e8df6ef7c89c6b46a2b8acf6295c9d5a886ff6489c74a41", "check": "unimplemented-functions", "impact": "Informational", @@ -119,9 +119,9 @@ "source_mapping": { "start": 320, "length": 143, - "filename_relative": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "is_dependency": false, "lines": [ 16, @@ -141,9 +141,9 @@ "source_mapping": { "start": 357, "length": 37, - "filename_relative": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "is_dependency": false, "lines": [ 17 @@ -158,9 +158,9 @@ "source_mapping": { "start": 320, "length": 143, - "filename_relative": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", "is_dependency": false, "lines": [ 16, @@ -178,9 +178,9 @@ } } ], - "description": "AbstractContract_bad1 (tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol#16-21) does not implement functions:\n\t- AbstractContract_bad1.f1() (tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol#17)\n", - "markdown": "[AbstractContract_bad1](tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol#L16-L21) does not implement functions:\n\t- [AbstractContract_bad1.f1()](tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol#L17)\n", - "first_markdown_element": "tests/detectors/unimplemented-functions/0.5.16/unimplemented.sol#L16-L21", + "description": "AbstractContract_bad1 (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#16-21) does not implement functions:\n\t- AbstractContract_bad1.f1() (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#17)\n", + "markdown": "[AbstractContract_bad1](tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#L16-L21) does not implement functions:\n\t- [AbstractContract_bad1.f1()](tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#L17)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#L16-L21", "id": "adc202df4717efc4e19b549c0e623a79fac759a36bffb5d5e4aac401e33375d7", "check": "unimplemented-functions", "impact": "Informational", diff --git a/tests/detectors/unimplemented-functions/0.5.16/unimplemented_interfaces.sol b/tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented_interfaces.sol similarity index 100% rename from tests/detectors/unimplemented-functions/0.5.16/unimplemented_interfaces.sol rename to tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented_interfaces.sol diff --git a/tests/detectors/unimplemented-functions/0.5.16/unimplemented_interfaces.sol.0.5.16.UnimplementedFunctionDetection.json b/tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented_interfaces.sol.0.5.16.UnimplementedFunctionDetection.json similarity index 100% rename from tests/detectors/unimplemented-functions/0.5.16/unimplemented_interfaces.sol.0.5.16.UnimplementedFunctionDetection.json rename to tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented_interfaces.sol.0.5.16.UnimplementedFunctionDetection.json diff --git a/tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol b/tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol similarity index 100% rename from tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol rename to tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol diff --git a/tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol.0.6.11.UnimplementedFunctionDetection.json b/tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol.0.6.11.UnimplementedFunctionDetection.json similarity index 63% rename from tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol.0.6.11.UnimplementedFunctionDetection.json rename to tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol.0.6.11.UnimplementedFunctionDetection.json index ffe53cf28..9d5db3cbc 100644 --- a/tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol.0.6.11.UnimplementedFunctionDetection.json +++ b/tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol.0.6.11.UnimplementedFunctionDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 593, "length": 344, - "filename_relative": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "is_dependency": false, "lines": [ 27, @@ -31,9 +31,9 @@ "source_mapping": { "start": 539, "length": 50, - "filename_relative": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "is_dependency": false, "lines": [ 24 @@ -48,9 +48,9 @@ "source_mapping": { "start": 500, "length": 91, - "filename_relative": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "is_dependency": false, "lines": [ 23, @@ -65,9 +65,9 @@ } } ], - "description": "DerivedContract_bad2 (tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#27-33) does not implement functions:\n\t- BaseInterface3.get(uint256) (tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#24)\n", - "markdown": "[DerivedContract_bad2](tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#L27-L33) does not implement functions:\n\t- [BaseInterface3.get(uint256)](tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#L24)\n", - "first_markdown_element": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#L27-L33", + "description": "DerivedContract_bad2 (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#27-33) does not implement functions:\n\t- BaseInterface3.get(uint256) (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#24)\n", + "markdown": "[DerivedContract_bad2](tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L27-L33) does not implement functions:\n\t- [BaseInterface3.get(uint256)](tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L24)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L27-L33", "id": "31915d2f480e24ddd054de973440a02abdac0ccd6332c47cd4eb8d836d3fddda", "check": "unimplemented-functions", "impact": "Informational", @@ -81,9 +81,9 @@ "source_mapping": { "start": 185, "length": 151, - "filename_relative": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "is_dependency": false, "lines": [ 10, @@ -102,9 +102,9 @@ "source_mapping": { "start": 72, "length": 37, - "filename_relative": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "is_dependency": false, "lines": [ 3 @@ -119,9 +119,9 @@ "source_mapping": { "start": 0, "length": 111, - "filename_relative": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "is_dependency": false, "lines": [ 1, @@ -142,9 +142,9 @@ "source_mapping": { "start": 144, "length": 37, - "filename_relative": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "is_dependency": false, "lines": [ 7 @@ -159,9 +159,9 @@ "source_mapping": { "start": 113, "length": 70, - "filename_relative": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "is_dependency": false, "lines": [ 6, @@ -176,9 +176,9 @@ } } ], - "description": "DerivedContract_bad0 (tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#10-14) does not implement functions:\n\t- BaseInterface.f2() (tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#3)\n\t- BaseInterface2.f3() (tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#7)\n", - "markdown": "[DerivedContract_bad0](tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#L10-L14) does not implement functions:\n\t- [BaseInterface.f2()](tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#L3)\n\t- [BaseInterface2.f3()](tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#L7)\n", - "first_markdown_element": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#L10-L14", + "description": "DerivedContract_bad0 (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#10-14) does not implement functions:\n\t- BaseInterface.f2() (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#3)\n\t- BaseInterface2.f3() (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#7)\n", + "markdown": "[DerivedContract_bad0](tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L10-L14) does not implement functions:\n\t- [BaseInterface.f2()](tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L3)\n\t- [BaseInterface2.f3()](tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L10-L14", "id": "8614d351f7aac0c05e8df6ef7c89c6b46a2b8acf6295c9d5a886ff6489c74a41", "check": "unimplemented-functions", "impact": "Informational", @@ -192,9 +192,9 @@ "source_mapping": { "start": 338, "length": 160, - "filename_relative": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "is_dependency": false, "lines": [ 16, @@ -214,9 +214,9 @@ "source_mapping": { "start": 384, "length": 45, - "filename_relative": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "is_dependency": false, "lines": [ 17 @@ -231,9 +231,9 @@ "source_mapping": { "start": 338, "length": 160, - "filename_relative": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", "is_dependency": false, "lines": [ 16, @@ -251,9 +251,9 @@ } } ], - "description": "AbstractContract_bad1 (tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#16-21) does not implement functions:\n\t- AbstractContract_bad1.f1() (tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#17)\n", - "markdown": "[AbstractContract_bad1](tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#L16-L21) does not implement functions:\n\t- [AbstractContract_bad1.f1()](tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#L17)\n", - "first_markdown_element": "tests/detectors/unimplemented-functions/0.6.11/unimplemented.sol#L16-L21", + "description": "AbstractContract_bad1 (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#16-21) does not implement functions:\n\t- AbstractContract_bad1.f1() (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#17)\n", + "markdown": "[AbstractContract_bad1](tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L16-L21) does not implement functions:\n\t- [AbstractContract_bad1.f1()](tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L17)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L16-L21", "id": "adc202df4717efc4e19b549c0e623a79fac759a36bffb5d5e4aac401e33375d7", "check": "unimplemented-functions", "impact": "Informational", diff --git a/tests/detectors/unimplemented-functions/0.6.11/unimplemented_interfaces.sol b/tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented_interfaces.sol similarity index 100% rename from tests/detectors/unimplemented-functions/0.6.11/unimplemented_interfaces.sol rename to tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented_interfaces.sol diff --git a/tests/detectors/unimplemented-functions/0.6.11/unimplemented_interfaces.sol.0.6.11.UnimplementedFunctionDetection.json b/tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented_interfaces.sol.0.6.11.UnimplementedFunctionDetection.json similarity index 100% rename from tests/detectors/unimplemented-functions/0.6.11/unimplemented_interfaces.sol.0.6.11.UnimplementedFunctionDetection.json rename to tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented_interfaces.sol.0.6.11.UnimplementedFunctionDetection.json diff --git a/tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol b/tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol similarity index 100% rename from tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol rename to tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol diff --git a/tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol.0.7.6.UnimplementedFunctionDetection.json b/tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol.0.7.6.UnimplementedFunctionDetection.json similarity index 63% rename from tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol.0.7.6.UnimplementedFunctionDetection.json rename to tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol.0.7.6.UnimplementedFunctionDetection.json index 9f65c2b12..a8a2dcc4a 100644 --- a/tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol.0.7.6.UnimplementedFunctionDetection.json +++ b/tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol.0.7.6.UnimplementedFunctionDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 593, "length": 344, - "filename_relative": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "is_dependency": false, "lines": [ 27, @@ -31,9 +31,9 @@ "source_mapping": { "start": 539, "length": 50, - "filename_relative": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "is_dependency": false, "lines": [ 24 @@ -48,9 +48,9 @@ "source_mapping": { "start": 500, "length": 91, - "filename_relative": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "is_dependency": false, "lines": [ 23, @@ -65,9 +65,9 @@ } } ], - "description": "DerivedContract_bad2 (tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#27-33) does not implement functions:\n\t- BaseInterface3.get(uint256) (tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#24)\n", - "markdown": "[DerivedContract_bad2](tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#L27-L33) does not implement functions:\n\t- [BaseInterface3.get(uint256)](tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#L24)\n", - "first_markdown_element": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#L27-L33", + "description": "DerivedContract_bad2 (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#27-33) does not implement functions:\n\t- BaseInterface3.get(uint256) (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#24)\n", + "markdown": "[DerivedContract_bad2](tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L27-L33) does not implement functions:\n\t- [BaseInterface3.get(uint256)](tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L24)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L27-L33", "id": "31915d2f480e24ddd054de973440a02abdac0ccd6332c47cd4eb8d836d3fddda", "check": "unimplemented-functions", "impact": "Informational", @@ -81,9 +81,9 @@ "source_mapping": { "start": 185, "length": 151, - "filename_relative": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "is_dependency": false, "lines": [ 10, @@ -102,9 +102,9 @@ "source_mapping": { "start": 72, "length": 37, - "filename_relative": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "is_dependency": false, "lines": [ 3 @@ -119,9 +119,9 @@ "source_mapping": { "start": 0, "length": 111, - "filename_relative": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "is_dependency": false, "lines": [ 1, @@ -142,9 +142,9 @@ "source_mapping": { "start": 144, "length": 37, - "filename_relative": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "is_dependency": false, "lines": [ 7 @@ -159,9 +159,9 @@ "source_mapping": { "start": 113, "length": 70, - "filename_relative": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "is_dependency": false, "lines": [ 6, @@ -176,9 +176,9 @@ } } ], - "description": "DerivedContract_bad0 (tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#10-14) does not implement functions:\n\t- BaseInterface.f2() (tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#3)\n\t- BaseInterface2.f3() (tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#7)\n", - "markdown": "[DerivedContract_bad0](tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#L10-L14) does not implement functions:\n\t- [BaseInterface.f2()](tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#L3)\n\t- [BaseInterface2.f3()](tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#L7)\n", - "first_markdown_element": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#L10-L14", + "description": "DerivedContract_bad0 (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#10-14) does not implement functions:\n\t- BaseInterface.f2() (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#3)\n\t- BaseInterface2.f3() (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#7)\n", + "markdown": "[DerivedContract_bad0](tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L10-L14) does not implement functions:\n\t- [BaseInterface.f2()](tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L3)\n\t- [BaseInterface2.f3()](tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L7)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L10-L14", "id": "8614d351f7aac0c05e8df6ef7c89c6b46a2b8acf6295c9d5a886ff6489c74a41", "check": "unimplemented-functions", "impact": "Informational", @@ -192,9 +192,9 @@ "source_mapping": { "start": 338, "length": 160, - "filename_relative": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "is_dependency": false, "lines": [ 16, @@ -214,9 +214,9 @@ "source_mapping": { "start": 384, "length": 45, - "filename_relative": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "is_dependency": false, "lines": [ 17 @@ -231,9 +231,9 @@ "source_mapping": { "start": 338, "length": 160, - "filename_relative": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol", + "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", "is_dependency": false, "lines": [ 16, @@ -251,9 +251,9 @@ } } ], - "description": "AbstractContract_bad1 (tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#16-21) does not implement functions:\n\t- AbstractContract_bad1.f1() (tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#17)\n", - "markdown": "[AbstractContract_bad1](tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#L16-L21) does not implement functions:\n\t- [AbstractContract_bad1.f1()](tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#L17)\n", - "first_markdown_element": "tests/detectors/unimplemented-functions/0.7.6/unimplemented.sol#L16-L21", + "description": "AbstractContract_bad1 (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#16-21) does not implement functions:\n\t- AbstractContract_bad1.f1() (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#17)\n", + "markdown": "[AbstractContract_bad1](tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L16-L21) does not implement functions:\n\t- [AbstractContract_bad1.f1()](tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L17)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L16-L21", "id": "adc202df4717efc4e19b549c0e623a79fac759a36bffb5d5e4aac401e33375d7", "check": "unimplemented-functions", "impact": "Informational", diff --git a/tests/detectors/unimplemented-functions/0.7.6/unimplemented_interfaces.sol b/tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented_interfaces.sol similarity index 100% rename from tests/detectors/unimplemented-functions/0.7.6/unimplemented_interfaces.sol rename to tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented_interfaces.sol diff --git a/tests/detectors/unimplemented-functions/0.7.6/unimplemented_interfaces.sol.0.7.6.UnimplementedFunctionDetection.json b/tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented_interfaces.sol.0.7.6.UnimplementedFunctionDetection.json similarity index 100% rename from tests/detectors/unimplemented-functions/0.7.6/unimplemented_interfaces.sol.0.7.6.UnimplementedFunctionDetection.json rename to tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented_interfaces.sol.0.7.6.UnimplementedFunctionDetection.json diff --git a/tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol b/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol similarity index 100% rename from tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol rename to tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol diff --git a/tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol.0.5.8.UninitializedFunctionPtrsConstructor.json b/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol.0.4.25.UninitializedFunctionPtrsConstructor.json similarity index 65% rename from tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol.0.5.8.UninitializedFunctionPtrsConstructor.json rename to tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol.0.4.25.UninitializedFunctionPtrsConstructor.json index b7f62a48e..3d768545e 100644 --- a/tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol.0.5.8.UninitializedFunctionPtrsConstructor.json +++ b/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol.0.4.25.UninitializedFunctionPtrsConstructor.json @@ -1,108 +1,5 @@ [ [ - { - "elements": [ - { - "type": "contract", - "name": "bad1", - "source_mapping": { - "start": 178, - "length": 306, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "b(10)", - "source_mapping": { - "start": 472, - "length": 5, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 196, - "length": 286, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "bad1", - "source_mapping": { - "start": 178, - "length": 306, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Contract bad1 (tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#11-18) \n\t b(10) (tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#16) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad1](tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L11-L18) \n\t [b(10)](tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L16) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L11-L18", - "id": "0a6083d96a9a819c3ddc6d0dc1440fb8e8ec096abe5a7b6bf8951a2dacc11c56", - "check": "uninitialized-fptr-cst", - "impact": "Low", - "confidence": "High" - }, { "elements": [ { @@ -111,9 +8,9 @@ "source_mapping": { "start": 486, "length": 199, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -137,9 +34,9 @@ "source_mapping": { "start": 671, "length": 7, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ 27 @@ -154,9 +51,9 @@ "source_mapping": { "start": 628, "length": 55, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ 25, @@ -174,9 +71,9 @@ "source_mapping": { "start": 486, "length": 199, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ 20, @@ -200,10 +97,10 @@ } } ], - "description": "Contract bad2 (tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#20-29) \n\t s.a(10) (tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#27) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad2](tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L20-L29) \n\t [s.a(10)](tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L27) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L20-L29", - "id": "0ac2c56701b85e4123747f055651dfab2a1ddb0954e9065b7f39ecf21c6810b7", + "description": "Contract bad2 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#20-29) \n\t s.a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#27) is an unintialized function pointer call in a constructor\n", + "markdown": "Contract [bad2](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L20-L29) \n\t [s.a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L27) is an unintialized function pointer call in a constructor\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L20-L29", + "id": "48965b294d666c5558ddadb16c50004510a7a482f96c0e552626f8c22c74763d", "check": "uninitialized-fptr-cst", "impact": "Low", "confidence": "High" @@ -216,9 +113,9 @@ "source_mapping": { "start": 27, "length": 149, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ 3, @@ -239,9 +136,9 @@ "source_mapping": { "start": 164, "length": 5, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ 7 @@ -256,9 +153,9 @@ "source_mapping": { "start": 45, "length": 129, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ 4, @@ -277,9 +174,9 @@ "source_mapping": { "start": 27, "length": 149, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ 3, @@ -300,10 +197,10 @@ } } ], - "description": "Contract bad0 (tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#3-9) \n\t a(10) (tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#7) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad0](tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L3-L9) \n\t [a(10)](tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L7) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L3-L9", - "id": "e1e469fcf69ffbf93884287be133945396a1a363e77db02f241c90027f19bf48", + "description": "Contract bad0 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#3-9) \n\t a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#7) is an unintialized function pointer call in a constructor\n", + "markdown": "Contract [bad0](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L3-L9) \n\t [a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L7) is an unintialized function pointer call in a constructor\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L3-L9", + "id": "5cc40c11bac1ce653b3ff8b4ca493a62f4b47720aa75fb8e5bd5396e8821a464", "check": "uninitialized-fptr-cst", "impact": "Low", "confidence": "High" @@ -316,9 +213,9 @@ "source_mapping": { "start": 687, "length": 269, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ 31, @@ -344,9 +241,9 @@ "source_mapping": { "start": 858, "length": 5, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ 36 @@ -361,9 +258,9 @@ "source_mapping": { "start": 831, "length": 50, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ 35, @@ -381,9 +278,9 @@ "source_mapping": { "start": 687, "length": 269, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ 31, @@ -409,10 +306,113 @@ } } ], - "description": "Contract bad3 (tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#31-42) \n\t a(10) (tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#36) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad3](tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L31-L42) \n\t [a(10)](tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L36) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L31-L42", - "id": "fcca4434be6b4f21d40d12aa57d4fb266d2a7ecc4ca4888cc3e6bf7509c9e8e7", + "description": "Contract bad3 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#31-42) \n\t a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#36) is an unintialized function pointer call in a constructor\n", + "markdown": "Contract [bad3](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L31-L42) \n\t [a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L36) is an unintialized function pointer call in a constructor\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L31-L42", + "id": "7c27b9d3ec2de9d0a7adc058d3fea7f1a2cd4cc9b13b0057c52e60fbc63fedc5", + "check": "uninitialized-fptr-cst", + "impact": "Low", + "confidence": "High" + }, + { + "elements": [ + { + "type": "contract", + "name": "bad1", + "source_mapping": { + "start": 178, + "length": 306, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + { + "type": "node", + "name": "b(10)", + "source_mapping": { + "start": 472, + "length": 5, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 16 + ], + "starting_column": 5, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 196, + "length": 286, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 12, + 13, + 14, + 15, + 16, + 17 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "bad1", + "source_mapping": { + "start": 178, + "length": 306, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "constructor()" + } + } + } + } + ], + "description": "Contract bad1 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#11-18) \n\t b(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#16) is an unintialized function pointer call in a constructor\n", + "markdown": "Contract [bad1](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L11-L18) \n\t [b(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L16) is an unintialized function pointer call in a constructor\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L11-L18", + "id": "ab3fbfc5752a20c2e3c19725ed0a12e9efa5f3afdbad0e5846e8ca1f02a3b712", "check": "uninitialized-fptr-cst", "impact": "Low", "confidence": "High" diff --git a/tests/detectors/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol b/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol similarity index 100% rename from tests/detectors/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol rename to tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol diff --git a/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json b/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json new file mode 100644 index 000000000..7c5dbf4e3 --- /dev/null +++ b/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json @@ -0,0 +1,421 @@ +[ + [ + { + "elements": [ + { + "type": "contract", + "name": "bad1", + "source_mapping": { + "start": 178, + "length": 306, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + { + "type": "node", + "name": "b(10)", + "source_mapping": { + "start": 472, + "length": 5, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 16 + ], + "starting_column": 5, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 196, + "length": 286, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 12, + 13, + 14, + 15, + 16, + 17 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "bad1", + "source_mapping": { + "start": 178, + "length": 306, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "constructor()" + } + } + } + } + ], + "description": "Contract bad1 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#11-18) \n\t b(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#16) is an unintialized function pointer call in a constructor\n", + "markdown": "Contract [bad1](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L11-L18) \n\t [b(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L16) is an unintialized function pointer call in a constructor\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L11-L18", + "id": "228f34e5afc4d016e11b5752458d38b91139d50f5a56ae8062851f0e9e5f07ef", + "check": "uninitialized-fptr-cst", + "impact": "Low", + "confidence": "High" + }, + { + "elements": [ + { + "type": "contract", + "name": "bad0", + "source_mapping": { + "start": 27, + "length": 149, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + { + "type": "node", + "name": "a(10)", + "source_mapping": { + "start": 164, + "length": 5, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 7 + ], + "starting_column": 5, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 45, + "length": 129, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 4, + 5, + 6, + 7, + 8 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "bad0", + "source_mapping": { + "start": 27, + "length": 149, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "constructor()" + } + } + } + } + ], + "description": "Contract bad0 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#3-9) \n\t a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#7) is an unintialized function pointer call in a constructor\n", + "markdown": "Contract [bad0](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L3-L9) \n\t [a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L7) is an unintialized function pointer call in a constructor\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L3-L9", + "id": "b2be27583a5fd04b192d5a5428e96df2cac54b72fd914a43c8ebc1dcc4a951b7", + "check": "uninitialized-fptr-cst", + "impact": "Low", + "confidence": "High" + }, + { + "elements": [ + { + "type": "contract", + "name": "bad2", + "source_mapping": { + "start": 486, + "length": 199, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + { + "type": "node", + "name": "s.a(10)", + "source_mapping": { + "start": 671, + "length": 7, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 27 + ], + "starting_column": 5, + "ending_column": 12 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 628, + "length": 55, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 25, + 26, + 27, + 28 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "bad2", + "source_mapping": { + "start": 486, + "length": 199, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "constructor()" + } + } + } + } + ], + "description": "Contract bad2 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#20-29) \n\t s.a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#27) is an unintialized function pointer call in a constructor\n", + "markdown": "Contract [bad2](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L20-L29) \n\t [s.a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L27) is an unintialized function pointer call in a constructor\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L20-L29", + "id": "b6898ad74de2e13efc8ff8891e303245c76f660dc0d956453ed7ee752dc4368d", + "check": "uninitialized-fptr-cst", + "impact": "Low", + "confidence": "High" + }, + { + "elements": [ + { + "type": "contract", + "name": "bad3", + "source_mapping": { + "start": 687, + "length": 269, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + { + "type": "node", + "name": "a(10)", + "source_mapping": { + "start": 858, + "length": 5, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 36 + ], + "starting_column": 5, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "constructor", + "source_mapping": { + "start": 831, + "length": 50, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 35, + 36, + 37, + 38 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "bad3", + "source_mapping": { + "start": 687, + "length": 269, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", + "is_dependency": false, + "lines": [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "constructor()" + } + } + } + } + ], + "description": "Contract bad3 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#31-42) \n\t a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#36) is an unintialized function pointer call in a constructor\n", + "markdown": "Contract [bad3](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L31-L42) \n\t [a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L36) is an unintialized function pointer call in a constructor\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L31-L42", + "id": "b6f0736636abbfe3c14c9667b604f2966377c50d6565f40db4e19a7f5a466dbd", + "check": "uninitialized-fptr-cst", + "impact": "Low", + "confidence": "High" + } + ] +] \ No newline at end of file diff --git a/tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol b/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol similarity index 100% rename from tests/detectors/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol rename to tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol diff --git a/tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol.0.4.25.UninitializedFunctionPtrsConstructor.json b/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol.0.5.8.UninitializedFunctionPtrsConstructor.json similarity index 66% rename from tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol.0.4.25.UninitializedFunctionPtrsConstructor.json rename to tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol.0.5.8.UninitializedFunctionPtrsConstructor.json index b3927e3e6..d8f65e902 100644 --- a/tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol.0.4.25.UninitializedFunctionPtrsConstructor.json +++ b/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol.0.5.8.UninitializedFunctionPtrsConstructor.json @@ -4,25 +4,27 @@ "elements": [ { "type": "contract", - "name": "bad2", + "name": "bad3", "source_mapping": { - "start": 486, - "length": 199, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "start": 687, + "length": 269, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42 ], "starting_column": 1, "ending_column": 2 @@ -30,36 +32,36 @@ }, { "type": "node", - "name": "s.a(10)", + "name": "a(10)", "source_mapping": { - "start": 671, - "length": 7, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "start": 858, + "length": 5, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 27 + 36 ], "starting_column": 5, - "ending_column": 12 + "ending_column": 10 }, "type_specific_fields": { "parent": { "type": "function", "name": "constructor", "source_mapping": { - "start": 628, - "length": 55, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "start": 831, + "length": 50, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 25, - 26, - 27, - 28 + 35, + 36, + 37, + 38 ], "starting_column": 3, "ending_column": 4 @@ -67,25 +69,27 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "bad2", + "name": "bad3", "source_mapping": { - "start": 486, - "length": 199, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "start": 687, + "length": 269, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42 ], "starting_column": 1, "ending_column": 2 @@ -97,10 +101,10 @@ } } ], - "description": "Contract bad2 (tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#20-29) \n\t s.a(10) (tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#27) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad2](tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L20-L29) \n\t [s.a(10)](tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L27) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L20-L29", - "id": "1b01aa44445395d800ebe53b807c6884d1c5fc96d38f255bc402e1b339a8a6f2", + "description": "Contract bad3 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#31-42) \n\t a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#36) is an unintialized function pointer call in a constructor\n", + "markdown": "Contract [bad3](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L31-L42) \n\t [a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L36) is an unintialized function pointer call in a constructor\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L31-L42", + "id": "0b6c6f4112e4bd5ae791a8f775dfb7bab683b836ad651088919fcac9eb919506", "check": "uninitialized-fptr-cst", "impact": "Low", "confidence": "High" @@ -109,22 +113,23 @@ "elements": [ { "type": "contract", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 27, - "length": 149, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "start": 178, + "length": 306, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 ], "starting_column": 1, "ending_column": 2 @@ -132,16 +137,16 @@ }, { "type": "node", - "name": "a(10)", + "name": "b(10)", "source_mapping": { - "start": 164, + "start": 472, "length": 5, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 7 + 16 ], "starting_column": 5, "ending_column": 10 @@ -151,18 +156,19 @@ "type": "function", "name": "constructor", "source_mapping": { - "start": 45, - "length": 129, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "start": 196, + "length": 286, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 4, - 5, - 6, - 7, - 8 + 12, + 13, + 14, + 15, + 16, + 17 ], "starting_column": 3, "ending_column": 4 @@ -170,22 +176,23 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "bad0", + "name": "bad1", "source_mapping": { - "start": 27, - "length": 149, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "start": 178, + "length": 306, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 ], "starting_column": 1, "ending_column": 2 @@ -197,10 +204,10 @@ } } ], - "description": "Contract bad0 (tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#3-9) \n\t a(10) (tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#7) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad0](tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L3-L9) \n\t [a(10)](tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L7) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L3-L9", - "id": "38a85244054f0e06f1d3b476742113d0cf1cbe82b6c2a16f6abfa8cb7611aa2d", + "description": "Contract bad1 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#11-18) \n\t b(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#16) is an unintialized function pointer call in a constructor\n", + "markdown": "Contract [bad1](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L11-L18) \n\t [b(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L16) is an unintialized function pointer call in a constructor\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L11-L18", + "id": "22cdfafee9843c6f077ea2c73482297e3bc2a99684751e011f70f4ba25f75432", "check": "uninitialized-fptr-cst", "impact": "Low", "confidence": "High" @@ -209,27 +216,22 @@ "elements": [ { "type": "contract", - "name": "bad3", + "name": "bad0", "source_mapping": { - "start": 687, - "length": 269, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "start": 27, + "length": 149, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 + 3, + 4, + 5, + 6, + 7, + 8, + 9 ], "starting_column": 1, "ending_column": 2 @@ -239,14 +241,14 @@ "type": "node", "name": "a(10)", "source_mapping": { - "start": 858, + "start": 164, "length": 5, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 36 + 7 ], "starting_column": 5, "ending_column": 10 @@ -256,17 +258,18 @@ "type": "function", "name": "constructor", "source_mapping": { - "start": 831, - "length": 50, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "start": 45, + "length": 129, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 35, - 36, - 37, - 38 + 4, + 5, + 6, + 7, + 8 ], "starting_column": 3, "ending_column": 4 @@ -274,27 +277,22 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "bad3", + "name": "bad0", "source_mapping": { - "start": 687, - "length": 269, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "start": 27, + "length": 149, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 + 3, + 4, + 5, + 6, + 7, + 8, + 9 ], "starting_column": 1, "ending_column": 2 @@ -306,10 +304,10 @@ } } ], - "description": "Contract bad3 (tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#31-42) \n\t a(10) (tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#36) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad3](tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L31-L42) \n\t [a(10)](tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L36) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L31-L42", - "id": "4bfb037a7504ad1a677e70cdba68b2b4d47f485e4c0d039ac0a6364465b4e56e", + "description": "Contract bad0 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#3-9) \n\t a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#7) is an unintialized function pointer call in a constructor\n", + "markdown": "Contract [bad0](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L3-L9) \n\t [a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L7) is an unintialized function pointer call in a constructor\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L3-L9", + "id": "6296e46dabc9a0ec1bffc6ddd4c2660676b1c5d61b151282e8265c24b9bdf102", "check": "uninitialized-fptr-cst", "impact": "Low", "confidence": "High" @@ -318,23 +316,25 @@ "elements": [ { "type": "contract", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 178, - "length": 306, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "start": 486, + "length": 199, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 ], "starting_column": 1, "ending_column": 2 @@ -342,38 +342,36 @@ }, { "type": "node", - "name": "b(10)", + "name": "s.a(10)", "source_mapping": { - "start": 472, - "length": 5, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "start": 671, + "length": 7, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 16 + 27 ], "starting_column": 5, - "ending_column": 10 + "ending_column": 12 }, "type_specific_fields": { "parent": { "type": "function", "name": "constructor", "source_mapping": { - "start": 196, - "length": 286, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "start": 628, + "length": 55, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 12, - 13, - 14, - 15, - 16, - 17 + 25, + 26, + 27, + 28 ], "starting_column": 3, "ending_column": 4 @@ -381,23 +379,25 @@ "type_specific_fields": { "parent": { "type": "contract", - "name": "bad1", + "name": "bad2", "source_mapping": { - "start": 178, - "length": 306, - "filename_relative": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "start": 486, + "length": 199, + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 ], "starting_column": 1, "ending_column": 2 @@ -409,10 +409,10 @@ } } ], - "description": "Contract bad1 (tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#11-18) \n\t b(10) (tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#16) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad1](tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L11-L18) \n\t [b(10)](tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L16) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/detectors/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L11-L18", - "id": "eca46630e741d928b03312539f0e9ddfb182cb16b0425b5ff881a7800a50511e", + "description": "Contract bad2 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#20-29) \n\t s.a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#27) is an unintialized function pointer call in a constructor\n", + "markdown": "Contract [bad2](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L20-L29) \n\t [s.a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L27) is an unintialized function pointer call in a constructor\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L20-L29", + "id": "b5b9c1cfba830927aa14b83f505668f4a35b2fec54f9f2a2d50e5f8ead8bb8bf", "check": "uninitialized-fptr-cst", "impact": "Low", "confidence": "High" diff --git a/tests/detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol similarity index 100% rename from tests/detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol rename to tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol diff --git a/tests/detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol.0.7.6.UninitializedLocalVars.json b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol.0.4.25.UninitializedLocalVars.json similarity index 74% rename from tests/detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol.0.7.6.UninitializedLocalVars.json rename to tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol.0.4.25.UninitializedLocalVars.json index 767b4c2c5..cb09a2128 100644 --- a/tests/detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol.0.7.6.UninitializedLocalVars.json +++ b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol.0.4.25.UninitializedLocalVars.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 77, "length": 18, - "filename_relative": "tests/detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol", "is_dependency": false, "lines": [ 4 @@ -25,9 +25,9 @@ "source_mapping": { "start": 29, "length": 143, - "filename_relative": "tests/detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol", "is_dependency": false, "lines": [ 3, @@ -46,9 +46,9 @@ "source_mapping": { "start": 0, "length": 179, - "filename_relative": "tests/detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol", "is_dependency": false, "lines": [ 1, @@ -71,9 +71,9 @@ } } ], - "description": "Uninitialized.func().uint_not_init (tests/detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol#4) is a local variable never initialized\n", - "markdown": "[Uninitialized.func().uint_not_init](tests/detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol#L4) is a local variable never initialized\n", - "first_markdown_element": "tests/detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol#L4", + "description": "Uninitialized.func().uint_not_init (tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol#4) is a local variable never initialized\n", + "markdown": "[Uninitialized.func().uint_not_init](tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol#L4) is a local variable never initialized\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol#L4", "id": "6ef627d0a3f7234c0d3dd339ae4cf3c1adf898f03384e08c3c8d846c67e0d476", "check": "uninitialized-local", "impact": "Medium", diff --git a/tests/detectors/uninitialized-local/0.5.16/uninitialized_local_variable.sol b/tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol similarity index 100% rename from tests/detectors/uninitialized-local/0.5.16/uninitialized_local_variable.sol rename to tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol diff --git a/tests/detectors/uninitialized-local/0.5.16/uninitialized_local_variable.sol.0.5.16.UninitializedLocalVars.json b/tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol.0.5.16.UninitializedLocalVars.json similarity index 74% rename from tests/detectors/uninitialized-local/0.5.16/uninitialized_local_variable.sol.0.5.16.UninitializedLocalVars.json rename to tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol.0.5.16.UninitializedLocalVars.json index 0a411ae9f..815146f15 100644 --- a/tests/detectors/uninitialized-local/0.5.16/uninitialized_local_variable.sol.0.5.16.UninitializedLocalVars.json +++ b/tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol.0.5.16.UninitializedLocalVars.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 77, "length": 18, - "filename_relative": "tests/detectors/uninitialized-local/0.5.16/uninitialized_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-local/0.5.16/uninitialized_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol", "is_dependency": false, "lines": [ 4 @@ -25,9 +25,9 @@ "source_mapping": { "start": 29, "length": 143, - "filename_relative": "tests/detectors/uninitialized-local/0.5.16/uninitialized_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-local/0.5.16/uninitialized_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol", "is_dependency": false, "lines": [ 3, @@ -46,9 +46,9 @@ "source_mapping": { "start": 0, "length": 179, - "filename_relative": "tests/detectors/uninitialized-local/0.5.16/uninitialized_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-local/0.5.16/uninitialized_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol", "is_dependency": false, "lines": [ 1, @@ -71,9 +71,9 @@ } } ], - "description": "Uninitialized.func().uint_not_init (tests/detectors/uninitialized-local/0.5.16/uninitialized_local_variable.sol#4) is a local variable never initialized\n", - "markdown": "[Uninitialized.func().uint_not_init](tests/detectors/uninitialized-local/0.5.16/uninitialized_local_variable.sol#L4) is a local variable never initialized\n", - "first_markdown_element": "tests/detectors/uninitialized-local/0.5.16/uninitialized_local_variable.sol#L4", + "description": "Uninitialized.func().uint_not_init (tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol#4) is a local variable never initialized\n", + "markdown": "[Uninitialized.func().uint_not_init](tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol#L4) is a local variable never initialized\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol#L4", "id": "6ef627d0a3f7234c0d3dd339ae4cf3c1adf898f03384e08c3c8d846c67e0d476", "check": "uninitialized-local", "impact": "Medium", diff --git a/tests/detectors/uninitialized-local/0.6.11/uninitialized_local_variable.sol b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol similarity index 100% rename from tests/detectors/uninitialized-local/0.6.11/uninitialized_local_variable.sol rename to tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol diff --git a/tests/detectors/uninitialized-local/0.6.11/uninitialized_local_variable.sol.0.6.11.UninitializedLocalVars.json b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol.0.6.11.UninitializedLocalVars.json similarity index 74% rename from tests/detectors/uninitialized-local/0.6.11/uninitialized_local_variable.sol.0.6.11.UninitializedLocalVars.json rename to tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol.0.6.11.UninitializedLocalVars.json index 2b93f5ea7..2dc1ac349 100644 --- a/tests/detectors/uninitialized-local/0.6.11/uninitialized_local_variable.sol.0.6.11.UninitializedLocalVars.json +++ b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol.0.6.11.UninitializedLocalVars.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 77, "length": 18, - "filename_relative": "tests/detectors/uninitialized-local/0.6.11/uninitialized_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-local/0.6.11/uninitialized_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol", "is_dependency": false, "lines": [ 4 @@ -25,9 +25,9 @@ "source_mapping": { "start": 29, "length": 143, - "filename_relative": "tests/detectors/uninitialized-local/0.6.11/uninitialized_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-local/0.6.11/uninitialized_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol", "is_dependency": false, "lines": [ 3, @@ -46,9 +46,9 @@ "source_mapping": { "start": 0, "length": 179, - "filename_relative": "tests/detectors/uninitialized-local/0.6.11/uninitialized_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-local/0.6.11/uninitialized_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol", "is_dependency": false, "lines": [ 1, @@ -71,9 +71,9 @@ } } ], - "description": "Uninitialized.func().uint_not_init (tests/detectors/uninitialized-local/0.6.11/uninitialized_local_variable.sol#4) is a local variable never initialized\n", - "markdown": "[Uninitialized.func().uint_not_init](tests/detectors/uninitialized-local/0.6.11/uninitialized_local_variable.sol#L4) is a local variable never initialized\n", - "first_markdown_element": "tests/detectors/uninitialized-local/0.6.11/uninitialized_local_variable.sol#L4", + "description": "Uninitialized.func().uint_not_init (tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol#4) is a local variable never initialized\n", + "markdown": "[Uninitialized.func().uint_not_init](tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol#L4) is a local variable never initialized\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol#L4", "id": "6ef627d0a3f7234c0d3dd339ae4cf3c1adf898f03384e08c3c8d846c67e0d476", "check": "uninitialized-local", "impact": "Medium", diff --git a/tests/detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol b/tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol similarity index 100% rename from tests/detectors/uninitialized-local/0.7.6/uninitialized_local_variable.sol rename to tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol diff --git a/tests/detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol.0.4.25.UninitializedLocalVars.json b/tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol.0.7.6.UninitializedLocalVars.json similarity index 74% rename from tests/detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol.0.4.25.UninitializedLocalVars.json rename to tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol.0.7.6.UninitializedLocalVars.json index 4deee6c6e..386c6fdac 100644 --- a/tests/detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol.0.4.25.UninitializedLocalVars.json +++ b/tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol.0.7.6.UninitializedLocalVars.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 77, "length": 18, - "filename_relative": "tests/detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol", "is_dependency": false, "lines": [ 4 @@ -25,9 +25,9 @@ "source_mapping": { "start": 29, "length": 143, - "filename_relative": "tests/detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol", "is_dependency": false, "lines": [ 3, @@ -46,9 +46,9 @@ "source_mapping": { "start": 0, "length": 179, - "filename_relative": "tests/detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol", "is_dependency": false, "lines": [ 1, @@ -71,9 +71,9 @@ } } ], - "description": "Uninitialized.func().uint_not_init (tests/detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol#4) is a local variable never initialized\n", - "markdown": "[Uninitialized.func().uint_not_init](tests/detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol#L4) is a local variable never initialized\n", - "first_markdown_element": "tests/detectors/uninitialized-local/0.4.25/uninitialized_local_variable.sol#L4", + "description": "Uninitialized.func().uint_not_init (tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol#4) is a local variable never initialized\n", + "markdown": "[Uninitialized.func().uint_not_init](tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol#L4) is a local variable never initialized\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol#L4", "id": "6ef627d0a3f7234c0d3dd339ae4cf3c1adf898f03384e08c3c8d846c67e0d476", "check": "uninitialized-local", "impact": "Medium", diff --git a/tests/detectors/uninitialized-state/0.4.25/uninitialized.sol b/tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol similarity index 100% rename from tests/detectors/uninitialized-state/0.4.25/uninitialized.sol rename to tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol diff --git a/tests/detectors/uninitialized-state/0.4.25/uninitialized.sol.0.4.25.UninitializedStateVarsDetection.json b/tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol.0.4.25.UninitializedStateVarsDetection.json similarity index 70% rename from tests/detectors/uninitialized-state/0.4.25/uninitialized.sol.0.4.25.UninitializedStateVarsDetection.json rename to tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol.0.4.25.UninitializedStateVarsDetection.json index a74793c7b..144a7dba1 100644 --- a/tests/detectors/uninitialized-state/0.4.25/uninitialized.sol.0.4.25.UninitializedStateVarsDetection.json +++ b/tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol.0.4.25.UninitializedStateVarsDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 698, "length": 15, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 45 @@ -25,9 +25,9 @@ "source_mapping": { "start": 644, "length": 354, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -60,9 +60,9 @@ "source_mapping": { "start": 878, "length": 117, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 53, @@ -80,9 +80,9 @@ "source_mapping": { "start": 644, "length": 354, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -111,9 +111,9 @@ } } ], - "description": "Test2.st (tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#45) is never initialized. It is used in:\n\t- Test2.use() (tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#53-56)\n", - "markdown": "[Test2.st](tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#L45) is never initialized. It is used in:\n\t- [Test2.use()](tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#L53-L56)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#L45", + "description": "Test2.st (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#45) is never initialized. It is used in:\n\t- Test2.use() (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#53-56)\n", + "markdown": "[Test2.st](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L45) is never initialized. It is used in:\n\t- [Test2.use()](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L53-L56)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L45", "id": "427f100397f455d8000eff7b1d2463763ca8e452d5d98f7b7de693fd5e625a32", "check": "uninitialized-state", "impact": "High", @@ -127,9 +127,9 @@ "source_mapping": { "start": 192, "length": 34, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 15 @@ -144,9 +144,9 @@ "source_mapping": { "start": 172, "length": 332, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 14, @@ -176,9 +176,9 @@ "source_mapping": { "start": 359, "length": 143, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 23, @@ -196,9 +196,9 @@ "source_mapping": { "start": 172, "length": 332, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 14, @@ -224,9 +224,9 @@ } } ], - "description": "Test.balances (tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#15) is never initialized. It is used in:\n\t- Test.use() (tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#23-26)\n", - "markdown": "[Test.balances](tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#L15) is never initialized. It is used in:\n\t- [Test.use()](tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#L23-L26)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#L15", + "description": "Test.balances (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#15) is never initialized. It is used in:\n\t- Test.use() (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#23-26)\n", + "markdown": "[Test.balances](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L15) is never initialized. It is used in:\n\t- [Test.use()](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L23-L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L15", "id": "a2750d175b02d51aeb47a4576f74725ba991d3c8cf828a33ee78ccc34cf9e7d7", "check": "uninitialized-state", "impact": "High", @@ -240,9 +240,9 @@ "source_mapping": { "start": 751, "length": 6, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 47 @@ -257,9 +257,9 @@ "source_mapping": { "start": 644, "length": 354, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -292,9 +292,9 @@ "source_mapping": { "start": 820, "length": 52, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 49, @@ -311,9 +311,9 @@ "source_mapping": { "start": 644, "length": 354, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -342,9 +342,9 @@ } } ], - "description": "Test2.v (tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#47) is never initialized. It is used in:\n\t- Test2.init() (tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#49-51)\n", - "markdown": "[Test2.v](tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#L47) is never initialized. It is used in:\n\t- [Test2.init()](tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#L49-L51)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#L47", + "description": "Test2.v (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#47) is never initialized. It is used in:\n\t- Test2.init() (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#49-51)\n", + "markdown": "[Test2.v](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L47) is never initialized. It is used in:\n\t- [Test2.init()](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L49-L51)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L47", "id": "bf96eee949943a12926cf1407a2df2b07e99b30a6fc2e78aebf088cdefcf77a7", "check": "uninitialized-state", "impact": "High", @@ -358,9 +358,9 @@ "source_mapping": { "start": 58, "length": 19, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 5 @@ -375,9 +375,9 @@ "source_mapping": { "start": 29, "length": 140, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 3, @@ -402,9 +402,9 @@ "source_mapping": { "start": 84, "length": 82, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 7, @@ -421,9 +421,9 @@ "source_mapping": { "start": 29, "length": 140, - "filename_relative": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", "is_dependency": false, "lines": [ 3, @@ -444,9 +444,9 @@ } } ], - "description": "Uninitialized.destination (tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#5) is never initialized. It is used in:\n\t- Uninitialized.transfer() (tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#7-9)\n", - "markdown": "[Uninitialized.destination](tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#L5) is never initialized. It is used in:\n\t- [Uninitialized.transfer()](tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#L7-L9)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.4.25/uninitialized.sol#L5", + "description": "Uninitialized.destination (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#5) is never initialized. It is used in:\n\t- Uninitialized.transfer() (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#7-9)\n", + "markdown": "[Uninitialized.destination](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L5) is never initialized. It is used in:\n\t- [Uninitialized.transfer()](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L7-L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L5", "id": "e4711aebbd53922a9fe1e728917bf8e98eac065305e20d766b6b552debe79e44", "check": "uninitialized-state", "impact": "High", diff --git a/tests/detectors/uninitialized-state/0.5.16/uninitialized.sol b/tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol similarity index 100% rename from tests/detectors/uninitialized-state/0.5.16/uninitialized.sol rename to tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol diff --git a/tests/detectors/uninitialized-state/0.5.16/uninitialized.sol.0.5.16.UninitializedStateVarsDetection.json b/tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol.0.5.16.UninitializedStateVarsDetection.json similarity index 70% rename from tests/detectors/uninitialized-state/0.5.16/uninitialized.sol.0.5.16.UninitializedStateVarsDetection.json rename to tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol.0.5.16.UninitializedStateVarsDetection.json index 4499ac7ca..9af086d34 100644 --- a/tests/detectors/uninitialized-state/0.5.16/uninitialized.sol.0.5.16.UninitializedStateVarsDetection.json +++ b/tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol.0.5.16.UninitializedStateVarsDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 729, "length": 15, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 45 @@ -25,9 +25,9 @@ "source_mapping": { "start": 675, "length": 373, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -60,9 +60,9 @@ "source_mapping": { "start": 916, "length": 129, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 53, @@ -80,9 +80,9 @@ "source_mapping": { "start": 675, "length": 373, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -111,9 +111,9 @@ } } ], - "description": "Test2.st (tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#45) is never initialized. It is used in:\n\t- Test2.use() (tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#53-56)\n", - "markdown": "[Test2.st](tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#L45) is never initialized. It is used in:\n\t- [Test2.use()](tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#L53-L56)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#L45", + "description": "Test2.st (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#45) is never initialized. It is used in:\n\t- Test2.use() (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#53-56)\n", + "markdown": "[Test2.st](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L45) is never initialized. It is used in:\n\t- [Test2.use()](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L53-L56)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L45", "id": "427f100397f455d8000eff7b1d2463763ca8e452d5d98f7b7de693fd5e625a32", "check": "uninitialized-state", "impact": "High", @@ -127,9 +127,9 @@ "source_mapping": { "start": 199, "length": 34, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 15 @@ -144,9 +144,9 @@ "source_mapping": { "start": 179, "length": 349, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 14, @@ -176,9 +176,9 @@ "source_mapping": { "start": 372, "length": 154, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 23, @@ -196,9 +196,9 @@ "source_mapping": { "start": 179, "length": 349, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 14, @@ -224,9 +224,9 @@ } } ], - "description": "Test.balances (tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#15) is never initialized. It is used in:\n\t- Test.use() (tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#23-26)\n", - "markdown": "[Test.balances](tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#L15) is never initialized. It is used in:\n\t- [Test.use()](tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#L23-L26)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#L15", + "description": "Test.balances (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#15) is never initialized. It is used in:\n\t- Test.use() (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#23-26)\n", + "markdown": "[Test.balances](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L15) is never initialized. It is used in:\n\t- [Test.use()](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L23-L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L15", "id": "a2750d175b02d51aeb47a4576f74725ba991d3c8cf828a33ee78ccc34cf9e7d7", "check": "uninitialized-state", "impact": "High", @@ -240,9 +240,9 @@ "source_mapping": { "start": 782, "length": 6, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 47 @@ -257,9 +257,9 @@ "source_mapping": { "start": 675, "length": 373, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -292,9 +292,9 @@ "source_mapping": { "start": 851, "length": 59, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 49, @@ -311,9 +311,9 @@ "source_mapping": { "start": 675, "length": 373, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -342,9 +342,9 @@ } } ], - "description": "Test2.v (tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#47) is never initialized. It is used in:\n\t- Test2.init() (tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#49-51)\n", - "markdown": "[Test2.v](tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#L47) is never initialized. It is used in:\n\t- [Test2.init()](tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#L49-L51)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#L47", + "description": "Test2.v (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#47) is never initialized. It is used in:\n\t- Test2.init() (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#49-51)\n", + "markdown": "[Test2.v](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L47) is never initialized. It is used in:\n\t- [Test2.init()](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L49-L51)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L47", "id": "bf96eee949943a12926cf1407a2df2b07e99b30a6fc2e78aebf088cdefcf77a7", "check": "uninitialized-state", "impact": "High", @@ -358,9 +358,9 @@ "source_mapping": { "start": 57, "length": 27, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 5 @@ -375,9 +375,9 @@ "source_mapping": { "start": 28, "length": 148, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 3, @@ -402,9 +402,9 @@ "source_mapping": { "start": 91, "length": 82, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 7, @@ -421,9 +421,9 @@ "source_mapping": { "start": 28, "length": 148, - "filename_relative": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", "is_dependency": false, "lines": [ 3, @@ -444,9 +444,9 @@ } } ], - "description": "Uninitialized.destination (tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#5) is never initialized. It is used in:\n\t- Uninitialized.transfer() (tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#7-9)\n", - "markdown": "[Uninitialized.destination](tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#L5) is never initialized. It is used in:\n\t- [Uninitialized.transfer()](tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#L7-L9)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.5.16/uninitialized.sol#L5", + "description": "Uninitialized.destination (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#5) is never initialized. It is used in:\n\t- Uninitialized.transfer() (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#7-9)\n", + "markdown": "[Uninitialized.destination](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L5) is never initialized. It is used in:\n\t- [Uninitialized.transfer()](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L7-L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L5", "id": "e4711aebbd53922a9fe1e728917bf8e98eac065305e20d766b6b552debe79e44", "check": "uninitialized-state", "impact": "High", diff --git a/tests/detectors/uninitialized-state/0.6.11/uninitialized.sol b/tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol similarity index 100% rename from tests/detectors/uninitialized-state/0.6.11/uninitialized.sol rename to tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol diff --git a/tests/detectors/uninitialized-state/0.6.11/uninitialized.sol.0.6.11.UninitializedStateVarsDetection.json b/tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol.0.6.11.UninitializedStateVarsDetection.json similarity index 70% rename from tests/detectors/uninitialized-state/0.6.11/uninitialized.sol.0.6.11.UninitializedStateVarsDetection.json rename to tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol.0.6.11.UninitializedStateVarsDetection.json index 2488e1869..4bffc62b2 100644 --- a/tests/detectors/uninitialized-state/0.6.11/uninitialized.sol.0.6.11.UninitializedStateVarsDetection.json +++ b/tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol.0.6.11.UninitializedStateVarsDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 729, "length": 15, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 45 @@ -25,9 +25,9 @@ "source_mapping": { "start": 675, "length": 373, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -60,9 +60,9 @@ "source_mapping": { "start": 916, "length": 129, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 53, @@ -80,9 +80,9 @@ "source_mapping": { "start": 675, "length": 373, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -111,9 +111,9 @@ } } ], - "description": "Test2.st (tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#45) is never initialized. It is used in:\n\t- Test2.use() (tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#53-56)\n", - "markdown": "[Test2.st](tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#L45) is never initialized. It is used in:\n\t- [Test2.use()](tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#L53-L56)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#L45", + "description": "Test2.st (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#45) is never initialized. It is used in:\n\t- Test2.use() (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#53-56)\n", + "markdown": "[Test2.st](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L45) is never initialized. It is used in:\n\t- [Test2.use()](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L53-L56)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L45", "id": "427f100397f455d8000eff7b1d2463763ca8e452d5d98f7b7de693fd5e625a32", "check": "uninitialized-state", "impact": "High", @@ -127,9 +127,9 @@ "source_mapping": { "start": 199, "length": 34, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 15 @@ -144,9 +144,9 @@ "source_mapping": { "start": 179, "length": 349, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 14, @@ -176,9 +176,9 @@ "source_mapping": { "start": 372, "length": 154, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 23, @@ -196,9 +196,9 @@ "source_mapping": { "start": 179, "length": 349, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 14, @@ -224,9 +224,9 @@ } } ], - "description": "Test.balances (tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#15) is never initialized. It is used in:\n\t- Test.use() (tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#23-26)\n", - "markdown": "[Test.balances](tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#L15) is never initialized. It is used in:\n\t- [Test.use()](tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#L23-L26)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#L15", + "description": "Test.balances (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#15) is never initialized. It is used in:\n\t- Test.use() (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#23-26)\n", + "markdown": "[Test.balances](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L15) is never initialized. It is used in:\n\t- [Test.use()](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L23-L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L15", "id": "a2750d175b02d51aeb47a4576f74725ba991d3c8cf828a33ee78ccc34cf9e7d7", "check": "uninitialized-state", "impact": "High", @@ -240,9 +240,9 @@ "source_mapping": { "start": 782, "length": 6, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 47 @@ -257,9 +257,9 @@ "source_mapping": { "start": 675, "length": 373, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -292,9 +292,9 @@ "source_mapping": { "start": 851, "length": 59, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 49, @@ -311,9 +311,9 @@ "source_mapping": { "start": 675, "length": 373, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -342,9 +342,9 @@ } } ], - "description": "Test2.v (tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#47) is never initialized. It is used in:\n\t- Test2.init() (tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#49-51)\n", - "markdown": "[Test2.v](tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#L47) is never initialized. It is used in:\n\t- [Test2.init()](tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#L49-L51)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#L47", + "description": "Test2.v (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#47) is never initialized. It is used in:\n\t- Test2.init() (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#49-51)\n", + "markdown": "[Test2.v](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L47) is never initialized. It is used in:\n\t- [Test2.init()](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L49-L51)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L47", "id": "bf96eee949943a12926cf1407a2df2b07e99b30a6fc2e78aebf088cdefcf77a7", "check": "uninitialized-state", "impact": "High", @@ -358,9 +358,9 @@ "source_mapping": { "start": 57, "length": 27, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 5 @@ -375,9 +375,9 @@ "source_mapping": { "start": 28, "length": 148, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 3, @@ -402,9 +402,9 @@ "source_mapping": { "start": 91, "length": 82, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 7, @@ -421,9 +421,9 @@ "source_mapping": { "start": 28, "length": 148, - "filename_relative": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", "is_dependency": false, "lines": [ 3, @@ -444,9 +444,9 @@ } } ], - "description": "Uninitialized.destination (tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#5) is never initialized. It is used in:\n\t- Uninitialized.transfer() (tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#7-9)\n", - "markdown": "[Uninitialized.destination](tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#L5) is never initialized. It is used in:\n\t- [Uninitialized.transfer()](tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#L7-L9)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.6.11/uninitialized.sol#L5", + "description": "Uninitialized.destination (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#5) is never initialized. It is used in:\n\t- Uninitialized.transfer() (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#7-9)\n", + "markdown": "[Uninitialized.destination](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L5) is never initialized. It is used in:\n\t- [Uninitialized.transfer()](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L7-L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L5", "id": "e4711aebbd53922a9fe1e728917bf8e98eac065305e20d766b6b552debe79e44", "check": "uninitialized-state", "impact": "High", diff --git a/tests/detectors/uninitialized-state/0.7.6/uninitialized.sol b/tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol similarity index 100% rename from tests/detectors/uninitialized-state/0.7.6/uninitialized.sol rename to tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol diff --git a/tests/detectors/uninitialized-state/0.7.6/uninitialized.sol.0.7.6.UninitializedStateVarsDetection.json b/tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol.0.7.6.UninitializedStateVarsDetection.json similarity index 70% rename from tests/detectors/uninitialized-state/0.7.6/uninitialized.sol.0.7.6.UninitializedStateVarsDetection.json rename to tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol.0.7.6.UninitializedStateVarsDetection.json index 342ab0760..dbd437c52 100644 --- a/tests/detectors/uninitialized-state/0.7.6/uninitialized.sol.0.7.6.UninitializedStateVarsDetection.json +++ b/tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol.0.7.6.UninitializedStateVarsDetection.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 729, "length": 15, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 45 @@ -25,9 +25,9 @@ "source_mapping": { "start": 675, "length": 373, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -60,9 +60,9 @@ "source_mapping": { "start": 916, "length": 129, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 53, @@ -80,9 +80,9 @@ "source_mapping": { "start": 675, "length": 373, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -111,9 +111,9 @@ } } ], - "description": "Test2.st (tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#45) is never initialized. It is used in:\n\t- Test2.use() (tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#53-56)\n", - "markdown": "[Test2.st](tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#L45) is never initialized. It is used in:\n\t- [Test2.use()](tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#L53-L56)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#L45", + "description": "Test2.st (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#45) is never initialized. It is used in:\n\t- Test2.use() (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#53-56)\n", + "markdown": "[Test2.st](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L45) is never initialized. It is used in:\n\t- [Test2.use()](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L53-L56)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L45", "id": "427f100397f455d8000eff7b1d2463763ca8e452d5d98f7b7de693fd5e625a32", "check": "uninitialized-state", "impact": "High", @@ -127,9 +127,9 @@ "source_mapping": { "start": 199, "length": 34, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 15 @@ -144,9 +144,9 @@ "source_mapping": { "start": 179, "length": 349, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 14, @@ -176,9 +176,9 @@ "source_mapping": { "start": 372, "length": 154, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 23, @@ -196,9 +196,9 @@ "source_mapping": { "start": 179, "length": 349, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 14, @@ -224,9 +224,9 @@ } } ], - "description": "Test.balances (tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#15) is never initialized. It is used in:\n\t- Test.use() (tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#23-26)\n", - "markdown": "[Test.balances](tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#L15) is never initialized. It is used in:\n\t- [Test.use()](tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#L23-L26)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#L15", + "description": "Test.balances (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#15) is never initialized. It is used in:\n\t- Test.use() (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#23-26)\n", + "markdown": "[Test.balances](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L15) is never initialized. It is used in:\n\t- [Test.use()](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L23-L26)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L15", "id": "a2750d175b02d51aeb47a4576f74725ba991d3c8cf828a33ee78ccc34cf9e7d7", "check": "uninitialized-state", "impact": "High", @@ -240,9 +240,9 @@ "source_mapping": { "start": 782, "length": 6, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 47 @@ -257,9 +257,9 @@ "source_mapping": { "start": 675, "length": 373, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -292,9 +292,9 @@ "source_mapping": { "start": 851, "length": 59, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 49, @@ -311,9 +311,9 @@ "source_mapping": { "start": 675, "length": 373, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 42, @@ -342,9 +342,9 @@ } } ], - "description": "Test2.v (tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#47) is never initialized. It is used in:\n\t- Test2.init() (tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#49-51)\n", - "markdown": "[Test2.v](tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#L47) is never initialized. It is used in:\n\t- [Test2.init()](tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#L49-L51)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#L47", + "description": "Test2.v (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#47) is never initialized. It is used in:\n\t- Test2.init() (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#49-51)\n", + "markdown": "[Test2.v](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L47) is never initialized. It is used in:\n\t- [Test2.init()](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L49-L51)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L47", "id": "bf96eee949943a12926cf1407a2df2b07e99b30a6fc2e78aebf088cdefcf77a7", "check": "uninitialized-state", "impact": "High", @@ -358,9 +358,9 @@ "source_mapping": { "start": 57, "length": 27, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 5 @@ -375,9 +375,9 @@ "source_mapping": { "start": 28, "length": 148, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 3, @@ -402,9 +402,9 @@ "source_mapping": { "start": 91, "length": 82, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 7, @@ -421,9 +421,9 @@ "source_mapping": { "start": 28, "length": 148, - "filename_relative": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", "is_dependency": false, "lines": [ 3, @@ -444,9 +444,9 @@ } } ], - "description": "Uninitialized.destination (tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#5) is never initialized. It is used in:\n\t- Uninitialized.transfer() (tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#7-9)\n", - "markdown": "[Uninitialized.destination](tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#L5) is never initialized. It is used in:\n\t- [Uninitialized.transfer()](tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#L7-L9)\n", - "first_markdown_element": "tests/detectors/uninitialized-state/0.7.6/uninitialized.sol#L5", + "description": "Uninitialized.destination (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#5) is never initialized. It is used in:\n\t- Uninitialized.transfer() (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#7-9)\n", + "markdown": "[Uninitialized.destination](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L5) is never initialized. It is used in:\n\t- [Uninitialized.transfer()](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L7-L9)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L5", "id": "e4711aebbd53922a9fe1e728917bf8e98eac065305e20d766b6b552debe79e44", "check": "uninitialized-state", "impact": "High", diff --git a/tests/detectors/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol b/tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol similarity index 100% rename from tests/detectors/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol rename to tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol diff --git a/tests/detectors/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol.0.4.25.UninitializedStorageVars.json b/tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol.0.4.25.UninitializedStorageVars.json similarity index 72% rename from tests/detectors/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol.0.4.25.UninitializedStorageVars.json rename to tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol.0.4.25.UninitializedStorageVars.json index bf443a99f..d67fa7dc1 100644 --- a/tests/detectors/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol.0.4.25.UninitializedStorageVars.json +++ b/tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol.0.4.25.UninitializedStorageVars.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 171, "length": 9, - "filename_relative": "tests/detectors/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", "is_dependency": false, "lines": [ 10 @@ -25,9 +25,9 @@ "source_mapping": { "start": 67, "length": 143, - "filename_relative": "tests/detectors/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", "is_dependency": false, "lines": [ 7, @@ -47,9 +47,9 @@ "source_mapping": { "start": 0, "length": 217, - "filename_relative": "tests/detectors/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", "is_dependency": false, "lines": [ 1, @@ -77,9 +77,9 @@ } } ], - "description": "Uninitialized.func().st_bug (tests/detectors/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol#10) is a storage variable never initialized\n", - "markdown": "[Uninitialized.func().st_bug](tests/detectors/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol#L10) is a storage variable never initialized\n", - "first_markdown_element": "tests/detectors/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol#L10", + "description": "Uninitialized.func().st_bug (tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol#10) is a storage variable never initialized\n", + "markdown": "[Uninitialized.func().st_bug](tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol#L10) is a storage variable never initialized\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol#L10", "id": "b8f7c2470a8a7f83fd42dca40c50cbf2070e7fa5486c674585f2b0b39d3dc429", "check": "uninitialized-storage", "impact": "High", diff --git a/tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol b/tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol similarity index 100% rename from tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol rename to tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol diff --git a/tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol.0.8.19.UninitializedStorageVars.json b/tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol.0.8.19.UninitializedStorageVars.json similarity index 73% rename from tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol.0.8.19.UninitializedStorageVars.json rename to tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol.0.8.19.UninitializedStorageVars.json index e7fab681d..4b867cc05 100644 --- a/tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol.0.8.19.UninitializedStorageVars.json +++ b/tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol.0.8.19.UninitializedStorageVars.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 100, "length": 14, - "filename_relative": "tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", "is_dependency": false, "lines": [ 7 @@ -25,9 +25,9 @@ "source_mapping": { "start": 67, "length": 95, - "filename_relative": "tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", "is_dependency": false, "lines": [ 7, @@ -45,9 +45,9 @@ "source_mapping": { "start": 0, "length": 262, - "filename_relative": "tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", + "filename_relative": "tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", + "filename_short": "tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", "is_dependency": false, "lines": [ 1, @@ -78,9 +78,9 @@ } } ], - "description": "Uninitialized.bad().ret (tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol#7) is a storage variable never initialized\n", - "markdown": "[Uninitialized.bad().ret](tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol#L7) is a storage variable never initialized\n", - "first_markdown_element": "tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol#L7", + "description": "Uninitialized.bad().ret (tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol#7) is a storage variable never initialized\n", + "markdown": "[Uninitialized.bad().ret](tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol#L7) is a storage variable never initialized\n", + "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol#L7", "id": "979d28e501693ed7ece0d429e7c30266f8e9d6a2e2eedc87006c4bad63e78706", "check": "uninitialized-storage", "impact": "High", diff --git a/tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol diff --git a/tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol.0.4.25.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol.0.4.25.UnprotectedUpgradeable.json similarity index 70% rename from tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol.0.4.25.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol.0.4.25.UnprotectedUpgradeable.json index 91c73b9e9..5338de68e 100644 --- a/tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol.0.4.25.UnprotectedUpgradeable.json +++ b/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol.0.4.25.UnprotectedUpgradeable.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 31, "length": 277, - "filename_relative": "tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -37,9 +37,9 @@ "source_mapping": { "start": 88, "length": 115, - "filename_relative": "tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", "is_dependency": false, "lines": [ 6, @@ -57,9 +57,9 @@ "source_mapping": { "start": 31, "length": 277, - "filename_relative": "tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -89,9 +89,9 @@ "source_mapping": { "start": 208, "length": 98, - "filename_relative": "tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", "is_dependency": false, "lines": [ 10, @@ -109,9 +109,9 @@ "source_mapping": { "start": 31, "length": 277, - "filename_relative": "tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -136,9 +136,9 @@ } } ], - "description": "Buggy (tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol#10-13)", - "markdown": "[Buggy](tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol#L3-L15) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol#L10-L13)", - "first_markdown_element": "tests/detectors/unprotected-upgrade/0.4.25/Buggy.sol#L3-L15", + "description": "Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#10-13)", + "markdown": "[Buggy](tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#L3-L15) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#L10-L13)", + "first_markdown_element": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#L3-L15", "id": "d85b90230632a30f7ffb5140a791d4a9ae8b0be045c5b27175f3c477e189c08c", "check": "unprotected-upgrade", "impact": "High", diff --git a/tests/detectors/unprotected-upgrade/0.4.25/Fixed.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Fixed.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.4.25/Fixed.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Fixed.sol diff --git a/tests/detectors/unprotected-upgrade/0.4.25/Fixed.sol.0.4.25.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Fixed.sol.0.4.25.UnprotectedUpgradeable.json similarity index 100% rename from tests/detectors/unprotected-upgrade/0.4.25/Fixed.sol.0.4.25.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Fixed.sol.0.4.25.UnprotectedUpgradeable.json diff --git a/tests/detectors/unprotected-upgrade/0.4.25/Initializable.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Initializable.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.4.25/Initializable.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Initializable.sol diff --git a/tests/detectors/unprotected-upgrade/0.4.25/OnlyProxy.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/OnlyProxy.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.4.25/OnlyProxy.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/OnlyProxy.sol diff --git a/tests/detectors/unprotected-upgrade/0.4.25/whitelisted.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/whitelisted.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.4.25/whitelisted.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/whitelisted.sol diff --git a/tests/detectors/unprotected-upgrade/0.4.25/whitelisted.sol.0.4.25.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/whitelisted.sol.0.4.25.UnprotectedUpgradeable.json similarity index 100% rename from tests/detectors/unprotected-upgrade/0.4.25/whitelisted.sol.0.4.25.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/whitelisted.sol.0.4.25.UnprotectedUpgradeable.json diff --git a/tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol diff --git a/tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol.0.5.16.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol.0.5.16.UnprotectedUpgradeable.json similarity index 70% rename from tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol.0.5.16.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol.0.5.16.UnprotectedUpgradeable.json index 766083309..5c95df3d9 100644 --- a/tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol.0.5.16.UnprotectedUpgradeable.json +++ b/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol.0.5.16.UnprotectedUpgradeable.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 31, "length": 285, - "filename_relative": "tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -37,9 +37,9 @@ "source_mapping": { "start": 96, "length": 115, - "filename_relative": "tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", "is_dependency": false, "lines": [ 6, @@ -57,9 +57,9 @@ "source_mapping": { "start": 31, "length": 285, - "filename_relative": "tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -89,9 +89,9 @@ "source_mapping": { "start": 216, "length": 98, - "filename_relative": "tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", "is_dependency": false, "lines": [ 10, @@ -109,9 +109,9 @@ "source_mapping": { "start": 31, "length": 285, - "filename_relative": "tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -136,9 +136,9 @@ } } ], - "description": "Buggy (tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol#10-13)", - "markdown": "[Buggy](tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol#L3-L15) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol#L10-L13)", - "first_markdown_element": "tests/detectors/unprotected-upgrade/0.5.16/Buggy.sol#L3-L15", + "description": "Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#10-13)", + "markdown": "[Buggy](tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#L3-L15) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#L10-L13)", + "first_markdown_element": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#L3-L15", "id": "d85b90230632a30f7ffb5140a791d4a9ae8b0be045c5b27175f3c477e189c08c", "check": "unprotected-upgrade", "impact": "High", diff --git a/tests/detectors/unprotected-upgrade/0.5.16/Fixed.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Fixed.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.5.16/Fixed.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Fixed.sol diff --git a/tests/detectors/unprotected-upgrade/0.5.16/Fixed.sol.0.5.16.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Fixed.sol.0.5.16.UnprotectedUpgradeable.json similarity index 100% rename from tests/detectors/unprotected-upgrade/0.5.16/Fixed.sol.0.5.16.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Fixed.sol.0.5.16.UnprotectedUpgradeable.json diff --git a/tests/detectors/unprotected-upgrade/0.5.16/Initializable.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Initializable.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.5.16/Initializable.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Initializable.sol diff --git a/tests/detectors/unprotected-upgrade/0.5.16/OnlyProxy.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/OnlyProxy.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.5.16/OnlyProxy.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/OnlyProxy.sol diff --git a/tests/detectors/unprotected-upgrade/0.5.16/whitelisted.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/whitelisted.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.5.16/whitelisted.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/whitelisted.sol diff --git a/tests/detectors/unprotected-upgrade/0.5.16/whitelisted.sol.0.5.16.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/whitelisted.sol.0.5.16.UnprotectedUpgradeable.json similarity index 100% rename from tests/detectors/unprotected-upgrade/0.5.16/whitelisted.sol.0.5.16.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/whitelisted.sol.0.5.16.UnprotectedUpgradeable.json diff --git a/tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol diff --git a/tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol.0.6.11.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol.0.6.11.UnprotectedUpgradeable.json similarity index 70% rename from tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol.0.6.11.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol.0.6.11.UnprotectedUpgradeable.json index 865ad3555..6612db2c4 100644 --- a/tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol.0.6.11.UnprotectedUpgradeable.json +++ b/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol.0.6.11.UnprotectedUpgradeable.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 31, "length": 285, - "filename_relative": "tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -37,9 +37,9 @@ "source_mapping": { "start": 96, "length": 115, - "filename_relative": "tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", "is_dependency": false, "lines": [ 6, @@ -57,9 +57,9 @@ "source_mapping": { "start": 31, "length": 285, - "filename_relative": "tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -89,9 +89,9 @@ "source_mapping": { "start": 216, "length": 98, - "filename_relative": "tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", "is_dependency": false, "lines": [ 10, @@ -109,9 +109,9 @@ "source_mapping": { "start": 31, "length": 285, - "filename_relative": "tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -136,9 +136,9 @@ } } ], - "description": "Buggy (tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol#10-13)", - "markdown": "[Buggy](tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol#L3-L15) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol#L10-L13)", - "first_markdown_element": "tests/detectors/unprotected-upgrade/0.6.11/Buggy.sol#L3-L15", + "description": "Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#10-13)", + "markdown": "[Buggy](tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#L3-L15) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#L10-L13)", + "first_markdown_element": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#L3-L15", "id": "d85b90230632a30f7ffb5140a791d4a9ae8b0be045c5b27175f3c477e189c08c", "check": "unprotected-upgrade", "impact": "High", diff --git a/tests/detectors/unprotected-upgrade/0.6.11/Fixed.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Fixed.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.6.11/Fixed.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Fixed.sol diff --git a/tests/detectors/unprotected-upgrade/0.6.11/Fixed.sol.0.6.11.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Fixed.sol.0.6.11.UnprotectedUpgradeable.json similarity index 100% rename from tests/detectors/unprotected-upgrade/0.6.11/Fixed.sol.0.6.11.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Fixed.sol.0.6.11.UnprotectedUpgradeable.json diff --git a/tests/detectors/unprotected-upgrade/0.6.11/Initializable.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Initializable.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.6.11/Initializable.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Initializable.sol diff --git a/tests/detectors/unprotected-upgrade/0.6.11/OnlyProxy.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/OnlyProxy.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.6.11/OnlyProxy.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/OnlyProxy.sol diff --git a/tests/detectors/unprotected-upgrade/0.6.11/whitelisted.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/whitelisted.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.6.11/whitelisted.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/whitelisted.sol diff --git a/tests/detectors/unprotected-upgrade/0.6.11/whitelisted.sol.0.6.11.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/whitelisted.sol.0.6.11.UnprotectedUpgradeable.json similarity index 100% rename from tests/detectors/unprotected-upgrade/0.6.11/whitelisted.sol.0.6.11.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/whitelisted.sol.0.6.11.UnprotectedUpgradeable.json diff --git a/tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol diff --git a/tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol.0.7.6.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol.0.7.6.UnprotectedUpgradeable.json similarity index 70% rename from tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol.0.7.6.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol.0.7.6.UnprotectedUpgradeable.json index 1d82d31a4..4ee7824d0 100644 --- a/tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol.0.7.6.UnprotectedUpgradeable.json +++ b/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol.0.7.6.UnprotectedUpgradeable.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 31, "length": 285, - "filename_relative": "tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -37,9 +37,9 @@ "source_mapping": { "start": 96, "length": 115, - "filename_relative": "tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", "is_dependency": false, "lines": [ 6, @@ -57,9 +57,9 @@ "source_mapping": { "start": 31, "length": 285, - "filename_relative": "tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -89,9 +89,9 @@ "source_mapping": { "start": 216, "length": 98, - "filename_relative": "tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", "is_dependency": false, "lines": [ 10, @@ -109,9 +109,9 @@ "source_mapping": { "start": 31, "length": 285, - "filename_relative": "tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -136,9 +136,9 @@ } } ], - "description": "Buggy (tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol#10-13)", - "markdown": "[Buggy](tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol#L3-L15) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol#L10-L13)", - "first_markdown_element": "tests/detectors/unprotected-upgrade/0.7.6/Buggy.sol#L3-L15", + "description": "Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#10-13)", + "markdown": "[Buggy](tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#L3-L15) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#L10-L13)", + "first_markdown_element": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#L3-L15", "id": "d85b90230632a30f7ffb5140a791d4a9ae8b0be045c5b27175f3c477e189c08c", "check": "unprotected-upgrade", "impact": "High", diff --git a/tests/detectors/unprotected-upgrade/0.7.6/Fixed.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Fixed.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.7.6/Fixed.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Fixed.sol diff --git a/tests/detectors/unprotected-upgrade/0.7.6/Fixed.sol.0.7.6.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Fixed.sol.0.7.6.UnprotectedUpgradeable.json similarity index 100% rename from tests/detectors/unprotected-upgrade/0.7.6/Fixed.sol.0.7.6.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Fixed.sol.0.7.6.UnprotectedUpgradeable.json diff --git a/tests/detectors/unprotected-upgrade/0.7.6/Initializable.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Initializable.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.7.6/Initializable.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Initializable.sol diff --git a/tests/detectors/unprotected-upgrade/0.7.6/OnlyProxy.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/OnlyProxy.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.7.6/OnlyProxy.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/OnlyProxy.sol diff --git a/tests/detectors/unprotected-upgrade/0.7.6/whitelisted.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/whitelisted.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.7.6/whitelisted.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/whitelisted.sol diff --git a/tests/detectors/unprotected-upgrade/0.7.6/whitelisted.sol.0.7.6.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/whitelisted.sol.0.7.6.UnprotectedUpgradeable.json similarity index 100% rename from tests/detectors/unprotected-upgrade/0.7.6/whitelisted.sol.0.7.6.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/whitelisted.sol.0.7.6.UnprotectedUpgradeable.json diff --git a/tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol diff --git a/tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol.0.8.15.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol.0.8.15.UnprotectedUpgradeable.json similarity index 69% rename from tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol.0.8.15.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol.0.8.15.UnprotectedUpgradeable.json index 79bcda746..69bdcf712 100644 --- a/tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol.0.8.15.UnprotectedUpgradeable.json +++ b/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol.0.8.15.UnprotectedUpgradeable.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 31, "length": 294, - "filename_relative": "tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -36,9 +36,9 @@ "source_mapping": { "start": 96, "length": 124, - "filename_relative": "tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", "is_dependency": false, "lines": [ 6, @@ -56,9 +56,9 @@ "source_mapping": { "start": 31, "length": 294, - "filename_relative": "tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -87,9 +87,9 @@ "source_mapping": { "start": 225, "length": 98, - "filename_relative": "tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", "is_dependency": false, "lines": [ 10, @@ -107,9 +107,9 @@ "source_mapping": { "start": 31, "length": 294, - "filename_relative": "tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol", + "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol", + "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", "is_dependency": false, "lines": [ 3, @@ -133,9 +133,9 @@ } } ], - "description": "Buggy (tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol#3-14) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol#10-13)", - "markdown": "[Buggy](tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol#L3-L14) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol#L10-L13)", - "first_markdown_element": "tests/detectors/unprotected-upgrade/0.8.15/Buggy.sol#L3-L14", + "description": "Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#3-14) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#10-13)", + "markdown": "[Buggy](tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#L3-L14) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#L10-L13)", + "first_markdown_element": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#L3-L14", "id": "d85b90230632a30f7ffb5140a791d4a9ae8b0be045c5b27175f3c477e189c08c", "check": "unprotected-upgrade", "impact": "High", diff --git a/tests/detectors/unprotected-upgrade/0.8.15/Fixed.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Fixed.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.8.15/Fixed.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Fixed.sol diff --git a/tests/detectors/unprotected-upgrade/0.8.15/Fixed.sol.0.8.15.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Fixed.sol.0.8.15.UnprotectedUpgradeable.json similarity index 100% rename from tests/detectors/unprotected-upgrade/0.8.15/Fixed.sol.0.8.15.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Fixed.sol.0.8.15.UnprotectedUpgradeable.json diff --git a/tests/detectors/unprotected-upgrade/0.8.15/Initializable.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Initializable.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.8.15/Initializable.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Initializable.sol diff --git a/tests/detectors/unprotected-upgrade/0.8.15/OnlyProxy.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/OnlyProxy.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.8.15/OnlyProxy.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/OnlyProxy.sol diff --git a/tests/detectors/unprotected-upgrade/0.8.15/whitelisted.sol b/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/whitelisted.sol similarity index 100% rename from tests/detectors/unprotected-upgrade/0.8.15/whitelisted.sol rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/whitelisted.sol diff --git a/tests/detectors/unprotected-upgrade/0.8.15/whitelisted.sol.0.8.15.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/whitelisted.sol.0.8.15.UnprotectedUpgradeable.json similarity index 100% rename from tests/detectors/unprotected-upgrade/0.8.15/whitelisted.sol.0.8.15.UnprotectedUpgradeable.json rename to tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/whitelisted.sol.0.8.15.UnprotectedUpgradeable.json diff --git a/tests/detectors/unused-return/0.4.25/unused_return.sol b/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol similarity index 100% rename from tests/detectors/unused-return/0.4.25/unused_return.sol rename to tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol diff --git a/tests/detectors/unused-return/0.4.25/unused_return.sol.0.4.25.UnusedReturnValues.json b/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol.0.4.25.UnusedReturnValues.json similarity index 77% rename from tests/detectors/unused-return/0.4.25/unused_return.sol.0.4.25.UnusedReturnValues.json rename to tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol.0.4.25.UnusedReturnValues.json index 35b949ccc..e7bbae2d7 100644 --- a/tests/detectors/unused-return/0.4.25/unused_return.sol.0.4.25.UnusedReturnValues.json +++ b/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol.0.4.25.UnusedReturnValues.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 239, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -37,9 +37,9 @@ "source_mapping": { "start": 189, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -70,19 +70,19 @@ }, { "type": "node", - "name": "a.add(0)", + "name": "t.f()", "source_mapping": { - "start": 353, - "length": 8, - "filename_relative": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "start": 279, + "length": 5, + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "is_dependency": false, "lines": [ - 22 + 18 ], "starting_column": 9, - "ending_column": 17 + "ending_column": 14 }, "type_specific_fields": { "parent": { @@ -91,9 +91,9 @@ "source_mapping": { "start": 239, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -120,9 +120,9 @@ "source_mapping": { "start": 189, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -154,10 +154,10 @@ } } ], - "description": "User.test(Target) (tests/detectors/unused-return/0.4.25/unused_return.sol#17-29) ignores return value by a.add(0) (tests/detectors/unused-return/0.4.25/unused_return.sol#22)\n", - "markdown": "[User.test(Target)](tests/detectors/unused-return/0.4.25/unused_return.sol#L17-L29) ignores return value by [a.add(0)](tests/detectors/unused-return/0.4.25/unused_return.sol#L22)\n", - "first_markdown_element": "tests/detectors/unused-return/0.4.25/unused_return.sol#L17-L29", - "id": "619bba0a79919e4f53e583a88cd4e32f204489c8d86e365a20bf3f9ce4c0f542", + "description": "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)\n", + "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#L17-L29) ignores return value by [t.f()](tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#L17-L29", + "id": "c5015552dbe34ab3e4ad7fddcf3ce9a62065df0780ac4541d441f23a1617ac53", "check": "unused-return", "impact": "Medium", "confidence": "Medium" @@ -170,9 +170,9 @@ "source_mapping": { "start": 239, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -199,9 +199,9 @@ "source_mapping": { "start": 189, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -232,19 +232,19 @@ }, { "type": "node", - "name": "t.f()", + "name": "a.add(0)", "source_mapping": { - "start": 279, - "length": 5, - "filename_relative": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "start": 353, + "length": 8, + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "is_dependency": false, "lines": [ - 18 + 22 ], "starting_column": 9, - "ending_column": 14 + "ending_column": 17 }, "type_specific_fields": { "parent": { @@ -253,9 +253,9 @@ "source_mapping": { "start": 239, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -282,9 +282,9 @@ "source_mapping": { "start": 189, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.4.25/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -316,10 +316,10 @@ } } ], - "description": "User.test(Target) (tests/detectors/unused-return/0.4.25/unused_return.sol#17-29) ignores return value by t.f() (tests/detectors/unused-return/0.4.25/unused_return.sol#18)\n", - "markdown": "[User.test(Target)](tests/detectors/unused-return/0.4.25/unused_return.sol#L17-L29) ignores return value by [t.f()](tests/detectors/unused-return/0.4.25/unused_return.sol#L18)\n", - "first_markdown_element": "tests/detectors/unused-return/0.4.25/unused_return.sol#L17-L29", - "id": "73c54c292f1f2fb8a8d88b230cd0bf2da3bc8fff0d758b009839ca883b36c84e", + "description": "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)\n", + "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#L17-L29) ignores return value by [a.add(0)](tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#L17-L29", + "id": "e80688c415b86f06ab1b89934f843c8f566f5f073c821315581f2f93dbb2ac25", "check": "unused-return", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/unused-return/0.5.16/unused_return.sol b/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol similarity index 100% rename from tests/detectors/unused-return/0.5.16/unused_return.sol rename to tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol diff --git a/tests/detectors/unused-return/0.5.16/unused_return.sol.0.5.16.UnusedReturnValues.json b/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol.0.5.16.UnusedReturnValues.json similarity index 77% rename from tests/detectors/unused-return/0.5.16/unused_return.sol.0.5.16.UnusedReturnValues.json rename to tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol.0.5.16.UnusedReturnValues.json index c7ef925b2..a99fba736 100644 --- a/tests/detectors/unused-return/0.5.16/unused_return.sol.0.5.16.UnusedReturnValues.json +++ b/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol.0.5.16.UnusedReturnValues.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 239, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -37,9 +37,9 @@ "source_mapping": { "start": 189, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -74,9 +74,9 @@ "source_mapping": { "start": 279, "length": 5, - "filename_relative": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "is_dependency": false, "lines": [ 18 @@ -91,9 +91,9 @@ "source_mapping": { "start": 239, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -120,9 +120,9 @@ "source_mapping": { "start": 189, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -154,10 +154,10 @@ } } ], - "description": "User.test(Target) (tests/detectors/unused-return/0.5.16/unused_return.sol#17-29) ignores return value by t.f() (tests/detectors/unused-return/0.5.16/unused_return.sol#18)\n", - "markdown": "[User.test(Target)](tests/detectors/unused-return/0.5.16/unused_return.sol#L17-L29) ignores return value by [t.f()](tests/detectors/unused-return/0.5.16/unused_return.sol#L18)\n", - "first_markdown_element": "tests/detectors/unused-return/0.5.16/unused_return.sol#L17-L29", - "id": "190c5a143431b8a4d621e698c6dc665e87146a1cd2543177212f1114eb714c43", + "description": "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)\n", + "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#L17-L29) ignores return value by [t.f()](tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#L17-L29", + "id": "7843b65e61884b02dc8cf4350acc7821049497a85a283c2bc9d0ba86ae3271d1", "check": "unused-return", "impact": "Medium", "confidence": "Medium" @@ -170,9 +170,9 @@ "source_mapping": { "start": 239, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -199,9 +199,9 @@ "source_mapping": { "start": 189, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -236,9 +236,9 @@ "source_mapping": { "start": 353, "length": 8, - "filename_relative": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "is_dependency": false, "lines": [ 22 @@ -253,9 +253,9 @@ "source_mapping": { "start": 239, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -282,9 +282,9 @@ "source_mapping": { "start": 189, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.5.16/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -316,10 +316,10 @@ } } ], - "description": "User.test(Target) (tests/detectors/unused-return/0.5.16/unused_return.sol#17-29) ignores return value by a.add(0) (tests/detectors/unused-return/0.5.16/unused_return.sol#22)\n", - "markdown": "[User.test(Target)](tests/detectors/unused-return/0.5.16/unused_return.sol#L17-L29) ignores return value by [a.add(0)](tests/detectors/unused-return/0.5.16/unused_return.sol#L22)\n", - "first_markdown_element": "tests/detectors/unused-return/0.5.16/unused_return.sol#L17-L29", - "id": "c31ab267ad74015229067bab954de4f1edb4eaa7d39df6f3f01646911acddb14", + "description": "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)\n", + "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#L17-L29) ignores return value by [a.add(0)](tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#L17-L29", + "id": "d876e2686a0e1aa7863854de350210a92276a3cb046989301b13d02405b350fd", "check": "unused-return", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/unused-return/0.6.11/unused_return.sol b/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol similarity index 100% rename from tests/detectors/unused-return/0.6.11/unused_return.sol rename to tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol diff --git a/tests/detectors/unused-return/0.6.11/unused_return.sol.0.6.11.UnusedReturnValues.json b/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol.0.6.11.UnusedReturnValues.json similarity index 77% rename from tests/detectors/unused-return/0.6.11/unused_return.sol.0.6.11.UnusedReturnValues.json rename to tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol.0.6.11.UnusedReturnValues.json index faa1eaf78..faaa7ed63 100644 --- a/tests/detectors/unused-return/0.6.11/unused_return.sol.0.6.11.UnusedReturnValues.json +++ b/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol.0.6.11.UnusedReturnValues.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 256, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -37,9 +37,9 @@ "source_mapping": { "start": 206, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -70,19 +70,19 @@ }, { "type": "node", - "name": "t.f()", + "name": "a.add(0)", "source_mapping": { - "start": 296, - "length": 5, - "filename_relative": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "start": 370, + "length": 8, + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "is_dependency": false, "lines": [ - 18 + 22 ], "starting_column": 9, - "ending_column": 14 + "ending_column": 17 }, "type_specific_fields": { "parent": { @@ -91,9 +91,9 @@ "source_mapping": { "start": 256, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -120,9 +120,9 @@ "source_mapping": { "start": 206, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -154,10 +154,10 @@ } } ], - "description": "User.test(Target) (tests/detectors/unused-return/0.6.11/unused_return.sol#17-29) ignores return value by t.f() (tests/detectors/unused-return/0.6.11/unused_return.sol#18)\n", - "markdown": "[User.test(Target)](tests/detectors/unused-return/0.6.11/unused_return.sol#L17-L29) ignores return value by [t.f()](tests/detectors/unused-return/0.6.11/unused_return.sol#L18)\n", - "first_markdown_element": "tests/detectors/unused-return/0.6.11/unused_return.sol#L17-L29", - "id": "4e72a6afeb16bff32ed54f32875103a79d36d8fb42eefeb6ddfdc9d2cfb9894a", + "description": "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)\n", + "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#L17-L29) ignores return value by [a.add(0)](tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#L17-L29", + "id": "3dc614b48b1a73e884a9eab5a5edf9e72ef8150d1f6113cff92c8e07d561ddbb", "check": "unused-return", "impact": "Medium", "confidence": "Medium" @@ -170,9 +170,9 @@ "source_mapping": { "start": 256, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -199,9 +199,9 @@ "source_mapping": { "start": 206, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -232,19 +232,19 @@ }, { "type": "node", - "name": "a.add(0)", + "name": "t.f()", "source_mapping": { - "start": 370, - "length": 8, - "filename_relative": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "start": 296, + "length": 5, + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "is_dependency": false, "lines": [ - 22 + 18 ], "starting_column": 9, - "ending_column": 17 + "ending_column": 14 }, "type_specific_fields": { "parent": { @@ -253,9 +253,9 @@ "source_mapping": { "start": 256, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -282,9 +282,9 @@ "source_mapping": { "start": 206, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.6.11/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -316,10 +316,10 @@ } } ], - "description": "User.test(Target) (tests/detectors/unused-return/0.6.11/unused_return.sol#17-29) ignores return value by a.add(0) (tests/detectors/unused-return/0.6.11/unused_return.sol#22)\n", - "markdown": "[User.test(Target)](tests/detectors/unused-return/0.6.11/unused_return.sol#L17-L29) ignores return value by [a.add(0)](tests/detectors/unused-return/0.6.11/unused_return.sol#L22)\n", - "first_markdown_element": "tests/detectors/unused-return/0.6.11/unused_return.sol#L17-L29", - "id": "7dda2ecde076f87319f13a922c2b0daacf6fe31578c06e28fc45383520429a6d", + "description": "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)\n", + "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#L17-L29) ignores return value by [t.f()](tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#L17-L29", + "id": "4aef1645332b4a0136e6a0e78fd3fa35ddef10772b35bab5e548ea68e635cad2", "check": "unused-return", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/unused-return/0.7.6/unused_return.sol b/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol similarity index 100% rename from tests/detectors/unused-return/0.7.6/unused_return.sol rename to tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol diff --git a/tests/detectors/unused-return/0.7.6/unused_return.sol.0.7.6.UnusedReturnValues.json b/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol.0.7.6.UnusedReturnValues.json similarity index 78% rename from tests/detectors/unused-return/0.7.6/unused_return.sol.0.7.6.UnusedReturnValues.json rename to tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol.0.7.6.UnusedReturnValues.json index b21c477bd..976a5e944 100644 --- a/tests/detectors/unused-return/0.7.6/unused_return.sol.0.7.6.UnusedReturnValues.json +++ b/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol.0.7.6.UnusedReturnValues.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 256, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -37,9 +37,9 @@ "source_mapping": { "start": 206, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -74,9 +74,9 @@ "source_mapping": { "start": 370, "length": 8, - "filename_relative": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "is_dependency": false, "lines": [ 22 @@ -91,9 +91,9 @@ "source_mapping": { "start": 256, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -120,9 +120,9 @@ "source_mapping": { "start": 206, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -154,10 +154,10 @@ } } ], - "description": "User.test(Target) (tests/detectors/unused-return/0.7.6/unused_return.sol#17-29) ignores return value by a.add(0) (tests/detectors/unused-return/0.7.6/unused_return.sol#22)\n", - "markdown": "[User.test(Target)](tests/detectors/unused-return/0.7.6/unused_return.sol#L17-L29) ignores return value by [a.add(0)](tests/detectors/unused-return/0.7.6/unused_return.sol#L22)\n", - "first_markdown_element": "tests/detectors/unused-return/0.7.6/unused_return.sol#L17-L29", - "id": "3774dfb7de028a13f2945c0e19a075ffb1fb27a7785aaaf79dff863f7f1bbec7", + "description": "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)\n", + "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#L17-L29) ignores return value by [a.add(0)](tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#L22)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#L17-L29", + "id": "09f2e1abd220d36055b9a751ae0009c7346054948c4e2bcd2191621412abc445", "check": "unused-return", "impact": "Medium", "confidence": "Medium" @@ -170,9 +170,9 @@ "source_mapping": { "start": 256, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -199,9 +199,9 @@ "source_mapping": { "start": 206, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -236,9 +236,9 @@ "source_mapping": { "start": 296, "length": 5, - "filename_relative": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "is_dependency": false, "lines": [ 18 @@ -253,9 +253,9 @@ "source_mapping": { "start": 256, "length": 354, - "filename_relative": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "is_dependency": false, "lines": [ 17, @@ -282,9 +282,9 @@ "source_mapping": { "start": 206, "length": 406, - "filename_relative": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-return/0.7.6/unused_return.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", "is_dependency": false, "lines": [ 13, @@ -316,10 +316,10 @@ } } ], - "description": "User.test(Target) (tests/detectors/unused-return/0.7.6/unused_return.sol#17-29) ignores return value by t.f() (tests/detectors/unused-return/0.7.6/unused_return.sol#18)\n", - "markdown": "[User.test(Target)](tests/detectors/unused-return/0.7.6/unused_return.sol#L17-L29) ignores return value by [t.f()](tests/detectors/unused-return/0.7.6/unused_return.sol#L18)\n", - "first_markdown_element": "tests/detectors/unused-return/0.7.6/unused_return.sol#L17-L29", - "id": "d5027a5d25ac3528c0d03d48a3bbd9ef6ea582b2a286b47e8e7f741c26c35634", + "description": "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)\n", + "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#L17-L29) ignores return value by [t.f()](tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#L18)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#L17-L29", + "id": "9893d158fba1f4647212ce557a98037ba20350e55e7432f6d78ea11860f2ade2", "check": "unused-return", "impact": "Medium", "confidence": "Medium" diff --git a/tests/detectors/unused-state/0.4.25/unused_state.sol b/tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol similarity index 100% rename from tests/detectors/unused-state/0.4.25/unused_state.sol rename to tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol diff --git a/tests/detectors/unused-state/0.4.25/unused_state.sol.0.4.25.UnusedStateVars.json b/tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol.0.4.25.UnusedStateVars.json similarity index 66% rename from tests/detectors/unused-state/0.4.25/unused_state.sol.0.4.25.UnusedStateVars.json rename to tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol.0.4.25.UnusedStateVars.json index f14704ad1..d1fd736d2 100644 --- a/tests/detectors/unused-state/0.4.25/unused_state.sol.0.4.25.UnusedStateVars.json +++ b/tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol.0.4.25.UnusedStateVars.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 44, "length": 14, - "filename_relative": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "is_dependency": false, "lines": [ 4 @@ -25,9 +25,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -50,9 +50,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -67,9 +67,9 @@ } } ], - "description": "A.unused (tests/detectors/unused-state/0.4.25/unused_state.sol#4) is never used in B (tests/detectors/unused-state/0.4.25/unused_state.sol#11-16)\n", - "markdown": "[A.unused](tests/detectors/unused-state/0.4.25/unused_state.sol#L4) is never used in [B](tests/detectors/unused-state/0.4.25/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.4.25/unused_state.sol#L4", + "description": "A.unused (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#4) is never used in B (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#11-16)\n", + "markdown": "[A.unused](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L4) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L4", "id": "195279490862ae355bac3d27d0cdb1aa18200a5daed8f3dbd84dc5b120e29482", "check": "unused-state", "impact": "Informational", @@ -83,9 +83,9 @@ "source_mapping": { "start": 106, "length": 15, - "filename_relative": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "is_dependency": false, "lines": [ 7 @@ -100,9 +100,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -125,9 +125,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -142,9 +142,9 @@ } } ], - "description": "A.unused4 (tests/detectors/unused-state/0.4.25/unused_state.sol#7) is never used in B (tests/detectors/unused-state/0.4.25/unused_state.sol#11-16)\n", - "markdown": "[A.unused4](tests/detectors/unused-state/0.4.25/unused_state.sol#L7) is never used in [B](tests/detectors/unused-state/0.4.25/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.4.25/unused_state.sol#L7", + "description": "A.unused4 (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#7) is never used in B (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#11-16)\n", + "markdown": "[A.unused4](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L7) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L7", "id": "562d3e6a04f6f6068c3e4f0c074ecdbcff87929e43ec6fbeb6c088e715f63cf2", "check": "unused-state", "impact": "Informational", @@ -158,9 +158,9 @@ "source_mapping": { "start": 64, "length": 15, - "filename_relative": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "is_dependency": false, "lines": [ 5 @@ -175,9 +175,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -200,9 +200,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -217,9 +217,9 @@ } } ], - "description": "A.unused2 (tests/detectors/unused-state/0.4.25/unused_state.sol#5) is never used in B (tests/detectors/unused-state/0.4.25/unused_state.sol#11-16)\n", - "markdown": "[A.unused2](tests/detectors/unused-state/0.4.25/unused_state.sol#L5) is never used in [B](tests/detectors/unused-state/0.4.25/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.4.25/unused_state.sol#L5", + "description": "A.unused2 (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#5) is never used in B (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#11-16)\n", + "markdown": "[A.unused2](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L5) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L5", "id": "886250d01813743573f3d311b742e0f818e0012ccbf8ad97738c029fd129d870", "check": "unused-state", "impact": "Informational", @@ -233,9 +233,9 @@ "source_mapping": { "start": 85, "length": 15, - "filename_relative": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "is_dependency": false, "lines": [ 6 @@ -250,9 +250,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -275,9 +275,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.4.25/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -292,9 +292,9 @@ } } ], - "description": "A.unused3 (tests/detectors/unused-state/0.4.25/unused_state.sol#6) is never used in B (tests/detectors/unused-state/0.4.25/unused_state.sol#11-16)\n", - "markdown": "[A.unused3](tests/detectors/unused-state/0.4.25/unused_state.sol#L6) is never used in [B](tests/detectors/unused-state/0.4.25/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.4.25/unused_state.sol#L6", + "description": "A.unused3 (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#6) is never used in B (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#11-16)\n", + "markdown": "[A.unused3](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L6) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L6", "id": "e2ac51590509d97ff791ce50d9a711fc5ad01c20d23eacf6fb31939bd91b9f48", "check": "unused-state", "impact": "Informational", diff --git a/tests/detectors/unused-state/0.5.16/unused_state.sol b/tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol similarity index 100% rename from tests/detectors/unused-state/0.5.16/unused_state.sol rename to tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol diff --git a/tests/detectors/unused-state/0.5.16/unused_state.sol.0.5.16.UnusedStateVars.json b/tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol.0.5.16.UnusedStateVars.json similarity index 66% rename from tests/detectors/unused-state/0.5.16/unused_state.sol.0.5.16.UnusedStateVars.json rename to tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol.0.5.16.UnusedStateVars.json index df4f5f56c..eed961d11 100644 --- a/tests/detectors/unused-state/0.5.16/unused_state.sol.0.5.16.UnusedStateVars.json +++ b/tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol.0.5.16.UnusedStateVars.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 44, "length": 14, - "filename_relative": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "is_dependency": false, "lines": [ 4 @@ -25,9 +25,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -50,9 +50,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -67,9 +67,9 @@ } } ], - "description": "A.unused (tests/detectors/unused-state/0.5.16/unused_state.sol#4) is never used in B (tests/detectors/unused-state/0.5.16/unused_state.sol#11-16)\n", - "markdown": "[A.unused](tests/detectors/unused-state/0.5.16/unused_state.sol#L4) is never used in [B](tests/detectors/unused-state/0.5.16/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.5.16/unused_state.sol#L4", + "description": "A.unused (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#4) is never used in B (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#11-16)\n", + "markdown": "[A.unused](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L4) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L4", "id": "195279490862ae355bac3d27d0cdb1aa18200a5daed8f3dbd84dc5b120e29482", "check": "unused-state", "impact": "Informational", @@ -83,9 +83,9 @@ "source_mapping": { "start": 106, "length": 15, - "filename_relative": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "is_dependency": false, "lines": [ 7 @@ -100,9 +100,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -125,9 +125,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -142,9 +142,9 @@ } } ], - "description": "A.unused4 (tests/detectors/unused-state/0.5.16/unused_state.sol#7) is never used in B (tests/detectors/unused-state/0.5.16/unused_state.sol#11-16)\n", - "markdown": "[A.unused4](tests/detectors/unused-state/0.5.16/unused_state.sol#L7) is never used in [B](tests/detectors/unused-state/0.5.16/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.5.16/unused_state.sol#L7", + "description": "A.unused4 (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#7) is never used in B (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#11-16)\n", + "markdown": "[A.unused4](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L7) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L7", "id": "562d3e6a04f6f6068c3e4f0c074ecdbcff87929e43ec6fbeb6c088e715f63cf2", "check": "unused-state", "impact": "Informational", @@ -158,9 +158,9 @@ "source_mapping": { "start": 64, "length": 15, - "filename_relative": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "is_dependency": false, "lines": [ 5 @@ -175,9 +175,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -200,9 +200,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -217,9 +217,9 @@ } } ], - "description": "A.unused2 (tests/detectors/unused-state/0.5.16/unused_state.sol#5) is never used in B (tests/detectors/unused-state/0.5.16/unused_state.sol#11-16)\n", - "markdown": "[A.unused2](tests/detectors/unused-state/0.5.16/unused_state.sol#L5) is never used in [B](tests/detectors/unused-state/0.5.16/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.5.16/unused_state.sol#L5", + "description": "A.unused2 (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#5) is never used in B (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#11-16)\n", + "markdown": "[A.unused2](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L5) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L5", "id": "886250d01813743573f3d311b742e0f818e0012ccbf8ad97738c029fd129d870", "check": "unused-state", "impact": "Informational", @@ -233,9 +233,9 @@ "source_mapping": { "start": 85, "length": 15, - "filename_relative": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "is_dependency": false, "lines": [ 6 @@ -250,9 +250,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -275,9 +275,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.5.16/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -292,9 +292,9 @@ } } ], - "description": "A.unused3 (tests/detectors/unused-state/0.5.16/unused_state.sol#6) is never used in B (tests/detectors/unused-state/0.5.16/unused_state.sol#11-16)\n", - "markdown": "[A.unused3](tests/detectors/unused-state/0.5.16/unused_state.sol#L6) is never used in [B](tests/detectors/unused-state/0.5.16/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.5.16/unused_state.sol#L6", + "description": "A.unused3 (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#6) is never used in B (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#11-16)\n", + "markdown": "[A.unused3](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L6) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L6", "id": "e2ac51590509d97ff791ce50d9a711fc5ad01c20d23eacf6fb31939bd91b9f48", "check": "unused-state", "impact": "Informational", diff --git a/tests/detectors/unused-state/0.6.11/unused_state.sol b/tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol similarity index 100% rename from tests/detectors/unused-state/0.6.11/unused_state.sol rename to tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol diff --git a/tests/detectors/unused-state/0.6.11/unused_state.sol.0.6.11.UnusedStateVars.json b/tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol.0.6.11.UnusedStateVars.json similarity index 66% rename from tests/detectors/unused-state/0.6.11/unused_state.sol.0.6.11.UnusedStateVars.json rename to tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol.0.6.11.UnusedStateVars.json index bbbe2d199..90126296b 100644 --- a/tests/detectors/unused-state/0.6.11/unused_state.sol.0.6.11.UnusedStateVars.json +++ b/tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol.0.6.11.UnusedStateVars.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 44, "length": 14, - "filename_relative": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "is_dependency": false, "lines": [ 4 @@ -25,9 +25,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -50,9 +50,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -67,9 +67,9 @@ } } ], - "description": "A.unused (tests/detectors/unused-state/0.6.11/unused_state.sol#4) is never used in B (tests/detectors/unused-state/0.6.11/unused_state.sol#11-16)\n", - "markdown": "[A.unused](tests/detectors/unused-state/0.6.11/unused_state.sol#L4) is never used in [B](tests/detectors/unused-state/0.6.11/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.6.11/unused_state.sol#L4", + "description": "A.unused (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#4) is never used in B (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#11-16)\n", + "markdown": "[A.unused](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L4) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L4", "id": "195279490862ae355bac3d27d0cdb1aa18200a5daed8f3dbd84dc5b120e29482", "check": "unused-state", "impact": "Informational", @@ -83,9 +83,9 @@ "source_mapping": { "start": 106, "length": 15, - "filename_relative": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "is_dependency": false, "lines": [ 7 @@ -100,9 +100,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -125,9 +125,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -142,9 +142,9 @@ } } ], - "description": "A.unused4 (tests/detectors/unused-state/0.6.11/unused_state.sol#7) is never used in B (tests/detectors/unused-state/0.6.11/unused_state.sol#11-16)\n", - "markdown": "[A.unused4](tests/detectors/unused-state/0.6.11/unused_state.sol#L7) is never used in [B](tests/detectors/unused-state/0.6.11/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.6.11/unused_state.sol#L7", + "description": "A.unused4 (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#7) is never used in B (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#11-16)\n", + "markdown": "[A.unused4](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L7) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L7", "id": "562d3e6a04f6f6068c3e4f0c074ecdbcff87929e43ec6fbeb6c088e715f63cf2", "check": "unused-state", "impact": "Informational", @@ -158,9 +158,9 @@ "source_mapping": { "start": 64, "length": 15, - "filename_relative": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "is_dependency": false, "lines": [ 5 @@ -175,9 +175,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -200,9 +200,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -217,9 +217,9 @@ } } ], - "description": "A.unused2 (tests/detectors/unused-state/0.6.11/unused_state.sol#5) is never used in B (tests/detectors/unused-state/0.6.11/unused_state.sol#11-16)\n", - "markdown": "[A.unused2](tests/detectors/unused-state/0.6.11/unused_state.sol#L5) is never used in [B](tests/detectors/unused-state/0.6.11/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.6.11/unused_state.sol#L5", + "description": "A.unused2 (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#5) is never used in B (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#11-16)\n", + "markdown": "[A.unused2](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L5) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L5", "id": "886250d01813743573f3d311b742e0f818e0012ccbf8ad97738c029fd129d870", "check": "unused-state", "impact": "Informational", @@ -233,9 +233,9 @@ "source_mapping": { "start": 85, "length": 15, - "filename_relative": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "is_dependency": false, "lines": [ 6 @@ -250,9 +250,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -275,9 +275,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.6.11/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -292,9 +292,9 @@ } } ], - "description": "A.unused3 (tests/detectors/unused-state/0.6.11/unused_state.sol#6) is never used in B (tests/detectors/unused-state/0.6.11/unused_state.sol#11-16)\n", - "markdown": "[A.unused3](tests/detectors/unused-state/0.6.11/unused_state.sol#L6) is never used in [B](tests/detectors/unused-state/0.6.11/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.6.11/unused_state.sol#L6", + "description": "A.unused3 (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#6) is never used in B (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#11-16)\n", + "markdown": "[A.unused3](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L6) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L6", "id": "e2ac51590509d97ff791ce50d9a711fc5ad01c20d23eacf6fb31939bd91b9f48", "check": "unused-state", "impact": "Informational", diff --git a/tests/detectors/unused-state/0.7.6/unused_state.sol b/tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol similarity index 100% rename from tests/detectors/unused-state/0.7.6/unused_state.sol rename to tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol diff --git a/tests/detectors/unused-state/0.7.6/unused_state.sol.0.7.6.UnusedStateVars.json b/tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol.0.7.6.UnusedStateVars.json similarity index 67% rename from tests/detectors/unused-state/0.7.6/unused_state.sol.0.7.6.UnusedStateVars.json rename to tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol.0.7.6.UnusedStateVars.json index a6aeca672..f959460a9 100644 --- a/tests/detectors/unused-state/0.7.6/unused_state.sol.0.7.6.UnusedStateVars.json +++ b/tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol.0.7.6.UnusedStateVars.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 44, "length": 14, - "filename_relative": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "is_dependency": false, "lines": [ 4 @@ -25,9 +25,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -50,9 +50,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -67,9 +67,9 @@ } } ], - "description": "A.unused (tests/detectors/unused-state/0.7.6/unused_state.sol#4) is never used in B (tests/detectors/unused-state/0.7.6/unused_state.sol#11-16)\n", - "markdown": "[A.unused](tests/detectors/unused-state/0.7.6/unused_state.sol#L4) is never used in [B](tests/detectors/unused-state/0.7.6/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.7.6/unused_state.sol#L4", + "description": "A.unused (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#4) is never used in B (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#11-16)\n", + "markdown": "[A.unused](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L4) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L4", "id": "195279490862ae355bac3d27d0cdb1aa18200a5daed8f3dbd84dc5b120e29482", "check": "unused-state", "impact": "Informational", @@ -83,9 +83,9 @@ "source_mapping": { "start": 106, "length": 15, - "filename_relative": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "is_dependency": false, "lines": [ 7 @@ -100,9 +100,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -125,9 +125,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -142,9 +142,9 @@ } } ], - "description": "A.unused4 (tests/detectors/unused-state/0.7.6/unused_state.sol#7) is never used in B (tests/detectors/unused-state/0.7.6/unused_state.sol#11-16)\n", - "markdown": "[A.unused4](tests/detectors/unused-state/0.7.6/unused_state.sol#L7) is never used in [B](tests/detectors/unused-state/0.7.6/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.7.6/unused_state.sol#L7", + "description": "A.unused4 (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#7) is never used in B (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#11-16)\n", + "markdown": "[A.unused4](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L7) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L7", "id": "562d3e6a04f6f6068c3e4f0c074ecdbcff87929e43ec6fbeb6c088e715f63cf2", "check": "unused-state", "impact": "Informational", @@ -158,9 +158,9 @@ "source_mapping": { "start": 64, "length": 15, - "filename_relative": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "is_dependency": false, "lines": [ 5 @@ -175,9 +175,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -200,9 +200,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -217,9 +217,9 @@ } } ], - "description": "A.unused2 (tests/detectors/unused-state/0.7.6/unused_state.sol#5) is never used in B (tests/detectors/unused-state/0.7.6/unused_state.sol#11-16)\n", - "markdown": "[A.unused2](tests/detectors/unused-state/0.7.6/unused_state.sol#L5) is never used in [B](tests/detectors/unused-state/0.7.6/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.7.6/unused_state.sol#L5", + "description": "A.unused2 (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#5) is never used in B (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#11-16)\n", + "markdown": "[A.unused2](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L5) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L5", "id": "886250d01813743573f3d311b742e0f818e0012ccbf8ad97738c029fd129d870", "check": "unused-state", "impact": "Informational", @@ -233,9 +233,9 @@ "source_mapping": { "start": 85, "length": 15, - "filename_relative": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "is_dependency": false, "lines": [ 6 @@ -250,9 +250,9 @@ "source_mapping": { "start": 28, "length": 114, - "filename_relative": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "is_dependency": false, "lines": [ 3, @@ -275,9 +275,9 @@ "source_mapping": { "start": 144, "length": 78, - "filename_relative": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/unused-state/0.7.6/unused_state.sol", + "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", "is_dependency": false, "lines": [ 11, @@ -292,9 +292,9 @@ } } ], - "description": "A.unused3 (tests/detectors/unused-state/0.7.6/unused_state.sol#6) is never used in B (tests/detectors/unused-state/0.7.6/unused_state.sol#11-16)\n", - "markdown": "[A.unused3](tests/detectors/unused-state/0.7.6/unused_state.sol#L6) is never used in [B](tests/detectors/unused-state/0.7.6/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/detectors/unused-state/0.7.6/unused_state.sol#L6", + "description": "A.unused3 (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#6) is never used in B (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#11-16)\n", + "markdown": "[A.unused3](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L6) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L11-L16)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L6", "id": "e2ac51590509d97ff791ce50d9a711fc5ad01c20d23eacf6fb31939bd91b9f48", "check": "unused-state", "impact": "Informational", diff --git a/tests/detectors/var-read-using-this/0.4.25/var_read_using_this.sol b/tests/e2e/detectors/test_data/var-read-using-this/0.4.25/var_read_using_this.sol similarity index 100% rename from tests/detectors/var-read-using-this/0.4.25/var_read_using_this.sol rename to tests/e2e/detectors/test_data/var-read-using-this/0.4.25/var_read_using_this.sol diff --git a/tests/detectors/var-read-using-this/0.4.25/var_read_using_this.sol.0.4.25.VarReadUsingThis.json b/tests/e2e/detectors/test_data/var-read-using-this/0.4.25/var_read_using_this.sol.0.4.25.VarReadUsingThis.json similarity index 100% rename from tests/detectors/var-read-using-this/0.4.25/var_read_using_this.sol.0.4.25.VarReadUsingThis.json rename to tests/e2e/detectors/test_data/var-read-using-this/0.4.25/var_read_using_this.sol.0.4.25.VarReadUsingThis.json diff --git a/tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol b/tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol similarity index 100% rename from tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol rename to tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol diff --git a/tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol.0.5.16.VarReadUsingThis.json b/tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol.0.5.16.VarReadUsingThis.json similarity index 79% rename from tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol.0.5.16.VarReadUsingThis.json rename to tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol.0.5.16.VarReadUsingThis.json index 15a0e08b5..bef851b5e 100644 --- a/tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol.0.5.16.VarReadUsingThis.json +++ b/tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol.0.5.16.VarReadUsingThis.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 275, "length": 99, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ 11, @@ -27,9 +27,9 @@ "source_mapping": { "start": 1, "length": 1107, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -84,9 +84,9 @@ "source_mapping": { "start": 331, "length": 26, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ 12 @@ -101,9 +101,9 @@ "source_mapping": { "start": 275, "length": 99, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ 11, @@ -120,9 +120,9 @@ "source_mapping": { "start": 1, "length": 1107, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -174,10 +174,10 @@ } } ], - "description": "The function VarReadUsingThis.bad3() (tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad3()](tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#L11-L13) reads [this.erc20() == address(0)](tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#L12) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#L11-L13", - "id": "5556888563fa21301c242d57fbd8e08a35fc5d67171a88b9a2737c14be9c6f7f", + "description": "The function VarReadUsingThis.bad3() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad3()](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L11-L13) reads [this.erc20() == address(0)](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L12) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L11-L13", + "id": "55503790711e79d47b5a41729e9de26ce1fda4ab9c0935699a14cc107501842f", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" @@ -186,18 +186,20 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad4", "source_mapping": { - "start": 192, - "length": 78, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "start": 379, + "length": 138, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10 + 14, + 15, + 16, + 17, + 18 ], "starting_column": 5, "ending_column": 6 @@ -209,9 +211,9 @@ "source_mapping": { "start": 1, "length": 1107, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -257,40 +259,42 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad4()" } }, { "type": "node", - "name": "this.erc20()", + "name": "local = this.erc20()", "source_mapping": { - "start": 244, - "length": 19, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "start": 471, + "length": 28, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ - 9 + 16 ], - "starting_column": 9, - "ending_column": 28 + "starting_column": 13, + "ending_column": 41 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad4", "source_mapping": { - "start": 192, - "length": 78, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "start": 379, + "length": 138, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10 + 14, + 15, + 16, + 17, + 18 ], "starting_column": 5, "ending_column": 6 @@ -302,9 +306,9 @@ "source_mapping": { "start": 1, "length": 1107, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -350,16 +354,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad4()" } } } } ], - "description": "The function VarReadUsingThis.bad2() (tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#8-10) reads this.erc20() (tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad2()](tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#L8-L10) reads [this.erc20()](tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#L9) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#L8-L10", - "id": "a55229af8750117389299ed9f759d5036882a2396a52087bb2a42c5ed8abaec1", + "description": "The function VarReadUsingThis.bad4() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad4()](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L14-L18) reads [local = this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L16) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L14-L18", + "id": "7e28633dee0a5338ebf7ccf52d467d96e66822051333ac4bc66de407ff56f3bd", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" @@ -372,9 +376,9 @@ "source_mapping": { "start": 102, "length": 85, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ 5, @@ -391,9 +395,9 @@ "source_mapping": { "start": 1, "length": 1107, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -448,9 +452,9 @@ "source_mapping": { "start": 160, "length": 20, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ 6 @@ -465,9 +469,9 @@ "source_mapping": { "start": 102, "length": 85, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ 5, @@ -484,9 +488,9 @@ "source_mapping": { "start": 1, "length": 1107, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -538,10 +542,10 @@ } } ], - "description": "The function VarReadUsingThis.bad1(uint256) (tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad1(uint256)](tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#L5-L7) reads [this.myMap(x)](tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#L6) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#L5-L7", - "id": "e810f17bcfdf391a48e66ef70c4aafcc205c882b28d0588b26f1d45742580df6", + "description": "The function VarReadUsingThis.bad1(uint256) (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad1(uint256)](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L5-L7) reads [this.myMap(x)](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L6) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L5-L7", + "id": "c5f735934f6390e4bb9ceae821df4ef6b509dde6dead3cea64f3db09508d6029", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" @@ -550,20 +554,18 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad2", "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "start": 192, + "length": 78, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17, - 18 + 8, + 9, + 10 ], "starting_column": 5, "ending_column": 6 @@ -575,9 +577,9 @@ "source_mapping": { "start": 1, "length": 1107, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -623,42 +625,40 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad2()" } }, { "type": "node", - "name": "local = this.erc20()", + "name": "this.erc20()", "source_mapping": { - "start": 471, - "length": 28, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "start": 244, + "length": 19, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ - 16 + 9 ], - "starting_column": 13, - "ending_column": 41 + "starting_column": 9, + "ending_column": 28 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad2", "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "start": 192, + "length": 78, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17, - 18 + 8, + 9, + 10 ], "starting_column": 5, "ending_column": 6 @@ -670,9 +670,9 @@ "source_mapping": { "start": 1, "length": 1107, - "filename_relative": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -718,16 +718,16 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad2()" } } } } ], - "description": "The function VarReadUsingThis.bad4() (tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad4()](tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#L14-L18) reads [local = this.erc20()](tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#L16) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.5.16/var_read_using_this.sol#L14-L18", - "id": "fe997df3fdea17b13139a239ecdcdb64a2f6482aa9dacc62f845ef30591c8e4c", + "description": "The function VarReadUsingThis.bad2() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#8-10) reads this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad2()](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L8-L10) reads [this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L9) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L8-L10", + "id": "e77df2d273271c1f2dea4480d2958fd432f725463ff933493542ccdff84987b5", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" diff --git a/tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol b/tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol similarity index 100% rename from tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol rename to tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol diff --git a/tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol.0.6.11.VarReadUsingThis.json b/tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol.0.6.11.VarReadUsingThis.json similarity index 79% rename from tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol.0.6.11.VarReadUsingThis.json rename to tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol.0.6.11.VarReadUsingThis.json index 61143523e..0a879704d 100644 --- a/tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol.0.6.11.VarReadUsingThis.json +++ b/tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol.0.6.11.VarReadUsingThis.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad2", "source_mapping": { - "start": 275, - "length": 99, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "start": 192, + "length": 78, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13 + 8, + 9, + 10 ], "starting_column": 5, "ending_column": 6 @@ -27,9 +27,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -75,40 +75,40 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad2()" } }, { "type": "node", - "name": "this.erc20() == address(0)", + "name": "this.erc20()", "source_mapping": { - "start": 331, - "length": 26, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "start": 244, + "length": 19, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ - 12 + 9 ], - "starting_column": 13, - "ending_column": 39 + "starting_column": 9, + "ending_column": 28 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad2", "source_mapping": { - "start": 275, - "length": 99, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "start": 192, + "length": 78, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13 + 8, + 9, + 10 ], "starting_column": 5, "ending_column": 6 @@ -120,9 +120,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -168,16 +168,16 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad2()" } } } } ], - "description": "The function VarReadUsingThis.bad3() (tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad3()](tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#L11-L13) reads [this.erc20() == address(0)](tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#L12) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#L11-L13", - "id": "314f90a4989ea75cc274e1f5f46036968c2ecdaaf8fa84913e7db4ef1ffe5bb8", + "description": "The function VarReadUsingThis.bad2() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#8-10) reads this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad2()](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L8-L10) reads [this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L9) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L8-L10", + "id": "9a65c3b63270657dc2c8cccb6e65b1b2a2c1f662b3d82969b258adf63430f46c", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" @@ -186,20 +186,18 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad1", "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "start": 102, + "length": 85, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17, - 18 + 5, + 6, + 7 ], "starting_column": 5, "ending_column": 6 @@ -211,9 +209,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -259,42 +257,40 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad1(uint256)" } }, { "type": "node", - "name": "local = this.erc20()", + "name": "this.myMap(x)", "source_mapping": { - "start": 471, - "length": 28, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "start": 160, + "length": 20, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ - 16 + 6 ], - "starting_column": 13, - "ending_column": 41 + "starting_column": 9, + "ending_column": 29 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad1", "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "start": 102, + "length": 85, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17, - 18 + 5, + 6, + 7 ], "starting_column": 5, "ending_column": 6 @@ -306,9 +302,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -354,16 +350,16 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad1(uint256)" } } } } ], - "description": "The function VarReadUsingThis.bad4() (tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad4()](tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#L14-L18) reads [local = this.erc20()](tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#L16) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#L14-L18", - "id": "5fd3f1f78f3532107d7e111d84310f3a0fa374fa407e43951d70fd00a752f76f", + "description": "The function VarReadUsingThis.bad1(uint256) (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad1(uint256)](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L5-L7) reads [this.myMap(x)](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L6) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L5-L7", + "id": "d6aadc6c5e0b16141411ad82b627e660be61fe615802a6fba82fb0680d8ec677", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" @@ -372,18 +368,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad3", "source_mapping": { - "start": 102, - "length": 85, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "start": 275, + "length": 99, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7 + 11, + 12, + 13 ], "starting_column": 5, "ending_column": 6 @@ -395,9 +391,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -443,40 +439,40 @@ "ending_column": 2 } }, - "signature": "bad1(uint256)" + "signature": "bad3()" } }, { "type": "node", - "name": "this.myMap(x)", + "name": "this.erc20() == address(0)", "source_mapping": { - "start": 160, - "length": 20, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "start": 331, + "length": 26, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ - 6 + 12 ], - "starting_column": 9, - "ending_column": 29 + "starting_column": 13, + "ending_column": 39 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad3", "source_mapping": { - "start": 102, - "length": 85, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "start": 275, + "length": 99, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ - 5, - 6, - 7 + 11, + 12, + 13 ], "starting_column": 5, "ending_column": 6 @@ -488,9 +484,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -536,16 +532,16 @@ "ending_column": 2 } }, - "signature": "bad1(uint256)" + "signature": "bad3()" } } } } ], - "description": "The function VarReadUsingThis.bad1(uint256) (tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad1(uint256)](tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#L5-L7) reads [this.myMap(x)](tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#L6) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#L5-L7", - "id": "a30c3d8ddb468d865fa69afe5b7b83164fc1a332933d4661765cc3781896c7cf", + "description": "The function VarReadUsingThis.bad3() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad3()](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L11-L13) reads [this.erc20() == address(0)](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L12) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L11-L13", + "id": "ee3598271c55ef81ce5bb5797f41fe975de5f5a14728b4fb87fed3477f01c238", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" @@ -554,18 +550,20 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad4", "source_mapping": { - "start": 192, - "length": 78, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "start": 379, + "length": 138, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10 + 14, + 15, + 16, + 17, + 18 ], "starting_column": 5, "ending_column": 6 @@ -577,9 +575,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -625,40 +623,42 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad4()" } }, { "type": "node", - "name": "this.erc20()", + "name": "local = this.erc20()", "source_mapping": { - "start": 244, - "length": 19, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "start": 471, + "length": 28, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ - 9 + 16 ], - "starting_column": 9, - "ending_column": 28 + "starting_column": 13, + "ending_column": 41 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad4", "source_mapping": { - "start": 192, - "length": 78, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "start": 379, + "length": 138, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10 + 14, + 15, + 16, + 17, + 18 ], "starting_column": 5, "ending_column": 6 @@ -670,9 +670,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -718,16 +718,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad4()" } } } } ], - "description": "The function VarReadUsingThis.bad2() (tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#8-10) reads this.erc20() (tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad2()](tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#L8-L10) reads [this.erc20()](tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#L9) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.6.11/var_read_using_this.sol#L8-L10", - "id": "ccc77ba655d341c0461ca4f4040afe19c379b2333e52648b12f793aaf7f0ead8", + "description": "The function VarReadUsingThis.bad4() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad4()](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L14-L18) reads [local = this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L16) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L14-L18", + "id": "fca8c2dd2139fad566cfbd2302ebbeabd3e18380a3969fe5bca5128234bcfef2", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" diff --git a/tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol b/tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol similarity index 100% rename from tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol rename to tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol diff --git a/tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol.0.7.6.VarReadUsingThis.json b/tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol.0.7.6.VarReadUsingThis.json similarity index 79% rename from tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol.0.7.6.VarReadUsingThis.json rename to tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol.0.7.6.VarReadUsingThis.json index 555d6b7d5..9b34e90d3 100644 --- a/tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol.0.7.6.VarReadUsingThis.json +++ b/tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol.0.7.6.VarReadUsingThis.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad2", "source_mapping": { - "start": 275, - "length": 99, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "start": 192, + "length": 78, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13 + 8, + 9, + 10 ], "starting_column": 5, "ending_column": 6 @@ -27,9 +27,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -75,40 +75,40 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad2()" } }, { "type": "node", - "name": "this.erc20() == address(0)", + "name": "this.erc20()", "source_mapping": { - "start": 331, - "length": 26, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "start": 244, + "length": 19, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ - 12 + 9 ], - "starting_column": 13, - "ending_column": 39 + "starting_column": 9, + "ending_column": 28 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad2", "source_mapping": { - "start": 275, - "length": 99, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "start": 192, + "length": 78, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13 + 8, + 9, + 10 ], "starting_column": 5, "ending_column": 6 @@ -120,9 +120,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -168,16 +168,16 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad2()" } } } } ], - "description": "The function VarReadUsingThis.bad3() (tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad3()](tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#L11-L13) reads [this.erc20() == address(0)](tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#L12) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#L11-L13", - "id": "1a8ed403cb8c6104a99c9dabdfb64e55282eaedf2c2d8b20fd3b366c49443639", + "description": "The function VarReadUsingThis.bad2() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#8-10) reads this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad2()](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L8-L10) reads [this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L9) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L8-L10", + "id": "290598228553ac4edab639bddf2d53828b34be8d1042a2b4a6d123204d496f35", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" @@ -186,18 +186,20 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad4", "source_mapping": { - "start": 192, - "length": 78, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "start": 379, + "length": 138, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10 + 14, + 15, + 16, + 17, + 18 ], "starting_column": 5, "ending_column": 6 @@ -209,9 +211,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -257,40 +259,42 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad4()" } }, { "type": "node", - "name": "this.erc20()", + "name": "local = this.erc20()", "source_mapping": { - "start": 244, - "length": 19, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "start": 471, + "length": 28, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ - 9 + 16 ], - "starting_column": 9, - "ending_column": 28 + "starting_column": 13, + "ending_column": 41 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad4", "source_mapping": { - "start": 192, - "length": 78, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "start": 379, + "length": 138, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10 + 14, + 15, + 16, + 17, + 18 ], "starting_column": 5, "ending_column": 6 @@ -302,9 +306,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -350,16 +354,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad4()" } } } } ], - "description": "The function VarReadUsingThis.bad2() (tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#8-10) reads this.erc20() (tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad2()](tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#L8-L10) reads [this.erc20()](tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#L9) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#L8-L10", - "id": "5bddf45a7f968094e163217be36e0cf17b7455740755eec53a1e7b0a44fe63ac", + "description": "The function VarReadUsingThis.bad4() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad4()](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L14-L18) reads [local = this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L16) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L14-L18", + "id": "30a0f3b46a9e9a90b039eb227e2718a281380de9a1e9af5dc185d56cfd66a2c7", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" @@ -372,9 +376,9 @@ "source_mapping": { "start": 102, "length": 85, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ 5, @@ -391,9 +395,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -448,9 +452,9 @@ "source_mapping": { "start": 160, "length": 20, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ 6 @@ -465,9 +469,9 @@ "source_mapping": { "start": 102, "length": 85, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ 5, @@ -484,9 +488,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -538,10 +542,10 @@ } } ], - "description": "The function VarReadUsingThis.bad1(uint256) (tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad1(uint256)](tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#L5-L7) reads [this.myMap(x)](tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#L6) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#L5-L7", - "id": "924c227bf74e70dda261578563193b90b60b70a1ad043716e1d98cbc49b87ceb", + "description": "The function VarReadUsingThis.bad1(uint256) (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad1(uint256)](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L5-L7) reads [this.myMap(x)](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L6) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L5-L7", + "id": "b256cea47af4d3cd37395d1a733b696008854142bbde559be84d26bd9762ee94", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" @@ -550,20 +554,18 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad3", "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "start": 275, + "length": 99, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17, - 18 + 11, + 12, + 13 ], "starting_column": 5, "ending_column": 6 @@ -575,9 +577,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -623,42 +625,40 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad3()" } }, { "type": "node", - "name": "local = this.erc20()", + "name": "this.erc20() == address(0)", "source_mapping": { - "start": 471, - "length": 28, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "start": 331, + "length": 26, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ - 16 + 12 ], "starting_column": 13, - "ending_column": 41 + "ending_column": 39 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad3", "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "start": 275, + "length": 99, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17, - 18 + 11, + 12, + 13 ], "starting_column": 5, "ending_column": 6 @@ -670,9 +670,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -718,16 +718,16 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad3()" } } } } ], - "description": "The function VarReadUsingThis.bad4() (tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad4()](tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#L14-L18) reads [local = this.erc20()](tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#L16) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.7.6/var_read_using_this.sol#L14-L18", - "id": "e9b34de7b565a0e63e55b9c74eaf9a265c7f4c8ef866d7b7db17b815393f0477", + "description": "The function VarReadUsingThis.bad3() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad3()](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L11-L13) reads [this.erc20() == address(0)](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L12) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L11-L13", + "id": "f08a064b6849275d93e7950958053cc779230d9ed5aa56c2e0ee64bc42a64a18", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" diff --git a/tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol b/tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol similarity index 100% rename from tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol rename to tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol diff --git a/tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol.0.8.15.VarReadUsingThis.json b/tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol.0.8.15.VarReadUsingThis.json similarity index 79% rename from tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol.0.8.15.VarReadUsingThis.json rename to tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol.0.8.15.VarReadUsingThis.json index 143d43a6f..f5cbbe0d7 100644 --- a/tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol.0.8.15.VarReadUsingThis.json +++ b/tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol.0.8.15.VarReadUsingThis.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 192, "length": 78, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ 8, @@ -27,9 +27,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -84,9 +84,9 @@ "source_mapping": { "start": 244, "length": 19, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ 9 @@ -101,9 +101,9 @@ "source_mapping": { "start": 192, "length": 78, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ 8, @@ -120,9 +120,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -174,10 +174,10 @@ } } ], - "description": "The function VarReadUsingThis.bad2() (tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#8-10) reads this.erc20() (tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad2()](tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#L8-L10) reads [this.erc20()](tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#L9) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#L8-L10", - "id": "4e297ea309b8865f782db6a53fdaf5aaf37f768158deb69d2ec6106a8e7b8afd", + "description": "The function VarReadUsingThis.bad2() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#8-10) reads this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad2()](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L8-L10) reads [this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L9) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L8-L10", + "id": "40ec22aa539127c7cb3bc7631b7f92ebbfc062ff2d9c0df1f1939c5560d446ca", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" @@ -190,9 +190,9 @@ "source_mapping": { "start": 102, "length": 85, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ 5, @@ -209,9 +209,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -266,9 +266,9 @@ "source_mapping": { "start": 160, "length": 20, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ 6 @@ -283,9 +283,9 @@ "source_mapping": { "start": 102, "length": 85, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ 5, @@ -302,9 +302,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -356,10 +356,10 @@ } } ], - "description": "The function VarReadUsingThis.bad1(uint256) (tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad1(uint256)](tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#L5-L7) reads [this.myMap(x)](tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#L6) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#L5-L7", - "id": "ce4d740b2da0b9b71f2dd3dd1c0903124f7be34009ede12a43dc33c6f28b9d28", + "description": "The function VarReadUsingThis.bad1(uint256) (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad1(uint256)](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L5-L7) reads [this.myMap(x)](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L6) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L5-L7", + "id": "be52068edd166c8df6487c7731a41ae63028b53837808ab34cfc7ed8f7f0e25a", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" @@ -368,18 +368,20 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 275, - "length": 99, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "start": 379, + "length": 138, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13 + 14, + 15, + 16, + 17, + 18 ], "starting_column": 5, "ending_column": 6 @@ -391,9 +393,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -439,40 +441,42 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad4()" } }, { "type": "node", - "name": "this.erc20() == address(0)", + "name": "local = this.erc20()", "source_mapping": { - "start": 331, - "length": 26, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "start": 471, + "length": 28, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ - 12 + 16 ], "starting_column": 13, - "ending_column": 39 + "ending_column": 41 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 275, - "length": 99, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "start": 379, + "length": 138, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ - 11, - 12, - 13 + 14, + 15, + 16, + 17, + 18 ], "starting_column": 5, "ending_column": 6 @@ -484,9 +488,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -532,16 +536,16 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad4()" } } } } ], - "description": "The function VarReadUsingThis.bad3() (tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad3()](tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#L11-L13) reads [this.erc20() == address(0)](tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#L12) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#L11-L13", - "id": "d4602ee9be1e60f8ae80e6d0a867b532cb2ddef0ba44b25af8808a0ac5a6b828", + "description": "The function VarReadUsingThis.bad4() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad4()](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L14-L18) reads [local = this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L16) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L14-L18", + "id": "ebe2972f34a0dab794de30abdcaa715345347d50e045220e34b6fe186b3116e9", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" @@ -550,20 +554,18 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad3", "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "start": 275, + "length": 99, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17, - 18 + 11, + 12, + 13 ], "starting_column": 5, "ending_column": 6 @@ -575,9 +577,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -623,42 +625,40 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad3()" } }, { "type": "node", - "name": "local = this.erc20()", + "name": "this.erc20() == address(0)", "source_mapping": { - "start": 471, - "length": 28, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "start": 331, + "length": 26, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ - 16 + 12 ], "starting_column": 13, - "ending_column": 41 + "ending_column": 39 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad3", "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "start": 275, + "length": 99, + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ - 14, - 15, - 16, - 17, - 18 + 11, + 12, + 13 ], "starting_column": 5, "ending_column": 6 @@ -670,9 +670,9 @@ "source_mapping": { "start": 1, "length": 1103, - "filename_relative": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol", + "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", "is_dependency": false, "lines": [ 2, @@ -718,16 +718,16 @@ "ending_column": 2 } }, - "signature": "bad4()" + "signature": "bad3()" } } } } ], - "description": "The function VarReadUsingThis.bad4() (tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad4()](tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#L14-L18) reads [local = this.erc20()](tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#L16) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/detectors/var-read-using-this/0.8.15/var_read_using_this.sol#L14-L18", - "id": "fec10ba084a6322d0fbb895e6c7ca6bca380b48a54d2ecae92a017b8b41242bf", + "description": "The function VarReadUsingThis.bad3() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL.\n", + "markdown": "The function [VarReadUsingThis.bad3()](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L11-L13) reads [this.erc20() == address(0)](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L12) with `this` which adds an extra STATICCALL.\n", + "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L11-L13", + "id": "faca8090dd3c1760f275353c90f014075eae7ad4ee5cd3559ef7219cd842bb1f", "check": "var-read-using-this", "impact": "Optimization", "confidence": "High" diff --git a/tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol b/tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol similarity index 100% rename from tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol rename to tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol diff --git a/tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol.0.4.25.PredeclarationUsageLocal.json b/tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol.0.4.25.PredeclarationUsageLocal.json similarity index 77% rename from tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol.0.4.25.PredeclarationUsageLocal.json rename to tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol.0.4.25.PredeclarationUsageLocal.json index aabf64ad6..6950dcb48 100644 --- a/tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol.0.4.25.PredeclarationUsageLocal.json +++ b/tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol.0.4.25.PredeclarationUsageLocal.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 199, "length": 11, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 8 @@ -25,9 +25,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -57,9 +57,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -97,9 +97,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -129,9 +129,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -167,9 +167,9 @@ "source_mapping": { "start": 417, "length": 3, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 14 @@ -184,9 +184,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -216,9 +216,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -251,10 +251,10 @@ } } ], - "description": "Variable 'C.f(uint256).i (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: i -- (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#14)\n", - "markdown": "Variable '[C.f(uint256).i](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [i --](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L14)\n", - "first_markdown_element": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L8", - "id": "24ed055a29ee9bac066b9a99a36d40f7bd77314605d8f1a6440a5576a38b24fb", + "description": "Variable 'C.f(uint256).i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: i -- (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#14)\n", + "markdown": "Variable '[C.f(uint256).i](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [i --](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8", + "id": "095c11e8610be17375a514b274a990111f6eecade86dcfb496e9f37928e897d6", "check": "variable-scope", "impact": "Low", "confidence": "High" @@ -267,9 +267,9 @@ "source_mapping": { "start": 199, "length": 11, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 8 @@ -284,9 +284,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -316,9 +316,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -356,9 +356,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -388,9 +388,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -422,19 +422,19 @@ }, { "type": "node", - "name": "i = 10", + "name": "x += i", "source_mapping": { - "start": 402, + "start": 436, "length": 6, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ - 14 + 15 ], - "starting_column": 14, - "ending_column": 20 + "starting_column": 13, + "ending_column": 19 }, "type_specific_fields": { "parent": { @@ -443,9 +443,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -475,9 +475,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -510,10 +510,10 @@ } } ], - "description": "Variable 'C.f(uint256).i (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: i = 10 (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#14)\n", - "markdown": "Variable '[C.f(uint256).i](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [i = 10](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L14)\n", - "first_markdown_element": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L8", - "id": "940660958df422ffbfe30b13d535439b2cb3f84146a23034087228c4e9016d75", + "description": "Variable 'C.f(uint256).i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: x += i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#15)\n", + "markdown": "Variable '[C.f(uint256).i](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [x += i](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L15)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8", + "id": "1fd0e708c176441472d554bac03777d3bbefc96772c8f5d2cbf0ce9a8bbfb96a", "check": "variable-scope", "impact": "Low", "confidence": "High" @@ -526,9 +526,9 @@ "source_mapping": { "start": 199, "length": 11, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 8 @@ -543,9 +543,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -575,9 +575,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -615,9 +615,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -647,9 +647,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -681,19 +681,19 @@ }, { "type": "node", - "name": "x += i", + "name": "i > 0", "source_mapping": { - "start": 436, - "length": 6, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "start": 410, + "length": 5, + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ - 15 + 14 ], - "starting_column": 13, - "ending_column": 19 + "starting_column": 22, + "ending_column": 27 }, "type_specific_fields": { "parent": { @@ -702,9 +702,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -734,9 +734,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -769,10 +769,10 @@ } } ], - "description": "Variable 'C.f(uint256).i (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: x += i (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#15)\n", - "markdown": "Variable '[C.f(uint256).i](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [x += i](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L15)\n", - "first_markdown_element": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L8", - "id": "e346a217ae6931f9fa7ff70302d05db17c0422dd4272f87935b633950239b592", + "description": "Variable 'C.f(uint256).i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: i > 0 (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#14)\n", + "markdown": "Variable '[C.f(uint256).i](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [i > 0](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8", + "id": "5488c1057b2ea266ea7471dff81dfc1b833e117af14dd80fbc2ec6b895c042f8", "check": "variable-scope", "impact": "Low", "confidence": "High" @@ -781,19 +781,19 @@ "elements": [ { "type": "variable", - "name": "x", + "name": "i", "source_mapping": { - "start": 130, - "length": 10, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "start": 199, + "length": 11, + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ - 5 + 8 ], - "starting_column": 9, - "ending_column": 19 + "starting_column": 18, + "ending_column": 29 }, "type_specific_fields": { "parent": { @@ -802,9 +802,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -834,9 +834,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -874,9 +874,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -906,9 +906,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -940,19 +940,19 @@ }, { "type": "node", - "name": "y = x + 9 + z", + "name": "i = 10", "source_mapping": { - "start": 69, - "length": 13, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "start": 402, + "length": 6, + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ - 4 + 14 ], - "starting_column": 9, - "ending_column": 22 + "starting_column": 14, + "ending_column": 20 }, "type_specific_fields": { "parent": { @@ -961,9 +961,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -993,9 +993,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -1028,10 +1028,10 @@ } } ], - "description": "Variable 'C.f(uint256).x (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#5)' in C.f(uint256) (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: y = x + 9 + z (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#4)\n", - "markdown": "Variable '[C.f(uint256).x](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L5)' in [C.f(uint256)](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [y = x + 9 + z](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L4)\n", - "first_markdown_element": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L5", - "id": "ede1e902fdfe70c5e7cf91f33df8540f1d15952d00f70a9a5dfb9edbcbe49cb6", + "description": "Variable 'C.f(uint256).i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: i = 10 (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#14)\n", + "markdown": "Variable '[C.f(uint256).i](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [i = 10](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L14)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8", + "id": "7a8e31247c347e66766a188c2b474c43e42d7ae3d848eee491b448b7f006ec45", "check": "variable-scope", "impact": "Low", "confidence": "High" @@ -1040,19 +1040,19 @@ "elements": [ { "type": "variable", - "name": "i", + "name": "x", "source_mapping": { - "start": 199, - "length": 11, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "start": 130, + "length": 10, + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ - 8 + 5 ], - "starting_column": 18, - "ending_column": 29 + "starting_column": 9, + "ending_column": 19 }, "type_specific_fields": { "parent": { @@ -1061,9 +1061,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -1093,9 +1093,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -1133,9 +1133,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -1165,9 +1165,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -1199,19 +1199,19 @@ }, { "type": "node", - "name": "i > 0", + "name": "y = x + 9 + z", "source_mapping": { - "start": 410, - "length": 5, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "start": 69, + "length": 13, + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ - 14 + 4 ], - "starting_column": 22, - "ending_column": 27 + "starting_column": 9, + "ending_column": 22 }, "type_specific_fields": { "parent": { @@ -1220,9 +1220,9 @@ "source_mapping": { "start": 17, "length": 442, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 2, @@ -1252,9 +1252,9 @@ "source_mapping": { "start": 0, "length": 461, - "filename_relative": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol", + "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", "is_dependency": false, "lines": [ 1, @@ -1287,10 +1287,10 @@ } } ], - "description": "Variable 'C.f(uint256).i (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: i > 0 (tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#14)\n", - "markdown": "Variable '[C.f(uint256).i](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [i > 0](tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L14)\n", - "first_markdown_element": "tests/detectors/variable-scope/0.4.25/predeclaration_usage_local.sol#L8", - "id": "ffb778e86e0b11beed38687c3abf9ffd0de948ec4ccc0109a78954741220de9e", + "description": "Variable 'C.f(uint256).x (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#5)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: y = x + 9 + z (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#4)\n", + "markdown": "Variable '[C.f(uint256).x](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L5)' in [C.f(uint256)](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [y = x + 9 + z](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L4)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L5", + "id": "94c4c9c10924861806ab710b2985af6bf804e7a4be0e53e9faebe25b48d94c12", "check": "variable-scope", "impact": "Low", "confidence": "High" diff --git a/tests/detectors/void-cst/0.4.25/void-cst.sol b/tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol similarity index 100% rename from tests/detectors/void-cst/0.4.25/void-cst.sol rename to tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol diff --git a/tests/detectors/void-cst/0.4.25/void-cst.sol.0.4.25.VoidConstructor.json b/tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol.0.4.25.VoidConstructor.json similarity index 75% rename from tests/detectors/void-cst/0.4.25/void-cst.sol.0.4.25.VoidConstructor.json rename to tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol.0.4.25.VoidConstructor.json index 13de066a6..d1a086fb3 100644 --- a/tests/detectors/void-cst/0.4.25/void-cst.sol.0.4.25.VoidConstructor.json +++ b/tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol.0.4.25.VoidConstructor.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 41, "length": 32, - "filename_relative": "tests/detectors/void-cst/0.4.25/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.4.25/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", "is_dependency": false, "lines": [ 10, @@ -27,9 +27,9 @@ "source_mapping": { "start": 19, "length": 57, - "filename_relative": "tests/detectors/void-cst/0.4.25/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.4.25/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", "is_dependency": false, "lines": [ 8, @@ -53,9 +53,9 @@ "source_mapping": { "start": 62, "length": 3, - "filename_relative": "tests/detectors/void-cst/0.4.25/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.4.25/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", "is_dependency": false, "lines": [ 10 @@ -70,9 +70,9 @@ "source_mapping": { "start": 41, "length": 32, - "filename_relative": "tests/detectors/void-cst/0.4.25/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.4.25/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", "is_dependency": false, "lines": [ 10, @@ -89,9 +89,9 @@ "source_mapping": { "start": 19, "length": 57, - "filename_relative": "tests/detectors/void-cst/0.4.25/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.4.25/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", "is_dependency": false, "lines": [ 8, @@ -112,10 +112,10 @@ } } ], - "description": "Void constructor called in D.constructor() (tests/detectors/void-cst/0.4.25/void-cst.sol#10-12):\n\t- C() (tests/detectors/void-cst/0.4.25/void-cst.sol#10)\n", - "markdown": "Void constructor called in [D.constructor()](tests/detectors/void-cst/0.4.25/void-cst.sol#L10-L12):\n\t- [C()](tests/detectors/void-cst/0.4.25/void-cst.sol#L10)\n", - "first_markdown_element": "tests/detectors/void-cst/0.4.25/void-cst.sol#L10-L12", - "id": "7681f77ce859599a0a88c8ba4dc60b6d55c064eca36867236bb157cbf2b65392", + "description": "Void constructor called in D.constructor() (tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol#10-12):\n\t- C() (tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol#10)\n", + "markdown": "Void constructor called in [D.constructor()](tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol#L10-L12):\n\t- [C()](tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol#L10-L12", + "id": "55ac96fcef936e541b9795169e91e30db40ef05b05579e409099c7c216e50a1e", "check": "void-cst", "impact": "Low", "confidence": "High" diff --git a/tests/detectors/void-cst/0.5.16/void-cst.sol b/tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol similarity index 100% rename from tests/detectors/void-cst/0.5.16/void-cst.sol rename to tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol diff --git a/tests/detectors/void-cst/0.5.16/void-cst.sol.0.5.16.VoidConstructor.json b/tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol.0.5.16.VoidConstructor.json similarity index 75% rename from tests/detectors/void-cst/0.5.16/void-cst.sol.0.5.16.VoidConstructor.json rename to tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol.0.5.16.VoidConstructor.json index dc1469f8d..7134909b6 100644 --- a/tests/detectors/void-cst/0.5.16/void-cst.sol.0.5.16.VoidConstructor.json +++ b/tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol.0.5.16.VoidConstructor.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 41, "length": 32, - "filename_relative": "tests/detectors/void-cst/0.5.16/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.5.16/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", "is_dependency": false, "lines": [ 10, @@ -27,9 +27,9 @@ "source_mapping": { "start": 19, "length": 57, - "filename_relative": "tests/detectors/void-cst/0.5.16/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.5.16/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", "is_dependency": false, "lines": [ 8, @@ -53,9 +53,9 @@ "source_mapping": { "start": 62, "length": 3, - "filename_relative": "tests/detectors/void-cst/0.5.16/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.5.16/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", "is_dependency": false, "lines": [ 10 @@ -70,9 +70,9 @@ "source_mapping": { "start": 41, "length": 32, - "filename_relative": "tests/detectors/void-cst/0.5.16/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.5.16/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", "is_dependency": false, "lines": [ 10, @@ -89,9 +89,9 @@ "source_mapping": { "start": 19, "length": 57, - "filename_relative": "tests/detectors/void-cst/0.5.16/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.5.16/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", "is_dependency": false, "lines": [ 8, @@ -112,10 +112,10 @@ } } ], - "description": "Void constructor called in D.constructor() (tests/detectors/void-cst/0.5.16/void-cst.sol#10-12):\n\t- C() (tests/detectors/void-cst/0.5.16/void-cst.sol#10)\n", - "markdown": "Void constructor called in [D.constructor()](tests/detectors/void-cst/0.5.16/void-cst.sol#L10-L12):\n\t- [C()](tests/detectors/void-cst/0.5.16/void-cst.sol#L10)\n", - "first_markdown_element": "tests/detectors/void-cst/0.5.16/void-cst.sol#L10-L12", - "id": "205eb5189a286fb251c8bfdf19fdd45acfab353670b5af81be434e43fbf1259f", + "description": "Void constructor called in D.constructor() (tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol#10-12):\n\t- C() (tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol#10)\n", + "markdown": "Void constructor called in [D.constructor()](tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol#L10-L12):\n\t- [C()](tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol#L10-L12", + "id": "cc95457850d185b1d1b294987dcfbf4d46368435b7b739884040b6e9beff545d", "check": "void-cst", "impact": "Low", "confidence": "High" diff --git a/tests/detectors/void-cst/0.6.11/void-cst.sol b/tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol similarity index 100% rename from tests/detectors/void-cst/0.6.11/void-cst.sol rename to tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol diff --git a/tests/detectors/void-cst/0.6.11/void-cst.sol.0.6.11.VoidConstructor.json b/tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol.0.6.11.VoidConstructor.json similarity index 75% rename from tests/detectors/void-cst/0.6.11/void-cst.sol.0.6.11.VoidConstructor.json rename to tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol.0.6.11.VoidConstructor.json index 11a50cee1..5504c2332 100644 --- a/tests/detectors/void-cst/0.6.11/void-cst.sol.0.6.11.VoidConstructor.json +++ b/tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol.0.6.11.VoidConstructor.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 41, "length": 32, - "filename_relative": "tests/detectors/void-cst/0.6.11/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.6.11/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", "is_dependency": false, "lines": [ 10, @@ -27,9 +27,9 @@ "source_mapping": { "start": 19, "length": 57, - "filename_relative": "tests/detectors/void-cst/0.6.11/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.6.11/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", "is_dependency": false, "lines": [ 8, @@ -53,9 +53,9 @@ "source_mapping": { "start": 62, "length": 3, - "filename_relative": "tests/detectors/void-cst/0.6.11/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.6.11/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", "is_dependency": false, "lines": [ 10 @@ -70,9 +70,9 @@ "source_mapping": { "start": 41, "length": 32, - "filename_relative": "tests/detectors/void-cst/0.6.11/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.6.11/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", "is_dependency": false, "lines": [ 10, @@ -89,9 +89,9 @@ "source_mapping": { "start": 19, "length": 57, - "filename_relative": "tests/detectors/void-cst/0.6.11/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.6.11/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", "is_dependency": false, "lines": [ 8, @@ -112,10 +112,10 @@ } } ], - "description": "Void constructor called in D.constructor() (tests/detectors/void-cst/0.6.11/void-cst.sol#10-12):\n\t- C() (tests/detectors/void-cst/0.6.11/void-cst.sol#10)\n", - "markdown": "Void constructor called in [D.constructor()](tests/detectors/void-cst/0.6.11/void-cst.sol#L10-L12):\n\t- [C()](tests/detectors/void-cst/0.6.11/void-cst.sol#L10)\n", - "first_markdown_element": "tests/detectors/void-cst/0.6.11/void-cst.sol#L10-L12", - "id": "ad3ebdf765f3b6e552dc65d3fd2e92ec13535139316d1063cd76bb521b265bd7", + "description": "Void constructor called in D.constructor() (tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol#10-12):\n\t- C() (tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol#10)\n", + "markdown": "Void constructor called in [D.constructor()](tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol#L10-L12):\n\t- [C()](tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol#L10-L12", + "id": "73a68bb3efac669142fd13cd60fb44891b45e1a85791aefe5191e8c751b5469f", "check": "void-cst", "impact": "Low", "confidence": "High" diff --git a/tests/detectors/void-cst/0.7.6/void-cst.sol b/tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol similarity index 100% rename from tests/detectors/void-cst/0.7.6/void-cst.sol rename to tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol diff --git a/tests/detectors/void-cst/0.7.6/void-cst.sol.0.7.6.VoidConstructor.json b/tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol.0.7.6.VoidConstructor.json similarity index 75% rename from tests/detectors/void-cst/0.7.6/void-cst.sol.0.7.6.VoidConstructor.json rename to tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol.0.7.6.VoidConstructor.json index 88ab6632c..0096a9256 100644 --- a/tests/detectors/void-cst/0.7.6/void-cst.sol.0.7.6.VoidConstructor.json +++ b/tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol.0.7.6.VoidConstructor.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 41, "length": 32, - "filename_relative": "tests/detectors/void-cst/0.7.6/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.7.6/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", "is_dependency": false, "lines": [ 10, @@ -27,9 +27,9 @@ "source_mapping": { "start": 19, "length": 57, - "filename_relative": "tests/detectors/void-cst/0.7.6/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.7.6/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", "is_dependency": false, "lines": [ 8, @@ -53,9 +53,9 @@ "source_mapping": { "start": 62, "length": 3, - "filename_relative": "tests/detectors/void-cst/0.7.6/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.7.6/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", "is_dependency": false, "lines": [ 10 @@ -70,9 +70,9 @@ "source_mapping": { "start": 41, "length": 32, - "filename_relative": "tests/detectors/void-cst/0.7.6/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.7.6/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", "is_dependency": false, "lines": [ 10, @@ -89,9 +89,9 @@ "source_mapping": { "start": 19, "length": 57, - "filename_relative": "tests/detectors/void-cst/0.7.6/void-cst.sol", + "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/void-cst/0.7.6/void-cst.sol", + "filename_short": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", "is_dependency": false, "lines": [ 8, @@ -112,10 +112,10 @@ } } ], - "description": "Void constructor called in D.constructor() (tests/detectors/void-cst/0.7.6/void-cst.sol#10-12):\n\t- C() (tests/detectors/void-cst/0.7.6/void-cst.sol#10)\n", - "markdown": "Void constructor called in [D.constructor()](tests/detectors/void-cst/0.7.6/void-cst.sol#L10-L12):\n\t- [C()](tests/detectors/void-cst/0.7.6/void-cst.sol#L10)\n", - "first_markdown_element": "tests/detectors/void-cst/0.7.6/void-cst.sol#L10-L12", - "id": "deffcf2d974f53d4993c8cb12ada6abdb84e44ceea422e2261068e4fb2e663ac", + "description": "Void constructor called in D.constructor() (tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol#10-12):\n\t- C() (tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol#10)\n", + "markdown": "Void constructor called in [D.constructor()](tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol#L10-L12):\n\t- [C()](tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol#L10)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol#L10-L12", + "id": "7ae5f294c43db6bc7621197cb8a85bfa9f2fc2d96c5534b80f5e3de95ffa6706", "check": "void-cst", "impact": "Low", "confidence": "High" diff --git a/tests/detectors/weak-prng/0.4.25/bad_prng.sol b/tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol similarity index 100% rename from tests/detectors/weak-prng/0.4.25/bad_prng.sol rename to tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol diff --git a/tests/detectors/weak-prng/0.4.25/bad_prng.sol.0.4.25.BadPRNG.json b/tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol.0.4.25.BadPRNG.json similarity index 79% rename from tests/detectors/weak-prng/0.4.25/bad_prng.sol.0.4.25.BadPRNG.json rename to tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol.0.4.25.BadPRNG.json index e3ddf201a..0c508dbc9 100644 --- a/tests/detectors/weak-prng/0.4.25/bad_prng.sol.0.4.25.BadPRNG.json +++ b/tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol.0.4.25.BadPRNG.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad1", "source_mapping": { - "start": 184, - "length": 78, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "start": 122, + "length": 56, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ - 12, - 13, - 14 + 8, + 9, + 10 ], "starting_column": 5, "ending_column": 6 @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -64,40 +64,40 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad1()" } }, { "type": "node", - "name": "i = uint256(blockhash(uint256)(10000)) % 10", + "name": "i = now % 10", "source_mapping": { - "start": 216, - "length": 39, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "start": 154, + "length": 17, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ - 13 + 9 ], "starting_column": 7, - "ending_column": 46 + "ending_column": 24 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad1", "source_mapping": { - "start": 184, - "length": 78, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "start": 122, + "length": 56, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ - 12, - 13, - 14 + 8, + 9, + 10 ], "starting_column": 5, "ending_column": 6 @@ -109,9 +109,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -146,16 +146,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad1()" } } } } ], - "description": "BadPRNG.bad2() (tests/detectors/weak-prng/0.4.25/bad_prng.sol#12-14) uses a weak PRNG: \"i = uint256(blockhash(uint256)(10000)) % 10 (tests/detectors/weak-prng/0.4.25/bad_prng.sol#13)\" \n", - "markdown": "[BadPRNG.bad2()](tests/detectors/weak-prng/0.4.25/bad_prng.sol#L12-L14) uses a weak PRNG: \"[i = uint256(blockhash(uint256)(10000)) % 10](tests/detectors/weak-prng/0.4.25/bad_prng.sol#L13)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.4.25/bad_prng.sol#L12-L14", - "id": "4ac936f85dc1e903d3d6688aaea992d3a5b124bb90eb73eb372dffcc60ccd9dc", + "description": "BadPRNG.bad1() (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#8-10) uses a weak PRNG: \"i = now % 10 (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#9)\" \n", + "markdown": "[BadPRNG.bad1()](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L8-L10) uses a weak PRNG: \"[i = now % 10](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L9)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L8-L10", + "id": "143f5f0813a8024fe87180dc965da233f389d77a41bad7b937acde2f5555e13e", "check": "weak-prng", "impact": "High", "confidence": "Medium" @@ -164,18 +164,18 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad2", "source_mapping": { - "start": 363, - "length": 58, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "start": 184, + "length": 78, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22 + 12, + 13, + 14 ], "starting_column": 5, "ending_column": 6 @@ -187,9 +187,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -224,40 +224,40 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad2()" } }, { "type": "node", - "name": "i = foo() % 10", + "name": "i = uint256(blockhash(uint256)(10000)) % 10", "source_mapping": { - "start": 395, - "length": 19, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "start": 216, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ - 21 + 13 ], "starting_column": 7, - "ending_column": 26 + "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad2", "source_mapping": { - "start": 363, - "length": 58, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "start": 184, + "length": 78, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22 + 12, + 13, + 14 ], "starting_column": 5, "ending_column": 6 @@ -269,9 +269,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -306,16 +306,16 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad2()" } } } } ], - "description": "BadPRNG.bad3() (tests/detectors/weak-prng/0.4.25/bad_prng.sol#20-22) uses a weak PRNG: \"i = foo() % 10 (tests/detectors/weak-prng/0.4.25/bad_prng.sol#21)\" \n", - "markdown": "[BadPRNG.bad3()](tests/detectors/weak-prng/0.4.25/bad_prng.sol#L20-L22) uses a weak PRNG: \"[i = foo() % 10](tests/detectors/weak-prng/0.4.25/bad_prng.sol#L21)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.4.25/bad_prng.sol#L20-L22", - "id": "9ea8ea8faa26193b33dc2b3be5a338350aa82a076a4b5ec387ad8f5c15b7181f", + "description": "BadPRNG.bad2() (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#12-14) uses a weak PRNG: \"i = uint256(blockhash(uint256)(10000)) % 10 (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#13)\" \n", + "markdown": "[BadPRNG.bad2()](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L12-L14) uses a weak PRNG: \"[i = uint256(blockhash(uint256)(10000)) % 10](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L13)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L12-L14", + "id": "a48a54481e1fc0db4bca891f0c3f22b29bf26ced0d0b8431d888967c3263b264", "check": "weak-prng", "impact": "High", "confidence": "Medium" @@ -324,18 +324,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad3", "source_mapping": { - "start": 122, - "length": 56, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "start": 363, + "length": 58, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10 + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -347,9 +347,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -384,40 +384,40 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad3()" } }, { "type": "node", - "name": "i = now % 10", + "name": "i = foo() % 10", "source_mapping": { - "start": 154, - "length": 17, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "start": 395, + "length": 19, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ - 9 + 21 ], "starting_column": 7, - "ending_column": 24 + "ending_column": 26 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad3", "source_mapping": { - "start": 122, - "length": 56, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "start": 363, + "length": 58, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10 + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -429,9 +429,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -466,16 +466,16 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad3()" } } } } ], - "description": "BadPRNG.bad1() (tests/detectors/weak-prng/0.4.25/bad_prng.sol#8-10) uses a weak PRNG: \"i = now % 10 (tests/detectors/weak-prng/0.4.25/bad_prng.sol#9)\" \n", - "markdown": "[BadPRNG.bad1()](tests/detectors/weak-prng/0.4.25/bad_prng.sol#L8-L10) uses a weak PRNG: \"[i = now % 10](tests/detectors/weak-prng/0.4.25/bad_prng.sol#L9)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.4.25/bad_prng.sol#L8-L10", - "id": "b6c45323a90c31dea54db817de9a3d13e40431227ca6240465e43183004f6541", + "description": "BadPRNG.bad3() (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#20-22) uses a weak PRNG: \"i = foo() % 10 (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#21)\" \n", + "markdown": "[BadPRNG.bad3()](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L20-L22) uses a weak PRNG: \"[i = foo() % 10](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L21)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L20-L22", + "id": "cac2fa07af6b5b7ea3532b6c1b1e1d260037c40b731fcc45a75f206d6a648652", "check": "weak-prng", "impact": "High", "confidence": "Medium" @@ -488,9 +488,9 @@ "source_mapping": { "start": 45, "length": 68, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ 4, @@ -507,9 +507,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -553,9 +553,9 @@ "source_mapping": { "start": 77, "length": 29, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ 5 @@ -570,9 +570,9 @@ "source_mapping": { "start": 45, "length": 68, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ 4, @@ -589,9 +589,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.4.25/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -632,10 +632,10 @@ } } ], - "description": "BadPRNG.bad0() (tests/detectors/weak-prng/0.4.25/bad_prng.sol#4-6) uses a weak PRNG: \"i = block.timestamp % 10 (tests/detectors/weak-prng/0.4.25/bad_prng.sol#5)\" \n", - "markdown": "[BadPRNG.bad0()](tests/detectors/weak-prng/0.4.25/bad_prng.sol#L4-L6) uses a weak PRNG: \"[i = block.timestamp % 10](tests/detectors/weak-prng/0.4.25/bad_prng.sol#L5)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.4.25/bad_prng.sol#L4-L6", - "id": "fc717c512384a74aab058df35c032bca15e276f4e03446ad7b52f33acac1a556", + "description": "BadPRNG.bad0() (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#4-6) uses a weak PRNG: \"i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#5)\" \n", + "markdown": "[BadPRNG.bad0()](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L4-L6) uses a weak PRNG: \"[i = block.timestamp % 10](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L5)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L4-L6", + "id": "d5ccd15b3c621af3f73362f44b9d4d23def15db653ce33b361a644434be9602c", "check": "weak-prng", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/weak-prng/0.5.16/bad_prng.sol b/tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol similarity index 100% rename from tests/detectors/weak-prng/0.5.16/bad_prng.sol rename to tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol diff --git a/tests/detectors/weak-prng/0.5.16/bad_prng.sol.0.5.16.BadPRNG.json b/tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol.0.5.16.BadPRNG.json similarity index 79% rename from tests/detectors/weak-prng/0.5.16/bad_prng.sol.0.5.16.BadPRNG.json rename to tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol.0.5.16.BadPRNG.json index caaa667a2..e999af5f9 100644 --- a/tests/detectors/weak-prng/0.5.16/bad_prng.sol.0.5.16.BadPRNG.json +++ b/tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol.0.5.16.BadPRNG.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 363, - "length": 58, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "start": 122, + "length": 56, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22 + 8, + 9, + 10 ], "starting_column": 5, "ending_column": 6 @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -64,40 +64,40 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad1()" } }, { "type": "node", - "name": "i = foo() % 10", + "name": "i = now % 10", "source_mapping": { - "start": 395, - "length": 19, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "start": 154, + "length": 17, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ - 21 + 9 ], "starting_column": 7, - "ending_column": 26 + "ending_column": 24 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 363, - "length": 58, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "start": 122, + "length": 56, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22 + 8, + 9, + 10 ], "starting_column": 5, "ending_column": 6 @@ -109,9 +109,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -146,16 +146,16 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad1()" } } } } ], - "description": "BadPRNG.bad3() (tests/detectors/weak-prng/0.5.16/bad_prng.sol#20-22) uses a weak PRNG: \"i = foo() % 10 (tests/detectors/weak-prng/0.5.16/bad_prng.sol#21)\" \n", - "markdown": "[BadPRNG.bad3()](tests/detectors/weak-prng/0.5.16/bad_prng.sol#L20-L22) uses a weak PRNG: \"[i = foo() % 10](tests/detectors/weak-prng/0.5.16/bad_prng.sol#L21)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.5.16/bad_prng.sol#L20-L22", - "id": "342f1496b7a91c084d108fd76054672be5ac3a1a5481f907b93d3c72e32f70dc", + "description": "BadPRNG.bad1() (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#8-10) uses a weak PRNG: \"i = now % 10 (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#9)\" \n", + "markdown": "[BadPRNG.bad1()](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L8-L10) uses a weak PRNG: \"[i = now % 10](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L9)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L8-L10", + "id": "3c7be6367f5be15ead00dfbcfc2022fdb73817e5f935c6015ba4fc807b505f69", "check": "weak-prng", "impact": "High", "confidence": "Medium" @@ -164,18 +164,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad0", "source_mapping": { - "start": 184, - "length": 78, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "start": 45, + "length": 68, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ - 12, - 13, - 14 + 4, + 5, + 6 ], "starting_column": 5, "ending_column": 6 @@ -187,9 +187,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -224,40 +224,40 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad0()" } }, { "type": "node", - "name": "i = uint256(blockhash(uint256)(10000)) % 10", + "name": "i = block.timestamp % 10", "source_mapping": { - "start": 216, - "length": 39, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "start": 77, + "length": 29, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ - 13 + 5 ], "starting_column": 7, - "ending_column": 46 + "ending_column": 36 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad0", "source_mapping": { - "start": 184, - "length": 78, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "start": 45, + "length": 68, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ - 12, - 13, - 14 + 4, + 5, + 6 ], "starting_column": 5, "ending_column": 6 @@ -269,9 +269,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -306,16 +306,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad0()" } } } } ], - "description": "BadPRNG.bad2() (tests/detectors/weak-prng/0.5.16/bad_prng.sol#12-14) uses a weak PRNG: \"i = uint256(blockhash(uint256)(10000)) % 10 (tests/detectors/weak-prng/0.5.16/bad_prng.sol#13)\" \n", - "markdown": "[BadPRNG.bad2()](tests/detectors/weak-prng/0.5.16/bad_prng.sol#L12-L14) uses a weak PRNG: \"[i = uint256(blockhash(uint256)(10000)) % 10](tests/detectors/weak-prng/0.5.16/bad_prng.sol#L13)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.5.16/bad_prng.sol#L12-L14", - "id": "4769d2b25e78345ad05fa046a989f5f5545739c20e8c2b93c2968cdca69a5501", + "description": "BadPRNG.bad0() (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#4-6) uses a weak PRNG: \"i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#5)\" \n", + "markdown": "[BadPRNG.bad0()](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L4-L6) uses a weak PRNG: \"[i = block.timestamp % 10](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L5)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L4-L6", + "id": "be9b456f0a8ae7cb5bbc52eae709817707238cc2316533b72ac707cb3228316f", "check": "weak-prng", "impact": "High", "confidence": "Medium" @@ -324,18 +324,18 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad2", "source_mapping": { - "start": 45, - "length": 68, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "start": 184, + "length": 78, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ - 4, - 5, - 6 + 12, + 13, + 14 ], "starting_column": 5, "ending_column": 6 @@ -347,9 +347,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -384,40 +384,40 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad2()" } }, { "type": "node", - "name": "i = block.timestamp % 10", + "name": "i = uint256(blockhash(uint256)(10000)) % 10", "source_mapping": { - "start": 77, - "length": 29, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "start": 216, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ - 5 + 13 ], "starting_column": 7, - "ending_column": 36 + "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad2", "source_mapping": { - "start": 45, - "length": 68, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "start": 184, + "length": 78, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ - 4, - 5, - 6 + 12, + 13, + 14 ], "starting_column": 5, "ending_column": 6 @@ -429,9 +429,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -466,16 +466,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad2()" } } } } ], - "description": "BadPRNG.bad0() (tests/detectors/weak-prng/0.5.16/bad_prng.sol#4-6) uses a weak PRNG: \"i = block.timestamp % 10 (tests/detectors/weak-prng/0.5.16/bad_prng.sol#5)\" \n", - "markdown": "[BadPRNG.bad0()](tests/detectors/weak-prng/0.5.16/bad_prng.sol#L4-L6) uses a weak PRNG: \"[i = block.timestamp % 10](tests/detectors/weak-prng/0.5.16/bad_prng.sol#L5)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.5.16/bad_prng.sol#L4-L6", - "id": "5bb9fd5cdaccfeb6303fb8ea676c6aed0164ba2ce3fc8b5c2778cd280afe61b0", + "description": "BadPRNG.bad2() (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#12-14) uses a weak PRNG: \"i = uint256(blockhash(uint256)(10000)) % 10 (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#13)\" \n", + "markdown": "[BadPRNG.bad2()](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L12-L14) uses a weak PRNG: \"[i = uint256(blockhash(uint256)(10000)) % 10](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L13)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L12-L14", + "id": "c158977d5022ad3d99288118f7a6f52b52bb33f9977554bd4d0818ff51c9e9c2", "check": "weak-prng", "impact": "High", "confidence": "Medium" @@ -484,18 +484,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad3", "source_mapping": { - "start": 122, - "length": 56, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "start": 363, + "length": 58, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10 + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -507,9 +507,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -544,40 +544,40 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad3()" } }, { "type": "node", - "name": "i = now % 10", + "name": "i = foo() % 10", "source_mapping": { - "start": 154, - "length": 17, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "start": 395, + "length": 19, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ - 9 + 21 ], "starting_column": 7, - "ending_column": 24 + "ending_column": 26 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad3", "source_mapping": { - "start": 122, - "length": 56, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "start": 363, + "length": 58, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10 + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -589,9 +589,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.5.16/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -626,16 +626,16 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad3()" } } } } ], - "description": "BadPRNG.bad1() (tests/detectors/weak-prng/0.5.16/bad_prng.sol#8-10) uses a weak PRNG: \"i = now % 10 (tests/detectors/weak-prng/0.5.16/bad_prng.sol#9)\" \n", - "markdown": "[BadPRNG.bad1()](tests/detectors/weak-prng/0.5.16/bad_prng.sol#L8-L10) uses a weak PRNG: \"[i = now % 10](tests/detectors/weak-prng/0.5.16/bad_prng.sol#L9)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.5.16/bad_prng.sol#L8-L10", - "id": "963866d884f65c4552ae10288cc1f92de1050f5f6254d4d2df132c7fbb7ce773", + "description": "BadPRNG.bad3() (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#20-22) uses a weak PRNG: \"i = foo() % 10 (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#21)\" \n", + "markdown": "[BadPRNG.bad3()](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L20-L22) uses a weak PRNG: \"[i = foo() % 10](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L21)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L20-L22", + "id": "fd288ed50722fc401dd1618df6351f671367dfd03eb5640ebf32022c2c7616a6", "check": "weak-prng", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/weak-prng/0.6.11/bad_prng.sol b/tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol similarity index 100% rename from tests/detectors/weak-prng/0.6.11/bad_prng.sol rename to tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol diff --git a/tests/detectors/weak-prng/0.6.11/bad_prng.sol.0.6.11.BadPRNG.json b/tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol.0.6.11.BadPRNG.json similarity index 79% rename from tests/detectors/weak-prng/0.6.11/bad_prng.sol.0.6.11.BadPRNG.json rename to tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol.0.6.11.BadPRNG.json index 72a930565..8c7a1f4ca 100644 --- a/tests/detectors/weak-prng/0.6.11/bad_prng.sol.0.6.11.BadPRNG.json +++ b/tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol.0.6.11.BadPRNG.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 363, - "length": 58, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "start": 122, + "length": 56, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22 + 8, + 9, + 10 ], "starting_column": 5, "ending_column": 6 @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -64,40 +64,40 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad1()" } }, { "type": "node", - "name": "i = foo() % 10", + "name": "i = now % 10", "source_mapping": { - "start": 395, - "length": 19, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "start": 154, + "length": 17, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ - 21 + 9 ], "starting_column": 7, - "ending_column": 26 + "ending_column": 24 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 363, - "length": 58, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "start": 122, + "length": 56, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22 + 8, + 9, + 10 ], "starting_column": 5, "ending_column": 6 @@ -109,9 +109,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -146,16 +146,16 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad1()" } } } } ], - "description": "BadPRNG.bad3() (tests/detectors/weak-prng/0.6.11/bad_prng.sol#20-22) uses a weak PRNG: \"i = foo() % 10 (tests/detectors/weak-prng/0.6.11/bad_prng.sol#21)\" \n", - "markdown": "[BadPRNG.bad3()](tests/detectors/weak-prng/0.6.11/bad_prng.sol#L20-L22) uses a weak PRNG: \"[i = foo() % 10](tests/detectors/weak-prng/0.6.11/bad_prng.sol#L21)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.6.11/bad_prng.sol#L20-L22", - "id": "211bbc7b73c90c6ae03f3e73c2b306c74699381229a4af6d4687891b024f2189", + "description": "BadPRNG.bad1() (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#8-10) uses a weak PRNG: \"i = now % 10 (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#9)\" \n", + "markdown": "[BadPRNG.bad1()](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L8-L10) uses a weak PRNG: \"[i = now % 10](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L9)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L8-L10", + "id": "00229cc63ae06a1fdb0d8046a4e7c0ade397b309659a2b597399a3663985b25a", "check": "weak-prng", "impact": "High", "confidence": "Medium" @@ -164,18 +164,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 122, - "length": 56, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "start": 45, + "length": 68, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10 + 4, + 5, + 6 ], "starting_column": 5, "ending_column": 6 @@ -187,9 +187,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -224,40 +224,40 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad0()" } }, { "type": "node", - "name": "i = now % 10", + "name": "i = block.timestamp % 10", "source_mapping": { - "start": 154, - "length": 17, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "start": 77, + "length": 29, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ - 9 + 5 ], "starting_column": 7, - "ending_column": 24 + "ending_column": 36 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 122, - "length": 56, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "start": 45, + "length": 68, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10 + 4, + 5, + 6 ], "starting_column": 5, "ending_column": 6 @@ -269,9 +269,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -306,16 +306,16 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad0()" } } } } ], - "description": "BadPRNG.bad1() (tests/detectors/weak-prng/0.6.11/bad_prng.sol#8-10) uses a weak PRNG: \"i = now % 10 (tests/detectors/weak-prng/0.6.11/bad_prng.sol#9)\" \n", - "markdown": "[BadPRNG.bad1()](tests/detectors/weak-prng/0.6.11/bad_prng.sol#L8-L10) uses a weak PRNG: \"[i = now % 10](tests/detectors/weak-prng/0.6.11/bad_prng.sol#L9)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.6.11/bad_prng.sol#L8-L10", - "id": "4651cdacc944504d793e3c0dfa85684df0c31ccd1435fb1bdf7f952a5c743aac", + "description": "BadPRNG.bad0() (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#4-6) uses a weak PRNG: \"i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#5)\" \n", + "markdown": "[BadPRNG.bad0()](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L4-L6) uses a weak PRNG: \"[i = block.timestamp % 10](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L5)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L4-L6", + "id": "075aa1de6fc21238aeeaffdfbae1b4361021f8a6c476b422e40a4cabfc337ae4", "check": "weak-prng", "impact": "High", "confidence": "Medium" @@ -328,9 +328,9 @@ "source_mapping": { "start": 184, "length": 78, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ 12, @@ -347,9 +347,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -393,9 +393,9 @@ "source_mapping": { "start": 216, "length": 39, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ 13 @@ -410,9 +410,9 @@ "source_mapping": { "start": 184, "length": 78, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ 12, @@ -429,9 +429,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -472,10 +472,10 @@ } } ], - "description": "BadPRNG.bad2() (tests/detectors/weak-prng/0.6.11/bad_prng.sol#12-14) uses a weak PRNG: \"i = uint256(blockhash(uint256)(10000)) % 10 (tests/detectors/weak-prng/0.6.11/bad_prng.sol#13)\" \n", - "markdown": "[BadPRNG.bad2()](tests/detectors/weak-prng/0.6.11/bad_prng.sol#L12-L14) uses a weak PRNG: \"[i = uint256(blockhash(uint256)(10000)) % 10](tests/detectors/weak-prng/0.6.11/bad_prng.sol#L13)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.6.11/bad_prng.sol#L12-L14", - "id": "95c977967e6bb17afe7c6c10389750fcd98a2f0bf7fa9beb08d3e7214e2f63d7", + "description": "BadPRNG.bad2() (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#12-14) uses a weak PRNG: \"i = uint256(blockhash(uint256)(10000)) % 10 (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#13)\" \n", + "markdown": "[BadPRNG.bad2()](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L12-L14) uses a weak PRNG: \"[i = uint256(blockhash(uint256)(10000)) % 10](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L13)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L12-L14", + "id": "0f2caf1275a0fff75dc984176de06ea8ffade337f7d54176a7902cc77fad2333", "check": "weak-prng", "impact": "High", "confidence": "Medium" @@ -484,18 +484,18 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad3", "source_mapping": { - "start": 45, - "length": 68, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "start": 363, + "length": 58, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ - 4, - 5, - 6 + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -507,9 +507,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -544,40 +544,40 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad3()" } }, { "type": "node", - "name": "i = block.timestamp % 10", + "name": "i = foo() % 10", "source_mapping": { - "start": 77, - "length": 29, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "start": 395, + "length": 19, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ - 5 + 21 ], "starting_column": 7, - "ending_column": 36 + "ending_column": 26 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad3", "source_mapping": { - "start": 45, - "length": 68, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "start": 363, + "length": 58, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ - 4, - 5, - 6 + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -589,9 +589,9 @@ "source_mapping": { "start": 0, "length": 499, - "filename_relative": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.6.11/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -626,16 +626,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad3()" } } } } ], - "description": "BadPRNG.bad0() (tests/detectors/weak-prng/0.6.11/bad_prng.sol#4-6) uses a weak PRNG: \"i = block.timestamp % 10 (tests/detectors/weak-prng/0.6.11/bad_prng.sol#5)\" \n", - "markdown": "[BadPRNG.bad0()](tests/detectors/weak-prng/0.6.11/bad_prng.sol#L4-L6) uses a weak PRNG: \"[i = block.timestamp % 10](tests/detectors/weak-prng/0.6.11/bad_prng.sol#L5)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.6.11/bad_prng.sol#L4-L6", - "id": "bfdb804ad9a58c4a694182e0f4dff561ffe37a0680f850763136ac57af57cea6", + "description": "BadPRNG.bad3() (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#20-22) uses a weak PRNG: \"i = foo() % 10 (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#21)\" \n", + "markdown": "[BadPRNG.bad3()](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L20-L22) uses a weak PRNG: \"[i = foo() % 10](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L21)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L20-L22", + "id": "5af8366c76386b6e2acdad51dfcbbd64226e53e7b4decab2acd11a9ce5b4ba3c", "check": "weak-prng", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/weak-prng/0.7.6/bad_prng.sol b/tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol similarity index 100% rename from tests/detectors/weak-prng/0.7.6/bad_prng.sol rename to tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol diff --git a/tests/detectors/weak-prng/0.7.6/bad_prng.sol.0.7.6.BadPRNG.json b/tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol.0.7.6.BadPRNG.json similarity index 79% rename from tests/detectors/weak-prng/0.7.6/bad_prng.sol.0.7.6.BadPRNG.json rename to tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol.0.7.6.BadPRNG.json index d3b86aa49..3b85badb2 100644 --- a/tests/detectors/weak-prng/0.7.6/bad_prng.sol.0.7.6.BadPRNG.json +++ b/tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol.0.7.6.BadPRNG.json @@ -4,18 +4,18 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad3", "source_mapping": { - "start": 196, - "length": 78, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "start": 375, + "length": 58, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ - 12, - 13, - 14 + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -27,9 +27,9 @@ "source_mapping": { "start": 0, "length": 511, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -64,40 +64,40 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad3()" } }, { "type": "node", - "name": "i = uint256(blockhash(uint256)(10000)) % 10", + "name": "i = foo() % 10", "source_mapping": { - "start": 228, - "length": 39, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "start": 407, + "length": 19, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ - 13 + 21 ], "starting_column": 7, - "ending_column": 46 + "ending_column": 26 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad3", "source_mapping": { - "start": 196, - "length": 78, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "start": 375, + "length": 58, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ - 12, - 13, - 14 + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -109,9 +109,9 @@ "source_mapping": { "start": 0, "length": 511, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -146,16 +146,16 @@ "ending_column": 2 } }, - "signature": "bad2()" + "signature": "bad3()" } } } } ], - "description": "BadPRNG.bad2() (tests/detectors/weak-prng/0.7.6/bad_prng.sol#12-14) uses a weak PRNG: \"i = uint256(blockhash(uint256)(10000)) % 10 (tests/detectors/weak-prng/0.7.6/bad_prng.sol#13)\" \n", - "markdown": "[BadPRNG.bad2()](tests/detectors/weak-prng/0.7.6/bad_prng.sol#L12-L14) uses a weak PRNG: \"[i = uint256(blockhash(uint256)(10000)) % 10](tests/detectors/weak-prng/0.7.6/bad_prng.sol#L13)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.7.6/bad_prng.sol#L12-L14", - "id": "0afae786715bc7bc677a2525aec172999533a2bc1ee62d9b974c9f13a45755c6", + "description": "BadPRNG.bad3() (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#20-22) uses a weak PRNG: \"i = foo() % 10 (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#21)\" \n", + "markdown": "[BadPRNG.bad3()](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L20-L22) uses a weak PRNG: \"[i = foo() % 10](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L21)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L20-L22", + "id": "07d06861c819615e4db8b0e5dad920b32ffd6264b7e167fbeb3c832d26970b33", "check": "weak-prng", "impact": "High", "confidence": "Medium" @@ -164,18 +164,18 @@ "elements": [ { "type": "function", - "name": "bad0", + "name": "bad2", "source_mapping": { - "start": 45, - "length": 68, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "start": 196, + "length": 78, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ - 4, - 5, - 6 + 12, + 13, + 14 ], "starting_column": 5, "ending_column": 6 @@ -187,9 +187,9 @@ "source_mapping": { "start": 0, "length": 511, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -224,40 +224,40 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad2()" } }, { "type": "node", - "name": "i = block.timestamp % 10", + "name": "i = uint256(blockhash(uint256)(10000)) % 10", "source_mapping": { - "start": 77, - "length": 29, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "start": 228, + "length": 39, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ - 5 + 13 ], "starting_column": 7, - "ending_column": 36 + "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad0", + "name": "bad2", "source_mapping": { - "start": 45, - "length": 68, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "start": 196, + "length": 78, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ - 4, - 5, - 6 + 12, + 13, + 14 ], "starting_column": 5, "ending_column": 6 @@ -269,9 +269,9 @@ "source_mapping": { "start": 0, "length": 511, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -306,16 +306,16 @@ "ending_column": 2 } }, - "signature": "bad0()" + "signature": "bad2()" } } } } ], - "description": "BadPRNG.bad0() (tests/detectors/weak-prng/0.7.6/bad_prng.sol#4-6) uses a weak PRNG: \"i = block.timestamp % 10 (tests/detectors/weak-prng/0.7.6/bad_prng.sol#5)\" \n", - "markdown": "[BadPRNG.bad0()](tests/detectors/weak-prng/0.7.6/bad_prng.sol#L4-L6) uses a weak PRNG: \"[i = block.timestamp % 10](tests/detectors/weak-prng/0.7.6/bad_prng.sol#L5)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.7.6/bad_prng.sol#L4-L6", - "id": "1699e708ab01560cde36ac92caaf0abd7c3de733431340f4719b1dfd3544a6ef", + "description": "BadPRNG.bad2() (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#12-14) uses a weak PRNG: \"i = uint256(blockhash(uint256)(10000)) % 10 (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#13)\" \n", + "markdown": "[BadPRNG.bad2()](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L12-L14) uses a weak PRNG: \"[i = uint256(blockhash(uint256)(10000)) % 10](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L13)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L12-L14", + "id": "235a90165fd614c1665cc0f21365b3be51c00c850e4023e6fb490073335e9799", "check": "weak-prng", "impact": "High", "confidence": "Medium" @@ -324,18 +324,18 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 375, - "length": 58, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "start": 122, + "length": 68, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22 + 8, + 9, + 10 ], "starting_column": 5, "ending_column": 6 @@ -347,9 +347,9 @@ "source_mapping": { "start": 0, "length": 511, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -384,40 +384,40 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad1()" } }, { "type": "node", - "name": "i = foo() % 10", + "name": "i = block.timestamp % 10", "source_mapping": { - "start": 407, - "length": 19, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "start": 154, + "length": 29, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ - 21 + 9 ], "starting_column": 7, - "ending_column": 26 + "ending_column": 36 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad1", "source_mapping": { - "start": 375, - "length": 58, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "start": 122, + "length": 68, + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22 + 8, + 9, + 10 ], "starting_column": 5, "ending_column": 6 @@ -429,9 +429,9 @@ "source_mapping": { "start": 0, "length": 511, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -466,16 +466,16 @@ "ending_column": 2 } }, - "signature": "bad3()" + "signature": "bad1()" } } } } ], - "description": "BadPRNG.bad3() (tests/detectors/weak-prng/0.7.6/bad_prng.sol#20-22) uses a weak PRNG: \"i = foo() % 10 (tests/detectors/weak-prng/0.7.6/bad_prng.sol#21)\" \n", - "markdown": "[BadPRNG.bad3()](tests/detectors/weak-prng/0.7.6/bad_prng.sol#L20-L22) uses a weak PRNG: \"[i = foo() % 10](tests/detectors/weak-prng/0.7.6/bad_prng.sol#L21)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.7.6/bad_prng.sol#L20-L22", - "id": "b3e0dbd29c5e74eaae470dcfe1ff523c67da580b1ae0c07559c02ee67d9d4c86", + "description": "BadPRNG.bad1() (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#8-10) uses a weak PRNG: \"i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#9)\" \n", + "markdown": "[BadPRNG.bad1()](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L8-L10) uses a weak PRNG: \"[i = block.timestamp % 10](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L9)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L8-L10", + "id": "5b78d3756b66561562fbf9c19a39c7083e422f1e0404a7635e01aed584636221", "check": "weak-prng", "impact": "High", "confidence": "Medium" @@ -484,18 +484,18 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 122, + "start": 45, "length": 68, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10 + 4, + 5, + 6 ], "starting_column": 5, "ending_column": 6 @@ -507,9 +507,9 @@ "source_mapping": { "start": 0, "length": 511, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -544,21 +544,21 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad0()" } }, { "type": "node", "name": "i = block.timestamp % 10", "source_mapping": { - "start": 154, + "start": 77, "length": 29, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ - 9 + 5 ], "starting_column": 7, "ending_column": 36 @@ -566,18 +566,18 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 122, + "start": 45, "length": 68, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ - 8, - 9, - 10 + 4, + 5, + 6 ], "starting_column": 5, "ending_column": 6 @@ -589,9 +589,9 @@ "source_mapping": { "start": 0, "length": 511, - "filename_relative": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/weak-prng/0.7.6/bad_prng.sol", + "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", "is_dependency": false, "lines": [ 1, @@ -626,16 +626,16 @@ "ending_column": 2 } }, - "signature": "bad1()" + "signature": "bad0()" } } } } ], - "description": "BadPRNG.bad1() (tests/detectors/weak-prng/0.7.6/bad_prng.sol#8-10) uses a weak PRNG: \"i = block.timestamp % 10 (tests/detectors/weak-prng/0.7.6/bad_prng.sol#9)\" \n", - "markdown": "[BadPRNG.bad1()](tests/detectors/weak-prng/0.7.6/bad_prng.sol#L8-L10) uses a weak PRNG: \"[i = block.timestamp % 10](tests/detectors/weak-prng/0.7.6/bad_prng.sol#L9)\" \n", - "first_markdown_element": "tests/detectors/weak-prng/0.7.6/bad_prng.sol#L8-L10", - "id": "e27e978d7016cb26d0d372e84c7f4e1bbd6e45af239e195823b3b138713430a6", + "description": "BadPRNG.bad0() (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#4-6) uses a weak PRNG: \"i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#5)\" \n", + "markdown": "[BadPRNG.bad0()](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L4-L6) uses a weak PRNG: \"[i = block.timestamp % 10](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L5)\" \n", + "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L4-L6", + "id": "998e1c79a2cdbd1e2ff7c3faf1546c5fdf0bf9095f49e7fc9dd1fa4f6d673dac", "check": "weak-prng", "impact": "High", "confidence": "Medium" diff --git a/tests/detectors/write-after-write/0.8.0/write-after-write.sol b/tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol similarity index 100% rename from tests/detectors/write-after-write/0.8.0/write-after-write.sol rename to tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol diff --git a/tests/detectors/write-after-write/0.8.0/write-after-write.sol.0.8.0.WriteAfterWrite.json b/tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol.0.8.0.WriteAfterWrite.json similarity index 84% rename from tests/detectors/write-after-write/0.8.0/write-after-write.sol.0.8.0.WriteAfterWrite.json rename to tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol.0.8.0.WriteAfterWrite.json index 1ddd745cf..9a08b581f 100644 --- a/tests/detectors/write-after-write/0.8.0/write-after-write.sol.0.8.0.WriteAfterWrite.json +++ b/tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol.0.8.0.WriteAfterWrite.json @@ -8,9 +8,9 @@ "source_mapping": { "start": 20, "length": 10, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ 3 @@ -25,9 +25,9 @@ "source_mapping": { "start": 0, "length": 992, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ 1, @@ -101,9 +101,9 @@ "source_mapping": { "start": 157, "length": 10, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ 10 @@ -118,9 +118,9 @@ "source_mapping": { "start": 116, "length": 78, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ 9, @@ -138,9 +138,9 @@ "source_mapping": { "start": 0, "length": 992, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ 1, @@ -217,9 +217,9 @@ "source_mapping": { "start": 177, "length": 10, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ 11 @@ -234,9 +234,9 @@ "source_mapping": { "start": 116, "length": 78, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ 9, @@ -254,9 +254,9 @@ "source_mapping": { "start": 0, "length": 992, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ 1, @@ -328,10 +328,10 @@ } } ], - "description": "Test.state (tests/detectors/write-after-write/0.8.0/write-after-write.sol#3) is written in both\n\tstate = 10 (tests/detectors/write-after-write/0.8.0/write-after-write.sol#10)\n\tstate = 20 (tests/detectors/write-after-write/0.8.0/write-after-write.sol#11)\n", - "markdown": "[Test.state](tests/detectors/write-after-write/0.8.0/write-after-write.sol#L3) is written in both\n\t[state = 10](tests/detectors/write-after-write/0.8.0/write-after-write.sol#L10)\n\t[state = 20](tests/detectors/write-after-write/0.8.0/write-after-write.sol#L11)\n", - "first_markdown_element": "tests/detectors/write-after-write/0.8.0/write-after-write.sol#L3", - "id": "64790630557e580454dbeb00f1d35e07d162ed1ab46201e66fd4e686f3806402", + "description": "Test.state (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#3) is written in both\n\tstate = 10 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#10)\n\tstate = 20 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#11)\n", + "markdown": "[Test.state](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L3) is written in both\n\t[state = 10](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L10)\n\t[state = 20](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L11)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L3", + "id": "ac5839f78b0995be85eede2862996d38a3a50c70e92668462f31fadce02f081e", "check": "write-after-write", "impact": "Medium", "confidence": "High" @@ -340,37 +340,39 @@ "elements": [ { "type": "variable", - "name": "a", + "name": "local", "source_mapping": { - "start": 351, - "length": 6, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "start": 894, + "length": 10, + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ - 21 + 52 ], "starting_column": 9, - "ending_column": 15 + "ending_column": 19 }, "type_specific_fields": { "parent": { "type": "function", - "name": "buggy_local", + "name": "bugy_external_local", "source_mapping": { - "start": 310, - "length": 86, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "start": 845, + "length": 145, + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 51, + 52, + 53, + 54, + 55, + 56, + 57 ], "starting_column": 5, "ending_column": 6 @@ -382,9 +384,9 @@ "source_mapping": { "start": 0, "length": 992, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ 1, @@ -450,44 +452,46 @@ "ending_column": 2 } }, - "signature": "buggy_local()" + "signature": "bugy_external_local()" } } } }, { "type": "node", - "name": "a = 10", + "name": "local = 10", "source_mapping": { - "start": 367, - "length": 6, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "start": 914, + "length": 10, + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ - 22 + 53 ], "starting_column": 9, - "ending_column": 15 + "ending_column": 19 }, "type_specific_fields": { "parent": { "type": "function", - "name": "buggy_local", + "name": "bugy_external_local", "source_mapping": { - "start": 310, - "length": 86, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "start": 845, + "length": 145, + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 51, + 52, + 53, + 54, + 55, + 56, + 57 ], "starting_column": 5, "ending_column": 6 @@ -499,9 +503,9 @@ "source_mapping": { "start": 0, "length": 992, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ 1, @@ -567,44 +571,46 @@ "ending_column": 2 } }, - "signature": "buggy_local()" + "signature": "bugy_external_local()" } } } }, { "type": "node", - "name": "a = 20", + "name": "local = 11", "source_mapping": { - "start": 383, - "length": 6, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "start": 973, + "length": 10, + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ - 23 + 56 ], "starting_column": 9, - "ending_column": 15 + "ending_column": 19 }, "type_specific_fields": { "parent": { "type": "function", - "name": "buggy_local", + "name": "bugy_external_local", "source_mapping": { - "start": 310, - "length": 86, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "start": 845, + "length": 145, + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ - 20, - 21, - 22, - 23, - 24 + 51, + 52, + 53, + 54, + 55, + 56, + 57 ], "starting_column": 5, "ending_column": 6 @@ -616,9 +622,9 @@ "source_mapping": { "start": 0, "length": 992, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ 1, @@ -684,16 +690,16 @@ "ending_column": 2 } }, - "signature": "buggy_local()" + "signature": "bugy_external_local()" } } } } ], - "description": "Test.buggy_local().a (tests/detectors/write-after-write/0.8.0/write-after-write.sol#21) is written in both\n\ta = 10 (tests/detectors/write-after-write/0.8.0/write-after-write.sol#22)\n\ta = 20 (tests/detectors/write-after-write/0.8.0/write-after-write.sol#23)\n", - "markdown": "[Test.buggy_local().a](tests/detectors/write-after-write/0.8.0/write-after-write.sol#L21) is written in both\n\t[a = 10](tests/detectors/write-after-write/0.8.0/write-after-write.sol#L22)\n\t[a = 20](tests/detectors/write-after-write/0.8.0/write-after-write.sol#L23)\n", - "first_markdown_element": "tests/detectors/write-after-write/0.8.0/write-after-write.sol#L21", - "id": "db1316a3aebb9fb6df78eecf60236950d2aff43986dd01ca362739b8b582e848", + "description": "Test.bugy_external_local().local (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#52) is written in both\n\tlocal = 10 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#53)\n\tlocal = 11 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#56)\n", + "markdown": "[Test.bugy_external_local().local](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L52) is written in both\n\t[local = 10](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L53)\n\t[local = 11](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L56)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L52", + "id": "bbb2aea426252f6fa0c1bb26bc05cdadfa245207b59273fcd3a5afcdaff675ce", "check": "write-after-write", "impact": "Medium", "confidence": "High" @@ -702,39 +708,37 @@ "elements": [ { "type": "variable", - "name": "local", + "name": "a", "source_mapping": { - "start": 894, - "length": 10, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "start": 351, + "length": 6, + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ - 52 + 21 ], "starting_column": 9, - "ending_column": 19 + "ending_column": 15 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bugy_external_local", + "name": "buggy_local", "source_mapping": { - "start": 845, - "length": 145, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "start": 310, + "length": 86, + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ - 51, - 52, - 53, - 54, - 55, - 56, - 57 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 5, "ending_column": 6 @@ -746,9 +750,9 @@ "source_mapping": { "start": 0, "length": 992, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ 1, @@ -814,46 +818,44 @@ "ending_column": 2 } }, - "signature": "bugy_external_local()" + "signature": "buggy_local()" } } } }, { "type": "node", - "name": "local = 10", + "name": "a = 10", "source_mapping": { - "start": 914, - "length": 10, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "start": 367, + "length": 6, + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ - 53 + 22 ], "starting_column": 9, - "ending_column": 19 + "ending_column": 15 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bugy_external_local", + "name": "buggy_local", "source_mapping": { - "start": 845, - "length": 145, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "start": 310, + "length": 86, + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ - 51, - 52, - 53, - 54, - 55, - 56, - 57 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 5, "ending_column": 6 @@ -865,9 +867,9 @@ "source_mapping": { "start": 0, "length": 992, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ 1, @@ -933,46 +935,44 @@ "ending_column": 2 } }, - "signature": "bugy_external_local()" + "signature": "buggy_local()" } } } }, { "type": "node", - "name": "local = 11", + "name": "a = 20", "source_mapping": { - "start": 973, - "length": 10, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "start": 383, + "length": 6, + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ - 56 + 23 ], "starting_column": 9, - "ending_column": 19 + "ending_column": 15 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bugy_external_local", + "name": "buggy_local", "source_mapping": { - "start": 845, - "length": 145, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "start": 310, + "length": 86, + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ - 51, - 52, - 53, - 54, - 55, - 56, - 57 + 20, + 21, + 22, + 23, + 24 ], "starting_column": 5, "ending_column": 6 @@ -984,9 +984,9 @@ "source_mapping": { "start": 0, "length": 992, - "filename_relative": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/write-after-write/0.8.0/write-after-write.sol", + "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", "is_dependency": false, "lines": [ 1, @@ -1052,16 +1052,16 @@ "ending_column": 2 } }, - "signature": "bugy_external_local()" + "signature": "buggy_local()" } } } } ], - "description": "Test.bugy_external_local().local (tests/detectors/write-after-write/0.8.0/write-after-write.sol#52) is written in both\n\tlocal = 10 (tests/detectors/write-after-write/0.8.0/write-after-write.sol#53)\n\tlocal = 11 (tests/detectors/write-after-write/0.8.0/write-after-write.sol#56)\n", - "markdown": "[Test.bugy_external_local().local](tests/detectors/write-after-write/0.8.0/write-after-write.sol#L52) is written in both\n\t[local = 10](tests/detectors/write-after-write/0.8.0/write-after-write.sol#L53)\n\t[local = 11](tests/detectors/write-after-write/0.8.0/write-after-write.sol#L56)\n", - "first_markdown_element": "tests/detectors/write-after-write/0.8.0/write-after-write.sol#L52", - "id": "e6a01bd710ad6a82ab7c53e035a1fa150b8606aa6149e4d370fadd49f5128904", + "description": "Test.buggy_local().a (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#21) is written in both\n\ta = 10 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#22)\n\ta = 20 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#23)\n", + "markdown": "[Test.buggy_local().a](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L21) is written in both\n\t[a = 10](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L22)\n\t[a = 20](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L23)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L21", + "id": "f676e1dedd369680cb4b83867fa0f2bc5ff5e9d7f9e089fcbb31a824c77e2bb8", "check": "write-after-write", "impact": "Medium", "confidence": "High" diff --git a/tests/test_detectors.py b/tests/e2e/detectors/test_detectors.py similarity index 99% rename from tests/test_detectors.py rename to tests/e2e/detectors/test_detectors.py index 9d82afd2c..0ed1b3648 100644 --- a/tests/test_detectors.py +++ b/tests/e2e/detectors/test_detectors.py @@ -1661,7 +1661,9 @@ def test_detector(test_item: Test): test_dir_path = pathlib.Path( pathlib.Path().absolute(), "tests", + "e2e", "detectors", + "test_data", test_item.detector.ARGUMENT, test_item.solc_ver, ) @@ -1706,7 +1708,9 @@ def _generate_test(test_item: Test, skip_existing=False): test_dir_path = pathlib.Path( pathlib.Path().absolute(), "tests", + "e2e", "detectors", + "test_data", test_item.detector.ARGUMENT, test_item.solc_ver, ) diff --git a/tests/test_ast_parsing.py b/tests/e2e/solc_parsing/test_ast_parsing.py similarity index 99% rename from tests/test_ast_parsing.py rename to tests/e2e/solc_parsing/test_ast_parsing.py index 105ecdc62..78aa8a291 100644 --- a/tests/test_ast_parsing.py +++ b/tests/e2e/solc_parsing/test_ast_parsing.py @@ -15,8 +15,8 @@ from crytic_compile.utils.zip import load_from_zip from slither import Slither from slither.printers.guidance.echidna import Echidna -SLITHER_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -TEST_ROOT = os.path.join(SLITHER_ROOT, "tests", "ast-parsing") +E2E_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +TEST_ROOT = os.path.join(E2E_ROOT, "solc_parsing", "test_data") # pylint: disable=too-few-public-methods diff --git a/tests/ast-parsing/assembly-all.sol b/tests/e2e/solc_parsing/test_data/assembly-all.sol similarity index 100% rename from tests/ast-parsing/assembly-all.sol rename to tests/e2e/solc_parsing/test_data/assembly-all.sol diff --git a/tests/ast-parsing/assignment-0.4.0.sol b/tests/e2e/solc_parsing/test_data/assignment-0.4.0.sol similarity index 100% rename from tests/ast-parsing/assignment-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/assignment-0.4.0.sol diff --git a/tests/ast-parsing/assignment-0.4.7.sol b/tests/e2e/solc_parsing/test_data/assignment-0.4.7.sol similarity index 100% rename from tests/ast-parsing/assignment-0.4.7.sol rename to tests/e2e/solc_parsing/test_data/assignment-0.4.7.sol diff --git a/tests/ast-parsing/binaryoperation-0.4.0.sol b/tests/e2e/solc_parsing/test_data/binaryoperation-0.4.0.sol similarity index 100% rename from tests/ast-parsing/binaryoperation-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/binaryoperation-0.4.0.sol diff --git a/tests/ast-parsing/binaryoperation-0.4.7.sol b/tests/e2e/solc_parsing/test_data/binaryoperation-0.4.7.sol similarity index 100% rename from tests/ast-parsing/binaryoperation-0.4.7.sol rename to tests/e2e/solc_parsing/test_data/binaryoperation-0.4.7.sol diff --git a/tests/ast-parsing/break-all.sol b/tests/e2e/solc_parsing/test_data/break-all.sol similarity index 100% rename from tests/ast-parsing/break-all.sol rename to tests/e2e/solc_parsing/test_data/break-all.sol diff --git a/tests/ast-parsing/bytes_call.sol b/tests/e2e/solc_parsing/test_data/bytes_call.sol similarity index 100% rename from tests/ast-parsing/bytes_call.sol rename to tests/e2e/solc_parsing/test_data/bytes_call.sol diff --git a/tests/ast-parsing/call_to_variable-all.sol b/tests/e2e/solc_parsing/test_data/call_to_variable-all.sol similarity index 100% rename from tests/ast-parsing/call_to_variable-all.sol rename to tests/e2e/solc_parsing/test_data/call_to_variable-all.sol diff --git a/tests/ast-parsing/comment-all.sol b/tests/e2e/solc_parsing/test_data/comment-all.sol similarity index 100% rename from tests/ast-parsing/comment-all.sol rename to tests/e2e/solc_parsing/test_data/comment-all.sol diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/assembly-all.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/compile/assembly-all.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/assignment-0.4.7.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/assignment-0.4.7.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/binaryoperation-0.4.7.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/binaryoperation-0.4.7.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/break-all.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/break-all.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/break-all.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/bytes_call.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/bytes_call.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/bytes_call.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/bytes_call.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/call_to_variable-all.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/call_to_variable-all.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/call_to_variable-all.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/comment-all.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/comment-all.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/comment-all.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases/test.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases/test.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/complex_imports/import_free/Caller.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/complex_imports/import_free/Caller.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/complex_imports/import_free/Caller.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/complex_imports/import_free/Caller.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/conditional-all.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/conditional-all.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/conditional-all.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/continue-all.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/continue-all.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/continue-all.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.4.22.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.4.22.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.4.22.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/contract-0.6.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/contract-0.6.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/contract-0.6.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/custom-error-selector.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom-error-selector.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/custom-error-selector.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom-error-selector.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/custom-error-selector.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom-error-selector.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/custom-error-selector.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom-error-selector.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/custom-error-selector.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom-error-selector.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/custom-error-selector.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom-error-selector.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/custom-error-selector.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom-error-selector.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/custom-error-selector.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom-error-selector.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/custom-error-selector.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom-error-selector.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/custom-error-selector.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom-error-selector.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/custom-error-selector.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom-error-selector.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/custom-error-selector.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom-error-selector.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom-error-selector.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.4.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.4.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error-0.8.4.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/custom_error_with_state_variable.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/custom_error_with_state_variable.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/dowhile-0.4.5.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/dowhile-0.4.5.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.21.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.21.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.21.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.21.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.21.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.21.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.21.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.21.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.21.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.21.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.21.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.21.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.21.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.21.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.21.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.21.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.21.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.21.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.21.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.21.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.21.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.21.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.21.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.21.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.21.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.10-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.11-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.8-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.9-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.4.8.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.4.8.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.4.8.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/emit-0.5.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/emit-0.5.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/emit-0.5.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.4.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.4.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.4.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/enum-0.8.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/enum-0.8.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/enum-0.8.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/event-all.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/event-all.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/event-all.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/for-all.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/for-all.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/for-all.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/free_functions/libraries_from_free.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/free_functions/libraries_from_free.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/free_functions/libraries_from_free.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/free_functions/libraries_from_free.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/free_functions/library_constant_function_collision.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/free_functions/library_constant_function_collision.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/free_functions/library_constant_function_collision.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/free_functions/library_constant_function_collision.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/free_functions/new_operator.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/free_functions/new_operator.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/free_functions/new_operator.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/free_functions/new_operator.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.16.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.16.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.16.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.16.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.16.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.16.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.16.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.16.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.16.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.16.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.16.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.16.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.16.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.16.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.16.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.16.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.16.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.16.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.16.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.16.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.16.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.16.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.16.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.16.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.16.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.22.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.22.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.22.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.22.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.22.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.22.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.22.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.22.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.23.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.23.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.23.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.23.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.23.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.23.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.23.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.23.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.23.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.23.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.23.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.23.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.4.23.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.23.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/function-0.4.23.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.4.23.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.4.23.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/function-0.5.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.5.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.5.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/function-0.6.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.6.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/function-0.6.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.6.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/function-0.6.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.6.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/function-0.6.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.6.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/function-0.6.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.6.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/function-0.6.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.6.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/function-0.6.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.6.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/function-0.6.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.6.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/function-0.6.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.6.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/function-0.6.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.6.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/function-0.6.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.6.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/function-0.6.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.6.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/function-0.6.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.6.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.6.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/function-0.7.1.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/function-0.7.1.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/function-0.7.1.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.5.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.5.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.5.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.5.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.5.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.5.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.5.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.5.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.5.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.4.5.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.4.5.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.5.3.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.5.3.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.2.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.2.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.6.8.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.6.8.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.7.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.7.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/functioncall-0.8.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/functioncall-0.8.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/if-all.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/if-all.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/if-all.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/indexaccess-all.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexaccess-all.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexaccess-all.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.4.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.4.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/indexrangeaccess-0.6.1.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/indexrangeaccess-0.6.1.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/library_event-0.8.16.sol-0.8.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_event-0.8.16.sol-0.8.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_event-0.8.16.sol-0.8.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_event-0.8.16.sol-0.8.16-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/library_implicit_conversion-0.5.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/library_implicit_conversion-0.5.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.4.10.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.4.10.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.5.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.5.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.5.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/literal-0.6.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/literal-0.6.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/literal-0.6.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/memberaccess-0.5.3.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/memberaccess-0.5.3.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.4.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.4.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.6.8.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.6.8.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/minmax-0.8.8.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/minmax-0.8.8.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-0.7.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-0.7.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/modifier-all.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier-all.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/modifier_identifier_path.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/modifier_identifier_path.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/newexpression-0.5.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/newexpression-0.5.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.5.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.5.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.6.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.6.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.7.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.7.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/pragma-0.8.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/pragma-0.8.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/push-all.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/push-all.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/push-all.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/return-all.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/return-all.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/return-all.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/scope-0.5.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/scope-0.5.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/scope-0.5.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/struct-0.6.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/struct-0.6.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/struct-0.6.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/ternary-with-max.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/ternary-with-max.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/ternary-with-max.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/ternary-with-max.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/throw-0.5.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/throw-0.5.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/throw-0.5.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.4.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.4.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.4.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.1.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.1.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.1.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.1.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.1.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.1.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.1.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.1.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.1.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.1.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.1.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.1.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.1.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.1.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.1.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.1.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.1.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.1.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.1.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.1.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.1.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.1.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.1.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.1.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-0.7.4.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-0.7.4.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.4.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.4.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-0.7.1.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-0.7.1.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.4.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.4.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-import-bis-0.7.1.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-import-bis-0.7.1.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.4.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.4.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-nested-import-0.7.1.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-nested-import-0.7.1.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/top-level-struct-0.8.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top-level-struct-0.8.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top-level-struct-0.8.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top-level-struct-0.8.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.4.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.4.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable-0.8.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable-0.8.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.4.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.4.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/top_level_variable2-0.8.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/top_level_variable2-0.8.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/trycatch-0.6.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.4.24.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.4.24.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/tupleexpression-0.5.3.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/tupleexpression-0.5.3.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unaryexpression-0.5.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unaryexpression-0.5.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.4.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.4.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/unchecked-0.8.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/unchecked-0.8.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.5.4.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.5.4.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.6.0.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.6.0.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.7.0.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.7.0.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.4.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.4.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.4.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.4.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.4.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.4.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.4.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.4.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.4.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.4.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.4.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.4.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.7.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.7.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.7.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.7.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.7.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.7.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.7.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.7.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/units_and_global_variables-0.8.7.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.7.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/units_and_global_variables-0.8.7.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/units_and_global_variables-0.8.7.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/top-level-0.8.8.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/using-for-0.8.8.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-0.4.1.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-0.4.1.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/using-for-1-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-1-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-1-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-1-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/using-for-2-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-2-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-2-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-2-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/using-for-3-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-3-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-3-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-3-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/using-for-4-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-4-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-4-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-4-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/using-for-alias-contract-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-alias-contract-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-alias-contract-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-alias-contract-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/using-for-alias-top-level-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-alias-top-level-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-alias-top-level-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-alias-top-level-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/using-for-functions-list-1-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-functions-list-1-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-functions-list-1-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-functions-list-1-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/using-for-functions-list-2-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-functions-list-2-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-functions-list-2-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-functions-list-2-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/using-for-functions-list-3-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-functions-list-3-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-functions-list-3-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-functions-list-3-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/using-for-functions-list-4-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-functions-list-4-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-functions-list-4-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-functions-list-4-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/using-for-global-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-global-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-global-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-global-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/using-for-in-library-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/using-for-in-library-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/using-for-in-library-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/using-for-in-library-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.0.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.0.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.14.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.14.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.14.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.14.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.14.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.14.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.14.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.14.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.14.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.14.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.14.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.14.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.14.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.14.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.14.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.14.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.16.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.16.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.16.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.5.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.5.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.5.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.5.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.5.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.5.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.5.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.5.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.5.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.5.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.4.5.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.4.5.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.4.5.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.5.0.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.5.0.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.5.0.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.5.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.5.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.5.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.5.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.5.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.5.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.5.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.5.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.5.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.5.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.5.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.5.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.5.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.5.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.5.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.5.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.5.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.6.9.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.6.9.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.6.9.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/variable-0.8.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variable-0.8.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variable-0.8.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.0-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.1-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.10-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.11-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.2-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.3-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.4-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.5-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.6-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.7-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.8-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.0.sol-0.4.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.0.sol-0.4.9-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.24.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.24.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.24.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.24.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.24.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.24.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.24.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.24.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.4.24.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.24.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.4.24.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.4.24.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/variabledeclaration-0.5.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/variabledeclaration-0.5.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/while-all.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/while-all.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/while-all.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.0.sol-0.4.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.0.sol-0.4.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.0.sol-0.4.0-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.1.sol-0.4.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.1-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.1.sol-0.4.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.10-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.1.sol-0.4.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.2-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.1.sol-0.4.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.3-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.1.sol-0.4.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.4-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.1.sol-0.4.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.5-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.1.sol-0.4.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.6-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.1.sol-0.4.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.7-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.1.sol-0.4.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.8-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.1.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.1.sol-0.4.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.1.sol-0.4.9-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.11-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.12-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.12-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.13-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.13-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.14-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.14-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.15-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.15-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.16-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.16-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.17-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.17-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.18-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.18-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.18-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.18-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.18-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.18-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.18-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.19-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.19-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.19-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.19-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.19-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.19-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.19-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.20-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.20-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.20-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.20-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.20-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.20-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.21-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.21-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.21-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.21-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.21-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.21-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.21-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.22-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.22-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.22-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.22-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.22-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.22-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.23-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.23-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.23-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.23-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.23-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.23-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.23-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.24-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.24-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.24-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.24-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.24-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.24-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.24-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.24-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.25-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.25-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.25-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.25-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.25-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.25-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.25-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.26-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.26-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.26-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.4.26-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.26-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.4.26-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.4.26-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.0-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.0-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.1-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.1-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.10-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.10-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.11-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.11-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.12-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.12-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.13-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.13-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.13-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.13-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.14-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.14-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.14-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.14-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.15-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.15-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.15-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.15-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.16-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.16-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.16-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.16-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.17-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.17-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.17-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.17-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.17-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.17-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.2-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.2-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.3-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.3-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.4-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.4-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.5-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.5-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.6-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.6-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.7-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.7-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.8-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.8-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.9-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.5.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.5.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.5.9-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.0-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.0-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.1-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.1-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.10-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.10-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.10-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.10-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.11-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.11-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.11-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.11-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.12-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.12-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.12-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.12-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.2-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.2-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.3-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.3-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.4-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.4-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.5-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.5-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.6-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.6-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.7-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.7-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.7-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.7-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.8-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.8-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.8-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.8-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.9-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.4.11.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.9-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.4.11.sol-0.6.9-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.4.11.sol-0.6.9-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.7.0.sol-0.7.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.7.0.sol-0.7.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.0-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.7.0.sol-0.7.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.0-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.7.0.sol-0.7.0-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.0-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.7.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.7.0.sol-0.7.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.1-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.7.0.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.1-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.7.0.sol-0.7.1-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.1-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.7.0.sol-0.7.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.7.0.sol-0.7.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.2-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.7.0.sol-0.7.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.2-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.7.0.sol-0.7.2-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.2-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.7.0.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.7.0.sol-0.7.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.3-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.7.0.sol-0.7.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.3-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.7.0.sol-0.7.3-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.3-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.7.0.sol-0.7.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.7.0.sol-0.7.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.4-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.7.0.sol-0.7.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.4-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.7.0.sol-0.7.4-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.7.0.sol-0.7.4-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.7.5.sol-0.7.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.7.5.sol-0.7.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.7.5.sol-0.7.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.7.5.sol-0.7.5-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.7.5.sol-0.7.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.7.5.sol-0.7.5-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.7.5.sol-0.7.5-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.7.5.sol-0.7.5-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.7.5.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.7.5.sol-0.7.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.7.5.sol-0.7.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.7.5.sol-0.7.6-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.7.5.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.7.5.sol-0.7.6-legacy.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.7.5.sol-0.7.6-legacy.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.7.5.sol-0.7.6-legacy.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.1-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.1-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.1-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.10-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.10-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.10-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.11-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.11-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.11-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.12-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.12-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.12-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.13-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.13-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.13-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.14-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.14-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.14-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.15-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.15-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.15-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.2-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.2-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.2-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.3-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.3-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.3-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.4-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.4-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.4-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.5-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.5-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.5-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.6-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.6-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.6-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.7-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.7-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.7-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.8-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.8-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.8-compact.zip diff --git a/tests/ast-parsing/compile/yul-0.8.0.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.9-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-0.8.0.sol-0.8.9-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-0.8.0.sol-0.8.9-compact.zip diff --git a/tests/ast-parsing/compile/yul-state-constant-access.sol-0.8.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-state-constant-access.sol-0.8.16-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-state-constant-access.sol-0.8.16-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-state-constant-access.sol-0.8.16-compact.zip diff --git a/tests/ast-parsing/compile/yul-top-level-0.8.0.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/yul-top-level-0.8.0.sol-0.8.0-compact.zip similarity index 100% rename from tests/ast-parsing/compile/yul-top-level-0.8.0.sol-0.8.0-compact.zip rename to tests/e2e/solc_parsing/test_data/compile/yul-top-level-0.8.0.sol-0.8.0-compact.zip diff --git a/tests/ast-parsing/complex_imports/FreeFuns.sol b/tests/e2e/solc_parsing/test_data/complex_imports/FreeFuns.sol similarity index 100% rename from tests/ast-parsing/complex_imports/FreeFuns.sol rename to tests/e2e/solc_parsing/test_data/complex_imports/FreeFuns.sol diff --git a/tests/ast-parsing/complex_imports/import_aliases/import.sol b/tests/e2e/solc_parsing/test_data/complex_imports/import_aliases/import.sol similarity index 100% rename from tests/ast-parsing/complex_imports/import_aliases/import.sol rename to tests/e2e/solc_parsing/test_data/complex_imports/import_aliases/import.sol diff --git a/tests/ast-parsing/complex_imports/import_aliases/test.sol b/tests/e2e/solc_parsing/test_data/complex_imports/import_aliases/test.sol similarity index 100% rename from tests/ast-parsing/complex_imports/import_aliases/test.sol rename to tests/e2e/solc_parsing/test_data/complex_imports/import_aliases/test.sol diff --git a/tests/ast-parsing/complex_imports/import_aliases_issue_1319/import.sol b/tests/e2e/solc_parsing/test_data/complex_imports/import_aliases_issue_1319/import.sol similarity index 100% rename from tests/ast-parsing/complex_imports/import_aliases_issue_1319/import.sol rename to tests/e2e/solc_parsing/test_data/complex_imports/import_aliases_issue_1319/import.sol diff --git a/tests/ast-parsing/complex_imports/import_aliases_issue_1319/test.sol b/tests/e2e/solc_parsing/test_data/complex_imports/import_aliases_issue_1319/test.sol similarity index 100% rename from tests/ast-parsing/complex_imports/import_aliases_issue_1319/test.sol rename to tests/e2e/solc_parsing/test_data/complex_imports/import_aliases_issue_1319/test.sol diff --git a/tests/ast-parsing/complex_imports/import_aliases_issue_1319/test_fail.sol b/tests/e2e/solc_parsing/test_data/complex_imports/import_aliases_issue_1319/test_fail.sol similarity index 100% rename from tests/ast-parsing/complex_imports/import_aliases_issue_1319/test_fail.sol rename to tests/e2e/solc_parsing/test_data/complex_imports/import_aliases_issue_1319/test_fail.sol diff --git a/tests/ast-parsing/complex_imports/import_free/Caller.sol b/tests/e2e/solc_parsing/test_data/complex_imports/import_free/Caller.sol similarity index 100% rename from tests/ast-parsing/complex_imports/import_free/Caller.sol rename to tests/e2e/solc_parsing/test_data/complex_imports/import_free/Caller.sol diff --git a/tests/ast-parsing/conditional-all.sol b/tests/e2e/solc_parsing/test_data/conditional-all.sol similarity index 100% rename from tests/ast-parsing/conditional-all.sol rename to tests/e2e/solc_parsing/test_data/conditional-all.sol diff --git a/tests/ast-parsing/continue-all.sol b/tests/e2e/solc_parsing/test_data/continue-all.sol similarity index 100% rename from tests/ast-parsing/continue-all.sol rename to tests/e2e/solc_parsing/test_data/continue-all.sol diff --git a/tests/ast-parsing/contract-0.4.0.sol b/tests/e2e/solc_parsing/test_data/contract-0.4.0.sol similarity index 100% rename from tests/ast-parsing/contract-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/contract-0.4.0.sol diff --git a/tests/ast-parsing/contract-0.4.22.sol b/tests/e2e/solc_parsing/test_data/contract-0.4.22.sol similarity index 100% rename from tests/ast-parsing/contract-0.4.22.sol rename to tests/e2e/solc_parsing/test_data/contract-0.4.22.sol diff --git a/tests/ast-parsing/contract-0.6.0.sol b/tests/e2e/solc_parsing/test_data/contract-0.6.0.sol similarity index 100% rename from tests/ast-parsing/contract-0.6.0.sol rename to tests/e2e/solc_parsing/test_data/contract-0.6.0.sol diff --git a/tests/ast-parsing/custom-error-selector.sol b/tests/e2e/solc_parsing/test_data/custom-error-selector.sol similarity index 100% rename from tests/ast-parsing/custom-error-selector.sol rename to tests/e2e/solc_parsing/test_data/custom-error-selector.sol diff --git a/tests/ast-parsing/custom_error-0.4.0.sol b/tests/e2e/solc_parsing/test_data/custom_error-0.4.0.sol similarity index 100% rename from tests/ast-parsing/custom_error-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/custom_error-0.4.0.sol diff --git a/tests/ast-parsing/custom_error-0.8.4.sol b/tests/e2e/solc_parsing/test_data/custom_error-0.8.4.sol similarity index 100% rename from tests/ast-parsing/custom_error-0.8.4.sol rename to tests/e2e/solc_parsing/test_data/custom_error-0.8.4.sol diff --git a/tests/ast-parsing/custom_error_with_state_variable.sol b/tests/e2e/solc_parsing/test_data/custom_error_with_state_variable.sol similarity index 100% rename from tests/ast-parsing/custom_error_with_state_variable.sol rename to tests/e2e/solc_parsing/test_data/custom_error_with_state_variable.sol diff --git a/tests/ast-parsing/dowhile-0.4.0.sol b/tests/e2e/solc_parsing/test_data/dowhile-0.4.0.sol similarity index 100% rename from tests/ast-parsing/dowhile-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/dowhile-0.4.0.sol diff --git a/tests/ast-parsing/dowhile-0.4.5.sol b/tests/e2e/solc_parsing/test_data/dowhile-0.4.5.sol similarity index 100% rename from tests/ast-parsing/dowhile-0.4.5.sol rename to tests/e2e/solc_parsing/test_data/dowhile-0.4.5.sol diff --git a/tests/ast-parsing/emit-0.4.0.sol b/tests/e2e/solc_parsing/test_data/emit-0.4.0.sol similarity index 100% rename from tests/ast-parsing/emit-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/emit-0.4.0.sol diff --git a/tests/ast-parsing/emit-0.4.21.sol b/tests/e2e/solc_parsing/test_data/emit-0.4.21.sol similarity index 100% rename from tests/ast-parsing/emit-0.4.21.sol rename to tests/e2e/solc_parsing/test_data/emit-0.4.21.sol diff --git a/tests/ast-parsing/emit-0.4.8.sol b/tests/e2e/solc_parsing/test_data/emit-0.4.8.sol similarity index 100% rename from tests/ast-parsing/emit-0.4.8.sol rename to tests/e2e/solc_parsing/test_data/emit-0.4.8.sol diff --git a/tests/ast-parsing/emit-0.5.0.sol b/tests/e2e/solc_parsing/test_data/emit-0.5.0.sol similarity index 100% rename from tests/ast-parsing/emit-0.5.0.sol rename to tests/e2e/solc_parsing/test_data/emit-0.5.0.sol diff --git a/tests/ast-parsing/enum-0.4.0.sol b/tests/e2e/solc_parsing/test_data/enum-0.4.0.sol similarity index 100% rename from tests/ast-parsing/enum-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/enum-0.4.0.sol diff --git a/tests/ast-parsing/enum-0.8.0.sol b/tests/e2e/solc_parsing/test_data/enum-0.8.0.sol similarity index 100% rename from tests/ast-parsing/enum-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/enum-0.8.0.sol diff --git a/tests/ast-parsing/event-all.sol b/tests/e2e/solc_parsing/test_data/event-all.sol similarity index 100% rename from tests/ast-parsing/event-all.sol rename to tests/e2e/solc_parsing/test_data/event-all.sol diff --git a/tests/ast-parsing/expected/assembly-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/assembly-all.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/assignment-0.4.7.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/assignment-0.4.7.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/binaryoperation-0.4.7.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/binaryoperation-0.4.7.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/break-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/break-all.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/break-all.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/bytes_call.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/bytes_call.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/bytes_call.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/bytes_call.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/call_to_variable-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/call_to_variable-all.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/call_to_variable-all.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/comment-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/comment-all.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/comment-all.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases/test.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases/test.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_aliases_issue_1319/test.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/complex_imports/import_free/Caller.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/complex_imports/import_free/Caller.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/complex_imports/import_free/Caller.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/complex_imports/import_free/Caller.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/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 similarity index 100% rename from tests/ast-parsing/expected/conditional-all.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/continue-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/continue-all.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/continue-all.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/contract-0.4.22.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.4.22.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.4.22.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/contract-0.6.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/contract-0.6.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/contract-0.6.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/custom-error-selector.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom-error-selector.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/custom-error-selector.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom-error-selector.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/custom-error-selector.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom-error-selector.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/custom-error-selector.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom-error-selector.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/custom-error-selector.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom-error-selector.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/custom-error-selector.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom-error-selector.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/custom-error-selector.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom-error-selector.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/custom-error-selector.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom-error-selector.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/custom-error-selector.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom-error-selector.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/custom-error-selector.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom-error-selector.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/custom-error-selector.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom-error-selector.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/custom-error-selector.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom-error-selector.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom-error-selector.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.4.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.4.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error-0.8.4.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/custom_error_with_state_variable.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/custom_error_with_state_variable.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/dowhile-0.4.5.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/dowhile-0.4.5.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/emit-0.4.21.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.21.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/emit-0.4.21.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.21.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.4.21.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.21.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/emit-0.4.21.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.21.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.4.21.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.21.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/emit-0.4.21.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.21.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.4.21.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.21.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/emit-0.4.21.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.21.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.4.21.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.21.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/emit-0.4.21.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.21.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.4.21.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.21.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/emit-0.4.21.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.21.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.21.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.4.8.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.8.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.8.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.8.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/emit-0.4.8.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.8.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.8.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.8.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.4.8.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.8.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.8.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.8.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/emit-0.4.8.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.4.8.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.4.8.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.4.8.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/emit-0.5.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/emit-0.5.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/emit-0.5.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/enum-0.4.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.4.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.4.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/enum-0.8.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/enum-0.8.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/enum-0.8.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/event-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/event-all.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/event-all.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/for-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/for-all.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/for-all.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/free_functions/libraries_from_free.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/free_functions/libraries_from_free.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/free_functions/libraries_from_free.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/free_functions/libraries_from_free.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/free_functions/library_constant_function_collision.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/free_functions/library_constant_function_collision.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/free_functions/library_constant_function_collision.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/free_functions/library_constant_function_collision.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/free_functions/new_operator.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/free_functions/new_operator.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/free_functions/new_operator.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/free_functions/new_operator.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.16.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.16.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.16.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.16.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.16.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.16.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.16.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.16.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.16.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.16.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.16.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.16.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.16.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.16.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.16.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.16.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.16.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.16.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.16.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.16.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.16.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.16.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.16.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.16.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.16.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.22.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.22.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.22.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.22.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.22.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.22.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.22.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.22.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.23.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.23.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.23.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.23.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.23.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.23.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.23.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.23.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.23.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.23.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.23.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.23.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/function-0.4.23.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.23.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/function-0.4.23.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.4.23.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.4.23.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/function-0.5.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/function-0.5.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.5.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/function-0.6.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.6.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/function-0.6.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.6.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/function-0.6.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.6.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/function-0.6.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.6.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/function-0.6.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.6.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/function-0.6.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.6.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/function-0.6.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.6.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/function-0.6.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.6.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/function-0.6.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.6.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/function-0.6.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.6.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/function-0.6.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.6.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/function-0.6.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.6.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/function-0.6.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.6.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.6.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/function-0.7.1.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/function-0.7.1.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/function-0.7.1.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.4.5.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.4.5.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.5.3.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.5.3.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.2.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.2.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.6.8.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.6.8.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.7.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.7.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/functioncall-0.8.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/functioncall-0.8.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/if-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/if-all.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/if-all.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.4.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/import_interface_with_struct_from_top_level-0.7.6.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/indexaccess-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexaccess-all.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexaccess-all.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.4.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.4.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/indexrangeaccess-0.6.1.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/indexrangeaccess-0.6.1.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/library_event-0.8.16.sol-0.8.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_event-0.8.16.sol-0.8.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_event-0.8.16.sol-0.8.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_event-0.8.16.sol-0.8.16-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/library_implicit_conversion-0.5.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/library_implicit_conversion-0.5.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/literal-0.4.10.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.4.10.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.4.10.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/literal-0.5.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.5.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.5.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/literal-0.6.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/literal-0.6.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/literal-0.6.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/memberaccess-0.5.3.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/memberaccess-0.5.3.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.4.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.4.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.6.8.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.6.8.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/minmax-0.8.8.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/minmax-0.8.8.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-0.7.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-0.7.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/modifier-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier-all.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier-all.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/modifier_identifier_path.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/modifier_identifier_path.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/newexpression-0.5.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/newexpression-0.5.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.5.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.5.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.6.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.6.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.7.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.7.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/pragma-0.8.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/pragma-0.8.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/push-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/push-all.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/push-all.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/return-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/return-all.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/return-all.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/scope-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/scope-0.5.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/scope-0.5.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/scope-0.5.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/struct-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/struct-0.6.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/struct-0.6.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/struct-0.6.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/ternary-with-max.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/ternary-with-max.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/ternary-with-max.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/ternary-with-max.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/throw-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/throw-0.5.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/throw-0.5.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/throw-0.5.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.4.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.4.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.4.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.7.1.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.1.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.1.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.1.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.1.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.1.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.1.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.1.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.7.1.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.1.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.1.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.1.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.1.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.1.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.1.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.1.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.7.1.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.1.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.1.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.1.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.1.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.1.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.1.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.1.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-0.7.4.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-0.7.4.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.4.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.4.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-0.7.1.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-0.7.1.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.4.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.4.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-import-bis-0.7.1.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-import-bis-0.7.1.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.4.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.4.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-nested-import-0.7.1.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-nested-import-0.7.1.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/top-level-struct-0.8.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top-level-struct-0.8.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top-level-struct-0.8.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top-level-struct-0.8.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.4.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.4.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable-0.8.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable-0.8.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.4.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.4.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/top_level_variable2-0.8.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/top_level_variable2-0.8.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/trycatch-0.6.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.4.24.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.4.24.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/tupleexpression-0.5.3.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/tupleexpression-0.5.3.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/unaryexpression-0.5.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unaryexpression-0.5.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.4.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.4.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/unchecked-0.8.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/unchecked-0.8.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.5.4.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.5.4.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.6.0.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.6.0.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.7.0.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.7.0.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.4.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.4.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.4.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.4.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.4.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.4.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.4.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.4.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.4.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.4.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.4.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.4.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.7.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.7.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.7.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.7.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.7.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.7.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.7.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.7.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/units_and_global_variables-0.8.7.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.7.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/units_and_global_variables-0.8.7.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/units_and_global_variables-0.8.7.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/user_defined_types.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_types.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_types.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_types.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/user_defined_types.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_types.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_types.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_types.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/user_defined_types.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_types.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_types.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_types.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/user_defined_types.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_types.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_types.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_types.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/top-level-0.8.8.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/using-for-0.8.8.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-0.4.1.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-0.4.1.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/using-for-1-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-1-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-1-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-1-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/using-for-2-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-2-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-2-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-2-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/using-for-3-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-3-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-3-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-3-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/using-for-4-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-4-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-4-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-4-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/using-for-alias-contract-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-alias-contract-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-alias-contract-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-alias-contract-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/using-for-alias-top-level-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-alias-top-level-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-alias-top-level-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-alias-top-level-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/using-for-functions-list-1-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-functions-list-1-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-functions-list-1-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-functions-list-1-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/using-for-functions-list-2-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-functions-list-2-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-functions-list-2-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-functions-list-2-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/using-for-functions-list-3-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-functions-list-3-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-functions-list-3-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-functions-list-3-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/using-for-functions-list-4-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-functions-list-4-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-functions-list-4-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-functions-list-4-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/using-for-global-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-global-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-global-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-global-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/using-for-in-library-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/using-for-in-library-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/using-for-in-library-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/using-for-in-library-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.0.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.0.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.0.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.14.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.14.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.14.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.14.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.14.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.14.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.14.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.14.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.14.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.14.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.14.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.14.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.14.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.14.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.14.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.14.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.16.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.16.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.16.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/variable-0.4.5.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.4.5.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.4.5.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/variable-0.5.0.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.5.0.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.5.0.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.5.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.5.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.5.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.5.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.5.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.5.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.5.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.5.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.5.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.5.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.5.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.5.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.5.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.5.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.5.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.5.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.5.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/variable-0.6.9.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.6.9.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.6.9.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/variable-0.8.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/variable-0.8.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variable-0.8.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/variabledeclaration-0.5.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/variabledeclaration-0.5.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/while-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/while-all.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/while-all.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.0.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.0.sol-0.4.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.0.sol-0.4.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.0.sol-0.4.0-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.0.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.0.sol-0.4.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.0.sol-0.4.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.0.sol-0.4.0-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.1-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.1-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.10-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.10-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.2-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.2-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.3-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.3-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.4-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.4-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.5-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.5-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.6-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.6-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.7-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.7-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.8-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.8-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.9-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.1.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.1.sol-0.4.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.1.sol-0.4.9-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.11-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.11-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.12-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.12-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.13-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.13-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.14-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.14-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.15-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.15-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.16-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.16-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.17-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.17-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.18-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.18-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.18-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.18-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.18-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.18-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.19-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.19-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.19-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.19-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.19-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.19-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.20-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.20-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.20-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.20-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.20-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.20-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.21-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.21-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.21-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.21-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.21-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.21-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.22-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.22-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.22-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.22-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.22-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.22-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.23-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.23-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.23-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.23-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.23-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.23-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.24-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.24-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.24-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.24-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.24-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.24-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.25-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.25-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.25-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.25-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.25-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.25-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.26-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.26-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.26-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.26-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.4.26-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.4.26-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.0-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.0-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.1-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.1-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.10-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.10-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.11-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.11-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.12-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.12-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.13-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.13-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.13-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.13-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.14-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.14-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.14-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.14-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.15-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.15-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.15-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.15-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.16-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.16-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.16-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.16-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.17-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.17-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.17-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.17-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.17-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.17-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.2-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.2-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.3-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.3-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.4-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.4-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.5-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.5-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.6-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.6-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.7-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.7-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.8-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.8-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.9-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.5.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.5.9-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.0-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.0-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.1-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.1-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.10-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.10-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.10-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.10-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.11-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.11-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.11-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.11-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.12-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.12-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.12-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.12-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.2-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.2-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.3-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.3-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.4-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.4-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.5-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.5-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.6-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.6-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.7-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.7-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.7-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.7-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.8-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.8-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.8-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.8-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.9-compact.json diff --git a/tests/ast-parsing/expected/yul-0.4.11.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.9-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.4.11.sol-0.6.9-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.4.11.sol-0.6.9-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.7.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.7.0.sol-0.7.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.0-compact.json diff --git a/tests/ast-parsing/expected/yul-0.7.0.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.0-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.7.0.sol-0.7.0-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.0-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.7.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.7.0.sol-0.7.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.1-compact.json diff --git a/tests/ast-parsing/expected/yul-0.7.0.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.1-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.7.0.sol-0.7.1-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.1-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.7.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.7.0.sol-0.7.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.2-compact.json diff --git a/tests/ast-parsing/expected/yul-0.7.0.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.2-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.7.0.sol-0.7.2-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.2-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.7.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.7.0.sol-0.7.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.3-compact.json diff --git a/tests/ast-parsing/expected/yul-0.7.0.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.3-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.7.0.sol-0.7.3-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.3-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.7.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.7.0.sol-0.7.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.4-compact.json diff --git a/tests/ast-parsing/expected/yul-0.7.0.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.4-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.7.0.sol-0.7.4-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.7.0.sol-0.7.4-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.7.5.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.7.5.sol-0.7.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.7.5.sol-0.7.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.7.5.sol-0.7.5-compact.json diff --git a/tests/ast-parsing/expected/yul-0.7.5.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.7.5.sol-0.7.5-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.7.5.sol-0.7.5-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.7.5.sol-0.7.5-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.7.5.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.7.5.sol-0.7.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.7.5.sol-0.7.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.7.5.sol-0.7.6-compact.json diff --git a/tests/ast-parsing/expected/yul-0.7.5.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.7.5.sol-0.7.6-legacy.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.7.5.sol-0.7.6-legacy.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.7.5.sol-0.7.6-legacy.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.0-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.0-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.0-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.1-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.1-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.1-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.10-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.10-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.10-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.11-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.11-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.11-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.12-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.12-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.12-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.13-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.13-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.13-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.14-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.14-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.14-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.15-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.15-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.15-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.2-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.2-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.2-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.3-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.3-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.3-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.4-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.4-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.4-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.5-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.5-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.5-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.6-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.6-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.6-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.7-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.7-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.7-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.8-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.8-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.8-compact.json diff --git a/tests/ast-parsing/expected/yul-0.8.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.9-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-0.8.0.sol-0.8.9-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-0.8.0.sol-0.8.9-compact.json diff --git a/tests/ast-parsing/expected/yul-state-constant-access.sol-0.8.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/yul-state-constant-access.sol-0.8.16-compact.json similarity index 100% rename from tests/ast-parsing/expected/yul-state-constant-access.sol-0.8.16-compact.json rename to tests/e2e/solc_parsing/test_data/expected/yul-state-constant-access.sol-0.8.16-compact.json diff --git a/tests/ast-parsing/for-all.sol b/tests/e2e/solc_parsing/test_data/for-all.sol similarity index 100% rename from tests/ast-parsing/for-all.sol rename to tests/e2e/solc_parsing/test_data/for-all.sol diff --git a/tests/ast-parsing/free_functions/libraries_from_free.sol b/tests/e2e/solc_parsing/test_data/free_functions/libraries_from_free.sol similarity index 100% rename from tests/ast-parsing/free_functions/libraries_from_free.sol rename to tests/e2e/solc_parsing/test_data/free_functions/libraries_from_free.sol diff --git a/tests/ast-parsing/free_functions/library_constant_function_collision.sol b/tests/e2e/solc_parsing/test_data/free_functions/library_constant_function_collision.sol similarity index 100% rename from tests/ast-parsing/free_functions/library_constant_function_collision.sol rename to tests/e2e/solc_parsing/test_data/free_functions/library_constant_function_collision.sol diff --git a/tests/ast-parsing/free_functions/new_operator.sol b/tests/e2e/solc_parsing/test_data/free_functions/new_operator.sol similarity index 100% rename from tests/ast-parsing/free_functions/new_operator.sol rename to tests/e2e/solc_parsing/test_data/free_functions/new_operator.sol diff --git a/tests/ast-parsing/function-0.4.0.sol b/tests/e2e/solc_parsing/test_data/function-0.4.0.sol similarity index 100% rename from tests/ast-parsing/function-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/function-0.4.0.sol diff --git a/tests/ast-parsing/function-0.4.16.sol b/tests/e2e/solc_parsing/test_data/function-0.4.16.sol similarity index 100% rename from tests/ast-parsing/function-0.4.16.sol rename to tests/e2e/solc_parsing/test_data/function-0.4.16.sol diff --git a/tests/ast-parsing/function-0.4.22.sol b/tests/e2e/solc_parsing/test_data/function-0.4.22.sol similarity index 100% rename from tests/ast-parsing/function-0.4.22.sol rename to tests/e2e/solc_parsing/test_data/function-0.4.22.sol diff --git a/tests/ast-parsing/function-0.4.23.sol b/tests/e2e/solc_parsing/test_data/function-0.4.23.sol similarity index 100% rename from tests/ast-parsing/function-0.4.23.sol rename to tests/e2e/solc_parsing/test_data/function-0.4.23.sol diff --git a/tests/ast-parsing/function-0.5.0.sol b/tests/e2e/solc_parsing/test_data/function-0.5.0.sol similarity index 100% rename from tests/ast-parsing/function-0.5.0.sol rename to tests/e2e/solc_parsing/test_data/function-0.5.0.sol diff --git a/tests/ast-parsing/function-0.6.0.sol b/tests/e2e/solc_parsing/test_data/function-0.6.0.sol similarity index 100% rename from tests/ast-parsing/function-0.6.0.sol rename to tests/e2e/solc_parsing/test_data/function-0.6.0.sol diff --git a/tests/ast-parsing/function-0.7.0.sol b/tests/e2e/solc_parsing/test_data/function-0.7.0.sol similarity index 100% rename from tests/ast-parsing/function-0.7.0.sol rename to tests/e2e/solc_parsing/test_data/function-0.7.0.sol diff --git a/tests/ast-parsing/function-0.7.1.sol b/tests/e2e/solc_parsing/test_data/function-0.7.1.sol similarity index 100% rename from tests/ast-parsing/function-0.7.1.sol rename to tests/e2e/solc_parsing/test_data/function-0.7.1.sol diff --git a/tests/ast-parsing/functioncall-0.4.0.sol b/tests/e2e/solc_parsing/test_data/functioncall-0.4.0.sol similarity index 100% rename from tests/ast-parsing/functioncall-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/functioncall-0.4.0.sol diff --git a/tests/ast-parsing/functioncall-0.4.22.sol b/tests/e2e/solc_parsing/test_data/functioncall-0.4.22.sol similarity index 100% rename from tests/ast-parsing/functioncall-0.4.22.sol rename to tests/e2e/solc_parsing/test_data/functioncall-0.4.22.sol diff --git a/tests/ast-parsing/functioncall-0.4.5.sol b/tests/e2e/solc_parsing/test_data/functioncall-0.4.5.sol similarity index 100% rename from tests/ast-parsing/functioncall-0.4.5.sol rename to tests/e2e/solc_parsing/test_data/functioncall-0.4.5.sol diff --git a/tests/ast-parsing/functioncall-0.5.0.sol b/tests/e2e/solc_parsing/test_data/functioncall-0.5.0.sol similarity index 100% rename from tests/ast-parsing/functioncall-0.5.0.sol rename to tests/e2e/solc_parsing/test_data/functioncall-0.5.0.sol diff --git a/tests/ast-parsing/functioncall-0.5.3.sol b/tests/e2e/solc_parsing/test_data/functioncall-0.5.3.sol similarity index 100% rename from tests/ast-parsing/functioncall-0.5.3.sol rename to tests/e2e/solc_parsing/test_data/functioncall-0.5.3.sol diff --git a/tests/ast-parsing/functioncall-0.6.0.sol b/tests/e2e/solc_parsing/test_data/functioncall-0.6.0.sol similarity index 100% rename from tests/ast-parsing/functioncall-0.6.0.sol rename to tests/e2e/solc_parsing/test_data/functioncall-0.6.0.sol diff --git a/tests/ast-parsing/functioncall-0.6.2.sol b/tests/e2e/solc_parsing/test_data/functioncall-0.6.2.sol similarity index 100% rename from tests/ast-parsing/functioncall-0.6.2.sol rename to tests/e2e/solc_parsing/test_data/functioncall-0.6.2.sol diff --git a/tests/ast-parsing/functioncall-0.6.8.sol b/tests/e2e/solc_parsing/test_data/functioncall-0.6.8.sol similarity index 100% rename from tests/ast-parsing/functioncall-0.6.8.sol rename to tests/e2e/solc_parsing/test_data/functioncall-0.6.8.sol diff --git a/tests/ast-parsing/functioncall-0.7.0.sol b/tests/e2e/solc_parsing/test_data/functioncall-0.7.0.sol similarity index 100% rename from tests/ast-parsing/functioncall-0.7.0.sol rename to tests/e2e/solc_parsing/test_data/functioncall-0.7.0.sol diff --git a/tests/ast-parsing/functioncall-0.8.0.sol b/tests/e2e/solc_parsing/test_data/functioncall-0.8.0.sol similarity index 100% rename from tests/ast-parsing/functioncall-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/functioncall-0.8.0.sol diff --git a/tests/ast-parsing/helper/helper.sol b/tests/e2e/solc_parsing/test_data/helper/helper.sol similarity index 100% rename from tests/ast-parsing/helper/helper.sol rename to tests/e2e/solc_parsing/test_data/helper/helper.sol diff --git a/tests/ast-parsing/helper/import-1.sol b/tests/e2e/solc_parsing/test_data/helper/import-1.sol similarity index 100% rename from tests/ast-parsing/helper/import-1.sol rename to tests/e2e/solc_parsing/test_data/helper/import-1.sol diff --git a/tests/ast-parsing/helper/import-2.sol b/tests/e2e/solc_parsing/test_data/helper/import-2.sol similarity index 100% rename from tests/ast-parsing/helper/import-2.sol rename to tests/e2e/solc_parsing/test_data/helper/import-2.sol diff --git a/tests/ast-parsing/helper/interface_with_struct.sol b/tests/e2e/solc_parsing/test_data/helper/interface_with_struct.sol similarity index 100% rename from tests/ast-parsing/helper/interface_with_struct.sol rename to tests/e2e/solc_parsing/test_data/helper/interface_with_struct.sol diff --git a/tests/ast-parsing/helper/nested_import.sol b/tests/e2e/solc_parsing/test_data/helper/nested_import.sol similarity index 100% rename from tests/ast-parsing/helper/nested_import.sol rename to tests/e2e/solc_parsing/test_data/helper/nested_import.sol diff --git a/tests/ast-parsing/if-all.sol b/tests/e2e/solc_parsing/test_data/if-all.sol similarity index 100% rename from tests/ast-parsing/if-all.sol rename to tests/e2e/solc_parsing/test_data/if-all.sol diff --git a/tests/ast-parsing/import-0.4.0.sol b/tests/e2e/solc_parsing/test_data/import-0.4.0.sol similarity index 100% rename from tests/ast-parsing/import-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/import-0.4.0.sol diff --git a/tests/ast-parsing/import-0.4.3.sol b/tests/e2e/solc_parsing/test_data/import-0.4.3.sol similarity index 100% rename from tests/ast-parsing/import-0.4.3.sol rename to tests/e2e/solc_parsing/test_data/import-0.4.3.sol diff --git a/tests/ast-parsing/import_interface_with_struct_from_top_level-0.4.0.sol b/tests/e2e/solc_parsing/test_data/import_interface_with_struct_from_top_level-0.4.0.sol similarity index 100% rename from tests/ast-parsing/import_interface_with_struct_from_top_level-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/import_interface_with_struct_from_top_level-0.4.0.sol diff --git a/tests/ast-parsing/import_interface_with_struct_from_top_level-0.7.6.sol b/tests/e2e/solc_parsing/test_data/import_interface_with_struct_from_top_level-0.7.6.sol similarity index 100% rename from tests/ast-parsing/import_interface_with_struct_from_top_level-0.7.6.sol rename to tests/e2e/solc_parsing/test_data/import_interface_with_struct_from_top_level-0.7.6.sol diff --git a/tests/ast-parsing/indexaccess-all.sol b/tests/e2e/solc_parsing/test_data/indexaccess-all.sol similarity index 100% rename from tests/ast-parsing/indexaccess-all.sol rename to tests/e2e/solc_parsing/test_data/indexaccess-all.sol diff --git a/tests/ast-parsing/indexrangeaccess-0.4.0.sol b/tests/e2e/solc_parsing/test_data/indexrangeaccess-0.4.0.sol similarity index 100% rename from tests/ast-parsing/indexrangeaccess-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/indexrangeaccess-0.4.0.sol diff --git a/tests/ast-parsing/indexrangeaccess-0.6.1.sol b/tests/e2e/solc_parsing/test_data/indexrangeaccess-0.6.1.sol similarity index 100% rename from tests/ast-parsing/indexrangeaccess-0.6.1.sol rename to tests/e2e/solc_parsing/test_data/indexrangeaccess-0.6.1.sol diff --git a/tests/ast-parsing/library_event-0.8.16.sol b/tests/e2e/solc_parsing/test_data/library_event-0.8.16.sol similarity index 100% rename from tests/ast-parsing/library_event-0.8.16.sol rename to tests/e2e/solc_parsing/test_data/library_event-0.8.16.sol diff --git a/tests/ast-parsing/library_implicit_conversion-0.4.0.sol b/tests/e2e/solc_parsing/test_data/library_implicit_conversion-0.4.0.sol similarity index 100% rename from tests/ast-parsing/library_implicit_conversion-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/library_implicit_conversion-0.4.0.sol diff --git a/tests/ast-parsing/library_implicit_conversion-0.5.0.sol b/tests/e2e/solc_parsing/test_data/library_implicit_conversion-0.5.0.sol similarity index 100% rename from tests/ast-parsing/library_implicit_conversion-0.5.0.sol rename to tests/e2e/solc_parsing/test_data/library_implicit_conversion-0.5.0.sol diff --git a/tests/ast-parsing/literal-0.4.0.sol b/tests/e2e/solc_parsing/test_data/literal-0.4.0.sol similarity index 100% rename from tests/ast-parsing/literal-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/literal-0.4.0.sol diff --git a/tests/ast-parsing/literal-0.4.10.sol b/tests/e2e/solc_parsing/test_data/literal-0.4.10.sol similarity index 100% rename from tests/ast-parsing/literal-0.4.10.sol rename to tests/e2e/solc_parsing/test_data/literal-0.4.10.sol diff --git a/tests/ast-parsing/literal-0.5.0.sol b/tests/e2e/solc_parsing/test_data/literal-0.5.0.sol similarity index 100% rename from tests/ast-parsing/literal-0.5.0.sol rename to tests/e2e/solc_parsing/test_data/literal-0.5.0.sol diff --git a/tests/ast-parsing/literal-0.6.0.sol b/tests/e2e/solc_parsing/test_data/literal-0.6.0.sol similarity index 100% rename from tests/ast-parsing/literal-0.6.0.sol rename to tests/e2e/solc_parsing/test_data/literal-0.6.0.sol diff --git a/tests/ast-parsing/literal-0.7.0.sol b/tests/e2e/solc_parsing/test_data/literal-0.7.0.sol similarity index 100% rename from tests/ast-parsing/literal-0.7.0.sol rename to tests/e2e/solc_parsing/test_data/literal-0.7.0.sol diff --git a/tests/ast-parsing/memberaccess-0.4.0.sol b/tests/e2e/solc_parsing/test_data/memberaccess-0.4.0.sol similarity index 100% rename from tests/ast-parsing/memberaccess-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/memberaccess-0.4.0.sol diff --git a/tests/ast-parsing/memberaccess-0.5.14.sol b/tests/e2e/solc_parsing/test_data/memberaccess-0.5.14.sol similarity index 100% rename from tests/ast-parsing/memberaccess-0.5.14.sol rename to tests/e2e/solc_parsing/test_data/memberaccess-0.5.14.sol diff --git a/tests/ast-parsing/memberaccess-0.5.3.sol b/tests/e2e/solc_parsing/test_data/memberaccess-0.5.3.sol similarity index 100% rename from tests/ast-parsing/memberaccess-0.5.3.sol rename to tests/e2e/solc_parsing/test_data/memberaccess-0.5.3.sol diff --git a/tests/ast-parsing/memberaccess-0.6.7.sol b/tests/e2e/solc_parsing/test_data/memberaccess-0.6.7.sol similarity index 100% rename from tests/ast-parsing/memberaccess-0.6.7.sol rename to tests/e2e/solc_parsing/test_data/memberaccess-0.6.7.sol diff --git a/tests/ast-parsing/memberaccess-0.6.8.sol b/tests/e2e/solc_parsing/test_data/memberaccess-0.6.8.sol similarity index 100% rename from tests/ast-parsing/memberaccess-0.6.8.sol rename to tests/e2e/solc_parsing/test_data/memberaccess-0.6.8.sol diff --git a/tests/ast-parsing/minmax-0.4.0.sol b/tests/e2e/solc_parsing/test_data/minmax-0.4.0.sol similarity index 100% rename from tests/ast-parsing/minmax-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/minmax-0.4.0.sol diff --git a/tests/ast-parsing/minmax-0.6.8.sol b/tests/e2e/solc_parsing/test_data/minmax-0.6.8.sol similarity index 100% rename from tests/ast-parsing/minmax-0.6.8.sol rename to tests/e2e/solc_parsing/test_data/minmax-0.6.8.sol diff --git a/tests/ast-parsing/minmax-0.8.8.sol b/tests/e2e/solc_parsing/test_data/minmax-0.8.8.sol similarity index 100% rename from tests/ast-parsing/minmax-0.8.8.sol rename to tests/e2e/solc_parsing/test_data/minmax-0.8.8.sol diff --git a/tests/ast-parsing/modifier-0.7.0.sol b/tests/e2e/solc_parsing/test_data/modifier-0.7.0.sol similarity index 100% rename from tests/ast-parsing/modifier-0.7.0.sol rename to tests/e2e/solc_parsing/test_data/modifier-0.7.0.sol diff --git a/tests/ast-parsing/modifier-all.sol b/tests/e2e/solc_parsing/test_data/modifier-all.sol similarity index 100% rename from tests/ast-parsing/modifier-all.sol rename to tests/e2e/solc_parsing/test_data/modifier-all.sol diff --git a/tests/ast-parsing/modifier_identifier_path.sol b/tests/e2e/solc_parsing/test_data/modifier_identifier_path.sol similarity index 100% rename from tests/ast-parsing/modifier_identifier_path.sol rename to tests/e2e/solc_parsing/test_data/modifier_identifier_path.sol diff --git a/tests/ast-parsing/newexpression-0.4.0.sol b/tests/e2e/solc_parsing/test_data/newexpression-0.4.0.sol similarity index 100% rename from tests/ast-parsing/newexpression-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/newexpression-0.4.0.sol diff --git a/tests/ast-parsing/newexpression-0.5.0.sol b/tests/e2e/solc_parsing/test_data/newexpression-0.5.0.sol similarity index 100% rename from tests/ast-parsing/newexpression-0.5.0.sol rename to tests/e2e/solc_parsing/test_data/newexpression-0.5.0.sol diff --git a/tests/ast-parsing/pragma-0.4.0.sol b/tests/e2e/solc_parsing/test_data/pragma-0.4.0.sol similarity index 100% rename from tests/ast-parsing/pragma-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/pragma-0.4.0.sol diff --git a/tests/ast-parsing/pragma-0.5.0.sol b/tests/e2e/solc_parsing/test_data/pragma-0.5.0.sol similarity index 100% rename from tests/ast-parsing/pragma-0.5.0.sol rename to tests/e2e/solc_parsing/test_data/pragma-0.5.0.sol diff --git a/tests/ast-parsing/pragma-0.6.0.sol b/tests/e2e/solc_parsing/test_data/pragma-0.6.0.sol similarity index 100% rename from tests/ast-parsing/pragma-0.6.0.sol rename to tests/e2e/solc_parsing/test_data/pragma-0.6.0.sol diff --git a/tests/ast-parsing/pragma-0.7.0.sol b/tests/e2e/solc_parsing/test_data/pragma-0.7.0.sol similarity index 100% rename from tests/ast-parsing/pragma-0.7.0.sol rename to tests/e2e/solc_parsing/test_data/pragma-0.7.0.sol diff --git a/tests/ast-parsing/pragma-0.8.0.sol b/tests/e2e/solc_parsing/test_data/pragma-0.8.0.sol similarity index 100% rename from tests/ast-parsing/pragma-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/pragma-0.8.0.sol diff --git a/tests/ast-parsing/push-all.sol b/tests/e2e/solc_parsing/test_data/push-all.sol similarity index 100% rename from tests/ast-parsing/push-all.sol rename to tests/e2e/solc_parsing/test_data/push-all.sol diff --git a/tests/ast-parsing/return-all.sol b/tests/e2e/solc_parsing/test_data/return-all.sol similarity index 100% rename from tests/ast-parsing/return-all.sol rename to tests/e2e/solc_parsing/test_data/return-all.sol diff --git a/tests/ast-parsing/scope-0.4.0.sol b/tests/e2e/solc_parsing/test_data/scope-0.4.0.sol similarity index 100% rename from tests/ast-parsing/scope-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/scope-0.4.0.sol diff --git a/tests/ast-parsing/scope-0.5.0.sol b/tests/e2e/solc_parsing/test_data/scope-0.5.0.sol similarity index 100% rename from tests/ast-parsing/scope-0.5.0.sol rename to tests/e2e/solc_parsing/test_data/scope-0.5.0.sol diff --git a/tests/ast-parsing/struct-0.4.0.sol b/tests/e2e/solc_parsing/test_data/struct-0.4.0.sol similarity index 100% rename from tests/ast-parsing/struct-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/struct-0.4.0.sol diff --git a/tests/ast-parsing/struct-0.6.0.sol b/tests/e2e/solc_parsing/test_data/struct-0.6.0.sol similarity index 100% rename from tests/ast-parsing/struct-0.6.0.sol rename to tests/e2e/solc_parsing/test_data/struct-0.6.0.sol diff --git a/tests/ast-parsing/ternary-with-max.sol b/tests/e2e/solc_parsing/test_data/ternary-with-max.sol similarity index 100% rename from tests/ast-parsing/ternary-with-max.sol rename to tests/e2e/solc_parsing/test_data/ternary-with-max.sol diff --git a/tests/ast-parsing/throw-0.4.0.sol b/tests/e2e/solc_parsing/test_data/throw-0.4.0.sol similarity index 100% rename from tests/ast-parsing/throw-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/throw-0.4.0.sol diff --git a/tests/ast-parsing/throw-0.5.0.sol b/tests/e2e/solc_parsing/test_data/throw-0.5.0.sol similarity index 100% rename from tests/ast-parsing/throw-0.5.0.sol rename to tests/e2e/solc_parsing/test_data/throw-0.5.0.sol diff --git a/tests/ast-parsing/top-level-0.4.0.sol b/tests/e2e/solc_parsing/test_data/top-level-0.4.0.sol similarity index 100% rename from tests/ast-parsing/top-level-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/top-level-0.4.0.sol diff --git a/tests/ast-parsing/top-level-0.7.1.sol b/tests/e2e/solc_parsing/test_data/top-level-0.7.1.sol similarity index 100% rename from tests/ast-parsing/top-level-0.7.1.sol rename to tests/e2e/solc_parsing/test_data/top-level-0.7.1.sol diff --git a/tests/ast-parsing/top-level-0.7.4.sol b/tests/e2e/solc_parsing/test_data/top-level-0.7.4.sol similarity index 100% rename from tests/ast-parsing/top-level-0.7.4.sol rename to tests/e2e/solc_parsing/test_data/top-level-0.7.4.sol diff --git a/tests/ast-parsing/top-level-import-0.4.0.sol b/tests/e2e/solc_parsing/test_data/top-level-import-0.4.0.sol similarity index 100% rename from tests/ast-parsing/top-level-import-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/top-level-import-0.4.0.sol diff --git a/tests/ast-parsing/top-level-import-0.7.1.sol b/tests/e2e/solc_parsing/test_data/top-level-import-0.7.1.sol similarity index 100% rename from tests/ast-parsing/top-level-import-0.7.1.sol rename to tests/e2e/solc_parsing/test_data/top-level-import-0.7.1.sol diff --git a/tests/ast-parsing/top-level-import-bis-0.4.0.sol b/tests/e2e/solc_parsing/test_data/top-level-import-bis-0.4.0.sol similarity index 100% rename from tests/ast-parsing/top-level-import-bis-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/top-level-import-bis-0.4.0.sol diff --git a/tests/ast-parsing/top-level-import-bis-0.7.1.sol b/tests/e2e/solc_parsing/test_data/top-level-import-bis-0.7.1.sol similarity index 100% rename from tests/ast-parsing/top-level-import-bis-0.7.1.sol rename to tests/e2e/solc_parsing/test_data/top-level-import-bis-0.7.1.sol diff --git a/tests/ast-parsing/top-level-nested-import-0.4.0.sol b/tests/e2e/solc_parsing/test_data/top-level-nested-import-0.4.0.sol similarity index 100% rename from tests/ast-parsing/top-level-nested-import-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/top-level-nested-import-0.4.0.sol diff --git a/tests/ast-parsing/top-level-nested-import-0.7.1.sol b/tests/e2e/solc_parsing/test_data/top-level-nested-import-0.7.1.sol similarity index 100% rename from tests/ast-parsing/top-level-nested-import-0.7.1.sol rename to tests/e2e/solc_parsing/test_data/top-level-nested-import-0.7.1.sol diff --git a/tests/ast-parsing/top-level-struct-0.8.0.sol b/tests/e2e/solc_parsing/test_data/top-level-struct-0.8.0.sol similarity index 100% rename from tests/ast-parsing/top-level-struct-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/top-level-struct-0.8.0.sol diff --git a/tests/ast-parsing/top_level_variable-0.4.0.sol b/tests/e2e/solc_parsing/test_data/top_level_variable-0.4.0.sol similarity index 100% rename from tests/ast-parsing/top_level_variable-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/top_level_variable-0.4.0.sol diff --git a/tests/ast-parsing/top_level_variable-0.8.0.sol b/tests/e2e/solc_parsing/test_data/top_level_variable-0.8.0.sol similarity index 100% rename from tests/ast-parsing/top_level_variable-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/top_level_variable-0.8.0.sol diff --git a/tests/ast-parsing/top_level_variable2-0.4.0.sol b/tests/e2e/solc_parsing/test_data/top_level_variable2-0.4.0.sol similarity index 100% rename from tests/ast-parsing/top_level_variable2-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/top_level_variable2-0.4.0.sol diff --git a/tests/ast-parsing/top_level_variable2-0.8.0.sol b/tests/e2e/solc_parsing/test_data/top_level_variable2-0.8.0.sol similarity index 100% rename from tests/ast-parsing/top_level_variable2-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/top_level_variable2-0.8.0.sol diff --git a/tests/ast-parsing/trycatch-0.4.0.sol b/tests/e2e/solc_parsing/test_data/trycatch-0.4.0.sol similarity index 100% rename from tests/ast-parsing/trycatch-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/trycatch-0.4.0.sol diff --git a/tests/ast-parsing/trycatch-0.6.0.sol b/tests/e2e/solc_parsing/test_data/trycatch-0.6.0.sol similarity index 100% rename from tests/ast-parsing/trycatch-0.6.0.sol rename to tests/e2e/solc_parsing/test_data/trycatch-0.6.0.sol diff --git a/tests/ast-parsing/tupleexpression-0.4.0.sol b/tests/e2e/solc_parsing/test_data/tupleexpression-0.4.0.sol similarity index 100% rename from tests/ast-parsing/tupleexpression-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/tupleexpression-0.4.0.sol diff --git a/tests/ast-parsing/tupleexpression-0.4.24.sol b/tests/e2e/solc_parsing/test_data/tupleexpression-0.4.24.sol similarity index 100% rename from tests/ast-parsing/tupleexpression-0.4.24.sol rename to tests/e2e/solc_parsing/test_data/tupleexpression-0.4.24.sol diff --git a/tests/ast-parsing/tupleexpression-0.5.3.sol b/tests/e2e/solc_parsing/test_data/tupleexpression-0.5.3.sol similarity index 100% rename from tests/ast-parsing/tupleexpression-0.5.3.sol rename to tests/e2e/solc_parsing/test_data/tupleexpression-0.5.3.sol diff --git a/tests/ast-parsing/unaryexpression-0.4.0.sol b/tests/e2e/solc_parsing/test_data/unaryexpression-0.4.0.sol similarity index 100% rename from tests/ast-parsing/unaryexpression-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/unaryexpression-0.4.0.sol diff --git a/tests/ast-parsing/unaryexpression-0.5.0.sol b/tests/e2e/solc_parsing/test_data/unaryexpression-0.5.0.sol similarity index 100% rename from tests/ast-parsing/unaryexpression-0.5.0.sol rename to tests/e2e/solc_parsing/test_data/unaryexpression-0.5.0.sol diff --git a/tests/ast-parsing/unchecked-0.4.0.sol b/tests/e2e/solc_parsing/test_data/unchecked-0.4.0.sol similarity index 100% rename from tests/ast-parsing/unchecked-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/unchecked-0.4.0.sol diff --git a/tests/ast-parsing/unchecked-0.8.0.sol b/tests/e2e/solc_parsing/test_data/unchecked-0.8.0.sol similarity index 100% rename from tests/ast-parsing/unchecked-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/unchecked-0.8.0.sol diff --git a/tests/ast-parsing/units_and_global_variables-0.4.0.sol b/tests/e2e/solc_parsing/test_data/units_and_global_variables-0.4.0.sol similarity index 100% rename from tests/ast-parsing/units_and_global_variables-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/units_and_global_variables-0.4.0.sol diff --git a/tests/ast-parsing/units_and_global_variables-0.5.0.sol b/tests/e2e/solc_parsing/test_data/units_and_global_variables-0.5.0.sol similarity index 100% rename from tests/ast-parsing/units_and_global_variables-0.5.0.sol rename to tests/e2e/solc_parsing/test_data/units_and_global_variables-0.5.0.sol diff --git a/tests/ast-parsing/units_and_global_variables-0.5.4.sol b/tests/e2e/solc_parsing/test_data/units_and_global_variables-0.5.4.sol similarity index 100% rename from tests/ast-parsing/units_and_global_variables-0.5.4.sol rename to tests/e2e/solc_parsing/test_data/units_and_global_variables-0.5.4.sol diff --git a/tests/ast-parsing/units_and_global_variables-0.6.0.sol b/tests/e2e/solc_parsing/test_data/units_and_global_variables-0.6.0.sol similarity index 100% rename from tests/ast-parsing/units_and_global_variables-0.6.0.sol rename to tests/e2e/solc_parsing/test_data/units_and_global_variables-0.6.0.sol diff --git a/tests/ast-parsing/units_and_global_variables-0.7.0.sol b/tests/e2e/solc_parsing/test_data/units_and_global_variables-0.7.0.sol similarity index 100% rename from tests/ast-parsing/units_and_global_variables-0.7.0.sol rename to tests/e2e/solc_parsing/test_data/units_and_global_variables-0.7.0.sol diff --git a/tests/ast-parsing/units_and_global_variables-0.8.0.sol b/tests/e2e/solc_parsing/test_data/units_and_global_variables-0.8.0.sol similarity index 100% rename from tests/ast-parsing/units_and_global_variables-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/units_and_global_variables-0.8.0.sol diff --git a/tests/ast-parsing/units_and_global_variables-0.8.12.sol b/tests/e2e/solc_parsing/test_data/units_and_global_variables-0.8.12.sol similarity index 100% rename from tests/ast-parsing/units_and_global_variables-0.8.12.sol rename to tests/e2e/solc_parsing/test_data/units_and_global_variables-0.8.12.sol diff --git a/tests/ast-parsing/units_and_global_variables-0.8.4.sol b/tests/e2e/solc_parsing/test_data/units_and_global_variables-0.8.4.sol similarity index 100% rename from tests/ast-parsing/units_and_global_variables-0.8.4.sol rename to tests/e2e/solc_parsing/test_data/units_and_global_variables-0.8.4.sol diff --git a/tests/ast-parsing/units_and_global_variables-0.8.7.sol b/tests/e2e/solc_parsing/test_data/units_and_global_variables-0.8.7.sol similarity index 100% rename from tests/ast-parsing/units_and_global_variables-0.8.7.sol rename to tests/e2e/solc_parsing/test_data/units_and_global_variables-0.8.7.sol diff --git a/tests/ast-parsing/user_defined_value_type/argument-0.8.8.sol b/tests/e2e/solc_parsing/test_data/user_defined_value_type/argument-0.8.8.sol similarity index 100% rename from tests/ast-parsing/user_defined_value_type/argument-0.8.8.sol rename to tests/e2e/solc_parsing/test_data/user_defined_value_type/argument-0.8.8.sol diff --git a/tests/ast-parsing/user_defined_value_type/calldata-0.8.8.sol b/tests/e2e/solc_parsing/test_data/user_defined_value_type/calldata-0.8.8.sol similarity index 100% rename from tests/ast-parsing/user_defined_value_type/calldata-0.8.8.sol rename to tests/e2e/solc_parsing/test_data/user_defined_value_type/calldata-0.8.8.sol diff --git a/tests/ast-parsing/user_defined_value_type/constant-0.8.8.sol b/tests/e2e/solc_parsing/test_data/user_defined_value_type/constant-0.8.8.sol similarity index 100% rename from tests/ast-parsing/user_defined_value_type/constant-0.8.8.sol rename to tests/e2e/solc_parsing/test_data/user_defined_value_type/constant-0.8.8.sol diff --git a/tests/ast-parsing/user_defined_value_type/erc20-0.8.8.sol b/tests/e2e/solc_parsing/test_data/user_defined_value_type/erc20-0.8.8.sol similarity index 100% rename from tests/ast-parsing/user_defined_value_type/erc20-0.8.8.sol rename to tests/e2e/solc_parsing/test_data/user_defined_value_type/erc20-0.8.8.sol diff --git a/tests/ast-parsing/user_defined_value_type/in_parenthesis-0.8.8.sol b/tests/e2e/solc_parsing/test_data/user_defined_value_type/in_parenthesis-0.8.8.sol similarity index 100% rename from tests/ast-parsing/user_defined_value_type/in_parenthesis-0.8.8.sol rename to tests/e2e/solc_parsing/test_data/user_defined_value_type/in_parenthesis-0.8.8.sol diff --git a/tests/ast-parsing/user_defined_value_type/top-level-0.8.8.sol b/tests/e2e/solc_parsing/test_data/user_defined_value_type/top-level-0.8.8.sol similarity index 100% rename from tests/ast-parsing/user_defined_value_type/top-level-0.8.8.sol rename to tests/e2e/solc_parsing/test_data/user_defined_value_type/top-level-0.8.8.sol diff --git a/tests/ast-parsing/user_defined_value_type/user_defined_types-0.8.8.sol b/tests/e2e/solc_parsing/test_data/user_defined_value_type/user_defined_types-0.8.8.sol similarity index 100% rename from tests/ast-parsing/user_defined_value_type/user_defined_types-0.8.8.sol rename to tests/e2e/solc_parsing/test_data/user_defined_value_type/user_defined_types-0.8.8.sol diff --git a/tests/ast-parsing/user_defined_value_type/using-for-0.8.8.sol b/tests/e2e/solc_parsing/test_data/user_defined_value_type/using-for-0.8.8.sol similarity index 100% rename from tests/ast-parsing/user_defined_value_type/using-for-0.8.8.sol rename to tests/e2e/solc_parsing/test_data/user_defined_value_type/using-for-0.8.8.sol diff --git a/tests/ast-parsing/using-for-0.4.0.sol b/tests/e2e/solc_parsing/test_data/using-for-0.4.0.sol similarity index 100% rename from tests/ast-parsing/using-for-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/using-for-0.4.0.sol diff --git a/tests/ast-parsing/using-for-0.4.1.sol b/tests/e2e/solc_parsing/test_data/using-for-0.4.1.sol similarity index 100% rename from tests/ast-parsing/using-for-0.4.1.sol rename to tests/e2e/solc_parsing/test_data/using-for-0.4.1.sol diff --git a/tests/ast-parsing/using-for-1-0.8.0.sol b/tests/e2e/solc_parsing/test_data/using-for-1-0.8.0.sol similarity index 100% rename from tests/ast-parsing/using-for-1-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/using-for-1-0.8.0.sol diff --git a/tests/ast-parsing/using-for-2-0.8.0.sol b/tests/e2e/solc_parsing/test_data/using-for-2-0.8.0.sol similarity index 100% rename from tests/ast-parsing/using-for-2-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/using-for-2-0.8.0.sol diff --git a/tests/ast-parsing/using-for-3-0.8.0.sol b/tests/e2e/solc_parsing/test_data/using-for-3-0.8.0.sol similarity index 100% rename from tests/ast-parsing/using-for-3-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/using-for-3-0.8.0.sol diff --git a/tests/ast-parsing/using-for-4-0.8.0.sol b/tests/e2e/solc_parsing/test_data/using-for-4-0.8.0.sol similarity index 100% rename from tests/ast-parsing/using-for-4-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/using-for-4-0.8.0.sol diff --git a/tests/ast-parsing/using-for-alias-contract-0.8.0.sol b/tests/e2e/solc_parsing/test_data/using-for-alias-contract-0.8.0.sol similarity index 100% rename from tests/ast-parsing/using-for-alias-contract-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/using-for-alias-contract-0.8.0.sol diff --git a/tests/ast-parsing/using-for-alias-dep1.sol b/tests/e2e/solc_parsing/test_data/using-for-alias-dep1.sol similarity index 100% rename from tests/ast-parsing/using-for-alias-dep1.sol rename to tests/e2e/solc_parsing/test_data/using-for-alias-dep1.sol diff --git a/tests/ast-parsing/using-for-alias-dep2.sol b/tests/e2e/solc_parsing/test_data/using-for-alias-dep2.sol similarity index 100% rename from tests/ast-parsing/using-for-alias-dep2.sol rename to tests/e2e/solc_parsing/test_data/using-for-alias-dep2.sol diff --git a/tests/ast-parsing/using-for-alias-top-level-0.8.0.sol b/tests/e2e/solc_parsing/test_data/using-for-alias-top-level-0.8.0.sol similarity index 100% rename from tests/ast-parsing/using-for-alias-top-level-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/using-for-alias-top-level-0.8.0.sol diff --git a/tests/ast-parsing/using-for-functions-list-1-0.8.0.sol b/tests/e2e/solc_parsing/test_data/using-for-functions-list-1-0.8.0.sol similarity index 100% rename from tests/ast-parsing/using-for-functions-list-1-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/using-for-functions-list-1-0.8.0.sol diff --git a/tests/ast-parsing/using-for-functions-list-2-0.8.0.sol b/tests/e2e/solc_parsing/test_data/using-for-functions-list-2-0.8.0.sol similarity index 100% rename from tests/ast-parsing/using-for-functions-list-2-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/using-for-functions-list-2-0.8.0.sol diff --git a/tests/ast-parsing/using-for-functions-list-3-0.8.0.sol b/tests/e2e/solc_parsing/test_data/using-for-functions-list-3-0.8.0.sol similarity index 100% rename from tests/ast-parsing/using-for-functions-list-3-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/using-for-functions-list-3-0.8.0.sol diff --git a/tests/ast-parsing/using-for-functions-list-4-0.8.0.sol b/tests/e2e/solc_parsing/test_data/using-for-functions-list-4-0.8.0.sol similarity index 100% rename from tests/ast-parsing/using-for-functions-list-4-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/using-for-functions-list-4-0.8.0.sol diff --git a/tests/ast-parsing/using-for-global-0.8.0.sol b/tests/e2e/solc_parsing/test_data/using-for-global-0.8.0.sol similarity index 100% rename from tests/ast-parsing/using-for-global-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/using-for-global-0.8.0.sol diff --git a/tests/ast-parsing/using-for-in-library-0.8.0.sol b/tests/e2e/solc_parsing/test_data/using-for-in-library-0.8.0.sol similarity index 100% rename from tests/ast-parsing/using-for-in-library-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/using-for-in-library-0.8.0.sol diff --git a/tests/ast-parsing/using-for-library-0.8.0.sol b/tests/e2e/solc_parsing/test_data/using-for-library-0.8.0.sol similarity index 100% rename from tests/ast-parsing/using-for-library-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/using-for-library-0.8.0.sol diff --git a/tests/ast-parsing/variable-0.4.0.sol b/tests/e2e/solc_parsing/test_data/variable-0.4.0.sol similarity index 100% rename from tests/ast-parsing/variable-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/variable-0.4.0.sol diff --git a/tests/ast-parsing/variable-0.4.14.sol b/tests/e2e/solc_parsing/test_data/variable-0.4.14.sol similarity index 100% rename from tests/ast-parsing/variable-0.4.14.sol rename to tests/e2e/solc_parsing/test_data/variable-0.4.14.sol diff --git a/tests/ast-parsing/variable-0.4.16.sol b/tests/e2e/solc_parsing/test_data/variable-0.4.16.sol similarity index 100% rename from tests/ast-parsing/variable-0.4.16.sol rename to tests/e2e/solc_parsing/test_data/variable-0.4.16.sol diff --git a/tests/ast-parsing/variable-0.4.5.sol b/tests/e2e/solc_parsing/test_data/variable-0.4.5.sol similarity index 100% rename from tests/ast-parsing/variable-0.4.5.sol rename to tests/e2e/solc_parsing/test_data/variable-0.4.5.sol diff --git a/tests/ast-parsing/variable-0.5.0.sol b/tests/e2e/solc_parsing/test_data/variable-0.5.0.sol similarity index 100% rename from tests/ast-parsing/variable-0.5.0.sol rename to tests/e2e/solc_parsing/test_data/variable-0.5.0.sol diff --git a/tests/ast-parsing/variable-0.6.5.sol b/tests/e2e/solc_parsing/test_data/variable-0.6.5.sol similarity index 100% rename from tests/ast-parsing/variable-0.6.5.sol rename to tests/e2e/solc_parsing/test_data/variable-0.6.5.sol diff --git a/tests/ast-parsing/variable-0.6.9.sol b/tests/e2e/solc_parsing/test_data/variable-0.6.9.sol similarity index 100% rename from tests/ast-parsing/variable-0.6.9.sol rename to tests/e2e/solc_parsing/test_data/variable-0.6.9.sol diff --git a/tests/ast-parsing/variable-0.8.0.sol b/tests/e2e/solc_parsing/test_data/variable-0.8.0.sol similarity index 100% rename from tests/ast-parsing/variable-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/variable-0.8.0.sol diff --git a/tests/ast-parsing/variabledeclaration-0.4.0.sol b/tests/e2e/solc_parsing/test_data/variabledeclaration-0.4.0.sol similarity index 100% rename from tests/ast-parsing/variabledeclaration-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/variabledeclaration-0.4.0.sol diff --git a/tests/ast-parsing/variabledeclaration-0.4.24.sol b/tests/e2e/solc_parsing/test_data/variabledeclaration-0.4.24.sol similarity index 100% rename from tests/ast-parsing/variabledeclaration-0.4.24.sol rename to tests/e2e/solc_parsing/test_data/variabledeclaration-0.4.24.sol diff --git a/tests/ast-parsing/variabledeclaration-0.5.0.sol b/tests/e2e/solc_parsing/test_data/variabledeclaration-0.5.0.sol similarity index 100% rename from tests/ast-parsing/variabledeclaration-0.5.0.sol rename to tests/e2e/solc_parsing/test_data/variabledeclaration-0.5.0.sol diff --git a/tests/ast-parsing/while-all.sol b/tests/e2e/solc_parsing/test_data/while-all.sol similarity index 100% rename from tests/ast-parsing/while-all.sol rename to tests/e2e/solc_parsing/test_data/while-all.sol diff --git a/tests/ast-parsing/yul-0.4.0.sol b/tests/e2e/solc_parsing/test_data/yul-0.4.0.sol similarity index 100% rename from tests/ast-parsing/yul-0.4.0.sol rename to tests/e2e/solc_parsing/test_data/yul-0.4.0.sol diff --git a/tests/ast-parsing/yul-0.4.1.sol b/tests/e2e/solc_parsing/test_data/yul-0.4.1.sol similarity index 100% rename from tests/ast-parsing/yul-0.4.1.sol rename to tests/e2e/solc_parsing/test_data/yul-0.4.1.sol diff --git a/tests/ast-parsing/yul-0.4.11.sol b/tests/e2e/solc_parsing/test_data/yul-0.4.11.sol similarity index 100% rename from tests/ast-parsing/yul-0.4.11.sol rename to tests/e2e/solc_parsing/test_data/yul-0.4.11.sol diff --git a/tests/ast-parsing/yul-0.7.0.sol b/tests/e2e/solc_parsing/test_data/yul-0.7.0.sol similarity index 100% rename from tests/ast-parsing/yul-0.7.0.sol rename to tests/e2e/solc_parsing/test_data/yul-0.7.0.sol diff --git a/tests/ast-parsing/yul-0.7.5.sol b/tests/e2e/solc_parsing/test_data/yul-0.7.5.sol similarity index 100% rename from tests/ast-parsing/yul-0.7.5.sol rename to tests/e2e/solc_parsing/test_data/yul-0.7.5.sol diff --git a/tests/ast-parsing/yul-0.8.0.sol b/tests/e2e/solc_parsing/test_data/yul-0.8.0.sol similarity index 100% rename from tests/ast-parsing/yul-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/yul-0.8.0.sol diff --git a/tests/ast-parsing/yul-state-constant-access.sol b/tests/e2e/solc_parsing/test_data/yul-state-constant-access.sol similarity index 100% rename from tests/ast-parsing/yul-state-constant-access.sol rename to tests/e2e/solc_parsing/test_data/yul-state-constant-access.sol diff --git a/tests/ast-parsing/yul-top-level-0.8.0.sol b/tests/e2e/solc_parsing/test_data/yul-top-level-0.8.0.sol similarity index 100% rename from tests/ast-parsing/yul-top-level-0.8.0.sol rename to tests/e2e/solc_parsing/test_data/yul-top-level-0.8.0.sol From c9fa73b216ab4bb8bba7968ac536434584e76ed7 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 20 Mar 2023 16:07:12 -0500 Subject: [PATCH 100/193] add compilation tests --- .../test_contract_name_collisions/a.sol | 18 + .../test_contract_name_collisions/b.sol | 18 + .../test_data/test_cyclic_import/a.sol | 5 + .../test_data/test_cyclic_import/b.sol | 5 + .../test_node_modules/contracts/MyCoin.sol | 8 + .../test_node_modules/hardhat.config.js | 6 + .../contracts/access/AccessControl.sol | 223 ++++++++ .../access/AccessControlEnumerable.sol | 64 +++ .../contracts/access/IAccessControl.sol | 88 +++ .../access/IAccessControlEnumerable.sol | 31 + .../contracts/access/Ownable.sol | 76 +++ .../contracts/finance/PaymentSplitter.sol | 189 ++++++ .../contracts/finance/VestingWallet.sol | 135 +++++ .../contracts/governance/Governor.sol | 357 ++++++++++++ .../contracts/governance/IGovernor.sol | 218 +++++++ .../governance/TimelockController.sol | 353 ++++++++++++ .../GovernorCompatibilityBravo.sol | 288 ++++++++++ .../IGovernorCompatibilityBravo.sol | 114 ++++ .../extensions/GovernorCountingSimple.sol | 106 ++++ .../extensions/GovernorProposalThreshold.sol | 23 + .../extensions/GovernorSettings.sol | 114 ++++ .../extensions/GovernorTimelockCompound.sol | 244 ++++++++ .../extensions/GovernorTimelockControl.sol | 154 +++++ .../governance/extensions/GovernorVotes.sol | 28 + .../extensions/GovernorVotesComp.sol | 27 + .../GovernorVotesQuorumFraction.sol | 50 ++ .../extensions/IGovernorTimelock.sol | 26 + .../contracts/interfaces/IERC1155.sol | 6 + .../interfaces/IERC1155MetadataURI.sol | 6 + .../contracts/interfaces/IERC1155Receiver.sol | 6 + .../contracts/interfaces/IERC1271.sol | 19 + .../contracts/interfaces/IERC1363.sol | 95 +++ .../contracts/interfaces/IERC1363Receiver.sol | 32 ++ .../contracts/interfaces/IERC1363Spender.sol | 30 + .../contracts/interfaces/IERC165.sol | 6 + .../interfaces/IERC1820Implementer.sol | 6 + .../contracts/interfaces/IERC1820Registry.sol | 6 + .../contracts/interfaces/IERC20.sol | 6 + .../contracts/interfaces/IERC20Metadata.sol | 6 + .../contracts/interfaces/IERC2981.sol | 23 + .../contracts/interfaces/IERC3156.sol | 7 + .../interfaces/IERC3156FlashBorrower.sol | 29 + .../interfaces/IERC3156FlashLender.sol | 43 ++ .../contracts/interfaces/IERC721.sol | 6 + .../interfaces/IERC721Enumerable.sol | 6 + .../contracts/interfaces/IERC721Metadata.sol | 6 + .../contracts/interfaces/IERC721Receiver.sol | 6 + .../contracts/interfaces/IERC777.sol | 6 + .../contracts/interfaces/IERC777Recipient.sol | 6 + .../contracts/interfaces/IERC777Sender.sol | 6 + .../contracts/interfaces/draft-IERC2612.sol | 8 + .../contracts/metatx/ERC2771Context.sol | 40 ++ .../contracts/metatx/MinimalForwarder.sol | 59 ++ .../@openzeppelin/contracts/package.json | 62 ++ .../@openzeppelin/contracts/proxy/Clones.sol | 84 +++ .../contracts/proxy/ERC1967/ERC1967Proxy.sol | 33 ++ .../proxy/ERC1967/ERC1967Upgrade.sol | 194 +++++++ .../@openzeppelin/contracts/proxy/Proxy.sol | 86 +++ .../contracts/proxy/beacon/BeaconProxy.sol | 62 ++ .../contracts/proxy/beacon/IBeacon.sol | 16 + .../proxy/beacon/UpgradeableBeacon.sol | 65 +++ .../proxy/transparent/ProxyAdmin.sol | 81 +++ .../TransparentUpgradeableProxy.sol | 125 ++++ .../contracts/proxy/utils/Initializable.sol | 62 ++ .../contracts/proxy/utils/UUPSUpgradeable.sol | 73 +++ .../contracts/security/Pausable.sol | 91 +++ .../contracts/security/PullPayment.sol | 70 +++ .../contracts/security/ReentrancyGuard.sol | 63 ++ .../contracts/token/ERC1155/ERC1155.sol | 464 +++++++++++++++ .../contracts/token/ERC1155/IERC1155.sol | 125 ++++ .../token/ERC1155/IERC1155Receiver.sol | 53 ++ .../ERC1155/extensions/ERC1155Burnable.sol | 40 ++ .../ERC1155/extensions/ERC1155Pausable.sol | 38 ++ .../ERC1155/extensions/ERC1155Supply.sol | 58 ++ .../extensions/IERC1155MetadataURI.sol | 22 + .../presets/ERC1155PresetMinterPauser.sol | 126 ++++ .../token/ERC1155/utils/ERC1155Holder.sol | 31 + .../token/ERC1155/utils/ERC1155Receiver.sol | 19 + .../contracts/token/ERC20/ERC20.sol | 356 ++++++++++++ .../contracts/token/ERC20/IERC20.sol | 82 +++ .../token/ERC20/extensions/ERC20Burnable.sol | 43 ++ .../token/ERC20/extensions/ERC20Capped.sol | 37 ++ .../token/ERC20/extensions/ERC20FlashMint.sol | 77 +++ .../token/ERC20/extensions/ERC20Pausable.sol | 33 ++ .../token/ERC20/extensions/ERC20Snapshot.sol | 195 +++++++ .../token/ERC20/extensions/ERC20Votes.sol | 260 +++++++++ .../token/ERC20/extensions/ERC20VotesComp.sol | 48 ++ .../token/ERC20/extensions/ERC20Wrapper.sol | 52 ++ .../token/ERC20/extensions/IERC20Metadata.sol | 28 + .../ERC20/extensions/draft-ERC20Permit.sol | 87 +++ .../ERC20/extensions/draft-IERC20Permit.sol | 60 ++ .../ERC20/presets/ERC20PresetFixedSupply.sol | 33 ++ .../ERC20/presets/ERC20PresetMinterPauser.sol | 92 +++ .../contracts/token/ERC20/utils/SafeERC20.sol | 99 ++++ .../token/ERC20/utils/TokenTimelock.sol | 70 +++ .../contracts/token/ERC721/ERC721.sol | 424 ++++++++++++++ .../contracts/token/ERC721/IERC721.sol | 143 +++++ .../token/ERC721/IERC721Receiver.sol | 27 + .../ERC721/extensions/ERC721Burnable.sol | 26 + .../ERC721/extensions/ERC721Enumerable.sol | 163 ++++++ .../ERC721/extensions/ERC721Pausable.sol | 33 ++ .../ERC721/extensions/ERC721URIStorage.sol | 67 +++ .../ERC721/extensions/IERC721Enumerable.sol | 29 + .../ERC721/extensions/IERC721Metadata.sol | 27 + .../ERC721PresetMinterPauserAutoId.sol | 137 +++++ .../token/ERC721/utils/ERC721Holder.sol | 28 + .../contracts/token/ERC777/ERC777.sol | 539 ++++++++++++++++++ .../contracts/token/ERC777/IERC777.sol | 193 +++++++ .../token/ERC777/IERC777Recipient.sol | 35 ++ .../contracts/token/ERC777/IERC777Sender.sol | 35 ++ .../presets/ERC777PresetFixedSupply.sol | 30 + .../@openzeppelin/contracts/utils/Address.sol | 217 +++++++ .../@openzeppelin/contracts/utils/Arrays.sol | 48 ++ .../@openzeppelin/contracts/utils/Context.sol | 24 + .../contracts/utils/Counters.sol | 43 ++ .../@openzeppelin/contracts/utils/Create2.sol | 65 +++ .../contracts/utils/Multicall.sol | 24 + .../contracts/utils/StorageSlot.sol | 84 +++ .../@openzeppelin/contracts/utils/Strings.sol | 67 +++ .../@openzeppelin/contracts/utils/Timers.sol | 73 +++ .../contracts/utils/cryptography/ECDSA.sol | 234 ++++++++ .../utils/cryptography/MerkleProof.sol | 52 ++ .../utils/cryptography/SignatureChecker.sol | 36 ++ .../utils/cryptography/draft-EIP712.sol | 104 ++++ .../utils/escrow/ConditionalEscrow.sol | 25 + .../contracts/utils/escrow/Escrow.sol | 63 ++ .../contracts/utils/escrow/RefundEscrow.sol | 100 ++++ .../contracts/utils/introspection/ERC165.sol | 29 + .../utils/introspection/ERC165Checker.sol | 113 ++++ .../utils/introspection/ERC165Storage.sol | 42 ++ .../introspection/ERC1820Implementer.sol | 44 ++ .../contracts/utils/introspection/IERC165.sol | 25 + .../introspection/IERC1820Implementer.sol | 20 + .../utils/introspection/IERC1820Registry.sol | 116 ++++ .../contracts/utils/math/Math.sol | 43 ++ .../contracts/utils/math/SafeCast.sol | 241 ++++++++ .../contracts/utils/math/SafeMath.sol | 227 ++++++++ .../contracts/utils/math/SignedSafeMath.sol | 68 +++ .../contracts/utils/structs/BitMaps.sol | 55 ++ .../contracts/utils/structs/EnumerableMap.sol | 240 ++++++++ .../contracts/utils/structs/EnumerableSet.sol | 357 ++++++++++++ .../test_data/test_node_modules/package.json | 6 + .../test_data/test_source_unit/README.md | 3 + .../test_data/test_source_unit/foundry.toml | 6 + .../test_source_unit/script/Counter.s.sol | 12 + .../test_source_unit/src/Counter.sol | 14 + .../test_source_unit/src/Counter2.sol | 5 + .../test_source_unit/test/Counter.t.sol | 24 + tests/e2e/compilation/test_resolution.py | 46 ++ tests/e2e/compilation/test_source_unit.py | 46 ++ 150 files changed, 12215 insertions(+) create mode 100644 tests/e2e/compilation/test_data/test_contract_name_collisions/a.sol create mode 100644 tests/e2e/compilation/test_data/test_contract_name_collisions/b.sol create mode 100644 tests/e2e/compilation/test_data/test_cyclic_import/a.sol create mode 100644 tests/e2e/compilation/test_data/test_cyclic_import/b.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/contracts/MyCoin.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/hardhat.config.js create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControl.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControlEnumerable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControl.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControlEnumerable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/Ownable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/finance/PaymentSplitter.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/finance/VestingWallet.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/Governor.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/IGovernor.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/TimelockController.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/GovernorCompatibilityBravo.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorProposalThreshold.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorSettings.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockCompound.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesComp.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155MetadataURI.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155Receiver.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Receiver.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Spender.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC165.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Implementer.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Registry.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20Metadata.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashBorrower.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashLender.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Enumerable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Metadata.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Receiver.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Recipient.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Sender.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/draft-IERC2612.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/metatx/MinimalForwarder.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/package.json create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Clones.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Proxy.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/security/Pausable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/security/PullPayment.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Pausable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Wrapper.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/TokenTimelock.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Pausable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/ERC777.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Sender.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Address.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Arrays.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Context.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Counters.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Create2.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Multicall.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Strings.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Timers.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/ConditionalEscrow.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/Escrow.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/RefundEscrow.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Storage.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC1820Implementer.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Implementer.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/Math.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SignedSafeMath.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol create mode 100644 tests/e2e/compilation/test_data/test_node_modules/package.json create mode 100644 tests/e2e/compilation/test_data/test_source_unit/README.md create mode 100644 tests/e2e/compilation/test_data/test_source_unit/foundry.toml create mode 100644 tests/e2e/compilation/test_data/test_source_unit/script/Counter.s.sol create mode 100644 tests/e2e/compilation/test_data/test_source_unit/src/Counter.sol create mode 100644 tests/e2e/compilation/test_data/test_source_unit/src/Counter2.sol create mode 100644 tests/e2e/compilation/test_data/test_source_unit/test/Counter.t.sol create mode 100644 tests/e2e/compilation/test_resolution.py create mode 100644 tests/e2e/compilation/test_source_unit.py diff --git a/tests/e2e/compilation/test_data/test_contract_name_collisions/a.sol b/tests/e2e/compilation/test_data/test_contract_name_collisions/a.sol new file mode 100644 index 000000000..f69f7e2e3 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_contract_name_collisions/a.sol @@ -0,0 +1,18 @@ +struct St{ + uint a; +} + +contract A{ + function f() public {} +} + +contract B0{ + A a; + St s; + function g() internal returns(uint){ + a.f(); + return s.a; + } +} + + diff --git a/tests/e2e/compilation/test_data/test_contract_name_collisions/b.sol b/tests/e2e/compilation/test_data/test_contract_name_collisions/b.sol new file mode 100644 index 000000000..31765f8f6 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_contract_name_collisions/b.sol @@ -0,0 +1,18 @@ +struct St{ + uint b; +} + +contract A{ + function h() public {} +} + +contract B1{ + A a; + St s; + function g() internal returns(uint){ + a.h(); + return s.b; + } +} + + diff --git a/tests/e2e/compilation/test_data/test_cyclic_import/a.sol b/tests/e2e/compilation/test_data/test_cyclic_import/a.sol new file mode 100644 index 000000000..e5491b986 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_cyclic_import/a.sol @@ -0,0 +1,5 @@ +import "./b.sol"; + +contract A{ + +} diff --git a/tests/e2e/compilation/test_data/test_cyclic_import/b.sol b/tests/e2e/compilation/test_data/test_cyclic_import/b.sol new file mode 100644 index 000000000..7bc85011d --- /dev/null +++ b/tests/e2e/compilation/test_data/test_cyclic_import/b.sol @@ -0,0 +1,5 @@ +import "./a.sol"; + +contract B{ + +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/contracts/MyCoin.sol b/tests/e2e/compilation/test_data/test_node_modules/contracts/MyCoin.sol new file mode 100644 index 000000000..ba1d183ef --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/contracts/MyCoin.sol @@ -0,0 +1,8 @@ +pragma solidity ^0.8.0; + +import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; + +contract MyCoin is ERC721 { + constructor() ERC721("MyCoin", "MC") { + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/hardhat.config.js b/tests/e2e/compilation/test_data/test_node_modules/hardhat.config.js new file mode 100644 index 000000000..54d19f565 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/hardhat.config.js @@ -0,0 +1,6 @@ +module.exports = { + solidity: { + version: "0.8.0" + }, +} + diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControl.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControl.sol new file mode 100644 index 000000000..5c54d33d3 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControl.sol @@ -0,0 +1,223 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (access/AccessControl.sol) + +pragma solidity ^0.8.0; + +import "./IAccessControl.sol"; +import "../utils/Context.sol"; +import "../utils/Strings.sol"; +import "../utils/introspection/ERC165.sol"; + +/** + * @dev Contract module that allows children to implement role-based access + * control mechanisms. This is a lightweight version that doesn't allow enumerating role + * members except through off-chain means by accessing the contract event logs. Some + * applications may benefit from on-chain enumerability, for those cases see + * {AccessControlEnumerable}. + * + * Roles are referred to by their `bytes32` identifier. These should be exposed + * in the external API and be unique. The best way to achieve this is by + * using `public constant` hash digests: + * + * ``` + * bytes32 public constant MY_ROLE = keccak256("MY_ROLE"); + * ``` + * + * Roles can be used to represent a set of permissions. To restrict access to a + * function call, use {hasRole}: + * + * ``` + * function foo() public { + * require(hasRole(MY_ROLE, msg.sender)); + * ... + * } + * ``` + * + * Roles can be granted and revoked dynamically via the {grantRole} and + * {revokeRole} functions. Each role has an associated admin role, and only + * accounts that have a role's admin role can call {grantRole} and {revokeRole}. + * + * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means + * that only accounts with this role will be able to grant or revoke other + * roles. More complex role relationships can be created by using + * {_setRoleAdmin}. + * + * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to + * grant and revoke this role. Extra precautions should be taken to secure + * accounts that have been granted it. + */ +abstract contract AccessControl is Context, IAccessControl, ERC165 { + struct RoleData { + mapping(address => bool) members; + bytes32 adminRole; + } + + mapping(bytes32 => RoleData) private _roles; + + bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00; + + /** + * @dev Modifier that checks that an account has a specific role. Reverts + * with a standardized message including the required role. + * + * The format of the revert reason is given by the following regular expression: + * + * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/ + * + * _Available since v4.1._ + */ + modifier onlyRole(bytes32 role) { + _checkRole(role, _msgSender()); + _; + } + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { + return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId); + } + + /** + * @dev Returns `true` if `account` has been granted `role`. + */ + function hasRole(bytes32 role, address account) public view override returns (bool) { + return _roles[role].members[account]; + } + + /** + * @dev Revert with a standard message if `account` is missing `role`. + * + * The format of the revert reason is given by the following regular expression: + * + * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/ + */ + function _checkRole(bytes32 role, address account) internal view { + if (!hasRole(role, account)) { + revert( + string( + abi.encodePacked( + "AccessControl: account ", + Strings.toHexString(uint160(account), 20), + " is missing role ", + Strings.toHexString(uint256(role), 32) + ) + ) + ); + } + } + + /** + * @dev Returns the admin role that controls `role`. See {grantRole} and + * {revokeRole}. + * + * To change a role's admin, use {_setRoleAdmin}. + */ + function getRoleAdmin(bytes32 role) public view override returns (bytes32) { + return _roles[role].adminRole; + } + + /** + * @dev Grants `role` to `account`. + * + * If `account` had not been already granted `role`, emits a {RoleGranted} + * event. + * + * Requirements: + * + * - the caller must have ``role``'s admin role. + */ + function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) { + _grantRole(role, account); + } + + /** + * @dev Revokes `role` from `account`. + * + * If `account` had been granted `role`, emits a {RoleRevoked} event. + * + * Requirements: + * + * - the caller must have ``role``'s admin role. + */ + function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) { + _revokeRole(role, account); + } + + /** + * @dev Revokes `role` from the calling account. + * + * Roles are often managed via {grantRole} and {revokeRole}: this function's + * purpose is to provide a mechanism for accounts to lose their privileges + * if they are compromised (such as when a trusted device is misplaced). + * + * If the calling account had been revoked `role`, emits a {RoleRevoked} + * event. + * + * Requirements: + * + * - the caller must be `account`. + */ + function renounceRole(bytes32 role, address account) public virtual override { + require(account == _msgSender(), "AccessControl: can only renounce roles for self"); + + _revokeRole(role, account); + } + + /** + * @dev Grants `role` to `account`. + * + * If `account` had not been already granted `role`, emits a {RoleGranted} + * event. Note that unlike {grantRole}, this function doesn't perform any + * checks on the calling account. + * + * [WARNING] + * ==== + * This function should only be called from the constructor when setting + * up the initial roles for the system. + * + * Using this function in any other way is effectively circumventing the admin + * system imposed by {AccessControl}. + * ==== + * + * NOTE: This function is deprecated in favor of {_grantRole}. + */ + function _setupRole(bytes32 role, address account) internal virtual { + _grantRole(role, account); + } + + /** + * @dev Sets `adminRole` as ``role``'s admin role. + * + * Emits a {RoleAdminChanged} event. + */ + function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual { + bytes32 previousAdminRole = getRoleAdmin(role); + _roles[role].adminRole = adminRole; + emit RoleAdminChanged(role, previousAdminRole, adminRole); + } + + /** + * @dev Grants `role` to `account`. + * + * Internal function without access restriction. + */ + function _grantRole(bytes32 role, address account) internal virtual { + if (!hasRole(role, account)) { + _roles[role].members[account] = true; + emit RoleGranted(role, account, _msgSender()); + } + } + + /** + * @dev Revokes `role` from `account`. + * + * Internal function without access restriction. + */ + function _revokeRole(bytes32 role, address account) internal virtual { + if (hasRole(role, account)) { + _roles[role].members[account] = false; + emit RoleRevoked(role, account, _msgSender()); + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControlEnumerable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControlEnumerable.sol new file mode 100644 index 000000000..f6fba1952 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControlEnumerable.sol @@ -0,0 +1,64 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (access/AccessControlEnumerable.sol) + +pragma solidity ^0.8.0; + +import "./IAccessControlEnumerable.sol"; +import "./AccessControl.sol"; +import "../utils/structs/EnumerableSet.sol"; + +/** + * @dev Extension of {AccessControl} that allows enumerating the members of each role. + */ +abstract contract AccessControlEnumerable is IAccessControlEnumerable, AccessControl { + using EnumerableSet for EnumerableSet.AddressSet; + + mapping(bytes32 => EnumerableSet.AddressSet) private _roleMembers; + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { + return interfaceId == type(IAccessControlEnumerable).interfaceId || super.supportsInterface(interfaceId); + } + + /** + * @dev Returns one of the accounts that have `role`. `index` must be a + * value between 0 and {getRoleMemberCount}, non-inclusive. + * + * Role bearers are not sorted in any particular way, and their ordering may + * change at any point. + * + * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure + * you perform all queries on the same block. See the following + * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] + * for more information. + */ + function getRoleMember(bytes32 role, uint256 index) public view override returns (address) { + return _roleMembers[role].at(index); + } + + /** + * @dev Returns the number of accounts that have `role`. Can be used + * together with {getRoleMember} to enumerate all bearers of a role. + */ + function getRoleMemberCount(bytes32 role) public view override returns (uint256) { + return _roleMembers[role].length(); + } + + /** + * @dev Overload {_grantRole} to track enumerable memberships + */ + function _grantRole(bytes32 role, address account) internal virtual override { + super._grantRole(role, account); + _roleMembers[role].add(account); + } + + /** + * @dev Overload {_revokeRole} to track enumerable memberships + */ + function _revokeRole(bytes32 role, address account) internal virtual override { + super._revokeRole(role, account); + _roleMembers[role].remove(account); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControl.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControl.sol new file mode 100644 index 000000000..cf09fe791 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControl.sol @@ -0,0 +1,88 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (access/IAccessControl.sol) + +pragma solidity ^0.8.0; + +/** + * @dev External interface of AccessControl declared to support ERC165 detection. + */ +interface IAccessControl { + /** + * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` + * + * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite + * {RoleAdminChanged} not being emitted signaling this. + * + * _Available since v3.1._ + */ + event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole); + + /** + * @dev Emitted when `account` is granted `role`. + * + * `sender` is the account that originated the contract call, an admin role + * bearer except when using {AccessControl-_setupRole}. + */ + event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender); + + /** + * @dev Emitted when `account` is revoked `role`. + * + * `sender` is the account that originated the contract call: + * - if using `revokeRole`, it is the admin role bearer + * - if using `renounceRole`, it is the role bearer (i.e. `account`) + */ + event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender); + + /** + * @dev Returns `true` if `account` has been granted `role`. + */ + function hasRole(bytes32 role, address account) external view returns (bool); + + /** + * @dev Returns the admin role that controls `role`. See {grantRole} and + * {revokeRole}. + * + * To change a role's admin, use {AccessControl-_setRoleAdmin}. + */ + function getRoleAdmin(bytes32 role) external view returns (bytes32); + + /** + * @dev Grants `role` to `account`. + * + * If `account` had not been already granted `role`, emits a {RoleGranted} + * event. + * + * Requirements: + * + * - the caller must have ``role``'s admin role. + */ + function grantRole(bytes32 role, address account) external; + + /** + * @dev Revokes `role` from `account`. + * + * If `account` had been granted `role`, emits a {RoleRevoked} event. + * + * Requirements: + * + * - the caller must have ``role``'s admin role. + */ + function revokeRole(bytes32 role, address account) external; + + /** + * @dev Revokes `role` from the calling account. + * + * Roles are often managed via {grantRole} and {revokeRole}: this function's + * purpose is to provide a mechanism for accounts to lose their privileges + * if they are compromised (such as when a trusted device is misplaced). + * + * If the calling account had been granted `role`, emits a {RoleRevoked} + * event. + * + * Requirements: + * + * - the caller must be `account`. + */ + function renounceRole(bytes32 role, address account) external; +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControlEnumerable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControlEnumerable.sol new file mode 100644 index 000000000..985a69115 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControlEnumerable.sol @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (access/IAccessControlEnumerable.sol) + +pragma solidity ^0.8.0; + +import "./IAccessControl.sol"; + +/** + * @dev External interface of AccessControlEnumerable declared to support ERC165 detection. + */ +interface IAccessControlEnumerable is IAccessControl { + /** + * @dev Returns one of the accounts that have `role`. `index` must be a + * value between 0 and {getRoleMemberCount}, non-inclusive. + * + * Role bearers are not sorted in any particular way, and their ordering may + * change at any point. + * + * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure + * you perform all queries on the same block. See the following + * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] + * for more information. + */ + function getRoleMember(bytes32 role, uint256 index) external view returns (address); + + /** + * @dev Returns the number of accounts that have `role`. Can be used + * together with {getRoleMember} to enumerate all bearers of a role. + */ + function getRoleMemberCount(bytes32 role) external view returns (uint256); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/Ownable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/Ownable.sol new file mode 100644 index 000000000..04f3f14d5 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/access/Ownable.sol @@ -0,0 +1,76 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (access/Ownable.sol) + +pragma solidity ^0.8.0; + +import "../utils/Context.sol"; + +/** + * @dev Contract module which provides a basic access control mechanism, where + * there is an account (an owner) that can be granted exclusive access to + * specific functions. + * + * By default, the owner account will be the one that deploys the contract. This + * can later be changed with {transferOwnership}. + * + * This module is used through inheritance. It will make available the modifier + * `onlyOwner`, which can be applied to your functions to restrict their use to + * the owner. + */ +abstract contract Ownable is Context { + address private _owner; + + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + /** + * @dev Initializes the contract setting the deployer as the initial owner. + */ + constructor() { + _transferOwnership(_msgSender()); + } + + /** + * @dev Returns the address of the current owner. + */ + function owner() public view virtual returns (address) { + return _owner; + } + + /** + * @dev Throws if called by any account other than the owner. + */ + modifier onlyOwner() { + require(owner() == _msgSender(), "Ownable: caller is not the owner"); + _; + } + + /** + * @dev Leaves the contract without owner. It will not be possible to call + * `onlyOwner` functions anymore. Can only be called by the current owner. + * + * NOTE: Renouncing ownership will leave the contract without an owner, + * thereby removing any functionality that is only available to the owner. + */ + function renounceOwnership() public virtual onlyOwner { + _transferOwnership(address(0)); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Can only be called by the current owner. + */ + function transferOwnership(address newOwner) public virtual onlyOwner { + require(newOwner != address(0), "Ownable: new owner is the zero address"); + _transferOwnership(newOwner); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Internal function without access restriction. + */ + function _transferOwnership(address newOwner) internal virtual { + address oldOwner = _owner; + _owner = newOwner; + emit OwnershipTransferred(oldOwner, newOwner); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/finance/PaymentSplitter.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/finance/PaymentSplitter.sol new file mode 100644 index 000000000..43e28b268 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/finance/PaymentSplitter.sol @@ -0,0 +1,189 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (finance/PaymentSplitter.sol) + +pragma solidity ^0.8.0; + +import "../token/ERC20/utils/SafeERC20.sol"; +import "../utils/Address.sol"; +import "../utils/Context.sol"; + +/** + * @title PaymentSplitter + * @dev This contract allows to split Ether payments among a group of accounts. The sender does not need to be aware + * that the Ether will be split in this way, since it is handled transparently by the contract. + * + * The split can be in equal parts or in any other arbitrary proportion. The way this is specified is by assigning each + * account to a number of shares. Of all the Ether that this contract receives, each account will then be able to claim + * an amount proportional to the percentage of total shares they were assigned. + * + * `PaymentSplitter` follows a _pull payment_ model. This means that payments are not automatically forwarded to the + * accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {release} + * function. + * + * NOTE: This contract assumes that ERC20 tokens will behave similarly to native tokens (Ether). Rebasing tokens, and + * tokens that apply fees during transfers, are likely to not be supported as expected. If in doubt, we encourage you + * to run tests before sending real value to this contract. + */ +contract PaymentSplitter is Context { + event PayeeAdded(address account, uint256 shares); + event PaymentReleased(address to, uint256 amount); + event ERC20PaymentReleased(IERC20 indexed token, address to, uint256 amount); + event PaymentReceived(address from, uint256 amount); + + uint256 private _totalShares; + uint256 private _totalReleased; + + mapping(address => uint256) private _shares; + mapping(address => uint256) private _released; + address[] private _payees; + + mapping(IERC20 => uint256) private _erc20TotalReleased; + mapping(IERC20 => mapping(address => uint256)) private _erc20Released; + + /** + * @dev Creates an instance of `PaymentSplitter` where each account in `payees` is assigned the number of shares at + * the matching position in the `shares` array. + * + * All addresses in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no + * duplicates in `payees`. + */ + constructor(address[] memory payees, uint256[] memory shares_) payable { + require(payees.length == shares_.length, "PaymentSplitter: payees and shares length mismatch"); + require(payees.length > 0, "PaymentSplitter: no payees"); + + for (uint256 i = 0; i < payees.length; i++) { + _addPayee(payees[i], shares_[i]); + } + } + + /** + * @dev The Ether received will be logged with {PaymentReceived} events. Note that these events are not fully + * reliable: it's possible for a contract to receive Ether without triggering this function. This only affects the + * reliability of the events, and not the actual splitting of Ether. + * + * To learn more about this see the Solidity documentation for + * https://solidity.readthedocs.io/en/latest/contracts.html#fallback-function[fallback + * functions]. + */ + receive() external payable virtual { + emit PaymentReceived(_msgSender(), msg.value); + } + + /** + * @dev Getter for the total shares held by payees. + */ + function totalShares() public view returns (uint256) { + return _totalShares; + } + + /** + * @dev Getter for the total amount of Ether already released. + */ + function totalReleased() public view returns (uint256) { + return _totalReleased; + } + + /** + * @dev Getter for the total amount of `token` already released. `token` should be the address of an IERC20 + * contract. + */ + function totalReleased(IERC20 token) public view returns (uint256) { + return _erc20TotalReleased[token]; + } + + /** + * @dev Getter for the amount of shares held by an account. + */ + function shares(address account) public view returns (uint256) { + return _shares[account]; + } + + /** + * @dev Getter for the amount of Ether already released to a payee. + */ + function released(address account) public view returns (uint256) { + return _released[account]; + } + + /** + * @dev Getter for the amount of `token` tokens already released to a payee. `token` should be the address of an + * IERC20 contract. + */ + function released(IERC20 token, address account) public view returns (uint256) { + return _erc20Released[token][account]; + } + + /** + * @dev Getter for the address of the payee number `index`. + */ + function payee(uint256 index) public view returns (address) { + return _payees[index]; + } + + /** + * @dev Triggers a transfer to `account` of the amount of Ether they are owed, according to their percentage of the + * total shares and their previous withdrawals. + */ + function release(address payable account) public virtual { + require(_shares[account] > 0, "PaymentSplitter: account has no shares"); + + uint256 totalReceived = address(this).balance + totalReleased(); + uint256 payment = _pendingPayment(account, totalReceived, released(account)); + + require(payment != 0, "PaymentSplitter: account is not due payment"); + + _released[account] += payment; + _totalReleased += payment; + + Address.sendValue(account, payment); + emit PaymentReleased(account, payment); + } + + /** + * @dev Triggers a transfer to `account` of the amount of `token` tokens they are owed, according to their + * percentage of the total shares and their previous withdrawals. `token` must be the address of an IERC20 + * contract. + */ + function release(IERC20 token, address account) public virtual { + require(_shares[account] > 0, "PaymentSplitter: account has no shares"); + + uint256 totalReceived = token.balanceOf(address(this)) + totalReleased(token); + uint256 payment = _pendingPayment(account, totalReceived, released(token, account)); + + require(payment != 0, "PaymentSplitter: account is not due payment"); + + _erc20Released[token][account] += payment; + _erc20TotalReleased[token] += payment; + + SafeERC20.safeTransfer(token, account, payment); + emit ERC20PaymentReleased(token, account, payment); + } + + /** + * @dev internal logic for computing the pending payment of an `account` given the token historical balances and + * already released amounts. + */ + function _pendingPayment( + address account, + uint256 totalReceived, + uint256 alreadyReleased + ) private view returns (uint256) { + return (totalReceived * _shares[account]) / _totalShares - alreadyReleased; + } + + /** + * @dev Add a new payee to the contract. + * @param account The address of the payee to add. + * @param shares_ The number of shares owned by the payee. + */ + function _addPayee(address account, uint256 shares_) private { + require(account != address(0), "PaymentSplitter: account is the zero address"); + require(shares_ > 0, "PaymentSplitter: shares are 0"); + require(_shares[account] == 0, "PaymentSplitter: account already has shares"); + + _payees.push(account); + _shares[account] = shares_; + _totalShares = _totalShares + shares_; + emit PayeeAdded(account, shares_); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/finance/VestingWallet.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/finance/VestingWallet.sol new file mode 100644 index 000000000..304f813f2 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/finance/VestingWallet.sol @@ -0,0 +1,135 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (finance/VestingWallet.sol) +pragma solidity ^0.8.0; + +import "../token/ERC20/utils/SafeERC20.sol"; +import "../utils/Address.sol"; +import "../utils/Context.sol"; +import "../utils/math/Math.sol"; + +/** + * @title VestingWallet + * @dev This contract handles the vesting of Eth and ERC20 tokens for a given beneficiary. Custody of multiple tokens + * can be given to this contract, which will release the token to the beneficiary following a given vesting schedule. + * The vesting schedule is customizable through the {vestedAmount} function. + * + * Any token transferred to this contract will follow the vesting schedule as if they were locked from the beginning. + * Consequently, if the vesting has already started, any amount of tokens sent to this contract will (at least partly) + * be immediately releasable. + */ +contract VestingWallet is Context { + event EtherReleased(uint256 amount); + event ERC20Released(address indexed token, uint256 amount); + + uint256 private _released; + mapping(address => uint256) private _erc20Released; + address private immutable _beneficiary; + uint64 private immutable _start; + uint64 private immutable _duration; + + /** + * @dev Set the beneficiary, start timestamp and vesting duration of the vesting wallet. + */ + constructor( + address beneficiaryAddress, + uint64 startTimestamp, + uint64 durationSeconds + ) { + require(beneficiaryAddress != address(0), "VestingWallet: beneficiary is zero address"); + _beneficiary = beneficiaryAddress; + _start = startTimestamp; + _duration = durationSeconds; + } + + /** + * @dev The contract should be able to receive Eth. + */ + receive() external payable virtual {} + + /** + * @dev Getter for the beneficiary address. + */ + function beneficiary() public view virtual returns (address) { + return _beneficiary; + } + + /** + * @dev Getter for the start timestamp. + */ + function start() public view virtual returns (uint256) { + return _start; + } + + /** + * @dev Getter for the vesting duration. + */ + function duration() public view virtual returns (uint256) { + return _duration; + } + + /** + * @dev Amount of eth already released + */ + function released() public view virtual returns (uint256) { + return _released; + } + + /** + * @dev Amount of token already released + */ + function released(address token) public view virtual returns (uint256) { + return _erc20Released[token]; + } + + /** + * @dev Release the native token (ether) that have already vested. + * + * Emits a {TokensReleased} event. + */ + function release() public virtual { + uint256 releasable = vestedAmount(uint64(block.timestamp)) - released(); + _released += releasable; + emit EtherReleased(releasable); + Address.sendValue(payable(beneficiary()), releasable); + } + + /** + * @dev Release the tokens that have already vested. + * + * Emits a {TokensReleased} event. + */ + function release(address token) public virtual { + uint256 releasable = vestedAmount(token, uint64(block.timestamp)) - released(token); + _erc20Released[token] += releasable; + emit ERC20Released(token, releasable); + SafeERC20.safeTransfer(IERC20(token), beneficiary(), releasable); + } + + /** + * @dev Calculates the amount of ether that has already vested. Default implementation is a linear vesting curve. + */ + function vestedAmount(uint64 timestamp) public view virtual returns (uint256) { + return _vestingSchedule(address(this).balance + released(), timestamp); + } + + /** + * @dev Calculates the amount of tokens that has already vested. Default implementation is a linear vesting curve. + */ + function vestedAmount(address token, uint64 timestamp) public view virtual returns (uint256) { + return _vestingSchedule(IERC20(token).balanceOf(address(this)) + released(token), timestamp); + } + + /** + * @dev Virtual implementation of the vesting formula. This returns the amout vested, as a function of time, for + * an asset given its total historical allocation. + */ + function _vestingSchedule(uint256 totalAllocation, uint64 timestamp) internal view virtual returns (uint256) { + if (timestamp < start()) { + return 0; + } else if (timestamp > start() + duration()) { + return totalAllocation; + } else { + return (totalAllocation * (timestamp - start())) / duration(); + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/Governor.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/Governor.sol new file mode 100644 index 000000000..235b76891 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/Governor.sol @@ -0,0 +1,357 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (governance/Governor.sol) + +pragma solidity ^0.8.0; + +import "../utils/cryptography/ECDSA.sol"; +import "../utils/cryptography/draft-EIP712.sol"; +import "../utils/introspection/ERC165.sol"; +import "../utils/math/SafeCast.sol"; +import "../utils/Address.sol"; +import "../utils/Context.sol"; +import "../utils/Timers.sol"; +import "./IGovernor.sol"; + +/** + * @dev Core of the governance system, designed to be extended though various modules. + * + * This contract is abstract and requires several function to be implemented in various modules: + * + * - A counting module must implement {quorum}, {_quorumReached}, {_voteSucceeded} and {_countVote} + * - A voting module must implement {getVotes} + * - Additionanly, the {votingPeriod} must also be implemented + * + * _Available since v4.3._ + */ +abstract contract Governor is Context, ERC165, EIP712, IGovernor { + using SafeCast for uint256; + using Timers for Timers.BlockNumber; + + bytes32 public constant BALLOT_TYPEHASH = keccak256("Ballot(uint256 proposalId,uint8 support)"); + + struct ProposalCore { + Timers.BlockNumber voteStart; + Timers.BlockNumber voteEnd; + bool executed; + bool canceled; + } + + string private _name; + + mapping(uint256 => ProposalCore) private _proposals; + + /** + * @dev Restrict access to governor executing address. Some module might override the _executor function to make + * sure this modifier is consistant with the execution model. + */ + modifier onlyGovernance() { + require(_msgSender() == _executor(), "Governor: onlyGovernance"); + _; + } + + /** + * @dev Sets the value for {name} and {version} + */ + constructor(string memory name_) EIP712(name_, version()) { + _name = name_; + } + + /** + * @dev Function to receive ETH that will be handled by the governor (disabled if executor is a third party contract) + */ + receive() external payable virtual { + require(_executor() == address(this)); + } + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC165) returns (bool) { + return interfaceId == type(IGovernor).interfaceId || super.supportsInterface(interfaceId); + } + + /** + * @dev See {IGovernor-name}. + */ + function name() public view virtual override returns (string memory) { + return _name; + } + + /** + * @dev See {IGovernor-version}. + */ + function version() public view virtual override returns (string memory) { + return "1"; + } + + /** + * @dev See {IGovernor-hashProposal}. + * + * The proposal id is produced by hashing the RLC encoded `targets` array, the `values` array, the `calldatas` array + * and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id + * can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in + * advance, before the proposal is submitted. + * + * Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the + * same proposal (with same operation and same description) will have the same id if submitted on multiple governors + * accross multiple networks. This also means that in order to execute the same operation twice (on the same + * governor) the proposer will have to change the description in order to avoid proposal id conflicts. + */ + function hashProposal( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) public pure virtual override returns (uint256) { + return uint256(keccak256(abi.encode(targets, values, calldatas, descriptionHash))); + } + + /** + * @dev See {IGovernor-state}. + */ + function state(uint256 proposalId) public view virtual override returns (ProposalState) { + ProposalCore memory proposal = _proposals[proposalId]; + + if (proposal.executed) { + return ProposalState.Executed; + } else if (proposal.canceled) { + return ProposalState.Canceled; + } else if (proposal.voteStart.getDeadline() >= block.number) { + return ProposalState.Pending; + } else if (proposal.voteEnd.getDeadline() >= block.number) { + return ProposalState.Active; + } else if (proposal.voteEnd.isExpired()) { + return + _quorumReached(proposalId) && _voteSucceeded(proposalId) + ? ProposalState.Succeeded + : ProposalState.Defeated; + } else { + revert("Governor: unknown proposal id"); + } + } + + /** + * @dev See {IGovernor-proposalSnapshot}. + */ + function proposalSnapshot(uint256 proposalId) public view virtual override returns (uint256) { + return _proposals[proposalId].voteStart.getDeadline(); + } + + /** + * @dev See {IGovernor-proposalDeadline}. + */ + function proposalDeadline(uint256 proposalId) public view virtual override returns (uint256) { + return _proposals[proposalId].voteEnd.getDeadline(); + } + + /** + * @dev Part of the Governor Bravo's interface: _"The number of votes required in order for a voter to become a proposer"_. + */ + function proposalThreshold() public view virtual returns (uint256) { + return 0; + } + + /** + * @dev Amount of votes already cast passes the threshold limit. + */ + function _quorumReached(uint256 proposalId) internal view virtual returns (bool); + + /** + * @dev Is the proposal successful or not. + */ + function _voteSucceeded(uint256 proposalId) internal view virtual returns (bool); + + /** + * @dev Register a vote with a given support and voting weight. + * + * Note: Support is generic and can represent various things depending on the voting system used. + */ + function _countVote( + uint256 proposalId, + address account, + uint8 support, + uint256 weight + ) internal virtual; + + /** + * @dev See {IGovernor-propose}. + */ + function propose( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + string memory description + ) public virtual override returns (uint256) { + require( + getVotes(msg.sender, block.number - 1) >= proposalThreshold(), + "GovernorCompatibilityBravo: proposer votes below proposal threshold" + ); + + uint256 proposalId = hashProposal(targets, values, calldatas, keccak256(bytes(description))); + + require(targets.length == values.length, "Governor: invalid proposal length"); + require(targets.length == calldatas.length, "Governor: invalid proposal length"); + require(targets.length > 0, "Governor: empty proposal"); + + ProposalCore storage proposal = _proposals[proposalId]; + require(proposal.voteStart.isUnset(), "Governor: proposal already exists"); + + uint64 snapshot = block.number.toUint64() + votingDelay().toUint64(); + uint64 deadline = snapshot + votingPeriod().toUint64(); + + proposal.voteStart.setDeadline(snapshot); + proposal.voteEnd.setDeadline(deadline); + + emit ProposalCreated( + proposalId, + _msgSender(), + targets, + values, + new string[](targets.length), + calldatas, + snapshot, + deadline, + description + ); + + return proposalId; + } + + /** + * @dev See {IGovernor-execute}. + */ + function execute( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) public payable virtual override returns (uint256) { + uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash); + + ProposalState status = state(proposalId); + require( + status == ProposalState.Succeeded || status == ProposalState.Queued, + "Governor: proposal not successful" + ); + _proposals[proposalId].executed = true; + + emit ProposalExecuted(proposalId); + + _execute(proposalId, targets, values, calldatas, descriptionHash); + + return proposalId; + } + + /** + * @dev Internal execution mechanism. Can be overriden to implement different execution mechanism + */ + function _execute( + uint256, /* proposalId */ + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 /*descriptionHash*/ + ) internal virtual { + string memory errorMessage = "Governor: call reverted without message"; + for (uint256 i = 0; i < targets.length; ++i) { + (bool success, bytes memory returndata) = targets[i].call{value: values[i]}(calldatas[i]); + Address.verifyCallResult(success, returndata, errorMessage); + } + } + + /** + * @dev Internal cancel mechanism: locks up the proposal timer, preventing it from being re-submitted. Marks it as + * canceled to allow distinguishing it from executed proposals. + * + * Emits a {IGovernor-ProposalCanceled} event. + */ + function _cancel( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) internal virtual returns (uint256) { + uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash); + ProposalState status = state(proposalId); + + require( + status != ProposalState.Canceled && status != ProposalState.Expired && status != ProposalState.Executed, + "Governor: proposal not active" + ); + _proposals[proposalId].canceled = true; + + emit ProposalCanceled(proposalId); + + return proposalId; + } + + /** + * @dev See {IGovernor-castVote}. + */ + function castVote(uint256 proposalId, uint8 support) public virtual override returns (uint256) { + address voter = _msgSender(); + return _castVote(proposalId, voter, support, ""); + } + + /** + * @dev See {IGovernor-castVoteWithReason}. + */ + function castVoteWithReason( + uint256 proposalId, + uint8 support, + string calldata reason + ) public virtual override returns (uint256) { + address voter = _msgSender(); + return _castVote(proposalId, voter, support, reason); + } + + /** + * @dev See {IGovernor-castVoteBySig}. + */ + function castVoteBySig( + uint256 proposalId, + uint8 support, + uint8 v, + bytes32 r, + bytes32 s + ) public virtual override returns (uint256) { + address voter = ECDSA.recover( + _hashTypedDataV4(keccak256(abi.encode(BALLOT_TYPEHASH, proposalId, support))), + v, + r, + s + ); + return _castVote(proposalId, voter, support, ""); + } + + /** + * @dev Internal vote casting mechanism: Check that the vote is pending, that it has not been cast yet, retrieve + * voting weight using {IGovernor-getVotes} and call the {_countVote} internal function. + * + * Emits a {IGovernor-VoteCast} event. + */ + function _castVote( + uint256 proposalId, + address account, + uint8 support, + string memory reason + ) internal virtual returns (uint256) { + ProposalCore storage proposal = _proposals[proposalId]; + require(state(proposalId) == ProposalState.Active, "Governor: vote not currently active"); + + uint256 weight = getVotes(account, proposal.voteStart.getDeadline()); + _countVote(proposalId, account, support, weight); + + emit VoteCast(account, proposalId, support, weight, reason); + + return weight; + } + + /** + * @dev Address through which the governor executes action. Will be overloaded by module that execute actions + * through another contract such as a timelock. + */ + function _executor() internal view virtual returns (address) { + return address(this); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/IGovernor.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/IGovernor.sol new file mode 100644 index 000000000..50d9d9952 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/IGovernor.sol @@ -0,0 +1,218 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (governance/IGovernor.sol) + +pragma solidity ^0.8.0; + +import "../utils/introspection/ERC165.sol"; + +/** + * @dev Interface of the {Governor} core. + * + * _Available since v4.3._ + */ +abstract contract IGovernor is IERC165 { + enum ProposalState { + Pending, + Active, + Canceled, + Defeated, + Succeeded, + Queued, + Expired, + Executed + } + + /** + * @dev Emitted when a proposal is created. + */ + event ProposalCreated( + uint256 proposalId, + address proposer, + address[] targets, + uint256[] values, + string[] signatures, + bytes[] calldatas, + uint256 startBlock, + uint256 endBlock, + string description + ); + + /** + * @dev Emitted when a proposal is canceled. + */ + event ProposalCanceled(uint256 proposalId); + + /** + * @dev Emitted when a proposal is executed. + */ + event ProposalExecuted(uint256 proposalId); + + /** + * @dev Emitted when a vote is cast. + * + * Note: `support` values should be seen as buckets. There interpretation depends on the voting module used. + */ + event VoteCast(address indexed voter, uint256 proposalId, uint8 support, uint256 weight, string reason); + + /** + * @notice module:core + * @dev Name of the governor instance (used in building the ERC712 domain separator). + */ + function name() public view virtual returns (string memory); + + /** + * @notice module:core + * @dev Version of the governor instance (used in building the ERC712 domain separator). Default: "1" + */ + function version() public view virtual returns (string memory); + + /** + * @notice module:voting + * @dev A description of the possible `support` values for {castVote} and the way these votes are counted, meant to + * be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of + * key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. + * + * There are 2 standard keys: `support` and `quorum`. + * + * - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. + * - `quorum=bravo` means that only For votes are counted towards quorum. + * - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. + * + * NOTE: The string can be decoded by the standard + * https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] + * JavaScript class. + */ + // solhint-disable-next-line func-name-mixedcase + function COUNTING_MODE() public pure virtual returns (string memory); + + /** + * @notice module:core + * @dev Hashing function used to (re)build the proposal id from the proposal details.. + */ + function hashProposal( + address[] calldata targets, + uint256[] calldata values, + bytes[] calldata calldatas, + bytes32 descriptionHash + ) public pure virtual returns (uint256); + + /** + * @notice module:core + * @dev Current state of a proposal, following Compound's convention + */ + function state(uint256 proposalId) public view virtual returns (ProposalState); + + /** + * @notice module:core + * @dev Block number used to retrieve user's votes and quorum. As per Compound's Comp and OpenZeppelin's + * ERC20Votes, the snapshot is performed at the end of this block. Hence, voting for this proposal starts at the + * beginning of the following block. + */ + function proposalSnapshot(uint256 proposalId) public view virtual returns (uint256); + + /** + * @notice module:core + * @dev Block number at which votes close. Votes close at the end of this block, so it is possible to cast a vote + * during this block. + */ + function proposalDeadline(uint256 proposalId) public view virtual returns (uint256); + + /** + * @notice module:user-config + * @dev Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to + * leave time for users to buy voting power, of delegate it, before the voting of a proposal starts. + */ + function votingDelay() public view virtual returns (uint256); + + /** + * @notice module:user-config + * @dev Delay, in number of blocks, between the vote start and vote ends. + * + * NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting + * duration compared to the voting delay. + */ + function votingPeriod() public view virtual returns (uint256); + + /** + * @notice module:user-config + * @dev Minimum number of cast voted required for a proposal to be successful. + * + * Note: The `blockNumber` parameter corresponds to the snaphot used for counting vote. This allows to scale the + * quroum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}). + */ + function quorum(uint256 blockNumber) public view virtual returns (uint256); + + /** + * @notice module:reputation + * @dev Voting power of an `account` at a specific `blockNumber`. + * + * Note: this can be implemented in a number of ways, for example by reading the delegated balance from one (or + * multiple), {ERC20Votes} tokens. + */ + function getVotes(address account, uint256 blockNumber) public view virtual returns (uint256); + + /** + * @notice module:voting + * @dev Returns weither `account` has cast a vote on `proposalId`. + */ + function hasVoted(uint256 proposalId, address account) public view virtual returns (bool); + + /** + * @dev Create a new proposal. Vote start {IGovernor-votingDelay} blocks after the proposal is created and ends + * {IGovernor-votingPeriod} blocks after the voting starts. + * + * Emits a {ProposalCreated} event. + */ + function propose( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + string memory description + ) public virtual returns (uint256 proposalId); + + /** + * @dev Execute a successful proposal. This requires the quorum to be reached, the vote to be successful, and the + * deadline to be reached. + * + * Emits a {ProposalExecuted} event. + * + * Note: some module can modify the requirements for execution, for example by adding an additional timelock. + */ + function execute( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) public payable virtual returns (uint256 proposalId); + + /** + * @dev Cast a vote + * + * Emits a {VoteCast} event. + */ + function castVote(uint256 proposalId, uint8 support) public virtual returns (uint256 balance); + + /** + * @dev Cast a with a reason + * + * Emits a {VoteCast} event. + */ + function castVoteWithReason( + uint256 proposalId, + uint8 support, + string calldata reason + ) public virtual returns (uint256 balance); + + /** + * @dev Cast a vote using the user cryptographic signature. + * + * Emits a {VoteCast} event. + */ + function castVoteBySig( + uint256 proposalId, + uint8 support, + uint8 v, + bytes32 r, + bytes32 s + ) public virtual returns (uint256 balance); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/TimelockController.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/TimelockController.sol new file mode 100644 index 000000000..b20ac9538 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/TimelockController.sol @@ -0,0 +1,353 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (governance/TimelockController.sol) + +pragma solidity ^0.8.0; + +import "../access/AccessControl.sol"; + +/** + * @dev Contract module which acts as a timelocked controller. When set as the + * owner of an `Ownable` smart contract, it enforces a timelock on all + * `onlyOwner` maintenance operations. This gives time for users of the + * controlled contract to exit before a potentially dangerous maintenance + * operation is applied. + * + * By default, this contract is self administered, meaning administration tasks + * have to go through the timelock process. The proposer (resp executor) role + * is in charge of proposing (resp executing) operations. A common use case is + * to position this {TimelockController} as the owner of a smart contract, with + * a multisig or a DAO as the sole proposer. + * + * _Available since v3.3._ + */ +contract TimelockController is AccessControl { + bytes32 public constant TIMELOCK_ADMIN_ROLE = keccak256("TIMELOCK_ADMIN_ROLE"); + bytes32 public constant PROPOSER_ROLE = keccak256("PROPOSER_ROLE"); + bytes32 public constant EXECUTOR_ROLE = keccak256("EXECUTOR_ROLE"); + uint256 internal constant _DONE_TIMESTAMP = uint256(1); + + mapping(bytes32 => uint256) private _timestamps; + uint256 private _minDelay; + + /** + * @dev Emitted when a call is scheduled as part of operation `id`. + */ + event CallScheduled( + bytes32 indexed id, + uint256 indexed index, + address target, + uint256 value, + bytes data, + bytes32 predecessor, + uint256 delay + ); + + /** + * @dev Emitted when a call is performed as part of operation `id`. + */ + event CallExecuted(bytes32 indexed id, uint256 indexed index, address target, uint256 value, bytes data); + + /** + * @dev Emitted when operation `id` is cancelled. + */ + event Cancelled(bytes32 indexed id); + + /** + * @dev Emitted when the minimum delay for future operations is modified. + */ + event MinDelayChange(uint256 oldDuration, uint256 newDuration); + + /** + * @dev Initializes the contract with a given `minDelay`. + */ + constructor( + uint256 minDelay, + address[] memory proposers, + address[] memory executors + ) { + _setRoleAdmin(TIMELOCK_ADMIN_ROLE, TIMELOCK_ADMIN_ROLE); + _setRoleAdmin(PROPOSER_ROLE, TIMELOCK_ADMIN_ROLE); + _setRoleAdmin(EXECUTOR_ROLE, TIMELOCK_ADMIN_ROLE); + + // deployer + self administration + _setupRole(TIMELOCK_ADMIN_ROLE, _msgSender()); + _setupRole(TIMELOCK_ADMIN_ROLE, address(this)); + + // register proposers + for (uint256 i = 0; i < proposers.length; ++i) { + _setupRole(PROPOSER_ROLE, proposers[i]); + } + + // register executors + for (uint256 i = 0; i < executors.length; ++i) { + _setupRole(EXECUTOR_ROLE, executors[i]); + } + + _minDelay = minDelay; + emit MinDelayChange(0, minDelay); + } + + /** + * @dev Modifier to make a function callable only by a certain role. In + * addition to checking the sender's role, `address(0)` 's role is also + * considered. Granting a role to `address(0)` is equivalent to enabling + * this role for everyone. + */ + modifier onlyRoleOrOpenRole(bytes32 role) { + if (!hasRole(role, address(0))) { + _checkRole(role, _msgSender()); + } + _; + } + + /** + * @dev Contract might receive/hold ETH as part of the maintenance process. + */ + receive() external payable {} + + /** + * @dev Returns whether an id correspond to a registered operation. This + * includes both Pending, Ready and Done operations. + */ + function isOperation(bytes32 id) public view virtual returns (bool pending) { + return getTimestamp(id) > 0; + } + + /** + * @dev Returns whether an operation is pending or not. + */ + function isOperationPending(bytes32 id) public view virtual returns (bool pending) { + return getTimestamp(id) > _DONE_TIMESTAMP; + } + + /** + * @dev Returns whether an operation is ready or not. + */ + function isOperationReady(bytes32 id) public view virtual returns (bool ready) { + uint256 timestamp = getTimestamp(id); + return timestamp > _DONE_TIMESTAMP && timestamp <= block.timestamp; + } + + /** + * @dev Returns whether an operation is done or not. + */ + function isOperationDone(bytes32 id) public view virtual returns (bool done) { + return getTimestamp(id) == _DONE_TIMESTAMP; + } + + /** + * @dev Returns the timestamp at with an operation becomes ready (0 for + * unset operations, 1 for done operations). + */ + function getTimestamp(bytes32 id) public view virtual returns (uint256 timestamp) { + return _timestamps[id]; + } + + /** + * @dev Returns the minimum delay for an operation to become valid. + * + * This value can be changed by executing an operation that calls `updateDelay`. + */ + function getMinDelay() public view virtual returns (uint256 duration) { + return _minDelay; + } + + /** + * @dev Returns the identifier of an operation containing a single + * transaction. + */ + function hashOperation( + address target, + uint256 value, + bytes calldata data, + bytes32 predecessor, + bytes32 salt + ) public pure virtual returns (bytes32 hash) { + return keccak256(abi.encode(target, value, data, predecessor, salt)); + } + + /** + * @dev Returns the identifier of an operation containing a batch of + * transactions. + */ + function hashOperationBatch( + address[] calldata targets, + uint256[] calldata values, + bytes[] calldata datas, + bytes32 predecessor, + bytes32 salt + ) public pure virtual returns (bytes32 hash) { + return keccak256(abi.encode(targets, values, datas, predecessor, salt)); + } + + /** + * @dev Schedule an operation containing a single transaction. + * + * Emits a {CallScheduled} event. + * + * Requirements: + * + * - the caller must have the 'proposer' role. + */ + function schedule( + address target, + uint256 value, + bytes calldata data, + bytes32 predecessor, + bytes32 salt, + uint256 delay + ) public virtual onlyRole(PROPOSER_ROLE) { + bytes32 id = hashOperation(target, value, data, predecessor, salt); + _schedule(id, delay); + emit CallScheduled(id, 0, target, value, data, predecessor, delay); + } + + /** + * @dev Schedule an operation containing a batch of transactions. + * + * Emits one {CallScheduled} event per transaction in the batch. + * + * Requirements: + * + * - the caller must have the 'proposer' role. + */ + function scheduleBatch( + address[] calldata targets, + uint256[] calldata values, + bytes[] calldata datas, + bytes32 predecessor, + bytes32 salt, + uint256 delay + ) public virtual onlyRole(PROPOSER_ROLE) { + require(targets.length == values.length, "TimelockController: length mismatch"); + require(targets.length == datas.length, "TimelockController: length mismatch"); + + bytes32 id = hashOperationBatch(targets, values, datas, predecessor, salt); + _schedule(id, delay); + for (uint256 i = 0; i < targets.length; ++i) { + emit CallScheduled(id, i, targets[i], values[i], datas[i], predecessor, delay); + } + } + + /** + * @dev Schedule an operation that is to becomes valid after a given delay. + */ + function _schedule(bytes32 id, uint256 delay) private { + require(!isOperation(id), "TimelockController: operation already scheduled"); + require(delay >= getMinDelay(), "TimelockController: insufficient delay"); + _timestamps[id] = block.timestamp + delay; + } + + /** + * @dev Cancel an operation. + * + * Requirements: + * + * - the caller must have the 'proposer' role. + */ + function cancel(bytes32 id) public virtual onlyRole(PROPOSER_ROLE) { + require(isOperationPending(id), "TimelockController: operation cannot be cancelled"); + delete _timestamps[id]; + + emit Cancelled(id); + } + + /** + * @dev Execute an (ready) operation containing a single transaction. + * + * Emits a {CallExecuted} event. + * + * Requirements: + * + * - the caller must have the 'executor' role. + */ + function execute( + address target, + uint256 value, + bytes calldata data, + bytes32 predecessor, + bytes32 salt + ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) { + bytes32 id = hashOperation(target, value, data, predecessor, salt); + _beforeCall(id, predecessor); + _call(id, 0, target, value, data); + _afterCall(id); + } + + /** + * @dev Execute an (ready) operation containing a batch of transactions. + * + * Emits one {CallExecuted} event per transaction in the batch. + * + * Requirements: + * + * - the caller must have the 'executor' role. + */ + function executeBatch( + address[] calldata targets, + uint256[] calldata values, + bytes[] calldata datas, + bytes32 predecessor, + bytes32 salt + ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) { + require(targets.length == values.length, "TimelockController: length mismatch"); + require(targets.length == datas.length, "TimelockController: length mismatch"); + + bytes32 id = hashOperationBatch(targets, values, datas, predecessor, salt); + _beforeCall(id, predecessor); + for (uint256 i = 0; i < targets.length; ++i) { + _call(id, i, targets[i], values[i], datas[i]); + } + _afterCall(id); + } + + /** + * @dev Checks before execution of an operation's calls. + */ + function _beforeCall(bytes32 id, bytes32 predecessor) private view { + require(isOperationReady(id), "TimelockController: operation is not ready"); + require(predecessor == bytes32(0) || isOperationDone(predecessor), "TimelockController: missing dependency"); + } + + /** + * @dev Checks after execution of an operation's calls. + */ + function _afterCall(bytes32 id) private { + require(isOperationReady(id), "TimelockController: operation is not ready"); + _timestamps[id] = _DONE_TIMESTAMP; + } + + /** + * @dev Execute an operation's call. + * + * Emits a {CallExecuted} event. + */ + function _call( + bytes32 id, + uint256 index, + address target, + uint256 value, + bytes calldata data + ) private { + (bool success, ) = target.call{value: value}(data); + require(success, "TimelockController: underlying transaction reverted"); + + emit CallExecuted(id, index, target, value, data); + } + + /** + * @dev Changes the minimum timelock duration for future operations. + * + * Emits a {MinDelayChange} event. + * + * Requirements: + * + * - the caller must be the timelock itself. This can only be achieved by scheduling and later executing + * an operation where the timelock is the target and the data is the ABI-encoded call to this function. + */ + function updateDelay(uint256 newDelay) external virtual { + require(msg.sender == address(this), "TimelockController: caller must be timelock"); + emit MinDelayChange(_minDelay, newDelay); + _minDelay = newDelay; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/GovernorCompatibilityBravo.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/GovernorCompatibilityBravo.sol new file mode 100644 index 000000000..5c6418727 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/GovernorCompatibilityBravo.sol @@ -0,0 +1,288 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (governance/compatibility/GovernorCompatibilityBravo.sol) + +pragma solidity ^0.8.0; + +import "../../utils/Counters.sol"; +import "../../utils/math/SafeCast.sol"; +import "../extensions/IGovernorTimelock.sol"; +import "../Governor.sol"; +import "./IGovernorCompatibilityBravo.sol"; + +/** + * @dev Compatibility layer that implements GovernorBravo compatibility on to of {Governor}. + * + * This compatibility layer includes a voting system and requires a {IGovernorTimelock} compatible module to be added + * through inheritance. It does not include token bindings, not does it include any variable upgrade patterns. + * + * NOTE: When using this module, you may need to enable the Solidity optimizer to avoid hitting the contract size limit. + * + * _Available since v4.3._ + */ +abstract contract GovernorCompatibilityBravo is IGovernorTimelock, IGovernorCompatibilityBravo, Governor { + using Counters for Counters.Counter; + using Timers for Timers.BlockNumber; + + enum VoteType { + Against, + For, + Abstain + } + + struct ProposalDetails { + address proposer; + address[] targets; + uint256[] values; + string[] signatures; + bytes[] calldatas; + uint256 forVotes; + uint256 againstVotes; + uint256 abstainVotes; + mapping(address => Receipt) receipts; + bytes32 descriptionHash; + } + + mapping(uint256 => ProposalDetails) private _proposalDetails; + + // solhint-disable-next-line func-name-mixedcase + function COUNTING_MODE() public pure virtual override returns (string memory) { + return "support=bravo&quorum=bravo"; + } + + // ============================================== Proposal lifecycle ============================================== + /** + * @dev See {IGovernor-propose}. + */ + function propose( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + string memory description + ) public virtual override(IGovernor, Governor) returns (uint256) { + _storeProposal(_msgSender(), targets, values, new string[](calldatas.length), calldatas, description); + return super.propose(targets, values, calldatas, description); + } + + /** + * @dev See {IGovernorCompatibilityBravo-propose}. + */ + function propose( + address[] memory targets, + uint256[] memory values, + string[] memory signatures, + bytes[] memory calldatas, + string memory description + ) public virtual override returns (uint256) { + _storeProposal(_msgSender(), targets, values, signatures, calldatas, description); + return propose(targets, values, _encodeCalldata(signatures, calldatas), description); + } + + /** + * @dev See {IGovernorCompatibilityBravo-queue}. + */ + function queue(uint256 proposalId) public virtual override { + ProposalDetails storage details = _proposalDetails[proposalId]; + queue( + details.targets, + details.values, + _encodeCalldata(details.signatures, details.calldatas), + details.descriptionHash + ); + } + + /** + * @dev See {IGovernorCompatibilityBravo-execute}. + */ + function execute(uint256 proposalId) public payable virtual override { + ProposalDetails storage details = _proposalDetails[proposalId]; + execute( + details.targets, + details.values, + _encodeCalldata(details.signatures, details.calldatas), + details.descriptionHash + ); + } + + function cancel(uint256 proposalId) public virtual override { + ProposalDetails storage details = _proposalDetails[proposalId]; + + require( + _msgSender() == details.proposer || getVotes(details.proposer, block.number - 1) < proposalThreshold(), + "GovernorBravo: proposer above threshold" + ); + + _cancel( + details.targets, + details.values, + _encodeCalldata(details.signatures, details.calldatas), + details.descriptionHash + ); + } + + /** + * @dev Encodes calldatas with optional function signature. + */ + function _encodeCalldata(string[] memory signatures, bytes[] memory calldatas) + private + pure + returns (bytes[] memory) + { + bytes[] memory fullcalldatas = new bytes[](calldatas.length); + + for (uint256 i = 0; i < signatures.length; ++i) { + fullcalldatas[i] = bytes(signatures[i]).length == 0 + ? calldatas[i] + : abi.encodeWithSignature(signatures[i], calldatas[i]); + } + + return fullcalldatas; + } + + /** + * @dev Store proposal metadata for later lookup + */ + function _storeProposal( + address proposer, + address[] memory targets, + uint256[] memory values, + string[] memory signatures, + bytes[] memory calldatas, + string memory description + ) private { + bytes32 descriptionHash = keccak256(bytes(description)); + uint256 proposalId = hashProposal(targets, values, _encodeCalldata(signatures, calldatas), descriptionHash); + + ProposalDetails storage details = _proposalDetails[proposalId]; + if (details.descriptionHash == bytes32(0)) { + details.proposer = proposer; + details.targets = targets; + details.values = values; + details.signatures = signatures; + details.calldatas = calldatas; + details.descriptionHash = descriptionHash; + } + } + + // ==================================================== Views ===================================================== + /** + * @dev See {IGovernorCompatibilityBravo-proposals}. + */ + function proposals(uint256 proposalId) + public + view + virtual + override + returns ( + uint256 id, + address proposer, + uint256 eta, + uint256 startBlock, + uint256 endBlock, + uint256 forVotes, + uint256 againstVotes, + uint256 abstainVotes, + bool canceled, + bool executed + ) + { + id = proposalId; + eta = proposalEta(proposalId); + startBlock = proposalSnapshot(proposalId); + endBlock = proposalDeadline(proposalId); + + ProposalDetails storage details = _proposalDetails[proposalId]; + proposer = details.proposer; + forVotes = details.forVotes; + againstVotes = details.againstVotes; + abstainVotes = details.abstainVotes; + + ProposalState status = state(proposalId); + canceled = status == ProposalState.Canceled; + executed = status == ProposalState.Executed; + } + + /** + * @dev See {IGovernorCompatibilityBravo-getActions}. + */ + function getActions(uint256 proposalId) + public + view + virtual + override + returns ( + address[] memory targets, + uint256[] memory values, + string[] memory signatures, + bytes[] memory calldatas + ) + { + ProposalDetails storage details = _proposalDetails[proposalId]; + return (details.targets, details.values, details.signatures, details.calldatas); + } + + /** + * @dev See {IGovernorCompatibilityBravo-getReceipt}. + */ + function getReceipt(uint256 proposalId, address voter) public view virtual override returns (Receipt memory) { + return _proposalDetails[proposalId].receipts[voter]; + } + + /** + * @dev See {IGovernorCompatibilityBravo-quorumVotes}. + */ + function quorumVotes() public view virtual override returns (uint256) { + return quorum(block.number - 1); + } + + // ==================================================== Voting ==================================================== + /** + * @dev See {IGovernor-hasVoted}. + */ + function hasVoted(uint256 proposalId, address account) public view virtual override returns (bool) { + return _proposalDetails[proposalId].receipts[account].hasVoted; + } + + /** + * @dev See {Governor-_quorumReached}. In this module, only forVotes count toward the quorum. + */ + function _quorumReached(uint256 proposalId) internal view virtual override returns (bool) { + ProposalDetails storage details = _proposalDetails[proposalId]; + return quorum(proposalSnapshot(proposalId)) <= details.forVotes; + } + + /** + * @dev See {Governor-_voteSucceeded}. In this module, the forVotes must be scritly over the againstVotes. + */ + function _voteSucceeded(uint256 proposalId) internal view virtual override returns (bool) { + ProposalDetails storage details = _proposalDetails[proposalId]; + return details.forVotes > details.againstVotes; + } + + /** + * @dev See {Governor-_countVote}. In this module, the support follows Governor Bravo. + */ + function _countVote( + uint256 proposalId, + address account, + uint8 support, + uint256 weight + ) internal virtual override { + ProposalDetails storage details = _proposalDetails[proposalId]; + Receipt storage receipt = details.receipts[account]; + + require(!receipt.hasVoted, "GovernorCompatibilityBravo: vote already cast"); + receipt.hasVoted = true; + receipt.support = support; + receipt.votes = SafeCast.toUint96(weight); + + if (support == uint8(VoteType.Against)) { + details.againstVotes += weight; + } else if (support == uint8(VoteType.For)) { + details.forVotes += weight; + } else if (support == uint8(VoteType.Abstain)) { + details.abstainVotes += weight; + } else { + revert("GovernorCompatibilityBravo: invalid vote type"); + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol new file mode 100644 index 000000000..591bc3f78 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol @@ -0,0 +1,114 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (governance/compatibility/IGovernorCompatibilityBravo.sol) + +pragma solidity ^0.8.0; + +import "../IGovernor.sol"; + +/** + * @dev Interface extension that adds missing functions to the {Governor} core to provide `GovernorBravo` compatibility. + * + * _Available since v4.3._ + */ +abstract contract IGovernorCompatibilityBravo is IGovernor { + /** + * @dev Proposal structure from Compound Governor Bravo. Not actually used by the compatibility layer, as + * {{proposal}} returns a very different structure. + */ + struct Proposal { + uint256 id; + address proposer; + uint256 eta; + address[] targets; + uint256[] values; + string[] signatures; + bytes[] calldatas; + uint256 startBlock; + uint256 endBlock; + uint256 forVotes; + uint256 againstVotes; + uint256 abstainVotes; + bool canceled; + bool executed; + mapping(address => Receipt) receipts; + } + + /** + * @dev Receipt structure from Compound Governor Bravo + */ + struct Receipt { + bool hasVoted; + uint8 support; + uint96 votes; + } + + /** + * @dev Part of the Governor Bravo's interface. + */ + function quorumVotes() public view virtual returns (uint256); + + /** + * @dev Part of the Governor Bravo's interface: _"The official record of all proposals ever proposed"_. + */ + function proposals(uint256) + public + view + virtual + returns ( + uint256 id, + address proposer, + uint256 eta, + uint256 startBlock, + uint256 endBlock, + uint256 forVotes, + uint256 againstVotes, + uint256 abstainVotes, + bool canceled, + bool executed + ); + + /** + * @dev Part of the Governor Bravo's interface: _"Function used to propose a new proposal"_. + */ + function propose( + address[] memory targets, + uint256[] memory values, + string[] memory signatures, + bytes[] memory calldatas, + string memory description + ) public virtual returns (uint256); + + /** + * @dev Part of the Governor Bravo's interface: _"Queues a proposal of state succeeded"_. + */ + function queue(uint256 proposalId) public virtual; + + /** + * @dev Part of the Governor Bravo's interface: _"Executes a queued proposal if eta has passed"_. + */ + function execute(uint256 proposalId) public payable virtual; + + /** + * @dev Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold. + */ + function cancel(uint256 proposalId) public virtual; + + /** + * @dev Part of the Governor Bravo's interface: _"Gets actions of a proposal"_. + */ + function getActions(uint256 proposalId) + public + view + virtual + returns ( + address[] memory targets, + uint256[] memory values, + string[] memory signatures, + bytes[] memory calldatas + ); + + /** + * @dev Part of the Governor Bravo's interface: _"Gets the receipt for a voter on a given proposal"_. + */ + function getReceipt(uint256 proposalId, address voter) public view virtual returns (Receipt memory); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol new file mode 100644 index 000000000..68fa2e311 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol @@ -0,0 +1,106 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorCountingSimple.sol) + +pragma solidity ^0.8.0; + +import "../Governor.sol"; + +/** + * @dev Extension of {Governor} for simple, 3 options, vote counting. + * + * _Available since v4.3._ + */ +abstract contract GovernorCountingSimple is Governor { + /** + * @dev Supported vote types. Matches Governor Bravo ordering. + */ + enum VoteType { + Against, + For, + Abstain + } + + struct ProposalVote { + uint256 againstVotes; + uint256 forVotes; + uint256 abstainVotes; + mapping(address => bool) hasVoted; + } + + mapping(uint256 => ProposalVote) private _proposalVotes; + + /** + * @dev See {IGovernor-COUNTING_MODE}. + */ + // solhint-disable-next-line func-name-mixedcase + function COUNTING_MODE() public pure virtual override returns (string memory) { + return "support=bravo&quorum=for,abstain"; + } + + /** + * @dev See {IGovernor-hasVoted}. + */ + function hasVoted(uint256 proposalId, address account) public view virtual override returns (bool) { + return _proposalVotes[proposalId].hasVoted[account]; + } + + /** + * @dev Accessor to the internal vote counts. + */ + function proposalVotes(uint256 proposalId) + public + view + virtual + returns ( + uint256 againstVotes, + uint256 forVotes, + uint256 abstainVotes + ) + { + ProposalVote storage proposalvote = _proposalVotes[proposalId]; + return (proposalvote.againstVotes, proposalvote.forVotes, proposalvote.abstainVotes); + } + + /** + * @dev See {Governor-_quorumReached}. + */ + function _quorumReached(uint256 proposalId) internal view virtual override returns (bool) { + ProposalVote storage proposalvote = _proposalVotes[proposalId]; + + return quorum(proposalSnapshot(proposalId)) <= proposalvote.forVotes + proposalvote.abstainVotes; + } + + /** + * @dev See {Governor-_voteSucceeded}. In this module, the forVotes must be strictly over the againstVotes. + */ + function _voteSucceeded(uint256 proposalId) internal view virtual override returns (bool) { + ProposalVote storage proposalvote = _proposalVotes[proposalId]; + + return proposalvote.forVotes > proposalvote.againstVotes; + } + + /** + * @dev See {Governor-_countVote}. In this module, the support follows the `VoteType` enum (from Governor Bravo). + */ + function _countVote( + uint256 proposalId, + address account, + uint8 support, + uint256 weight + ) internal virtual override { + ProposalVote storage proposalvote = _proposalVotes[proposalId]; + + require(!proposalvote.hasVoted[account], "GovernorVotingSimple: vote already cast"); + proposalvote.hasVoted[account] = true; + + if (support == uint8(VoteType.Against)) { + proposalvote.againstVotes += weight; + } else if (support == uint8(VoteType.For)) { + proposalvote.forVotes += weight; + } else if (support == uint8(VoteType.Abstain)) { + proposalvote.abstainVotes += weight; + } else { + revert("GovernorVotingSimple: invalid value for enum VoteType"); + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorProposalThreshold.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorProposalThreshold.sol new file mode 100644 index 000000000..fae4c625b --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorProposalThreshold.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorProposalThreshold.sol) + +pragma solidity ^0.8.0; + +import "../Governor.sol"; + +/** + * @dev Extension of {Governor} for proposal restriction to token holders with a minimum balance. + * + * _Available since v4.3._ + * _Deprecated since v4.4._ + */ +abstract contract GovernorProposalThreshold is Governor { + function propose( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + string memory description + ) public virtual override returns (uint256) { + return super.propose(targets, values, calldatas, description); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorSettings.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorSettings.sol new file mode 100644 index 000000000..41152d486 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorSettings.sol @@ -0,0 +1,114 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorSettings.sol) + +pragma solidity ^0.8.0; + +import "../Governor.sol"; + +/** + * @dev Extension of {Governor} for settings updatable through governance. + * + * _Available since v4.4._ + */ +abstract contract GovernorSettings is Governor { + uint256 private _votingDelay; + uint256 private _votingPeriod; + uint256 private _proposalThreshold; + + event VotingDelaySet(uint256 oldVotingDelay, uint256 newVotingDelay); + event VotingPeriodSet(uint256 oldVotingPeriod, uint256 newVotingPeriod); + event ProposalThresholdSet(uint256 oldProposalThreshold, uint256 newProposalThreshold); + + /** + * @dev Initialize the governance parameters. + */ + constructor( + uint256 initialVotingDelay, + uint256 initialVotingPeriod, + uint256 initialProposalThreshold + ) { + _setVotingDelay(initialVotingDelay); + _setVotingPeriod(initialVotingPeriod); + _setProposalThreshold(initialProposalThreshold); + } + + /** + * @dev See {IGovernor-votingDelay}. + */ + function votingDelay() public view virtual override returns (uint256) { + return _votingDelay; + } + + /** + * @dev See {IGovernor-votingPeriod}. + */ + function votingPeriod() public view virtual override returns (uint256) { + return _votingPeriod; + } + + /** + * @dev See {Governor-proposalThreshold}. + */ + function proposalThreshold() public view virtual override returns (uint256) { + return _proposalThreshold; + } + + /** + * @dev Update the voting delay. This operation can only be performed through a governance proposal. + * + * Emits a {VotingDelaySet} event. + */ + function setVotingDelay(uint256 newVotingDelay) public virtual onlyGovernance { + _setVotingDelay(newVotingDelay); + } + + /** + * @dev Update the voting period. This operation can only be performed through a governance proposal. + * + * Emits a {VotingPeriodSet} event. + */ + function setVotingPeriod(uint256 newVotingPeriod) public virtual onlyGovernance { + _setVotingPeriod(newVotingPeriod); + } + + /** + * @dev Update the proposal threshold. This operation can only be performed through a governance proposal. + * + * Emits a {ProposalThresholdSet} event. + */ + function setProposalThreshold(uint256 newProposalThreshold) public virtual onlyGovernance { + _setProposalThreshold(newProposalThreshold); + } + + /** + * @dev Internal setter for the voting delay. + * + * Emits a {VotingDelaySet} event. + */ + function _setVotingDelay(uint256 newVotingDelay) internal virtual { + emit VotingDelaySet(_votingDelay, newVotingDelay); + _votingDelay = newVotingDelay; + } + + /** + * @dev Internal setter for the voting period. + * + * Emits a {VotingPeriodSet} event. + */ + function _setVotingPeriod(uint256 newVotingPeriod) internal virtual { + // voting period must be at least one block long + require(newVotingPeriod > 0, "GovernorSettings: voting period too low"); + emit VotingPeriodSet(_votingPeriod, newVotingPeriod); + _votingPeriod = newVotingPeriod; + } + + /** + * @dev Internal setter for the proposal threshold. + * + * Emits a {ProposalThresholdSet} event. + */ + function _setProposalThreshold(uint256 newProposalThreshold) internal virtual { + emit ProposalThresholdSet(_proposalThreshold, newProposalThreshold); + _proposalThreshold = newProposalThreshold; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockCompound.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockCompound.sol new file mode 100644 index 000000000..fa5ccb2c7 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockCompound.sol @@ -0,0 +1,244 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorTimelockCompound.sol) + +pragma solidity ^0.8.0; + +import "./IGovernorTimelock.sol"; +import "../Governor.sol"; +import "../../utils/math/SafeCast.sol"; + +/** + * https://github.com/compound-finance/compound-protocol/blob/master/contracts/Timelock.sol[Compound's timelock] interface + */ +interface ICompoundTimelock { + receive() external payable; + + // solhint-disable-next-line func-name-mixedcase + function GRACE_PERIOD() external view returns (uint256); + + // solhint-disable-next-line func-name-mixedcase + function MINIMUM_DELAY() external view returns (uint256); + + // solhint-disable-next-line func-name-mixedcase + function MAXIMUM_DELAY() external view returns (uint256); + + function admin() external view returns (address); + + function pendingAdmin() external view returns (address); + + function delay() external view returns (uint256); + + function queuedTransactions(bytes32) external view returns (bool); + + function setDelay(uint256) external; + + function acceptAdmin() external; + + function setPendingAdmin(address) external; + + function queueTransaction( + address target, + uint256 value, + string memory signature, + bytes memory data, + uint256 eta + ) external returns (bytes32); + + function cancelTransaction( + address target, + uint256 value, + string memory signature, + bytes memory data, + uint256 eta + ) external; + + function executeTransaction( + address target, + uint256 value, + string memory signature, + bytes memory data, + uint256 eta + ) external payable returns (bytes memory); +} + +/** + * @dev Extension of {Governor} that binds the execution process to a Compound Timelock. This adds a delay, enforced by + * the external timelock to all successful proposal (in addition to the voting duration). The {Governor} needs to be + * the admin of the timelock for any operation to be performed. A public, unrestricted, + * {GovernorTimelockCompound-__acceptAdmin} is available to accept ownership of the timelock. + * + * Using this model means the proposal will be operated by the {TimelockController} and not by the {Governor}. Thus, + * the assets and permissions must be attached to the {TimelockController}. Any asset sent to the {Governor} will be + * inaccessible. + * + * _Available since v4.3._ + */ +abstract contract GovernorTimelockCompound is IGovernorTimelock, Governor { + using SafeCast for uint256; + using Timers for Timers.Timestamp; + + struct ProposalTimelock { + Timers.Timestamp timer; + } + + ICompoundTimelock private _timelock; + + mapping(uint256 => ProposalTimelock) private _proposalTimelocks; + + /** + * @dev Emitted when the timelock controller used for proposal execution is modified. + */ + event TimelockChange(address oldTimelock, address newTimelock); + + /** + * @dev Set the timelock. + */ + constructor(ICompoundTimelock timelockAddress) { + _updateTimelock(timelockAddress); + } + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, Governor) returns (bool) { + return interfaceId == type(IGovernorTimelock).interfaceId || super.supportsInterface(interfaceId); + } + + /** + * @dev Overriden version of the {Governor-state} function with added support for the `Queued` and `Expired` status. + */ + function state(uint256 proposalId) public view virtual override(IGovernor, Governor) returns (ProposalState) { + ProposalState status = super.state(proposalId); + + if (status != ProposalState.Succeeded) { + return status; + } + + uint256 eta = proposalEta(proposalId); + if (eta == 0) { + return status; + } else if (block.timestamp >= eta + _timelock.GRACE_PERIOD()) { + return ProposalState.Expired; + } else { + return ProposalState.Queued; + } + } + + /** + * @dev Public accessor to check the address of the timelock + */ + function timelock() public view virtual override returns (address) { + return address(_timelock); + } + + /** + * @dev Public accessor to check the eta of a queued proposal + */ + function proposalEta(uint256 proposalId) public view virtual override returns (uint256) { + return _proposalTimelocks[proposalId].timer.getDeadline(); + } + + /** + * @dev Function to queue a proposal to the timelock. + */ + function queue( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) public virtual override returns (uint256) { + uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash); + + require(state(proposalId) == ProposalState.Succeeded, "Governor: proposal not successful"); + + uint256 eta = block.timestamp + _timelock.delay(); + _proposalTimelocks[proposalId].timer.setDeadline(eta.toUint64()); + for (uint256 i = 0; i < targets.length; ++i) { + require( + !_timelock.queuedTransactions(keccak256(abi.encode(targets[i], values[i], "", calldatas[i], eta))), + "GovernorTimelockCompound: identical proposal action already queued" + ); + _timelock.queueTransaction(targets[i], values[i], "", calldatas[i], eta); + } + + emit ProposalQueued(proposalId, eta); + + return proposalId; + } + + /** + * @dev Overriden execute function that run the already queued proposal through the timelock. + */ + function _execute( + uint256 proposalId, + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 /*descriptionHash*/ + ) internal virtual override { + uint256 eta = proposalEta(proposalId); + require(eta > 0, "GovernorTimelockCompound: proposal not yet queued"); + Address.sendValue(payable(_timelock), msg.value); + for (uint256 i = 0; i < targets.length; ++i) { + _timelock.executeTransaction(targets[i], values[i], "", calldatas[i], eta); + } + } + + /** + * @dev Overriden version of the {Governor-_cancel} function to cancel the timelocked proposal if it as already + * been queued. + */ + function _cancel( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) internal virtual override returns (uint256) { + uint256 proposalId = super._cancel(targets, values, calldatas, descriptionHash); + + uint256 eta = proposalEta(proposalId); + if (eta > 0) { + for (uint256 i = 0; i < targets.length; ++i) { + _timelock.cancelTransaction(targets[i], values[i], "", calldatas[i], eta); + } + _proposalTimelocks[proposalId].timer.reset(); + } + + return proposalId; + } + + /** + * @dev Address through which the governor executes action. In this case, the timelock. + */ + function _executor() internal view virtual override returns (address) { + return address(_timelock); + } + + /** + * @dev Accept admin right over the timelock. + */ + // solhint-disable-next-line private-vars-leading-underscore + function __acceptAdmin() public { + _timelock.acceptAdmin(); + } + + /** + * @dev Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates + * must be proposed, scheduled and executed using the {Governor} workflow. + * + * For security reason, the timelock must be handed over to another admin before setting up a new one. The two + * operations (hand over the timelock) and do the update can be batched in a single proposal. + * + * Note that if the timelock admin has been handed over in a previous operation, we refuse updates made through the + * timelock if admin of the timelock has already been accepted and the operation is executed outside the scope of + * governance. + */ + function updateTimelock(ICompoundTimelock newTimelock) external virtual onlyGovernance { + _updateTimelock(newTimelock); + } + + function _updateTimelock(ICompoundTimelock newTimelock) private { + emit TimelockChange(address(_timelock), address(newTimelock)); + _timelock = newTimelock; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol new file mode 100644 index 000000000..37303b4ab --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol @@ -0,0 +1,154 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorTimelockControl.sol) + +pragma solidity ^0.8.0; + +import "./IGovernorTimelock.sol"; +import "../Governor.sol"; +import "../TimelockController.sol"; + +/** + * @dev Extension of {Governor} that binds the execution process to an instance of {TimelockController}. This adds a + * delay, enforced by the {TimelockController} to all successful proposal (in addition to the voting duration). The + * {Governor} needs the proposer (an ideally the executor) roles for the {Governor} to work properly. + * + * Using this model means the proposal will be operated by the {TimelockController} and not by the {Governor}. Thus, + * the assets and permissions must be attached to the {TimelockController}. Any asset sent to the {Governor} will be + * inaccessible. + * + * _Available since v4.3._ + */ +abstract contract GovernorTimelockControl is IGovernorTimelock, Governor { + TimelockController private _timelock; + mapping(uint256 => bytes32) private _timelockIds; + + /** + * @dev Emitted when the timelock controller used for proposal execution is modified. + */ + event TimelockChange(address oldTimelock, address newTimelock); + + /** + * @dev Set the timelock. + */ + constructor(TimelockController timelockAddress) { + _updateTimelock(timelockAddress); + } + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, Governor) returns (bool) { + return interfaceId == type(IGovernorTimelock).interfaceId || super.supportsInterface(interfaceId); + } + + /** + * @dev Overriden version of the {Governor-state} function with added support for the `Queued` status. + */ + function state(uint256 proposalId) public view virtual override(IGovernor, Governor) returns (ProposalState) { + ProposalState status = super.state(proposalId); + + if (status != ProposalState.Succeeded) { + return status; + } + + // core tracks execution, so we just have to check if successful proposal have been queued. + bytes32 queueid = _timelockIds[proposalId]; + if (queueid == bytes32(0)) { + return status; + } else if (_timelock.isOperationDone(queueid)) { + return ProposalState.Executed; + } else { + return ProposalState.Queued; + } + } + + /** + * @dev Public accessor to check the address of the timelock + */ + function timelock() public view virtual override returns (address) { + return address(_timelock); + } + + /** + * @dev Public accessor to check the eta of a queued proposal + */ + function proposalEta(uint256 proposalId) public view virtual override returns (uint256) { + uint256 eta = _timelock.getTimestamp(_timelockIds[proposalId]); + return eta == 1 ? 0 : eta; // _DONE_TIMESTAMP (1) should be replaced with a 0 value + } + + /** + * @dev Function to queue a proposal to the timelock. + */ + function queue( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) public virtual override returns (uint256) { + uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash); + + require(state(proposalId) == ProposalState.Succeeded, "Governor: proposal not successful"); + + uint256 delay = _timelock.getMinDelay(); + _timelockIds[proposalId] = _timelock.hashOperationBatch(targets, values, calldatas, 0, descriptionHash); + _timelock.scheduleBatch(targets, values, calldatas, 0, descriptionHash, delay); + + emit ProposalQueued(proposalId, block.timestamp + delay); + + return proposalId; + } + + /** + * @dev Overriden execute function that run the already queued proposal through the timelock. + */ + function _execute( + uint256, /* proposalId */ + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) internal virtual override { + _timelock.executeBatch{value: msg.value}(targets, values, calldatas, 0, descriptionHash); + } + + /** + * @dev Overriden version of the {Governor-_cancel} function to cancel the timelocked proposal if it as already + * been queued. + */ + function _cancel( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) internal virtual override returns (uint256) { + uint256 proposalId = super._cancel(targets, values, calldatas, descriptionHash); + + if (_timelockIds[proposalId] != 0) { + _timelock.cancel(_timelockIds[proposalId]); + delete _timelockIds[proposalId]; + } + + return proposalId; + } + + /** + * @dev Address through which the governor executes action. In this case, the timelock. + */ + function _executor() internal view virtual override returns (address) { + return address(_timelock); + } + + /** + * @dev Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates + * must be proposed, scheduled and executed using the {Governor} workflow. + */ + function updateTimelock(TimelockController newTimelock) external virtual onlyGovernance { + _updateTimelock(newTimelock); + } + + function _updateTimelock(TimelockController newTimelock) private { + emit TimelockChange(address(_timelock), address(newTimelock)); + _timelock = newTimelock; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol new file mode 100644 index 000000000..d1719ca14 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorVotes.sol) + +pragma solidity ^0.8.0; + +import "../Governor.sol"; +import "../../token/ERC20/extensions/ERC20Votes.sol"; +import "../../utils/math/Math.sol"; + +/** + * @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token. + * + * _Available since v4.3._ + */ +abstract contract GovernorVotes is Governor { + ERC20Votes public immutable token; + + constructor(ERC20Votes tokenAddress) { + token = tokenAddress; + } + + /** + * Read the voting weight from the token's built in snapshot mechanism (see {IGovernor-getVotes}). + */ + function getVotes(address account, uint256 blockNumber) public view virtual override returns (uint256) { + return token.getPastVotes(account, blockNumber); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesComp.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesComp.sol new file mode 100644 index 000000000..53c882b21 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesComp.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorVotesComp.sol) + +pragma solidity ^0.8.0; + +import "../Governor.sol"; +import "../../token/ERC20/extensions/ERC20VotesComp.sol"; + +/** + * @dev Extension of {Governor} for voting weight extraction from a Comp token. + * + * _Available since v4.3._ + */ +abstract contract GovernorVotesComp is Governor { + ERC20VotesComp public immutable token; + + constructor(ERC20VotesComp token_) { + token = token_; + } + + /** + * Read the voting weight from the token's built in snapshot mechanism (see {IGovernor-getVotes}). + */ + function getVotes(address account, uint256 blockNumber) public view virtual override returns (uint256) { + return token.getPriorVotes(account, blockNumber); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol new file mode 100644 index 000000000..ab52e55d7 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorVotesQuorumFraction.sol) + +pragma solidity ^0.8.0; + +import "./GovernorVotes.sol"; + +/** + * @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token and a quorum expressed as a + * fraction of the total supply. + * + * _Available since v4.3._ + */ +abstract contract GovernorVotesQuorumFraction is GovernorVotes { + uint256 private _quorumNumerator; + + event QuorumNumeratorUpdated(uint256 oldQuorumNumerator, uint256 newQuorumNumerator); + + constructor(uint256 quorumNumeratorValue) { + _updateQuorumNumerator(quorumNumeratorValue); + } + + function quorumNumerator() public view virtual returns (uint256) { + return _quorumNumerator; + } + + function quorumDenominator() public view virtual returns (uint256) { + return 100; + } + + function quorum(uint256 blockNumber) public view virtual override returns (uint256) { + return (token.getPastTotalSupply(blockNumber) * quorumNumerator()) / quorumDenominator(); + } + + function updateQuorumNumerator(uint256 newQuorumNumerator) external virtual onlyGovernance { + _updateQuorumNumerator(newQuorumNumerator); + } + + function _updateQuorumNumerator(uint256 newQuorumNumerator) internal virtual { + require( + newQuorumNumerator <= quorumDenominator(), + "GovernorVotesQuorumFraction: quorumNumerator over quorumDenominator" + ); + + uint256 oldQuorumNumerator = _quorumNumerator; + _quorumNumerator = newQuorumNumerator; + + emit QuorumNumeratorUpdated(oldQuorumNumerator, newQuorumNumerator); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol new file mode 100644 index 000000000..68ed3f2a1 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (governance/extensions/IGovernorTimelock.sol) + +pragma solidity ^0.8.0; + +import "../IGovernor.sol"; + +/** + * @dev Extension of the {IGovernor} for timelock supporting modules. + * + * _Available since v4.3._ + */ +abstract contract IGovernorTimelock is IGovernor { + event ProposalQueued(uint256 proposalId, uint256 eta); + + function timelock() public view virtual returns (address); + + function proposalEta(uint256 proposalId) public view virtual returns (uint256); + + function queue( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) public virtual returns (uint256 proposalId); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155.sol new file mode 100644 index 000000000..8998930ba --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1155.sol) + +pragma solidity ^0.8.0; + +import "../token/ERC1155/IERC1155.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155MetadataURI.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155MetadataURI.sol new file mode 100644 index 000000000..045859e9d --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155MetadataURI.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1155MetadataURI.sol) + +pragma solidity ^0.8.0; + +import "../token/ERC1155/extensions/IERC1155MetadataURI.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155Receiver.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155Receiver.sol new file mode 100644 index 000000000..9eac7674c --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155Receiver.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1155Receiver.sol) + +pragma solidity ^0.8.0; + +import "../token/ERC1155/IERC1155Receiver.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol new file mode 100644 index 000000000..7d7653256 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1271.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Interface of the ERC1271 standard signature validation method for + * contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. + * + * _Available since v4.1._ + */ +interface IERC1271 { + /** + * @dev Should return whether the signature provided is valid for the provided data + * @param hash Hash of the data to be signed + * @param signature Signature byte array associated with _data + */ + function isValidSignature(bytes32 hash, bytes memory signature) external view returns (bytes4 magicValue); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol new file mode 100644 index 000000000..f18c7a4fa --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol @@ -0,0 +1,95 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1363.sol) + +pragma solidity ^0.8.0; + +import "./IERC20.sol"; +import "./IERC165.sol"; + +interface IERC1363 is IERC165, IERC20 { + /* + * Note: the ERC-165 identifier for this interface is 0x4bbee2df. + * 0x4bbee2df === + * bytes4(keccak256('transferAndCall(address,uint256)')) ^ + * bytes4(keccak256('transferAndCall(address,uint256,bytes)')) ^ + * bytes4(keccak256('transferFromAndCall(address,address,uint256)')) ^ + * bytes4(keccak256('transferFromAndCall(address,address,uint256,bytes)')) + */ + + /* + * Note: the ERC-165 identifier for this interface is 0xfb9ec8ce. + * 0xfb9ec8ce === + * bytes4(keccak256('approveAndCall(address,uint256)')) ^ + * bytes4(keccak256('approveAndCall(address,uint256,bytes)')) + */ + + /** + * @dev Transfer tokens from `msg.sender` to another address and then call `onTransferReceived` on receiver + * @param to address The address which you want to transfer to + * @param value uint256 The amount of tokens to be transferred + * @return true unless throwing + */ + function transferAndCall(address to, uint256 value) external returns (bool); + + /** + * @dev Transfer tokens from `msg.sender` to another address and then call `onTransferReceived` on receiver + * @param to address The address which you want to transfer to + * @param value uint256 The amount of tokens to be transferred + * @param data bytes Additional data with no specified format, sent in call to `to` + * @return true unless throwing + */ + function transferAndCall( + address to, + uint256 value, + bytes memory data + ) external returns (bool); + + /** + * @dev Transfer tokens from one address to another and then call `onTransferReceived` on receiver + * @param from address The address which you want to send tokens from + * @param to address The address which you want to transfer to + * @param value uint256 The amount of tokens to be transferred + * @return true unless throwing + */ + function transferFromAndCall( + address from, + address to, + uint256 value + ) external returns (bool); + + /** + * @dev Transfer tokens from one address to another and then call `onTransferReceived` on receiver + * @param from address The address which you want to send tokens from + * @param to address The address which you want to transfer to + * @param value uint256 The amount of tokens to be transferred + * @param data bytes Additional data with no specified format, sent in call to `to` + * @return true unless throwing + */ + function transferFromAndCall( + address from, + address to, + uint256 value, + bytes memory data + ) external returns (bool); + + /** + * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender + * and then call `onApprovalReceived` on spender. + * @param spender address The address which will spend the funds + * @param value uint256 The amount of tokens to be spent + */ + function approveAndCall(address spender, uint256 value) external returns (bool); + + /** + * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender + * and then call `onApprovalReceived` on spender. + * @param spender address The address which will spend the funds + * @param value uint256 The amount of tokens to be spent + * @param data bytes Additional data with no specified format, sent in call to `spender` + */ + function approveAndCall( + address spender, + uint256 value, + bytes memory data + ) external returns (bool); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Receiver.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Receiver.sol new file mode 100644 index 000000000..18c31dda5 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Receiver.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1363Receiver.sol) + +pragma solidity ^0.8.0; + +interface IERC1363Receiver { + /* + * Note: the ERC-165 identifier for this interface is 0x88a7ca5c. + * 0x88a7ca5c === bytes4(keccak256("onTransferReceived(address,address,uint256,bytes)")) + */ + + /** + * @notice Handle the receipt of ERC1363 tokens + * @dev Any ERC1363 smart contract calls this function on the recipient + * after a `transfer` or a `transferFrom`. This function MAY throw to revert and reject the + * transfer. Return of other than the magic value MUST result in the + * transaction being reverted. + * Note: the token contract address is always the message sender. + * @param operator address The address which called `transferAndCall` or `transferFromAndCall` function + * @param from address The address which are token transferred from + * @param value uint256 The amount of tokens transferred + * @param data bytes Additional data with no specified format + * @return `bytes4(keccak256("onTransferReceived(address,address,uint256,bytes)"))` + * unless throwing + */ + function onTransferReceived( + address operator, + address from, + uint256 value, + bytes memory data + ) external returns (bytes4); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Spender.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Spender.sol new file mode 100644 index 000000000..f5e7503e2 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Spender.sol @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1363Spender.sol) + +pragma solidity ^0.8.0; + +interface IERC1363Spender { + /* + * Note: the ERC-165 identifier for this interface is 0x7b04a2d0. + * 0x7b04a2d0 === bytes4(keccak256("onApprovalReceived(address,uint256,bytes)")) + */ + + /** + * @notice Handle the approval of ERC1363 tokens + * @dev Any ERC1363 smart contract calls this function on the recipient + * after an `approve`. This function MAY throw to revert and reject the + * approval. Return of other than the magic value MUST result in the + * transaction being reverted. + * Note: the token contract address is always the message sender. + * @param owner address The address which called `approveAndCall` function + * @param value uint256 The amount of tokens to be spent + * @param data bytes Additional data with no specified format + * @return `bytes4(keccak256("onApprovalReceived(address,uint256,bytes)"))` + * unless throwing + */ + function onApprovalReceived( + address owner, + uint256 value, + bytes memory data + ) external returns (bytes4); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC165.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC165.sol new file mode 100644 index 000000000..1399ad3f2 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC165.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC165.sol) + +pragma solidity ^0.8.0; + +import "../utils/introspection/IERC165.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Implementer.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Implementer.sol new file mode 100644 index 000000000..efab81914 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Implementer.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1820Implementer.sol) + +pragma solidity ^0.8.0; + +import "../utils/introspection/IERC1820Implementer.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Registry.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Registry.sol new file mode 100644 index 000000000..6b0b57367 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Registry.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1820Registry.sol) + +pragma solidity ^0.8.0; + +import "../utils/introspection/IERC1820Registry.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20.sol new file mode 100644 index 000000000..541ce3deb --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC20.sol) + +pragma solidity ^0.8.0; + +import "../token/ERC20/IERC20.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20Metadata.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20Metadata.sol new file mode 100644 index 000000000..ed5d72fb8 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20Metadata.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC20Metadata.sol) + +pragma solidity ^0.8.0; + +import "../token/ERC20/extensions/IERC20Metadata.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol new file mode 100644 index 000000000..20a417c64 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC2981.sol) + +pragma solidity ^0.8.0; + +import "./IERC165.sol"; + +/** + * @dev Interface for the NFT Royalty Standard + */ +interface IERC2981 is IERC165 { + /** + * @dev Called with the sale price to determine how much royalty is owed and to whom. + * @param tokenId - the NFT asset queried for royalty information + * @param salePrice - the sale price of the NFT asset specified by `tokenId` + * @return receiver - address of who should be sent the royalty payment + * @return royaltyAmount - the royalty payment amount for `salePrice` + */ + function royaltyInfo(uint256 tokenId, uint256 salePrice) + external + view + returns (address receiver, uint256 royaltyAmount); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156.sol new file mode 100644 index 000000000..593c12170 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156.sol @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC3156.sol) + +pragma solidity ^0.8.0; + +import "./IERC3156FlashBorrower.sol"; +import "./IERC3156FlashLender.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashBorrower.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashBorrower.sol new file mode 100644 index 000000000..e0299bfcc --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashBorrower.sol @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC3156FlashBorrower.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Interface of the ERC3156 FlashBorrower, as defined in + * https://eips.ethereum.org/EIPS/eip-3156[ERC-3156]. + * + * _Available since v4.1._ + */ +interface IERC3156FlashBorrower { + /** + * @dev Receive a flash loan. + * @param initiator The initiator of the loan. + * @param token The loan currency. + * @param amount The amount of tokens lent. + * @param fee The additional amount of tokens to repay. + * @param data Arbitrary data structure, intended to contain user-defined parameters. + * @return The keccak256 hash of "ERC3156FlashBorrower.onFlashLoan" + */ + function onFlashLoan( + address initiator, + address token, + uint256 amount, + uint256 fee, + bytes calldata data + ) external returns (bytes32); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashLender.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashLender.sol new file mode 100644 index 000000000..8f2489c8e --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashLender.sol @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC3156FlashLender.sol) + +pragma solidity ^0.8.0; + +import "./IERC3156FlashBorrower.sol"; + +/** + * @dev Interface of the ERC3156 FlashLender, as defined in + * https://eips.ethereum.org/EIPS/eip-3156[ERC-3156]. + * + * _Available since v4.1._ + */ +interface IERC3156FlashLender { + /** + * @dev The amount of currency available to be lended. + * @param token The loan currency. + * @return The amount of `token` that can be borrowed. + */ + function maxFlashLoan(address token) external view returns (uint256); + + /** + * @dev The fee to be charged for a given loan. + * @param token The loan currency. + * @param amount The amount of tokens lent. + * @return The amount of `token` to be charged for the loan, on top of the returned principal. + */ + function flashFee(address token, uint256 amount) external view returns (uint256); + + /** + * @dev Initiate a flash loan. + * @param receiver The receiver of the tokens in the loan, and the receiver of the callback. + * @param token The loan currency. + * @param amount The amount of tokens lent. + * @param data Arbitrary data structure, intended to contain user-defined parameters. + */ + function flashLoan( + IERC3156FlashBorrower receiver, + address token, + uint256 amount, + bytes calldata data + ) external returns (bool); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721.sol new file mode 100644 index 000000000..5e48b5f03 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC721.sol) + +pragma solidity ^0.8.0; + +import "../token/ERC721/IERC721.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Enumerable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Enumerable.sol new file mode 100644 index 000000000..109abc5b5 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Enumerable.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC721Enumerable.sol) + +pragma solidity ^0.8.0; + +import "../token/ERC721/extensions/IERC721Enumerable.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Metadata.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Metadata.sol new file mode 100644 index 000000000..74bc26cc2 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Metadata.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC721Metadata.sol) + +pragma solidity ^0.8.0; + +import "../token/ERC721/extensions/IERC721Metadata.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Receiver.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Receiver.sol new file mode 100644 index 000000000..ef6e704ae --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Receiver.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC721Receiver.sol) + +pragma solidity ^0.8.0; + +import "../token/ERC721/IERC721Receiver.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777.sol new file mode 100644 index 000000000..ad7309093 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC777.sol) + +pragma solidity ^0.8.0; + +import "../token/ERC777/IERC777.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Recipient.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Recipient.sol new file mode 100644 index 000000000..853da819b --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Recipient.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC777Recipient.sol) + +pragma solidity ^0.8.0; + +import "../token/ERC777/IERC777Recipient.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Sender.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Sender.sol new file mode 100644 index 000000000..fe288135f --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Sender.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/IERC777Sender.sol) + +pragma solidity ^0.8.0; + +import "../token/ERC777/IERC777Sender.sol"; diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/draft-IERC2612.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/draft-IERC2612.sol new file mode 100644 index 000000000..6ab5de353 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/draft-IERC2612.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (interfaces/draft-IERC2612.sol) + +pragma solidity ^0.8.0; + +import "../token/ERC20/extensions/draft-IERC20Permit.sol"; + +interface IERC2612 is IERC20Permit {} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol new file mode 100644 index 000000000..ea96b8d3e --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol @@ -0,0 +1,40 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (metatx/ERC2771Context.sol) + +pragma solidity ^0.8.0; + +import "../utils/Context.sol"; + +/** + * @dev Context variant with ERC2771 support. + */ +abstract contract ERC2771Context is Context { + address private _trustedForwarder; + + constructor(address trustedForwarder) { + _trustedForwarder = trustedForwarder; + } + + function isTrustedForwarder(address forwarder) public view virtual returns (bool) { + return forwarder == _trustedForwarder; + } + + function _msgSender() internal view virtual override returns (address sender) { + if (isTrustedForwarder(msg.sender)) { + // The assembly code is more direct than the Solidity version using `abi.decode`. + assembly { + sender := shr(96, calldataload(sub(calldatasize(), 20))) + } + } else { + return super._msgSender(); + } + } + + function _msgData() internal view virtual override returns (bytes calldata) { + if (isTrustedForwarder(msg.sender)) { + return msg.data[:msg.data.length - 20]; + } else { + return super._msgData(); + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/metatx/MinimalForwarder.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/metatx/MinimalForwarder.sol new file mode 100644 index 000000000..01638181b --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/metatx/MinimalForwarder.sol @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (metatx/MinimalForwarder.sol) + +pragma solidity ^0.8.0; + +import "../utils/cryptography/ECDSA.sol"; +import "../utils/cryptography/draft-EIP712.sol"; + +/** + * @dev Simple minimal forwarder to be used together with an ERC2771 compatible contract. See {ERC2771Context}. + */ +contract MinimalForwarder is EIP712 { + using ECDSA for bytes32; + + struct ForwardRequest { + address from; + address to; + uint256 value; + uint256 gas; + uint256 nonce; + bytes data; + } + + bytes32 private constant _TYPEHASH = + keccak256("ForwardRequest(address from,address to,uint256 value,uint256 gas,uint256 nonce,bytes data)"); + + mapping(address => uint256) private _nonces; + + constructor() EIP712("MinimalForwarder", "0.0.1") {} + + function getNonce(address from) public view returns (uint256) { + return _nonces[from]; + } + + function verify(ForwardRequest calldata req, bytes calldata signature) public view returns (bool) { + address signer = _hashTypedDataV4( + keccak256(abi.encode(_TYPEHASH, req.from, req.to, req.value, req.gas, req.nonce, keccak256(req.data))) + ).recover(signature); + return _nonces[req.from] == req.nonce && signer == req.from; + } + + function execute(ForwardRequest calldata req, bytes calldata signature) + public + payable + returns (bool, bytes memory) + { + require(verify(req, signature), "MinimalForwarder: signature does not match request"); + _nonces[req.from] = req.nonce + 1; + + (bool success, bytes memory returndata) = req.to.call{gas: req.gas, value: req.value}( + abi.encodePacked(req.data, req.from) + ); + // Validate that the relayer has sent enough gas for the call. + // See https://ronan.eth.link/blog/ethereum-gas-dangers/ + assert(gasleft() > req.gas / 63); + + return (success, returndata); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/package.json b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/package.json new file mode 100644 index 000000000..220a063ff --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/package.json @@ -0,0 +1,62 @@ +{ + "_from": "@openzeppelin/contracts", + "_id": "@openzeppelin/contracts@4.4.0", + "_inBundle": false, + "_integrity": "sha512-dlKiZmDvJnGRLHojrDoFZJmsQVeltVeoiRN7RK+cf2FmkhASDEblE0RiaYdxPNsUZa6mRG8393b9bfyp+V5IAw==", + "_location": "/@openzeppelin/contracts", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "@openzeppelin/contracts", + "name": "@openzeppelin/contracts", + "escapedName": "@openzeppelin%2fcontracts", + "scope": "@openzeppelin", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.4.0.tgz", + "_shasum": "4a1df71f736c31230bbbd634dfb006a756b51e6b", + "_spec": "@openzeppelin/contracts", + "_where": "/home/monty/tob/tools/slither/tests/test_node_modules", + "author": { + "name": "OpenZeppelin Community", + "email": "maintainers@openzeppelin.org" + }, + "bugs": { + "url": "https://github.com/OpenZeppelin/openzeppelin-contracts/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Secure Smart Contract library for Solidity", + "files": [ + "**/*.sol", + "/build/contracts/*.json", + "!/mocks/**/*" + ], + "homepage": "https://openzeppelin.com/contracts/", + "keywords": [ + "solidity", + "ethereum", + "smart", + "contracts", + "security", + "zeppelin" + ], + "license": "MIT", + "name": "@openzeppelin/contracts", + "repository": { + "type": "git", + "url": "git+https://github.com/OpenZeppelin/openzeppelin-contracts.git" + }, + "scripts": { + "prepare": "bash ../scripts/prepare-contracts-package.sh", + "prepare-docs": "cd ..; npm run prepare-docs" + }, + "version": "4.4.0" +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Clones.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Clones.sol new file mode 100644 index 000000000..feed33e7d --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Clones.sol @@ -0,0 +1,84 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (proxy/Clones.sol) + +pragma solidity ^0.8.0; + +/** + * @dev https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for + * deploying minimal proxy contracts, also known as "clones". + * + * > To simply and cheaply clone contract functionality in an immutable way, this standard specifies + * > a minimal bytecode implementation that delegates all calls to a known, fixed address. + * + * The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2` + * (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the + * deterministic method. + * + * _Available since v3.4._ + */ +library Clones { + /** + * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`. + * + * This function uses the create opcode, which should never revert. + */ + function clone(address implementation) internal returns (address instance) { + assembly { + let ptr := mload(0x40) + mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) + mstore(add(ptr, 0x14), shl(0x60, implementation)) + mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000) + instance := create(0, ptr, 0x37) + } + require(instance != address(0), "ERC1167: create failed"); + } + + /** + * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`. + * + * This function uses the create2 opcode and a `salt` to deterministically deploy + * the clone. Using the same `implementation` and `salt` multiple time will revert, since + * the clones cannot be deployed twice at the same address. + */ + function cloneDeterministic(address implementation, bytes32 salt) internal returns (address instance) { + assembly { + let ptr := mload(0x40) + mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) + mstore(add(ptr, 0x14), shl(0x60, implementation)) + mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000) + instance := create2(0, ptr, 0x37, salt) + } + require(instance != address(0), "ERC1167: create2 failed"); + } + + /** + * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}. + */ + function predictDeterministicAddress( + address implementation, + bytes32 salt, + address deployer + ) internal pure returns (address predicted) { + assembly { + let ptr := mload(0x40) + mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) + mstore(add(ptr, 0x14), shl(0x60, implementation)) + mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf3ff00000000000000000000000000000000) + mstore(add(ptr, 0x38), shl(0x60, deployer)) + mstore(add(ptr, 0x4c), salt) + mstore(add(ptr, 0x6c), keccak256(ptr, 0x37)) + predicted := keccak256(add(ptr, 0x37), 0x55) + } + } + + /** + * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}. + */ + function predictDeterministicAddress(address implementation, bytes32 salt) + internal + view + returns (address predicted) + { + return predictDeterministicAddress(implementation, salt, address(this)); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol new file mode 100644 index 000000000..5d2a3533f --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (proxy/ERC1967/ERC1967Proxy.sol) + +pragma solidity ^0.8.0; + +import "../Proxy.sol"; +import "./ERC1967Upgrade.sol"; + +/** + * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an + * implementation address that can be changed. This address is stored in storage in the location specified by + * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the + * implementation behind the proxy. + */ +contract ERC1967Proxy is Proxy, ERC1967Upgrade { + /** + * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`. + * + * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded + * function call, and allows initializating the storage of the proxy like a Solidity constructor. + */ + constructor(address _logic, bytes memory _data) payable { + assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1)); + _upgradeToAndCall(_logic, _data, false); + } + + /** + * @dev Returns the current implementation address. + */ + function _implementation() internal view virtual override returns (address impl) { + return ERC1967Upgrade._getImplementation(); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol new file mode 100644 index 000000000..04394aeee --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol @@ -0,0 +1,194 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (proxy/ERC1967/ERC1967Upgrade.sol) + +pragma solidity ^0.8.2; + +import "../beacon/IBeacon.sol"; +import "../../utils/Address.sol"; +import "../../utils/StorageSlot.sol"; + +/** + * @dev This abstract contract provides getters and event emitting update functions for + * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. + * + * _Available since v4.1._ + * + * @custom:oz-upgrades-unsafe-allow delegatecall + */ +abstract contract ERC1967Upgrade { + // This is the keccak-256 hash of "eip1967.proxy.rollback" subtracted by 1 + bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143; + + /** + * @dev Storage slot with the address of the current implementation. + * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is + * validated in the constructor. + */ + bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + + /** + * @dev Emitted when the implementation is upgraded. + */ + event Upgraded(address indexed implementation); + + /** + * @dev Returns the current implementation address. + */ + function _getImplementation() internal view returns (address) { + return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; + } + + /** + * @dev Stores a new address in the EIP1967 implementation slot. + */ + function _setImplementation(address newImplementation) private { + require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract"); + StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; + } + + /** + * @dev Perform implementation upgrade + * + * Emits an {Upgraded} event. + */ + function _upgradeTo(address newImplementation) internal { + _setImplementation(newImplementation); + emit Upgraded(newImplementation); + } + + /** + * @dev Perform implementation upgrade with additional setup call. + * + * Emits an {Upgraded} event. + */ + function _upgradeToAndCall( + address newImplementation, + bytes memory data, + bool forceCall + ) internal { + _upgradeTo(newImplementation); + if (data.length > 0 || forceCall) { + Address.functionDelegateCall(newImplementation, data); + } + } + + /** + * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call. + * + * Emits an {Upgraded} event. + */ + function _upgradeToAndCallSecure( + address newImplementation, + bytes memory data, + bool forceCall + ) internal { + address oldImplementation = _getImplementation(); + + // Initial upgrade and setup call + _setImplementation(newImplementation); + if (data.length > 0 || forceCall) { + Address.functionDelegateCall(newImplementation, data); + } + + // Perform rollback test if not already in progress + StorageSlot.BooleanSlot storage rollbackTesting = StorageSlot.getBooleanSlot(_ROLLBACK_SLOT); + if (!rollbackTesting.value) { + // Trigger rollback using upgradeTo from the new implementation + rollbackTesting.value = true; + Address.functionDelegateCall( + newImplementation, + abi.encodeWithSignature("upgradeTo(address)", oldImplementation) + ); + rollbackTesting.value = false; + // Check rollback was effective + require(oldImplementation == _getImplementation(), "ERC1967Upgrade: upgrade breaks further upgrades"); + // Finally reset to the new implementation and log the upgrade + _upgradeTo(newImplementation); + } + } + + /** + * @dev Storage slot with the admin of the contract. + * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is + * validated in the constructor. + */ + bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; + + /** + * @dev Emitted when the admin account has changed. + */ + event AdminChanged(address previousAdmin, address newAdmin); + + /** + * @dev Returns the current admin. + */ + function _getAdmin() internal view returns (address) { + return StorageSlot.getAddressSlot(_ADMIN_SLOT).value; + } + + /** + * @dev Stores a new address in the EIP1967 admin slot. + */ + function _setAdmin(address newAdmin) private { + require(newAdmin != address(0), "ERC1967: new admin is the zero address"); + StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin; + } + + /** + * @dev Changes the admin of the proxy. + * + * Emits an {AdminChanged} event. + */ + function _changeAdmin(address newAdmin) internal { + emit AdminChanged(_getAdmin(), newAdmin); + _setAdmin(newAdmin); + } + + /** + * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. + * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor. + */ + bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50; + + /** + * @dev Emitted when the beacon is upgraded. + */ + event BeaconUpgraded(address indexed beacon); + + /** + * @dev Returns the current beacon. + */ + function _getBeacon() internal view returns (address) { + return StorageSlot.getAddressSlot(_BEACON_SLOT).value; + } + + /** + * @dev Stores a new beacon in the EIP1967 beacon slot. + */ + function _setBeacon(address newBeacon) private { + require(Address.isContract(newBeacon), "ERC1967: new beacon is not a contract"); + require( + Address.isContract(IBeacon(newBeacon).implementation()), + "ERC1967: beacon implementation is not a contract" + ); + StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon; + } + + /** + * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does + * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that). + * + * Emits a {BeaconUpgraded} event. + */ + function _upgradeBeaconToAndCall( + address newBeacon, + bytes memory data, + bool forceCall + ) internal { + _setBeacon(newBeacon); + emit BeaconUpgraded(newBeacon); + if (data.length > 0 || forceCall) { + Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data); + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Proxy.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Proxy.sol new file mode 100644 index 000000000..cbb78efa9 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Proxy.sol @@ -0,0 +1,86 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (proxy/Proxy.sol) + +pragma solidity ^0.8.0; + +/** + * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM + * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to + * be specified by overriding the virtual {_implementation} function. + * + * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a + * different contract through the {_delegate} function. + * + * The success and return data of the delegated call will be returned back to the caller of the proxy. + */ +abstract contract Proxy { + /** + * @dev Delegates the current call to `implementation`. + * + * This function does not return to its internall call site, it will return directly to the external caller. + */ + function _delegate(address implementation) internal virtual { + assembly { + // Copy msg.data. We take full control of memory in this inline assembly + // block because it will not return to Solidity code. We overwrite the + // Solidity scratch pad at memory position 0. + calldatacopy(0, 0, calldatasize()) + + // Call the implementation. + // out and outsize are 0 because we don't know the size yet. + let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) + + // Copy the returned data. + returndatacopy(0, 0, returndatasize()) + + switch result + // delegatecall returns 0 on error. + case 0 { + revert(0, returndatasize()) + } + default { + return(0, returndatasize()) + } + } + } + + /** + * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function + * and {_fallback} should delegate. + */ + function _implementation() internal view virtual returns (address); + + /** + * @dev Delegates the current call to the address returned by `_implementation()`. + * + * This function does not return to its internall call site, it will return directly to the external caller. + */ + function _fallback() internal virtual { + _beforeFallback(); + _delegate(_implementation()); + } + + /** + * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other + * function in the contract matches the call data. + */ + fallback() external payable virtual { + _fallback(); + } + + /** + * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data + * is empty. + */ + receive() external payable virtual { + _fallback(); + } + + /** + * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback` + * call, or as part of the Solidity `fallback` or `receive` functions. + * + * If overriden should call `super._beforeFallback()`. + */ + function _beforeFallback() internal virtual {} +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol new file mode 100644 index 000000000..15b6eb55e --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (proxy/beacon/BeaconProxy.sol) + +pragma solidity ^0.8.0; + +import "./IBeacon.sol"; +import "../Proxy.sol"; +import "../ERC1967/ERC1967Upgrade.sol"; + +/** + * @dev This contract implements a proxy that gets the implementation address for each call from a {UpgradeableBeacon}. + * + * The beacon address is stored in storage slot `uint256(keccak256('eip1967.proxy.beacon')) - 1`, so that it doesn't + * conflict with the storage layout of the implementation behind the proxy. + * + * _Available since v3.4._ + */ +contract BeaconProxy is Proxy, ERC1967Upgrade { + /** + * @dev Initializes the proxy with `beacon`. + * + * If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This + * will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity + * constructor. + * + * Requirements: + * + * - `beacon` must be a contract with the interface {IBeacon}. + */ + constructor(address beacon, bytes memory data) payable { + assert(_BEACON_SLOT == bytes32(uint256(keccak256("eip1967.proxy.beacon")) - 1)); + _upgradeBeaconToAndCall(beacon, data, false); + } + + /** + * @dev Returns the current beacon address. + */ + function _beacon() internal view virtual returns (address) { + return _getBeacon(); + } + + /** + * @dev Returns the current implementation address of the associated beacon. + */ + function _implementation() internal view virtual override returns (address) { + return IBeacon(_getBeacon()).implementation(); + } + + /** + * @dev Changes the proxy to use a new beacon. Deprecated: see {_upgradeBeaconToAndCall}. + * + * If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. + * + * Requirements: + * + * - `beacon` must be a contract. + * - The implementation returned by `beacon` must be a contract. + */ + function _setBeacon(address beacon, bytes memory data) internal virtual { + _upgradeBeaconToAndCall(beacon, data, false); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol new file mode 100644 index 000000000..e8b18af4c --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (proxy/beacon/IBeacon.sol) + +pragma solidity ^0.8.0; + +/** + * @dev This is the interface that {BeaconProxy} expects of its beacon. + */ +interface IBeacon { + /** + * @dev Must return an address that can be used as a delegate call target. + * + * {BeaconProxy} will check that this address is a contract. + */ + function implementation() external view returns (address); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol new file mode 100644 index 000000000..c03261509 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (proxy/beacon/UpgradeableBeacon.sol) + +pragma solidity ^0.8.0; + +import "./IBeacon.sol"; +import "../../access/Ownable.sol"; +import "../../utils/Address.sol"; + +/** + * @dev This contract is used in conjunction with one or more instances of {BeaconProxy} to determine their + * implementation contract, which is where they will delegate all function calls. + * + * An owner is able to change the implementation the beacon points to, thus upgrading the proxies that use this beacon. + */ +contract UpgradeableBeacon is IBeacon, Ownable { + address private _implementation; + + /** + * @dev Emitted when the implementation returned by the beacon is changed. + */ + event Upgraded(address indexed implementation); + + /** + * @dev Sets the address of the initial implementation, and the deployer account as the owner who can upgrade the + * beacon. + */ + constructor(address implementation_) { + _setImplementation(implementation_); + } + + /** + * @dev Returns the current implementation address. + */ + function implementation() public view virtual override returns (address) { + return _implementation; + } + + /** + * @dev Upgrades the beacon to a new implementation. + * + * Emits an {Upgraded} event. + * + * Requirements: + * + * - msg.sender must be the owner of the contract. + * - `newImplementation` must be a contract. + */ + function upgradeTo(address newImplementation) public virtual onlyOwner { + _setImplementation(newImplementation); + emit Upgraded(newImplementation); + } + + /** + * @dev Sets the implementation contract address for this beacon + * + * Requirements: + * + * - `newImplementation` must be a contract. + */ + function _setImplementation(address newImplementation) private { + require(Address.isContract(newImplementation), "UpgradeableBeacon: implementation is not a contract"); + _implementation = newImplementation; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol new file mode 100644 index 000000000..82f49eb7d --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol @@ -0,0 +1,81 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (proxy/transparent/ProxyAdmin.sol) + +pragma solidity ^0.8.0; + +import "./TransparentUpgradeableProxy.sol"; +import "../../access/Ownable.sol"; + +/** + * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an + * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}. + */ +contract ProxyAdmin is Ownable { + /** + * @dev Returns the current implementation of `proxy`. + * + * Requirements: + * + * - This contract must be the admin of `proxy`. + */ + function getProxyImplementation(TransparentUpgradeableProxy proxy) public view virtual returns (address) { + // We need to manually run the static call since the getter cannot be flagged as view + // bytes4(keccak256("implementation()")) == 0x5c60da1b + (bool success, bytes memory returndata) = address(proxy).staticcall(hex"5c60da1b"); + require(success); + return abi.decode(returndata, (address)); + } + + /** + * @dev Returns the current admin of `proxy`. + * + * Requirements: + * + * - This contract must be the admin of `proxy`. + */ + function getProxyAdmin(TransparentUpgradeableProxy proxy) public view virtual returns (address) { + // We need to manually run the static call since the getter cannot be flagged as view + // bytes4(keccak256("admin()")) == 0xf851a440 + (bool success, bytes memory returndata) = address(proxy).staticcall(hex"f851a440"); + require(success); + return abi.decode(returndata, (address)); + } + + /** + * @dev Changes the admin of `proxy` to `newAdmin`. + * + * Requirements: + * + * - This contract must be the current admin of `proxy`. + */ + function changeProxyAdmin(TransparentUpgradeableProxy proxy, address newAdmin) public virtual onlyOwner { + proxy.changeAdmin(newAdmin); + } + + /** + * @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. + * + * Requirements: + * + * - This contract must be the admin of `proxy`. + */ + function upgrade(TransparentUpgradeableProxy proxy, address implementation) public virtual onlyOwner { + proxy.upgradeTo(implementation); + } + + /** + * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See + * {TransparentUpgradeableProxy-upgradeToAndCall}. + * + * Requirements: + * + * - This contract must be the admin of `proxy`. + */ + function upgradeAndCall( + TransparentUpgradeableProxy proxy, + address implementation, + bytes memory data + ) public payable virtual onlyOwner { + proxy.upgradeToAndCall{value: msg.value}(implementation, data); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol new file mode 100644 index 000000000..f1b101ef3 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol @@ -0,0 +1,125 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (proxy/transparent/TransparentUpgradeableProxy.sol) + +pragma solidity ^0.8.0; + +import "../ERC1967/ERC1967Proxy.sol"; + +/** + * @dev This contract implements a proxy that is upgradeable by an admin. + * + * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector + * clashing], which can potentially be used in an attack, this contract uses the + * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two + * things that go hand in hand: + * + * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if + * that call matches one of the admin functions exposed by the proxy itself. + * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the + * implementation. If the admin tries to call a function on the implementation it will fail with an error that says + * "admin cannot fallback to proxy target". + * + * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing + * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due + * to sudden errors when trying to call a function from the proxy implementation. + * + * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, + * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy. + */ +contract TransparentUpgradeableProxy is ERC1967Proxy { + /** + * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and + * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}. + */ + constructor( + address _logic, + address admin_, + bytes memory _data + ) payable ERC1967Proxy(_logic, _data) { + assert(_ADMIN_SLOT == bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1)); + _changeAdmin(admin_); + } + + /** + * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin. + */ + modifier ifAdmin() { + if (msg.sender == _getAdmin()) { + _; + } else { + _fallback(); + } + } + + /** + * @dev Returns the current admin. + * + * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. + * + * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the + * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. + * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103` + */ + function admin() external ifAdmin returns (address admin_) { + admin_ = _getAdmin(); + } + + /** + * @dev Returns the current implementation. + * + * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. + * + * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the + * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. + * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc` + */ + function implementation() external ifAdmin returns (address implementation_) { + implementation_ = _implementation(); + } + + /** + * @dev Changes the admin of the proxy. + * + * Emits an {AdminChanged} event. + * + * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}. + */ + function changeAdmin(address newAdmin) external virtual ifAdmin { + _changeAdmin(newAdmin); + } + + /** + * @dev Upgrade the implementation of the proxy. + * + * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}. + */ + function upgradeTo(address newImplementation) external ifAdmin { + _upgradeToAndCall(newImplementation, bytes(""), false); + } + + /** + * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified + * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the + * proxied contract. + * + * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}. + */ + function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin { + _upgradeToAndCall(newImplementation, data, true); + } + + /** + * @dev Returns the current admin. + */ + function _admin() internal view virtual returns (address) { + return _getAdmin(); + } + + /** + * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}. + */ + function _beforeFallback() internal virtual override { + require(msg.sender != _getAdmin(), "TransparentUpgradeableProxy: admin cannot fallback to proxy target"); + super._beforeFallback(); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol new file mode 100644 index 000000000..0107bdabf --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (proxy/utils/Initializable.sol) + +pragma solidity ^0.8.0; + +/** + * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed + * behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an + * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer + * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. + * + * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as + * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. + * + * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure + * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. + * + * [CAUTION] + * ==== + * Avoid leaving a contract uninitialized. + * + * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation + * contract, which may impact the proxy. To initialize the implementation contract, you can either invoke the + * initializer manually, or you can include a constructor to automatically mark it as initialized when it is deployed: + * + * [.hljs-theme-light.nopadding] + * ``` + * /// @custom:oz-upgrades-unsafe-allow constructor + * constructor() initializer {} + * ``` + * ==== + */ +abstract contract Initializable { + /** + * @dev Indicates that the contract has been initialized. + */ + bool private _initialized; + + /** + * @dev Indicates that the contract is in the process of being initialized. + */ + bool private _initializing; + + /** + * @dev Modifier to protect an initializer function from being invoked twice. + */ + modifier initializer() { + require(_initializing || !_initialized, "Initializable: contract is already initialized"); + + bool isTopLevelCall = !_initializing; + if (isTopLevelCall) { + _initializing = true; + _initialized = true; + } + + _; + + if (isTopLevelCall) { + _initializing = false; + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol new file mode 100644 index 000000000..89ceccced --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (proxy/utils/UUPSUpgradeable.sol) + +pragma solidity ^0.8.0; + +import "../ERC1967/ERC1967Upgrade.sol"; + +/** + * @dev An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an + * {ERC1967Proxy}, when this contract is set as the implementation behind such a proxy. + * + * A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is + * reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing + * `UUPSUpgradeable` with a custom implementation of upgrades. + * + * The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism. + * + * _Available since v4.1._ + */ +abstract contract UUPSUpgradeable is ERC1967Upgrade { + /// @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment + address private immutable __self = address(this); + + /** + * @dev Check that the execution is being performed through a delegatecall call and that the execution context is + * a proxy contract with an implementation (as defined in ERC1967) pointing to self. This should only be the case + * for UUPS and transparent proxies that are using the current contract as their implementation. Execution of a + * function through ERC1167 minimal proxies (clones) would not normally pass this test, but is not guaranteed to + * fail. + */ + modifier onlyProxy() { + require(address(this) != __self, "Function must be called through delegatecall"); + require(_getImplementation() == __self, "Function must be called through active proxy"); + _; + } + + /** + * @dev Upgrade the implementation of the proxy to `newImplementation`. + * + * Calls {_authorizeUpgrade}. + * + * Emits an {Upgraded} event. + */ + function upgradeTo(address newImplementation) external virtual onlyProxy { + _authorizeUpgrade(newImplementation); + _upgradeToAndCallSecure(newImplementation, new bytes(0), false); + } + + /** + * @dev Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call + * encoded in `data`. + * + * Calls {_authorizeUpgrade}. + * + * Emits an {Upgraded} event. + */ + function upgradeToAndCall(address newImplementation, bytes memory data) external payable virtual onlyProxy { + _authorizeUpgrade(newImplementation); + _upgradeToAndCallSecure(newImplementation, data, true); + } + + /** + * @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract. Called by + * {upgradeTo} and {upgradeToAndCall}. + * + * Normally, this function will use an xref:access.adoc[access control] modifier such as {Ownable-onlyOwner}. + * + * ```solidity + * function _authorizeUpgrade(address) internal override onlyOwner {} + * ``` + */ + function _authorizeUpgrade(address newImplementation) internal virtual; +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/security/Pausable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/security/Pausable.sol new file mode 100644 index 000000000..004db0492 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/security/Pausable.sol @@ -0,0 +1,91 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (security/Pausable.sol) + +pragma solidity ^0.8.0; + +import "../utils/Context.sol"; + +/** + * @dev Contract module which allows children to implement an emergency stop + * mechanism that can be triggered by an authorized account. + * + * This module is used through inheritance. It will make available the + * modifiers `whenNotPaused` and `whenPaused`, which can be applied to + * the functions of your contract. Note that they will not be pausable by + * simply including this module, only once the modifiers are put in place. + */ +abstract contract Pausable is Context { + /** + * @dev Emitted when the pause is triggered by `account`. + */ + event Paused(address account); + + /** + * @dev Emitted when the pause is lifted by `account`. + */ + event Unpaused(address account); + + bool private _paused; + + /** + * @dev Initializes the contract in unpaused state. + */ + constructor() { + _paused = false; + } + + /** + * @dev Returns true if the contract is paused, and false otherwise. + */ + function paused() public view virtual returns (bool) { + return _paused; + } + + /** + * @dev Modifier to make a function callable only when the contract is not paused. + * + * Requirements: + * + * - The contract must not be paused. + */ + modifier whenNotPaused() { + require(!paused(), "Pausable: paused"); + _; + } + + /** + * @dev Modifier to make a function callable only when the contract is paused. + * + * Requirements: + * + * - The contract must be paused. + */ + modifier whenPaused() { + require(paused(), "Pausable: not paused"); + _; + } + + /** + * @dev Triggers stopped state. + * + * Requirements: + * + * - The contract must not be paused. + */ + function _pause() internal virtual whenNotPaused { + _paused = true; + emit Paused(_msgSender()); + } + + /** + * @dev Returns to normal state. + * + * Requirements: + * + * - The contract must be paused. + */ + function _unpause() internal virtual whenPaused { + _paused = false; + emit Unpaused(_msgSender()); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/security/PullPayment.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/security/PullPayment.sol new file mode 100644 index 000000000..829f13ed3 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/security/PullPayment.sol @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (security/PullPayment.sol) + +pragma solidity ^0.8.0; + +import "../utils/escrow/Escrow.sol"; + +/** + * @dev Simple implementation of a + * https://consensys.github.io/smart-contract-best-practices/recommendations/#favor-pull-over-push-for-external-calls[pull-payment] + * strategy, where the paying contract doesn't interact directly with the + * receiver account, which must withdraw its payments itself. + * + * Pull-payments are often considered the best practice when it comes to sending + * Ether, security-wise. It prevents recipients from blocking execution, and + * eliminates reentrancy concerns. + * + * TIP: If you would like to learn more about reentrancy and alternative ways + * to protect against it, check out our blog post + * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. + * + * To use, derive from the `PullPayment` contract, and use {_asyncTransfer} + * instead of Solidity's `transfer` function. Payees can query their due + * payments with {payments}, and retrieve them with {withdrawPayments}. + */ +abstract contract PullPayment { + Escrow private immutable _escrow; + + constructor() { + _escrow = new Escrow(); + } + + /** + * @dev Withdraw accumulated payments, forwarding all gas to the recipient. + * + * Note that _any_ account can call this function, not just the `payee`. + * This means that contracts unaware of the `PullPayment` protocol can still + * receive funds this way, by having a separate account call + * {withdrawPayments}. + * + * WARNING: Forwarding all gas opens the door to reentrancy vulnerabilities. + * Make sure you trust the recipient, or are either following the + * checks-effects-interactions pattern or using {ReentrancyGuard}. + * + * @param payee Whose payments will be withdrawn. + */ + function withdrawPayments(address payable payee) public virtual { + _escrow.withdraw(payee); + } + + /** + * @dev Returns the payments owed to an address. + * @param dest The creditor's address. + */ + function payments(address dest) public view returns (uint256) { + return _escrow.depositsOf(dest); + } + + /** + * @dev Called by the payer to store the sent amount as credit to be pulled. + * Funds sent in this way are stored in an intermediate {Escrow} contract, so + * there is no danger of them being spent before withdrawal. + * + * @param dest The destination address of the funds. + * @param amount The amount to transfer. + */ + function _asyncTransfer(address dest, uint256 amount) internal virtual { + _escrow.deposit{value: amount}(dest); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol new file mode 100644 index 000000000..0534bc321 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (security/ReentrancyGuard.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Contract module that helps prevent reentrant calls to a function. + * + * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier + * available, which can be applied to functions to make sure there are no nested + * (reentrant) calls to them. + * + * Note that because there is a single `nonReentrant` guard, functions marked as + * `nonReentrant` may not call one another. This can be worked around by making + * those functions `private`, and then adding `external` `nonReentrant` entry + * points to them. + * + * TIP: If you would like to learn more about reentrancy and alternative ways + * to protect against it, check out our blog post + * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. + */ +abstract contract ReentrancyGuard { + // Booleans are more expensive than uint256 or any type that takes up a full + // word because each write operation emits an extra SLOAD to first read the + // slot's contents, replace the bits taken up by the boolean, and then write + // back. This is the compiler's defense against contract upgrades and + // pointer aliasing, and it cannot be disabled. + + // The values being non-zero value makes deployment a bit more expensive, + // but in exchange the refund on every call to nonReentrant will be lower in + // amount. Since refunds are capped to a percentage of the total + // transaction's gas, it is best to keep them low in cases like this one, to + // increase the likelihood of the full refund coming into effect. + uint256 private constant _NOT_ENTERED = 1; + uint256 private constant _ENTERED = 2; + + uint256 private _status; + + constructor() { + _status = _NOT_ENTERED; + } + + /** + * @dev Prevents a contract from calling itself, directly or indirectly. + * Calling a `nonReentrant` function from another `nonReentrant` + * function is not supported. It is possible to prevent this from happening + * by making the `nonReentrant` function external, and making it call a + * `private` function that does the actual work. + */ + modifier nonReentrant() { + // On the first call to nonReentrant, _notEntered will be true + require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); + + // Any calls to nonReentrant after this point will fail + _status = _ENTERED; + + _; + + // By storing the original value once again, a refund is triggered (see + // https://eips.ethereum.org/EIPS/eip-2200) + _status = _NOT_ENTERED; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol new file mode 100644 index 000000000..5357a5d28 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol @@ -0,0 +1,464 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC1155/ERC1155.sol) + +pragma solidity ^0.8.0; + +import "./IERC1155.sol"; +import "./IERC1155Receiver.sol"; +import "./extensions/IERC1155MetadataURI.sol"; +import "../../utils/Address.sol"; +import "../../utils/Context.sol"; +import "../../utils/introspection/ERC165.sol"; + +/** + * @dev Implementation of the basic standard multi-token. + * See https://eips.ethereum.org/EIPS/eip-1155 + * Originally based on code by Enjin: https://github.com/enjin/erc-1155 + * + * _Available since v3.1._ + */ +contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { + using Address for address; + + // Mapping from token ID to account balances + mapping(uint256 => mapping(address => uint256)) private _balances; + + // Mapping from account to operator approvals + mapping(address => mapping(address => bool)) private _operatorApprovals; + + // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json + string private _uri; + + /** + * @dev See {_setURI}. + */ + constructor(string memory uri_) { + _setURI(uri_); + } + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { + return + interfaceId == type(IERC1155).interfaceId || + interfaceId == type(IERC1155MetadataURI).interfaceId || + super.supportsInterface(interfaceId); + } + + /** + * @dev See {IERC1155MetadataURI-uri}. + * + * This implementation returns the same URI for *all* token types. It relies + * on the token type ID substitution mechanism + * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. + * + * Clients calling this function must replace the `\{id\}` substring with the + * actual token type ID. + */ + function uri(uint256) public view virtual override returns (string memory) { + return _uri; + } + + /** + * @dev See {IERC1155-balanceOf}. + * + * Requirements: + * + * - `account` cannot be the zero address. + */ + function balanceOf(address account, uint256 id) public view virtual override returns (uint256) { + require(account != address(0), "ERC1155: balance query for the zero address"); + return _balances[id][account]; + } + + /** + * @dev See {IERC1155-balanceOfBatch}. + * + * Requirements: + * + * - `accounts` and `ids` must have the same length. + */ + function balanceOfBatch(address[] memory accounts, uint256[] memory ids) + public + view + virtual + override + returns (uint256[] memory) + { + require(accounts.length == ids.length, "ERC1155: accounts and ids length mismatch"); + + uint256[] memory batchBalances = new uint256[](accounts.length); + + for (uint256 i = 0; i < accounts.length; ++i) { + batchBalances[i] = balanceOf(accounts[i], ids[i]); + } + + return batchBalances; + } + + /** + * @dev See {IERC1155-setApprovalForAll}. + */ + function setApprovalForAll(address operator, bool approved) public virtual override { + _setApprovalForAll(_msgSender(), operator, approved); + } + + /** + * @dev See {IERC1155-isApprovedForAll}. + */ + function isApprovedForAll(address account, address operator) public view virtual override returns (bool) { + return _operatorApprovals[account][operator]; + } + + /** + * @dev See {IERC1155-safeTransferFrom}. + */ + function safeTransferFrom( + address from, + address to, + uint256 id, + uint256 amount, + bytes memory data + ) public virtual override { + require( + from == _msgSender() || isApprovedForAll(from, _msgSender()), + "ERC1155: caller is not owner nor approved" + ); + _safeTransferFrom(from, to, id, amount, data); + } + + /** + * @dev See {IERC1155-safeBatchTransferFrom}. + */ + function safeBatchTransferFrom( + address from, + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) public virtual override { + require( + from == _msgSender() || isApprovedForAll(from, _msgSender()), + "ERC1155: transfer caller is not owner nor approved" + ); + _safeBatchTransferFrom(from, to, ids, amounts, data); + } + + /** + * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. + * + * Emits a {TransferSingle} event. + * + * Requirements: + * + * - `to` cannot be the zero address. + * - `from` must have a balance of tokens of type `id` of at least `amount`. + * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the + * acceptance magic value. + */ + function _safeTransferFrom( + address from, + address to, + uint256 id, + uint256 amount, + bytes memory data + ) internal virtual { + require(to != address(0), "ERC1155: transfer to the zero address"); + + address operator = _msgSender(); + + _beforeTokenTransfer(operator, from, to, _asSingletonArray(id), _asSingletonArray(amount), data); + + uint256 fromBalance = _balances[id][from]; + require(fromBalance >= amount, "ERC1155: insufficient balance for transfer"); + unchecked { + _balances[id][from] = fromBalance - amount; + } + _balances[id][to] += amount; + + emit TransferSingle(operator, from, to, id, amount); + + _doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data); + } + + /** + * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}. + * + * Emits a {TransferBatch} event. + * + * Requirements: + * + * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the + * acceptance magic value. + */ + function _safeBatchTransferFrom( + address from, + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) internal virtual { + require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); + require(to != address(0), "ERC1155: transfer to the zero address"); + + address operator = _msgSender(); + + _beforeTokenTransfer(operator, from, to, ids, amounts, data); + + for (uint256 i = 0; i < ids.length; ++i) { + uint256 id = ids[i]; + uint256 amount = amounts[i]; + + uint256 fromBalance = _balances[id][from]; + require(fromBalance >= amount, "ERC1155: insufficient balance for transfer"); + unchecked { + _balances[id][from] = fromBalance - amount; + } + _balances[id][to] += amount; + } + + emit TransferBatch(operator, from, to, ids, amounts); + + _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data); + } + + /** + * @dev Sets a new URI for all token types, by relying on the token type ID + * substitution mechanism + * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. + * + * By this mechanism, any occurrence of the `\{id\}` substring in either the + * URI or any of the amounts in the JSON file at said URI will be replaced by + * clients with the token type ID. + * + * For example, the `https://token-cdn-domain/\{id\}.json` URI would be + * interpreted by clients as + * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json` + * for token type ID 0x4cce0. + * + * See {uri}. + * + * Because these URIs cannot be meaningfully represented by the {URI} event, + * this function emits no events. + */ + function _setURI(string memory newuri) internal virtual { + _uri = newuri; + } + + /** + * @dev Creates `amount` tokens of token type `id`, and assigns them to `to`. + * + * Emits a {TransferSingle} event. + * + * Requirements: + * + * - `to` cannot be the zero address. + * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the + * acceptance magic value. + */ + function _mint( + address to, + uint256 id, + uint256 amount, + bytes memory data + ) internal virtual { + require(to != address(0), "ERC1155: mint to the zero address"); + + address operator = _msgSender(); + + _beforeTokenTransfer(operator, address(0), to, _asSingletonArray(id), _asSingletonArray(amount), data); + + _balances[id][to] += amount; + emit TransferSingle(operator, address(0), to, id, amount); + + _doSafeTransferAcceptanceCheck(operator, address(0), to, id, amount, data); + } + + /** + * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}. + * + * Requirements: + * + * - `ids` and `amounts` must have the same length. + * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the + * acceptance magic value. + */ + function _mintBatch( + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) internal virtual { + require(to != address(0), "ERC1155: mint to the zero address"); + require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); + + address operator = _msgSender(); + + _beforeTokenTransfer(operator, address(0), to, ids, amounts, data); + + for (uint256 i = 0; i < ids.length; i++) { + _balances[ids[i]][to] += amounts[i]; + } + + emit TransferBatch(operator, address(0), to, ids, amounts); + + _doSafeBatchTransferAcceptanceCheck(operator, address(0), to, ids, amounts, data); + } + + /** + * @dev Destroys `amount` tokens of token type `id` from `from` + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `from` must have at least `amount` tokens of token type `id`. + */ + function _burn( + address from, + uint256 id, + uint256 amount + ) internal virtual { + require(from != address(0), "ERC1155: burn from the zero address"); + + address operator = _msgSender(); + + _beforeTokenTransfer(operator, from, address(0), _asSingletonArray(id), _asSingletonArray(amount), ""); + + uint256 fromBalance = _balances[id][from]; + require(fromBalance >= amount, "ERC1155: burn amount exceeds balance"); + unchecked { + _balances[id][from] = fromBalance - amount; + } + + emit TransferSingle(operator, from, address(0), id, amount); + } + + /** + * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}. + * + * Requirements: + * + * - `ids` and `amounts` must have the same length. + */ + function _burnBatch( + address from, + uint256[] memory ids, + uint256[] memory amounts + ) internal virtual { + require(from != address(0), "ERC1155: burn from the zero address"); + require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); + + address operator = _msgSender(); + + _beforeTokenTransfer(operator, from, address(0), ids, amounts, ""); + + for (uint256 i = 0; i < ids.length; i++) { + uint256 id = ids[i]; + uint256 amount = amounts[i]; + + uint256 fromBalance = _balances[id][from]; + require(fromBalance >= amount, "ERC1155: burn amount exceeds balance"); + unchecked { + _balances[id][from] = fromBalance - amount; + } + } + + emit TransferBatch(operator, from, address(0), ids, amounts); + } + + /** + * @dev Approve `operator` to operate on all of `owner` tokens + * + * Emits a {ApprovalForAll} event. + */ + function _setApprovalForAll( + address owner, + address operator, + bool approved + ) internal virtual { + require(owner != operator, "ERC1155: setting approval status for self"); + _operatorApprovals[owner][operator] = approved; + emit ApprovalForAll(owner, operator, approved); + } + + /** + * @dev Hook that is called before any token transfer. This includes minting + * and burning, as well as batched variants. + * + * The same hook is called on both single and batched variants. For single + * transfers, the length of the `id` and `amount` arrays will be 1. + * + * Calling conditions (for each `id` and `amount` pair): + * + * - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens + * of token type `id` will be transferred to `to`. + * - When `from` is zero, `amount` tokens of token type `id` will be minted + * for `to`. + * - when `to` is zero, `amount` of ``from``'s tokens of token type `id` + * will be burned. + * - `from` and `to` are never both zero. + * - `ids` and `amounts` have the same, non-zero length. + * + * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. + */ + function _beforeTokenTransfer( + address operator, + address from, + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) internal virtual {} + + function _doSafeTransferAcceptanceCheck( + address operator, + address from, + address to, + uint256 id, + uint256 amount, + bytes memory data + ) private { + if (to.isContract()) { + try IERC1155Receiver(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) { + if (response != IERC1155Receiver.onERC1155Received.selector) { + revert("ERC1155: ERC1155Receiver rejected tokens"); + } + } catch Error(string memory reason) { + revert(reason); + } catch { + revert("ERC1155: transfer to non ERC1155Receiver implementer"); + } + } + } + + function _doSafeBatchTransferAcceptanceCheck( + address operator, + address from, + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) private { + if (to.isContract()) { + try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns ( + bytes4 response + ) { + if (response != IERC1155Receiver.onERC1155BatchReceived.selector) { + revert("ERC1155: ERC1155Receiver rejected tokens"); + } + } catch Error(string memory reason) { + revert(reason); + } catch { + revert("ERC1155: transfer to non ERC1155Receiver implementer"); + } + } + } + + function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) { + uint256[] memory array = new uint256[](1); + array[0] = element; + + return array; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol new file mode 100644 index 000000000..6c93eddd1 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol @@ -0,0 +1,125 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC1155/IERC1155.sol) + +pragma solidity ^0.8.0; + +import "../../utils/introspection/IERC165.sol"; + +/** + * @dev Required interface of an ERC1155 compliant contract, as defined in the + * https://eips.ethereum.org/EIPS/eip-1155[EIP]. + * + * _Available since v3.1._ + */ +interface IERC1155 is IERC165 { + /** + * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`. + */ + event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); + + /** + * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all + * transfers. + */ + event TransferBatch( + address indexed operator, + address indexed from, + address indexed to, + uint256[] ids, + uint256[] values + ); + + /** + * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to + * `approved`. + */ + event ApprovalForAll(address indexed account, address indexed operator, bool approved); + + /** + * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. + * + * If an {URI} event was emitted for `id`, the standard + * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value + * returned by {IERC1155MetadataURI-uri}. + */ + event URI(string value, uint256 indexed id); + + /** + * @dev Returns the amount of tokens of token type `id` owned by `account`. + * + * Requirements: + * + * - `account` cannot be the zero address. + */ + function balanceOf(address account, uint256 id) external view returns (uint256); + + /** + * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. + * + * Requirements: + * + * - `accounts` and `ids` must have the same length. + */ + function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) + external + view + returns (uint256[] memory); + + /** + * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, + * + * Emits an {ApprovalForAll} event. + * + * Requirements: + * + * - `operator` cannot be the caller. + */ + function setApprovalForAll(address operator, bool approved) external; + + /** + * @dev Returns true if `operator` is approved to transfer ``account``'s tokens. + * + * See {setApprovalForAll}. + */ + function isApprovedForAll(address account, address operator) external view returns (bool); + + /** + * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. + * + * Emits a {TransferSingle} event. + * + * Requirements: + * + * - `to` cannot be the zero address. + * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}. + * - `from` must have a balance of tokens of type `id` of at least `amount`. + * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the + * acceptance magic value. + */ + function safeTransferFrom( + address from, + address to, + uint256 id, + uint256 amount, + bytes calldata data + ) external; + + /** + * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. + * + * Emits a {TransferBatch} event. + * + * Requirements: + * + * - `ids` and `amounts` must have the same length. + * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the + * acceptance magic value. + */ + function safeBatchTransferFrom( + address from, + address to, + uint256[] calldata ids, + uint256[] calldata amounts, + bytes calldata data + ) external; +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol new file mode 100644 index 000000000..e19d64f08 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol @@ -0,0 +1,53 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC1155/IERC1155Receiver.sol) + +pragma solidity ^0.8.0; + +import "../../utils/introspection/IERC165.sol"; + +/** + * @dev _Available since v3.1._ + */ +interface IERC1155Receiver is IERC165 { + /** + @dev Handles the receipt of a single ERC1155 token type. This function is + called at the end of a `safeTransferFrom` after the balance has been updated. + To accept the transfer, this must return + `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` + (i.e. 0xf23a6e61, or its own function selector). + @param operator The address which initiated the transfer (i.e. msg.sender) + @param from The address which previously owned the token + @param id The ID of the token being transferred + @param value The amount of tokens being transferred + @param data Additional data with no specified format + @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed + */ + function onERC1155Received( + address operator, + address from, + uint256 id, + uint256 value, + bytes calldata data + ) external returns (bytes4); + + /** + @dev Handles the receipt of a multiple ERC1155 token types. This function + is called at the end of a `safeBatchTransferFrom` after the balances have + been updated. To accept the transfer(s), this must return + `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` + (i.e. 0xbc197c81, or its own function selector). + @param operator The address which initiated the batch transfer (i.e. msg.sender) + @param from The address which previously owned the token + @param ids An array containing ids of each token being transferred (order and length must match values array) + @param values An array containing amounts of each token being transferred (order and length must match ids array) + @param data Additional data with no specified format + @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed + */ + function onERC1155BatchReceived( + address operator, + address from, + uint256[] calldata ids, + uint256[] calldata values, + bytes calldata data + ) external returns (bytes4); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol new file mode 100644 index 000000000..3608d8124 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol @@ -0,0 +1,40 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC1155/extensions/ERC1155Burnable.sol) + +pragma solidity ^0.8.0; + +import "../ERC1155.sol"; + +/** + * @dev Extension of {ERC1155} that allows token holders to destroy both their + * own tokens and those that they have been approved to use. + * + * _Available since v3.1._ + */ +abstract contract ERC1155Burnable is ERC1155 { + function burn( + address account, + uint256 id, + uint256 value + ) public virtual { + require( + account == _msgSender() || isApprovedForAll(account, _msgSender()), + "ERC1155: caller is not owner nor approved" + ); + + _burn(account, id, value); + } + + function burnBatch( + address account, + uint256[] memory ids, + uint256[] memory values + ) public virtual { + require( + account == _msgSender() || isApprovedForAll(account, _msgSender()), + "ERC1155: caller is not owner nor approved" + ); + + _burnBatch(account, ids, values); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Pausable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Pausable.sol new file mode 100644 index 000000000..189c24871 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Pausable.sol @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC1155/extensions/ERC1155Pausable.sol) + +pragma solidity ^0.8.0; + +import "../ERC1155.sol"; +import "../../../security/Pausable.sol"; + +/** + * @dev ERC1155 token with pausable token transfers, minting and burning. + * + * Useful for scenarios such as preventing trades until the end of an evaluation + * period, or having an emergency switch for freezing all token transfers in the + * event of a large bug. + * + * _Available since v3.1._ + */ +abstract contract ERC1155Pausable is ERC1155, Pausable { + /** + * @dev See {ERC1155-_beforeTokenTransfer}. + * + * Requirements: + * + * - the contract must not be paused. + */ + function _beforeTokenTransfer( + address operator, + address from, + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) internal virtual override { + super._beforeTokenTransfer(operator, from, to, ids, amounts, data); + + require(!paused(), "ERC1155Pausable: token transfer while paused"); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol new file mode 100644 index 000000000..10552f26a --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC1155/extensions/ERC1155Supply.sol) + +pragma solidity ^0.8.0; + +import "../ERC1155.sol"; + +/** + * @dev Extension of ERC1155 that adds tracking of total supply per id. + * + * Useful for scenarios where Fungible and Non-fungible tokens have to be + * clearly identified. Note: While a totalSupply of 1 might mean the + * corresponding is an NFT, there is no guarantees that no other token with the + * same id are not going to be minted. + */ +abstract contract ERC1155Supply is ERC1155 { + mapping(uint256 => uint256) private _totalSupply; + + /** + * @dev Total amount of tokens in with a given id. + */ + function totalSupply(uint256 id) public view virtual returns (uint256) { + return _totalSupply[id]; + } + + /** + * @dev Indicates whether any token exist with a given id, or not. + */ + function exists(uint256 id) public view virtual returns (bool) { + return ERC1155Supply.totalSupply(id) > 0; + } + + /** + * @dev See {ERC1155-_beforeTokenTransfer}. + */ + function _beforeTokenTransfer( + address operator, + address from, + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) internal virtual override { + super._beforeTokenTransfer(operator, from, to, ids, amounts, data); + + if (from == address(0)) { + for (uint256 i = 0; i < ids.length; ++i) { + _totalSupply[ids[i]] += amounts[i]; + } + } + + if (to == address(0)) { + for (uint256 i = 0; i < ids.length; ++i) { + _totalSupply[ids[i]] -= amounts[i]; + } + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol new file mode 100644 index 000000000..9f3522c79 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC1155/extensions/IERC1155MetadataURI.sol) + +pragma solidity ^0.8.0; + +import "../IERC1155.sol"; + +/** + * @dev Interface of the optional ERC1155MetadataExtension interface, as defined + * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP]. + * + * _Available since v3.1._ + */ +interface IERC1155MetadataURI is IERC1155 { + /** + * @dev Returns the URI for token type `id`. + * + * If the `\{id\}` substring is present in the URI, it must be replaced by + * clients with the actual token type ID. + */ + function uri(uint256 id) external view returns (string memory); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol new file mode 100644 index 000000000..1241f2ad1 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol @@ -0,0 +1,126 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC1155/presets/ERC1155PresetMinterPauser.sol) + +pragma solidity ^0.8.0; + +import "../ERC1155.sol"; +import "../extensions/ERC1155Burnable.sol"; +import "../extensions/ERC1155Pausable.sol"; +import "../../../access/AccessControlEnumerable.sol"; +import "../../../utils/Context.sol"; + +/** + * @dev {ERC1155} token, including: + * + * - ability for holders to burn (destroy) their tokens + * - a minter role that allows for token minting (creation) + * - a pauser role that allows to stop all token transfers + * + * This contract uses {AccessControl} to lock permissioned functions using the + * different roles - head to its documentation for details. + * + * The account that deploys the contract will be granted the minter and pauser + * roles, as well as the default admin role, which will let it grant both minter + * and pauser roles to other accounts. + */ +contract ERC1155PresetMinterPauser is Context, AccessControlEnumerable, ERC1155Burnable, ERC1155Pausable { + bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); + bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); + + /** + * @dev Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE`, and `PAUSER_ROLE` to the account that + * deploys the contract. + */ + constructor(string memory uri) ERC1155(uri) { + _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); + + _setupRole(MINTER_ROLE, _msgSender()); + _setupRole(PAUSER_ROLE, _msgSender()); + } + + /** + * @dev Creates `amount` new tokens for `to`, of token type `id`. + * + * See {ERC1155-_mint}. + * + * Requirements: + * + * - the caller must have the `MINTER_ROLE`. + */ + function mint( + address to, + uint256 id, + uint256 amount, + bytes memory data + ) public virtual { + require(hasRole(MINTER_ROLE, _msgSender()), "ERC1155PresetMinterPauser: must have minter role to mint"); + + _mint(to, id, amount, data); + } + + /** + * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] variant of {mint}. + */ + function mintBatch( + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) public virtual { + require(hasRole(MINTER_ROLE, _msgSender()), "ERC1155PresetMinterPauser: must have minter role to mint"); + + _mintBatch(to, ids, amounts, data); + } + + /** + * @dev Pauses all token transfers. + * + * See {ERC1155Pausable} and {Pausable-_pause}. + * + * Requirements: + * + * - the caller must have the `PAUSER_ROLE`. + */ + function pause() public virtual { + require(hasRole(PAUSER_ROLE, _msgSender()), "ERC1155PresetMinterPauser: must have pauser role to pause"); + _pause(); + } + + /** + * @dev Unpauses all token transfers. + * + * See {ERC1155Pausable} and {Pausable-_unpause}. + * + * Requirements: + * + * - the caller must have the `PAUSER_ROLE`. + */ + function unpause() public virtual { + require(hasRole(PAUSER_ROLE, _msgSender()), "ERC1155PresetMinterPauser: must have pauser role to unpause"); + _unpause(); + } + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) + public + view + virtual + override(AccessControlEnumerable, ERC1155) + returns (bool) + { + return super.supportsInterface(interfaceId); + } + + function _beforeTokenTransfer( + address operator, + address from, + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) internal virtual override(ERC1155, ERC1155Pausable) { + super._beforeTokenTransfer(operator, from, to, ids, amounts, data); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol new file mode 100644 index 000000000..c5d737a1c --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC1155/utils/ERC1155Holder.sol) + +pragma solidity ^0.8.0; + +import "./ERC1155Receiver.sol"; + +/** + * @dev _Available since v3.1._ + */ +contract ERC1155Holder is ERC1155Receiver { + function onERC1155Received( + address, + address, + uint256, + uint256, + bytes memory + ) public virtual override returns (bytes4) { + return this.onERC1155Received.selector; + } + + function onERC1155BatchReceived( + address, + address, + uint256[] memory, + uint256[] memory, + bytes memory + ) public virtual override returns (bytes4) { + return this.onERC1155BatchReceived.selector; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol new file mode 100644 index 000000000..b0d2f5dee --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC1155/utils/ERC1155Receiver.sol) + +pragma solidity ^0.8.0; + +import "../IERC1155Receiver.sol"; +import "../../../utils/introspection/ERC165.sol"; + +/** + * @dev _Available since v3.1._ + */ +abstract contract ERC1155Receiver is ERC165, IERC1155Receiver { + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { + return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol new file mode 100644 index 000000000..a8c60e595 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol @@ -0,0 +1,356 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/ERC20.sol) + +pragma solidity ^0.8.0; + +import "./IERC20.sol"; +import "./extensions/IERC20Metadata.sol"; +import "../../utils/Context.sol"; + +/** + * @dev Implementation of the {IERC20} interface. + * + * This implementation is agnostic to the way tokens are created. This means + * that a supply mechanism has to be added in a derived contract using {_mint}. + * For a generic mechanism see {ERC20PresetMinterPauser}. + * + * TIP: For a detailed writeup see our guide + * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How + * to implement supply mechanisms]. + * + * We have followed general OpenZeppelin Contracts guidelines: functions revert + * instead returning `false` on failure. This behavior is nonetheless + * conventional and does not conflict with the expectations of ERC20 + * applications. + * + * Additionally, an {Approval} event is emitted on calls to {transferFrom}. + * This allows applications to reconstruct the allowance for all accounts just + * by listening to said events. Other implementations of the EIP may not emit + * these events, as it isn't required by the specification. + * + * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} + * functions have been added to mitigate the well-known issues around setting + * allowances. See {IERC20-approve}. + */ +contract ERC20 is Context, IERC20, IERC20Metadata { + mapping(address => uint256) private _balances; + + mapping(address => mapping(address => uint256)) private _allowances; + + uint256 private _totalSupply; + + string private _name; + string private _symbol; + + /** + * @dev Sets the values for {name} and {symbol}. + * + * The default value of {decimals} is 18. To select a different value for + * {decimals} you should overload it. + * + * All two of these values are immutable: they can only be set once during + * construction. + */ + constructor(string memory name_, string memory symbol_) { + _name = name_; + _symbol = symbol_; + } + + /** + * @dev Returns the name of the token. + */ + function name() public view virtual override returns (string memory) { + return _name; + } + + /** + * @dev Returns the symbol of the token, usually a shorter version of the + * name. + */ + function symbol() public view virtual override returns (string memory) { + return _symbol; + } + + /** + * @dev Returns the number of decimals used to get its user representation. + * For example, if `decimals` equals `2`, a balance of `505` tokens should + * be displayed to a user as `5.05` (`505 / 10 ** 2`). + * + * Tokens usually opt for a value of 18, imitating the relationship between + * Ether and Wei. This is the value {ERC20} uses, unless this function is + * overridden; + * + * NOTE: This information is only used for _display_ purposes: it in + * no way affects any of the arithmetic of the contract, including + * {IERC20-balanceOf} and {IERC20-transfer}. + */ + function decimals() public view virtual override returns (uint8) { + return 18; + } + + /** + * @dev See {IERC20-totalSupply}. + */ + function totalSupply() public view virtual override returns (uint256) { + return _totalSupply; + } + + /** + * @dev See {IERC20-balanceOf}. + */ + function balanceOf(address account) public view virtual override returns (uint256) { + return _balances[account]; + } + + /** + * @dev See {IERC20-transfer}. + * + * Requirements: + * + * - `recipient` cannot be the zero address. + * - the caller must have a balance of at least `amount`. + */ + function transfer(address recipient, uint256 amount) public virtual override returns (bool) { + _transfer(_msgSender(), recipient, amount); + return true; + } + + /** + * @dev See {IERC20-allowance}. + */ + function allowance(address owner, address spender) public view virtual override returns (uint256) { + return _allowances[owner][spender]; + } + + /** + * @dev See {IERC20-approve}. + * + * Requirements: + * + * - `spender` cannot be the zero address. + */ + function approve(address spender, uint256 amount) public virtual override returns (bool) { + _approve(_msgSender(), spender, amount); + return true; + } + + /** + * @dev See {IERC20-transferFrom}. + * + * Emits an {Approval} event indicating the updated allowance. This is not + * required by the EIP. See the note at the beginning of {ERC20}. + * + * Requirements: + * + * - `sender` and `recipient` cannot be the zero address. + * - `sender` must have a balance of at least `amount`. + * - the caller must have allowance for ``sender``'s tokens of at least + * `amount`. + */ + function transferFrom( + address sender, + address recipient, + uint256 amount + ) public virtual override returns (bool) { + _transfer(sender, recipient, amount); + + uint256 currentAllowance = _allowances[sender][_msgSender()]; + require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); + unchecked { + _approve(sender, _msgSender(), currentAllowance - amount); + } + + return true; + } + + /** + * @dev Atomically increases the allowance granted to `spender` by the caller. + * + * This is an alternative to {approve} that can be used as a mitigation for + * problems described in {IERC20-approve}. + * + * Emits an {Approval} event indicating the updated allowance. + * + * Requirements: + * + * - `spender` cannot be the zero address. + */ + function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { + _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); + return true; + } + + /** + * @dev Atomically decreases the allowance granted to `spender` by the caller. + * + * This is an alternative to {approve} that can be used as a mitigation for + * problems described in {IERC20-approve}. + * + * Emits an {Approval} event indicating the updated allowance. + * + * Requirements: + * + * - `spender` cannot be the zero address. + * - `spender` must have allowance for the caller of at least + * `subtractedValue`. + */ + function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { + uint256 currentAllowance = _allowances[_msgSender()][spender]; + require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); + unchecked { + _approve(_msgSender(), spender, currentAllowance - subtractedValue); + } + + return true; + } + + /** + * @dev Moves `amount` of tokens from `sender` to `recipient`. + * + * This internal function is equivalent to {transfer}, and can be used to + * e.g. implement automatic token fees, slashing mechanisms, etc. + * + * Emits a {Transfer} event. + * + * Requirements: + * + * - `sender` cannot be the zero address. + * - `recipient` cannot be the zero address. + * - `sender` must have a balance of at least `amount`. + */ + function _transfer( + address sender, + address recipient, + uint256 amount + ) internal virtual { + require(sender != address(0), "ERC20: transfer from the zero address"); + require(recipient != address(0), "ERC20: transfer to the zero address"); + + _beforeTokenTransfer(sender, recipient, amount); + + uint256 senderBalance = _balances[sender]; + require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); + unchecked { + _balances[sender] = senderBalance - amount; + } + _balances[recipient] += amount; + + emit Transfer(sender, recipient, amount); + + _afterTokenTransfer(sender, recipient, amount); + } + + /** @dev Creates `amount` tokens and assigns them to `account`, increasing + * the total supply. + * + * Emits a {Transfer} event with `from` set to the zero address. + * + * Requirements: + * + * - `account` cannot be the zero address. + */ + function _mint(address account, uint256 amount) internal virtual { + require(account != address(0), "ERC20: mint to the zero address"); + + _beforeTokenTransfer(address(0), account, amount); + + _totalSupply += amount; + _balances[account] += amount; + emit Transfer(address(0), account, amount); + + _afterTokenTransfer(address(0), account, amount); + } + + /** + * @dev Destroys `amount` tokens from `account`, reducing the + * total supply. + * + * Emits a {Transfer} event with `to` set to the zero address. + * + * Requirements: + * + * - `account` cannot be the zero address. + * - `account` must have at least `amount` tokens. + */ + function _burn(address account, uint256 amount) internal virtual { + require(account != address(0), "ERC20: burn from the zero address"); + + _beforeTokenTransfer(account, address(0), amount); + + uint256 accountBalance = _balances[account]; + require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); + unchecked { + _balances[account] = accountBalance - amount; + } + _totalSupply -= amount; + + emit Transfer(account, address(0), amount); + + _afterTokenTransfer(account, address(0), amount); + } + + /** + * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. + * + * This internal function is equivalent to `approve`, and can be used to + * e.g. set automatic allowances for certain subsystems, etc. + * + * Emits an {Approval} event. + * + * Requirements: + * + * - `owner` cannot be the zero address. + * - `spender` cannot be the zero address. + */ + function _approve( + address owner, + address spender, + uint256 amount + ) internal virtual { + require(owner != address(0), "ERC20: approve from the zero address"); + require(spender != address(0), "ERC20: approve to the zero address"); + + _allowances[owner][spender] = amount; + emit Approval(owner, spender, amount); + } + + /** + * @dev Hook that is called before any transfer of tokens. This includes + * minting and burning. + * + * Calling conditions: + * + * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens + * will be transferred to `to`. + * - when `from` is zero, `amount` tokens will be minted for `to`. + * - when `to` is zero, `amount` of ``from``'s tokens will be burned. + * - `from` and `to` are never both zero. + * + * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. + */ + function _beforeTokenTransfer( + address from, + address to, + uint256 amount + ) internal virtual {} + + /** + * @dev Hook that is called after any transfer of tokens. This includes + * minting and burning. + * + * Calling conditions: + * + * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens + * has been transferred to `to`. + * - when `from` is zero, `amount` tokens have been minted for `to`. + * - when `to` is zero, `amount` of ``from``'s tokens have been burned. + * - `from` and `to` are never both zero. + * + * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. + */ + function _afterTokenTransfer( + address from, + address to, + uint256 amount + ) internal virtual {} +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol new file mode 100644 index 000000000..ba210565b --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol @@ -0,0 +1,82 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/IERC20.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Interface of the ERC20 standard as defined in the EIP. + */ +interface IERC20 { + /** + * @dev Returns the amount of tokens in existence. + */ + function totalSupply() external view returns (uint256); + + /** + * @dev Returns the amount of tokens owned by `account`. + */ + function balanceOf(address account) external view returns (uint256); + + /** + * @dev Moves `amount` tokens from the caller's account to `recipient`. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * Emits a {Transfer} event. + */ + function transfer(address recipient, uint256 amount) external returns (bool); + + /** + * @dev Returns the remaining number of tokens that `spender` will be + * allowed to spend on behalf of `owner` through {transferFrom}. This is + * zero by default. + * + * This value changes when {approve} or {transferFrom} are called. + */ + function allowance(address owner, address spender) external view returns (uint256); + + /** + * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * IMPORTANT: Beware that changing an allowance with this method brings the risk + * that someone may use both the old and the new allowance by unfortunate + * transaction ordering. One possible solution to mitigate this race + * condition is to first reduce the spender's allowance to 0 and set the + * desired value afterwards: + * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 + * + * Emits an {Approval} event. + */ + function approve(address spender, uint256 amount) external returns (bool); + + /** + * @dev Moves `amount` tokens from `sender` to `recipient` using the + * allowance mechanism. `amount` is then deducted from the caller's + * allowance. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * Emits a {Transfer} event. + */ + function transferFrom( + address sender, + address recipient, + uint256 amount + ) external returns (bool); + + /** + * @dev Emitted when `value` tokens are moved from one account (`from`) to + * another (`to`). + * + * Note that `value` may be zero. + */ + event Transfer(address indexed from, address indexed to, uint256 value); + + /** + * @dev Emitted when the allowance of a `spender` for an `owner` is set by + * a call to {approve}. `value` is the new allowance. + */ + event Approval(address indexed owner, address indexed spender, uint256 value); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol new file mode 100644 index 000000000..e5e00f97c --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20Burnable.sol) + +pragma solidity ^0.8.0; + +import "../ERC20.sol"; +import "../../../utils/Context.sol"; + +/** + * @dev Extension of {ERC20} that allows token holders to destroy both their own + * tokens and those that they have an allowance for, in a way that can be + * recognized off-chain (via event analysis). + */ +abstract contract ERC20Burnable is Context, ERC20 { + /** + * @dev Destroys `amount` tokens from the caller. + * + * See {ERC20-_burn}. + */ + function burn(uint256 amount) public virtual { + _burn(_msgSender(), amount); + } + + /** + * @dev Destroys `amount` tokens from `account`, deducting from the caller's + * allowance. + * + * See {ERC20-_burn} and {ERC20-allowance}. + * + * Requirements: + * + * - the caller must have allowance for ``accounts``'s tokens of at least + * `amount`. + */ + function burnFrom(address account, uint256 amount) public virtual { + uint256 currentAllowance = allowance(account, _msgSender()); + require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance"); + unchecked { + _approve(account, _msgSender(), currentAllowance - amount); + } + _burn(account, amount); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol new file mode 100644 index 000000000..88c12cd43 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20Capped.sol) + +pragma solidity ^0.8.0; + +import "../ERC20.sol"; + +/** + * @dev Extension of {ERC20} that adds a cap to the supply of tokens. + */ +abstract contract ERC20Capped is ERC20 { + uint256 private immutable _cap; + + /** + * @dev Sets the value of the `cap`. This value is immutable, it can only be + * set once during construction. + */ + constructor(uint256 cap_) { + require(cap_ > 0, "ERC20Capped: cap is 0"); + _cap = cap_; + } + + /** + * @dev Returns the cap on the token's total supply. + */ + function cap() public view virtual returns (uint256) { + return _cap; + } + + /** + * @dev See {ERC20-_mint}. + */ + function _mint(address account, uint256 amount) internal virtual override { + require(ERC20.totalSupply() + amount <= cap(), "ERC20Capped: cap exceeded"); + super._mint(account, amount); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol new file mode 100644 index 000000000..c16ae0387 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol @@ -0,0 +1,77 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20FlashMint.sol) + +pragma solidity ^0.8.0; + +import "../../../interfaces/IERC3156.sol"; +import "../ERC20.sol"; + +/** + * @dev Implementation of the ERC3156 Flash loans extension, as defined in + * https://eips.ethereum.org/EIPS/eip-3156[ERC-3156]. + * + * Adds the {flashLoan} method, which provides flash loan support at the token + * level. By default there is no fee, but this can be changed by overriding {flashFee}. + * + * _Available since v4.1._ + */ +abstract contract ERC20FlashMint is ERC20, IERC3156FlashLender { + bytes32 private constant _RETURN_VALUE = keccak256("ERC3156FlashBorrower.onFlashLoan"); + + /** + * @dev Returns the maximum amount of tokens available for loan. + * @param token The address of the token that is requested. + * @return The amont of token that can be loaned. + */ + function maxFlashLoan(address token) public view override returns (uint256) { + return token == address(this) ? type(uint256).max - ERC20.totalSupply() : 0; + } + + /** + * @dev Returns the fee applied when doing flash loans. By default this + * implementation has 0 fees. This function can be overloaded to make + * the flash loan mechanism deflationary. + * @param token The token to be flash loaned. + * @param amount The amount of tokens to be loaned. + * @return The fees applied to the corresponding flash loan. + */ + function flashFee(address token, uint256 amount) public view virtual override returns (uint256) { + require(token == address(this), "ERC20FlashMint: wrong token"); + // silence warning about unused variable without the addition of bytecode. + amount; + return 0; + } + + /** + * @dev Performs a flash loan. New tokens are minted and sent to the + * `receiver`, who is required to implement the {IERC3156FlashBorrower} + * interface. By the end of the flash loan, the receiver is expected to own + * amount + fee tokens and have them approved back to the token contract itself so + * they can be burned. + * @param receiver The receiver of the flash loan. Should implement the + * {IERC3156FlashBorrower.onFlashLoan} interface. + * @param token The token to be flash loaned. Only `address(this)` is + * supported. + * @param amount The amount of tokens to be loaned. + * @param data An arbitrary datafield that is passed to the receiver. + * @return `true` is the flash loan was successful. + */ + function flashLoan( + IERC3156FlashBorrower receiver, + address token, + uint256 amount, + bytes calldata data + ) public virtual override returns (bool) { + uint256 fee = flashFee(token, amount); + _mint(address(receiver), amount); + require( + receiver.onFlashLoan(msg.sender, token, amount, fee, data) == _RETURN_VALUE, + "ERC20FlashMint: invalid return value" + ); + uint256 currentAllowance = allowance(address(receiver), address(this)); + require(currentAllowance >= amount + fee, "ERC20FlashMint: allowance does not allow refund"); + _approve(address(receiver), address(this), currentAllowance - amount - fee); + _burn(address(receiver), amount + fee); + return true; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol new file mode 100644 index 000000000..6bbedade4 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20Pausable.sol) + +pragma solidity ^0.8.0; + +import "../ERC20.sol"; +import "../../../security/Pausable.sol"; + +/** + * @dev ERC20 token with pausable token transfers, minting and burning. + * + * Useful for scenarios such as preventing trades until the end of an evaluation + * period, or having an emergency switch for freezing all token transfers in the + * event of a large bug. + */ +abstract contract ERC20Pausable is ERC20, Pausable { + /** + * @dev See {ERC20-_beforeTokenTransfer}. + * + * Requirements: + * + * - the contract must not be paused. + */ + function _beforeTokenTransfer( + address from, + address to, + uint256 amount + ) internal virtual override { + super._beforeTokenTransfer(from, to, amount); + + require(!paused(), "ERC20Pausable: token transfer while paused"); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol new file mode 100644 index 000000000..fde863703 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol @@ -0,0 +1,195 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20Snapshot.sol) + +pragma solidity ^0.8.0; + +import "../ERC20.sol"; +import "../../../utils/Arrays.sol"; +import "../../../utils/Counters.sol"; + +/** + * @dev This contract extends an ERC20 token with a snapshot mechanism. When a snapshot is created, the balances and + * total supply at the time are recorded for later access. + * + * This can be used to safely create mechanisms based on token balances such as trustless dividends or weighted voting. + * In naive implementations it's possible to perform a "double spend" attack by reusing the same balance from different + * accounts. By using snapshots to calculate dividends or voting power, those attacks no longer apply. It can also be + * used to create an efficient ERC20 forking mechanism. + * + * Snapshots are created by the internal {_snapshot} function, which will emit the {Snapshot} event and return a + * snapshot id. To get the total supply at the time of a snapshot, call the function {totalSupplyAt} with the snapshot + * id. To get the balance of an account at the time of a snapshot, call the {balanceOfAt} function with the snapshot id + * and the account address. + * + * NOTE: Snapshot policy can be customized by overriding the {_getCurrentSnapshotId} method. For example, having it + * return `block.number` will trigger the creation of snapshot at the begining of each new block. When overridding this + * function, be careful about the monotonicity of its result. Non-monotonic snapshot ids will break the contract. + * + * Implementing snapshots for every block using this method will incur significant gas costs. For a gas-efficient + * alternative consider {ERC20Votes}. + * + * ==== Gas Costs + * + * Snapshots are efficient. Snapshot creation is _O(1)_. Retrieval of balances or total supply from a snapshot is _O(log + * n)_ in the number of snapshots that have been created, although _n_ for a specific account will generally be much + * smaller since identical balances in subsequent snapshots are stored as a single entry. + * + * There is a constant overhead for normal ERC20 transfers due to the additional snapshot bookkeeping. This overhead is + * only significant for the first transfer that immediately follows a snapshot for a particular account. Subsequent + * transfers will have normal cost until the next snapshot, and so on. + */ + +abstract contract ERC20Snapshot is ERC20 { + // Inspired by Jordi Baylina's MiniMeToken to record historical balances: + // https://github.com/Giveth/minimd/blob/ea04d950eea153a04c51fa510b068b9dded390cb/contracts/MiniMeToken.sol + + using Arrays for uint256[]; + using Counters for Counters.Counter; + + // Snapshotted values have arrays of ids and the value corresponding to that id. These could be an array of a + // Snapshot struct, but that would impede usage of functions that work on an array. + struct Snapshots { + uint256[] ids; + uint256[] values; + } + + mapping(address => Snapshots) private _accountBalanceSnapshots; + Snapshots private _totalSupplySnapshots; + + // Snapshot ids increase monotonically, with the first value being 1. An id of 0 is invalid. + Counters.Counter private _currentSnapshotId; + + /** + * @dev Emitted by {_snapshot} when a snapshot identified by `id` is created. + */ + event Snapshot(uint256 id); + + /** + * @dev Creates a new snapshot and returns its snapshot id. + * + * Emits a {Snapshot} event that contains the same id. + * + * {_snapshot} is `internal` and you have to decide how to expose it externally. Its usage may be restricted to a + * set of accounts, for example using {AccessControl}, or it may be open to the public. + * + * [WARNING] + * ==== + * While an open way of calling {_snapshot} is required for certain trust minimization mechanisms such as forking, + * you must consider that it can potentially be used by attackers in two ways. + * + * First, it can be used to increase the cost of retrieval of values from snapshots, although it will grow + * logarithmically thus rendering this attack ineffective in the long term. Second, it can be used to target + * specific accounts and increase the cost of ERC20 transfers for them, in the ways specified in the Gas Costs + * section above. + * + * We haven't measured the actual numbers; if this is something you're interested in please reach out to us. + * ==== + */ + function _snapshot() internal virtual returns (uint256) { + _currentSnapshotId.increment(); + + uint256 currentId = _getCurrentSnapshotId(); + emit Snapshot(currentId); + return currentId; + } + + /** + * @dev Get the current snapshotId + */ + function _getCurrentSnapshotId() internal view virtual returns (uint256) { + return _currentSnapshotId.current(); + } + + /** + * @dev Retrieves the balance of `account` at the time `snapshotId` was created. + */ + function balanceOfAt(address account, uint256 snapshotId) public view virtual returns (uint256) { + (bool snapshotted, uint256 value) = _valueAt(snapshotId, _accountBalanceSnapshots[account]); + + return snapshotted ? value : balanceOf(account); + } + + /** + * @dev Retrieves the total supply at the time `snapshotId` was created. + */ + function totalSupplyAt(uint256 snapshotId) public view virtual returns (uint256) { + (bool snapshotted, uint256 value) = _valueAt(snapshotId, _totalSupplySnapshots); + + return snapshotted ? value : totalSupply(); + } + + // Update balance and/or total supply snapshots before the values are modified. This is implemented + // in the _beforeTokenTransfer hook, which is executed for _mint, _burn, and _transfer operations. + function _beforeTokenTransfer( + address from, + address to, + uint256 amount + ) internal virtual override { + super._beforeTokenTransfer(from, to, amount); + + if (from == address(0)) { + // mint + _updateAccountSnapshot(to); + _updateTotalSupplySnapshot(); + } else if (to == address(0)) { + // burn + _updateAccountSnapshot(from); + _updateTotalSupplySnapshot(); + } else { + // transfer + _updateAccountSnapshot(from); + _updateAccountSnapshot(to); + } + } + + function _valueAt(uint256 snapshotId, Snapshots storage snapshots) private view returns (bool, uint256) { + require(snapshotId > 0, "ERC20Snapshot: id is 0"); + require(snapshotId <= _getCurrentSnapshotId(), "ERC20Snapshot: nonexistent id"); + + // When a valid snapshot is queried, there are three possibilities: + // a) The queried value was not modified after the snapshot was taken. Therefore, a snapshot entry was never + // created for this id, and all stored snapshot ids are smaller than the requested one. The value that corresponds + // to this id is the current one. + // b) The queried value was modified after the snapshot was taken. Therefore, there will be an entry with the + // requested id, and its value is the one to return. + // c) More snapshots were created after the requested one, and the queried value was later modified. There will be + // no entry for the requested id: the value that corresponds to it is that of the smallest snapshot id that is + // larger than the requested one. + // + // In summary, we need to find an element in an array, returning the index of the smallest value that is larger if + // it is not found, unless said value doesn't exist (e.g. when all values are smaller). Arrays.findUpperBound does + // exactly this. + + uint256 index = snapshots.ids.findUpperBound(snapshotId); + + if (index == snapshots.ids.length) { + return (false, 0); + } else { + return (true, snapshots.values[index]); + } + } + + function _updateAccountSnapshot(address account) private { + _updateSnapshot(_accountBalanceSnapshots[account], balanceOf(account)); + } + + function _updateTotalSupplySnapshot() private { + _updateSnapshot(_totalSupplySnapshots, totalSupply()); + } + + function _updateSnapshot(Snapshots storage snapshots, uint256 currentValue) private { + uint256 currentId = _getCurrentSnapshotId(); + if (_lastSnapshotId(snapshots.ids) < currentId) { + snapshots.ids.push(currentId); + snapshots.values.push(currentValue); + } + } + + function _lastSnapshotId(uint256[] storage ids) private view returns (uint256) { + if (ids.length == 0) { + return 0; + } else { + return ids[ids.length - 1]; + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol new file mode 100644 index 000000000..f4fd21d3e --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol @@ -0,0 +1,260 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20Votes.sol) + +pragma solidity ^0.8.0; + +import "./draft-ERC20Permit.sol"; +import "../../../utils/math/Math.sol"; +import "../../../utils/math/SafeCast.sol"; +import "../../../utils/cryptography/ECDSA.sol"; + +/** + * @dev Extension of ERC20 to support Compound-like voting and delegation. This version is more generic than Compound's, + * and supports token supply up to 2^224^ - 1, while COMP is limited to 2^96^ - 1. + * + * NOTE: If exact COMP compatibility is required, use the {ERC20VotesComp} variant of this module. + * + * This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either + * by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting + * power can be queried through the public accessors {getVotes} and {getPastVotes}. + * + * By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it + * requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked. + * Enabling self-delegation can easily be done by overriding the {delegates} function. Keep in mind however that this + * will significantly increase the base gas cost of transfers. + * + * _Available since v4.2._ + */ +abstract contract ERC20Votes is ERC20Permit { + struct Checkpoint { + uint32 fromBlock; + uint224 votes; + } + + bytes32 private constant _DELEGATION_TYPEHASH = + keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)"); + + mapping(address => address) private _delegates; + mapping(address => Checkpoint[]) private _checkpoints; + Checkpoint[] private _totalSupplyCheckpoints; + + /** + * @dev Emitted when an account changes their delegate. + */ + event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); + + /** + * @dev Emitted when a token transfer or delegate change results in changes to an account's voting power. + */ + event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance); + + /** + * @dev Get the `pos`-th checkpoint for `account`. + */ + function checkpoints(address account, uint32 pos) public view virtual returns (Checkpoint memory) { + return _checkpoints[account][pos]; + } + + /** + * @dev Get number of checkpoints for `account`. + */ + function numCheckpoints(address account) public view virtual returns (uint32) { + return SafeCast.toUint32(_checkpoints[account].length); + } + + /** + * @dev Get the address `account` is currently delegating to. + */ + function delegates(address account) public view virtual returns (address) { + return _delegates[account]; + } + + /** + * @dev Gets the current votes balance for `account` + */ + function getVotes(address account) public view returns (uint256) { + uint256 pos = _checkpoints[account].length; + return pos == 0 ? 0 : _checkpoints[account][pos - 1].votes; + } + + /** + * @dev Retrieve the number of votes for `account` at the end of `blockNumber`. + * + * Requirements: + * + * - `blockNumber` must have been already mined + */ + function getPastVotes(address account, uint256 blockNumber) public view returns (uint256) { + require(blockNumber < block.number, "ERC20Votes: block not yet mined"); + return _checkpointsLookup(_checkpoints[account], blockNumber); + } + + /** + * @dev Retrieve the `totalSupply` at the end of `blockNumber`. Note, this value is the sum of all balances. + * It is but NOT the sum of all the delegated votes! + * + * Requirements: + * + * - `blockNumber` must have been already mined + */ + function getPastTotalSupply(uint256 blockNumber) public view returns (uint256) { + require(blockNumber < block.number, "ERC20Votes: block not yet mined"); + return _checkpointsLookup(_totalSupplyCheckpoints, blockNumber); + } + + /** + * @dev Lookup a value in a list of (sorted) checkpoints. + */ + function _checkpointsLookup(Checkpoint[] storage ckpts, uint256 blockNumber) private view returns (uint256) { + // We run a binary search to look for the earliest checkpoint taken after `blockNumber`. + // + // During the loop, the index of the wanted checkpoint remains in the range [low-1, high). + // With each iteration, either `low` or `high` is moved towards the middle of the range to maintain the invariant. + // - If the middle checkpoint is after `blockNumber`, we look in [low, mid) + // - If the middle checkpoint is before or equal to `blockNumber`, we look in [mid+1, high) + // Once we reach a single value (when low == high), we've found the right checkpoint at the index high-1, if not + // out of bounds (in which case we're looking too far in the past and the result is 0). + // Note that if the latest checkpoint available is exactly for `blockNumber`, we end up with an index that is + // past the end of the array, so we technically don't find a checkpoint after `blockNumber`, but it works out + // the same. + uint256 high = ckpts.length; + uint256 low = 0; + while (low < high) { + uint256 mid = Math.average(low, high); + if (ckpts[mid].fromBlock > blockNumber) { + high = mid; + } else { + low = mid + 1; + } + } + + return high == 0 ? 0 : ckpts[high - 1].votes; + } + + /** + * @dev Delegate votes from the sender to `delegatee`. + */ + function delegate(address delegatee) public virtual { + _delegate(_msgSender(), delegatee); + } + + /** + * @dev Delegates votes from signer to `delegatee` + */ + function delegateBySig( + address delegatee, + uint256 nonce, + uint256 expiry, + uint8 v, + bytes32 r, + bytes32 s + ) public virtual { + require(block.timestamp <= expiry, "ERC20Votes: signature expired"); + address signer = ECDSA.recover( + _hashTypedDataV4(keccak256(abi.encode(_DELEGATION_TYPEHASH, delegatee, nonce, expiry))), + v, + r, + s + ); + require(nonce == _useNonce(signer), "ERC20Votes: invalid nonce"); + _delegate(signer, delegatee); + } + + /** + * @dev Maximum token supply. Defaults to `type(uint224).max` (2^224^ - 1). + */ + function _maxSupply() internal view virtual returns (uint224) { + return type(uint224).max; + } + + /** + * @dev Snapshots the totalSupply after it has been increased. + */ + function _mint(address account, uint256 amount) internal virtual override { + super._mint(account, amount); + require(totalSupply() <= _maxSupply(), "ERC20Votes: total supply risks overflowing votes"); + + _writeCheckpoint(_totalSupplyCheckpoints, _add, amount); + } + + /** + * @dev Snapshots the totalSupply after it has been decreased. + */ + function _burn(address account, uint256 amount) internal virtual override { + super._burn(account, amount); + + _writeCheckpoint(_totalSupplyCheckpoints, _subtract, amount); + } + + /** + * @dev Move voting power when tokens are transferred. + * + * Emits a {DelegateVotesChanged} event. + */ + function _afterTokenTransfer( + address from, + address to, + uint256 amount + ) internal virtual override { + super._afterTokenTransfer(from, to, amount); + + _moveVotingPower(delegates(from), delegates(to), amount); + } + + /** + * @dev Change delegation for `delegator` to `delegatee`. + * + * Emits events {DelegateChanged} and {DelegateVotesChanged}. + */ + function _delegate(address delegator, address delegatee) internal virtual { + address currentDelegate = delegates(delegator); + uint256 delegatorBalance = balanceOf(delegator); + _delegates[delegator] = delegatee; + + emit DelegateChanged(delegator, currentDelegate, delegatee); + + _moveVotingPower(currentDelegate, delegatee, delegatorBalance); + } + + function _moveVotingPower( + address src, + address dst, + uint256 amount + ) private { + if (src != dst && amount > 0) { + if (src != address(0)) { + (uint256 oldWeight, uint256 newWeight) = _writeCheckpoint(_checkpoints[src], _subtract, amount); + emit DelegateVotesChanged(src, oldWeight, newWeight); + } + + if (dst != address(0)) { + (uint256 oldWeight, uint256 newWeight) = _writeCheckpoint(_checkpoints[dst], _add, amount); + emit DelegateVotesChanged(dst, oldWeight, newWeight); + } + } + } + + function _writeCheckpoint( + Checkpoint[] storage ckpts, + function(uint256, uint256) view returns (uint256) op, + uint256 delta + ) private returns (uint256 oldWeight, uint256 newWeight) { + uint256 pos = ckpts.length; + oldWeight = pos == 0 ? 0 : ckpts[pos - 1].votes; + newWeight = op(oldWeight, delta); + + if (pos > 0 && ckpts[pos - 1].fromBlock == block.number) { + ckpts[pos - 1].votes = SafeCast.toUint224(newWeight); + } else { + ckpts.push(Checkpoint({fromBlock: SafeCast.toUint32(block.number), votes: SafeCast.toUint224(newWeight)})); + } + } + + function _add(uint256 a, uint256 b) private pure returns (uint256) { + return a + b; + } + + function _subtract(uint256 a, uint256 b) private pure returns (uint256) { + return a - b; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol new file mode 100644 index 000000000..1939c3f57 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20VotesComp.sol) + +pragma solidity ^0.8.0; + +import "./ERC20Votes.sol"; + +/** + * @dev Extension of ERC20 to support Compound's voting and delegation. This version exactly matches Compound's + * interface, with the drawback of only supporting supply up to (2^96^ - 1). + * + * NOTE: You should use this contract if you need exact compatibility with COMP (for example in order to use your token + * with Governor Alpha or Bravo) and if you are sure the supply cap of 2^96^ is enough for you. Otherwise, use the + * {ERC20Votes} variant of this module. + * + * This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either + * by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting + * power can be queried through the public accessors {getCurrentVotes} and {getPriorVotes}. + * + * By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it + * requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked. + * Enabling self-delegation can easily be done by overriding the {delegates} function. Keep in mind however that this + * will significantly increase the base gas cost of transfers. + * + * _Available since v4.2._ + */ +abstract contract ERC20VotesComp is ERC20Votes { + /** + * @dev Comp version of the {getVotes} accessor, with `uint96` return type. + */ + function getCurrentVotes(address account) external view returns (uint96) { + return SafeCast.toUint96(getVotes(account)); + } + + /** + * @dev Comp version of the {getPastVotes} accessor, with `uint96` return type. + */ + function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96) { + return SafeCast.toUint96(getPastVotes(account, blockNumber)); + } + + /** + * @dev Maximum token supply. Reduced to `type(uint96).max` (2^96^ - 1) to fit COMP interface. + */ + function _maxSupply() internal view virtual override returns (uint224) { + return type(uint96).max; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Wrapper.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Wrapper.sol new file mode 100644 index 000000000..6bc313d6e --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Wrapper.sol @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20Wrapper.sol) + +pragma solidity ^0.8.0; + +import "../ERC20.sol"; +import "../utils/SafeERC20.sol"; + +/** + * @dev Extension of the ERC20 token contract to support token wrapping. + * + * Users can deposit and withdraw "underlying tokens" and receive a matching number of "wrapped tokens". This is useful + * in conjunction with other modules. For example, combining this wrapping mechanism with {ERC20Votes} will allow the + * wrapping of an existing "basic" ERC20 into a governance token. + * + * _Available since v4.2._ + */ +abstract contract ERC20Wrapper is ERC20 { + IERC20 public immutable underlying; + + constructor(IERC20 underlyingToken) { + underlying = underlyingToken; + } + + /** + * @dev Allow a user to deposit underlying tokens and mint the corresponding number of wrapped tokens. + */ + function depositFor(address account, uint256 amount) public virtual returns (bool) { + SafeERC20.safeTransferFrom(underlying, _msgSender(), address(this), amount); + _mint(account, amount); + return true; + } + + /** + * @dev Allow a user to burn a number of wrapped tokens and withdraw the corresponding number of underlying tokens. + */ + function withdrawTo(address account, uint256 amount) public virtual returns (bool) { + _burn(_msgSender(), amount); + SafeERC20.safeTransfer(underlying, account, amount); + return true; + } + + /** + * @dev Mint wrapped token to cover any underlyingTokens that would have been transfered by mistake. Internal + * function that can be exposed with access control if desired. + */ + function _recover(address account) internal virtual returns (uint256) { + uint256 value = underlying.balanceOf(address(this)) - totalSupply(); + _mint(account, value); + return value; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol new file mode 100644 index 000000000..93fe3670f --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/IERC20Metadata.sol) + +pragma solidity ^0.8.0; + +import "../IERC20.sol"; + +/** + * @dev Interface for the optional metadata functions from the ERC20 standard. + * + * _Available since v4.1._ + */ +interface IERC20Metadata is IERC20 { + /** + * @dev Returns the name of the token. + */ + function name() external view returns (string memory); + + /** + * @dev Returns the symbol of the token. + */ + function symbol() external view returns (string memory); + + /** + * @dev Returns the decimals places of the token. + */ + function decimals() external view returns (uint8); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol new file mode 100644 index 000000000..1b33f1642 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol @@ -0,0 +1,87 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/draft-ERC20Permit.sol) + +pragma solidity ^0.8.0; + +import "./draft-IERC20Permit.sol"; +import "../ERC20.sol"; +import "../../../utils/cryptography/draft-EIP712.sol"; +import "../../../utils/cryptography/ECDSA.sol"; +import "../../../utils/Counters.sol"; + +/** + * @dev Implementation of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in + * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. + * + * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by + * presenting a message signed by the account. By not relying on `{IERC20-approve}`, the token holder account doesn't + * need to send a transaction, and thus is not required to hold Ether at all. + * + * _Available since v3.4._ + */ +abstract contract ERC20Permit is ERC20, IERC20Permit, EIP712 { + using Counters for Counters.Counter; + + mapping(address => Counters.Counter) private _nonces; + + // solhint-disable-next-line var-name-mixedcase + bytes32 private immutable _PERMIT_TYPEHASH = + keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); + + /** + * @dev Initializes the {EIP712} domain separator using the `name` parameter, and setting `version` to `"1"`. + * + * It's a good idea to use the same `name` that is defined as the ERC20 token name. + */ + constructor(string memory name) EIP712(name, "1") {} + + /** + * @dev See {IERC20Permit-permit}. + */ + function permit( + address owner, + address spender, + uint256 value, + uint256 deadline, + uint8 v, + bytes32 r, + bytes32 s + ) public virtual override { + require(block.timestamp <= deadline, "ERC20Permit: expired deadline"); + + bytes32 structHash = keccak256(abi.encode(_PERMIT_TYPEHASH, owner, spender, value, _useNonce(owner), deadline)); + + bytes32 hash = _hashTypedDataV4(structHash); + + address signer = ECDSA.recover(hash, v, r, s); + require(signer == owner, "ERC20Permit: invalid signature"); + + _approve(owner, spender, value); + } + + /** + * @dev See {IERC20Permit-nonces}. + */ + function nonces(address owner) public view virtual override returns (uint256) { + return _nonces[owner].current(); + } + + /** + * @dev See {IERC20Permit-DOMAIN_SEPARATOR}. + */ + // solhint-disable-next-line func-name-mixedcase + function DOMAIN_SEPARATOR() external view override returns (bytes32) { + return _domainSeparatorV4(); + } + + /** + * @dev "Consume a nonce": return the current value and increment. + * + * _Available since v4.1._ + */ + function _useNonce(address owner) internal virtual returns (uint256 current) { + Counters.Counter storage nonce = _nonces[owner]; + current = nonce.current(); + nonce.increment(); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol new file mode 100644 index 000000000..6869944cc --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol @@ -0,0 +1,60 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/draft-IERC20Permit.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in + * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. + * + * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by + * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't + * need to send a transaction, and thus is not required to hold Ether at all. + */ +interface IERC20Permit { + /** + * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens, + * given ``owner``'s signed approval. + * + * IMPORTANT: The same issues {IERC20-approve} has related to transaction + * ordering also apply here. + * + * Emits an {Approval} event. + * + * Requirements: + * + * - `spender` cannot be the zero address. + * - `deadline` must be a timestamp in the future. + * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` + * over the EIP712-formatted function arguments. + * - the signature must use ``owner``'s current nonce (see {nonces}). + * + * For more information on the signature format, see the + * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP + * section]. + */ + function permit( + address owner, + address spender, + uint256 value, + uint256 deadline, + uint8 v, + bytes32 r, + bytes32 s + ) external; + + /** + * @dev Returns the current nonce for `owner`. This value must be + * included whenever a signature is generated for {permit}. + * + * Every successful call to {permit} increases ``owner``'s nonce by one. This + * prevents a signature from being used multiple times. + */ + function nonces(address owner) external view returns (uint256); + + /** + * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}. + */ + // solhint-disable-next-line func-name-mixedcase + function DOMAIN_SEPARATOR() external view returns (bytes32); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol new file mode 100644 index 000000000..7a9703d63 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/presets/ERC20PresetFixedSupply.sol) +pragma solidity ^0.8.0; + +import "../extensions/ERC20Burnable.sol"; + +/** + * @dev {ERC20} token, including: + * + * - Preminted initial supply + * - Ability for holders to burn (destroy) their tokens + * - No access control mechanism (for minting/pausing) and hence no governance + * + * This contract uses {ERC20Burnable} to include burn capabilities - head to + * its documentation for details. + * + * _Available since v3.4._ + */ +contract ERC20PresetFixedSupply is ERC20Burnable { + /** + * @dev Mints `initialSupply` amount of token and transfers them to `owner`. + * + * See {ERC20-constructor}. + */ + constructor( + string memory name, + string memory symbol, + uint256 initialSupply, + address owner + ) ERC20(name, symbol) { + _mint(owner, initialSupply); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol new file mode 100644 index 000000000..2258b23e9 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol @@ -0,0 +1,92 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/presets/ERC20PresetMinterPauser.sol) + +pragma solidity ^0.8.0; + +import "../ERC20.sol"; +import "../extensions/ERC20Burnable.sol"; +import "../extensions/ERC20Pausable.sol"; +import "../../../access/AccessControlEnumerable.sol"; +import "../../../utils/Context.sol"; + +/** + * @dev {ERC20} token, including: + * + * - ability for holders to burn (destroy) their tokens + * - a minter role that allows for token minting (creation) + * - a pauser role that allows to stop all token transfers + * + * This contract uses {AccessControl} to lock permissioned functions using the + * different roles - head to its documentation for details. + * + * The account that deploys the contract will be granted the minter and pauser + * roles, as well as the default admin role, which will let it grant both minter + * and pauser roles to other accounts. + */ +contract ERC20PresetMinterPauser is Context, AccessControlEnumerable, ERC20Burnable, ERC20Pausable { + bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); + bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); + + /** + * @dev Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE` and `PAUSER_ROLE` to the + * account that deploys the contract. + * + * See {ERC20-constructor}. + */ + constructor(string memory name, string memory symbol) ERC20(name, symbol) { + _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); + + _setupRole(MINTER_ROLE, _msgSender()); + _setupRole(PAUSER_ROLE, _msgSender()); + } + + /** + * @dev Creates `amount` new tokens for `to`. + * + * See {ERC20-_mint}. + * + * Requirements: + * + * - the caller must have the `MINTER_ROLE`. + */ + function mint(address to, uint256 amount) public virtual { + require(hasRole(MINTER_ROLE, _msgSender()), "ERC20PresetMinterPauser: must have minter role to mint"); + _mint(to, amount); + } + + /** + * @dev Pauses all token transfers. + * + * See {ERC20Pausable} and {Pausable-_pause}. + * + * Requirements: + * + * - the caller must have the `PAUSER_ROLE`. + */ + function pause() public virtual { + require(hasRole(PAUSER_ROLE, _msgSender()), "ERC20PresetMinterPauser: must have pauser role to pause"); + _pause(); + } + + /** + * @dev Unpauses all token transfers. + * + * See {ERC20Pausable} and {Pausable-_unpause}. + * + * Requirements: + * + * - the caller must have the `PAUSER_ROLE`. + */ + function unpause() public virtual { + require(hasRole(PAUSER_ROLE, _msgSender()), "ERC20PresetMinterPauser: must have pauser role to unpause"); + _unpause(); + } + + function _beforeTokenTransfer( + address from, + address to, + uint256 amount + ) internal virtual override(ERC20, ERC20Pausable) { + super._beforeTokenTransfer(from, to, amount); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol new file mode 100644 index 000000000..e24d8965f --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol @@ -0,0 +1,99 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/utils/SafeERC20.sol) + +pragma solidity ^0.8.0; + +import "../IERC20.sol"; +import "../../../utils/Address.sol"; + +/** + * @title SafeERC20 + * @dev Wrappers around ERC20 operations that throw on failure (when the token + * contract returns false). Tokens that return no value (and instead revert or + * throw on failure) are also supported, non-reverting calls are assumed to be + * successful. + * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, + * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. + */ +library SafeERC20 { + using Address for address; + + function safeTransfer( + IERC20 token, + address to, + uint256 value + ) internal { + _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); + } + + function safeTransferFrom( + IERC20 token, + address from, + address to, + uint256 value + ) internal { + _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); + } + + /** + * @dev Deprecated. This function has issues similar to the ones found in + * {IERC20-approve}, and its usage is discouraged. + * + * Whenever possible, use {safeIncreaseAllowance} and + * {safeDecreaseAllowance} instead. + */ + function safeApprove( + IERC20 token, + address spender, + uint256 value + ) internal { + // safeApprove should only be called when setting an initial allowance, + // or when resetting it to zero. To increase and decrease it, use + // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' + require( + (value == 0) || (token.allowance(address(this), spender) == 0), + "SafeERC20: approve from non-zero to non-zero allowance" + ); + _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); + } + + function safeIncreaseAllowance( + IERC20 token, + address spender, + uint256 value + ) internal { + uint256 newAllowance = token.allowance(address(this), spender) + value; + _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); + } + + function safeDecreaseAllowance( + IERC20 token, + address spender, + uint256 value + ) internal { + unchecked { + uint256 oldAllowance = token.allowance(address(this), spender); + require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); + uint256 newAllowance = oldAllowance - value; + _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); + } + } + + /** + * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement + * on the return value: the return value is optional (but if data is returned, it must not be false). + * @param token The token targeted by the call. + * @param data The call data (encoded using abi.encode or one of its variants). + */ + function _callOptionalReturn(IERC20 token, bytes memory data) private { + // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since + // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that + // the target address contains contract code and also asserts for success in the low-level call. + + bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); + if (returndata.length > 0) { + // Return data is optional + require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/TokenTimelock.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/TokenTimelock.sol new file mode 100644 index 000000000..ddfe55e03 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/TokenTimelock.sol @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC20/utils/TokenTimelock.sol) + +pragma solidity ^0.8.0; + +import "./SafeERC20.sol"; + +/** + * @dev A token holder contract that will allow a beneficiary to extract the + * tokens after a given release time. + * + * Useful for simple vesting schedules like "advisors get all of their tokens + * after 1 year". + */ +contract TokenTimelock { + using SafeERC20 for IERC20; + + // ERC20 basic token contract being held + IERC20 private immutable _token; + + // beneficiary of tokens after they are released + address private immutable _beneficiary; + + // timestamp when token release is enabled + uint256 private immutable _releaseTime; + + constructor( + IERC20 token_, + address beneficiary_, + uint256 releaseTime_ + ) { + require(releaseTime_ > block.timestamp, "TokenTimelock: release time is before current time"); + _token = token_; + _beneficiary = beneficiary_; + _releaseTime = releaseTime_; + } + + /** + * @return the token being held. + */ + function token() public view virtual returns (IERC20) { + return _token; + } + + /** + * @return the beneficiary of the tokens. + */ + function beneficiary() public view virtual returns (address) { + return _beneficiary; + } + + /** + * @return the time when the tokens are released. + */ + function releaseTime() public view virtual returns (uint256) { + return _releaseTime; + } + + /** + * @notice Transfers tokens held by timelock to beneficiary. + */ + function release() public virtual { + require(block.timestamp >= releaseTime(), "TokenTimelock: current time is before release time"); + + uint256 amount = token().balanceOf(address(this)); + require(amount > 0, "TokenTimelock: no tokens to release"); + + token().safeTransfer(beneficiary(), amount); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol new file mode 100644 index 000000000..3c960417d --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol @@ -0,0 +1,424 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC721/ERC721.sol) + +pragma solidity ^0.8.0; + +import "./IERC721.sol"; +import "./IERC721Receiver.sol"; +import "./extensions/IERC721Metadata.sol"; +import "../../utils/Address.sol"; +import "../../utils/Context.sol"; +import "../../utils/Strings.sol"; +import "../../utils/introspection/ERC165.sol"; + +/** + * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including + * the Metadata extension, but not including the Enumerable extension, which is available separately as + * {ERC721Enumerable}. + */ +contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { + using Address for address; + using Strings for uint256; + + // Token name + string private _name; + + // Token symbol + string private _symbol; + + // Mapping from token ID to owner address + mapping(uint256 => address) private _owners; + + // Mapping owner address to token count + mapping(address => uint256) private _balances; + + // Mapping from token ID to approved address + mapping(uint256 => address) private _tokenApprovals; + + // Mapping from owner to operator approvals + mapping(address => mapping(address => bool)) private _operatorApprovals; + + /** + * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection. + */ + constructor(string memory name_, string memory symbol_) { + _name = name_; + _symbol = symbol_; + } + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { + return + interfaceId == type(IERC721).interfaceId || + interfaceId == type(IERC721Metadata).interfaceId || + super.supportsInterface(interfaceId); + } + + /** + * @dev See {IERC721-balanceOf}. + */ + function balanceOf(address owner) public view virtual override returns (uint256) { + require(owner != address(0), "ERC721: balance query for the zero address"); + return _balances[owner]; + } + + /** + * @dev See {IERC721-ownerOf}. + */ + function ownerOf(uint256 tokenId) public view virtual override returns (address) { + address owner = _owners[tokenId]; + require(owner != address(0), "ERC721: owner query for nonexistent token"); + return owner; + } + + /** + * @dev See {IERC721Metadata-name}. + */ + function name() public view virtual override returns (string memory) { + return _name; + } + + /** + * @dev See {IERC721Metadata-symbol}. + */ + function symbol() public view virtual override returns (string memory) { + return _symbol; + } + + /** + * @dev See {IERC721Metadata-tokenURI}. + */ + function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { + require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); + + string memory baseURI = _baseURI(); + return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : ""; + } + + /** + * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each + * token will be the concatenation of the `baseURI` and the `tokenId`. Empty + * by default, can be overriden in child contracts. + */ + function _baseURI() internal view virtual returns (string memory) { + return ""; + } + + /** + * @dev See {IERC721-approve}. + */ + function approve(address to, uint256 tokenId) public virtual override { + address owner = ERC721.ownerOf(tokenId); + require(to != owner, "ERC721: approval to current owner"); + + require( + _msgSender() == owner || isApprovedForAll(owner, _msgSender()), + "ERC721: approve caller is not owner nor approved for all" + ); + + _approve(to, tokenId); + } + + /** + * @dev See {IERC721-getApproved}. + */ + function getApproved(uint256 tokenId) public view virtual override returns (address) { + require(_exists(tokenId), "ERC721: approved query for nonexistent token"); + + return _tokenApprovals[tokenId]; + } + + /** + * @dev See {IERC721-setApprovalForAll}. + */ + function setApprovalForAll(address operator, bool approved) public virtual override { + _setApprovalForAll(_msgSender(), operator, approved); + } + + /** + * @dev See {IERC721-isApprovedForAll}. + */ + function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { + return _operatorApprovals[owner][operator]; + } + + /** + * @dev See {IERC721-transferFrom}. + */ + function transferFrom( + address from, + address to, + uint256 tokenId + ) public virtual override { + //solhint-disable-next-line max-line-length + require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); + + _transfer(from, to, tokenId); + } + + /** + * @dev See {IERC721-safeTransferFrom}. + */ + function safeTransferFrom( + address from, + address to, + uint256 tokenId + ) public virtual override { + safeTransferFrom(from, to, tokenId, ""); + } + + /** + * @dev See {IERC721-safeTransferFrom}. + */ + function safeTransferFrom( + address from, + address to, + uint256 tokenId, + bytes memory _data + ) public virtual override { + require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); + _safeTransfer(from, to, tokenId, _data); + } + + /** + * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients + * are aware of the ERC721 protocol to prevent tokens from being forever locked. + * + * `_data` is additional data, it has no specified format and it is sent in call to `to`. + * + * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g. + * implement alternative mechanisms to perform token transfer, such as signature-based. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must exist and be owned by `from`. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. + * + * Emits a {Transfer} event. + */ + function _safeTransfer( + address from, + address to, + uint256 tokenId, + bytes memory _data + ) internal virtual { + _transfer(from, to, tokenId); + require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); + } + + /** + * @dev Returns whether `tokenId` exists. + * + * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}. + * + * Tokens start existing when they are minted (`_mint`), + * and stop existing when they are burned (`_burn`). + */ + function _exists(uint256 tokenId) internal view virtual returns (bool) { + return _owners[tokenId] != address(0); + } + + /** + * @dev Returns whether `spender` is allowed to manage `tokenId`. + * + * Requirements: + * + * - `tokenId` must exist. + */ + function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { + require(_exists(tokenId), "ERC721: operator query for nonexistent token"); + address owner = ERC721.ownerOf(tokenId); + return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); + } + + /** + * @dev Safely mints `tokenId` and transfers it to `to`. + * + * Requirements: + * + * - `tokenId` must not exist. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. + * + * Emits a {Transfer} event. + */ + function _safeMint(address to, uint256 tokenId) internal virtual { + _safeMint(to, tokenId, ""); + } + + /** + * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is + * forwarded in {IERC721Receiver-onERC721Received} to contract recipients. + */ + function _safeMint( + address to, + uint256 tokenId, + bytes memory _data + ) internal virtual { + _mint(to, tokenId); + require( + _checkOnERC721Received(address(0), to, tokenId, _data), + "ERC721: transfer to non ERC721Receiver implementer" + ); + } + + /** + * @dev Mints `tokenId` and transfers it to `to`. + * + * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible + * + * Requirements: + * + * - `tokenId` must not exist. + * - `to` cannot be the zero address. + * + * Emits a {Transfer} event. + */ + function _mint(address to, uint256 tokenId) internal virtual { + require(to != address(0), "ERC721: mint to the zero address"); + require(!_exists(tokenId), "ERC721: token already minted"); + + _beforeTokenTransfer(address(0), to, tokenId); + + _balances[to] += 1; + _owners[tokenId] = to; + + emit Transfer(address(0), to, tokenId); + } + + /** + * @dev Destroys `tokenId`. + * The approval is cleared when the token is burned. + * + * Requirements: + * + * - `tokenId` must exist. + * + * Emits a {Transfer} event. + */ + function _burn(uint256 tokenId) internal virtual { + address owner = ERC721.ownerOf(tokenId); + + _beforeTokenTransfer(owner, address(0), tokenId); + + // Clear approvals + _approve(address(0), tokenId); + + _balances[owner] -= 1; + delete _owners[tokenId]; + + emit Transfer(owner, address(0), tokenId); + } + + /** + * @dev Transfers `tokenId` from `from` to `to`. + * As opposed to {transferFrom}, this imposes no restrictions on msg.sender. + * + * Requirements: + * + * - `to` cannot be the zero address. + * - `tokenId` token must be owned by `from`. + * + * Emits a {Transfer} event. + */ + function _transfer( + address from, + address to, + uint256 tokenId + ) internal virtual { + require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); + require(to != address(0), "ERC721: transfer to the zero address"); + + _beforeTokenTransfer(from, to, tokenId); + + // Clear approvals from the previous owner + _approve(address(0), tokenId); + + _balances[from] -= 1; + _balances[to] += 1; + _owners[tokenId] = to; + + emit Transfer(from, to, tokenId); + } + + /** + * @dev Approve `to` to operate on `tokenId` + * + * Emits a {Approval} event. + */ + function _approve(address to, uint256 tokenId) internal virtual { + _tokenApprovals[tokenId] = to; + emit Approval(ERC721.ownerOf(tokenId), to, tokenId); + } + + /** + * @dev Approve `operator` to operate on all of `owner` tokens + * + * Emits a {ApprovalForAll} event. + */ + function _setApprovalForAll( + address owner, + address operator, + bool approved + ) internal virtual { + require(owner != operator, "ERC721: approve to caller"); + _operatorApprovals[owner][operator] = approved; + emit ApprovalForAll(owner, operator, approved); + } + + /** + * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address. + * The call is not executed if the target address is not a contract. + * + * @param from address representing the previous owner of the given token ID + * @param to target address that will receive the tokens + * @param tokenId uint256 ID of the token to be transferred + * @param _data bytes optional data to send along with the call + * @return bool whether the call correctly returned the expected magic value + */ + function _checkOnERC721Received( + address from, + address to, + uint256 tokenId, + bytes memory _data + ) private returns (bool) { + if (to.isContract()) { + try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { + return retval == IERC721Receiver.onERC721Received.selector; + } catch (bytes memory reason) { + if (reason.length == 0) { + revert("ERC721: transfer to non ERC721Receiver implementer"); + } else { + assembly { + revert(add(32, reason), mload(reason)) + } + } + } + } else { + return true; + } + } + + /** + * @dev Hook that is called before any token transfer. This includes minting + * and burning. + * + * Calling conditions: + * + * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be + * transferred to `to`. + * - When `from` is zero, `tokenId` will be minted for `to`. + * - When `to` is zero, ``from``'s `tokenId` will be burned. + * - `from` and `to` are never both zero. + * + * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. + */ + function _beforeTokenTransfer( + address from, + address to, + uint256 tokenId + ) internal virtual {} +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol new file mode 100644 index 000000000..7d6c99c4f --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol @@ -0,0 +1,143 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC721/IERC721.sol) + +pragma solidity ^0.8.0; + +import "../../utils/introspection/IERC165.sol"; + +/** + * @dev Required interface of an ERC721 compliant contract. + */ +interface IERC721 is IERC165 { + /** + * @dev Emitted when `tokenId` token is transferred from `from` to `to`. + */ + event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); + + /** + * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. + */ + event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); + + /** + * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. + */ + event ApprovalForAll(address indexed owner, address indexed operator, bool approved); + + /** + * @dev Returns the number of tokens in ``owner``'s account. + */ + function balanceOf(address owner) external view returns (uint256 balance); + + /** + * @dev Returns the owner of the `tokenId` token. + * + * Requirements: + * + * - `tokenId` must exist. + */ + function ownerOf(uint256 tokenId) external view returns (address owner); + + /** + * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients + * are aware of the ERC721 protocol to prevent tokens from being forever locked. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must exist and be owned by `from`. + * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. + * + * Emits a {Transfer} event. + */ + function safeTransferFrom( + address from, + address to, + uint256 tokenId + ) external; + + /** + * @dev Transfers `tokenId` token from `from` to `to`. + * + * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must be owned by `from`. + * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. + * + * Emits a {Transfer} event. + */ + function transferFrom( + address from, + address to, + uint256 tokenId + ) external; + + /** + * @dev Gives permission to `to` to transfer `tokenId` token to another account. + * The approval is cleared when the token is transferred. + * + * Only a single account can be approved at a time, so approving the zero address clears previous approvals. + * + * Requirements: + * + * - The caller must own the token or be an approved operator. + * - `tokenId` must exist. + * + * Emits an {Approval} event. + */ + function approve(address to, uint256 tokenId) external; + + /** + * @dev Returns the account approved for `tokenId` token. + * + * Requirements: + * + * - `tokenId` must exist. + */ + function getApproved(uint256 tokenId) external view returns (address operator); + + /** + * @dev Approve or remove `operator` as an operator for the caller. + * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. + * + * Requirements: + * + * - The `operator` cannot be the caller. + * + * Emits an {ApprovalForAll} event. + */ + function setApprovalForAll(address operator, bool _approved) external; + + /** + * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. + * + * See {setApprovalForAll} + */ + function isApprovedForAll(address owner, address operator) external view returns (bool); + + /** + * @dev Safely transfers `tokenId` token from `from` to `to`. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must exist and be owned by `from`. + * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. + * + * Emits a {Transfer} event. + */ + function safeTransferFrom( + address from, + address to, + uint256 tokenId, + bytes calldata data + ) external; +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol new file mode 100644 index 000000000..5e2868042 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC721/IERC721Receiver.sol) + +pragma solidity ^0.8.0; + +/** + * @title ERC721 token receiver interface + * @dev Interface for any contract that wants to support safeTransfers + * from ERC721 asset contracts. + */ +interface IERC721Receiver { + /** + * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} + * by `operator` from `from`, this function is called. + * + * It must return its Solidity selector to confirm the token transfer. + * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. + * + * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`. + */ + function onERC721Received( + address operator, + address from, + uint256 tokenId, + bytes calldata data + ) external returns (bytes4); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol new file mode 100644 index 000000000..922fa959e --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/ERC721Burnable.sol) + +pragma solidity ^0.8.0; + +import "../ERC721.sol"; +import "../../../utils/Context.sol"; + +/** + * @title ERC721 Burnable Token + * @dev ERC721 Token that can be irreversibly burned (destroyed). + */ +abstract contract ERC721Burnable is Context, ERC721 { + /** + * @dev Burns `tokenId`. See {ERC721-_burn}. + * + * Requirements: + * + * - The caller must own `tokenId` or be an approved operator. + */ + function burn(uint256 tokenId) public virtual { + //solhint-disable-next-line max-line-length + require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721Burnable: caller is not owner nor approved"); + _burn(tokenId); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol new file mode 100644 index 000000000..a2ad6d5ac --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol @@ -0,0 +1,163 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/ERC721Enumerable.sol) + +pragma solidity ^0.8.0; + +import "../ERC721.sol"; +import "./IERC721Enumerable.sol"; + +/** + * @dev This implements an optional extension of {ERC721} defined in the EIP that adds + * enumerability of all the token ids in the contract as well as all token ids owned by each + * account. + */ +abstract contract ERC721Enumerable is ERC721, IERC721Enumerable { + // Mapping from owner to list of owned token IDs + mapping(address => mapping(uint256 => uint256)) private _ownedTokens; + + // Mapping from token ID to index of the owner tokens list + mapping(uint256 => uint256) private _ownedTokensIndex; + + // Array with all token ids, used for enumeration + uint256[] private _allTokens; + + // Mapping from token id to position in the allTokens array + mapping(uint256 => uint256) private _allTokensIndex; + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) { + return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId); + } + + /** + * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}. + */ + function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) { + require(index < ERC721.balanceOf(owner), "ERC721Enumerable: owner index out of bounds"); + return _ownedTokens[owner][index]; + } + + /** + * @dev See {IERC721Enumerable-totalSupply}. + */ + function totalSupply() public view virtual override returns (uint256) { + return _allTokens.length; + } + + /** + * @dev See {IERC721Enumerable-tokenByIndex}. + */ + function tokenByIndex(uint256 index) public view virtual override returns (uint256) { + require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds"); + return _allTokens[index]; + } + + /** + * @dev Hook that is called before any token transfer. This includes minting + * and burning. + * + * Calling conditions: + * + * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be + * transferred to `to`. + * - When `from` is zero, `tokenId` will be minted for `to`. + * - When `to` is zero, ``from``'s `tokenId` will be burned. + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * + * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. + */ + function _beforeTokenTransfer( + address from, + address to, + uint256 tokenId + ) internal virtual override { + super._beforeTokenTransfer(from, to, tokenId); + + if (from == address(0)) { + _addTokenToAllTokensEnumeration(tokenId); + } else if (from != to) { + _removeTokenFromOwnerEnumeration(from, tokenId); + } + if (to == address(0)) { + _removeTokenFromAllTokensEnumeration(tokenId); + } else if (to != from) { + _addTokenToOwnerEnumeration(to, tokenId); + } + } + + /** + * @dev Private function to add a token to this extension's ownership-tracking data structures. + * @param to address representing the new owner of the given token ID + * @param tokenId uint256 ID of the token to be added to the tokens list of the given address + */ + function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private { + uint256 length = ERC721.balanceOf(to); + _ownedTokens[to][length] = tokenId; + _ownedTokensIndex[tokenId] = length; + } + + /** + * @dev Private function to add a token to this extension's token tracking data structures. + * @param tokenId uint256 ID of the token to be added to the tokens list + */ + function _addTokenToAllTokensEnumeration(uint256 tokenId) private { + _allTokensIndex[tokenId] = _allTokens.length; + _allTokens.push(tokenId); + } + + /** + * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that + * while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for + * gas optimizations e.g. when performing a transfer operation (avoiding double writes). + * This has O(1) time complexity, but alters the order of the _ownedTokens array. + * @param from address representing the previous owner of the given token ID + * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address + */ + function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private { + // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and + // then delete the last slot (swap and pop). + + uint256 lastTokenIndex = ERC721.balanceOf(from) - 1; + uint256 tokenIndex = _ownedTokensIndex[tokenId]; + + // When the token to delete is the last token, the swap operation is unnecessary + if (tokenIndex != lastTokenIndex) { + uint256 lastTokenId = _ownedTokens[from][lastTokenIndex]; + + _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token + _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index + } + + // This also deletes the contents at the last position of the array + delete _ownedTokensIndex[tokenId]; + delete _ownedTokens[from][lastTokenIndex]; + } + + /** + * @dev Private function to remove a token from this extension's token tracking data structures. + * This has O(1) time complexity, but alters the order of the _allTokens array. + * @param tokenId uint256 ID of the token to be removed from the tokens list + */ + function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private { + // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and + // then delete the last slot (swap and pop). + + uint256 lastTokenIndex = _allTokens.length - 1; + uint256 tokenIndex = _allTokensIndex[tokenId]; + + // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so + // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding + // an 'if' statement (like in _removeTokenFromOwnerEnumeration) + uint256 lastTokenId = _allTokens[lastTokenIndex]; + + _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token + _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index + + // This also deletes the contents at the last position of the array + delete _allTokensIndex[tokenId]; + _allTokens.pop(); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Pausable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Pausable.sol new file mode 100644 index 000000000..b8d5b68d9 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Pausable.sol @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/ERC721Pausable.sol) + +pragma solidity ^0.8.0; + +import "../ERC721.sol"; +import "../../../security/Pausable.sol"; + +/** + * @dev ERC721 token with pausable token transfers, minting and burning. + * + * Useful for scenarios such as preventing trades until the end of an evaluation + * period, or having an emergency switch for freezing all token transfers in the + * event of a large bug. + */ +abstract contract ERC721Pausable is ERC721, Pausable { + /** + * @dev See {ERC721-_beforeTokenTransfer}. + * + * Requirements: + * + * - the contract must not be paused. + */ + function _beforeTokenTransfer( + address from, + address to, + uint256 tokenId + ) internal virtual override { + super._beforeTokenTransfer(from, to, tokenId); + + require(!paused(), "ERC721Pausable: token transfer while paused"); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol new file mode 100644 index 000000000..e4ef29dbe --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol @@ -0,0 +1,67 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/ERC721URIStorage.sol) + +pragma solidity ^0.8.0; + +import "../ERC721.sol"; + +/** + * @dev ERC721 token with storage based token URI management. + */ +abstract contract ERC721URIStorage is ERC721 { + using Strings for uint256; + + // Optional mapping for token URIs + mapping(uint256 => string) private _tokenURIs; + + /** + * @dev See {IERC721Metadata-tokenURI}. + */ + function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { + require(_exists(tokenId), "ERC721URIStorage: URI query for nonexistent token"); + + string memory _tokenURI = _tokenURIs[tokenId]; + string memory base = _baseURI(); + + // If there is no base URI, return the token URI. + if (bytes(base).length == 0) { + return _tokenURI; + } + // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked). + if (bytes(_tokenURI).length > 0) { + return string(abi.encodePacked(base, _tokenURI)); + } + + return super.tokenURI(tokenId); + } + + /** + * @dev Sets `_tokenURI` as the tokenURI of `tokenId`. + * + * Requirements: + * + * - `tokenId` must exist. + */ + function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual { + require(_exists(tokenId), "ERC721URIStorage: URI set of nonexistent token"); + _tokenURIs[tokenId] = _tokenURI; + } + + /** + * @dev Destroys `tokenId`. + * The approval is cleared when the token is burned. + * + * Requirements: + * + * - `tokenId` must exist. + * + * Emits a {Transfer} event. + */ + function _burn(uint256 tokenId) internal virtual override { + super._burn(tokenId); + + if (bytes(_tokenURIs[tokenId]).length != 0) { + delete _tokenURIs[tokenId]; + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol new file mode 100644 index 000000000..fc5dfba32 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/IERC721Enumerable.sol) + +pragma solidity ^0.8.0; + +import "../IERC721.sol"; + +/** + * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension + * @dev See https://eips.ethereum.org/EIPS/eip-721 + */ +interface IERC721Enumerable is IERC721 { + /** + * @dev Returns the total amount of tokens stored by the contract. + */ + function totalSupply() external view returns (uint256); + + /** + * @dev Returns a token ID owned by `owner` at a given `index` of its token list. + * Use along with {balanceOf} to enumerate all of ``owner``'s tokens. + */ + function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); + + /** + * @dev Returns a token ID at a given `index` of all the tokens stored by the contract. + * Use along with {totalSupply} to enumerate all tokens. + */ + function tokenByIndex(uint256 index) external view returns (uint256); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol new file mode 100644 index 000000000..0a135ce58 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/IERC721Metadata.sol) + +pragma solidity ^0.8.0; + +import "../IERC721.sol"; + +/** + * @title ERC-721 Non-Fungible Token Standard, optional metadata extension + * @dev See https://eips.ethereum.org/EIPS/eip-721 + */ +interface IERC721Metadata is IERC721 { + /** + * @dev Returns the token collection name. + */ + function name() external view returns (string memory); + + /** + * @dev Returns the token collection symbol. + */ + function symbol() external view returns (string memory); + + /** + * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. + */ + function tokenURI(uint256 tokenId) external view returns (string memory); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol new file mode 100644 index 000000000..da19b9220 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol @@ -0,0 +1,137 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol) + +pragma solidity ^0.8.0; + +import "../ERC721.sol"; +import "../extensions/ERC721Enumerable.sol"; +import "../extensions/ERC721Burnable.sol"; +import "../extensions/ERC721Pausable.sol"; +import "../../../access/AccessControlEnumerable.sol"; +import "../../../utils/Context.sol"; +import "../../../utils/Counters.sol"; + +/** + * @dev {ERC721} token, including: + * + * - ability for holders to burn (destroy) their tokens + * - a minter role that allows for token minting (creation) + * - a pauser role that allows to stop all token transfers + * - token ID and URI autogeneration + * + * This contract uses {AccessControl} to lock permissioned functions using the + * different roles - head to its documentation for details. + * + * The account that deploys the contract will be granted the minter and pauser + * roles, as well as the default admin role, which will let it grant both minter + * and pauser roles to other accounts. + */ +contract ERC721PresetMinterPauserAutoId is + Context, + AccessControlEnumerable, + ERC721Enumerable, + ERC721Burnable, + ERC721Pausable +{ + using Counters for Counters.Counter; + + bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); + bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); + + Counters.Counter private _tokenIdTracker; + + string private _baseTokenURI; + + /** + * @dev Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE` and `PAUSER_ROLE` to the + * account that deploys the contract. + * + * Token URIs will be autogenerated based on `baseURI` and their token IDs. + * See {ERC721-tokenURI}. + */ + constructor( + string memory name, + string memory symbol, + string memory baseTokenURI + ) ERC721(name, symbol) { + _baseTokenURI = baseTokenURI; + + _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); + + _setupRole(MINTER_ROLE, _msgSender()); + _setupRole(PAUSER_ROLE, _msgSender()); + } + + function _baseURI() internal view virtual override returns (string memory) { + return _baseTokenURI; + } + + /** + * @dev Creates a new token for `to`. Its token ID will be automatically + * assigned (and available on the emitted {IERC721-Transfer} event), and the token + * URI autogenerated based on the base URI passed at construction. + * + * See {ERC721-_mint}. + * + * Requirements: + * + * - the caller must have the `MINTER_ROLE`. + */ + function mint(address to) public virtual { + require(hasRole(MINTER_ROLE, _msgSender()), "ERC721PresetMinterPauserAutoId: must have minter role to mint"); + + // We cannot just use balanceOf to create the new tokenId because tokens + // can be burned (destroyed), so we need a separate counter. + _mint(to, _tokenIdTracker.current()); + _tokenIdTracker.increment(); + } + + /** + * @dev Pauses all token transfers. + * + * See {ERC721Pausable} and {Pausable-_pause}. + * + * Requirements: + * + * - the caller must have the `PAUSER_ROLE`. + */ + function pause() public virtual { + require(hasRole(PAUSER_ROLE, _msgSender()), "ERC721PresetMinterPauserAutoId: must have pauser role to pause"); + _pause(); + } + + /** + * @dev Unpauses all token transfers. + * + * See {ERC721Pausable} and {Pausable-_unpause}. + * + * Requirements: + * + * - the caller must have the `PAUSER_ROLE`. + */ + function unpause() public virtual { + require(hasRole(PAUSER_ROLE, _msgSender()), "ERC721PresetMinterPauserAutoId: must have pauser role to unpause"); + _unpause(); + } + + function _beforeTokenTransfer( + address from, + address to, + uint256 tokenId + ) internal virtual override(ERC721, ERC721Enumerable, ERC721Pausable) { + super._beforeTokenTransfer(from, to, tokenId); + } + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) + public + view + virtual + override(AccessControlEnumerable, ERC721, ERC721Enumerable) + returns (bool) + { + return super.supportsInterface(interfaceId); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol new file mode 100644 index 000000000..562ff2e18 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC721/utils/ERC721Holder.sol) + +pragma solidity ^0.8.0; + +import "../IERC721Receiver.sol"; + +/** + * @dev Implementation of the {IERC721Receiver} interface. + * + * Accepts all token transfers. + * Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}. + */ +contract ERC721Holder is IERC721Receiver { + /** + * @dev See {IERC721Receiver-onERC721Received}. + * + * Always returns `IERC721Receiver.onERC721Received.selector`. + */ + function onERC721Received( + address, + address, + uint256, + bytes memory + ) public virtual override returns (bytes4) { + return this.onERC721Received.selector; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/ERC777.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/ERC777.sol new file mode 100644 index 000000000..8c53a3a5f --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/ERC777.sol @@ -0,0 +1,539 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC777/ERC777.sol) + +pragma solidity ^0.8.0; + +import "./IERC777.sol"; +import "./IERC777Recipient.sol"; +import "./IERC777Sender.sol"; +import "../ERC20/IERC20.sol"; +import "../../utils/Address.sol"; +import "../../utils/Context.sol"; +import "../../utils/introspection/IERC1820Registry.sol"; + +/** + * @dev Implementation of the {IERC777} interface. + * + * This implementation is agnostic to the way tokens are created. This means + * that a supply mechanism has to be added in a derived contract using {_mint}. + * + * Support for ERC20 is included in this contract, as specified by the EIP: both + * the ERC777 and ERC20 interfaces can be safely used when interacting with it. + * Both {IERC777-Sent} and {IERC20-Transfer} events are emitted on token + * movements. + * + * Additionally, the {IERC777-granularity} value is hard-coded to `1`, meaning that there + * are no special restrictions in the amount of tokens that created, moved, or + * destroyed. This makes integration with ERC20 applications seamless. + */ +contract ERC777 is Context, IERC777, IERC20 { + using Address for address; + + IERC1820Registry internal constant _ERC1820_REGISTRY = IERC1820Registry(0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24); + + mapping(address => uint256) private _balances; + + uint256 private _totalSupply; + + string private _name; + string private _symbol; + + bytes32 private constant _TOKENS_SENDER_INTERFACE_HASH = keccak256("ERC777TokensSender"); + bytes32 private constant _TOKENS_RECIPIENT_INTERFACE_HASH = keccak256("ERC777TokensRecipient"); + + // This isn't ever read from - it's only used to respond to the defaultOperators query. + address[] private _defaultOperatorsArray; + + // Immutable, but accounts may revoke them (tracked in __revokedDefaultOperators). + mapping(address => bool) private _defaultOperators; + + // For each account, a mapping of its operators and revoked default operators. + mapping(address => mapping(address => bool)) private _operators; + mapping(address => mapping(address => bool)) private _revokedDefaultOperators; + + // ERC20-allowances + mapping(address => mapping(address => uint256)) private _allowances; + + /** + * @dev `defaultOperators` may be an empty array. + */ + constructor( + string memory name_, + string memory symbol_, + address[] memory defaultOperators_ + ) { + _name = name_; + _symbol = symbol_; + + _defaultOperatorsArray = defaultOperators_; + for (uint256 i = 0; i < defaultOperators_.length; i++) { + _defaultOperators[defaultOperators_[i]] = true; + } + + // register interfaces + _ERC1820_REGISTRY.setInterfaceImplementer(address(this), keccak256("ERC777Token"), address(this)); + _ERC1820_REGISTRY.setInterfaceImplementer(address(this), keccak256("ERC20Token"), address(this)); + } + + /** + * @dev See {IERC777-name}. + */ + function name() public view virtual override returns (string memory) { + return _name; + } + + /** + * @dev See {IERC777-symbol}. + */ + function symbol() public view virtual override returns (string memory) { + return _symbol; + } + + /** + * @dev See {ERC20-decimals}. + * + * Always returns 18, as per the + * [ERC777 EIP](https://eips.ethereum.org/EIPS/eip-777#backward-compatibility). + */ + function decimals() public pure virtual returns (uint8) { + return 18; + } + + /** + * @dev See {IERC777-granularity}. + * + * This implementation always returns `1`. + */ + function granularity() public view virtual override returns (uint256) { + return 1; + } + + /** + * @dev See {IERC777-totalSupply}. + */ + function totalSupply() public view virtual override(IERC20, IERC777) returns (uint256) { + return _totalSupply; + } + + /** + * @dev Returns the amount of tokens owned by an account (`tokenHolder`). + */ + function balanceOf(address tokenHolder) public view virtual override(IERC20, IERC777) returns (uint256) { + return _balances[tokenHolder]; + } + + /** + * @dev See {IERC777-send}. + * + * Also emits a {IERC20-Transfer} event for ERC20 compatibility. + */ + function send( + address recipient, + uint256 amount, + bytes memory data + ) public virtual override { + _send(_msgSender(), recipient, amount, data, "", true); + } + + /** + * @dev See {IERC20-transfer}. + * + * Unlike `send`, `recipient` is _not_ required to implement the {IERC777Recipient} + * interface if it is a contract. + * + * Also emits a {Sent} event. + */ + function transfer(address recipient, uint256 amount) public virtual override returns (bool) { + require(recipient != address(0), "ERC777: transfer to the zero address"); + + address from = _msgSender(); + + _callTokensToSend(from, from, recipient, amount, "", ""); + + _move(from, from, recipient, amount, "", ""); + + _callTokensReceived(from, from, recipient, amount, "", "", false); + + return true; + } + + /** + * @dev See {IERC777-burn}. + * + * Also emits a {IERC20-Transfer} event for ERC20 compatibility. + */ + function burn(uint256 amount, bytes memory data) public virtual override { + _burn(_msgSender(), amount, data, ""); + } + + /** + * @dev See {IERC777-isOperatorFor}. + */ + function isOperatorFor(address operator, address tokenHolder) public view virtual override returns (bool) { + return + operator == tokenHolder || + (_defaultOperators[operator] && !_revokedDefaultOperators[tokenHolder][operator]) || + _operators[tokenHolder][operator]; + } + + /** + * @dev See {IERC777-authorizeOperator}. + */ + function authorizeOperator(address operator) public virtual override { + require(_msgSender() != operator, "ERC777: authorizing self as operator"); + + if (_defaultOperators[operator]) { + delete _revokedDefaultOperators[_msgSender()][operator]; + } else { + _operators[_msgSender()][operator] = true; + } + + emit AuthorizedOperator(operator, _msgSender()); + } + + /** + * @dev See {IERC777-revokeOperator}. + */ + function revokeOperator(address operator) public virtual override { + require(operator != _msgSender(), "ERC777: revoking self as operator"); + + if (_defaultOperators[operator]) { + _revokedDefaultOperators[_msgSender()][operator] = true; + } else { + delete _operators[_msgSender()][operator]; + } + + emit RevokedOperator(operator, _msgSender()); + } + + /** + * @dev See {IERC777-defaultOperators}. + */ + function defaultOperators() public view virtual override returns (address[] memory) { + return _defaultOperatorsArray; + } + + /** + * @dev See {IERC777-operatorSend}. + * + * Emits {Sent} and {IERC20-Transfer} events. + */ + function operatorSend( + address sender, + address recipient, + uint256 amount, + bytes memory data, + bytes memory operatorData + ) public virtual override { + require(isOperatorFor(_msgSender(), sender), "ERC777: caller is not an operator for holder"); + _send(sender, recipient, amount, data, operatorData, true); + } + + /** + * @dev See {IERC777-operatorBurn}. + * + * Emits {Burned} and {IERC20-Transfer} events. + */ + function operatorBurn( + address account, + uint256 amount, + bytes memory data, + bytes memory operatorData + ) public virtual override { + require(isOperatorFor(_msgSender(), account), "ERC777: caller is not an operator for holder"); + _burn(account, amount, data, operatorData); + } + + /** + * @dev See {IERC20-allowance}. + * + * Note that operator and allowance concepts are orthogonal: operators may + * not have allowance, and accounts with allowance may not be operators + * themselves. + */ + function allowance(address holder, address spender) public view virtual override returns (uint256) { + return _allowances[holder][spender]; + } + + /** + * @dev See {IERC20-approve}. + * + * Note that accounts cannot have allowance issued by their operators. + */ + function approve(address spender, uint256 value) public virtual override returns (bool) { + address holder = _msgSender(); + _approve(holder, spender, value); + return true; + } + + /** + * @dev See {IERC20-transferFrom}. + * + * Note that operator and allowance concepts are orthogonal: operators cannot + * call `transferFrom` (unless they have allowance), and accounts with + * allowance cannot call `operatorSend` (unless they are operators). + * + * Emits {Sent}, {IERC20-Transfer} and {IERC20-Approval} events. + */ + function transferFrom( + address holder, + address recipient, + uint256 amount + ) public virtual override returns (bool) { + require(recipient != address(0), "ERC777: transfer to the zero address"); + require(holder != address(0), "ERC777: transfer from the zero address"); + + address spender = _msgSender(); + + _callTokensToSend(spender, holder, recipient, amount, "", ""); + + _move(spender, holder, recipient, amount, "", ""); + + uint256 currentAllowance = _allowances[holder][spender]; + require(currentAllowance >= amount, "ERC777: transfer amount exceeds allowance"); + _approve(holder, spender, currentAllowance - amount); + + _callTokensReceived(spender, holder, recipient, amount, "", "", false); + + return true; + } + + /** + * @dev Creates `amount` tokens and assigns them to `account`, increasing + * the total supply. + * + * If a send hook is registered for `account`, the corresponding function + * will be called with `operator`, `data` and `operatorData`. + * + * See {IERC777Sender} and {IERC777Recipient}. + * + * Emits {Minted} and {IERC20-Transfer} events. + * + * Requirements + * + * - `account` cannot be the zero address. + * - if `account` is a contract, it must implement the {IERC777Recipient} + * interface. + */ + function _mint( + address account, + uint256 amount, + bytes memory userData, + bytes memory operatorData + ) internal virtual { + _mint(account, amount, userData, operatorData, true); + } + + /** + * @dev Creates `amount` tokens and assigns them to `account`, increasing + * the total supply. + * + * If `requireReceptionAck` is set to true, and if a send hook is + * registered for `account`, the corresponding function will be called with + * `operator`, `data` and `operatorData`. + * + * See {IERC777Sender} and {IERC777Recipient}. + * + * Emits {Minted} and {IERC20-Transfer} events. + * + * Requirements + * + * - `account` cannot be the zero address. + * - if `account` is a contract, it must implement the {IERC777Recipient} + * interface. + */ + function _mint( + address account, + uint256 amount, + bytes memory userData, + bytes memory operatorData, + bool requireReceptionAck + ) internal virtual { + require(account != address(0), "ERC777: mint to the zero address"); + + address operator = _msgSender(); + + _beforeTokenTransfer(operator, address(0), account, amount); + + // Update state variables + _totalSupply += amount; + _balances[account] += amount; + + _callTokensReceived(operator, address(0), account, amount, userData, operatorData, requireReceptionAck); + + emit Minted(operator, account, amount, userData, operatorData); + emit Transfer(address(0), account, amount); + } + + /** + * @dev Send tokens + * @param from address token holder address + * @param to address recipient address + * @param amount uint256 amount of tokens to transfer + * @param userData bytes extra information provided by the token holder (if any) + * @param operatorData bytes extra information provided by the operator (if any) + * @param requireReceptionAck if true, contract recipients are required to implement ERC777TokensRecipient + */ + function _send( + address from, + address to, + uint256 amount, + bytes memory userData, + bytes memory operatorData, + bool requireReceptionAck + ) internal virtual { + require(from != address(0), "ERC777: send from the zero address"); + require(to != address(0), "ERC777: send to the zero address"); + + address operator = _msgSender(); + + _callTokensToSend(operator, from, to, amount, userData, operatorData); + + _move(operator, from, to, amount, userData, operatorData); + + _callTokensReceived(operator, from, to, amount, userData, operatorData, requireReceptionAck); + } + + /** + * @dev Burn tokens + * @param from address token holder address + * @param amount uint256 amount of tokens to burn + * @param data bytes extra information provided by the token holder + * @param operatorData bytes extra information provided by the operator (if any) + */ + function _burn( + address from, + uint256 amount, + bytes memory data, + bytes memory operatorData + ) internal virtual { + require(from != address(0), "ERC777: burn from the zero address"); + + address operator = _msgSender(); + + _callTokensToSend(operator, from, address(0), amount, data, operatorData); + + _beforeTokenTransfer(operator, from, address(0), amount); + + // Update state variables + uint256 fromBalance = _balances[from]; + require(fromBalance >= amount, "ERC777: burn amount exceeds balance"); + unchecked { + _balances[from] = fromBalance - amount; + } + _totalSupply -= amount; + + emit Burned(operator, from, amount, data, operatorData); + emit Transfer(from, address(0), amount); + } + + function _move( + address operator, + address from, + address to, + uint256 amount, + bytes memory userData, + bytes memory operatorData + ) private { + _beforeTokenTransfer(operator, from, to, amount); + + uint256 fromBalance = _balances[from]; + require(fromBalance >= amount, "ERC777: transfer amount exceeds balance"); + unchecked { + _balances[from] = fromBalance - amount; + } + _balances[to] += amount; + + emit Sent(operator, from, to, amount, userData, operatorData); + emit Transfer(from, to, amount); + } + + /** + * @dev See {ERC20-_approve}. + * + * Note that accounts cannot have allowance issued by their operators. + */ + function _approve( + address holder, + address spender, + uint256 value + ) internal { + require(holder != address(0), "ERC777: approve from the zero address"); + require(spender != address(0), "ERC777: approve to the zero address"); + + _allowances[holder][spender] = value; + emit Approval(holder, spender, value); + } + + /** + * @dev Call from.tokensToSend() if the interface is registered + * @param operator address operator requesting the transfer + * @param from address token holder address + * @param to address recipient address + * @param amount uint256 amount of tokens to transfer + * @param userData bytes extra information provided by the token holder (if any) + * @param operatorData bytes extra information provided by the operator (if any) + */ + function _callTokensToSend( + address operator, + address from, + address to, + uint256 amount, + bytes memory userData, + bytes memory operatorData + ) private { + address implementer = _ERC1820_REGISTRY.getInterfaceImplementer(from, _TOKENS_SENDER_INTERFACE_HASH); + if (implementer != address(0)) { + IERC777Sender(implementer).tokensToSend(operator, from, to, amount, userData, operatorData); + } + } + + /** + * @dev Call to.tokensReceived() if the interface is registered. Reverts if the recipient is a contract but + * tokensReceived() was not registered for the recipient + * @param operator address operator requesting the transfer + * @param from address token holder address + * @param to address recipient address + * @param amount uint256 amount of tokens to transfer + * @param userData bytes extra information provided by the token holder (if any) + * @param operatorData bytes extra information provided by the operator (if any) + * @param requireReceptionAck if true, contract recipients are required to implement ERC777TokensRecipient + */ + function _callTokensReceived( + address operator, + address from, + address to, + uint256 amount, + bytes memory userData, + bytes memory operatorData, + bool requireReceptionAck + ) private { + address implementer = _ERC1820_REGISTRY.getInterfaceImplementer(to, _TOKENS_RECIPIENT_INTERFACE_HASH); + if (implementer != address(0)) { + IERC777Recipient(implementer).tokensReceived(operator, from, to, amount, userData, operatorData); + } else if (requireReceptionAck) { + require(!to.isContract(), "ERC777: token recipient contract has no implementer for ERC777TokensRecipient"); + } + } + + /** + * @dev Hook that is called before any token transfer. This includes + * calls to {send}, {transfer}, {operatorSend}, minting and burning. + * + * Calling conditions: + * + * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens + * will be to transferred to `to`. + * - when `from` is zero, `amount` tokens will be minted for `to`. + * - when `to` is zero, `amount` of ``from``'s tokens will be burned. + * - `from` and `to` are never both zero. + * + * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. + */ + function _beforeTokenTransfer( + address operator, + address from, + address to, + uint256 amount + ) internal virtual {} +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777.sol new file mode 100644 index 000000000..89bfb5dae --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777.sol @@ -0,0 +1,193 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC777/IERC777.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Interface of the ERC777Token standard as defined in the EIP. + * + * This contract uses the + * https://eips.ethereum.org/EIPS/eip-1820[ERC1820 registry standard] to let + * token holders and recipients react to token movements by using setting implementers + * for the associated interfaces in said registry. See {IERC1820Registry} and + * {ERC1820Implementer}. + */ +interface IERC777 { + /** + * @dev Returns the name of the token. + */ + function name() external view returns (string memory); + + /** + * @dev Returns the symbol of the token, usually a shorter version of the + * name. + */ + function symbol() external view returns (string memory); + + /** + * @dev Returns the smallest part of the token that is not divisible. This + * means all token operations (creation, movement and destruction) must have + * amounts that are a multiple of this number. + * + * For most token contracts, this value will equal 1. + */ + function granularity() external view returns (uint256); + + /** + * @dev Returns the amount of tokens in existence. + */ + function totalSupply() external view returns (uint256); + + /** + * @dev Returns the amount of tokens owned by an account (`owner`). + */ + function balanceOf(address owner) external view returns (uint256); + + /** + * @dev Moves `amount` tokens from the caller's account to `recipient`. + * + * If send or receive hooks are registered for the caller and `recipient`, + * the corresponding functions will be called with `data` and empty + * `operatorData`. See {IERC777Sender} and {IERC777Recipient}. + * + * Emits a {Sent} event. + * + * Requirements + * + * - the caller must have at least `amount` tokens. + * - `recipient` cannot be the zero address. + * - if `recipient` is a contract, it must implement the {IERC777Recipient} + * interface. + */ + function send( + address recipient, + uint256 amount, + bytes calldata data + ) external; + + /** + * @dev Destroys `amount` tokens from the caller's account, reducing the + * total supply. + * + * If a send hook is registered for the caller, the corresponding function + * will be called with `data` and empty `operatorData`. See {IERC777Sender}. + * + * Emits a {Burned} event. + * + * Requirements + * + * - the caller must have at least `amount` tokens. + */ + function burn(uint256 amount, bytes calldata data) external; + + /** + * @dev Returns true if an account is an operator of `tokenHolder`. + * Operators can send and burn tokens on behalf of their owners. All + * accounts are their own operator. + * + * See {operatorSend} and {operatorBurn}. + */ + function isOperatorFor(address operator, address tokenHolder) external view returns (bool); + + /** + * @dev Make an account an operator of the caller. + * + * See {isOperatorFor}. + * + * Emits an {AuthorizedOperator} event. + * + * Requirements + * + * - `operator` cannot be calling address. + */ + function authorizeOperator(address operator) external; + + /** + * @dev Revoke an account's operator status for the caller. + * + * See {isOperatorFor} and {defaultOperators}. + * + * Emits a {RevokedOperator} event. + * + * Requirements + * + * - `operator` cannot be calling address. + */ + function revokeOperator(address operator) external; + + /** + * @dev Returns the list of default operators. These accounts are operators + * for all token holders, even if {authorizeOperator} was never called on + * them. + * + * This list is immutable, but individual holders may revoke these via + * {revokeOperator}, in which case {isOperatorFor} will return false. + */ + function defaultOperators() external view returns (address[] memory); + + /** + * @dev Moves `amount` tokens from `sender` to `recipient`. The caller must + * be an operator of `sender`. + * + * If send or receive hooks are registered for `sender` and `recipient`, + * the corresponding functions will be called with `data` and + * `operatorData`. See {IERC777Sender} and {IERC777Recipient}. + * + * Emits a {Sent} event. + * + * Requirements + * + * - `sender` cannot be the zero address. + * - `sender` must have at least `amount` tokens. + * - the caller must be an operator for `sender`. + * - `recipient` cannot be the zero address. + * - if `recipient` is a contract, it must implement the {IERC777Recipient} + * interface. + */ + function operatorSend( + address sender, + address recipient, + uint256 amount, + bytes calldata data, + bytes calldata operatorData + ) external; + + /** + * @dev Destroys `amount` tokens from `account`, reducing the total supply. + * The caller must be an operator of `account`. + * + * If a send hook is registered for `account`, the corresponding function + * will be called with `data` and `operatorData`. See {IERC777Sender}. + * + * Emits a {Burned} event. + * + * Requirements + * + * - `account` cannot be the zero address. + * - `account` must have at least `amount` tokens. + * - the caller must be an operator for `account`. + */ + function operatorBurn( + address account, + uint256 amount, + bytes calldata data, + bytes calldata operatorData + ) external; + + event Sent( + address indexed operator, + address indexed from, + address indexed to, + uint256 amount, + bytes data, + bytes operatorData + ); + + event Minted(address indexed operator, address indexed to, uint256 amount, bytes data, bytes operatorData); + + event Burned(address indexed operator, address indexed from, uint256 amount, bytes data, bytes operatorData); + + event AuthorizedOperator(address indexed operator, address indexed tokenHolder); + + event RevokedOperator(address indexed operator, address indexed tokenHolder); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol new file mode 100644 index 000000000..4ea1a6984 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC777/IERC777Recipient.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Interface of the ERC777TokensRecipient standard as defined in the EIP. + * + * Accounts can be notified of {IERC777} tokens being sent to them by having a + * contract implement this interface (contract holders can be their own + * implementer) and registering it on the + * https://eips.ethereum.org/EIPS/eip-1820[ERC1820 global registry]. + * + * See {IERC1820Registry} and {ERC1820Implementer}. + */ +interface IERC777Recipient { + /** + * @dev Called by an {IERC777} token contract whenever tokens are being + * moved or created into a registered account (`to`). The type of operation + * is conveyed by `from` being the zero address or not. + * + * This call occurs _after_ the token contract's state is updated, so + * {IERC777-balanceOf}, etc., can be used to query the post-operation state. + * + * This function may revert to prevent the operation from being executed. + */ + function tokensReceived( + address operator, + address from, + address to, + uint256 amount, + bytes calldata userData, + bytes calldata operatorData + ) external; +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Sender.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Sender.sol new file mode 100644 index 000000000..34805bba1 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Sender.sol @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC777/IERC777Sender.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Interface of the ERC777TokensSender standard as defined in the EIP. + * + * {IERC777} Token holders can be notified of operations performed on their + * tokens by having a contract implement this interface (contract holders can be + * their own implementer) and registering it on the + * https://eips.ethereum.org/EIPS/eip-1820[ERC1820 global registry]. + * + * See {IERC1820Registry} and {ERC1820Implementer}. + */ +interface IERC777Sender { + /** + * @dev Called by an {IERC777} token contract whenever a registered holder's + * (`from`) tokens are about to be moved or destroyed. The type of operation + * is conveyed by `to` being the zero address or not. + * + * This call occurs _before_ the token contract's state is updated, so + * {IERC777-balanceOf}, etc., can be used to query the pre-operation state. + * + * This function may revert to prevent the operation from being executed. + */ + function tokensToSend( + address operator, + address from, + address to, + uint256 amount, + bytes calldata userData, + bytes calldata operatorData + ) external; +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol new file mode 100644 index 000000000..4441fad48 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (token/ERC777/presets/ERC777PresetFixedSupply.sol) +pragma solidity ^0.8.0; + +import "../ERC777.sol"; + +/** + * @dev {ERC777} token, including: + * + * - Preminted initial supply + * - No access control mechanism (for minting/pausing) and hence no governance + * + * _Available since v3.4._ + */ +contract ERC777PresetFixedSupply is ERC777 { + /** + * @dev Mints `initialSupply` amount of token and transfers them to `owner`. + * + * See {ERC777-constructor}. + */ + constructor( + string memory name, + string memory symbol, + address[] memory defaultOperators, + uint256 initialSupply, + address owner + ) ERC777(name, symbol, defaultOperators) { + _mint(owner, initialSupply, "", ""); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Address.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Address.sol new file mode 100644 index 000000000..7fae36f1f --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Address.sol @@ -0,0 +1,217 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/Address.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Collection of functions related to the address type + */ +library Address { + /** + * @dev Returns true if `account` is a contract. + * + * [IMPORTANT] + * ==== + * It is unsafe to assume that an address for which this function returns + * false is an externally-owned account (EOA) and not a contract. + * + * Among others, `isContract` will return false for the following + * types of addresses: + * + * - an externally-owned account + * - a contract in construction + * - an address where a contract will be created + * - an address where a contract lived, but was destroyed + * ==== + */ + function isContract(address account) internal view returns (bool) { + // This method relies on extcodesize, which returns 0 for contracts in + // construction, since the code is only stored at the end of the + // constructor execution. + + uint256 size; + assembly { + size := extcodesize(account) + } + return size > 0; + } + + /** + * @dev Replacement for Solidity's `transfer`: sends `amount` wei to + * `recipient`, forwarding all available gas and reverting on errors. + * + * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost + * of certain opcodes, possibly making contracts go over the 2300 gas limit + * imposed by `transfer`, making them unable to receive funds via + * `transfer`. {sendValue} removes this limitation. + * + * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. + * + * IMPORTANT: because control is transferred to `recipient`, care must be + * taken to not create reentrancy vulnerabilities. Consider using + * {ReentrancyGuard} or the + * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. + */ + function sendValue(address payable recipient, uint256 amount) internal { + require(address(this).balance >= amount, "Address: insufficient balance"); + + (bool success, ) = recipient.call{value: amount}(""); + require(success, "Address: unable to send value, recipient may have reverted"); + } + + /** + * @dev Performs a Solidity function call using a low level `call`. A + * plain `call` is an unsafe replacement for a function call: use this + * function instead. + * + * If `target` reverts with a revert reason, it is bubbled up by this + * function (like regular Solidity function calls). + * + * Returns the raw returned data. To convert to the expected return value, + * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. + * + * Requirements: + * + * - `target` must be a contract. + * - calling `target` with `data` must not revert. + * + * _Available since v3.1._ + */ + function functionCall(address target, bytes memory data) internal returns (bytes memory) { + return functionCall(target, data, "Address: low-level call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with + * `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCall( + address target, + bytes memory data, + string memory errorMessage + ) internal returns (bytes memory) { + return functionCallWithValue(target, data, 0, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but also transferring `value` wei to `target`. + * + * Requirements: + * + * - the calling contract must have an ETH balance of at least `value`. + * - the called Solidity function must be `payable`. + * + * _Available since v3.1._ + */ + function functionCallWithValue( + address target, + bytes memory data, + uint256 value + ) internal returns (bytes memory) { + return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); + } + + /** + * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but + * with `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCallWithValue( + address target, + bytes memory data, + uint256 value, + string memory errorMessage + ) internal returns (bytes memory) { + require(address(this).balance >= value, "Address: insufficient balance for call"); + require(isContract(target), "Address: call to non-contract"); + + (bool success, bytes memory returndata) = target.call{value: value}(data); + return verifyCallResult(success, returndata, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { + return functionStaticCall(target, data, "Address: low-level static call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall( + address target, + bytes memory data, + string memory errorMessage + ) internal view returns (bytes memory) { + require(isContract(target), "Address: static call to non-contract"); + + (bool success, bytes memory returndata) = target.staticcall(data); + return verifyCallResult(success, returndata, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a delegate call. + * + * _Available since v3.4._ + */ + function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { + return functionDelegateCall(target, data, "Address: low-level delegate call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a delegate call. + * + * _Available since v3.4._ + */ + function functionDelegateCall( + address target, + bytes memory data, + string memory errorMessage + ) internal returns (bytes memory) { + require(isContract(target), "Address: delegate call to non-contract"); + + (bool success, bytes memory returndata) = target.delegatecall(data); + return verifyCallResult(success, returndata, errorMessage); + } + + /** + * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the + * revert reason using the provided one. + * + * _Available since v4.3._ + */ + function verifyCallResult( + bool success, + bytes memory returndata, + string memory errorMessage + ) internal pure returns (bytes memory) { + if (success) { + return returndata; + } else { + // Look for revert reason and bubble it up if present + if (returndata.length > 0) { + // The easiest way to bubble the revert reason is using memory via assembly + + assembly { + let returndata_size := mload(returndata) + revert(add(32, returndata), returndata_size) + } + } else { + revert(errorMessage); + } + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Arrays.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Arrays.sol new file mode 100644 index 000000000..5f06e3049 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Arrays.sol @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/Arrays.sol) + +pragma solidity ^0.8.0; + +import "./math/Math.sol"; + +/** + * @dev Collection of functions related to array types. + */ +library Arrays { + /** + * @dev Searches a sorted `array` and returns the first index that contains + * a value greater or equal to `element`. If no such index exists (i.e. all + * values in the array are strictly less than `element`), the array length is + * returned. Time complexity O(log n). + * + * `array` is expected to be sorted in ascending order, and to contain no + * repeated elements. + */ + function findUpperBound(uint256[] storage array, uint256 element) internal view returns (uint256) { + if (array.length == 0) { + return 0; + } + + uint256 low = 0; + uint256 high = array.length; + + while (low < high) { + uint256 mid = Math.average(low, high); + + // Note that mid will always be strictly less than high (i.e. it will be a valid array index) + // because Math.average rounds down (it does integer division with truncation). + if (array[mid] > element) { + high = mid; + } else { + low = mid + 1; + } + } + + // At this point `low` is the exclusive upper bound. We will return the inclusive upper bound. + if (low > 0 && array[low - 1] == element) { + return low - 1; + } else { + return low; + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Context.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Context.sol new file mode 100644 index 000000000..8a402a141 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Context.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/Context.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Provides information about the current execution context, including the + * sender of the transaction and its data. While these are generally available + * via msg.sender and msg.data, they should not be accessed in such a direct + * manner, since when dealing with meta-transactions the account sending and + * paying for execution may not be the actual sender (as far as an application + * is concerned). + * + * This contract is only required for intermediate, library-like contracts. + */ +abstract contract Context { + function _msgSender() internal view virtual returns (address) { + return msg.sender; + } + + function _msgData() internal view virtual returns (bytes calldata) { + return msg.data; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Counters.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Counters.sol new file mode 100644 index 000000000..b2538929e --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Counters.sol @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/Counters.sol) + +pragma solidity ^0.8.0; + +/** + * @title Counters + * @author Matt Condon (@shrugs) + * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number + * of elements in a mapping, issuing ERC721 ids, or counting request ids. + * + * Include with `using Counters for Counters.Counter;` + */ +library Counters { + struct Counter { + // This variable should never be directly accessed by users of the library: interactions must be restricted to + // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add + // this feature: see https://github.com/ethereum/solidity/issues/4637 + uint256 _value; // default: 0 + } + + function current(Counter storage counter) internal view returns (uint256) { + return counter._value; + } + + function increment(Counter storage counter) internal { + unchecked { + counter._value += 1; + } + } + + function decrement(Counter storage counter) internal { + uint256 value = counter._value; + require(value > 0, "Counter: decrement overflow"); + unchecked { + counter._value = value - 1; + } + } + + function reset(Counter storage counter) internal { + counter._value = 0; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Create2.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Create2.sol new file mode 100644 index 000000000..b65b63737 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Create2.sol @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/Create2.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Helper to make usage of the `CREATE2` EVM opcode easier and safer. + * `CREATE2` can be used to compute in advance the address where a smart + * contract will be deployed, which allows for interesting new mechanisms known + * as 'counterfactual interactions'. + * + * See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more + * information. + */ +library Create2 { + /** + * @dev Deploys a contract using `CREATE2`. The address where the contract + * will be deployed can be known in advance via {computeAddress}. + * + * The bytecode for a contract can be obtained from Solidity with + * `type(contractName).creationCode`. + * + * Requirements: + * + * - `bytecode` must not be empty. + * - `salt` must have not been used for `bytecode` already. + * - the factory must have a balance of at least `amount`. + * - if `amount` is non-zero, `bytecode` must have a `payable` constructor. + */ + function deploy( + uint256 amount, + bytes32 salt, + bytes memory bytecode + ) internal returns (address) { + address addr; + require(address(this).balance >= amount, "Create2: insufficient balance"); + require(bytecode.length != 0, "Create2: bytecode length is zero"); + assembly { + addr := create2(amount, add(bytecode, 0x20), mload(bytecode), salt) + } + require(addr != address(0), "Create2: Failed on deploy"); + return addr; + } + + /** + * @dev Returns the address where a contract will be stored if deployed via {deploy}. Any change in the + * `bytecodeHash` or `salt` will result in a new destination address. + */ + function computeAddress(bytes32 salt, bytes32 bytecodeHash) internal view returns (address) { + return computeAddress(salt, bytecodeHash, address(this)); + } + + /** + * @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at + * `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}. + */ + function computeAddress( + bytes32 salt, + bytes32 bytecodeHash, + address deployer + ) internal pure returns (address) { + bytes32 _data = keccak256(abi.encodePacked(bytes1(0xff), deployer, salt, bytecodeHash)); + return address(uint160(uint256(_data))); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Multicall.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Multicall.sol new file mode 100644 index 000000000..2911348ab --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Multicall.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/Multicall.sol) + +pragma solidity ^0.8.0; + +import "./Address.sol"; + +/** + * @dev Provides a function to batch together multiple calls in a single external call. + * + * _Available since v4.1._ + */ +abstract contract Multicall { + /** + * @dev Receives and executes a batch of function calls on this contract. + */ + function multicall(bytes[] calldata data) external returns (bytes[] memory results) { + results = new bytes[](data.length); + for (uint256 i = 0; i < data.length; i++) { + results[i] = Address.functionDelegateCall(address(this), data[i]); + } + return results; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol new file mode 100644 index 000000000..b33a91efb --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol @@ -0,0 +1,84 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/StorageSlot.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Library for reading and writing primitive types to specific storage slots. + * + * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. + * This library helps with reading and writing to such slots without the need for inline assembly. + * + * The functions in this library return Slot structs that contain a `value` member that can be used to read or write. + * + * Example usage to set ERC1967 implementation slot: + * ``` + * contract ERC1967 { + * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + * + * function _getImplementation() internal view returns (address) { + * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; + * } + * + * function _setImplementation(address newImplementation) internal { + * require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract"); + * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; + * } + * } + * ``` + * + * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._ + */ +library StorageSlot { + struct AddressSlot { + address value; + } + + struct BooleanSlot { + bool value; + } + + struct Bytes32Slot { + bytes32 value; + } + + struct Uint256Slot { + uint256 value; + } + + /** + * @dev Returns an `AddressSlot` with member `value` located at `slot`. + */ + function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) { + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `BooleanSlot` with member `value` located at `slot`. + */ + function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) { + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `Bytes32Slot` with member `value` located at `slot`. + */ + function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) { + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `Uint256Slot` with member `value` located at `slot`. + */ + function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) { + assembly { + r.slot := slot + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Strings.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Strings.sol new file mode 100644 index 000000000..0cf6e8b27 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Strings.sol @@ -0,0 +1,67 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/Strings.sol) + +pragma solidity ^0.8.0; + +/** + * @dev String operations. + */ +library Strings { + bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; + + /** + * @dev Converts a `uint256` to its ASCII `string` decimal representation. + */ + function toString(uint256 value) internal pure returns (string memory) { + // Inspired by OraclizeAPI's implementation - MIT licence + // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol + + if (value == 0) { + return "0"; + } + uint256 temp = value; + uint256 digits; + while (temp != 0) { + digits++; + temp /= 10; + } + bytes memory buffer = new bytes(digits); + while (value != 0) { + digits -= 1; + buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); + value /= 10; + } + return string(buffer); + } + + /** + * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. + */ + function toHexString(uint256 value) internal pure returns (string memory) { + if (value == 0) { + return "0x00"; + } + uint256 temp = value; + uint256 length = 0; + while (temp != 0) { + length++; + temp >>= 8; + } + return toHexString(value, length); + } + + /** + * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. + */ + function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { + bytes memory buffer = new bytes(2 * length + 2); + buffer[0] = "0"; + buffer[1] = "x"; + for (uint256 i = 2 * length + 1; i > 1; --i) { + buffer[i] = _HEX_SYMBOLS[value & 0xf]; + value >>= 4; + } + require(value == 0, "Strings: hex length insufficient"); + return string(buffer); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Timers.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Timers.sol new file mode 100644 index 000000000..666abe58e --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/Timers.sol @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/Timers.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Tooling for timepoints, timers and delays + */ +library Timers { + struct Timestamp { + uint64 _deadline; + } + + function getDeadline(Timestamp memory timer) internal pure returns (uint64) { + return timer._deadline; + } + + function setDeadline(Timestamp storage timer, uint64 timestamp) internal { + timer._deadline = timestamp; + } + + function reset(Timestamp storage timer) internal { + timer._deadline = 0; + } + + function isUnset(Timestamp memory timer) internal pure returns (bool) { + return timer._deadline == 0; + } + + function isStarted(Timestamp memory timer) internal pure returns (bool) { + return timer._deadline > 0; + } + + function isPending(Timestamp memory timer) internal view returns (bool) { + return timer._deadline > block.timestamp; + } + + function isExpired(Timestamp memory timer) internal view returns (bool) { + return isStarted(timer) && timer._deadline <= block.timestamp; + } + + struct BlockNumber { + uint64 _deadline; + } + + function getDeadline(BlockNumber memory timer) internal pure returns (uint64) { + return timer._deadline; + } + + function setDeadline(BlockNumber storage timer, uint64 timestamp) internal { + timer._deadline = timestamp; + } + + function reset(BlockNumber storage timer) internal { + timer._deadline = 0; + } + + function isUnset(BlockNumber memory timer) internal pure returns (bool) { + return timer._deadline == 0; + } + + function isStarted(BlockNumber memory timer) internal pure returns (bool) { + return timer._deadline > 0; + } + + function isPending(BlockNumber memory timer) internal view returns (bool) { + return timer._deadline > block.number; + } + + function isExpired(BlockNumber memory timer) internal view returns (bool) { + return isStarted(timer) && timer._deadline <= block.number; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol new file mode 100644 index 000000000..7334d2448 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol @@ -0,0 +1,234 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/cryptography/ECDSA.sol) + +pragma solidity ^0.8.0; + +import "../Strings.sol"; + +/** + * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations. + * + * These functions can be used to verify that a message was signed by the holder + * of the private keys of a given address. + */ +library ECDSA { + enum RecoverError { + NoError, + InvalidSignature, + InvalidSignatureLength, + InvalidSignatureS, + InvalidSignatureV + } + + function _throwError(RecoverError error) private pure { + if (error == RecoverError.NoError) { + return; // no error: do nothing + } else if (error == RecoverError.InvalidSignature) { + revert("ECDSA: invalid signature"); + } else if (error == RecoverError.InvalidSignatureLength) { + revert("ECDSA: invalid signature length"); + } else if (error == RecoverError.InvalidSignatureS) { + revert("ECDSA: invalid signature 's' value"); + } else if (error == RecoverError.InvalidSignatureV) { + revert("ECDSA: invalid signature 'v' value"); + } + } + + /** + * @dev Returns the address that signed a hashed message (`hash`) with + * `signature` or error string. This address can then be used for verification purposes. + * + * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures: + * this function rejects them by requiring the `s` value to be in the lower + * half order, and the `v` value to be either 27 or 28. + * + * IMPORTANT: `hash` _must_ be the result of a hash operation for the + * verification to be secure: it is possible to craft signatures that + * recover to arbitrary addresses for non-hashed data. A safe way to ensure + * this is by receiving a hash of the original message (which may otherwise + * be too long), and then calling {toEthSignedMessageHash} on it. + * + * Documentation for signature generation: + * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js] + * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers] + * + * _Available since v4.3._ + */ + function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) { + // Check the signature length + // - case 65: r,s,v signature (standard) + // - case 64: r,vs signature (cf https://eips.ethereum.org/EIPS/eip-2098) _Available since v4.1._ + if (signature.length == 65) { + bytes32 r; + bytes32 s; + uint8 v; + // ecrecover takes the signature parameters, and the only way to get them + // currently is to use assembly. + assembly { + r := mload(add(signature, 0x20)) + s := mload(add(signature, 0x40)) + v := byte(0, mload(add(signature, 0x60))) + } + return tryRecover(hash, v, r, s); + } else if (signature.length == 64) { + bytes32 r; + bytes32 vs; + // ecrecover takes the signature parameters, and the only way to get them + // currently is to use assembly. + assembly { + r := mload(add(signature, 0x20)) + vs := mload(add(signature, 0x40)) + } + return tryRecover(hash, r, vs); + } else { + return (address(0), RecoverError.InvalidSignatureLength); + } + } + + /** + * @dev Returns the address that signed a hashed message (`hash`) with + * `signature`. This address can then be used for verification purposes. + * + * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures: + * this function rejects them by requiring the `s` value to be in the lower + * half order, and the `v` value to be either 27 or 28. + * + * IMPORTANT: `hash` _must_ be the result of a hash operation for the + * verification to be secure: it is possible to craft signatures that + * recover to arbitrary addresses for non-hashed data. A safe way to ensure + * this is by receiving a hash of the original message (which may otherwise + * be too long), and then calling {toEthSignedMessageHash} on it. + */ + function recover(bytes32 hash, bytes memory signature) internal pure returns (address) { + (address recovered, RecoverError error) = tryRecover(hash, signature); + _throwError(error); + return recovered; + } + + /** + * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately. + * + * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures] + * + * _Available since v4.3._ + */ + function tryRecover( + bytes32 hash, + bytes32 r, + bytes32 vs + ) internal pure returns (address, RecoverError) { + bytes32 s; + uint8 v; + assembly { + s := and(vs, 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) + v := add(shr(255, vs), 27) + } + return tryRecover(hash, v, r, s); + } + + /** + * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately. + * + * _Available since v4.2._ + */ + function recover( + bytes32 hash, + bytes32 r, + bytes32 vs + ) internal pure returns (address) { + (address recovered, RecoverError error) = tryRecover(hash, r, vs); + _throwError(error); + return recovered; + } + + /** + * @dev Overload of {ECDSA-tryRecover} that receives the `v`, + * `r` and `s` signature fields separately. + * + * _Available since v4.3._ + */ + function tryRecover( + bytes32 hash, + uint8 v, + bytes32 r, + bytes32 s + ) internal pure returns (address, RecoverError) { + // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature + // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines + // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most + // signatures from current libraries generate a unique signature with an s-value in the lower half order. + // + // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value + // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or + // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept + // these malleable signatures as well. + if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) { + return (address(0), RecoverError.InvalidSignatureS); + } + if (v != 27 && v != 28) { + return (address(0), RecoverError.InvalidSignatureV); + } + + // If the signature is valid (and not malleable), return the signer address + address signer = ecrecover(hash, v, r, s); + if (signer == address(0)) { + return (address(0), RecoverError.InvalidSignature); + } + + return (signer, RecoverError.NoError); + } + + /** + * @dev Overload of {ECDSA-recover} that receives the `v`, + * `r` and `s` signature fields separately. + */ + function recover( + bytes32 hash, + uint8 v, + bytes32 r, + bytes32 s + ) internal pure returns (address) { + (address recovered, RecoverError error) = tryRecover(hash, v, r, s); + _throwError(error); + return recovered; + } + + /** + * @dev Returns an Ethereum Signed Message, created from a `hash`. This + * produces hash corresponding to the one signed with the + * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] + * JSON-RPC method as part of EIP-191. + * + * See {recover}. + */ + function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) { + // 32 is the length in bytes of hash, + // enforced by the type signature above + return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); + } + + /** + * @dev Returns an Ethereum Signed Message, created from `s`. This + * produces hash corresponding to the one signed with the + * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] + * JSON-RPC method as part of EIP-191. + * + * See {recover}. + */ + function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32) { + return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n", Strings.toString(s.length), s)); + } + + /** + * @dev Returns an Ethereum Signed Typed Data, created from a + * `domainSeparator` and a `structHash`. This produces hash corresponding + * to the one signed with the + * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] + * JSON-RPC method as part of EIP-712. + * + * See {recover}. + */ + function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) { + return keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol new file mode 100644 index 000000000..4092d66b9 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/cryptography/MerkleProof.sol) + +pragma solidity ^0.8.0; + +/** + * @dev These functions deal with verification of Merkle Trees proofs. + * + * The proofs can be generated using the JavaScript library + * https://github.com/miguelmota/merkletreejs[merkletreejs]. + * Note: the hashing algorithm should be keccak256 and pair sorting should be enabled. + * + * See `test/utils/cryptography/MerkleProof.test.js` for some examples. + */ +library MerkleProof { + /** + * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree + * defined by `root`. For this, a `proof` must be provided, containing + * sibling hashes on the branch from the leaf to the root of the tree. Each + * pair of leaves and each pair of pre-images are assumed to be sorted. + */ + function verify( + bytes32[] memory proof, + bytes32 root, + bytes32 leaf + ) internal pure returns (bool) { + return processProof(proof, leaf) == root; + } + + /** + * @dev Returns the rebuilt hash obtained by traversing a Merklee tree up + * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt + * hash matches the root of the tree. When processing the proof, the pairs + * of leafs & pre-images are assumed to be sorted. + * + * _Available since v4.4._ + */ + function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) { + bytes32 computedHash = leaf; + for (uint256 i = 0; i < proof.length; i++) { + bytes32 proofElement = proof[i]; + if (computedHash <= proofElement) { + // Hash(current computed hash + current element of the proof) + computedHash = keccak256(abi.encodePacked(computedHash, proofElement)); + } else { + // Hash(current element of the proof + current computed hash) + computedHash = keccak256(abi.encodePacked(proofElement, computedHash)); + } + } + return computedHash; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol new file mode 100644 index 000000000..5d9ff3550 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/cryptography/SignatureChecker.sol) + +pragma solidity ^0.8.0; + +import "./ECDSA.sol"; +import "../Address.sol"; +import "../../interfaces/IERC1271.sol"; + +/** + * @dev Signature verification helper: Provide a single mechanism to verify both private-key (EOA) ECDSA signature and + * ERC1271 contract signatures. Using this instead of ECDSA.recover in your contract will make them compatible with + * smart contract wallets such as Argent and Gnosis. + * + * Note: unlike ECDSA signatures, contract signature's are revocable, and the outcome of this function can thus change + * through time. It could return true at block N and false at block N+1 (or the opposite). + * + * _Available since v4.1._ + */ +library SignatureChecker { + function isValidSignatureNow( + address signer, + bytes32 hash, + bytes memory signature + ) internal view returns (bool) { + (address recovered, ECDSA.RecoverError error) = ECDSA.tryRecover(hash, signature); + if (error == ECDSA.RecoverError.NoError && recovered == signer) { + return true; + } + + (bool success, bytes memory result) = signer.staticcall( + abi.encodeWithSelector(IERC1271.isValidSignature.selector, hash, signature) + ); + return (success && result.length == 32 && abi.decode(result, (bytes4)) == IERC1271.isValidSignature.selector); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol new file mode 100644 index 000000000..68c96378b --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol @@ -0,0 +1,104 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/cryptography/draft-EIP712.sol) + +pragma solidity ^0.8.0; + +import "./ECDSA.sol"; + +/** + * @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. + * + * The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, + * thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding + * they need in their contracts using a combination of `abi.encode` and `keccak256`. + * + * This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding + * scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA + * ({_hashTypedDataV4}). + * + * The implementation of the domain separator was designed to be as efficient as possible while still properly updating + * the chain id to protect against replay attacks on an eventual fork of the chain. + * + * NOTE: This contract implements the version of the encoding known as "v4", as implemented by the JSON RPC method + * https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. + * + * _Available since v3.4._ + */ +abstract contract EIP712 { + /* solhint-disable var-name-mixedcase */ + // Cache the domain separator as an immutable value, but also store the chain id that it corresponds to, in order to + // invalidate the cached domain separator if the chain id changes. + bytes32 private immutable _CACHED_DOMAIN_SEPARATOR; + uint256 private immutable _CACHED_CHAIN_ID; + address private immutable _CACHED_THIS; + + bytes32 private immutable _HASHED_NAME; + bytes32 private immutable _HASHED_VERSION; + bytes32 private immutable _TYPE_HASH; + + /* solhint-enable var-name-mixedcase */ + + /** + * @dev Initializes the domain separator and parameter caches. + * + * The meaning of `name` and `version` is specified in + * https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: + * + * - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. + * - `version`: the current major version of the signing domain. + * + * NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart + * contract upgrade]. + */ + constructor(string memory name, string memory version) { + bytes32 hashedName = keccak256(bytes(name)); + bytes32 hashedVersion = keccak256(bytes(version)); + bytes32 typeHash = keccak256( + "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" + ); + _HASHED_NAME = hashedName; + _HASHED_VERSION = hashedVersion; + _CACHED_CHAIN_ID = block.chainid; + _CACHED_DOMAIN_SEPARATOR = _buildDomainSeparator(typeHash, hashedName, hashedVersion); + _CACHED_THIS = address(this); + _TYPE_HASH = typeHash; + } + + /** + * @dev Returns the domain separator for the current chain. + */ + function _domainSeparatorV4() internal view returns (bytes32) { + if (address(this) == _CACHED_THIS && block.chainid == _CACHED_CHAIN_ID) { + return _CACHED_DOMAIN_SEPARATOR; + } else { + return _buildDomainSeparator(_TYPE_HASH, _HASHED_NAME, _HASHED_VERSION); + } + } + + function _buildDomainSeparator( + bytes32 typeHash, + bytes32 nameHash, + bytes32 versionHash + ) private view returns (bytes32) { + return keccak256(abi.encode(typeHash, nameHash, versionHash, block.chainid, address(this))); + } + + /** + * @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this + * function returns the hash of the fully encoded EIP712 message for this domain. + * + * This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example: + * + * ```solidity + * bytes32 digest = _hashTypedDataV4(keccak256(abi.encode( + * keccak256("Mail(address to,string contents)"), + * mailTo, + * keccak256(bytes(mailContents)) + * ))); + * address signer = ECDSA.recover(digest, signature); + * ``` + */ + function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) { + return ECDSA.toTypedDataHash(_domainSeparatorV4(), structHash); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/ConditionalEscrow.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/ConditionalEscrow.sol new file mode 100644 index 000000000..a9bc3b165 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/ConditionalEscrow.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/escrow/ConditionalEscrow.sol) + +pragma solidity ^0.8.0; + +import "./Escrow.sol"; + +/** + * @title ConditionalEscrow + * @dev Base abstract escrow to only allow withdrawal if a condition is met. + * @dev Intended usage: See {Escrow}. Same usage guidelines apply here. + */ +abstract contract ConditionalEscrow is Escrow { + /** + * @dev Returns whether an address is allowed to withdraw their funds. To be + * implemented by derived contracts. + * @param payee The destination address of the funds. + */ + function withdrawalAllowed(address payee) public view virtual returns (bool); + + function withdraw(address payable payee) public virtual override { + require(withdrawalAllowed(payee), "ConditionalEscrow: payee is not allowed to withdraw"); + super.withdraw(payee); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/Escrow.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/Escrow.sol new file mode 100644 index 000000000..e42a4fe67 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/Escrow.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/escrow/Escrow.sol) + +pragma solidity ^0.8.0; + +import "../../access/Ownable.sol"; +import "../Address.sol"; + +/** + * @title Escrow + * @dev Base escrow contract, holds funds designated for a payee until they + * withdraw them. + * + * Intended usage: This contract (and derived escrow contracts) should be a + * standalone contract, that only interacts with the contract that instantiated + * it. That way, it is guaranteed that all Ether will be handled according to + * the `Escrow` rules, and there is no need to check for payable functions or + * transfers in the inheritance tree. The contract that uses the escrow as its + * payment method should be its owner, and provide public methods redirecting + * to the escrow's deposit and withdraw. + */ +contract Escrow is Ownable { + using Address for address payable; + + event Deposited(address indexed payee, uint256 weiAmount); + event Withdrawn(address indexed payee, uint256 weiAmount); + + mapping(address => uint256) private _deposits; + + function depositsOf(address payee) public view returns (uint256) { + return _deposits[payee]; + } + + /** + * @dev Stores the sent amount as credit to be withdrawn. + * @param payee The destination address of the funds. + */ + function deposit(address payee) public payable virtual onlyOwner { + uint256 amount = msg.value; + _deposits[payee] += amount; + emit Deposited(payee, amount); + } + + /** + * @dev Withdraw accumulated balance for a payee, forwarding all gas to the + * recipient. + * + * WARNING: Forwarding all gas opens the door to reentrancy vulnerabilities. + * Make sure you trust the recipient, or are either following the + * checks-effects-interactions pattern or using {ReentrancyGuard}. + * + * @param payee The address whose funds will be withdrawn and transferred to. + */ + function withdraw(address payable payee) public virtual onlyOwner { + uint256 payment = _deposits[payee]; + + _deposits[payee] = 0; + + payee.sendValue(payment); + + emit Withdrawn(payee, payment); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/RefundEscrow.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/RefundEscrow.sol new file mode 100644 index 000000000..8d182a297 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/RefundEscrow.sol @@ -0,0 +1,100 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/escrow/RefundEscrow.sol) + +pragma solidity ^0.8.0; + +import "./ConditionalEscrow.sol"; + +/** + * @title RefundEscrow + * @dev Escrow that holds funds for a beneficiary, deposited from multiple + * parties. + * @dev Intended usage: See {Escrow}. Same usage guidelines apply here. + * @dev The owner account (that is, the contract that instantiates this + * contract) may deposit, close the deposit period, and allow for either + * withdrawal by the beneficiary, or refunds to the depositors. All interactions + * with `RefundEscrow` will be made through the owner contract. + */ +contract RefundEscrow is ConditionalEscrow { + using Address for address payable; + + enum State { + Active, + Refunding, + Closed + } + + event RefundsClosed(); + event RefundsEnabled(); + + State private _state; + address payable private immutable _beneficiary; + + /** + * @dev Constructor. + * @param beneficiary_ The beneficiary of the deposits. + */ + constructor(address payable beneficiary_) { + require(beneficiary_ != address(0), "RefundEscrow: beneficiary is the zero address"); + _beneficiary = beneficiary_; + _state = State.Active; + } + + /** + * @return The current state of the escrow. + */ + function state() public view virtual returns (State) { + return _state; + } + + /** + * @return The beneficiary of the escrow. + */ + function beneficiary() public view virtual returns (address payable) { + return _beneficiary; + } + + /** + * @dev Stores funds that may later be refunded. + * @param refundee The address funds will be sent to if a refund occurs. + */ + function deposit(address refundee) public payable virtual override { + require(state() == State.Active, "RefundEscrow: can only deposit while active"); + super.deposit(refundee); + } + + /** + * @dev Allows for the beneficiary to withdraw their funds, rejecting + * further deposits. + */ + function close() public virtual onlyOwner { + require(state() == State.Active, "RefundEscrow: can only close while active"); + _state = State.Closed; + emit RefundsClosed(); + } + + /** + * @dev Allows for refunds to take place, rejecting further deposits. + */ + function enableRefunds() public virtual onlyOwner { + require(state() == State.Active, "RefundEscrow: can only enable refunds while active"); + _state = State.Refunding; + emit RefundsEnabled(); + } + + /** + * @dev Withdraws the beneficiary's funds. + */ + function beneficiaryWithdraw() public virtual { + require(state() == State.Closed, "RefundEscrow: beneficiary can only withdraw while closed"); + beneficiary().sendValue(address(this).balance); + } + + /** + * @dev Returns whether refundees can withdraw their deposits (be refunded). The overridden function receives a + * 'payee' argument, but we ignore it here since the condition is global, not per-payee. + */ + function withdrawalAllowed(address) public view override returns (bool) { + return state() == State.Refunding; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol new file mode 100644 index 000000000..542d0b07d --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/introspection/ERC165.sol) + +pragma solidity ^0.8.0; + +import "./IERC165.sol"; + +/** + * @dev Implementation of the {IERC165} interface. + * + * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check + * for the additional interface id that will be supported. For example: + * + * ```solidity + * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { + * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); + * } + * ``` + * + * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. + */ +abstract contract ERC165 is IERC165 { + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { + return interfaceId == type(IERC165).interfaceId; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol new file mode 100644 index 000000000..b24aeba52 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol @@ -0,0 +1,113 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/introspection/ERC165Checker.sol) + +pragma solidity ^0.8.0; + +import "./IERC165.sol"; + +/** + * @dev Library used to query support of an interface declared via {IERC165}. + * + * Note that these functions return the actual result of the query: they do not + * `revert` if an interface is not supported. It is up to the caller to decide + * what to do in these cases. + */ +library ERC165Checker { + // As per the EIP-165 spec, no interface should ever match 0xffffffff + bytes4 private constant _INTERFACE_ID_INVALID = 0xffffffff; + + /** + * @dev Returns true if `account` supports the {IERC165} interface, + */ + function supportsERC165(address account) internal view returns (bool) { + // Any contract that implements ERC165 must explicitly indicate support of + // InterfaceId_ERC165 and explicitly indicate non-support of InterfaceId_Invalid + return + _supportsERC165Interface(account, type(IERC165).interfaceId) && + !_supportsERC165Interface(account, _INTERFACE_ID_INVALID); + } + + /** + * @dev Returns true if `account` supports the interface defined by + * `interfaceId`. Support for {IERC165} itself is queried automatically. + * + * See {IERC165-supportsInterface}. + */ + function supportsInterface(address account, bytes4 interfaceId) internal view returns (bool) { + // query support of both ERC165 as per the spec and support of _interfaceId + return supportsERC165(account) && _supportsERC165Interface(account, interfaceId); + } + + /** + * @dev Returns a boolean array where each value corresponds to the + * interfaces passed in and whether they're supported or not. This allows + * you to batch check interfaces for a contract where your expectation + * is that some interfaces may not be supported. + * + * See {IERC165-supportsInterface}. + * + * _Available since v3.4._ + */ + function getSupportedInterfaces(address account, bytes4[] memory interfaceIds) + internal + view + returns (bool[] memory) + { + // an array of booleans corresponding to interfaceIds and whether they're supported or not + bool[] memory interfaceIdsSupported = new bool[](interfaceIds.length); + + // query support of ERC165 itself + if (supportsERC165(account)) { + // query support of each interface in interfaceIds + for (uint256 i = 0; i < interfaceIds.length; i++) { + interfaceIdsSupported[i] = _supportsERC165Interface(account, interfaceIds[i]); + } + } + + return interfaceIdsSupported; + } + + /** + * @dev Returns true if `account` supports all the interfaces defined in + * `interfaceIds`. Support for {IERC165} itself is queried automatically. + * + * Batch-querying can lead to gas savings by skipping repeated checks for + * {IERC165} support. + * + * See {IERC165-supportsInterface}. + */ + function supportsAllInterfaces(address account, bytes4[] memory interfaceIds) internal view returns (bool) { + // query support of ERC165 itself + if (!supportsERC165(account)) { + return false; + } + + // query support of each interface in _interfaceIds + for (uint256 i = 0; i < interfaceIds.length; i++) { + if (!_supportsERC165Interface(account, interfaceIds[i])) { + return false; + } + } + + // all interfaces supported + return true; + } + + /** + * @notice Query if a contract implements an interface, does not check ERC165 support + * @param account The address of the contract to query for support of an interface + * @param interfaceId The interface identifier, as specified in ERC-165 + * @return true if the contract at account indicates support of the interface with + * identifier interfaceId, false otherwise + * @dev Assumes that account contains a contract that supports ERC165, otherwise + * the behavior of this method is undefined. This precondition can be checked + * with {supportsERC165}. + * Interface identification is specified in ERC-165. + */ + function _supportsERC165Interface(address account, bytes4 interfaceId) private view returns (bool) { + bytes memory encodedParams = abi.encodeWithSelector(IERC165.supportsInterface.selector, interfaceId); + (bool success, bytes memory result) = account.staticcall{gas: 30000}(encodedParams); + if (result.length < 32) return false; + return success && abi.decode(result, (bool)); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Storage.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Storage.sol new file mode 100644 index 000000000..5b7c8d3d0 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Storage.sol @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/introspection/ERC165Storage.sol) + +pragma solidity ^0.8.0; + +import "./ERC165.sol"; + +/** + * @dev Storage based implementation of the {IERC165} interface. + * + * Contracts may inherit from this and call {_registerInterface} to declare + * their support of an interface. + */ +abstract contract ERC165Storage is ERC165 { + /** + * @dev Mapping of interface ids to whether or not it's supported. + */ + mapping(bytes4 => bool) private _supportedInterfaces; + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { + return super.supportsInterface(interfaceId) || _supportedInterfaces[interfaceId]; + } + + /** + * @dev Registers the contract as an implementer of the interface defined by + * `interfaceId`. Support of the actual ERC165 interface is automatic and + * registering its interface id is not required. + * + * See {IERC165-supportsInterface}. + * + * Requirements: + * + * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`). + */ + function _registerInterface(bytes4 interfaceId) internal virtual { + require(interfaceId != 0xffffffff, "ERC165: invalid interface id"); + _supportedInterfaces[interfaceId] = true; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC1820Implementer.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC1820Implementer.sol new file mode 100644 index 000000000..50a4f1fc4 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC1820Implementer.sol @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/introspection/ERC1820Implementer.sol) + +pragma solidity ^0.8.0; + +import "./IERC1820Implementer.sol"; + +/** + * @dev Implementation of the {IERC1820Implementer} interface. + * + * Contracts may inherit from this and call {_registerInterfaceForAddress} to + * declare their willingness to be implementers. + * {IERC1820Registry-setInterfaceImplementer} should then be called for the + * registration to be complete. + */ +contract ERC1820Implementer is IERC1820Implementer { + bytes32 private constant _ERC1820_ACCEPT_MAGIC = keccak256("ERC1820_ACCEPT_MAGIC"); + + mapping(bytes32 => mapping(address => bool)) private _supportedInterfaces; + + /** + * @dev See {IERC1820Implementer-canImplementInterfaceForAddress}. + */ + function canImplementInterfaceForAddress(bytes32 interfaceHash, address account) + public + view + virtual + override + returns (bytes32) + { + return _supportedInterfaces[interfaceHash][account] ? _ERC1820_ACCEPT_MAGIC : bytes32(0x00); + } + + /** + * @dev Declares the contract as willing to be an implementer of + * `interfaceHash` for `account`. + * + * See {IERC1820Registry-setInterfaceImplementer} and + * {IERC1820Registry-interfaceHash}. + */ + function _registerInterfaceForAddress(bytes32 interfaceHash, address account) internal virtual { + _supportedInterfaces[interfaceHash][account] = true; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol new file mode 100644 index 000000000..40cf6d29d --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/introspection/IERC165.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Interface of the ERC165 standard, as defined in the + * https://eips.ethereum.org/EIPS/eip-165[EIP]. + * + * Implementers can declare support of contract interfaces, which can then be + * queried by others ({ERC165Checker}). + * + * For an implementation, see {ERC165}. + */ +interface IERC165 { + /** + * @dev Returns true if this contract implements the interface defined by + * `interfaceId`. See the corresponding + * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] + * to learn more about how these ids are created. + * + * This function call must use less than 30 000 gas. + */ + function supportsInterface(bytes4 interfaceId) external view returns (bool); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Implementer.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Implementer.sol new file mode 100644 index 000000000..1e474ddb6 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Implementer.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/introspection/IERC1820Implementer.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Interface for an ERC1820 implementer, as defined in the + * https://eips.ethereum.org/EIPS/eip-1820#interface-implementation-erc1820implementerinterface[EIP]. + * Used by contracts that will be registered as implementers in the + * {IERC1820Registry}. + */ +interface IERC1820Implementer { + /** + * @dev Returns a special value (`ERC1820_ACCEPT_MAGIC`) if this contract + * implements `interfaceHash` for `account`. + * + * See {IERC1820Registry-setInterfaceImplementer}. + */ + function canImplementInterfaceForAddress(bytes32 interfaceHash, address account) external view returns (bytes32); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol new file mode 100644 index 000000000..0e2a9efed --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol @@ -0,0 +1,116 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/introspection/IERC1820Registry.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Interface of the global ERC1820 Registry, as defined in the + * https://eips.ethereum.org/EIPS/eip-1820[EIP]. Accounts may register + * implementers for interfaces in this registry, as well as query support. + * + * Implementers may be shared by multiple accounts, and can also implement more + * than a single interface for each account. Contracts can implement interfaces + * for themselves, but externally-owned accounts (EOA) must delegate this to a + * contract. + * + * {IERC165} interfaces can also be queried via the registry. + * + * For an in-depth explanation and source code analysis, see the EIP text. + */ +interface IERC1820Registry { + /** + * @dev Sets `newManager` as the manager for `account`. A manager of an + * account is able to set interface implementers for it. + * + * By default, each account is its own manager. Passing a value of `0x0` in + * `newManager` will reset the manager to this initial state. + * + * Emits a {ManagerChanged} event. + * + * Requirements: + * + * - the caller must be the current manager for `account`. + */ + function setManager(address account, address newManager) external; + + /** + * @dev Returns the manager for `account`. + * + * See {setManager}. + */ + function getManager(address account) external view returns (address); + + /** + * @dev Sets the `implementer` contract as ``account``'s implementer for + * `interfaceHash`. + * + * `account` being the zero address is an alias for the caller's address. + * The zero address can also be used in `implementer` to remove an old one. + * + * See {interfaceHash} to learn how these are created. + * + * Emits an {InterfaceImplementerSet} event. + * + * Requirements: + * + * - the caller must be the current manager for `account`. + * - `interfaceHash` must not be an {IERC165} interface id (i.e. it must not + * end in 28 zeroes). + * - `implementer` must implement {IERC1820Implementer} and return true when + * queried for support, unless `implementer` is the caller. See + * {IERC1820Implementer-canImplementInterfaceForAddress}. + */ + function setInterfaceImplementer( + address account, + bytes32 _interfaceHash, + address implementer + ) external; + + /** + * @dev Returns the implementer of `interfaceHash` for `account`. If no such + * implementer is registered, returns the zero address. + * + * If `interfaceHash` is an {IERC165} interface id (i.e. it ends with 28 + * zeroes), `account` will be queried for support of it. + * + * `account` being the zero address is an alias for the caller's address. + */ + function getInterfaceImplementer(address account, bytes32 _interfaceHash) external view returns (address); + + /** + * @dev Returns the interface hash for an `interfaceName`, as defined in the + * corresponding + * https://eips.ethereum.org/EIPS/eip-1820#interface-name[section of the EIP]. + */ + function interfaceHash(string calldata interfaceName) external pure returns (bytes32); + + /** + * @notice Updates the cache with whether the contract implements an ERC165 interface or not. + * @param account Address of the contract for which to update the cache. + * @param interfaceId ERC165 interface for which to update the cache. + */ + function updateERC165Cache(address account, bytes4 interfaceId) external; + + /** + * @notice Checks whether a contract implements an ERC165 interface or not. + * If the result is not cached a direct lookup on the contract address is performed. + * If the result is not cached or the cached value is out-of-date, the cache MUST be updated manually by calling + * {updateERC165Cache} with the contract address. + * @param account Address of the contract to check. + * @param interfaceId ERC165 interface to check. + * @return True if `account` implements `interfaceId`, false otherwise. + */ + function implementsERC165Interface(address account, bytes4 interfaceId) external view returns (bool); + + /** + * @notice Checks whether a contract implements an ERC165 interface or not without using nor updating the cache. + * @param account Address of the contract to check. + * @param interfaceId ERC165 interface to check. + * @return True if `account` implements `interfaceId`, false otherwise. + */ + function implementsERC165InterfaceNoCache(address account, bytes4 interfaceId) external view returns (bool); + + event InterfaceImplementerSet(address indexed account, bytes32 indexed interfaceHash, address indexed implementer); + + event ManagerChanged(address indexed account, address indexed newManager); +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/Math.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/Math.sol new file mode 100644 index 000000000..cbb1f7e70 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/Math.sol @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/math/Math.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Standard math utilities missing in the Solidity language. + */ +library Math { + /** + * @dev Returns the largest of two numbers. + */ + function max(uint256 a, uint256 b) internal pure returns (uint256) { + return a >= b ? a : b; + } + + /** + * @dev Returns the smallest of two numbers. + */ + function min(uint256 a, uint256 b) internal pure returns (uint256) { + return a < b ? a : b; + } + + /** + * @dev Returns the average of two numbers. The result is rounded towards + * zero. + */ + function average(uint256 a, uint256 b) internal pure returns (uint256) { + // (a + b) / 2 can overflow. + return (a & b) + (a ^ b) / 2; + } + + /** + * @dev Returns the ceiling of the division of two numbers. + * + * This differs from standard division with `/` in that it rounds up instead + * of rounding down. + */ + function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) { + // (a + b - 1) / b can overflow on addition, so we distribute. + return a / b + (a % b == 0 ? 0 : 1); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol new file mode 100644 index 000000000..9877fbb77 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol @@ -0,0 +1,241 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/math/SafeCast.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow + * checks. + * + * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can + * easily result in undesired exploitation or bugs, since developers usually + * assume that overflows raise errors. `SafeCast` restores this intuition by + * reverting the transaction when such an operation overflows. + * + * Using this library instead of the unchecked operations eliminates an entire + * class of bugs, so it's recommended to use it always. + * + * Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing + * all math on `uint256` and `int256` and then downcasting. + */ +library SafeCast { + /** + * @dev Returns the downcasted uint224 from uint256, reverting on + * overflow (when the input is greater than largest uint224). + * + * Counterpart to Solidity's `uint224` operator. + * + * Requirements: + * + * - input must fit into 224 bits + */ + function toUint224(uint256 value) internal pure returns (uint224) { + require(value <= type(uint224).max, "SafeCast: value doesn't fit in 224 bits"); + return uint224(value); + } + + /** + * @dev Returns the downcasted uint128 from uint256, reverting on + * overflow (when the input is greater than largest uint128). + * + * Counterpart to Solidity's `uint128` operator. + * + * Requirements: + * + * - input must fit into 128 bits + */ + function toUint128(uint256 value) internal pure returns (uint128) { + require(value <= type(uint128).max, "SafeCast: value doesn't fit in 128 bits"); + return uint128(value); + } + + /** + * @dev Returns the downcasted uint96 from uint256, reverting on + * overflow (when the input is greater than largest uint96). + * + * Counterpart to Solidity's `uint96` operator. + * + * Requirements: + * + * - input must fit into 96 bits + */ + function toUint96(uint256 value) internal pure returns (uint96) { + require(value <= type(uint96).max, "SafeCast: value doesn't fit in 96 bits"); + return uint96(value); + } + + /** + * @dev Returns the downcasted uint64 from uint256, reverting on + * overflow (when the input is greater than largest uint64). + * + * Counterpart to Solidity's `uint64` operator. + * + * Requirements: + * + * - input must fit into 64 bits + */ + function toUint64(uint256 value) internal pure returns (uint64) { + require(value <= type(uint64).max, "SafeCast: value doesn't fit in 64 bits"); + return uint64(value); + } + + /** + * @dev Returns the downcasted uint32 from uint256, reverting on + * overflow (when the input is greater than largest uint32). + * + * Counterpart to Solidity's `uint32` operator. + * + * Requirements: + * + * - input must fit into 32 bits + */ + function toUint32(uint256 value) internal pure returns (uint32) { + require(value <= type(uint32).max, "SafeCast: value doesn't fit in 32 bits"); + return uint32(value); + } + + /** + * @dev Returns the downcasted uint16 from uint256, reverting on + * overflow (when the input is greater than largest uint16). + * + * Counterpart to Solidity's `uint16` operator. + * + * Requirements: + * + * - input must fit into 16 bits + */ + function toUint16(uint256 value) internal pure returns (uint16) { + require(value <= type(uint16).max, "SafeCast: value doesn't fit in 16 bits"); + return uint16(value); + } + + /** + * @dev Returns the downcasted uint8 from uint256, reverting on + * overflow (when the input is greater than largest uint8). + * + * Counterpart to Solidity's `uint8` operator. + * + * Requirements: + * + * - input must fit into 8 bits. + */ + function toUint8(uint256 value) internal pure returns (uint8) { + require(value <= type(uint8).max, "SafeCast: value doesn't fit in 8 bits"); + return uint8(value); + } + + /** + * @dev Converts a signed int256 into an unsigned uint256. + * + * Requirements: + * + * - input must be greater than or equal to 0. + */ + function toUint256(int256 value) internal pure returns (uint256) { + require(value >= 0, "SafeCast: value must be positive"); + return uint256(value); + } + + /** + * @dev Returns the downcasted int128 from int256, reverting on + * overflow (when the input is less than smallest int128 or + * greater than largest int128). + * + * Counterpart to Solidity's `int128` operator. + * + * Requirements: + * + * - input must fit into 128 bits + * + * _Available since v3.1._ + */ + function toInt128(int256 value) internal pure returns (int128) { + require(value >= type(int128).min && value <= type(int128).max, "SafeCast: value doesn't fit in 128 bits"); + return int128(value); + } + + /** + * @dev Returns the downcasted int64 from int256, reverting on + * overflow (when the input is less than smallest int64 or + * greater than largest int64). + * + * Counterpart to Solidity's `int64` operator. + * + * Requirements: + * + * - input must fit into 64 bits + * + * _Available since v3.1._ + */ + function toInt64(int256 value) internal pure returns (int64) { + require(value >= type(int64).min && value <= type(int64).max, "SafeCast: value doesn't fit in 64 bits"); + return int64(value); + } + + /** + * @dev Returns the downcasted int32 from int256, reverting on + * overflow (when the input is less than smallest int32 or + * greater than largest int32). + * + * Counterpart to Solidity's `int32` operator. + * + * Requirements: + * + * - input must fit into 32 bits + * + * _Available since v3.1._ + */ + function toInt32(int256 value) internal pure returns (int32) { + require(value >= type(int32).min && value <= type(int32).max, "SafeCast: value doesn't fit in 32 bits"); + return int32(value); + } + + /** + * @dev Returns the downcasted int16 from int256, reverting on + * overflow (when the input is less than smallest int16 or + * greater than largest int16). + * + * Counterpart to Solidity's `int16` operator. + * + * Requirements: + * + * - input must fit into 16 bits + * + * _Available since v3.1._ + */ + function toInt16(int256 value) internal pure returns (int16) { + require(value >= type(int16).min && value <= type(int16).max, "SafeCast: value doesn't fit in 16 bits"); + return int16(value); + } + + /** + * @dev Returns the downcasted int8 from int256, reverting on + * overflow (when the input is less than smallest int8 or + * greater than largest int8). + * + * Counterpart to Solidity's `int8` operator. + * + * Requirements: + * + * - input must fit into 8 bits. + * + * _Available since v3.1._ + */ + function toInt8(int256 value) internal pure returns (int8) { + require(value >= type(int8).min && value <= type(int8).max, "SafeCast: value doesn't fit in 8 bits"); + return int8(value); + } + + /** + * @dev Converts an unsigned uint256 into a signed int256. + * + * Requirements: + * + * - input must be less than or equal to maxInt256. + */ + function toInt256(uint256 value) internal pure returns (int256) { + // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive + require(value <= uint256(type(int256).max), "SafeCast: value doesn't fit in an int256"); + return int256(value); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol new file mode 100644 index 000000000..36e74cf44 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol @@ -0,0 +1,227 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/math/SafeMath.sol) + +pragma solidity ^0.8.0; + +// CAUTION +// This version of SafeMath should only be used with Solidity 0.8 or later, +// because it relies on the compiler's built in overflow checks. + +/** + * @dev Wrappers over Solidity's arithmetic operations. + * + * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler + * now has built in overflow checking. + */ +library SafeMath { + /** + * @dev Returns the addition of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + uint256 c = a + b; + if (c < a) return (false, 0); + return (true, c); + } + } + + /** + * @dev Returns the substraction of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b > a) return (false, 0); + return (true, a - b); + } + } + + /** + * @dev Returns the multiplication of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) return (true, 0); + uint256 c = a * b; + if (c / a != b) return (false, 0); + return (true, c); + } + } + + /** + * @dev Returns the division of two unsigned integers, with a division by zero flag. + * + * _Available since v3.4._ + */ + function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b == 0) return (false, 0); + return (true, a / b); + } + } + + /** + * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. + * + * _Available since v3.4._ + */ + function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b == 0) return (false, 0); + return (true, a % b); + } + } + + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint256 a, uint256 b) internal pure returns (uint256) { + return a + b; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + return a - b; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint256 a, uint256 b) internal pure returns (uint256) { + return a * b; + } + + /** + * @dev Returns the integer division of two unsigned integers, reverting on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint256 a, uint256 b) internal pure returns (uint256) { + return a / b; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * reverting when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint256 a, uint256 b) internal pure returns (uint256) { + return a % b; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {trySub}. + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub( + uint256 a, + uint256 b, + string memory errorMessage + ) internal pure returns (uint256) { + unchecked { + require(b <= a, errorMessage); + return a - b; + } + } + + /** + * @dev Returns the integer division of two unsigned integers, reverting with custom message on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div( + uint256 a, + uint256 b, + string memory errorMessage + ) internal pure returns (uint256) { + unchecked { + require(b > 0, errorMessage); + return a / b; + } + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * reverting with custom message when dividing by zero. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {tryMod}. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod( + uint256 a, + uint256 b, + string memory errorMessage + ) internal pure returns (uint256) { + unchecked { + require(b > 0, errorMessage); + return a % b; + } + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SignedSafeMath.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SignedSafeMath.sol new file mode 100644 index 000000000..1b6a6f00e --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SignedSafeMath.sol @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/math/SignedSafeMath.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Wrappers over Solidity's arithmetic operations. + * + * NOTE: `SignedSafeMath` is no longer needed starting with Solidity 0.8. The compiler + * now has built in overflow checking. + */ +library SignedSafeMath { + /** + * @dev Returns the multiplication of two signed integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(int256 a, int256 b) internal pure returns (int256) { + return a * b; + } + + /** + * @dev Returns the integer division of two signed integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(int256 a, int256 b) internal pure returns (int256) { + return a / b; + } + + /** + * @dev Returns the subtraction of two signed integers, reverting on + * overflow. + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(int256 a, int256 b) internal pure returns (int256) { + return a - b; + } + + /** + * @dev Returns the addition of two signed integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(int256 a, int256 b) internal pure returns (int256) { + return a + b; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol new file mode 100644 index 000000000..8d160580f --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/structs/BitMaps.sol) +pragma solidity ^0.8.0; + +/** + * @dev Library for managing uint256 to bool mapping in a compact and efficient way, providing the keys are sequential. + * Largelly inspired by Uniswap's https://github.com/Uniswap/merkle-distributor/blob/master/contracts/MerkleDistributor.sol[merkle-distributor]. + */ +library BitMaps { + struct BitMap { + mapping(uint256 => uint256) _data; + } + + /** + * @dev Returns whether the bit at `index` is set. + */ + function get(BitMap storage bitmap, uint256 index) internal view returns (bool) { + uint256 bucket = index >> 8; + uint256 mask = 1 << (index & 0xff); + return bitmap._data[bucket] & mask != 0; + } + + /** + * @dev Sets the bit at `index` to the boolean `value`. + */ + function setTo( + BitMap storage bitmap, + uint256 index, + bool value + ) internal { + if (value) { + set(bitmap, index); + } else { + unset(bitmap, index); + } + } + + /** + * @dev Sets the bit at `index`. + */ + function set(BitMap storage bitmap, uint256 index) internal { + uint256 bucket = index >> 8; + uint256 mask = 1 << (index & 0xff); + bitmap._data[bucket] |= mask; + } + + /** + * @dev Unsets the bit at `index`. + */ + function unset(BitMap storage bitmap, uint256 index) internal { + uint256 bucket = index >> 8; + uint256 mask = 1 << (index & 0xff); + bitmap._data[bucket] &= ~mask; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol new file mode 100644 index 000000000..2fd1905e6 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol @@ -0,0 +1,240 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/structs/EnumerableMap.sol) + +pragma solidity ^0.8.0; + +import "./EnumerableSet.sol"; + +/** + * @dev Library for managing an enumerable variant of Solidity's + * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`] + * type. + * + * Maps have the following properties: + * + * - Entries are added, removed, and checked for existence in constant time + * (O(1)). + * - Entries are enumerated in O(n). No guarantees are made on the ordering. + * + * ``` + * contract Example { + * // Add the library methods + * using EnumerableMap for EnumerableMap.UintToAddressMap; + * + * // Declare a set state variable + * EnumerableMap.UintToAddressMap private myMap; + * } + * ``` + * + * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are + * supported. + */ +library EnumerableMap { + using EnumerableSet for EnumerableSet.Bytes32Set; + + // To implement this library for multiple types with as little code + // repetition as possible, we write it in terms of a generic Map type with + // bytes32 keys and values. + // The Map implementation uses private functions, and user-facing + // implementations (such as Uint256ToAddressMap) are just wrappers around + // the underlying Map. + // This means that we can only create new EnumerableMaps for types that fit + // in bytes32. + + struct Map { + // Storage of keys + EnumerableSet.Bytes32Set _keys; + mapping(bytes32 => bytes32) _values; + } + + /** + * @dev Adds a key-value pair to a map, or updates the value for an existing + * key. O(1). + * + * Returns true if the key was added to the map, that is if it was not + * already present. + */ + function _set( + Map storage map, + bytes32 key, + bytes32 value + ) private returns (bool) { + map._values[key] = value; + return map._keys.add(key); + } + + /** + * @dev Removes a key-value pair from a map. O(1). + * + * Returns true if the key was removed from the map, that is if it was present. + */ + function _remove(Map storage map, bytes32 key) private returns (bool) { + delete map._values[key]; + return map._keys.remove(key); + } + + /** + * @dev Returns true if the key is in the map. O(1). + */ + function _contains(Map storage map, bytes32 key) private view returns (bool) { + return map._keys.contains(key); + } + + /** + * @dev Returns the number of key-value pairs in the map. O(1). + */ + function _length(Map storage map) private view returns (uint256) { + return map._keys.length(); + } + + /** + * @dev Returns the key-value pair stored at position `index` in the map. O(1). + * + * Note that there are no guarantees on the ordering of entries inside the + * array, and it may change when more entries are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) { + bytes32 key = map._keys.at(index); + return (key, map._values[key]); + } + + /** + * @dev Tries to returns the value associated with `key`. O(1). + * Does not revert if `key` is not in the map. + */ + function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) { + bytes32 value = map._values[key]; + if (value == bytes32(0)) { + return (_contains(map, key), bytes32(0)); + } else { + return (true, value); + } + } + + /** + * @dev Returns the value associated with `key`. O(1). + * + * Requirements: + * + * - `key` must be in the map. + */ + function _get(Map storage map, bytes32 key) private view returns (bytes32) { + bytes32 value = map._values[key]; + require(value != 0 || _contains(map, key), "EnumerableMap: nonexistent key"); + return value; + } + + /** + * @dev Same as {_get}, with a custom error message when `key` is not in the map. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {_tryGet}. + */ + function _get( + Map storage map, + bytes32 key, + string memory errorMessage + ) private view returns (bytes32) { + bytes32 value = map._values[key]; + require(value != 0 || _contains(map, key), errorMessage); + return value; + } + + // UintToAddressMap + + struct UintToAddressMap { + Map _inner; + } + + /** + * @dev Adds a key-value pair to a map, or updates the value for an existing + * key. O(1). + * + * Returns true if the key was added to the map, that is if it was not + * already present. + */ + function set( + UintToAddressMap storage map, + uint256 key, + address value + ) internal returns (bool) { + return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value)))); + } + + /** + * @dev Removes a value from a set. O(1). + * + * Returns true if the key was removed from the map, that is if it was present. + */ + function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) { + return _remove(map._inner, bytes32(key)); + } + + /** + * @dev Returns true if the key is in the map. O(1). + */ + function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) { + return _contains(map._inner, bytes32(key)); + } + + /** + * @dev Returns the number of elements in the map. O(1). + */ + function length(UintToAddressMap storage map) internal view returns (uint256) { + return _length(map._inner); + } + + /** + * @dev Returns the element stored at position `index` in the set. O(1). + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) { + (bytes32 key, bytes32 value) = _at(map._inner, index); + return (uint256(key), address(uint160(uint256(value)))); + } + + /** + * @dev Tries to returns the value associated with `key`. O(1). + * Does not revert if `key` is not in the map. + * + * _Available since v3.4._ + */ + function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) { + (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key)); + return (success, address(uint160(uint256(value)))); + } + + /** + * @dev Returns the value associated with `key`. O(1). + * + * Requirements: + * + * - `key` must be in the map. + */ + function get(UintToAddressMap storage map, uint256 key) internal view returns (address) { + return address(uint160(uint256(_get(map._inner, bytes32(key))))); + } + + /** + * @dev Same as {get}, with a custom error message when `key` is not in the map. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {tryGet}. + */ + function get( + UintToAddressMap storage map, + uint256 key, + string memory errorMessage + ) internal view returns (address) { + return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage)))); + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol new file mode 100644 index 000000000..4cb9aeb67 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol @@ -0,0 +1,357 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts v4.4.0 (utils/structs/EnumerableSet.sol) + +pragma solidity ^0.8.0; + +/** + * @dev Library for managing + * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive + * types. + * + * Sets have the following properties: + * + * - Elements are added, removed, and checked for existence in constant time + * (O(1)). + * - Elements are enumerated in O(n). No guarantees are made on the ordering. + * + * ``` + * contract Example { + * // Add the library methods + * using EnumerableSet for EnumerableSet.AddressSet; + * + * // Declare a set state variable + * EnumerableSet.AddressSet private mySet; + * } + * ``` + * + * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) + * and `uint256` (`UintSet`) are supported. + */ +library EnumerableSet { + // To implement this library for multiple types with as little code + // repetition as possible, we write it in terms of a generic Set type with + // bytes32 values. + // The Set implementation uses private functions, and user-facing + // implementations (such as AddressSet) are just wrappers around the + // underlying Set. + // This means that we can only create new EnumerableSets for types that fit + // in bytes32. + + struct Set { + // Storage of set values + bytes32[] _values; + // Position of the value in the `values` array, plus 1 because index 0 + // means a value is not in the set. + mapping(bytes32 => uint256) _indexes; + } + + /** + * @dev Add a value to a set. O(1). + * + * Returns true if the value was added to the set, that is if it was not + * already present. + */ + function _add(Set storage set, bytes32 value) private returns (bool) { + if (!_contains(set, value)) { + set._values.push(value); + // The value is stored at length-1, but we add 1 to all indexes + // and use 0 as a sentinel value + set._indexes[value] = set._values.length; + return true; + } else { + return false; + } + } + + /** + * @dev Removes a value from a set. O(1). + * + * Returns true if the value was removed from the set, that is if it was + * present. + */ + function _remove(Set storage set, bytes32 value) private returns (bool) { + // We read and store the value's index to prevent multiple reads from the same storage slot + uint256 valueIndex = set._indexes[value]; + + if (valueIndex != 0) { + // Equivalent to contains(set, value) + // To delete an element from the _values array in O(1), we swap the element to delete with the last one in + // the array, and then remove the last element (sometimes called as 'swap and pop'). + // This modifies the order of the array, as noted in {at}. + + uint256 toDeleteIndex = valueIndex - 1; + uint256 lastIndex = set._values.length - 1; + + if (lastIndex != toDeleteIndex) { + bytes32 lastvalue = set._values[lastIndex]; + + // Move the last value to the index where the value to delete is + set._values[toDeleteIndex] = lastvalue; + // Update the index for the moved value + set._indexes[lastvalue] = valueIndex; // Replace lastvalue's index to valueIndex + } + + // Delete the slot where the moved value was stored + set._values.pop(); + + // Delete the index for the deleted slot + delete set._indexes[value]; + + return true; + } else { + return false; + } + } + + /** + * @dev Returns true if the value is in the set. O(1). + */ + function _contains(Set storage set, bytes32 value) private view returns (bool) { + return set._indexes[value] != 0; + } + + /** + * @dev Returns the number of values on the set. O(1). + */ + function _length(Set storage set) private view returns (uint256) { + return set._values.length; + } + + /** + * @dev Returns the value stored at position `index` in the set. O(1). + * + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function _at(Set storage set, uint256 index) private view returns (bytes32) { + return set._values[index]; + } + + /** + * @dev Return the entire set in an array + * + * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed + * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that + * this function has an unbounded cost, and using it as part of a state-changing function may render the function + * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. + */ + function _values(Set storage set) private view returns (bytes32[] memory) { + return set._values; + } + + // Bytes32Set + + struct Bytes32Set { + Set _inner; + } + + /** + * @dev Add a value to a set. O(1). + * + * Returns true if the value was added to the set, that is if it was not + * already present. + */ + function add(Bytes32Set storage set, bytes32 value) internal returns (bool) { + return _add(set._inner, value); + } + + /** + * @dev Removes a value from a set. O(1). + * + * Returns true if the value was removed from the set, that is if it was + * present. + */ + function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) { + return _remove(set._inner, value); + } + + /** + * @dev Returns true if the value is in the set. O(1). + */ + function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) { + return _contains(set._inner, value); + } + + /** + * @dev Returns the number of values in the set. O(1). + */ + function length(Bytes32Set storage set) internal view returns (uint256) { + return _length(set._inner); + } + + /** + * @dev Returns the value stored at position `index` in the set. O(1). + * + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) { + return _at(set._inner, index); + } + + /** + * @dev Return the entire set in an array + * + * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed + * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that + * this function has an unbounded cost, and using it as part of a state-changing function may render the function + * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. + */ + function values(Bytes32Set storage set) internal view returns (bytes32[] memory) { + return _values(set._inner); + } + + // AddressSet + + struct AddressSet { + Set _inner; + } + + /** + * @dev Add a value to a set. O(1). + * + * Returns true if the value was added to the set, that is if it was not + * already present. + */ + function add(AddressSet storage set, address value) internal returns (bool) { + return _add(set._inner, bytes32(uint256(uint160(value)))); + } + + /** + * @dev Removes a value from a set. O(1). + * + * Returns true if the value was removed from the set, that is if it was + * present. + */ + function remove(AddressSet storage set, address value) internal returns (bool) { + return _remove(set._inner, bytes32(uint256(uint160(value)))); + } + + /** + * @dev Returns true if the value is in the set. O(1). + */ + function contains(AddressSet storage set, address value) internal view returns (bool) { + return _contains(set._inner, bytes32(uint256(uint160(value)))); + } + + /** + * @dev Returns the number of values in the set. O(1). + */ + function length(AddressSet storage set) internal view returns (uint256) { + return _length(set._inner); + } + + /** + * @dev Returns the value stored at position `index` in the set. O(1). + * + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function at(AddressSet storage set, uint256 index) internal view returns (address) { + return address(uint160(uint256(_at(set._inner, index)))); + } + + /** + * @dev Return the entire set in an array + * + * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed + * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that + * this function has an unbounded cost, and using it as part of a state-changing function may render the function + * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. + */ + function values(AddressSet storage set) internal view returns (address[] memory) { + bytes32[] memory store = _values(set._inner); + address[] memory result; + + assembly { + result := store + } + + return result; + } + + // UintSet + + struct UintSet { + Set _inner; + } + + /** + * @dev Add a value to a set. O(1). + * + * Returns true if the value was added to the set, that is if it was not + * already present. + */ + function add(UintSet storage set, uint256 value) internal returns (bool) { + return _add(set._inner, bytes32(value)); + } + + /** + * @dev Removes a value from a set. O(1). + * + * Returns true if the value was removed from the set, that is if it was + * present. + */ + function remove(UintSet storage set, uint256 value) internal returns (bool) { + return _remove(set._inner, bytes32(value)); + } + + /** + * @dev Returns true if the value is in the set. O(1). + */ + function contains(UintSet storage set, uint256 value) internal view returns (bool) { + return _contains(set._inner, bytes32(value)); + } + + /** + * @dev Returns the number of values on the set. O(1). + */ + function length(UintSet storage set) internal view returns (uint256) { + return _length(set._inner); + } + + /** + * @dev Returns the value stored at position `index` in the set. O(1). + * + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function at(UintSet storage set, uint256 index) internal view returns (uint256) { + return uint256(_at(set._inner, index)); + } + + /** + * @dev Return the entire set in an array + * + * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed + * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that + * this function has an unbounded cost, and using it as part of a state-changing function may render the function + * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. + */ + function values(UintSet storage set) internal view returns (uint256[] memory) { + bytes32[] memory store = _values(set._inner); + uint256[] memory result; + + assembly { + result := store + } + + return result; + } +} diff --git a/tests/e2e/compilation/test_data/test_node_modules/package.json b/tests/e2e/compilation/test_data/test_node_modules/package.json new file mode 100644 index 000000000..8ca261783 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_node_modules/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "@openzeppelin/contracts": "^4.4.0", + "hardhat": "^2.7.0" + } +} diff --git a/tests/e2e/compilation/test_data/test_source_unit/README.md b/tests/e2e/compilation/test_data/test_source_unit/README.md new file mode 100644 index 000000000..9cf3657e0 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_source_unit/README.md @@ -0,0 +1,3 @@ +# README + +Before using this project, run `forge init --no-git --no-commit --force` to initialize submodules diff --git a/tests/e2e/compilation/test_data/test_source_unit/foundry.toml b/tests/e2e/compilation/test_data/test_source_unit/foundry.toml new file mode 100644 index 000000000..e6810b2b5 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_source_unit/foundry.toml @@ -0,0 +1,6 @@ +[profile.default] +src = 'src' +out = 'out' +libs = ['lib'] + +# See more config options https://github.com/foundry-rs/foundry/tree/master/config \ No newline at end of file diff --git a/tests/e2e/compilation/test_data/test_source_unit/script/Counter.s.sol b/tests/e2e/compilation/test_data/test_source_unit/script/Counter.s.sol new file mode 100644 index 000000000..0e546aba3 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_source_unit/script/Counter.s.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import "forge-std/Script.sol"; + +contract CounterScript is Script { + function setUp() public {} + + function run() public { + vm.broadcast(); + } +} diff --git a/tests/e2e/compilation/test_data/test_source_unit/src/Counter.sol b/tests/e2e/compilation/test_data/test_source_unit/src/Counter.sol new file mode 100644 index 000000000..aded7997b --- /dev/null +++ b/tests/e2e/compilation/test_data/test_source_unit/src/Counter.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +contract Counter { + uint256 public number; + + function setNumber(uint256 newNumber) public { + number = newNumber; + } + + function increment() public { + number++; + } +} diff --git a/tests/e2e/compilation/test_data/test_source_unit/src/Counter2.sol b/tests/e2e/compilation/test_data/test_source_unit/src/Counter2.sol new file mode 100644 index 000000000..fa830a446 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_source_unit/src/Counter2.sol @@ -0,0 +1,5 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +contract Counter { +} diff --git a/tests/e2e/compilation/test_data/test_source_unit/test/Counter.t.sol b/tests/e2e/compilation/test_data/test_source_unit/test/Counter.t.sol new file mode 100644 index 000000000..30235e8a8 --- /dev/null +++ b/tests/e2e/compilation/test_data/test_source_unit/test/Counter.t.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import "forge-std/Test.sol"; +import "../src/Counter.sol"; + +contract CounterTest is Test { + Counter public counter; + + function setUp() public { + counter = new Counter(); + counter.setNumber(0); + } + + function testIncrement() public { + counter.increment(); + assertEq(counter.number(), 1); + } + + function testSetNumber(uint256 x) public { + counter.setNumber(x); + assertEq(counter.number(), x); + } +} diff --git a/tests/e2e/compilation/test_resolution.py b/tests/e2e/compilation/test_resolution.py new file mode 100644 index 000000000..738887045 --- /dev/null +++ b/tests/e2e/compilation/test_resolution.py @@ -0,0 +1,46 @@ +from pathlib import Path +import pytest + +from crytic_compile import CryticCompile +from crytic_compile.platform.solc_standard_json import SolcStandardJson +from solc_select import solc_select + +from slither import Slither + +from tests.utils import _run_all_detectors + + +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" + +hardhat_available = Path(TEST_DATA_DIR, "test_node_modules/node_modules/hardhat").exists() + + +@pytest.mark.skipif(not hardhat_available, reason="requires Hardhat and project setup") +def test_node_modules() -> None: + # hardhat must have been installed in tests/test_node_modules + # For the CI its done through the github action config + + slither = Slither(TEST_DATA_DIR, "test_node_modules") + _run_all_detectors(slither) + + +def test_contract_name_collisions() -> None: + solc_select.switch_global_version("0.8.0", always_install=True) + standard_json = SolcStandardJson() + standard_json.add_source_file( + Path(TEST_DATA_DIR, "test_contract_name_collisions", "a.sol").as_posix() + ) + standard_json.add_source_file( + Path(TEST_DATA_DIR, "test_contract_name_collisions", "b.sol").as_posix() + ) + + compilation = CryticCompile(standard_json) + slither = Slither(compilation) + + _run_all_detectors(slither) + + +def test_cycle() -> None: + solc_select.switch_global_version("0.8.0", always_install=True) + slither = Slither(Path(TEST_DATA_DIR, "test_cyclic_import", "a.sol").as_posix()) + _run_all_detectors(slither) diff --git a/tests/e2e/compilation/test_source_unit.py b/tests/e2e/compilation/test_source_unit.py new file mode 100644 index 000000000..dafd146dc --- /dev/null +++ b/tests/e2e/compilation/test_source_unit.py @@ -0,0 +1,46 @@ +from pathlib import Path +import shutil + +import pytest +from slither import Slither + +# NB: read tests/source_unit/README.md for setup before using this test + + +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" + +foundry_available = shutil.which("forge") is not None +project_ready = Path(TEST_DATA_DIR, "test_source_unit/lib/forge-std").exists() + + +@pytest.mark.skipif( + not foundry_available or not project_ready, reason="requires Foundry and project setup" +) +def test_contract_info() -> None: + slither = Slither(Path(TEST_DATA_DIR, "test_source_unit").as_posix()) + + assert len(slither.compilation_units) == 1 + compilation_unit = slither.compilation_units[0] + + for source_unit in compilation_unit.crytic_compile_compilation_unit.source_units.values(): + source_unit.remove_metadata() + + counter_sol = compilation_unit.crytic_compile.filename_lookup( + Path(TEST_DATA_DIR, "test_source_unit/src/Counter.sol").as_posix() + ) + assert ( + compilation_unit.scopes[counter_sol].bytecode_init( + compilation_unit.crytic_compile_compilation_unit, "Counter" + ) + == "608060405234801561001057600080fd5b5060f78061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146053578063d09de08a14606d575b600080fd5b6051604c3660046083565b600055565b005b605b60005481565b60405190815260200160405180910390f35b6051600080549080607c83609b565b9190505550565b600060208284031215609457600080fd5b5035919050565b60006001820160ba57634e487b7160e01b600052601160045260246000fd5b506001019056fe" + ) + + counter2_sol = compilation_unit.crytic_compile.filename_lookup( + "tests/source_unit/src/Counter2.sol" + ) + assert ( + compilation_unit.scopes[counter2_sol].bytecode_init( + compilation_unit.crytic_compile_compilation_unit, "Counter" + ) + == "6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfe" + ) From bfe38cfd79eb0fdf34beefd612a387c666f16874 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 20 Mar 2023 16:07:35 -0500 Subject: [PATCH 101/193] add unit tests --- tests/unit/core/test_arithmetic.py | 17 + tests/unit/core/test_code_comments.py | 60 + tests/unit/core/test_constant_folding.py | 106 ++ tests/unit/core/test_contract_declaration.py | 43 + .../core/test_data/arithmetic_usage/test.sol | 29 + tests/unit/core/test_data/complex_func.sol | 88 ++ .../constant_folding_binop.sol | 14 + .../constant_folding_rational.sol | 9 + .../constant_folding_unary.sol | 7 + .../contract_declaration/abstract.sol | 5 + .../implicit_abstract.sol | 5 + .../contract_declaration/private_variable.sol | 13 + .../custom_comments/contract_comment.sol | 7 + .../test_data/custom_comments/upgrade.sol | 16 + .../unit/core/test_data/deprecated_calls.sol | 27 + .../function_declaration/test_function.sol | 130 ++ .../test_function_reentrant.sol | 36 + .../unit/core/test_data/inheritance_graph.sol | 100 ++ tests/unit/core/test_data/source_mapping.sol | 22 + .../ReferencesUserDefinedAliases.sol | 19 + .../ReferencesUserDefinedTypesCasting.sol | 19 + .../test_data/src_mapping/inheritance.sol | 35 + .../storage_layout/StorageLayout.abi | 1 + .../storage_layout/StorageLayout.bin | 1 + .../storage_layout/TEST_storage_layout.json | 576 +++++++++ .../storage_layout/storage_layout-0.8.10.sol | 74 ++ tests/unit/core/test_data/taint_mapping.sol | 18 + .../test_data/using_for/using-for-3-0.8.0.sol | 27 + .../test_data/using_for/using-for-4-0.8.0.sol | 25 + .../using-for-alias-contract-0.8.0.sol | 14 + .../using_for/using-for-alias-dep1.sol | 11 + .../using_for/using-for-alias-dep2.sol | 9 + .../using-for-alias-top-level-0.8.0.sol | 15 + .../using_for/using-for-in-library-0.8.0.sol | 14 + .../src/MyTypeA.sol | 2 + .../src/MyTypeA/Casting.sol | 4 + .../src/MyTypeA/Math.sol | 5 + .../src/MyTypeA/Type.sol | 6 + .../src/MyTypeB.sol | 2 + .../src/MyTypeB/Casting.sol | 4 + .../src/MyTypeB/Math.sol | 6 + .../src/MyTypeB/Type.sol | 6 + .../using_for_global_collision/src/Test.sol | 7 + tests/unit/core/test_function_declaration.py | 305 +++++ tests/unit/core/test_source_mapping.py | 127 ++ tests/unit/core/test_storage_layout.py | 36 + tests/unit/core/test_using_for.py | 95 ++ .../slithir/test_data/operation_reads.sol | 17 + .../slithir/test_data/ternary_expressions.sol | 52 + tests/unit/slithir/test_operation_reads.py | 54 + tests/unit/slithir/test_ssa_generation.py | 1078 +++++++++++++++++ .../unit/slithir/test_ternary_expressions.py | 43 + tests/unit/utils/test_data/functions_ids.sol | 64 + tests/unit/utils/test_data/type_helpers.sol | 12 + tests/unit/utils/test_functions_ids.py | 64 + tests/unit/utils/test_type_helpers.py | 13 + 56 files changed, 3594 insertions(+) create mode 100644 tests/unit/core/test_arithmetic.py create mode 100644 tests/unit/core/test_code_comments.py create mode 100644 tests/unit/core/test_constant_folding.py create mode 100644 tests/unit/core/test_contract_declaration.py create mode 100644 tests/unit/core/test_data/arithmetic_usage/test.sol create mode 100644 tests/unit/core/test_data/complex_func.sol create mode 100644 tests/unit/core/test_data/constant_folding/constant_folding_binop.sol create mode 100644 tests/unit/core/test_data/constant_folding/constant_folding_rational.sol create mode 100644 tests/unit/core/test_data/constant_folding/constant_folding_unary.sol create mode 100644 tests/unit/core/test_data/contract_declaration/abstract.sol create mode 100644 tests/unit/core/test_data/contract_declaration/implicit_abstract.sol create mode 100644 tests/unit/core/test_data/contract_declaration/private_variable.sol create mode 100644 tests/unit/core/test_data/custom_comments/contract_comment.sol create mode 100644 tests/unit/core/test_data/custom_comments/upgrade.sol create mode 100644 tests/unit/core/test_data/deprecated_calls.sol create mode 100644 tests/unit/core/test_data/function_declaration/test_function.sol create mode 100644 tests/unit/core/test_data/function_declaration/test_function_reentrant.sol create mode 100644 tests/unit/core/test_data/inheritance_graph.sol create mode 100644 tests/unit/core/test_data/source_mapping.sol create mode 100644 tests/unit/core/test_data/src_mapping/ReferencesUserDefinedAliases.sol create mode 100644 tests/unit/core/test_data/src_mapping/ReferencesUserDefinedTypesCasting.sol create mode 100644 tests/unit/core/test_data/src_mapping/inheritance.sol create mode 100644 tests/unit/core/test_data/storage_layout/StorageLayout.abi create mode 100644 tests/unit/core/test_data/storage_layout/StorageLayout.bin create mode 100644 tests/unit/core/test_data/storage_layout/TEST_storage_layout.json create mode 100644 tests/unit/core/test_data/storage_layout/storage_layout-0.8.10.sol create mode 100644 tests/unit/core/test_data/taint_mapping.sol create mode 100644 tests/unit/core/test_data/using_for/using-for-3-0.8.0.sol create mode 100644 tests/unit/core/test_data/using_for/using-for-4-0.8.0.sol create mode 100644 tests/unit/core/test_data/using_for/using-for-alias-contract-0.8.0.sol create mode 100644 tests/unit/core/test_data/using_for/using-for-alias-dep1.sol create mode 100644 tests/unit/core/test_data/using_for/using-for-alias-dep2.sol create mode 100644 tests/unit/core/test_data/using_for/using-for-alias-top-level-0.8.0.sol create mode 100644 tests/unit/core/test_data/using_for/using-for-in-library-0.8.0.sol create mode 100644 tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA.sol create mode 100644 tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA/Casting.sol create mode 100644 tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA/Math.sol create mode 100644 tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA/Type.sol create mode 100644 tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB.sol create mode 100644 tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB/Casting.sol create mode 100644 tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB/Math.sol create mode 100644 tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB/Type.sol create mode 100644 tests/unit/core/test_data/using_for/using_for_global_collision/src/Test.sol create mode 100644 tests/unit/core/test_function_declaration.py create mode 100644 tests/unit/core/test_source_mapping.py create mode 100644 tests/unit/core/test_storage_layout.py create mode 100644 tests/unit/core/test_using_for.py create mode 100644 tests/unit/slithir/test_data/operation_reads.sol create mode 100644 tests/unit/slithir/test_data/ternary_expressions.sol create mode 100644 tests/unit/slithir/test_operation_reads.py create mode 100644 tests/unit/slithir/test_ssa_generation.py create mode 100644 tests/unit/slithir/test_ternary_expressions.py create mode 100644 tests/unit/utils/test_data/functions_ids.sol create mode 100644 tests/unit/utils/test_data/type_helpers.sol create mode 100644 tests/unit/utils/test_functions_ids.py create mode 100644 tests/unit/utils/test_type_helpers.py diff --git a/tests/unit/core/test_arithmetic.py b/tests/unit/core/test_arithmetic.py new file mode 100644 index 000000000..621ff0f94 --- /dev/null +++ b/tests/unit/core/test_arithmetic.py @@ -0,0 +1,17 @@ +from pathlib import Path +from solc_select import solc_select + +from slither import Slither +from slither.utils.arithmetic import unchecked_arithemtic_usage + + +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" / "arithmetic_usage" + + +def test_arithmetic_usage() -> None: + solc_select.switch_global_version("0.8.15", always_install=True) + slither = Slither(Path(TEST_DATA_DIR, "test.sol").as_posix()) + + assert { + f.source_mapping.content_hash for f in unchecked_arithemtic_usage(slither.contracts[0]) + } == {"2b4bc73cf59d486dd9043e840b5028b679354dd9", "e4ecd4d0fda7e762d29aceb8425f2c5d4d0bf962"} diff --git a/tests/unit/core/test_code_comments.py b/tests/unit/core/test_code_comments.py new file mode 100644 index 000000000..01b9ff336 --- /dev/null +++ b/tests/unit/core/test_code_comments.py @@ -0,0 +1,60 @@ +from pathlib import Path +from solc_select import solc_select + +from slither import Slither + + +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" +CUSTOM_COMMENTS_TEST_DATA_DIR = Path(TEST_DATA_DIR, "custom_comments") + + +def test_upgradeable_comments() -> None: + solc_select.switch_global_version("0.8.10", always_install=True) + slither = Slither(Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "upgrade.sol").as_posix()) + compilation_unit = slither.compilation_units[0] + proxy = compilation_unit.get_contract_from_name("Proxy")[0] + + assert proxy.is_upgradeable_proxy + + v0 = compilation_unit.get_contract_from_name("V0")[0] + + assert v0.is_upgradeable + print(v0.upgradeable_version) + assert v0.upgradeable_version == "version-0" + + v1 = compilation_unit.get_contract_from_name("V1")[0] + assert v0.is_upgradeable + assert v1.upgradeable_version == "version_1" + + +def test_contract_comments() -> None: + comments = " @title Test Contract\n @dev Test comment" + + solc_select.switch_global_version("0.8.10", always_install=True) + slither = Slither(Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "contract_comment.sol").as_posix()) + compilation_unit = slither.compilation_units[0] + contract = compilation_unit.get_contract_from_name("A")[0] + + assert contract.comments == comments + + # Old solc versions have a different parsing of comments + # the initial space (after *) is also not kept on every line + comments = "@title Test Contract\n@dev Test comment" + solc_select.switch_global_version("0.5.16", always_install=True) + slither = Slither(Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "contract_comment.sol").as_posix()) + compilation_unit = slither.compilation_units[0] + contract = compilation_unit.get_contract_from_name("A")[0] + + assert contract.comments == comments + + # Test with legacy AST + comments = "@title Test Contract\n@dev Test comment" + solc_select.switch_global_version("0.5.16", always_install=True) + slither = Slither( + Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "contract_comment.sol").as_posix(), + solc_force_legacy_json=True, + ) + compilation_unit = slither.compilation_units[0] + contract = compilation_unit.get_contract_from_name("A")[0] + + assert contract.comments == comments diff --git a/tests/unit/core/test_constant_folding.py b/tests/unit/core/test_constant_folding.py new file mode 100644 index 000000000..eb40a43c0 --- /dev/null +++ b/tests/unit/core/test_constant_folding.py @@ -0,0 +1,106 @@ +from pathlib import Path +from slither import Slither +from slither.visitors.expression.constants_folding import ConstantFolding + +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" +CONSTANT_FOLDING_TEST_ROOT = Path(TEST_DATA_DIR, "constant_folding") + + +def test_constant_folding_unary(): + file = Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_unary.sol").as_posix() + Slither(file) + + +def test_constant_folding_rational(): + s = Slither(Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_rational.sol").as_posix()) + contract = s.get_contract_from_name("C")[0] + + variable_a = contract.get_state_variable_from_name("a") + assert str(variable_a.type) == "uint256" + assert str(ConstantFolding(variable_a.expression, "uint256").result()) == "10" + + variable_b = contract.get_state_variable_from_name("b") + assert str(variable_b.type) == "int128" + assert str(ConstantFolding(variable_b.expression, "int128").result()) == "2" + + variable_c = contract.get_state_variable_from_name("c") + assert str(variable_c.type) == "int64" + assert str(ConstantFolding(variable_c.expression, "int64").result()) == "3" + + variable_d = contract.get_state_variable_from_name("d") + assert str(variable_d.type) == "int256" + assert str(ConstantFolding(variable_d.expression, "int256").result()) == "1500" + + variable_e = contract.get_state_variable_from_name("e") + assert str(variable_e.type) == "uint256" + assert ( + str(ConstantFolding(variable_e.expression, "uint256").result()) + == "57896044618658097711785492504343953926634992332820282019728792003956564819968" + ) + + variable_f = contract.get_state_variable_from_name("f") + assert str(variable_f.type) == "uint256" + assert ( + str(ConstantFolding(variable_f.expression, "uint256").result()) + == "115792089237316195423570985008687907853269984665640564039457584007913129639935" + ) + + variable_g = contract.get_state_variable_from_name("g") + assert str(variable_g.type) == "int64" + assert str(ConstantFolding(variable_g.expression, "int64").result()) == "-7" + + +def test_constant_folding_binary_expressions(): + sl = Slither(Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_binop.sol").as_posix()) + contract = sl.get_contract_from_name("BinOp")[0] + + variable_a = contract.get_state_variable_from_name("a") + assert str(variable_a.type) == "uint256" + assert str(ConstantFolding(variable_a.expression, "uint256").result()) == "0" + + variable_b = contract.get_state_variable_from_name("b") + assert str(variable_b.type) == "uint256" + assert str(ConstantFolding(variable_b.expression, "uint256").result()) == "3" + + variable_c = contract.get_state_variable_from_name("c") + assert str(variable_c.type) == "uint256" + assert str(ConstantFolding(variable_c.expression, "uint256").result()) == "3" + + variable_d = contract.get_state_variable_from_name("d") + assert str(variable_d.type) == "bool" + assert str(ConstantFolding(variable_d.expression, "bool").result()) == "False" + + variable_e = contract.get_state_variable_from_name("e") + assert str(variable_e.type) == "bool" + assert str(ConstantFolding(variable_e.expression, "bool").result()) == "False" + + variable_f = contract.get_state_variable_from_name("f") + assert str(variable_f.type) == "bool" + assert str(ConstantFolding(variable_f.expression, "bool").result()) == "True" + + variable_g = contract.get_state_variable_from_name("g") + assert str(variable_g.type) == "bool" + assert str(ConstantFolding(variable_g.expression, "bool").result()) == "False" + + variable_h = contract.get_state_variable_from_name("h") + assert str(variable_h.type) == "bool" + assert str(ConstantFolding(variable_h.expression, "bool").result()) == "False" + + variable_i = contract.get_state_variable_from_name("i") + assert str(variable_i.type) == "bool" + assert str(ConstantFolding(variable_i.expression, "bool").result()) == "True" + + variable_j = contract.get_state_variable_from_name("j") + assert str(variable_j.type) == "bool" + assert str(ConstantFolding(variable_j.expression, "bool").result()) == "False" + + variable_k = contract.get_state_variable_from_name("k") + assert str(variable_k.type) == "bool" + assert str(ConstantFolding(variable_k.expression, "bool").result()) == "True" + + variable_l = contract.get_state_variable_from_name("l") + assert str(variable_l.type) == "uint256" + assert ( + str(ConstantFolding(variable_l.expression, "uint256").result()) + == "115792089237316195423570985008687907853269984665640564039457584007913129639935" + ) diff --git a/tests/unit/core/test_contract_declaration.py b/tests/unit/core/test_contract_declaration.py new file mode 100644 index 000000000..5ca20428d --- /dev/null +++ b/tests/unit/core/test_contract_declaration.py @@ -0,0 +1,43 @@ +import inspect +from pathlib import Path +import pytest + +from crytic_compile import CryticCompile +from crytic_compile.platform.solc_standard_json import SolcStandardJson +from solc_select import solc_select + +from slither import Slither +from slither.core.variables.state_variable import StateVariable +from slither.detectors import all_detectors +from slither.detectors.abstract_detector import AbstractDetector +from slither.slithir.operations import InternalCall, LibraryCall +from slither.utils.arithmetic import unchecked_arithemtic_usage + +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" +CONTRACT_DECL_TEST_ROOT = Path(TEST_DATA_DIR, "contract_declaration") + + +def test_abstract_contract() -> None: + solc_select.switch_global_version("0.8.0", always_install=True) + slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "abstract.sol").as_posix()) + assert not slither.contracts[0].is_fully_implemented + + solc_select.switch_global_version("0.5.0", always_install=True) + slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix()) + assert not slither.contracts[0].is_fully_implemented + + slither = Slither( + Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix(), + solc_force_legacy_json=True, + ) + assert not slither.contracts[0].is_fully_implemented + + +def test_private_variable() -> None: + solc_select.switch_global_version("0.8.15", always_install=True) + slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "private_variable.sol").as_posix()) + contract_c = slither.get_contract_from_name("C")[0] + f = contract_c.functions[0] + var_read = f.variables_read[0] + assert isinstance(var_read, StateVariable) + assert str(var_read.contract) == "B" diff --git a/tests/unit/core/test_data/arithmetic_usage/test.sol b/tests/unit/core/test_data/arithmetic_usage/test.sol new file mode 100644 index 000000000..7bda7e504 --- /dev/null +++ b/tests/unit/core/test_data/arithmetic_usage/test.sol @@ -0,0 +1,29 @@ +function protected(uint a, uint b) returns(uint){ + return (a + b) * (a + b); +} + +function not_protected_asm(uint a, uint b) returns(uint){ + uint c; + assembly{ + c := mul(add(a,b), add(a,b)) + } + return c; +} + +function not_protected_unchecked(uint a, uint b) returns(uint){ + uint c; + unchecked{ + return (a + b) * (a + b); + } + +} + +contract A{ + + function f(uint a, uint b) public{ + protected(a,b); + not_protected_asm(a, b); + not_protected_unchecked(a, b); + } + +} \ No newline at end of file diff --git a/tests/unit/core/test_data/complex_func.sol b/tests/unit/core/test_data/complex_func.sol new file mode 100644 index 000000000..cdb716efd --- /dev/null +++ b/tests/unit/core/test_data/complex_func.sol @@ -0,0 +1,88 @@ +pragma solidity ^0.4.24; + +contract Complex { + int numberOfSides = 7; + string shape; + uint i0 = 0; + uint i1 = 0; + uint i2 = 0; + uint i3 = 0; + uint i4 = 0; + uint i5 = 0; + uint i6 = 0; + uint i7 = 0; + uint i8 = 0; + uint i9 = 0; + uint i10 = 0; + + + function computeShape() external { + if (numberOfSides <= 2) { + shape = "Cant be a shape!"; + } else if (numberOfSides == 3) { + shape = "Triangle"; + } else if (numberOfSides == 4) { + shape = "Square"; + } else if (numberOfSides == 5) { + shape = "Pentagon"; + } else if (numberOfSides == 6) { + shape = "Hexagon"; + } else if (numberOfSides == 7) { + shape = "Heptagon"; + } else if (numberOfSides == 8) { + shape = "Octagon"; + } else if (numberOfSides == 9) { + shape = "Nonagon"; + } else if (numberOfSides == 10) { + shape = "Decagon"; + } else if (numberOfSides == 11) { + shape = "Hendecagon"; + } else { + shape = "Your shape is more than 11 sides."; + } + } + + function complexExternalWrites() external { + Increment test1 = new Increment(); + test1.increaseBy1(); + test1.increaseBy1(); + test1.increaseBy1(); + test1.increaseBy1(); + test1.increaseBy1(); + + Increment test2 = new Increment(); + test2.increaseBy1(); + + address test3 = new Increment(); + test3.call(bytes4(keccak256("increaseBy2()"))); + + address test4 = new Increment(); + test4.call(bytes4(keccak256("increaseBy2()"))); + } + + function complexStateVars() external { + i0 = 1; + i1 = 1; + i2 = 1; + i3 = 1; + i4 = 1; + i5 = 1; + i6 = 1; + i7 = 1; + i8 = 1; + i9 = 1; + i10 = 1; + } +} + +contract Increment { + uint i = 0; + + function increaseBy1() public { + i += 1; + } + + function increaseBy2() public { + i += 2; + } +} \ No newline at end of file diff --git a/tests/unit/core/test_data/constant_folding/constant_folding_binop.sol b/tests/unit/core/test_data/constant_folding/constant_folding_binop.sol new file mode 100644 index 000000000..923418ce7 --- /dev/null +++ b/tests/unit/core/test_data/constant_folding/constant_folding_binop.sol @@ -0,0 +1,14 @@ +contract BinOp { + uint a = 1 & 2; + uint b = 1 ^ 2; + uint c = 1 | 2; + bool d = 2 < 1; + bool e = 1 > 2; + bool f = 1 <= 2; + bool g = 1 >= 2; + bool h = 1 == 2; + bool i = 1 != 2; + bool j = true && false; + bool k = true || false; + uint l = uint(1) - uint(2); +} \ No newline at end of file diff --git a/tests/unit/core/test_data/constant_folding/constant_folding_rational.sol b/tests/unit/core/test_data/constant_folding/constant_folding_rational.sol new file mode 100644 index 000000000..193133824 --- /dev/null +++ b/tests/unit/core/test_data/constant_folding/constant_folding_rational.sol @@ -0,0 +1,9 @@ +contract C { + uint256 constant a = 2.5 + 7 + 0.5; + int128 b = 6 / 3.0; + int64 constant c = 5 * 0.5 + 0.5; + int256 d = 1e3 + 5E2; + uint256 e = 2 ** 255; + uint256 f = 115792089237316195423570985008687907853269984665640564039457584_007_913_129_639_935; + int64 constant g = -7.0; +} \ No newline at end of file diff --git a/tests/unit/core/test_data/constant_folding/constant_folding_unary.sol b/tests/unit/core/test_data/constant_folding/constant_folding_unary.sol new file mode 100644 index 000000000..71c7b3d2e --- /dev/null +++ b/tests/unit/core/test_data/constant_folding/constant_folding_unary.sol @@ -0,0 +1,7 @@ +contract C { + int8 constant a = -7; + function f() public pure { + uint[-a] memory x; + x[0] = 2; + } +} \ No newline at end of file diff --git a/tests/unit/core/test_data/contract_declaration/abstract.sol b/tests/unit/core/test_data/contract_declaration/abstract.sol new file mode 100644 index 000000000..b29f683c4 --- /dev/null +++ b/tests/unit/core/test_data/contract_declaration/abstract.sol @@ -0,0 +1,5 @@ +pragma solidity ^0.8.0; + +abstract contract ExplicitAbstract{ + function f() virtual public; +} diff --git a/tests/unit/core/test_data/contract_declaration/implicit_abstract.sol b/tests/unit/core/test_data/contract_declaration/implicit_abstract.sol new file mode 100644 index 000000000..c46ccd821 --- /dev/null +++ b/tests/unit/core/test_data/contract_declaration/implicit_abstract.sol @@ -0,0 +1,5 @@ +pragma solidity ^0.5.0; + +contract ImplicitAbstract{ + function f() public; +} \ No newline at end of file diff --git a/tests/unit/core/test_data/contract_declaration/private_variable.sol b/tests/unit/core/test_data/contract_declaration/private_variable.sol new file mode 100644 index 000000000..93f4d3dda --- /dev/null +++ b/tests/unit/core/test_data/contract_declaration/private_variable.sol @@ -0,0 +1,13 @@ +contract A{ + uint private v = 10; +} + +contract B{ + uint v = 20; +} + +contract C is B, A{ + function f() public view returns(uint) { + return v; + } +} \ No newline at end of file diff --git a/tests/unit/core/test_data/custom_comments/contract_comment.sol b/tests/unit/core/test_data/custom_comments/contract_comment.sol new file mode 100644 index 000000000..8f0fb5233 --- /dev/null +++ b/tests/unit/core/test_data/custom_comments/contract_comment.sol @@ -0,0 +1,7 @@ +/** + * @title Test Contract + * @dev Test comment + */ +contract A{ + +} \ No newline at end of file diff --git a/tests/unit/core/test_data/custom_comments/upgrade.sol b/tests/unit/core/test_data/custom_comments/upgrade.sol new file mode 100644 index 000000000..96192df0b --- /dev/null +++ b/tests/unit/core/test_data/custom_comments/upgrade.sol @@ -0,0 +1,16 @@ +/// @custom:security isDelegatecallProxy +contract Proxy{ + +} + +/// @custom:security isUpgradeable +/// @custom:version name=version-0 +contract V0{ + +} + +/// @custom:security isUpgradeable +/// @custom:version name=version_1 +contract V1{ + +} \ No newline at end of file diff --git a/tests/unit/core/test_data/deprecated_calls.sol b/tests/unit/core/test_data/deprecated_calls.sol new file mode 100644 index 000000000..6321e4e76 --- /dev/null +++ b/tests/unit/core/test_data/deprecated_calls.sol @@ -0,0 +1,27 @@ +contract ContractWithDeprecatedReferences { + bytes32 globalBlockHash = block.blockhash(0); + + // Deprecated: Change constant -> view + function functionWithDeprecatedThrow() public constant { + // Deprecated: Change msg.gas -> gasleft() + if(msg.gas == msg.value) { + // Deprecated: Change throw -> revert() + throw; + } + } + + // Deprecated: Change constant -> view + function functionWithDeprecatedReferences() public constant { + // Deprecated: Change sha3() -> keccak256() + bytes32 sha3Result = sha3("test deprecated sha3 usage"); + + // Deprecated: Change block.blockhash() -> blockhash() + bytes32 blockHashResult = block.blockhash(0); + + // Deprecated: Change callcode() -> delegatecall() + address(this).callcode(); + + // Deprecated: Change suicide() -> selfdestruct() + suicide(address(0)); + } +} \ No newline at end of file diff --git a/tests/unit/core/test_data/function_declaration/test_function.sol b/tests/unit/core/test_data/function_declaration/test_function.sol new file mode 100644 index 000000000..aca9fc93d --- /dev/null +++ b/tests/unit/core/test_data/function_declaration/test_function.sol @@ -0,0 +1,130 @@ +pragma solidity ^0.6.12; + +// solidity source used by tests/test_function.py. +// tests/test_function.py tests that the functions below get translated into correct +// `slither.core.declarations.Function` objects or its subclasses +// and that these objects behave correctly. + +contract TestFunction { + bool entered = false; + bytes32 public info; + + function external_payable(uint _a) external payable returns (uint) { + return 1; + } + + function public_reenter() public { + msg.sender.call(""); + } + + function public_payable_reenter_send(bool _b) public payable { + msg.sender.call{value: 1}(""); + } + + function external_send(uint8 _c) external { + require(!entered); + entered = true; + msg.sender.call{value: 1}(""); + } + + function internal_assembly(bytes calldata _d) internal returns (uint) { + uint256 chain; + assembly { + chain := chainid() + } + return chain; + } + + fallback() external { + + } + + receive() external payable { + + } + + constructor(address payable _e) public payable { + + } + + function private_view() private view returns (bool) { + return entered; + } + + function public_pure() public pure returns (bool) { + return true; + } +} + +contract TestFunctionCanSendEth { + + function send_direct() internal { + address(1).send(1); + } + + function transfer_direct() internal { + address(1).transfer(1); + } + + function call_direct() internal { + address(1).call{value: 1}(""); + } + + function highlevel_call_direct() internal { + TestFunctionCanSendEthOther(address(5)).i_am_payable{value: 1}(); + } + + function send_via_internal() public { + send_direct(); + } + + function transfer_via_internal() public { + transfer_direct(); + } + + function call_via_internal() public { + call_direct(); + } + + function highlevel_call_via_internal() public { + highlevel_call_direct(); + } + + function send_via_external() public { + TestFunctionCanSendEthOther(address(5)).send_direct(); + } + + function transfer_via_external() public { + TestFunctionCanSendEthOther(address(5)).transfer_direct(); + } + + function call_via_external() public { + TestFunctionCanSendEthOther(address(5)).call_direct(); + } + + function highlevel_call_via_external() public { + TestFunctionCanSendEthOther(address(5)).highlevel_call_direct(); + } +} + +contract TestFunctionCanSendEthOther { + function i_am_payable() external payable { + + } + + function send_direct() external { + address(1).send(1); + } + + function transfer_direct() external { + address(1).transfer(1); + } + + function call_direct() external { + address(1).call{value: 1}(""); + } + + function highlevel_call_direct() external { + TestFunctionCanSendEthOther(address(5)).i_am_payable{value: 1}(); + } +} diff --git a/tests/unit/core/test_data/function_declaration/test_function_reentrant.sol b/tests/unit/core/test_data/function_declaration/test_function_reentrant.sol new file mode 100644 index 000000000..a1a8faa7b --- /dev/null +++ b/tests/unit/core/test_data/function_declaration/test_function_reentrant.sol @@ -0,0 +1,36 @@ +contract TestReentrant{ + + modifier nonReentrant(){ + _; + } + + function is_reentrant() public{ + internal_and_could_be_reentrant(); + internal_and_reentrant(); + } + + function is_non_reentrant() nonReentrant() public{ + internal_and_could_be_reentrant(); + internal_and_not_reentrant2(); + } + + function internal_and_not_reentrant() nonReentrant() internal{ + + } + + function internal_and_not_reentrant2() internal{ + + } + + // Called by a protected and unprotected function + function internal_and_could_be_reentrant() internal{ + + } + + // Called by a protected and unprotected function + function internal_and_reentrant() internal{ + + } + + +} \ No newline at end of file diff --git a/tests/unit/core/test_data/inheritance_graph.sol b/tests/unit/core/test_data/inheritance_graph.sol new file mode 100644 index 000000000..670777583 --- /dev/null +++ b/tests/unit/core/test_data/inheritance_graph.sol @@ -0,0 +1,100 @@ +contract TestContractVar { + +} + +contract A { + uint public public_var = 1; + uint internal private_var = 1; + TestContractVar public public_contract; + TestContractVar internal private_contract; + + uint public shadowed_public_var = 1; + uint internal shadowed_private_var = 1; + TestContractVar public shadowed_public_contract; + TestContractVar internal shadowed_private_contract; + + function getValue() public pure returns (uint) { + return 0; + } + function notRedefined() public returns (uint) { + return getValue(); + } + + modifier testModifier { + assert(true); + _; + } + function testFunction() testModifier public returns (uint) { + return 0; + } +} + +contract B is A { + // This function overshadows A directly, and overshadows C indirectly (via 'G'->'D') + function getValue() public pure returns (uint) { + return 1; + } +} + +contract Good is A, B { + +} + +contract C is A { + + // This function overshadows A directly, and overshadows B indirectly (via 'G') + function getValue() public pure returns (uint) { + return super.getValue() + 1; + } +} + +contract D is B { + // This should overshadow A's definitions. + uint public shadowed_public_var = 2; + uint internal shadowed_private_var = 2; + TestContractVar public shadowed_public_contract; + TestContractVar internal shadowed_private_contract; +} + +contract E { + // Variables cannot indirectly shadow, so this should not be counted. + uint public public_var = 2; + uint internal private_var = 2; + TestContractVar public public_contract; + TestContractVar internal private_contract; + + // This should overshadow A's definition indirectly (via 'G'). + modifier testModifier { + assert(false); + _; + } +} + +contract F is B { + // This should overshadow A's definitions. + uint public shadowed_public_var = 2; + uint internal shadowed_private_var = 2; + TestContractVar public shadowed_public_contract; + TestContractVar internal shadowed_private_contract; + + // This should overshadow B's definition directly, as well as B's and C's indirectly (via 'G') + // (graph only outputs directly if both, so B direct and C indirect should be reported). + function getValue() public pure returns (uint) { + return 1; + } + + // This should indirectly shadow definition in A directly, and E indirectly (via 'G') + modifier testModifier { + assert(false); + _; + } +} + +contract G is B, C, D, E, F { + // This should overshadow definitions in A, D, and F + uint public shadowed_public_var = 3; + uint internal shadowed_private_var = 3; + TestContractVar public shadowed_public_contract; + + // This contract's multiple inheritance chain should cause indirect shadowing (c3 linearization shadowing). +} diff --git a/tests/unit/core/test_data/source_mapping.sol b/tests/unit/core/test_data/source_mapping.sol new file mode 100644 index 000000000..771f2daed --- /dev/null +++ b/tests/unit/core/test_data/source_mapping.sol @@ -0,0 +1,22 @@ +contract A{ + + // ëëëëëëëëëëëëë这这这这这这这这这这 + + address unused; + + + address unused2; + + + // ই এই এই এইই এই এই এইই এই এই এই + + address unused3; + + + address unused4; + + // 这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这 + address used; + + +} diff --git a/tests/unit/core/test_data/src_mapping/ReferencesUserDefinedAliases.sol b/tests/unit/core/test_data/src_mapping/ReferencesUserDefinedAliases.sol new file mode 100644 index 000000000..68fac48af --- /dev/null +++ b/tests/unit/core/test_data/src_mapping/ReferencesUserDefinedAliases.sol @@ -0,0 +1,19 @@ +pragma solidity 0.8.16; + +type aliasTopLevel is uint; + +contract C +{ + type aliasContractLevel is uint; +} + +contract Test +{ + aliasTopLevel a; + C.aliasContractLevel b; +} + +function f(aliasTopLevel, C.aliasContractLevel) +{ + +} \ No newline at end of file diff --git a/tests/unit/core/test_data/src_mapping/ReferencesUserDefinedTypesCasting.sol b/tests/unit/core/test_data/src_mapping/ReferencesUserDefinedTypesCasting.sol new file mode 100644 index 000000000..1c23f0d5c --- /dev/null +++ b/tests/unit/core/test_data/src_mapping/ReferencesUserDefinedTypesCasting.sol @@ -0,0 +1,19 @@ +pragma solidity 0.8.16; + +interface A +{ + function a() external; +} + +contract C +{ + function g(address _address) private + { + A(_address).a(); + } +} + +function f(address _address) +{ + A(_address).a(); +} \ No newline at end of file diff --git a/tests/unit/core/test_data/src_mapping/inheritance.sol b/tests/unit/core/test_data/src_mapping/inheritance.sol new file mode 100644 index 000000000..4c3ff92ee --- /dev/null +++ b/tests/unit/core/test_data/src_mapping/inheritance.sol @@ -0,0 +1,35 @@ +contract A{ + + function f() public virtual { + + } + + function test() public { + f(); + } + +} + +contract B is A{ + + function f() public override { + + } + +} + +contract C is A{ + + function f() public override { + + } + + function test2() public { + f(); + } + +} + +contract D is A{ + +} diff --git a/tests/unit/core/test_data/storage_layout/StorageLayout.abi b/tests/unit/core/test_data/storage_layout/StorageLayout.abi new file mode 100644 index 000000000..a60ca0661 --- /dev/null +++ b/tests/unit/core/test_data/storage_layout/StorageLayout.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"store","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/tests/unit/core/test_data/storage_layout/StorageLayout.bin b/tests/unit/core/test_data/storage_layout/StorageLayout.bin new file mode 100644 index 000000000..11163c2f0 --- /dev/null +++ b/tests/unit/core/test_data/storage_layout/StorageLayout.bin @@ -0,0 +1 @@ +608060405260016000806101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555060016000601f6101000a81548160ff02191690831515021790555060405180604001604052806000601f9054906101000a900460ff161515815260200160008054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16815250600160008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050506040518060400160405280601481526020017f736c69746865722d726561642d73746f7261676500000000000000000000000081525060079080519060200190620001b6929190620002b2565b5060088060006101000a81548160ff021916908360ff1602179055507f6161616161616161000000000000000000000000000000000000000000000000600860016101000a81548167ffffffffffffffff021916908360c01c02179055506000600860096101000a81548160ff021916908360028111156200023d576200023c62000362565b5b021790555060016008600a6101000a81548160ff021916908360028111156200026b576200026a62000362565b5b021790555060026008600b6101000a81548160ff0219169083600281111562000299576200029862000362565b5b0217905550348015620002ab57600080fd5b50620003f6565b828054620002c090620003c0565b90600052602060002090601f016020900481019282620002e4576000855562000330565b82601f10620002ff57805160ff191683800117855562000330565b8280016001018555821562000330579182015b828111156200032f57825182559160200191906001019062000312565b5b5090506200033f919062000343565b5090565b5b808211156200035e57600081600090555060010162000344565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003d957607f821691505b60208210811415620003f057620003ef62000391565b5b50919050565b610fd780620004066000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063975057e714610030575b600080fd5b61003861003a565b005b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461009557600080fd5b33600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260008060009054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083151502179055506000820160019054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550905050600160036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008060009054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083151502179055506000820160019054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550905050600160046000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006002815260200190815260200160002060006101000a81548160ff0219169083151502179055506040518060600160405280600160ff168152602001600260ff168152602001600360ff1681525060099060036104b8929190610ddd565b50600c600990806001815401808255809150506001900390600052602060002090600302016000909190919091509060036104f4929190610e22565b50600c6040518060600160405280600460ff168152602001600560ff168152602001600660ff168152509080600181540180825580915050600190039060005260206000209060030201600090919091909150906003610555929190610ddd565b50600d60006003811061056b5761056a610f72565b5b0160079080600181540180825580915050600190039060005260206000200160009091909190915055600d6001600381106105a9576105a8610f72565b5b0160089080600181540180825580915050600190039060005260206000200160009091909190915055600d6001600381106105e7576105e6610f72565b5b0160099080600181540180825580915050600190039060005260206000200160009091909190915055600d60026003811061062557610624610f72565b5b01600a9080600181540180825580915050600190039060005260206000200160009091909190915055600d60026003811061066357610662610f72565b5b01600b9080600181540180825580915050600190039060005260206000200160009091909190915055600d6002600381106106a1576106a0610f72565b5b01600c908060018154018082558091505060019003906000526020600020016000909190919091505560106040518060200160405280600d60ff1681525090806001815401808255809150506001900390600052602060002001600090919091909150906001610712929190610e5f565b5060106040518060400160405280600e60ff168152602001600f60ff1681525090806001815401808255809150506001900390600052602060002001600090919091909150906002610765929190610eb1565b5060106040518060600160405280601060ff168152602001601160ff168152602001601260ff16815250908060018154018082558091505060019003906000526020600020016000909190919091509060036107c2929190610f03565b5060116001908060018154018082558091505060019003906000526020600020016000909190919091506000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083151502179055506000820160019054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550505060116040518060400160405280600015158152602001600a7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050506001601260006003811061099a57610999610f72565b5b016000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083151502179055506000820160019054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602179055509050506040518060400160405280600015158152602001600a7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152506012600160038110610aa257610aa1610f72565b5b0160008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555090505060056000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206011600081548110610b9957610b98610f72565b5b90600052602060002001908060018154018082558091505060019003906000526020600020016000909190919091506000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083151502179055506000820160019054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550505060056000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206011600181548110610cf557610cf4610f72565b5b90600052602060002001908060018154018082558091505060019003906000526020600020016000909190919091506000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083151502179055506000820160019054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602179055505050565b8260038101928215610e11579160200282015b82811115610e10578251829060ff16905591602001919060010190610df0565b5b509050610e1e9190610f55565b5090565b8260038101928215610e4e579182015b82811115610e4d578254825591600101919060010190610e32565b5b509050610e5b9190610f55565b5090565b828054828255906000526020600020908101928215610ea0579160200282015b82811115610e9f578251829060ff16905591602001919060010190610e7f565b5b509050610ead9190610f55565b5090565b828054828255906000526020600020908101928215610ef2579160200282015b82811115610ef1578251829060ff16905591602001919060010190610ed1565b5b509050610eff9190610f55565b5090565b828054828255906000526020600020908101928215610f44579160200282015b82811115610f43578251829060ff16905591602001919060010190610f23565b5b509050610f519190610f55565b5090565b5b80821115610f6e576000816000905550600101610f56565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea26469706673582212201cafaf685feba709fe5b26911b38f3251b1d43d43cec2d0d839fb6ff480488d164736f6c634300080a0033 \ No newline at end of file diff --git a/tests/unit/core/test_data/storage_layout/TEST_storage_layout.json b/tests/unit/core/test_data/storage_layout/TEST_storage_layout.json new file mode 100644 index 000000000..9de3aacfd --- /dev/null +++ b/tests/unit/core/test_data/storage_layout/TEST_storage_layout.json @@ -0,0 +1,576 @@ +{ + "packedUint": { + "name": "packedUint", + "type_string": "uint248", + "slot": 0, + "size": 248, + "offset": 0, + "value": 1, + "elems": {} + }, + "packedBool": { + "name": "packedBool", + "type_string": "bool", + "slot": 0, + "size": 8, + "offset": 248, + "value": true, + "elems": {} + }, + "_packedStruct": { + "name": "_packedStruct", + "type_string": "StorageLayout.PackedStruct", + "slot": 1, + "size": 256, + "offset": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000101", + "elems": { + "b": { + "name": "_packedStruct.b", + "type_string": "bool", + "slot": 1, + "size": 8, + "offset": 0, + "value": true, + "elems": {} + }, + "a": { + "name": "_packedStruct.a", + "type_string": "uint248", + "slot": 1, + "size": 248, + "offset": 8, + "value": 1, + "elems": {} + } + } + }, + "mappingPackedStruct": { + "name": "mappingPackedStruct", + "type_string": "mapping(uint256 => StorageLayout.PackedStruct)", + "slot": 2, + "size": 256, + "offset": 0, + "value": 0, + "elems": {} + }, + "deepMappingPackedStruct": { + "name": "deepMappingPackedStruct", + "type_string": "mapping(address => mapping(uint256 => StorageLayout.PackedStruct))", + "slot": 3, + "size": 256, + "offset": 0, + "value": 0, + "elems": {} + }, + "deepMappingElementaryTypes": { + "name": "deepMappingElementaryTypes", + "type_string": "mapping(address => mapping(uint256 => bool))", + "slot": 4, + "size": 256, + "offset": 0, + "value": 0, + "elems": {} + }, + "mappingDynamicArrayOfStructs": { + "name": "mappingDynamicArrayOfStructs", + "type_string": "mapping(address => StorageLayout.PackedStruct[])", + "slot": 5, + "size": 256, + "offset": 0, + "value": 0, + "elems": {} + }, + "_address": { + "name": "_address", + "type_string": "address", + "slot": 6, + "size": 160, + "offset": 0, + "value": "0xae17D2dD99e07CA3bF2571CCAcEAA9e2Aefc2Dc6", + "elems": {} + }, + "_string": { + "name": "_string", + "type_string": "string", + "slot": 7, + "size": 256, + "offset": 0, + "value": "slither-read-storage", + "elems": {} + }, + "packedUint8": { + "name": "packedUint8", + "type_string": "uint8", + "slot": 8, + "size": 8, + "offset": 0, + "value": 8, + "elems": {} + }, + "packedBytes": { + "name": "packedBytes", + "type_string": "bytes8", + "slot": 8, + "size": 64, + "offset": 8, + "value": "6161616161616161", + "elems": {} + }, + "_enumA": { + "name": "_enumA", + "type_string": "StorageLayout.Enum", + "slot": 8, + "size": 8, + "offset": 72, + "value": "00", + "elems": {} + }, + "_enumB": { + "name": "_enumB", + "type_string": "StorageLayout.Enum", + "slot": 8, + "size": 8, + "offset": 80, + "value": "01", + "elems": {} + }, + "_enumC": { + "name": "_enumC", + "type_string": "StorageLayout.Enum", + "slot": 8, + "size": 8, + "offset": 88, + "value": "02", + "elems": {} + }, + "fixedArray": { + "name": "fixedArray", + "type_string": "uint256[3]", + "slot": 9, + "size": 768, + "offset": 0, + "value": 1, + "elems": { + "0": { + "name": "fixedArray[0]", + "type_string": "uint256", + "slot": 9, + "size": 256, + "offset": 0, + "value": 1, + "elems": {} + }, + "1": { + "name": "fixedArray[1]", + "type_string": "uint256", + "slot": 10, + "size": 256, + "offset": 0, + "value": 2, + "elems": {} + }, + "2": { + "name": "fixedArray[2]", + "type_string": "uint256", + "slot": 11, + "size": 256, + "offset": 0, + "value": 3, + "elems": {} + } + } + }, + "dynamicArrayOfFixedArrays": { + "name": "dynamicArrayOfFixedArrays", + "type_string": "uint256[3][]", + "slot": 12, + "size": 256, + "offset": 0, + "value": 2, + "elems": { + "0": { + "name": "dynamicArrayOfFixedArrays[0]", + "type_string": "uint256", + "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386055, + "size": 256, + "offset": 0, + "value": 1, + "elems": { + "0": { + "name": "dynamicArrayOfFixedArrays[0]", + "type_string": "uint256", + "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386055, + "size": 256, + "offset": 0, + "value": 1, + "elems": {} + }, + "1": { + "name": "dynamicArrayOfFixedArrays[0]", + "type_string": "uint256", + "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386056, + "size": 256, + "offset": 0, + "value": 2, + "elems": {} + }, + "2": { + "name": "dynamicArrayOfFixedArrays[0]", + "type_string": "uint256", + "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386057, + "size": 256, + "offset": 0, + "value": 3, + "elems": {} + } + } + }, + "1": { + "name": "dynamicArrayOfFixedArrays[1]", + "type_string": "uint256", + "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386058, + "size": 256, + "offset": 0, + "value": 4, + "elems": { + "0": { + "name": "dynamicArrayOfFixedArrays[1]", + "type_string": "uint256", + "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386058, + "size": 256, + "offset": 0, + "value": 4, + "elems": {} + }, + "1": { + "name": "dynamicArrayOfFixedArrays[1]", + "type_string": "uint256", + "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386059, + "size": 256, + "offset": 0, + "value": 5, + "elems": {} + }, + "2": { + "name": "dynamicArrayOfFixedArrays[1]", + "type_string": "uint256", + "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386060, + "size": 256, + "offset": 0, + "value": 6, + "elems": {} + } + } + } + } + }, + "fixedArrayofDynamicArrays": { + "name": "fixedArrayofDynamicArrays", + "type_string": "uint256[][3]", + "slot": 13, + "size": 768, + "offset": 0, + "value": 1, + "elems": { + "0": { + "name": "fixedArrayofDynamicArrays[0]", + "type_string": "uint256", + "slot": 13, + "size": 256, + "offset": 0, + "value": 1, + "elems": { + "0": { + "name": "fixedArrayofDynamicArrays[0]", + "type_string": "uint256", + "slot": 97569884605916225051403212656556507955018248777258318895762758024193532305077, + "size": 256, + "offset": 0, + "value": 7, + "elems": {} + } + } + }, + "1": { + "name": "fixedArrayofDynamicArrays[1]", + "type_string": "uint256", + "slot": 14, + "size": 256, + "offset": 0, + "value": 2, + "elems": { + "0": { + "name": "fixedArrayofDynamicArrays[1]", + "type_string": "uint256", + "slot": 84800337471693920904250232874319843718400766719524250287777680170677855896573, + "size": 256, + "offset": 0, + "value": 8, + "elems": {} + }, + "1": { + "name": "fixedArrayofDynamicArrays[1]", + "type_string": "uint256", + "slot": 84800337471693920904250232874319843718400766719524250287777680170677855896574, + "size": 256, + "offset": 0, + "value": 9, + "elems": {} + } + } + }, + "2": { + "name": "fixedArrayofDynamicArrays[2]", + "type_string": "uint256", + "slot": 15, + "size": 256, + "offset": 0, + "value": 3, + "elems": { + "0": { + "name": "fixedArrayofDynamicArrays[2]", + "type_string": "uint256", + "slot": 63806209331542711802848847270949280092855778197726125910674179583545433573378, + "size": 256, + "offset": 0, + "value": 10, + "elems": {} + }, + "1": { + "name": "fixedArrayofDynamicArrays[2]", + "type_string": "uint256", + "slot": 63806209331542711802848847270949280092855778197726125910674179583545433573379, + "size": 256, + "offset": 0, + "value": 11, + "elems": {} + }, + "2": { + "name": "fixedArrayofDynamicArrays[2]", + "type_string": "uint256", + "slot": 63806209331542711802848847270949280092855778197726125910674179583545433573380, + "size": 256, + "offset": 0, + "value": 12, + "elems": {} + } + } + } + } + }, + "multidimensionalArray": { + "name": "multidimensionalArray", + "type_string": "uint256[][]", + "slot": 16, + "size": 256, + "offset": 0, + "value": 3, + "elems": { + "0": { + "name": "multidimensionalArray[0]", + "type_string": "uint256", + "slot": 12396694973890998440467380340983585058878106250672390494374587083972727727730, + "size": 256, + "offset": 0, + "value": 1, + "elems": { + "0": { + "name": "multidimensionalArray[0]", + "type_string": "uint256", + "slot": 93856215500098298973000561543003607329881518401177956003908346942307446808932, + "size": 256, + "offset": 0, + "value": 13, + "elems": {} + } + } + }, + "1": { + "name": "multidimensionalArray[1]", + "type_string": "uint256", + "slot": 12396694973890998440467380340983585058878106250672390494374587083972727727731, + "size": 256, + "offset": 0, + "value": 2, + "elems": { + "0": { + "name": "multidimensionalArray[1]", + "type_string": "uint256", + "slot": 48332168562525185806884758054388614910060623018875025120987491603435926351511, + "size": 256, + "offset": 0, + "value": 14, + "elems": {} + }, + "1": { + "name": "multidimensionalArray[1]", + "type_string": "uint256", + "slot": 48332168562525185806884758054388614910060623018875025120987491603435926351512, + "size": 256, + "offset": 0, + "value": 15, + "elems": {} + } + } + }, + "2": { + "name": "multidimensionalArray[2]", + "type_string": "uint256", + "slot": 12396694973890998440467380340983585058878106250672390494374587083972727727732, + "size": 256, + "offset": 0, + "value": 3, + "elems": { + "0": { + "name": "multidimensionalArray[2]", + "type_string": "uint256", + "slot": 69037578548663760355678879060995014288537668748590083357305779656188235687653, + "size": 256, + "offset": 0, + "value": 16, + "elems": {} + }, + "1": { + "name": "multidimensionalArray[2]", + "type_string": "uint256", + "slot": 69037578548663760355678879060995014288537668748590083357305779656188235687654, + "size": 256, + "offset": 0, + "value": 17, + "elems": {} + }, + "2": { + "name": "multidimensionalArray[2]", + "type_string": "uint256", + "slot": 69037578548663760355678879060995014288537668748590083357305779656188235687655, + "size": 256, + "offset": 0, + "value": 18, + "elems": {} + } + } + } + } + }, + "dynamicArrayOfStructs": { + "name": "dynamicArrayOfStructs", + "type_string": "StorageLayout.PackedStruct[]", + "slot": 17, + "size": 256, + "offset": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000002", + "elems": { + "0": { + "b": { + "name": "dynamicArrayOfStructs[0]", + "type_string": "bool", + "slot": 22581645139872629890233439717971975110198959689450188087151966948260709403752, + "size": 8, + "offset": 0, + "value": true, + "elems": {} + }, + "a": { + "name": "dynamicArrayOfStructs[0]", + "type_string": "uint248", + "slot": 22581645139872629890233439717971975110198959689450188087151966948260709403752, + "size": 248, + "offset": 8, + "value": 1, + "elems": {} + } + }, + "1": { + "b": { + "name": "dynamicArrayOfStructs[1]", + "type_string": "bool", + "slot": 22581645139872629890233439717971975110198959689450188087151966948260709403753, + "size": 8, + "offset": 0, + "value": false, + "elems": {} + }, + "a": { + "name": "dynamicArrayOfStructs[1]", + "type_string": "uint248", + "slot": 22581645139872629890233439717971975110198959689450188087151966948260709403753, + "size": 248, + "offset": 8, + "value": 10, + "elems": {} + } + } + } + }, + "fixedArrayOfStructs": { + "name": "fixedArrayOfStructs", + "type_string": "StorageLayout.PackedStruct[3]", + "slot": 18, + "size": 768, + "offset": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000101", + "elems": { + "0": { + "b": { + "name": "fixedArrayOfStructs[0]", + "type_string": "bool", + "slot": 18, + "size": 8, + "offset": 0, + "value": true, + "elems": {} + }, + "a": { + "name": "fixedArrayOfStructs[0]", + "type_string": "uint248", + "slot": 18, + "size": 248, + "offset": 8, + "value": 1, + "elems": {} + } + }, + "1": { + "b": { + "name": "fixedArrayOfStructs[1]", + "type_string": "bool", + "slot": 19, + "size": 8, + "offset": 0, + "value": false, + "elems": {} + }, + "a": { + "name": "fixedArrayOfStructs[1]", + "type_string": "uint248", + "slot": 19, + "size": 248, + "offset": 8, + "value": 10, + "elems": {} + } + }, + "2": { + "b": { + "name": "fixedArrayOfStructs[2]", + "type_string": "bool", + "slot": 20, + "size": 8, + "offset": 0, + "value": false, + "elems": {} + }, + "a": { + "name": "fixedArrayOfStructs[2]", + "type_string": "uint248", + "slot": 20, + "size": 248, + "offset": 8, + "value": 0, + "elems": {} + } + } + } + } +} diff --git a/tests/unit/core/test_data/storage_layout/storage_layout-0.8.10.sol b/tests/unit/core/test_data/storage_layout/storage_layout-0.8.10.sol new file mode 100644 index 000000000..28d1428eb --- /dev/null +++ b/tests/unit/core/test_data/storage_layout/storage_layout-0.8.10.sol @@ -0,0 +1,74 @@ +// overwrite abi and bin: +// solc tests/storage-layout/storage_layout-0.8.10.sol --abi --bin -o tests/storage-layout --overwrite +contract StorageLayout { + uint248 packedUint = 1; + bool packedBool = true; + + struct PackedStruct { + bool b; + uint248 a; + } + PackedStruct _packedStruct = PackedStruct(packedBool, packedUint); + + mapping (uint => PackedStruct) mappingPackedStruct; + mapping (address => mapping (uint => PackedStruct)) deepMappingPackedStruct; + mapping (address => mapping (uint => bool)) deepMappingElementaryTypes; + mapping (address => PackedStruct[]) mappingDynamicArrayOfStructs; + + address _address; + string _string = "slither-read-storage"; + uint8 packedUint8 = 8; + bytes8 packedBytes = "aaaaaaaa"; + + enum Enum { + a, + b, + c + } + Enum _enumA = Enum.a; + Enum _enumB = Enum.b; + Enum _enumC = Enum.c; + + uint256[3] fixedArray; + uint256[3][] dynamicArrayOfFixedArrays; + uint[][3] fixedArrayofDynamicArrays; + uint[][] multidimensionalArray; + PackedStruct[] dynamicArrayOfStructs; + PackedStruct[3] fixedArrayOfStructs; + + function store() external { + require(_address == address(0)); + _address = msg.sender; + + mappingPackedStruct[packedUint] = _packedStruct; + + deepMappingPackedStruct[_address][packedUint] = _packedStruct; + + deepMappingElementaryTypes[_address][1] = true; + deepMappingElementaryTypes[_address][2] = true; + + fixedArray = [1, 2, 3]; + + dynamicArrayOfFixedArrays.push(fixedArray); + dynamicArrayOfFixedArrays.push([4, 5, 6]); + + fixedArrayofDynamicArrays[0].push(7); + fixedArrayofDynamicArrays[1].push(8); + fixedArrayofDynamicArrays[1].push(9); + fixedArrayofDynamicArrays[2].push(10); + fixedArrayofDynamicArrays[2].push(11); + fixedArrayofDynamicArrays[2].push(12); + + multidimensionalArray.push([13]); + multidimensionalArray.push([14, 15]); + multidimensionalArray.push([16, 17, 18]); + + dynamicArrayOfStructs.push(_packedStruct); + dynamicArrayOfStructs.push(PackedStruct(false, 10)); + fixedArrayOfStructs[0] = _packedStruct; + fixedArrayOfStructs[1] = PackedStruct(false, 10); + + mappingDynamicArrayOfStructs[_address].push(dynamicArrayOfStructs[0]); + mappingDynamicArrayOfStructs[_address].push(dynamicArrayOfStructs[1]); + } +} diff --git a/tests/unit/core/test_data/taint_mapping.sol b/tests/unit/core/test_data/taint_mapping.sol new file mode 100644 index 000000000..c1a24ed38 --- /dev/null +++ b/tests/unit/core/test_data/taint_mapping.sol @@ -0,0 +1,18 @@ +contract Test{ + + mapping(uint => mapping(uint => address)) authorized_destination; + + address destination; + + function init(){ + authorized_destination[0][0] = msg.sender; + } + + function setup(uint idx){ + destination = authorized_destination[0][0]; + } + + function withdraw(){ + destination.transfer(this.balance); + } +} diff --git a/tests/unit/core/test_data/using_for/using-for-3-0.8.0.sol b/tests/unit/core/test_data/using_for/using-for-3-0.8.0.sol new file mode 100644 index 000000000..1da4f3dc6 --- /dev/null +++ b/tests/unit/core/test_data/using_for/using-for-3-0.8.0.sol @@ -0,0 +1,27 @@ +using {a} for Data; + +struct Data { mapping(uint => bool) flags; } + +function a(Data storage self, uint value, uint value2) returns(bool){ + return false; +} + +library Lib { + function a(Data storage self, uint value) public + view + returns (bool) + { + return true; + } + +} + +contract C { + using Lib for Data; + Data knownValues; + + function libCall(uint value) public { + require(knownValues.a(value)); + } + +} \ No newline at end of file diff --git a/tests/unit/core/test_data/using_for/using-for-4-0.8.0.sol b/tests/unit/core/test_data/using_for/using-for-4-0.8.0.sol new file mode 100644 index 000000000..d50e107a4 --- /dev/null +++ b/tests/unit/core/test_data/using_for/using-for-4-0.8.0.sol @@ -0,0 +1,25 @@ +using {f} for St; +struct St { uint field; } + + +function f(St storage self, uint8 v) view returns(uint){ + return 0; +} + + +library Lib { + function f(St storage self, uint256 v) public view returns (uint) { + return 1; + } + +} + +contract C { + using Lib for St; + St st; + + function libCall(uint16 v) public view returns(uint){ + return st.f(v); // return 1 + } + +} \ No newline at end of file diff --git a/tests/unit/core/test_data/using_for/using-for-alias-contract-0.8.0.sol b/tests/unit/core/test_data/using_for/using-for-alias-contract-0.8.0.sol new file mode 100644 index 000000000..d6906d5ab --- /dev/null +++ b/tests/unit/core/test_data/using_for/using-for-alias-contract-0.8.0.sol @@ -0,0 +1,14 @@ +import "./using-for-alias-dep1.sol"; + +contract C { + using {T3.a, T3.Lib.b} for uint256; + + function topLevel(uint256 value) public { + value.a(); + } + + function libCall(uint256 value) public { + value.b(); + } + +} diff --git a/tests/unit/core/test_data/using_for/using-for-alias-dep1.sol b/tests/unit/core/test_data/using_for/using-for-alias-dep1.sol new file mode 100644 index 000000000..db28e4a71 --- /dev/null +++ b/tests/unit/core/test_data/using_for/using-for-alias-dep1.sol @@ -0,0 +1,11 @@ +import "./using-for-alias-dep2.sol" as T3; + +function b(uint256 value) returns(bool) { + return true; +} + +library Lib { + function a(uint256 value) public returns(bool) { + return true; + } +} diff --git a/tests/unit/core/test_data/using_for/using-for-alias-dep2.sol b/tests/unit/core/test_data/using_for/using-for-alias-dep2.sol new file mode 100644 index 000000000..17ff96452 --- /dev/null +++ b/tests/unit/core/test_data/using_for/using-for-alias-dep2.sol @@ -0,0 +1,9 @@ +function a(uint256 value) returns(bool) { + return true; +} + +library Lib { + function b(uint256 value) public returns(bool) { + return true; + } +} \ No newline at end of file diff --git a/tests/unit/core/test_data/using_for/using-for-alias-top-level-0.8.0.sol b/tests/unit/core/test_data/using_for/using-for-alias-top-level-0.8.0.sol new file mode 100644 index 000000000..ed7e22bac --- /dev/null +++ b/tests/unit/core/test_data/using_for/using-for-alias-top-level-0.8.0.sol @@ -0,0 +1,15 @@ +import "./using-for-alias-dep1.sol"; + +using {T3.a, T3.Lib.b} for uint256; + +contract C { + + function topLevel(uint256 value) public { + value.a(); + } + + function libCall(uint256 value) public { + value.b(); + } + +} diff --git a/tests/unit/core/test_data/using_for/using-for-in-library-0.8.0.sol b/tests/unit/core/test_data/using_for/using-for-in-library-0.8.0.sol new file mode 100644 index 000000000..0e8f6a6b9 --- /dev/null +++ b/tests/unit/core/test_data/using_for/using-for-in-library-0.8.0.sol @@ -0,0 +1,14 @@ + +library A { + using B for uint256; + + function a(uint256 v) public view returns (uint) { + return v.b(); + } +} + +library B { + function b(uint256 v) public view returns (uint) { + return 1; + } +} diff --git a/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA.sol b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA.sol new file mode 100644 index 000000000..dbb00faf2 --- /dev/null +++ b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA.sol @@ -0,0 +1,2 @@ +import "./MyTypeA/Type.sol"; +import "./MyTypeA/Math.sol"; \ No newline at end of file diff --git a/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA/Casting.sol b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA/Casting.sol new file mode 100644 index 000000000..c166436fe --- /dev/null +++ b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA/Casting.sol @@ -0,0 +1,4 @@ +import "./Type.sol"; +function unwrap(MyTypeA a) pure returns (int256) { + return MyTypeA.unwrap(a); +} \ No newline at end of file diff --git a/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA/Math.sol b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA/Math.sol new file mode 100644 index 000000000..21f7c7925 --- /dev/null +++ b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA/Math.sol @@ -0,0 +1,5 @@ +import "./Type.sol"; + +function mul(MyTypeA a, MyTypeA b) pure returns (MyTypeA) { + return MyTypeA.wrap(MyTypeA.unwrap(a) * MyTypeA.unwrap(b)); +} diff --git a/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA/Type.sol b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA/Type.sol new file mode 100644 index 000000000..0973c7869 --- /dev/null +++ b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeA/Type.sol @@ -0,0 +1,6 @@ +import "./Casting.sol" as C; +import "./Math.sol" as M; + +type MyTypeA is int256; + +using {M.mul, C.unwrap} for MyTypeA global; \ No newline at end of file diff --git a/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB.sol b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB.sol new file mode 100644 index 000000000..3ddde2ac6 --- /dev/null +++ b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB.sol @@ -0,0 +1,2 @@ +import "./MyTypeB/Type.sol"; +import "./MyTypeB/Math.sol"; \ No newline at end of file diff --git a/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB/Casting.sol b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB/Casting.sol new file mode 100644 index 000000000..c400a9112 --- /dev/null +++ b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB/Casting.sol @@ -0,0 +1,4 @@ +import "./Type.sol"; +function unwrap(MyTypeB a) pure returns (uint256) { + return MyTypeB.unwrap(a); +} \ No newline at end of file diff --git a/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB/Math.sol b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB/Math.sol new file mode 100644 index 000000000..24ee1a582 --- /dev/null +++ b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB/Math.sol @@ -0,0 +1,6 @@ +import "./Type.sol"; + +function mul(MyTypeB a, MyTypeB b) pure returns (MyTypeB) { + return MyTypeB.wrap(MyTypeB.unwrap(a) * MyTypeB.unwrap(b)); +} + diff --git a/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB/Type.sol b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB/Type.sol new file mode 100644 index 000000000..a66b65f5d --- /dev/null +++ b/tests/unit/core/test_data/using_for/using_for_global_collision/src/MyTypeB/Type.sol @@ -0,0 +1,6 @@ +import "./Casting.sol" as C; +import "./Math.sol" as M; + +type MyTypeB is uint256; + +using {M.mul, C.unwrap} for MyTypeB global; \ No newline at end of file diff --git a/tests/unit/core/test_data/using_for/using_for_global_collision/src/Test.sol b/tests/unit/core/test_data/using_for/using_for_global_collision/src/Test.sol new file mode 100644 index 000000000..013570048 --- /dev/null +++ b/tests/unit/core/test_data/using_for/using_for_global_collision/src/Test.sol @@ -0,0 +1,7 @@ +import "./MyTypeB.sol"; + +contract UsingForGlobalTopLevelCollision { + function mulAndUnwrap(MyTypeB x, MyTypeB y) external pure returns (uint256 z) { + z = x.mul(y).unwrap(); + } +} \ No newline at end of file diff --git a/tests/unit/core/test_function_declaration.py b/tests/unit/core/test_function_declaration.py new file mode 100644 index 000000000..6f7aa23e7 --- /dev/null +++ b/tests/unit/core/test_function_declaration.py @@ -0,0 +1,305 @@ +""" +tests for `slither.core.declarations.Function`. +tests that `tests/test_function.sol` gets translated into correct +`slither.core.declarations.Function` objects or its subclasses +and that these objects behave correctly. +""" +from pathlib import Path +from solc_select import solc_select + +from slither import Slither +from slither.core.declarations.function import FunctionType +from slither.core.solidity_types.elementary_type import ElementaryType + +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" +FUNC_DELC_TEST_ROOT = Path(TEST_DATA_DIR, "function_declaration") + + +def test_functions(): + # pylint: disable=too-many-statements + solc_select.switch_global_version("0.6.12", always_install=True) + file = Path(FUNC_DELC_TEST_ROOT, "test_function.sol").as_posix() + slither = Slither(file) + functions = slither.get_contract_from_name("TestFunction")[0].available_functions_as_dict() + + f = functions["external_payable(uint256)"] + assert f.name == "external_payable" + assert f.full_name == "external_payable(uint256)" + assert f.canonical_name == "TestFunction.external_payable(uint256)" + assert f.solidity_signature == "external_payable(uint256)" + assert f.signature_str == "external_payable(uint256) returns(uint256)" + assert f.function_type == FunctionType.NORMAL + assert f.contains_assembly is False + assert f.can_reenter() is False + assert f.can_send_eth() is False + assert f.is_constructor is False + assert f.is_fallback is False + assert f.is_receive is False + assert f.payable is True + assert f.visibility == "external" + assert f.view is False + assert f.pure is False + assert f.is_implemented is True + assert f.is_empty is False + assert f.parameters[0].name == "_a" + assert f.parameters[0].type == ElementaryType("uint256") + assert f.return_type[0] == ElementaryType("uint256") + + f = functions["public_reenter()"] + assert f.name == "public_reenter" + assert f.full_name == "public_reenter()" + assert f.canonical_name == "TestFunction.public_reenter()" + assert f.solidity_signature == "public_reenter()" + assert f.signature_str == "public_reenter() returns()" + assert f.function_type == FunctionType.NORMAL + assert f.contains_assembly is False + assert f.can_reenter() is True + assert f.can_send_eth() is False + assert f.is_constructor is False + assert f.is_fallback is False + assert f.is_receive is False + assert f.payable is False + assert f.visibility == "public" + assert f.view is False + assert f.pure is False + assert f.is_implemented is True + assert f.is_empty is False + assert f.parameters == [] + assert f.return_type is None + + f = functions["public_payable_reenter_send(bool)"] + assert f.name == "public_payable_reenter_send" + assert f.full_name == "public_payable_reenter_send(bool)" + assert f.canonical_name == "TestFunction.public_payable_reenter_send(bool)" + assert f.solidity_signature == "public_payable_reenter_send(bool)" + assert f.signature_str == "public_payable_reenter_send(bool) returns()" + assert f.function_type == FunctionType.NORMAL + assert f.contains_assembly is False + assert f.can_reenter() is True + assert f.can_send_eth() is True + assert f.is_constructor is False + assert f.is_fallback is False + assert f.is_receive is False + assert f.payable is True + assert f.visibility == "public" + assert f.view is False + assert f.pure is False + assert f.is_implemented is True + assert f.is_empty is False + assert f.parameters[0].name == "_b" + assert f.parameters[0].type == ElementaryType("bool") + assert f.return_type is None + + f = functions["external_send(uint8)"] + assert f.name == "external_send" + assert f.full_name == "external_send(uint8)" + assert f.canonical_name == "TestFunction.external_send(uint8)" + assert f.solidity_signature == "external_send(uint8)" + assert f.signature_str == "external_send(uint8) returns()" + assert f.function_type == FunctionType.NORMAL + assert f.contains_assembly is False + assert f.can_reenter() is True + assert f.can_send_eth() is True + assert f.is_constructor is False + assert f.is_fallback is False + assert f.is_receive is False + assert f.payable is False + assert f.visibility == "external" + assert f.view is False + assert f.pure is False + assert f.is_implemented is True + assert f.is_empty is False + assert f.parameters[0].name == "_c" + assert f.parameters[0].type == ElementaryType("uint8") + assert f.return_type is None + + f = functions["internal_assembly(bytes)"] + assert f.name == "internal_assembly" + assert f.full_name == "internal_assembly(bytes)" + assert f.canonical_name == "TestFunction.internal_assembly(bytes)" + assert f.solidity_signature == "internal_assembly(bytes)" + assert f.signature_str == "internal_assembly(bytes) returns(uint256)" + assert f.function_type == FunctionType.NORMAL + assert f.contains_assembly is True + assert f.can_reenter() is False + assert f.can_send_eth() is False + assert f.is_constructor is False + assert f.is_fallback is False + assert f.is_receive is False + assert f.payable is False + assert f.visibility == "internal" + assert f.view is False + assert f.pure is False + assert f.is_implemented is True + assert f.is_empty is False + assert f.parameters[0].name == "_d" + assert f.parameters[0].type == ElementaryType("bytes") + assert f.return_type[0] == ElementaryType("uint256") + + f = functions["fallback()"] + assert f.name == "fallback" + assert f.full_name == "fallback()" + assert f.canonical_name == "TestFunction.fallback()" + assert f.solidity_signature == "fallback()" + assert f.signature_str == "fallback() returns()" + assert f.function_type == FunctionType.FALLBACK + assert f.contains_assembly is False + assert f.can_reenter() is False + assert f.can_send_eth() is False + assert f.is_constructor is False + assert f.is_fallback is True + assert f.is_receive is False + assert f.payable is False + assert f.visibility == "external" + assert f.view is False + assert f.pure is False + assert f.is_implemented is True + assert f.is_empty is True + assert f.parameters == [] + assert f.return_type is None + + f = functions["receive()"] + assert f.name == "receive" + assert f.full_name == "receive()" + assert f.canonical_name == "TestFunction.receive()" + assert f.solidity_signature == "receive()" + assert f.signature_str == "receive() returns()" + assert f.function_type == FunctionType.RECEIVE + assert f.contains_assembly is False + assert f.can_reenter() is False + assert f.can_send_eth() is False + assert f.is_constructor is False + assert f.is_fallback is False + assert f.is_receive is True + assert f.payable is True + assert f.visibility == "external" + assert f.view is False + assert f.pure is False + assert f.is_implemented is True + assert f.is_empty is True + assert f.parameters == [] + assert f.return_type is None + + f = functions["constructor(address)"] + assert f.name == "constructor" + assert f.full_name == "constructor(address)" + assert f.canonical_name == "TestFunction.constructor(address)" + assert f.solidity_signature == "constructor(address)" + assert f.signature_str == "constructor(address) returns()" + assert f.function_type == FunctionType.CONSTRUCTOR + assert f.contains_assembly is False + assert f.can_reenter() is False + assert f.can_send_eth() is False + assert f.is_constructor + assert f.is_fallback is False + assert f.is_receive is False + assert f.payable is True + assert f.visibility == "public" + assert f.view is False + assert f.pure is False + assert f.is_implemented is True + assert f.is_empty is True + assert f.parameters[0].name == "_e" + assert f.parameters[0].type == ElementaryType("address") + assert f.return_type is None + + f = functions["private_view()"] + assert f.name == "private_view" + assert f.full_name == "private_view()" + assert f.canonical_name == "TestFunction.private_view()" + assert f.solidity_signature == "private_view()" + assert f.signature_str == "private_view() returns(bool)" + assert f.function_type == FunctionType.NORMAL + assert f.contains_assembly is False + assert f.can_reenter() is False + assert f.can_send_eth() is False + assert f.is_constructor is False + assert f.is_fallback is False + assert f.is_receive is False + assert f.payable is False + assert f.visibility == "private" + assert f.view is True + assert f.pure is False + assert f.is_implemented is True + assert f.is_empty is False + assert f.parameters == [] + assert f.return_type[0] == ElementaryType("bool") + + f = functions["public_pure()"] + assert f.name == "public_pure" + assert f.full_name == "public_pure()" + assert f.canonical_name == "TestFunction.public_pure()" + assert f.solidity_signature == "public_pure()" + assert f.signature_str == "public_pure() returns(bool)" + assert f.function_type == FunctionType.NORMAL + assert f.contains_assembly is False + assert f.can_reenter() is False + assert f.can_send_eth() is False + assert f.is_constructor is False + assert f.is_fallback is False + assert f.is_receive is False + assert f.payable is False + assert f.visibility == "public" + assert f.view is True + assert f.pure is True + assert f.is_implemented is True + assert f.is_empty is False + assert f.parameters == [] + assert f.return_type[0] == ElementaryType("bool") + + +def test_function_can_send_eth(): + solc_select.switch_global_version("0.6.12", always_install=True) + file = Path(FUNC_DELC_TEST_ROOT, "test_function.sol").as_posix() + slither = Slither(file) + compilation_unit = slither.compilation_units[0] + functions = compilation_unit.get_contract_from_name("TestFunctionCanSendEth")[ + 0 + ].available_functions_as_dict() + + assert functions["send_direct()"].can_send_eth() is True + assert functions["transfer_direct()"].can_send_eth() is True + assert functions["call_direct()"].can_send_eth() is True + assert functions["highlevel_call_direct()"].can_send_eth() is True + + assert functions["send_via_internal()"].can_send_eth() is True + assert functions["transfer_via_internal()"].can_send_eth() is True + assert functions["call_via_internal()"].can_send_eth() is True + assert functions["highlevel_call_via_internal()"].can_send_eth() is True + + assert functions["send_via_external()"].can_send_eth() is False + assert functions["transfer_via_external()"].can_send_eth() is False + assert functions["call_via_external()"].can_send_eth() is False + assert functions["highlevel_call_via_external()"].can_send_eth() is False + + +def test_reentrant(): + solc_select.switch_global_version("0.8.10", always_install=True) + file = Path(FUNC_DELC_TEST_ROOT, "test_function_reentrant.sol").as_posix() + slither = Slither(file) + compilation_unit = slither.compilation_units[0] + functions = compilation_unit.get_contract_from_name("TestReentrant")[ + 0 + ].available_functions_as_dict() + + assert functions["is_reentrant()"].is_reentrant + assert not functions["is_non_reentrant()"].is_reentrant + assert not functions["internal_and_not_reentrant()"].is_reentrant + assert not functions["internal_and_not_reentrant2()"].is_reentrant + assert functions["internal_and_could_be_reentrant()"].is_reentrant + assert functions["internal_and_reentrant()"].is_reentrant + + +def test_public_variable() -> None: + solc_select.switch_global_version("0.6.12", always_install=True) + file = Path(FUNC_DELC_TEST_ROOT, "test_function.sol").as_posix() + slither = Slither(file) + contracts = slither.get_contract_from_name("TestFunction") + assert len(contracts) == 1 + contract = contracts[0] + var = contract.get_state_variable_from_name("info") + assert var + assert var.solidity_signature == "info()" + assert var.signature_str == "info() returns(bytes32)" + assert var.visibility == "public" + assert var.type == ElementaryType("bytes32") diff --git a/tests/unit/core/test_source_mapping.py b/tests/unit/core/test_source_mapping.py new file mode 100644 index 000000000..745d391d9 --- /dev/null +++ b/tests/unit/core/test_source_mapping.py @@ -0,0 +1,127 @@ +from pathlib import Path +from solc_select import solc_select + +from slither import Slither +from slither.core.declarations import Function + +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" +SRC_MAPPING_TEST_ROOT = Path(TEST_DATA_DIR, "src_mapping") + + +def test_source_mapping(): + solc_select.switch_global_version("0.6.12", always_install=True) + file = Path(SRC_MAPPING_TEST_ROOT, "inheritance.sol").as_posix() + slither = Slither(file) + + # Check if A.f() is at the offset 27 + functions = slither.offset_to_objects(file, 27) + print(functions) + assert len(functions) == 1 + function = functions.pop() + assert isinstance(function, Function) + assert function.canonical_name == "A.f()" + + # Only one definition for A.f() + assert {(x.start, x.end) for x in slither.offset_to_definitions(file, 27)} == {(26, 28)} + # Only one reference for A.f(), in A.test() + assert {(x.start, x.end) for x in slither.offset_to_references(file, 27)} == {(92, 93)} + # Only one implementation for A.f(), in A.test() + assert {(x.start, x.end) for x in slither.offset_to_implementations(file, 27)} == {(17, 53)} + + # Check if C.f() is at the offset 203 + functions = slither.offset_to_objects(file, 203) + assert len(functions) == 1 + function = functions.pop() + assert isinstance(function, Function) + assert function.canonical_name == "C.f()" + + # Only one definition for C.f() + assert {(x.start, x.end) for x in slither.offset_to_definitions(file, 203)} == {(202, 204)} + # Two references for C.f(), in A.test() and C.test2() + assert {(x.start, x.end) for x in slither.offset_to_references(file, 203)} == { + (270, 271), + (92, 93), + } + # Only one implementation for A.f(), in A.test() + assert {(x.start, x.end) for x in slither.offset_to_implementations(file, 203)} == {(193, 230)} + + # Offset 93 is the call to f() in A.test() + # This can lead to three differents functions, depending on the current contract's context + functions = slither.offset_to_objects(file, 93) + print(functions) + assert len(functions) == 3 + for function in functions: + assert isinstance(function, Function) + assert function.canonical_name in ["A.f()", "B.f()", "C.f()"] + + # There are three definitions possible (in A, B or C) + assert {(x.start, x.end) for x in slither.offset_to_definitions(file, 93)} == { + (26, 28), + (202, 204), + (138, 140), + } + + # There are two references possible (in A.test() or C.test2() ) + assert {(x.start, x.end) for x in slither.offset_to_references(file, 93)} == { + (92, 93), + (270, 271), + } + + # There are three implementations possible (in A, B or C) + assert {(x.start, x.end) for x in slither.offset_to_implementations(file, 93)} == { + (17, 53), + (193, 230), + (129, 166), + } + + +def _sort_references_lines(refs: list) -> list: + return sorted([ref.lines[0] for ref in refs]) + + +def _test_references_user_defined_aliases(): + """ + Tests if references are filled correctly for user defined aliases (declared using "type [...] is [...]" statement). + """ + solc_select.switch_global_version("0.8.16", always_install=True) + file = Path(SRC_MAPPING_TEST_ROOT, "ReferencesUserDefinedAliases.sol").as_posix() + slither = Slither(file) + + alias_top_level = slither.compilation_units[0].user_defined_value_types["aliasTopLevel"] + assert len(alias_top_level.references) == 2 + lines = _sort_references_lines(alias_top_level.references) + assert lines == [12, 16] + + alias_contract_level = ( + slither.compilation_units[0] + .contracts[0] + .file_scope.user_defined_types["C.aliasContractLevel"] + ) + assert len(alias_contract_level.references) == 2 + lines = _sort_references_lines(alias_contract_level.references) + assert lines == [13, 16] + + +def _test_references_user_defined_types_when_casting(): + """ + Tests if references are filled correctly for user defined types in case of casting. + """ + solc_select.switch_global_version("0.8.16", always_install=True) + file = Path(SRC_MAPPING_TEST_ROOT, "ReferencesUserDefinedTypesCasting.sol").as_posix() + slither = Slither(file) + + contracts = slither.compilation_units[0].contracts + a = contracts[0] if contracts[0].is_interface else contracts[1] + assert len(a.references) == 2 + lines = _sort_references_lines(a.references) + assert lines == [12, 18] + + +def test_references(): + """ + Tests if references list is filled correctly in the following cases: + - user defined aliases (declared using "type [...] is [...]" statement) + - user defined types in case of casting (TypeConversion expressions) + """ + _test_references_user_defined_aliases() + _test_references_user_defined_types_when_casting() diff --git a/tests/unit/core/test_storage_layout.py b/tests/unit/core/test_storage_layout.py new file mode 100644 index 000000000..4cb439d77 --- /dev/null +++ b/tests/unit/core/test_storage_layout.py @@ -0,0 +1,36 @@ +import json +from pathlib import Path +from subprocess import PIPE, Popen +from solc_select import solc_select +from slither import Slither + +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" +STORAGE_TEST_ROOT = Path(TEST_DATA_DIR, "storage_layout") + + +def test_storage_layout(): + # the storage layout has not yet changed between solidity versions so we will test with one version of the compiler + solc_select.switch_global_version("0.8.10", always_install=True) + test_item = Path(STORAGE_TEST_ROOT, "storage_layout-0.8.10.sol").as_posix() + + sl = Slither(test_item, solc_force_legacy_json=False, disallow_partial=True) + + with Popen(["solc", test_item, "--storage-layout"], stdout=PIPE) as process: + for line in process.stdout: # parse solc output + if '{"storage":[{' in line.decode("utf-8"): # find the storage layout + layout = iter(json.loads(line)["storage"]) + while True: + try: + for contract in sl.contracts: + curr_var = next(layout) + var_name = curr_var["label"] + sl_name = contract.variables_as_dict[var_name] + slot, offset = contract.compilation_unit.storage_layout_of( + contract, sl_name + ) + assert slot == int(curr_var["slot"]) + assert offset == int(curr_var["offset"]) + except StopIteration: + break + except KeyError as e: + print(f"not found {e} ") diff --git a/tests/unit/core/test_using_for.py b/tests/unit/core/test_using_for.py new file mode 100644 index 000000000..88a7ea043 --- /dev/null +++ b/tests/unit/core/test_using_for.py @@ -0,0 +1,95 @@ +from pathlib import Path +from crytic_compile import CryticCompile +from crytic_compile.platform.solc_standard_json import SolcStandardJson +from solc_select import solc_select + +from slither import Slither +from slither.slithir.operations import InternalCall, LibraryCall + +from tests.utils import _run_all_detectors + +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" +USING_FOR_TEST_DATA_DIR = Path(TEST_DATA_DIR, "using_for") + + +def test_using_for_global_collision() -> None: + solc_select.switch_global_version("0.8.18", always_install=True) + standard_json = SolcStandardJson() + for source_file in Path(USING_FOR_TEST_DATA_DIR, "using_for_global_collision").rglob("*.sol"): + standard_json.add_source_file(Path(source_file).as_posix()) + compilation = CryticCompile(standard_json) + sl = Slither(compilation) + _run_all_detectors(sl) + + +def test_using_for_top_level_same_name() -> None: + solc_select.switch_global_version("0.8.15", always_install=True) + slither = Slither(Path(USING_FOR_TEST_DATA_DIR, "using-for-3-0.8.0.sol").as_posix()) + contract_c = slither.get_contract_from_name("C")[0] + libCall = contract_c.get_function_from_full_name("libCall(uint256)") + for ir in libCall.all_slithir_operations(): + if isinstance(ir, LibraryCall) and ir.destination == "Lib" and ir.function_name == "a": + return + assert False + + +def test_using_for_top_level_implicit_conversion() -> None: + solc_select.switch_global_version("0.8.15", always_install=True) + slither = Slither(Path(USING_FOR_TEST_DATA_DIR, "using-for-4-0.8.0.sol").as_posix()) + contract_c = slither.get_contract_from_name("C")[0] + libCall = contract_c.get_function_from_full_name("libCall(uint16)") + for ir in libCall.all_slithir_operations(): + if isinstance(ir, LibraryCall) and ir.destination == "Lib" and ir.function_name == "f": + return + assert False + + +def test_using_for_alias_top_level() -> None: + solc_select.switch_global_version("0.8.15", always_install=True) + slither = Slither( + Path(USING_FOR_TEST_DATA_DIR, "using-for-alias-top-level-0.8.0.sol").as_posix() + ) + contract_c = slither.get_contract_from_name("C")[0] + libCall = contract_c.get_function_from_full_name("libCall(uint256)") + ok = False + for ir in libCall.all_slithir_operations(): + if isinstance(ir, LibraryCall) and ir.destination == "Lib" and ir.function_name == "b": + ok = True + if not ok: + assert False + topLevelCall = contract_c.get_function_from_full_name("topLevel(uint256)") + for ir in topLevelCall.all_slithir_operations(): + if isinstance(ir, InternalCall) and ir.function_name == "a": + return + assert False + + +def test_using_for_alias_contract() -> None: + solc_select.switch_global_version("0.8.15", always_install=True) + slither = Slither( + Path(USING_FOR_TEST_DATA_DIR, "using-for-alias-contract-0.8.0.sol").as_posix() + ) + contract_c = slither.get_contract_from_name("C")[0] + libCall = contract_c.get_function_from_full_name("libCall(uint256)") + ok = False + for ir in libCall.all_slithir_operations(): + if isinstance(ir, LibraryCall) and ir.destination == "Lib" and ir.function_name == "b": + ok = True + if not ok: + assert False + topLevelCall = contract_c.get_function_from_full_name("topLevel(uint256)") + for ir in topLevelCall.all_slithir_operations(): + if isinstance(ir, InternalCall) and ir.function_name == "a": + return + assert False + + +def test_using_for_in_library() -> None: + solc_select.switch_global_version("0.8.15", always_install=True) + slither = Slither(Path(USING_FOR_TEST_DATA_DIR, "using-for-in-library-0.8.0.sol").as_posix()) + contract_c = slither.get_contract_from_name("A")[0] + libCall = contract_c.get_function_from_full_name("a(uint256)") + for ir in libCall.all_slithir_operations(): + if isinstance(ir, LibraryCall) and ir.destination == "B" and ir.function_name == "b": + return + assert False diff --git a/tests/unit/slithir/test_data/operation_reads.sol b/tests/unit/slithir/test_data/operation_reads.sol new file mode 100644 index 000000000..22adc2288 --- /dev/null +++ b/tests/unit/slithir/test_data/operation_reads.sol @@ -0,0 +1,17 @@ + +contract Placeholder { + constructor() payable {} +} + +contract NewContract { + bytes32 internal constant state_variable_read = bytes32(0); + + function readAllStateVariables() external { + new Placeholder{salt: state_variable_read} (); + } + + function readAllLocalVariables() external { + bytes32 local_variable_read = bytes32(0); + new Placeholder{salt: local_variable_read} (); + } +} \ No newline at end of file diff --git a/tests/unit/slithir/test_data/ternary_expressions.sol b/tests/unit/slithir/test_data/ternary_expressions.sol new file mode 100644 index 000000000..c73a2b6b3 --- /dev/null +++ b/tests/unit/slithir/test_data/ternary_expressions.sol @@ -0,0 +1,52 @@ +interface Test { + function test() external payable returns (uint); + function testTuple() external payable returns (uint, uint); +} +contract C { + // TODO + // 1) support variable declarations + //uint min = 1 > 0 ? 1 : 2; + // 2) suppory ternary index range access + // function e(bool cond, bytes calldata x) external { + // bytes memory a = x[cond ? 1 : 2 :]; + // } + function a(uint a, uint b) external { + (uint min, uint max) = a < b ? (a, b) : (b, a); + } + function b( address a, address b) external { + (address tokenA, address tokenB) = a < b ? (a, b) : (b, a); + } + + bytes char; + function c(bytes memory strAddress, uint i, uint padding, uint length) external { + char[0] = strAddress[i < padding + 2 ? i : 42 + i - length]; + } + + function d(bool cond, bytes calldata x) external { + bytes1 a = x[cond ? 1 : 2]; + } + + function e(address one, address two) public { + uint x = Test(one).test{value: msg.sender == two ? 1 : 2, gas: true ? 2 : gasleft()}(); + } + + // Parenthetical expression + function f(address one, address two) public { + uint x = Test(one).test{value: msg.sender == two ? 1 : 2, gas: true ? (1 == 1 ? 1 : 2) : gasleft()}(); + } + + // Unused tuple variable + function g(address one) public { + (, uint x) = Test(one).testTuple(); + } + + uint[] myIntegers; + function _h(uint c) internal returns(uint) { + return c; + } + function h(bool cond, uint a, uint b) public { + uint d = _h( + myIntegers[cond ? a : b] + ); + } +} diff --git a/tests/unit/slithir/test_operation_reads.py b/tests/unit/slithir/test_operation_reads.py new file mode 100644 index 000000000..d87dc79c3 --- /dev/null +++ b/tests/unit/slithir/test_operation_reads.py @@ -0,0 +1,54 @@ +from pathlib import Path +from collections import namedtuple +from slither import Slither +from slither.slithir.operations import Operation, NewContract +from solc_select import solc_select + +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" + + +def check_num_local_vars_read(function, slithir_op: Operation, num_reads_expected: int): + for node in function.nodes: + for operation in node.irs: + if isinstance(operation, slithir_op): + assert len(operation.read) == num_reads_expected + assert len(node.local_variables_read) == num_reads_expected + + +def check_num_states_vars_read(function, slithir_op: Operation, num_reads_expected: int): + for node in function.nodes: + for operation in node.irs: + if isinstance(operation, slithir_op): + assert len(operation.read) == num_reads_expected + assert len(node.state_variables_read) == num_reads_expected + + +OperationTest = namedtuple("OperationTest", "contract_name slithir_op") + +OPERATION_TEST = [OperationTest("NewContract", NewContract)] + + +def test_operation_reads() -> None: + """ + Every slithir operation has its own contract and reads all local and state variables in readAllLocalVariables and readAllStateVariables, respectively. + """ + solc_select.switch_global_version("0.8.15", always_install=True) + slither = Slither(Path(TEST_DATA_DIR, "operation_reads.sol").as_posix()) + + for op_test in OPERATION_TEST: + print(op_test) + available = slither.get_contract_from_name(op_test.contract_name) + assert len(available) == 1 + target = available[0] + + num_state_variables = len(target.state_variables_ordered) + state_function = target.get_function_from_signature("readAllStateVariables()") + check_num_states_vars_read(state_function, op_test.slithir_op, num_state_variables) + + local_function = target.get_function_from_signature("readAllLocalVariables()") + num_local_vars = len(local_function.local_variables) + check_num_local_vars_read(local_function, op_test.slithir_op, num_local_vars) + + +if __name__ == "__main__": + test_operation_reads() diff --git a/tests/unit/slithir/test_ssa_generation.py b/tests/unit/slithir/test_ssa_generation.py new file mode 100644 index 000000000..3d4874569 --- /dev/null +++ b/tests/unit/slithir/test_ssa_generation.py @@ -0,0 +1,1078 @@ +# pylint: disable=too-many-lines +import os +import pathlib +from argparse import ArgumentTypeError +from collections import defaultdict +from contextlib import contextmanager +from inspect import getsourcefile +from tempfile import NamedTemporaryFile +from typing import Union, List, Optional + +import pytest +from solc_select import solc_select +from solc_select.solc_select import valid_version as solc_valid_version + +from slither import Slither +from slither.core.cfg.node import Node, NodeType +from slither.core.declarations import Function, Contract +from slither.core.variables.state_variable import StateVariable +from slither.slithir.operations import ( + OperationWithLValue, + Phi, + Assignment, + HighLevelCall, + Return, + Operation, + Binary, + BinaryType, + InternalCall, + Index, + InitArray, +) +from slither.slithir.utils.ssa import is_used_later +from slither.slithir.variables import ( + Constant, + ReferenceVariable, + LocalIRVariable, + StateIRVariable, +) + +# Directory of currently executing script. Will be used as basis for temporary file names. +SCRIPT_DIR = pathlib.Path(getsourcefile(lambda: 0)).parent + + +def valid_version(ver: str) -> bool: + """Wrapper function to check if the solc-version is valid + + The solc_select function raises and exception but for checks below, + only a bool is needed. + """ + try: + solc_valid_version(ver) + return True + except ArgumentTypeError: + return False + + +def have_ssa_if_ir(function: Function): + """Verifies that all nodes in a function that have IR also have SSA IR""" + for n in function.nodes: + if n.irs: + assert n.irs_ssa + + +# pylint: disable=too-many-branches +def ssa_basic_properties(function: Function): + """Verifies that basic properties of ssa holds + + 1. Every name is defined only once + 2. A l-value is never index zero - there is always a zero-value available for each var + 3. Every r-value is at least defined at some point + 4. The number of ssa defs is >= the number of assignments to var + 5. Function parameters SSA are stored in function.parameters_ssa + - if function parameter is_storage it refers to a fake variable + 6. Function returns SSA are stored in function.returns_ssa + - if function return is_storage it refers to a fake variable + """ + ssa_lvalues = set() + ssa_rvalues = set() + lvalue_assignments = {} + + for n in function.nodes: + for ir in n.irs: + if isinstance(ir, OperationWithLValue): + name = ir.lvalue.name + if name in lvalue_assignments: + lvalue_assignments[name] += 1 + else: + lvalue_assignments[name] = 1 + + for ssa in n.irs_ssa: + if isinstance(ssa, OperationWithLValue): + # 1 + assert ssa.lvalue not in ssa_lvalues + ssa_lvalues.add(ssa.lvalue) + + # 2 (if Local/State Var) + if isinstance(ssa.lvalue, (StateIRVariable, LocalIRVariable)): + assert ssa.lvalue.index > 0 + + for rvalue in filter( + lambda x: not isinstance(x, (StateIRVariable, Constant)), ssa.read + ): + ssa_rvalues.add(rvalue) + + # 3 + # Each var can have one non-defined value, the value initially held. Typically, + # var_0, i_0, state_0 or similar. + undef_vars = set() + for rvalue in ssa_rvalues: + if rvalue not in ssa_lvalues: + assert rvalue.non_ssa_version not in undef_vars + undef_vars.add(rvalue.non_ssa_version) + + # 4 + ssa_defs = defaultdict(int) + for v in ssa_lvalues: + ssa_defs[v.name] += 1 + + for (k, n) in lvalue_assignments.items(): + assert ssa_defs[k] >= n + + # Helper 5/6 + def check_property_5_and_6(variables, ssavars): + for var in filter(lambda x: x.name, variables): + ssa_vars = [x for x in ssavars if x.non_ssa_version == var] + assert len(ssa_vars) == 1 + ssa_var = ssa_vars[0] + assert var.is_storage == ssa_var.is_storage + if ssa_var.is_storage: + assert len(ssa_var.refers_to) == 1 + assert ssa_var.refers_to[0].location == "reference_to_storage" + + # 5 + check_property_5_and_6(function.parameters, function.parameters_ssa) + + # 6 + check_property_5_and_6(function.returns, function.returns_ssa) + + +def ssa_phi_node_properties(f: Function): + """Every phi-function should have as many args as predecessors + + This does not apply if the phi-node refers to state variables, + they make use os special phi-nodes for tracking potential values + a state variable can have + """ + for node in f.nodes: + for ssa in node.irs_ssa: + if isinstance(ssa, Phi): + n = len(ssa.read) + if not isinstance(ssa.lvalue, StateIRVariable): + assert len(node.fathers) == n + + +# TODO (hbrodin): This should probably go into another file, not specific to SSA +def dominance_properties(f: Function): + """Verifies properties related to dominators holds + + 1. Every node have an immediate dominator except entry_node which have none + 2. From every node immediate dominator there is a path via its successors to the node + """ + + def find_path(from_node: Node, to: Node) -> bool: + visited = set() + worklist = list(from_node.sons) + while worklist: + first, *worklist = worklist + if first == to: + return True + visited.add(first) + for successor in first.sons: + if successor not in visited: + worklist.append(successor) + return False + + for node in f.nodes: + if node is f.entry_point: + assert node.immediate_dominator is None + else: + assert node.immediate_dominator is not None + assert find_path(node.immediate_dominator, node) + + +def phi_values_inserted(f: Function): + """Verifies that phi-values are inserted at the right places + + For every node that has a dominance frontier, any def (including + phi) should be a phi function in its dominance frontier + """ + + def have_phi_for_var(node: Node, var): + """Checks if a node has a phi-instruction for var + + The ssa version would ideally be checked, but then + more data flow analysis would be needed, for cases + where a new def for var is introduced before reaching + DF + """ + non_ssa = var.non_ssa_version + for ssa in node.irs_ssa: + if isinstance(ssa, Phi): + if non_ssa in map(lambda ssa_var: ssa_var.non_ssa_version, ssa.read): + return True + return False + + for node in filter(lambda n: n.dominance_frontier, f.nodes): + for df in node.dominance_frontier: + for ssa in node.irs_ssa: + if isinstance(ssa, OperationWithLValue): + if is_used_later(node, ssa.lvalue): + assert have_phi_for_var(df, ssa.lvalue) + + +@contextmanager +def select_solc_version(version: Optional[str]): + """Selects solc version to use for running tests. + + If no version is provided, latest is used.""" + # If no solc_version selected just use the latest avail + if not version: + # This sorts the versions numerically + vers = sorted( + map( + lambda x: (int(x[0]), int(x[1]), int(x[2])), + map(lambda x: x.split(".", 3), solc_select.installed_versions()), + ) + ) + ver = list(vers)[-1] + version = ".".join(map(str, ver)) + env = dict(os.environ) + env_restore = dict(env) + env["SOLC_VERSION"] = version + os.environ.clear() + os.environ.update(env) + + yield version + + os.environ.clear() + os.environ.update(env_restore) + + +@contextmanager +def slither_from_source(source_code: str, solc_version: Optional[str] = None): + """Yields a Slither instance using source_code string and solc_version + + Creates a temporary file and changes the solc-version temporary to solc_version. + """ + + fname = "" + try: + with NamedTemporaryFile(dir=SCRIPT_DIR, mode="w", suffix=".sol", delete=False) as f: + fname = f.name + f.write(source_code) + with select_solc_version(solc_version): + yield Slither(fname) + finally: + pathlib.Path(fname).unlink() + + +def verify_properties_hold(source_code_or_slither: Union[str, Slither]): + """Ensures that basic properties of SSA hold true""" + + def verify_func(func: Function): + have_ssa_if_ir(func) + phi_values_inserted(func) + ssa_basic_properties(func) + ssa_phi_node_properties(func) + dominance_properties(func) + + def verify(slither): + for cu in slither.compilation_units: + for func in cu.functions_and_modifiers: + _dump_function(func) + verify_func(func) + for contract in cu.contracts: + for f in contract.functions: + if f.is_constructor or f.is_constructor_variables: + _dump_function(f) + verify_func(f) + + if isinstance(source_code_or_slither, Slither): + verify(source_code_or_slither) + else: + with slither_from_source(source_code_or_slither) as slither: + verify(slither) + + +def _dump_function(f: Function): + """Helper function to print nodes/ssa ir for a function or modifier""" + print(f"---- {f.name} ----") + for n in f.nodes: + print(n) + for ir in n.irs_ssa: + print(f"\t{ir}") + print("") + + +def _dump_functions(c: Contract): + """Helper function to print functions and modifiers of a contract""" + for f in c.functions_and_modifiers: + _dump_function(f) + + +def get_filtered_ssa(f: Union[Function, Node], flt) -> List[Operation]: + """Returns a list of all ssanodes filtered by filter for all nodes in function f""" + if isinstance(f, Function): + return [ssanode for node in f.nodes for ssanode in node.irs_ssa if flt(ssanode)] + + assert isinstance(f, Node) + return [ssanode for ssanode in f.irs_ssa if flt(ssanode)] + + +def get_ssa_of_type(f: Union[Function, Node], ssatype) -> List[Operation]: + """Returns a list of all ssanodes of a specific type for all nodes in function f""" + return get_filtered_ssa(f, lambda ssanode: isinstance(ssanode, ssatype)) + + +def test_multi_write(): + contract = """ + pragma solidity ^0.8.11; + contract Test { + function multi_write(uint val) external pure returns(uint) { + val = 1; + val = 2; + val = 3; + } + }""" + verify_properties_hold(contract) + + +def test_single_branch_phi(): + contract = """ + pragma solidity ^0.8.11; + contract Test { + function single_branch_phi(uint val) external pure returns(uint) { + if (val == 3) { + val = 9; + } + return val; + } + } + """ + verify_properties_hold(contract) + + +def test_basic_phi(): + contract = """ + pragma solidity ^0.8.11; + contract Test { + function basic_phi(uint val) external pure returns(uint) { + if (val == 3) { + val = 9; + } else { + val = 1; + } + return val; + } + } + """ + verify_properties_hold(contract) + + +def test_basic_loop_phi(): + contract = """ + pragma solidity ^0.8.11; + contract Test { + function basic_loop_phi(uint val) external pure returns(uint) { + for (uint i=0;i<128;i++) { + val = val + 1; + } + return val; + } + } + """ + verify_properties_hold(contract) + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_phi_propagation_loop(): + contract = """ + pragma solidity ^0.8.11; + contract Test { + function looping(uint v) external pure returns(uint) { + uint val = 0; + for (uint i=0;i i) { + val = i; + } else { + val = 3; + } + } + return val; + } + } + """ + verify_properties_hold(contract) + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_free_function_properties(): + contract = """ + pragma solidity ^0.8.11; + + function free_looping(uint v) returns(uint) { + uint val = 0; + for (uint i=0;i i) { + val = i; + } else { + val = 3; + } + } + return val; + } + + contract Test {} + """ + verify_properties_hold(contract) + + +def test_ssa_inter_transactional(): + source = """ + pragma solidity ^0.8.11; + contract A { + uint my_var_A; + uint my_var_B; + + function direct_set(uint i) public { + my_var_A = i; + } + + function direct_set_plus_one(uint i) public { + my_var_A = i + 1; + } + + function indirect_set() public { + my_var_B = my_var_A; + } + } + """ + with slither_from_source(source) as slither: + c = slither.contracts[0] + variables = c.variables_as_dict + funcs = c.available_functions_as_dict() + direct_set = funcs["direct_set(uint256)"] + # Skip entry point and go straight to assignment ir + assign1 = direct_set.nodes[1].irs_ssa[0] + assert isinstance(assign1, Assignment) + + assign2 = direct_set.nodes[1].irs_ssa[0] + assert isinstance(assign2, Assignment) + + indirect_set = funcs["indirect_set()"] + phi = indirect_set.entry_point.irs_ssa[0] + assert isinstance(phi, Phi) + # phi rvalues come from 1, initial value of my_var_a and 2, assignment in direct_set + assert len(phi.rvalues) == 3 + assert all(x.non_ssa_version == variables["my_var_A"] for x in phi.rvalues) + assert assign1.lvalue in phi.rvalues + assert assign2.lvalue in phi.rvalues + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_ssa_phi_callbacks(): + source = """ + pragma solidity ^0.8.11; + contract A { + uint my_var_A; + uint my_var_B; + + function direct_set(uint i) public { + my_var_A = i; + } + + function use_a() public { + // Expect a phi-node here + my_var_B = my_var_A; + B b = new B(); + my_var_A = 3; + b.do_stuff(); + // Expect a phi-node here + my_var_B = my_var_A; + } + } + + contract B { + function do_stuff() public returns (uint) { + // This could be calling back into A + } + } + """ + with slither_from_source(source) as slither: + c = slither.get_contract_from_name("A")[0] + _dump_functions(c) + f = [x for x in c.functions if x.name == "use_a"][0] + var_a = [x for x in c.variables if x.name == "my_var_A"][0] + + entry_phi = [ + x + for x in f.entry_point.irs_ssa + if isinstance(x, Phi) and x.lvalue.non_ssa_version == var_a + ][0] + # The four potential sources are: + # 1. initial value + # 2. my_var_A = i; + # 3. my_var_A = 3; + # 4. phi-value after call to b.do_stuff(), which could be reentrant. + assert len(entry_phi.rvalues) == 4 + + # Locate the first high-level call (should be b.do_stuff()) + call_node = [x for y in f.nodes for x in y.irs_ssa if isinstance(x, HighLevelCall)][0] + n = call_node.node + # Get phi-node after call + after_call_phi = n.irs_ssa[n.irs_ssa.index(call_node) + 1] + # The two sources for this phi node is + # 1. my_var_A = i; + # 2. my_var_A = 3; + assert isinstance(after_call_phi, Phi) + assert len(after_call_phi.rvalues) == 2 + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_storage_refers_to(): + """Test the storage aspects of the SSA IR + + When declaring a var as being storage, start tracking what storage it refers_to. + When a phi-node is created, ensure refers_to is propagated to the phi-node. + Assignments also propagate refers_to. + Whenever a ReferenceVariable is the destination of an assignment (e.g. s.v = 10) + below, create additional versions of the variables it refers to record that a a + write was made. In the current implementation, this is referenced by phis. + """ + source = """ + contract A{ + + struct St{ + int v; + } + + St state0; + St state1; + + function f() public{ + St storage s = state0; + if(true){ + s = state1; + } + s.v = 10; + } +} + """ + with slither_from_source(source) as slither: + c = slither.contracts[0] + f = c.functions[0] + + phinodes = get_ssa_of_type(f, Phi) + # Expect 2 in entrypoint (state0/state1 initial values), 1 at 'ENDIF' and two related to the + # ReferenceVariable write s.v = 10. + assert len(phinodes) == 5 + + # Assign s to state0, s to state1, s.v to 10 + assigns = get_ssa_of_type(f, Assignment) + assert len(assigns) == 3 + + # The IR variables have is_storage + assert all(x.lvalue.is_storage for x in assigns if isinstance(x, LocalIRVariable)) + + # s.v ReferenceVariable points to one of the phi vars... + ref0 = [x.lvalue for x in assigns if isinstance(x.lvalue, ReferenceVariable)][0] + sphis = [x for x in phinodes if x.lvalue == ref0.points_to] + assert len(sphis) == 1 + sphi = sphis[0] + + # ...and that phi refers to the two entry phi-values + entryphi = [x for x in phinodes if x.lvalue in sphi.lvalue.refers_to] + assert len(entryphi) == 2 + + # The remaining two phis are the ones recording that write through ReferenceVariable occured + for ephi in entryphi: + phinodes.remove(ephi) + phinodes.remove(sphi) + assert len(phinodes) == 2 + + # And they are recorded in one of the entry phis + assert phinodes[0].lvalue in entryphi[0].rvalues or entryphi[1].rvalues + assert phinodes[1].lvalue in entryphi[0].rvalues or entryphi[1].rvalues + + +@pytest.mark.skipif( + not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" +) +def test_initial_version_exists_for_locals(): + """ + In solidity you can write statements such as + uint a = a + 1, this test ensures that can be handled for local variables. + """ + src = """ + contract C { + function func() internal { + uint a = a + 1; + } + } + """ + with slither_from_source(src, "0.4.0") as slither: + verify_properties_hold(slither) + c = slither.contracts[0] + f = c.functions[0] + + addition = get_ssa_of_type(f, Binary)[0] + assert addition.type == BinaryType.ADDITION + assert isinstance(addition.variable_right, Constant) + a_0 = addition.variable_left + assert a_0.index == 0 + assert a_0.name == "a" + + assignment = get_ssa_of_type(f, Assignment)[0] + a_1 = assignment.lvalue + assert a_1.index == 1 + assert a_1.name == "a" + assert assignment.rvalue == addition.lvalue + + assert a_0.non_ssa_version == a_1.non_ssa_version + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +@pytest.mark.skipif( + not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" +) +def test_initial_version_exists_for_state_variables(): + """ + In solidity you can write statements such as + uint a = a + 1, this test ensures that can be handled for state variables. + """ + src = """ + contract C { + uint a = a + 1; + } + """ + with slither_from_source(src, "0.4.0") as slither: + verify_properties_hold(slither) + c = slither.contracts[0] + f = c.functions[0] # There will be one artificial ctor function for the state vars + + addition = get_ssa_of_type(f, Binary)[0] + assert addition.type == BinaryType.ADDITION + assert isinstance(addition.variable_right, Constant) + a_0 = addition.variable_left + assert isinstance(a_0, StateIRVariable) + assert a_0.name == "a" + + assignment = get_ssa_of_type(f, Assignment)[0] + a_1 = assignment.lvalue + assert isinstance(a_1, StateIRVariable) + assert a_1.index == a_0.index + 1 + assert a_1.name == "a" + assert assignment.rvalue == addition.lvalue + + assert a_0.non_ssa_version == a_1.non_ssa_version + assert isinstance(a_0.non_ssa_version, StateVariable) + + # No conditional/other function interaction so no phis + assert len(get_ssa_of_type(f, Phi)) == 0 + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_initial_version_exists_for_state_variables_function_assign(): + """ + In solidity you can write statements such as + uint a = a + 1, this test ensures that can be handled for local variables. + """ + # TODO (hbrodin): Could be a detector that a is not used in f + src = """ + contract C { + uint a = f(); + + function f() internal returns(uint) { + return a; + } + } + """ + with slither_from_source(src) as slither: + verify_properties_hold(slither) + c = slither.contracts[0] + f, ctor = c.functions + if f.is_constructor_variables: + f, ctor = ctor, f + + # ctor should have a single call to f that assigns to a + # temporary variable, that is then assigned to a + + call = get_ssa_of_type(ctor, InternalCall)[0] + assert call.function == f + assign = get_ssa_of_type(ctor, Assignment)[0] + assert assign.rvalue == call.lvalue + assert isinstance(assign.lvalue, StateIRVariable) + assert assign.lvalue.name == "a" + + # f should have a phi node on entry of a0, a1 and should return + # a2 + phi = get_ssa_of_type(f, Phi)[0] + assert len(phi.rvalues) == 2 + assert assign.lvalue in phi.rvalues + + +@pytest.mark.skipif( + not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" +) +def test_return_local_before_assign(): + src = """ + // this require solidity < 0.5 + // a variable can be returned before declared. Ensure it can be + // handled by Slither. + contract A { + function local(bool my_bool) internal returns(uint){ + if(my_bool){ + return a_local; + } + + uint a_local = 10; + } + } + """ + with slither_from_source(src, "0.4.0") as slither: + f = slither.contracts[0].functions[0] + + ret = get_ssa_of_type(f, Return)[0] + assert len(ret.values) == 1 + assert ret.values[0].index == 0 + + assign = get_ssa_of_type(f, Assignment)[0] + assert assign.lvalue.index == 1 + assert assign.lvalue.non_ssa_version == ret.values[0].non_ssa_version + + +@pytest.mark.skipif( + not valid_version("0.5.0"), reason="Solidity version 0.5.0 not available on this platform" +) +def test_shadow_local(): + src = """ + contract A { + // this require solidity 0.5 + function shadowing_local() internal{ + uint local = 0; + { + uint local = 1; + { + uint local = 2; + } + } + } + } + """ + with slither_from_source(src, "0.5.0") as slither: + _dump_functions(slither.contracts[0]) + f = slither.contracts[0].functions[0] + + # Ensure all assignments are to a variable of index 1 + # not using the same IR var. + assert all(map(lambda x: x.lvalue.index == 1, get_ssa_of_type(f, Assignment))) + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_multiple_named_args_returns(): + """Verifies that named arguments and return values have correct versions + + Each arg/ret have an initial version, version 0, and is written once and should + then have version 1. + """ + src = """ + contract A { + function multi(uint arg1, uint arg2) internal returns (uint ret1, uint ret2) { + arg1 = arg1 + 1; + arg2 = arg2 + 2; + ret1 = arg1 + 3; + ret2 = arg2 + 4; + } + }""" + with slither_from_source(src) as slither: + verify_properties_hold(slither) + f = slither.contracts[0].functions[0] + + # Ensure all LocalIRVariables (not TemporaryVariables) have index 1 + assert all( + map( + lambda x: x.lvalue.index == 1 or not isinstance(x.lvalue, LocalIRVariable), + get_ssa_of_type(f, OperationWithLValue), + ) + ) + + +@pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.", strict=True) +def test_memory_array(): + src = """ + contract MemArray { + struct A { + uint val1; + uint val2; + } + + function test_array() internal { + A[] memory a= new A[](4); + // Create REF_0 -> a_1[2] + accept_array_entry(a[2]); + + // Create REF_1 -> a_1[3] + accept_array_entry(a[3]); + + A memory alocal; + accept_array_entry(alocal); + + } + + // val_1 = ϕ(val_0, REF_0, REF_1, alocal_1) + // val_0 is an unknown external value + function accept_array_entry(A memory val) public returns (uint) { + uint zero = 0; + b(zero); + // Create REF_2 -> val_1.val1 + return b(val.val1); + } + + function b(uint arg) public returns (uint){ + // arg_1 = ϕ(arg_0, zero_1, REF_2) + return arg + 1; + } + }""" + with slither_from_source(src) as slither: + c = slither.contracts[0] + + ftest_array, faccept, fb = c.functions + + # Locate REF_0/REF_1/alocal (they are all args to the call) + accept_args = [x.arguments[0] for x in get_ssa_of_type(ftest_array, InternalCall)] + + # Check entrypoint of accept_array_entry, it should contain a phi-node + # of expected rvalues + [phi_entry_accept] = get_ssa_of_type(faccept.entry_point, Phi) + for arg in accept_args: + assert arg in phi_entry_accept.rvalues + # NOTE(hbrodin): There should be an additional val_0 in the phi-node. + # That additional val_0 indicates an external caller of this function. + assert len(phi_entry_accept.rvalues) == len(accept_args) + 1 + + # Args used to invoke b + b_args = [x.arguments[0] for x in get_ssa_of_type(faccept, InternalCall)] + + # Check entrypoint of B, it should contain a phi-node of expected + # rvalues + [phi_entry_b] = get_ssa_of_type(fb.entry_point, Phi) + for arg in b_args: + assert arg in phi_entry_b.rvalues + + # NOTE(hbrodin): There should be an additional arg_0 (see comment about phi_entry_accept). + assert len(phi_entry_b.rvalues) == len(b_args) + 1 + + +@pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.", strict=True) +def test_storage_array(): + src = """ + contract StorageArray { + struct A { + uint val1; + uint val2; + } + + // NOTE(hbrodin): a is never written, should only become a_0. Same for astorage (astorage_0). Phi-nodes at entry + // should only add new versions of a state variable if it is actually written. + A[] a; + A astorage; + + function test_array() internal { + accept_array_entry(a[2]); + accept_array_entry(a[3]); + accept_array_entry(astorage); + } + + function accept_array_entry(A storage val) internal returns (uint) { + // val is either a[2], a[3] or astorage_0. Ideally this could be identified. + uint five = 5; + + // NOTE(hbrodin): If the following line is enabled, there would ideally be a phi-node representing writes + // to either a or astorage. + //val.val2 = 4; + b(five); + return b(val.val1); + } + + function b(uint value) public returns (uint){ + // Expect a phi-node at the entrypoint + // value_1 = ϕ(value_0, five_0, REF_x), where REF_x is the reference to val.val1 in accept_array_entry. + return value + 1; + } + }""" + with slither_from_source(src) as slither: + c = slither.contracts[0] + _dump_functions(c) + ftest, faccept, fb = c.functions + + # None of a/astorage is written so expect that there are no phi-nodes at entrypoint. + assert len(get_ssa_of_type(ftest.entry_point, Phi)) == 0 + + # Expect all references to start from index 0 (no writes) + assert all(x.variable_left.index == 0 for x in get_ssa_of_type(ftest, Index)) + + [phi_entry_accept] = get_ssa_of_type(faccept.entry_point, Phi) + assert len(phi_entry_accept.rvalues) == 3 # See comment in b above + + [phi_entry_b] = get_ssa_of_type(fb.entry_point, Phi) + assert len(phi_entry_b.rvalues) == 3 # See comment in b above + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_issue_468(): + """ + Ensure issue 468 is corrected as per + https://github.com/crytic/slither/issues/468#issuecomment-620974151 + The one difference is that we allow the phi-function at entry of f to + hold exit state which contains init state and state from branch, which + is a bit redundant. This could be further simplified. + """ + source = """ + contract State { + int state = 0; + function f(int a) public returns (int) { + // phi-node here for state + if (a < 1) { + state += 1; + } + // phi-node here for state + return state; + } + } + """ + with slither_from_source(source) as slither: + c = slither.get_contract_from_name("State")[0] + f = [x for x in c.functions if x.name == "f"][0] + + # Check that there is an entry point phi values for each later value + # plus one additional which is the initial value + entry_ssa = f.entry_point.irs_ssa + assert len(entry_ssa) == 1 + phi_entry = entry_ssa[0] + assert isinstance(phi_entry, Phi) + + # Find the second phi function + endif_node = [x for x in f.nodes if x.type == NodeType.ENDIF][0] + assert len(endif_node.irs_ssa) == 1 + phi_endif = endif_node.irs_ssa[0] + assert isinstance(phi_endif, Phi) + + # Ensure second phi-function contains init-phi and one additional + assert len(phi_endif.rvalues) == 2 + assert phi_entry.lvalue in phi_endif.rvalues + + # Find return-statement and ensure it returns the phi_endif + return_node = [x for x in f.nodes if x.type == NodeType.RETURN][0] + assert len(return_node.irs_ssa) == 1 + ret = return_node.irs_ssa[0] + assert len(ret.values) == 1 + assert phi_endif.lvalue in ret.values + + # Ensure that the phi_endif (which is the end-state for function as well) is in the entry_phi + assert phi_endif.lvalue in phi_entry.rvalues + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_issue_434(): + source = """ + contract Contract { + int public a; + function f() public { + g(); + a += 1; + } + + function e() public { + a -= 1; + } + + function g() public { + e(); + } + } + """ + with slither_from_source(source) as slither: + c = slither.get_contract_from_name("Contract")[0] + + e = [x for x in c.functions if x.name == "e"][0] + f = [x for x in c.functions if x.name == "f"][0] + g = [x for x in c.functions if x.name == "g"][0] + + # Ensure there is a phi-node at the beginning of f and e + phi_entry_e = get_ssa_of_type(e.entry_point, Phi)[0] + phi_entry_f = get_ssa_of_type(f.entry_point, Phi)[0] + # But not at g + assert len(get_ssa_of_type(g, Phi)) == 0 + + # Ensure that the final states of f and e are in the entry-states + add_f = get_filtered_ssa( + f, lambda x: isinstance(x, Binary) and x.type == BinaryType.ADDITION + )[0] + sub_e = get_filtered_ssa( + e, lambda x: isinstance(x, Binary) and x.type == BinaryType.SUBTRACTION + )[0] + assert add_f.lvalue in phi_entry_f.rvalues + assert add_f.lvalue in phi_entry_e.rvalues + assert sub_e.lvalue in phi_entry_f.rvalues + assert sub_e.lvalue in phi_entry_e.rvalues + + # Ensure there is a phi-node after call to g + call = get_ssa_of_type(f, InternalCall)[0] + idx = call.node.irs_ssa.index(call) + aftercall_phi = call.node.irs_ssa[idx + 1] + assert isinstance(aftercall_phi, Phi) + + # Ensure that phi node ^ is used in the addition afterwards + assert aftercall_phi.lvalue in (add_f.variable_left, add_f.variable_right) + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_issue_473(): + source = """ + contract Contract { + function f() public returns (int) { + int a = 1; + if (a > 0) { + a = 2; + } + if (a == 3) { + a = 6; + } + return a; + } + } + """ + with slither_from_source(source) as slither: + c = slither.get_contract_from_name("Contract")[0] + f = c.functions[0] + + phis = get_ssa_of_type(f, Phi) + return_value = get_ssa_of_type(f, Return)[0] + + # There shall be two phi functions + assert len(phis) == 2 + first_phi = phis[0] + second_phi = phis[1] + + # The second phi is the one being returned, if it's the first swap them (iteration order) + if first_phi.lvalue in return_value.values: + first_phi, second_phi = second_phi, first_phi + + # First phi is for [a=1 or a=2] + assert len(first_phi.rvalues) == 2 + + # second is for [a=6 or first phi] + assert first_phi.lvalue in second_phi.rvalues + assert len(second_phi.rvalues) == 2 + + # return is for second phi + assert len(return_value.values) == 1 + assert second_phi.lvalue in return_value.values + + +def test_issue_1748(): + source = """ + contract Contract { + uint[] arr; + function foo(uint i) public { + arr = [1]; + } + } + """ + 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, InitArray) diff --git a/tests/unit/slithir/test_ternary_expressions.py b/tests/unit/slithir/test_ternary_expressions.py new file mode 100644 index 000000000..376048e1d --- /dev/null +++ b/tests/unit/slithir/test_ternary_expressions.py @@ -0,0 +1,43 @@ +from pathlib import Path +from solc_select import solc_select +from slither import Slither +from slither.core.cfg.node import NodeType +from slither.slithir.operations import Assignment +from slither.core.expressions import AssignmentOperation, TupleExpression + + +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" +# pylint: disable=too-many-nested-blocks +def test_ternary_conversions() -> None: + """This tests that true and false sons define the same number of variables that the father node declares""" + solc_select.switch_global_version("0.8.0", always_install=True) + slither = Slither(Path(TEST_DATA_DIR, "ternary_expressions.sol").as_posix()) + for contract in slither.contracts: + for function in contract.functions: + vars_declared = 0 + vars_assigned = 0 + for node in function.nodes: + if node.type in [NodeType.IF, NodeType.IFLOOP]: + + # Iterate over true and false son + for inner_node in node.sons: + # Count all variables declared + expression = inner_node.expression + if isinstance(expression, AssignmentOperation): + var_expr = expression.expression_left + # Only tuples declare more than one var + if isinstance(var_expr, TupleExpression): + vars_declared += len(var_expr.expressions) + else: + vars_declared += 1 + + for ir in inner_node.irs: + # Count all variables defined + if isinstance(ir, Assignment): + vars_assigned += 1 + + assert vars_declared == vars_assigned + + +if __name__ == "__main__": + test_ternary_conversions() diff --git a/tests/unit/utils/test_data/functions_ids.sol b/tests/unit/utils/test_data/functions_ids.sol new file mode 100644 index 000000000..2f4eea6a7 --- /dev/null +++ b/tests/unit/utils/test_data/functions_ids.sol @@ -0,0 +1,64 @@ +pragma experimental ABIEncoderV2; + +contract Contract{} + +contract C{ + + mapping(uint => address)[] public arrayOfMappings; + + mapping(uint => address[]) public normalMappingArrayField; + + enum State{a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a40,a41,a42,a43,a44,a45,a46,a47,a48,a49,a50,a51,a52,a53,a54,a55,a56,a57,a58,a59,a60,a61,a62,a63,a64,a65,a66,a67,a68,a69,a70,a71,a72,a73,a74,a75,a76,a77,a78,a79,a80,a81,a82,a83,a84,a85,a86,a87,a88,a89,a90,a91,a92,a93,a94,a95,a96,a97,a98,a99,a100,a101,a102,a103,a104,a105,a106,a107,a108,a109,a110,a111,a112,a113,a114,a115,a116,a117,a118,a119,a120,a121,a122,a123,a124,a125,a126,a127,a128,a129,a130,a131,a132,a133,a134,a135,a136,a137,a138,a139,a140,a141,a142,a143,a144,a145,a146,a147,a148,a149,a150,a151,a152,a153,a154,a155,a156,a157,a158,a159,a160,a161,a162,a163,a164,a165,a166,a167,a168,a169,a170,a171,a172,a173,a174,a175,a176,a177,a178,a179,a180,a181,a182,a183,a184,a185,a186,a187,a188,a189,a190,a191,a192,a193,a194,a195,a196,a197,a198,a199,a200,a201,a202,a203,a204,a205,a206,a207,a208,a209,a210,a211,a212,a213,a214,a215,a216,a217,a218,a219,a220,a221,a222,a223,a224,a225,a226,a227,a228,a229,a230,a231,a232,a233,a234,a235,a236,a237,a238,a239,a240,a241,a242,a243,a244,a245,a246,a247,a248,a249,a250,a251,a252,a253,a254,a255,a256} + mapping(State => uint) public stateMap; + + mapping(Contract => uint) public contractMap; + + uint[][] public multiDimensionalArray; + + struct Simple { + uint a; + uint b; + mapping(uint => uint) c; + uint[] d; + function(uint) external returns (uint) e; + } + + Simple public simple; + + struct Inner { + uint a; + uint b; + } + + struct Outer { + Inner inner; + uint c; + } + + Outer public outer; + + + struct A { + Inner inner; + uint a; + } + struct B { + uint a; + Inner inner; + } + + A public a; + A[] public a_array; + mapping(address => B[]) public b_mapping_of_array; + + function function_with_struct(A memory a) public{} + + function function_with_array(A[] memory array, B memory b) public {} + + struct AnotherStruct{ + B b; + A[] a; + } + mapping(address => AnotherStruct[][]) public mapping_of_double_array_of_struct; +} + diff --git a/tests/unit/utils/test_data/type_helpers.sol b/tests/unit/utils/test_data/type_helpers.sol new file mode 100644 index 000000000..7440a5a33 --- /dev/null +++ b/tests/unit/utils/test_data/type_helpers.sol @@ -0,0 +1,12 @@ +contract A{ + + struct St{ + St[] a; + uint b; + } + + function f(St memory s) internal{ + f(s); + } + +} diff --git a/tests/unit/utils/test_functions_ids.py b/tests/unit/utils/test_functions_ids.py new file mode 100644 index 000000000..c944c5473 --- /dev/null +++ b/tests/unit/utils/test_functions_ids.py @@ -0,0 +1,64 @@ +from pathlib import Path +from solc_select import solc_select +from slither import Slither + +# % solc functions_ids.sol --hashes +# ======= functions_ids.sol:C ======= +# Function signatures: +# 0dbe671f: a() +# 4a1f689d: a_array(uint256) +# 98fc2aa5: arrayOfMappings(uint256,uint256) +# 4ea7a557: b_mapping_of_array(address,uint256) +# 3c0af344: contractMap(address) +# 20969954: function_with_array(((uint256,uint256),uint256)[],(uint256,(uint256,uint256))) +# 1c039831: function_with_struct(((uint256,uint256),uint256)) +# 37e66bae: mapping_of_double_array_of_struct(address,uint256,uint256) +# f29872a8: multiDimensionalArray(uint256,uint256) +# 9539e3c8: normalMappingArrayField(uint256,uint256) +# 87c3dbb6: outer() +# df201a46: simple() +# 5a20851f: stateMap(uint16) + +# {"contracts":{"functions_ids.sol:C":{"hashes":{"a()":"0dbe671f","a_array(uint256)":"4a1f689d","arrayOfMappings(uint256,uint256)":"98fc2aa5","b_mapping_of_array(address,uint256)":"4ea7a557","contractMap(address)":"3c0af344","function_with_array(((uint256,uint256),uint256)[],(uint256,(uint256,uint256)))":"20969954","function_with_struct(((uint256,uint256),uint256))":"1c039831","mapping_of_double_array_of_struct(address,uint256,uint256)":"37e66bae","multiDimensionalArray(uint256,uint256)":"f29872a8","normalMappingArrayField(uint256,uint256)":"9539e3c8","outer()":"87c3dbb6","simple()":"df201a46","stateMap(uint16)":"5a20851f"}},"functions_ids.sol:Contract":{"hashes":{}}},"version":"0.7.0+commit.9e61f92b.Darwin.appleclang"} +from slither.utils.function import get_function_id + +signatures = { + "a()": "0dbe671f", + "a_array(uint256)": "4a1f689d", + "arrayOfMappings(uint256,uint256)": "98fc2aa5", + "b_mapping_of_array(address,uint256)": "4ea7a557", + "contractMap(address)": "3c0af344", + "function_with_array(((uint256,uint256),uint256)[],(uint256,(uint256,uint256)))": "20969954", + "function_with_struct(((uint256,uint256),uint256))": "1c039831", + "mapping_of_double_array_of_struct(address,uint256,uint256)": "37e66bae", + "multiDimensionalArray(uint256,uint256)": "f29872a8", + "normalMappingArrayField(uint256,uint256)": "9539e3c8", + "outer()": "87c3dbb6", + "simple()": "df201a46", + "stateMap(uint16)": "5a20851f", +} + +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" + + +def test_functions_ids() -> None: + solc_select.switch_global_version("0.7.0", always_install=True) + file = Path(TEST_DATA_DIR, "functions_ids.sol").as_posix() + sl = Slither(file) + contracts_c = sl.get_contract_from_name("C") + assert len(contracts_c) == 1 + contract_c = contracts_c[0] + + for sig, hashes in signatures.items(): + func = contract_c.get_function_from_signature(sig) + if not func: + var_name = sig[: sig.find("(")] + var = contract_c.get_state_variable_from_name(var_name) + assert var + assert get_function_id(var.solidity_signature) == int(hashes, 16) + else: + assert get_function_id(func.solidity_signature) == int(hashes, 16) + + +if __name__ == "__main__": + test_functions_ids() diff --git a/tests/unit/utils/test_type_helpers.py b/tests/unit/utils/test_type_helpers.py new file mode 100644 index 000000000..b6e913d33 --- /dev/null +++ b/tests/unit/utils/test_type_helpers.py @@ -0,0 +1,13 @@ +from pathlib import Path +from solc_select import solc_select +from slither import Slither + +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" + + +def test_function_id_rec_structure() -> None: + solc_select.switch_global_version("0.8.0", always_install=True) + slither = Slither(Path(TEST_DATA_DIR, "type_helpers.sol").as_posix()) + for compilation_unit in slither.compilation_units: + for function in compilation_unit.functions: + assert function.solidity_signature From cf281d4a8a3f6fca06086dbe27f6071be9e85054 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 20 Mar 2023 16:08:22 -0500 Subject: [PATCH 102/193] register moved folders --- tests/arithmetic_usage/test.sol | 29 - tests/collisions/a.sol | 18 - tests/collisions/b.sol | 18 - tests/complex_func.sol | 88 -- tests/constant_folding_binop.sol | 14 - tests/constant_folding_rational.sol | 9 - tests/constant_folding_unary.sol | 7 - tests/custom_comments/contract_comment.sol | 7 - tests/custom_comments/upgrade.sol | 16 - tests/deprecated_calls.sol | 27 - .../config}/config/slither.config.json | 0 tests/{ => e2e/config}/config/test.sol | 0 .../libs/ReentrancyMock1.sol | 0 .../libs/ReentrancyMock2.sol | 0 .../libs/ReentrancyMock3.sol | 0 .../test_path_filtering/slither.config.json | 0 .../src/ReentrancyMock.sol | 0 .../test_path_filtering.sol | 0 .../printers}/possible_paths/paths.sol | 0 .../printers}/possible_paths/paths.txt | 0 tests/function_features/abstract.sol | 5 - tests/function_features/implicit_abstract.sol | 5 - tests/function_ids/rec_struct-0.8.sol | 12 - tests/inheritance_graph.sol | 100 -- tests/lookup/private_variable.sol | 13 - tests/printers/functions_ids.sol | 64 - tests/slithir/operation_reads.sol | 17 - tests/slithir/ternary_expressions.sol | 52 - tests/slithir/test_operation_reads.py | 49 - tests/slithir/test_ternary_expressions.py | 40 - tests/source_mapping.sol | 22 - tests/source_unit/README.md | 3 - tests/source_unit/foundry.toml | 6 - tests/source_unit/script/Counter.s.sol | 12 - tests/source_unit/src/Counter.sol | 14 - tests/source_unit/src/Counter2.sol | 5 - tests/source_unit/test/Counter.t.sol | 24 - .../ReferencesUserDefinedAliases.sol | 19 - .../ReferencesUserDefinedTypesCasting.sol | 19 - tests/src_mapping/inheritance.sol | 35 - tests/storage-layout/StorageLayout.abi | 1 - tests/storage-layout/StorageLayout.bin | 1 - tests/storage-layout/TEST_storage_layout.json | 576 --------- .../storage-layout/storage_layout-0.8.10.sol | 74 -- tests/taint_mapping.sol | 18 - tests/test_constant_folding.py | 101 -- tests/test_cyclic_import/a.sol | 5 - tests/test_cyclic_import/b.sol | 5 - tests/test_features.py | 225 ---- tests/test_function.py | 297 ----- tests/test_function.sol | 130 -- tests/test_function_reentrant.sol | 36 - tests/test_functions_ids.py | 60 - tests/test_node_modules/contracts/MyCoin.sol | 8 - tests/test_node_modules/hardhat.config.js | 6 - .../contracts/access/AccessControl.sol | 223 ---- .../access/AccessControlEnumerable.sol | 64 - .../contracts/access/IAccessControl.sol | 88 -- .../access/IAccessControlEnumerable.sol | 31 - .../contracts/access/Ownable.sol | 76 -- .../contracts/finance/PaymentSplitter.sol | 189 --- .../contracts/finance/VestingWallet.sol | 135 --- .../contracts/governance/Governor.sol | 357 ------ .../contracts/governance/IGovernor.sol | 218 ---- .../governance/TimelockController.sol | 353 ------ .../GovernorCompatibilityBravo.sol | 288 ----- .../IGovernorCompatibilityBravo.sol | 114 -- .../extensions/GovernorCountingSimple.sol | 106 -- .../extensions/GovernorProposalThreshold.sol | 23 - .../extensions/GovernorSettings.sol | 114 -- .../extensions/GovernorTimelockCompound.sol | 244 ---- .../extensions/GovernorTimelockControl.sol | 154 --- .../governance/extensions/GovernorVotes.sol | 28 - .../extensions/GovernorVotesComp.sol | 27 - .../GovernorVotesQuorumFraction.sol | 50 - .../extensions/IGovernorTimelock.sol | 26 - .../contracts/interfaces/IERC1155.sol | 6 - .../interfaces/IERC1155MetadataURI.sol | 6 - .../contracts/interfaces/IERC1155Receiver.sol | 6 - .../contracts/interfaces/IERC1271.sol | 19 - .../contracts/interfaces/IERC1363.sol | 95 -- .../contracts/interfaces/IERC1363Receiver.sol | 32 - .../contracts/interfaces/IERC1363Spender.sol | 30 - .../contracts/interfaces/IERC165.sol | 6 - .../interfaces/IERC1820Implementer.sol | 6 - .../contracts/interfaces/IERC1820Registry.sol | 6 - .../contracts/interfaces/IERC20.sol | 6 - .../contracts/interfaces/IERC20Metadata.sol | 6 - .../contracts/interfaces/IERC2981.sol | 23 - .../contracts/interfaces/IERC3156.sol | 7 - .../interfaces/IERC3156FlashBorrower.sol | 29 - .../interfaces/IERC3156FlashLender.sol | 43 - .../contracts/interfaces/IERC721.sol | 6 - .../interfaces/IERC721Enumerable.sol | 6 - .../contracts/interfaces/IERC721Metadata.sol | 6 - .../contracts/interfaces/IERC721Receiver.sol | 6 - .../contracts/interfaces/IERC777.sol | 6 - .../contracts/interfaces/IERC777Recipient.sol | 6 - .../contracts/interfaces/IERC777Sender.sol | 6 - .../contracts/interfaces/draft-IERC2612.sol | 8 - .../contracts/metatx/ERC2771Context.sol | 40 - .../contracts/metatx/MinimalForwarder.sol | 59 - .../@openzeppelin/contracts/package.json | 62 - .../@openzeppelin/contracts/proxy/Clones.sol | 84 -- .../contracts/proxy/ERC1967/ERC1967Proxy.sol | 33 - .../proxy/ERC1967/ERC1967Upgrade.sol | 194 --- .../@openzeppelin/contracts/proxy/Proxy.sol | 86 -- .../contracts/proxy/beacon/BeaconProxy.sol | 62 - .../contracts/proxy/beacon/IBeacon.sol | 16 - .../proxy/beacon/UpgradeableBeacon.sol | 65 - .../proxy/transparent/ProxyAdmin.sol | 81 -- .../TransparentUpgradeableProxy.sol | 125 -- .../contracts/proxy/utils/Initializable.sol | 62 - .../contracts/proxy/utils/UUPSUpgradeable.sol | 73 -- .../contracts/security/Pausable.sol | 91 -- .../contracts/security/PullPayment.sol | 70 -- .../contracts/security/ReentrancyGuard.sol | 63 - .../contracts/token/ERC1155/ERC1155.sol | 464 ------- .../contracts/token/ERC1155/IERC1155.sol | 125 -- .../token/ERC1155/IERC1155Receiver.sol | 53 - .../ERC1155/extensions/ERC1155Burnable.sol | 40 - .../ERC1155/extensions/ERC1155Pausable.sol | 38 - .../ERC1155/extensions/ERC1155Supply.sol | 58 - .../extensions/IERC1155MetadataURI.sol | 22 - .../presets/ERC1155PresetMinterPauser.sol | 126 -- .../token/ERC1155/utils/ERC1155Holder.sol | 31 - .../token/ERC1155/utils/ERC1155Receiver.sol | 19 - .../contracts/token/ERC20/ERC20.sol | 356 ------ .../contracts/token/ERC20/IERC20.sol | 82 -- .../token/ERC20/extensions/ERC20Burnable.sol | 43 - .../token/ERC20/extensions/ERC20Capped.sol | 37 - .../token/ERC20/extensions/ERC20FlashMint.sol | 77 -- .../token/ERC20/extensions/ERC20Pausable.sol | 33 - .../token/ERC20/extensions/ERC20Snapshot.sol | 195 --- .../token/ERC20/extensions/ERC20Votes.sol | 260 ---- .../token/ERC20/extensions/ERC20VotesComp.sol | 48 - .../token/ERC20/extensions/ERC20Wrapper.sol | 52 - .../token/ERC20/extensions/IERC20Metadata.sol | 28 - .../ERC20/extensions/draft-ERC20Permit.sol | 87 -- .../ERC20/extensions/draft-IERC20Permit.sol | 60 - .../ERC20/presets/ERC20PresetFixedSupply.sol | 33 - .../ERC20/presets/ERC20PresetMinterPauser.sol | 92 -- .../contracts/token/ERC20/utils/SafeERC20.sol | 99 -- .../token/ERC20/utils/TokenTimelock.sol | 70 -- .../contracts/token/ERC721/ERC721.sol | 424 ------- .../contracts/token/ERC721/IERC721.sol | 143 --- .../token/ERC721/IERC721Receiver.sol | 27 - .../ERC721/extensions/ERC721Burnable.sol | 26 - .../ERC721/extensions/ERC721Enumerable.sol | 163 --- .../ERC721/extensions/ERC721Pausable.sol | 33 - .../ERC721/extensions/ERC721URIStorage.sol | 67 - .../ERC721/extensions/IERC721Enumerable.sol | 29 - .../ERC721/extensions/IERC721Metadata.sol | 27 - .../ERC721PresetMinterPauserAutoId.sol | 137 --- .../token/ERC721/utils/ERC721Holder.sol | 28 - .../contracts/token/ERC777/ERC777.sol | 539 --------- .../contracts/token/ERC777/IERC777.sol | 193 --- .../token/ERC777/IERC777Recipient.sol | 35 - .../contracts/token/ERC777/IERC777Sender.sol | 35 - .../presets/ERC777PresetFixedSupply.sol | 30 - .../@openzeppelin/contracts/utils/Address.sol | 217 ---- .../@openzeppelin/contracts/utils/Arrays.sol | 48 - .../@openzeppelin/contracts/utils/Context.sol | 24 - .../contracts/utils/Counters.sol | 43 - .../@openzeppelin/contracts/utils/Create2.sol | 65 - .../contracts/utils/Multicall.sol | 24 - .../contracts/utils/StorageSlot.sol | 84 -- .../@openzeppelin/contracts/utils/Strings.sol | 67 - .../@openzeppelin/contracts/utils/Timers.sol | 73 -- .../contracts/utils/cryptography/ECDSA.sol | 234 ---- .../utils/cryptography/MerkleProof.sol | 52 - .../utils/cryptography/SignatureChecker.sol | 36 - .../utils/cryptography/draft-EIP712.sol | 104 -- .../utils/escrow/ConditionalEscrow.sol | 25 - .../contracts/utils/escrow/Escrow.sol | 63 - .../contracts/utils/escrow/RefundEscrow.sol | 100 -- .../contracts/utils/introspection/ERC165.sol | 29 - .../utils/introspection/ERC165Checker.sol | 113 -- .../utils/introspection/ERC165Storage.sol | 42 - .../introspection/ERC1820Implementer.sol | 44 - .../contracts/utils/introspection/IERC165.sol | 25 - .../introspection/IERC1820Implementer.sol | 20 - .../utils/introspection/IERC1820Registry.sol | 116 -- .../contracts/utils/math/Math.sol | 43 - .../contracts/utils/math/SafeCast.sol | 241 ---- .../contracts/utils/math/SafeMath.sol | 227 ---- .../contracts/utils/math/SignedSafeMath.sol | 68 -- .../contracts/utils/structs/BitMaps.sol | 55 - .../contracts/utils/structs/EnumerableMap.sol | 240 ---- .../contracts/utils/structs/EnumerableSet.sol | 357 ------ tests/test_node_modules/package.json | 6 - tests/test_source_mapping.py | 133 -- tests/test_source_unit.py | 43 - tests/test_ssa_generation.py | 1078 ----------------- tests/test_storage_layout.py | 39 - tests/{ => tools}/check-erc/erc20.sol | 0 tests/{ => tools}/check-erc/test_1.txt | 0 .../check-kspec/safeAdd/safeAdd.sol | 0 tests/{ => tools}/check-kspec/safeAdd/spec.md | 0 tests/{ => tools}/check-kspec/test_1.txt | 0 .../check-upgradeability/contractV1.sol | 0 .../contractV1_struct.sol | 0 .../check-upgradeability/contractV2.sol | 0 .../check-upgradeability/contractV2_bug.sol | 0 .../check-upgradeability/contractV2_bug2.sol | 0 .../contractV2_struct.sol | 0 .../contractV2_struct_bug.sol | 0 .../contract_initialization.sol | 0 .../contract_v1_var_init.sol | 0 .../contract_v2_constant.sol | 0 .../check-upgradeability/proxy.sol | 0 .../check-upgradeability/test_1.txt | 0 .../check-upgradeability/test_10.txt | 0 .../check-upgradeability/test_11.txt | 0 .../check-upgradeability/test_12.txt | 0 .../check-upgradeability/test_13.txt | 0 .../check-upgradeability/test_2.txt | 0 .../check-upgradeability/test_3.txt | 0 .../check-upgradeability/test_4.txt | 0 .../check-upgradeability/test_5.txt | 0 .../check-upgradeability/test_6.txt | 0 .../check-upgradeability/test_7.txt | 0 .../check-upgradeability/test_8.txt | 0 .../check-upgradeability/test_9.txt | 0 tests/{ => tools}/flat/file1.sol | 0 tests/{ => tools}/flat/file2.sol | 0 .../read-storage}/test_read_storage.py | 4 +- tests/{ => tools}/simil/test_1.txt | 0 .../src/MyTypeA.sol | 2 - .../src/MyTypeA/Casting.sol | 4 - .../src/MyTypeA/Math.sol | 5 - .../src/MyTypeA/Type.sol | 6 - .../src/MyTypeB.sol | 2 - .../src/MyTypeB/Casting.sol | 4 - .../src/MyTypeB/Math.sol | 6 - .../src/MyTypeB/Type.sol | 6 - tests/using-for-global-collision/src/Test.sol | 7 - tests/utils.py | 14 + 238 files changed, 16 insertions(+), 15628 deletions(-) delete mode 100644 tests/arithmetic_usage/test.sol delete mode 100644 tests/collisions/a.sol delete mode 100644 tests/collisions/b.sol delete mode 100644 tests/complex_func.sol delete mode 100644 tests/constant_folding_binop.sol delete mode 100644 tests/constant_folding_rational.sol delete mode 100644 tests/constant_folding_unary.sol delete mode 100644 tests/custom_comments/contract_comment.sol delete mode 100644 tests/custom_comments/upgrade.sol delete mode 100644 tests/deprecated_calls.sol rename tests/{ => e2e/config}/config/slither.config.json (100%) rename tests/{ => e2e/config}/config/test.sol (100%) rename tests/{ => e2e/config}/test_path_filtering/libs/ReentrancyMock1.sol (100%) rename tests/{ => e2e/config}/test_path_filtering/libs/ReentrancyMock2.sol (100%) rename tests/{ => e2e/config}/test_path_filtering/libs/ReentrancyMock3.sol (100%) rename tests/{ => e2e/config}/test_path_filtering/slither.config.json (100%) rename tests/{ => e2e/config}/test_path_filtering/src/ReentrancyMock.sol (100%) rename tests/{ => e2e/config}/test_path_filtering/test_path_filtering.sol (100%) rename tests/{ => e2e/printers}/possible_paths/paths.sol (100%) rename tests/{ => e2e/printers}/possible_paths/paths.txt (100%) delete mode 100644 tests/function_features/abstract.sol delete mode 100644 tests/function_features/implicit_abstract.sol delete mode 100644 tests/function_ids/rec_struct-0.8.sol delete mode 100644 tests/inheritance_graph.sol delete mode 100644 tests/lookup/private_variable.sol delete mode 100644 tests/printers/functions_ids.sol delete mode 100644 tests/slithir/operation_reads.sol delete mode 100644 tests/slithir/ternary_expressions.sol delete mode 100644 tests/slithir/test_operation_reads.py delete mode 100644 tests/slithir/test_ternary_expressions.py delete mode 100644 tests/source_mapping.sol delete mode 100644 tests/source_unit/README.md delete mode 100644 tests/source_unit/foundry.toml delete mode 100644 tests/source_unit/script/Counter.s.sol delete mode 100644 tests/source_unit/src/Counter.sol delete mode 100644 tests/source_unit/src/Counter2.sol delete mode 100644 tests/source_unit/test/Counter.t.sol delete mode 100644 tests/src_mapping/ReferencesUserDefinedAliases.sol delete mode 100644 tests/src_mapping/ReferencesUserDefinedTypesCasting.sol delete mode 100644 tests/src_mapping/inheritance.sol delete mode 100644 tests/storage-layout/StorageLayout.abi delete mode 100644 tests/storage-layout/StorageLayout.bin delete mode 100644 tests/storage-layout/TEST_storage_layout.json delete mode 100644 tests/storage-layout/storage_layout-0.8.10.sol delete mode 100644 tests/taint_mapping.sol delete mode 100644 tests/test_constant_folding.py delete mode 100644 tests/test_cyclic_import/a.sol delete mode 100644 tests/test_cyclic_import/b.sol delete mode 100644 tests/test_features.py delete mode 100644 tests/test_function.py delete mode 100644 tests/test_function.sol delete mode 100644 tests/test_function_reentrant.sol delete mode 100644 tests/test_functions_ids.py delete mode 100644 tests/test_node_modules/contracts/MyCoin.sol delete mode 100644 tests/test_node_modules/hardhat.config.js delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControl.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControlEnumerable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControl.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControlEnumerable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/access/Ownable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/finance/PaymentSplitter.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/finance/VestingWallet.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/Governor.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/IGovernor.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/TimelockController.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/GovernorCompatibilityBravo.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorProposalThreshold.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorSettings.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockCompound.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesComp.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155MetadataURI.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155Receiver.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Receiver.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Spender.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC165.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Implementer.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Registry.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20Metadata.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashBorrower.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashLender.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Enumerable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Metadata.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Receiver.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Recipient.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Sender.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/draft-IERC2612.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/metatx/MinimalForwarder.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/package.json delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Clones.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Proxy.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/security/Pausable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/security/PullPayment.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Pausable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Wrapper.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/TokenTimelock.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Pausable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/ERC777.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Sender.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Address.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Arrays.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Context.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Counters.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Create2.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Multicall.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Strings.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Timers.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/ConditionalEscrow.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/Escrow.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/RefundEscrow.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Storage.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC1820Implementer.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Implementer.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/Math.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SignedSafeMath.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol delete mode 100644 tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol delete mode 100644 tests/test_node_modules/package.json delete mode 100644 tests/test_source_mapping.py delete mode 100644 tests/test_source_unit.py delete mode 100644 tests/test_ssa_generation.py delete mode 100644 tests/test_storage_layout.py rename tests/{ => tools}/check-erc/erc20.sol (100%) rename tests/{ => tools}/check-erc/test_1.txt (100%) rename tests/{ => tools}/check-kspec/safeAdd/safeAdd.sol (100%) rename tests/{ => tools}/check-kspec/safeAdd/spec.md (100%) rename tests/{ => tools}/check-kspec/test_1.txt (100%) rename tests/{ => tools}/check-upgradeability/contractV1.sol (100%) rename tests/{ => tools}/check-upgradeability/contractV1_struct.sol (100%) rename tests/{ => tools}/check-upgradeability/contractV2.sol (100%) rename tests/{ => tools}/check-upgradeability/contractV2_bug.sol (100%) rename tests/{ => tools}/check-upgradeability/contractV2_bug2.sol (100%) rename tests/{ => tools}/check-upgradeability/contractV2_struct.sol (100%) rename tests/{ => tools}/check-upgradeability/contractV2_struct_bug.sol (100%) rename tests/{ => tools}/check-upgradeability/contract_initialization.sol (100%) rename tests/{ => tools}/check-upgradeability/contract_v1_var_init.sol (100%) rename tests/{ => tools}/check-upgradeability/contract_v2_constant.sol (100%) rename tests/{ => tools}/check-upgradeability/proxy.sol (100%) rename tests/{ => tools}/check-upgradeability/test_1.txt (100%) rename tests/{ => tools}/check-upgradeability/test_10.txt (100%) rename tests/{ => tools}/check-upgradeability/test_11.txt (100%) rename tests/{ => tools}/check-upgradeability/test_12.txt (100%) rename tests/{ => tools}/check-upgradeability/test_13.txt (100%) rename tests/{ => tools}/check-upgradeability/test_2.txt (100%) rename tests/{ => tools}/check-upgradeability/test_3.txt (100%) rename tests/{ => tools}/check-upgradeability/test_4.txt (100%) rename tests/{ => tools}/check-upgradeability/test_5.txt (100%) rename tests/{ => tools}/check-upgradeability/test_6.txt (100%) rename tests/{ => tools}/check-upgradeability/test_7.txt (100%) rename tests/{ => tools}/check-upgradeability/test_8.txt (100%) rename tests/{ => tools}/check-upgradeability/test_9.txt (100%) rename tests/{ => tools}/flat/file1.sol (100%) rename tests/{ => tools}/flat/file2.sol (100%) rename tests/{ => tools/read-storage}/test_read_storage.py (96%) rename tests/{ => tools}/simil/test_1.txt (100%) delete mode 100644 tests/using-for-global-collision/src/MyTypeA.sol delete mode 100644 tests/using-for-global-collision/src/MyTypeA/Casting.sol delete mode 100644 tests/using-for-global-collision/src/MyTypeA/Math.sol delete mode 100644 tests/using-for-global-collision/src/MyTypeA/Type.sol delete mode 100644 tests/using-for-global-collision/src/MyTypeB.sol delete mode 100644 tests/using-for-global-collision/src/MyTypeB/Casting.sol delete mode 100644 tests/using-for-global-collision/src/MyTypeB/Math.sol delete mode 100644 tests/using-for-global-collision/src/MyTypeB/Type.sol delete mode 100644 tests/using-for-global-collision/src/Test.sol create mode 100644 tests/utils.py diff --git a/tests/arithmetic_usage/test.sol b/tests/arithmetic_usage/test.sol deleted file mode 100644 index 7bda7e504..000000000 --- a/tests/arithmetic_usage/test.sol +++ /dev/null @@ -1,29 +0,0 @@ -function protected(uint a, uint b) returns(uint){ - return (a + b) * (a + b); -} - -function not_protected_asm(uint a, uint b) returns(uint){ - uint c; - assembly{ - c := mul(add(a,b), add(a,b)) - } - return c; -} - -function not_protected_unchecked(uint a, uint b) returns(uint){ - uint c; - unchecked{ - return (a + b) * (a + b); - } - -} - -contract A{ - - function f(uint a, uint b) public{ - protected(a,b); - not_protected_asm(a, b); - not_protected_unchecked(a, b); - } - -} \ No newline at end of file diff --git a/tests/collisions/a.sol b/tests/collisions/a.sol deleted file mode 100644 index f69f7e2e3..000000000 --- a/tests/collisions/a.sol +++ /dev/null @@ -1,18 +0,0 @@ -struct St{ - uint a; -} - -contract A{ - function f() public {} -} - -contract B0{ - A a; - St s; - function g() internal returns(uint){ - a.f(); - return s.a; - } -} - - diff --git a/tests/collisions/b.sol b/tests/collisions/b.sol deleted file mode 100644 index 31765f8f6..000000000 --- a/tests/collisions/b.sol +++ /dev/null @@ -1,18 +0,0 @@ -struct St{ - uint b; -} - -contract A{ - function h() public {} -} - -contract B1{ - A a; - St s; - function g() internal returns(uint){ - a.h(); - return s.b; - } -} - - diff --git a/tests/complex_func.sol b/tests/complex_func.sol deleted file mode 100644 index cdb716efd..000000000 --- a/tests/complex_func.sol +++ /dev/null @@ -1,88 +0,0 @@ -pragma solidity ^0.4.24; - -contract Complex { - int numberOfSides = 7; - string shape; - uint i0 = 0; - uint i1 = 0; - uint i2 = 0; - uint i3 = 0; - uint i4 = 0; - uint i5 = 0; - uint i6 = 0; - uint i7 = 0; - uint i8 = 0; - uint i9 = 0; - uint i10 = 0; - - - function computeShape() external { - if (numberOfSides <= 2) { - shape = "Cant be a shape!"; - } else if (numberOfSides == 3) { - shape = "Triangle"; - } else if (numberOfSides == 4) { - shape = "Square"; - } else if (numberOfSides == 5) { - shape = "Pentagon"; - } else if (numberOfSides == 6) { - shape = "Hexagon"; - } else if (numberOfSides == 7) { - shape = "Heptagon"; - } else if (numberOfSides == 8) { - shape = "Octagon"; - } else if (numberOfSides == 9) { - shape = "Nonagon"; - } else if (numberOfSides == 10) { - shape = "Decagon"; - } else if (numberOfSides == 11) { - shape = "Hendecagon"; - } else { - shape = "Your shape is more than 11 sides."; - } - } - - function complexExternalWrites() external { - Increment test1 = new Increment(); - test1.increaseBy1(); - test1.increaseBy1(); - test1.increaseBy1(); - test1.increaseBy1(); - test1.increaseBy1(); - - Increment test2 = new Increment(); - test2.increaseBy1(); - - address test3 = new Increment(); - test3.call(bytes4(keccak256("increaseBy2()"))); - - address test4 = new Increment(); - test4.call(bytes4(keccak256("increaseBy2()"))); - } - - function complexStateVars() external { - i0 = 1; - i1 = 1; - i2 = 1; - i3 = 1; - i4 = 1; - i5 = 1; - i6 = 1; - i7 = 1; - i8 = 1; - i9 = 1; - i10 = 1; - } -} - -contract Increment { - uint i = 0; - - function increaseBy1() public { - i += 1; - } - - function increaseBy2() public { - i += 2; - } -} \ No newline at end of file diff --git a/tests/constant_folding_binop.sol b/tests/constant_folding_binop.sol deleted file mode 100644 index 923418ce7..000000000 --- a/tests/constant_folding_binop.sol +++ /dev/null @@ -1,14 +0,0 @@ -contract BinOp { - uint a = 1 & 2; - uint b = 1 ^ 2; - uint c = 1 | 2; - bool d = 2 < 1; - bool e = 1 > 2; - bool f = 1 <= 2; - bool g = 1 >= 2; - bool h = 1 == 2; - bool i = 1 != 2; - bool j = true && false; - bool k = true || false; - uint l = uint(1) - uint(2); -} \ No newline at end of file diff --git a/tests/constant_folding_rational.sol b/tests/constant_folding_rational.sol deleted file mode 100644 index 193133824..000000000 --- a/tests/constant_folding_rational.sol +++ /dev/null @@ -1,9 +0,0 @@ -contract C { - uint256 constant a = 2.5 + 7 + 0.5; - int128 b = 6 / 3.0; - int64 constant c = 5 * 0.5 + 0.5; - int256 d = 1e3 + 5E2; - uint256 e = 2 ** 255; - uint256 f = 115792089237316195423570985008687907853269984665640564039457584_007_913_129_639_935; - int64 constant g = -7.0; -} \ No newline at end of file diff --git a/tests/constant_folding_unary.sol b/tests/constant_folding_unary.sol deleted file mode 100644 index 71c7b3d2e..000000000 --- a/tests/constant_folding_unary.sol +++ /dev/null @@ -1,7 +0,0 @@ -contract C { - int8 constant a = -7; - function f() public pure { - uint[-a] memory x; - x[0] = 2; - } -} \ No newline at end of file diff --git a/tests/custom_comments/contract_comment.sol b/tests/custom_comments/contract_comment.sol deleted file mode 100644 index 8f0fb5233..000000000 --- a/tests/custom_comments/contract_comment.sol +++ /dev/null @@ -1,7 +0,0 @@ -/** - * @title Test Contract - * @dev Test comment - */ -contract A{ - -} \ No newline at end of file diff --git a/tests/custom_comments/upgrade.sol b/tests/custom_comments/upgrade.sol deleted file mode 100644 index 96192df0b..000000000 --- a/tests/custom_comments/upgrade.sol +++ /dev/null @@ -1,16 +0,0 @@ -/// @custom:security isDelegatecallProxy -contract Proxy{ - -} - -/// @custom:security isUpgradeable -/// @custom:version name=version-0 -contract V0{ - -} - -/// @custom:security isUpgradeable -/// @custom:version name=version_1 -contract V1{ - -} \ No newline at end of file diff --git a/tests/deprecated_calls.sol b/tests/deprecated_calls.sol deleted file mode 100644 index 6321e4e76..000000000 --- a/tests/deprecated_calls.sol +++ /dev/null @@ -1,27 +0,0 @@ -contract ContractWithDeprecatedReferences { - bytes32 globalBlockHash = block.blockhash(0); - - // Deprecated: Change constant -> view - function functionWithDeprecatedThrow() public constant { - // Deprecated: Change msg.gas -> gasleft() - if(msg.gas == msg.value) { - // Deprecated: Change throw -> revert() - throw; - } - } - - // Deprecated: Change constant -> view - function functionWithDeprecatedReferences() public constant { - // Deprecated: Change sha3() -> keccak256() - bytes32 sha3Result = sha3("test deprecated sha3 usage"); - - // Deprecated: Change block.blockhash() -> blockhash() - bytes32 blockHashResult = block.blockhash(0); - - // Deprecated: Change callcode() -> delegatecall() - address(this).callcode(); - - // Deprecated: Change suicide() -> selfdestruct() - suicide(address(0)); - } -} \ No newline at end of file diff --git a/tests/config/slither.config.json b/tests/e2e/config/config/slither.config.json similarity index 100% rename from tests/config/slither.config.json rename to tests/e2e/config/config/slither.config.json diff --git a/tests/config/test.sol b/tests/e2e/config/config/test.sol similarity index 100% rename from tests/config/test.sol rename to tests/e2e/config/config/test.sol diff --git a/tests/test_path_filtering/libs/ReentrancyMock1.sol b/tests/e2e/config/test_path_filtering/libs/ReentrancyMock1.sol similarity index 100% rename from tests/test_path_filtering/libs/ReentrancyMock1.sol rename to tests/e2e/config/test_path_filtering/libs/ReentrancyMock1.sol diff --git a/tests/test_path_filtering/libs/ReentrancyMock2.sol b/tests/e2e/config/test_path_filtering/libs/ReentrancyMock2.sol similarity index 100% rename from tests/test_path_filtering/libs/ReentrancyMock2.sol rename to tests/e2e/config/test_path_filtering/libs/ReentrancyMock2.sol diff --git a/tests/test_path_filtering/libs/ReentrancyMock3.sol b/tests/e2e/config/test_path_filtering/libs/ReentrancyMock3.sol similarity index 100% rename from tests/test_path_filtering/libs/ReentrancyMock3.sol rename to tests/e2e/config/test_path_filtering/libs/ReentrancyMock3.sol diff --git a/tests/test_path_filtering/slither.config.json b/tests/e2e/config/test_path_filtering/slither.config.json similarity index 100% rename from tests/test_path_filtering/slither.config.json rename to tests/e2e/config/test_path_filtering/slither.config.json diff --git a/tests/test_path_filtering/src/ReentrancyMock.sol b/tests/e2e/config/test_path_filtering/src/ReentrancyMock.sol similarity index 100% rename from tests/test_path_filtering/src/ReentrancyMock.sol rename to tests/e2e/config/test_path_filtering/src/ReentrancyMock.sol diff --git a/tests/test_path_filtering/test_path_filtering.sol b/tests/e2e/config/test_path_filtering/test_path_filtering.sol similarity index 100% rename from tests/test_path_filtering/test_path_filtering.sol rename to tests/e2e/config/test_path_filtering/test_path_filtering.sol diff --git a/tests/possible_paths/paths.sol b/tests/e2e/printers/possible_paths/paths.sol similarity index 100% rename from tests/possible_paths/paths.sol rename to tests/e2e/printers/possible_paths/paths.sol diff --git a/tests/possible_paths/paths.txt b/tests/e2e/printers/possible_paths/paths.txt similarity index 100% rename from tests/possible_paths/paths.txt rename to tests/e2e/printers/possible_paths/paths.txt diff --git a/tests/function_features/abstract.sol b/tests/function_features/abstract.sol deleted file mode 100644 index b29f683c4..000000000 --- a/tests/function_features/abstract.sol +++ /dev/null @@ -1,5 +0,0 @@ -pragma solidity ^0.8.0; - -abstract contract ExplicitAbstract{ - function f() virtual public; -} diff --git a/tests/function_features/implicit_abstract.sol b/tests/function_features/implicit_abstract.sol deleted file mode 100644 index c46ccd821..000000000 --- a/tests/function_features/implicit_abstract.sol +++ /dev/null @@ -1,5 +0,0 @@ -pragma solidity ^0.5.0; - -contract ImplicitAbstract{ - function f() public; -} \ No newline at end of file diff --git a/tests/function_ids/rec_struct-0.8.sol b/tests/function_ids/rec_struct-0.8.sol deleted file mode 100644 index 7440a5a33..000000000 --- a/tests/function_ids/rec_struct-0.8.sol +++ /dev/null @@ -1,12 +0,0 @@ -contract A{ - - struct St{ - St[] a; - uint b; - } - - function f(St memory s) internal{ - f(s); - } - -} diff --git a/tests/inheritance_graph.sol b/tests/inheritance_graph.sol deleted file mode 100644 index 670777583..000000000 --- a/tests/inheritance_graph.sol +++ /dev/null @@ -1,100 +0,0 @@ -contract TestContractVar { - -} - -contract A { - uint public public_var = 1; - uint internal private_var = 1; - TestContractVar public public_contract; - TestContractVar internal private_contract; - - uint public shadowed_public_var = 1; - uint internal shadowed_private_var = 1; - TestContractVar public shadowed_public_contract; - TestContractVar internal shadowed_private_contract; - - function getValue() public pure returns (uint) { - return 0; - } - function notRedefined() public returns (uint) { - return getValue(); - } - - modifier testModifier { - assert(true); - _; - } - function testFunction() testModifier public returns (uint) { - return 0; - } -} - -contract B is A { - // This function overshadows A directly, and overshadows C indirectly (via 'G'->'D') - function getValue() public pure returns (uint) { - return 1; - } -} - -contract Good is A, B { - -} - -contract C is A { - - // This function overshadows A directly, and overshadows B indirectly (via 'G') - function getValue() public pure returns (uint) { - return super.getValue() + 1; - } -} - -contract D is B { - // This should overshadow A's definitions. - uint public shadowed_public_var = 2; - uint internal shadowed_private_var = 2; - TestContractVar public shadowed_public_contract; - TestContractVar internal shadowed_private_contract; -} - -contract E { - // Variables cannot indirectly shadow, so this should not be counted. - uint public public_var = 2; - uint internal private_var = 2; - TestContractVar public public_contract; - TestContractVar internal private_contract; - - // This should overshadow A's definition indirectly (via 'G'). - modifier testModifier { - assert(false); - _; - } -} - -contract F is B { - // This should overshadow A's definitions. - uint public shadowed_public_var = 2; - uint internal shadowed_private_var = 2; - TestContractVar public shadowed_public_contract; - TestContractVar internal shadowed_private_contract; - - // This should overshadow B's definition directly, as well as B's and C's indirectly (via 'G') - // (graph only outputs directly if both, so B direct and C indirect should be reported). - function getValue() public pure returns (uint) { - return 1; - } - - // This should indirectly shadow definition in A directly, and E indirectly (via 'G') - modifier testModifier { - assert(false); - _; - } -} - -contract G is B, C, D, E, F { - // This should overshadow definitions in A, D, and F - uint public shadowed_public_var = 3; - uint internal shadowed_private_var = 3; - TestContractVar public shadowed_public_contract; - - // This contract's multiple inheritance chain should cause indirect shadowing (c3 linearization shadowing). -} diff --git a/tests/lookup/private_variable.sol b/tests/lookup/private_variable.sol deleted file mode 100644 index 93f4d3dda..000000000 --- a/tests/lookup/private_variable.sol +++ /dev/null @@ -1,13 +0,0 @@ -contract A{ - uint private v = 10; -} - -contract B{ - uint v = 20; -} - -contract C is B, A{ - function f() public view returns(uint) { - return v; - } -} \ No newline at end of file diff --git a/tests/printers/functions_ids.sol b/tests/printers/functions_ids.sol deleted file mode 100644 index 2f4eea6a7..000000000 --- a/tests/printers/functions_ids.sol +++ /dev/null @@ -1,64 +0,0 @@ -pragma experimental ABIEncoderV2; - -contract Contract{} - -contract C{ - - mapping(uint => address)[] public arrayOfMappings; - - mapping(uint => address[]) public normalMappingArrayField; - - enum State{a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a40,a41,a42,a43,a44,a45,a46,a47,a48,a49,a50,a51,a52,a53,a54,a55,a56,a57,a58,a59,a60,a61,a62,a63,a64,a65,a66,a67,a68,a69,a70,a71,a72,a73,a74,a75,a76,a77,a78,a79,a80,a81,a82,a83,a84,a85,a86,a87,a88,a89,a90,a91,a92,a93,a94,a95,a96,a97,a98,a99,a100,a101,a102,a103,a104,a105,a106,a107,a108,a109,a110,a111,a112,a113,a114,a115,a116,a117,a118,a119,a120,a121,a122,a123,a124,a125,a126,a127,a128,a129,a130,a131,a132,a133,a134,a135,a136,a137,a138,a139,a140,a141,a142,a143,a144,a145,a146,a147,a148,a149,a150,a151,a152,a153,a154,a155,a156,a157,a158,a159,a160,a161,a162,a163,a164,a165,a166,a167,a168,a169,a170,a171,a172,a173,a174,a175,a176,a177,a178,a179,a180,a181,a182,a183,a184,a185,a186,a187,a188,a189,a190,a191,a192,a193,a194,a195,a196,a197,a198,a199,a200,a201,a202,a203,a204,a205,a206,a207,a208,a209,a210,a211,a212,a213,a214,a215,a216,a217,a218,a219,a220,a221,a222,a223,a224,a225,a226,a227,a228,a229,a230,a231,a232,a233,a234,a235,a236,a237,a238,a239,a240,a241,a242,a243,a244,a245,a246,a247,a248,a249,a250,a251,a252,a253,a254,a255,a256} - mapping(State => uint) public stateMap; - - mapping(Contract => uint) public contractMap; - - uint[][] public multiDimensionalArray; - - struct Simple { - uint a; - uint b; - mapping(uint => uint) c; - uint[] d; - function(uint) external returns (uint) e; - } - - Simple public simple; - - struct Inner { - uint a; - uint b; - } - - struct Outer { - Inner inner; - uint c; - } - - Outer public outer; - - - struct A { - Inner inner; - uint a; - } - struct B { - uint a; - Inner inner; - } - - A public a; - A[] public a_array; - mapping(address => B[]) public b_mapping_of_array; - - function function_with_struct(A memory a) public{} - - function function_with_array(A[] memory array, B memory b) public {} - - struct AnotherStruct{ - B b; - A[] a; - } - mapping(address => AnotherStruct[][]) public mapping_of_double_array_of_struct; -} - diff --git a/tests/slithir/operation_reads.sol b/tests/slithir/operation_reads.sol deleted file mode 100644 index 22adc2288..000000000 --- a/tests/slithir/operation_reads.sol +++ /dev/null @@ -1,17 +0,0 @@ - -contract Placeholder { - constructor() payable {} -} - -contract NewContract { - bytes32 internal constant state_variable_read = bytes32(0); - - function readAllStateVariables() external { - new Placeholder{salt: state_variable_read} (); - } - - function readAllLocalVariables() external { - bytes32 local_variable_read = bytes32(0); - new Placeholder{salt: local_variable_read} (); - } -} \ No newline at end of file diff --git a/tests/slithir/ternary_expressions.sol b/tests/slithir/ternary_expressions.sol deleted file mode 100644 index c73a2b6b3..000000000 --- a/tests/slithir/ternary_expressions.sol +++ /dev/null @@ -1,52 +0,0 @@ -interface Test { - function test() external payable returns (uint); - function testTuple() external payable returns (uint, uint); -} -contract C { - // TODO - // 1) support variable declarations - //uint min = 1 > 0 ? 1 : 2; - // 2) suppory ternary index range access - // function e(bool cond, bytes calldata x) external { - // bytes memory a = x[cond ? 1 : 2 :]; - // } - function a(uint a, uint b) external { - (uint min, uint max) = a < b ? (a, b) : (b, a); - } - function b( address a, address b) external { - (address tokenA, address tokenB) = a < b ? (a, b) : (b, a); - } - - bytes char; - function c(bytes memory strAddress, uint i, uint padding, uint length) external { - char[0] = strAddress[i < padding + 2 ? i : 42 + i - length]; - } - - function d(bool cond, bytes calldata x) external { - bytes1 a = x[cond ? 1 : 2]; - } - - function e(address one, address two) public { - uint x = Test(one).test{value: msg.sender == two ? 1 : 2, gas: true ? 2 : gasleft()}(); - } - - // Parenthetical expression - function f(address one, address two) public { - uint x = Test(one).test{value: msg.sender == two ? 1 : 2, gas: true ? (1 == 1 ? 1 : 2) : gasleft()}(); - } - - // Unused tuple variable - function g(address one) public { - (, uint x) = Test(one).testTuple(); - } - - uint[] myIntegers; - function _h(uint c) internal returns(uint) { - return c; - } - function h(bool cond, uint a, uint b) public { - uint d = _h( - myIntegers[cond ? a : b] - ); - } -} diff --git a/tests/slithir/test_operation_reads.py b/tests/slithir/test_operation_reads.py deleted file mode 100644 index aa183333f..000000000 --- a/tests/slithir/test_operation_reads.py +++ /dev/null @@ -1,49 +0,0 @@ -from collections import namedtuple -from slither import Slither -from slither.slithir.operations import Operation, NewContract - - -def check_num_local_vars_read(function, slithir_op: Operation, num_reads_expected: int): - for node in function.nodes: - for operation in node.irs: - if isinstance(operation, slithir_op): - assert len(operation.read) == num_reads_expected - assert len(node.local_variables_read) == num_reads_expected - - -def check_num_states_vars_read(function, slithir_op: Operation, num_reads_expected: int): - for node in function.nodes: - for operation in node.irs: - if isinstance(operation, slithir_op): - assert len(operation.read) == num_reads_expected - assert len(node.state_variables_read) == num_reads_expected - - -OperationTest = namedtuple("OperationTest", "contract_name slithir_op") - -OPERATION_TEST = [OperationTest("NewContract", NewContract)] - - -def test_operation_reads() -> None: - """ - Every slithir operation has its own contract and reads all local and state variables in readAllLocalVariables and readAllStateVariables, respectively. - """ - slither = Slither("./tests/slithir/operation_reads.sol") - - for op_test in OPERATION_TEST: - print(op_test) - available = slither.get_contract_from_name(op_test.contract_name) - assert len(available) == 1 - target = available[0] - - num_state_variables = len(target.state_variables_ordered) - state_function = target.get_function_from_signature("readAllStateVariables()") - check_num_states_vars_read(state_function, op_test.slithir_op, num_state_variables) - - local_function = target.get_function_from_signature("readAllLocalVariables()") - num_local_vars = len(local_function.local_variables) - check_num_local_vars_read(local_function, op_test.slithir_op, num_local_vars) - - -if __name__ == "__main__": - test_operation_reads() diff --git a/tests/slithir/test_ternary_expressions.py b/tests/slithir/test_ternary_expressions.py deleted file mode 100644 index a1f00eb4f..000000000 --- a/tests/slithir/test_ternary_expressions.py +++ /dev/null @@ -1,40 +0,0 @@ -from solc_select import solc_select -from slither import Slither -from slither.core.cfg.node import NodeType -from slither.slithir.operations import Assignment -from slither.core.expressions import AssignmentOperation, TupleExpression - -# pylint: disable=too-many-nested-blocks -def test_ternary_conversions() -> None: - """This tests that true and false sons define the same number of variables that the father node declares""" - solc_select.switch_global_version("0.8.0", always_install=True) - slither = Slither("./tests/slithir/ternary_expressions.sol") - for contract in slither.contracts: - for function in contract.functions: - vars_declared = 0 - vars_assigned = 0 - for node in function.nodes: - if node.type in [NodeType.IF, NodeType.IFLOOP]: - - # Iterate over true and false son - for inner_node in node.sons: - # Count all variables declared - expression = inner_node.expression - if isinstance(expression, AssignmentOperation): - var_expr = expression.expression_left - # Only tuples declare more than one var - if isinstance(var_expr, TupleExpression): - vars_declared += len(var_expr.expressions) - else: - vars_declared += 1 - - for ir in inner_node.irs: - # Count all variables defined - if isinstance(ir, Assignment): - vars_assigned += 1 - - assert vars_declared == vars_assigned - - -if __name__ == "__main__": - test_ternary_conversions() diff --git a/tests/source_mapping.sol b/tests/source_mapping.sol deleted file mode 100644 index 771f2daed..000000000 --- a/tests/source_mapping.sol +++ /dev/null @@ -1,22 +0,0 @@ -contract A{ - - // ëëëëëëëëëëëëë这这这这这这这这这这 - - address unused; - - - address unused2; - - - // ই এই এই এইই এই এই এইই এই এই এই - - address unused3; - - - address unused4; - - // 这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这这 - address used; - - -} diff --git a/tests/source_unit/README.md b/tests/source_unit/README.md deleted file mode 100644 index 9cf3657e0..000000000 --- a/tests/source_unit/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# README - -Before using this project, run `forge init --no-git --no-commit --force` to initialize submodules diff --git a/tests/source_unit/foundry.toml b/tests/source_unit/foundry.toml deleted file mode 100644 index e6810b2b5..000000000 --- a/tests/source_unit/foundry.toml +++ /dev/null @@ -1,6 +0,0 @@ -[profile.default] -src = 'src' -out = 'out' -libs = ['lib'] - -# See more config options https://github.com/foundry-rs/foundry/tree/master/config \ No newline at end of file diff --git a/tests/source_unit/script/Counter.s.sol b/tests/source_unit/script/Counter.s.sol deleted file mode 100644 index 0e546aba3..000000000 --- a/tests/source_unit/script/Counter.s.sol +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -import "forge-std/Script.sol"; - -contract CounterScript is Script { - function setUp() public {} - - function run() public { - vm.broadcast(); - } -} diff --git a/tests/source_unit/src/Counter.sol b/tests/source_unit/src/Counter.sol deleted file mode 100644 index aded7997b..000000000 --- a/tests/source_unit/src/Counter.sol +++ /dev/null @@ -1,14 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -contract Counter { - uint256 public number; - - function setNumber(uint256 newNumber) public { - number = newNumber; - } - - function increment() public { - number++; - } -} diff --git a/tests/source_unit/src/Counter2.sol b/tests/source_unit/src/Counter2.sol deleted file mode 100644 index fa830a446..000000000 --- a/tests/source_unit/src/Counter2.sol +++ /dev/null @@ -1,5 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -contract Counter { -} diff --git a/tests/source_unit/test/Counter.t.sol b/tests/source_unit/test/Counter.t.sol deleted file mode 100644 index 30235e8a8..000000000 --- a/tests/source_unit/test/Counter.t.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -import "forge-std/Test.sol"; -import "../src/Counter.sol"; - -contract CounterTest is Test { - Counter public counter; - - function setUp() public { - counter = new Counter(); - counter.setNumber(0); - } - - function testIncrement() public { - counter.increment(); - assertEq(counter.number(), 1); - } - - function testSetNumber(uint256 x) public { - counter.setNumber(x); - assertEq(counter.number(), x); - } -} diff --git a/tests/src_mapping/ReferencesUserDefinedAliases.sol b/tests/src_mapping/ReferencesUserDefinedAliases.sol deleted file mode 100644 index 68fac48af..000000000 --- a/tests/src_mapping/ReferencesUserDefinedAliases.sol +++ /dev/null @@ -1,19 +0,0 @@ -pragma solidity 0.8.16; - -type aliasTopLevel is uint; - -contract C -{ - type aliasContractLevel is uint; -} - -contract Test -{ - aliasTopLevel a; - C.aliasContractLevel b; -} - -function f(aliasTopLevel, C.aliasContractLevel) -{ - -} \ No newline at end of file diff --git a/tests/src_mapping/ReferencesUserDefinedTypesCasting.sol b/tests/src_mapping/ReferencesUserDefinedTypesCasting.sol deleted file mode 100644 index 1c23f0d5c..000000000 --- a/tests/src_mapping/ReferencesUserDefinedTypesCasting.sol +++ /dev/null @@ -1,19 +0,0 @@ -pragma solidity 0.8.16; - -interface A -{ - function a() external; -} - -contract C -{ - function g(address _address) private - { - A(_address).a(); - } -} - -function f(address _address) -{ - A(_address).a(); -} \ No newline at end of file diff --git a/tests/src_mapping/inheritance.sol b/tests/src_mapping/inheritance.sol deleted file mode 100644 index 4c3ff92ee..000000000 --- a/tests/src_mapping/inheritance.sol +++ /dev/null @@ -1,35 +0,0 @@ -contract A{ - - function f() public virtual { - - } - - function test() public { - f(); - } - -} - -contract B is A{ - - function f() public override { - - } - -} - -contract C is A{ - - function f() public override { - - } - - function test2() public { - f(); - } - -} - -contract D is A{ - -} diff --git a/tests/storage-layout/StorageLayout.abi b/tests/storage-layout/StorageLayout.abi deleted file mode 100644 index a60ca0661..000000000 --- a/tests/storage-layout/StorageLayout.abi +++ /dev/null @@ -1 +0,0 @@ -[{"inputs":[],"name":"store","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/tests/storage-layout/StorageLayout.bin b/tests/storage-layout/StorageLayout.bin deleted file mode 100644 index 11163c2f0..000000000 --- a/tests/storage-layout/StorageLayout.bin +++ /dev/null @@ -1 +0,0 @@ -608060405260016000806101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555060016000601f6101000a81548160ff02191690831515021790555060405180604001604052806000601f9054906101000a900460ff161515815260200160008054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16815250600160008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050506040518060400160405280601481526020017f736c69746865722d726561642d73746f7261676500000000000000000000000081525060079080519060200190620001b6929190620002b2565b5060088060006101000a81548160ff021916908360ff1602179055507f6161616161616161000000000000000000000000000000000000000000000000600860016101000a81548167ffffffffffffffff021916908360c01c02179055506000600860096101000a81548160ff021916908360028111156200023d576200023c62000362565b5b021790555060016008600a6101000a81548160ff021916908360028111156200026b576200026a62000362565b5b021790555060026008600b6101000a81548160ff0219169083600281111562000299576200029862000362565b5b0217905550348015620002ab57600080fd5b50620003f6565b828054620002c090620003c0565b90600052602060002090601f016020900481019282620002e4576000855562000330565b82601f10620002ff57805160ff191683800117855562000330565b8280016001018555821562000330579182015b828111156200032f57825182559160200191906001019062000312565b5b5090506200033f919062000343565b5090565b5b808211156200035e57600081600090555060010162000344565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003d957607f821691505b60208210811415620003f057620003ef62000391565b5b50919050565b610fd780620004066000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063975057e714610030575b600080fd5b61003861003a565b005b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461009557600080fd5b33600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260008060009054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083151502179055506000820160019054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550905050600160036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008060009054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083151502179055506000820160019054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550905050600160046000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006002815260200190815260200160002060006101000a81548160ff0219169083151502179055506040518060600160405280600160ff168152602001600260ff168152602001600360ff1681525060099060036104b8929190610ddd565b50600c600990806001815401808255809150506001900390600052602060002090600302016000909190919091509060036104f4929190610e22565b50600c6040518060600160405280600460ff168152602001600560ff168152602001600660ff168152509080600181540180825580915050600190039060005260206000209060030201600090919091909150906003610555929190610ddd565b50600d60006003811061056b5761056a610f72565b5b0160079080600181540180825580915050600190039060005260206000200160009091909190915055600d6001600381106105a9576105a8610f72565b5b0160089080600181540180825580915050600190039060005260206000200160009091909190915055600d6001600381106105e7576105e6610f72565b5b0160099080600181540180825580915050600190039060005260206000200160009091909190915055600d60026003811061062557610624610f72565b5b01600a9080600181540180825580915050600190039060005260206000200160009091909190915055600d60026003811061066357610662610f72565b5b01600b9080600181540180825580915050600190039060005260206000200160009091909190915055600d6002600381106106a1576106a0610f72565b5b01600c908060018154018082558091505060019003906000526020600020016000909190919091505560106040518060200160405280600d60ff1681525090806001815401808255809150506001900390600052602060002001600090919091909150906001610712929190610e5f565b5060106040518060400160405280600e60ff168152602001600f60ff1681525090806001815401808255809150506001900390600052602060002001600090919091909150906002610765929190610eb1565b5060106040518060600160405280601060ff168152602001601160ff168152602001601260ff16815250908060018154018082558091505060019003906000526020600020016000909190919091509060036107c2929190610f03565b5060116001908060018154018082558091505060019003906000526020600020016000909190919091506000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083151502179055506000820160019054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550505060116040518060400160405280600015158152602001600a7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050506001601260006003811061099a57610999610f72565b5b016000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083151502179055506000820160019054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602179055509050506040518060400160405280600015158152602001600a7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152506012600160038110610aa257610aa1610f72565b5b0160008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555090505060056000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206011600081548110610b9957610b98610f72565b5b90600052602060002001908060018154018082558091505060019003906000526020600020016000909190919091506000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083151502179055506000820160019054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550505060056000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206011600181548110610cf557610cf4610f72565b5b90600052602060002001908060018154018082558091505060019003906000526020600020016000909190919091506000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083151502179055506000820160019054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168160000160016101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602179055505050565b8260038101928215610e11579160200282015b82811115610e10578251829060ff16905591602001919060010190610df0565b5b509050610e1e9190610f55565b5090565b8260038101928215610e4e579182015b82811115610e4d578254825591600101919060010190610e32565b5b509050610e5b9190610f55565b5090565b828054828255906000526020600020908101928215610ea0579160200282015b82811115610e9f578251829060ff16905591602001919060010190610e7f565b5b509050610ead9190610f55565b5090565b828054828255906000526020600020908101928215610ef2579160200282015b82811115610ef1578251829060ff16905591602001919060010190610ed1565b5b509050610eff9190610f55565b5090565b828054828255906000526020600020908101928215610f44579160200282015b82811115610f43578251829060ff16905591602001919060010190610f23565b5b509050610f519190610f55565b5090565b5b80821115610f6e576000816000905550600101610f56565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea26469706673582212201cafaf685feba709fe5b26911b38f3251b1d43d43cec2d0d839fb6ff480488d164736f6c634300080a0033 \ No newline at end of file diff --git a/tests/storage-layout/TEST_storage_layout.json b/tests/storage-layout/TEST_storage_layout.json deleted file mode 100644 index 9de3aacfd..000000000 --- a/tests/storage-layout/TEST_storage_layout.json +++ /dev/null @@ -1,576 +0,0 @@ -{ - "packedUint": { - "name": "packedUint", - "type_string": "uint248", - "slot": 0, - "size": 248, - "offset": 0, - "value": 1, - "elems": {} - }, - "packedBool": { - "name": "packedBool", - "type_string": "bool", - "slot": 0, - "size": 8, - "offset": 248, - "value": true, - "elems": {} - }, - "_packedStruct": { - "name": "_packedStruct", - "type_string": "StorageLayout.PackedStruct", - "slot": 1, - "size": 256, - "offset": 0, - "value": "0000000000000000000000000000000000000000000000000000000000000101", - "elems": { - "b": { - "name": "_packedStruct.b", - "type_string": "bool", - "slot": 1, - "size": 8, - "offset": 0, - "value": true, - "elems": {} - }, - "a": { - "name": "_packedStruct.a", - "type_string": "uint248", - "slot": 1, - "size": 248, - "offset": 8, - "value": 1, - "elems": {} - } - } - }, - "mappingPackedStruct": { - "name": "mappingPackedStruct", - "type_string": "mapping(uint256 => StorageLayout.PackedStruct)", - "slot": 2, - "size": 256, - "offset": 0, - "value": 0, - "elems": {} - }, - "deepMappingPackedStruct": { - "name": "deepMappingPackedStruct", - "type_string": "mapping(address => mapping(uint256 => StorageLayout.PackedStruct))", - "slot": 3, - "size": 256, - "offset": 0, - "value": 0, - "elems": {} - }, - "deepMappingElementaryTypes": { - "name": "deepMappingElementaryTypes", - "type_string": "mapping(address => mapping(uint256 => bool))", - "slot": 4, - "size": 256, - "offset": 0, - "value": 0, - "elems": {} - }, - "mappingDynamicArrayOfStructs": { - "name": "mappingDynamicArrayOfStructs", - "type_string": "mapping(address => StorageLayout.PackedStruct[])", - "slot": 5, - "size": 256, - "offset": 0, - "value": 0, - "elems": {} - }, - "_address": { - "name": "_address", - "type_string": "address", - "slot": 6, - "size": 160, - "offset": 0, - "value": "0xae17D2dD99e07CA3bF2571CCAcEAA9e2Aefc2Dc6", - "elems": {} - }, - "_string": { - "name": "_string", - "type_string": "string", - "slot": 7, - "size": 256, - "offset": 0, - "value": "slither-read-storage", - "elems": {} - }, - "packedUint8": { - "name": "packedUint8", - "type_string": "uint8", - "slot": 8, - "size": 8, - "offset": 0, - "value": 8, - "elems": {} - }, - "packedBytes": { - "name": "packedBytes", - "type_string": "bytes8", - "slot": 8, - "size": 64, - "offset": 8, - "value": "6161616161616161", - "elems": {} - }, - "_enumA": { - "name": "_enumA", - "type_string": "StorageLayout.Enum", - "slot": 8, - "size": 8, - "offset": 72, - "value": "00", - "elems": {} - }, - "_enumB": { - "name": "_enumB", - "type_string": "StorageLayout.Enum", - "slot": 8, - "size": 8, - "offset": 80, - "value": "01", - "elems": {} - }, - "_enumC": { - "name": "_enumC", - "type_string": "StorageLayout.Enum", - "slot": 8, - "size": 8, - "offset": 88, - "value": "02", - "elems": {} - }, - "fixedArray": { - "name": "fixedArray", - "type_string": "uint256[3]", - "slot": 9, - "size": 768, - "offset": 0, - "value": 1, - "elems": { - "0": { - "name": "fixedArray[0]", - "type_string": "uint256", - "slot": 9, - "size": 256, - "offset": 0, - "value": 1, - "elems": {} - }, - "1": { - "name": "fixedArray[1]", - "type_string": "uint256", - "slot": 10, - "size": 256, - "offset": 0, - "value": 2, - "elems": {} - }, - "2": { - "name": "fixedArray[2]", - "type_string": "uint256", - "slot": 11, - "size": 256, - "offset": 0, - "value": 3, - "elems": {} - } - } - }, - "dynamicArrayOfFixedArrays": { - "name": "dynamicArrayOfFixedArrays", - "type_string": "uint256[3][]", - "slot": 12, - "size": 256, - "offset": 0, - "value": 2, - "elems": { - "0": { - "name": "dynamicArrayOfFixedArrays[0]", - "type_string": "uint256", - "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386055, - "size": 256, - "offset": 0, - "value": 1, - "elems": { - "0": { - "name": "dynamicArrayOfFixedArrays[0]", - "type_string": "uint256", - "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386055, - "size": 256, - "offset": 0, - "value": 1, - "elems": {} - }, - "1": { - "name": "dynamicArrayOfFixedArrays[0]", - "type_string": "uint256", - "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386056, - "size": 256, - "offset": 0, - "value": 2, - "elems": {} - }, - "2": { - "name": "dynamicArrayOfFixedArrays[0]", - "type_string": "uint256", - "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386057, - "size": 256, - "offset": 0, - "value": 3, - "elems": {} - } - } - }, - "1": { - "name": "dynamicArrayOfFixedArrays[1]", - "type_string": "uint256", - "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386058, - "size": 256, - "offset": 0, - "value": 4, - "elems": { - "0": { - "name": "dynamicArrayOfFixedArrays[1]", - "type_string": "uint256", - "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386058, - "size": 256, - "offset": 0, - "value": 4, - "elems": {} - }, - "1": { - "name": "dynamicArrayOfFixedArrays[1]", - "type_string": "uint256", - "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386059, - "size": 256, - "offset": 0, - "value": 5, - "elems": {} - }, - "2": { - "name": "dynamicArrayOfFixedArrays[1]", - "type_string": "uint256", - "slot": 101051993584849178915136821395265346177868384823507754984078593667947067386060, - "size": 256, - "offset": 0, - "value": 6, - "elems": {} - } - } - } - } - }, - "fixedArrayofDynamicArrays": { - "name": "fixedArrayofDynamicArrays", - "type_string": "uint256[][3]", - "slot": 13, - "size": 768, - "offset": 0, - "value": 1, - "elems": { - "0": { - "name": "fixedArrayofDynamicArrays[0]", - "type_string": "uint256", - "slot": 13, - "size": 256, - "offset": 0, - "value": 1, - "elems": { - "0": { - "name": "fixedArrayofDynamicArrays[0]", - "type_string": "uint256", - "slot": 97569884605916225051403212656556507955018248777258318895762758024193532305077, - "size": 256, - "offset": 0, - "value": 7, - "elems": {} - } - } - }, - "1": { - "name": "fixedArrayofDynamicArrays[1]", - "type_string": "uint256", - "slot": 14, - "size": 256, - "offset": 0, - "value": 2, - "elems": { - "0": { - "name": "fixedArrayofDynamicArrays[1]", - "type_string": "uint256", - "slot": 84800337471693920904250232874319843718400766719524250287777680170677855896573, - "size": 256, - "offset": 0, - "value": 8, - "elems": {} - }, - "1": { - "name": "fixedArrayofDynamicArrays[1]", - "type_string": "uint256", - "slot": 84800337471693920904250232874319843718400766719524250287777680170677855896574, - "size": 256, - "offset": 0, - "value": 9, - "elems": {} - } - } - }, - "2": { - "name": "fixedArrayofDynamicArrays[2]", - "type_string": "uint256", - "slot": 15, - "size": 256, - "offset": 0, - "value": 3, - "elems": { - "0": { - "name": "fixedArrayofDynamicArrays[2]", - "type_string": "uint256", - "slot": 63806209331542711802848847270949280092855778197726125910674179583545433573378, - "size": 256, - "offset": 0, - "value": 10, - "elems": {} - }, - "1": { - "name": "fixedArrayofDynamicArrays[2]", - "type_string": "uint256", - "slot": 63806209331542711802848847270949280092855778197726125910674179583545433573379, - "size": 256, - "offset": 0, - "value": 11, - "elems": {} - }, - "2": { - "name": "fixedArrayofDynamicArrays[2]", - "type_string": "uint256", - "slot": 63806209331542711802848847270949280092855778197726125910674179583545433573380, - "size": 256, - "offset": 0, - "value": 12, - "elems": {} - } - } - } - } - }, - "multidimensionalArray": { - "name": "multidimensionalArray", - "type_string": "uint256[][]", - "slot": 16, - "size": 256, - "offset": 0, - "value": 3, - "elems": { - "0": { - "name": "multidimensionalArray[0]", - "type_string": "uint256", - "slot": 12396694973890998440467380340983585058878106250672390494374587083972727727730, - "size": 256, - "offset": 0, - "value": 1, - "elems": { - "0": { - "name": "multidimensionalArray[0]", - "type_string": "uint256", - "slot": 93856215500098298973000561543003607329881518401177956003908346942307446808932, - "size": 256, - "offset": 0, - "value": 13, - "elems": {} - } - } - }, - "1": { - "name": "multidimensionalArray[1]", - "type_string": "uint256", - "slot": 12396694973890998440467380340983585058878106250672390494374587083972727727731, - "size": 256, - "offset": 0, - "value": 2, - "elems": { - "0": { - "name": "multidimensionalArray[1]", - "type_string": "uint256", - "slot": 48332168562525185806884758054388614910060623018875025120987491603435926351511, - "size": 256, - "offset": 0, - "value": 14, - "elems": {} - }, - "1": { - "name": "multidimensionalArray[1]", - "type_string": "uint256", - "slot": 48332168562525185806884758054388614910060623018875025120987491603435926351512, - "size": 256, - "offset": 0, - "value": 15, - "elems": {} - } - } - }, - "2": { - "name": "multidimensionalArray[2]", - "type_string": "uint256", - "slot": 12396694973890998440467380340983585058878106250672390494374587083972727727732, - "size": 256, - "offset": 0, - "value": 3, - "elems": { - "0": { - "name": "multidimensionalArray[2]", - "type_string": "uint256", - "slot": 69037578548663760355678879060995014288537668748590083357305779656188235687653, - "size": 256, - "offset": 0, - "value": 16, - "elems": {} - }, - "1": { - "name": "multidimensionalArray[2]", - "type_string": "uint256", - "slot": 69037578548663760355678879060995014288537668748590083357305779656188235687654, - "size": 256, - "offset": 0, - "value": 17, - "elems": {} - }, - "2": { - "name": "multidimensionalArray[2]", - "type_string": "uint256", - "slot": 69037578548663760355678879060995014288537668748590083357305779656188235687655, - "size": 256, - "offset": 0, - "value": 18, - "elems": {} - } - } - } - } - }, - "dynamicArrayOfStructs": { - "name": "dynamicArrayOfStructs", - "type_string": "StorageLayout.PackedStruct[]", - "slot": 17, - "size": 256, - "offset": 0, - "value": "0000000000000000000000000000000000000000000000000000000000000002", - "elems": { - "0": { - "b": { - "name": "dynamicArrayOfStructs[0]", - "type_string": "bool", - "slot": 22581645139872629890233439717971975110198959689450188087151966948260709403752, - "size": 8, - "offset": 0, - "value": true, - "elems": {} - }, - "a": { - "name": "dynamicArrayOfStructs[0]", - "type_string": "uint248", - "slot": 22581645139872629890233439717971975110198959689450188087151966948260709403752, - "size": 248, - "offset": 8, - "value": 1, - "elems": {} - } - }, - "1": { - "b": { - "name": "dynamicArrayOfStructs[1]", - "type_string": "bool", - "slot": 22581645139872629890233439717971975110198959689450188087151966948260709403753, - "size": 8, - "offset": 0, - "value": false, - "elems": {} - }, - "a": { - "name": "dynamicArrayOfStructs[1]", - "type_string": "uint248", - "slot": 22581645139872629890233439717971975110198959689450188087151966948260709403753, - "size": 248, - "offset": 8, - "value": 10, - "elems": {} - } - } - } - }, - "fixedArrayOfStructs": { - "name": "fixedArrayOfStructs", - "type_string": "StorageLayout.PackedStruct[3]", - "slot": 18, - "size": 768, - "offset": 0, - "value": "0000000000000000000000000000000000000000000000000000000000000101", - "elems": { - "0": { - "b": { - "name": "fixedArrayOfStructs[0]", - "type_string": "bool", - "slot": 18, - "size": 8, - "offset": 0, - "value": true, - "elems": {} - }, - "a": { - "name": "fixedArrayOfStructs[0]", - "type_string": "uint248", - "slot": 18, - "size": 248, - "offset": 8, - "value": 1, - "elems": {} - } - }, - "1": { - "b": { - "name": "fixedArrayOfStructs[1]", - "type_string": "bool", - "slot": 19, - "size": 8, - "offset": 0, - "value": false, - "elems": {} - }, - "a": { - "name": "fixedArrayOfStructs[1]", - "type_string": "uint248", - "slot": 19, - "size": 248, - "offset": 8, - "value": 10, - "elems": {} - } - }, - "2": { - "b": { - "name": "fixedArrayOfStructs[2]", - "type_string": "bool", - "slot": 20, - "size": 8, - "offset": 0, - "value": false, - "elems": {} - }, - "a": { - "name": "fixedArrayOfStructs[2]", - "type_string": "uint248", - "slot": 20, - "size": 248, - "offset": 8, - "value": 0, - "elems": {} - } - } - } - } -} diff --git a/tests/storage-layout/storage_layout-0.8.10.sol b/tests/storage-layout/storage_layout-0.8.10.sol deleted file mode 100644 index 28d1428eb..000000000 --- a/tests/storage-layout/storage_layout-0.8.10.sol +++ /dev/null @@ -1,74 +0,0 @@ -// overwrite abi and bin: -// solc tests/storage-layout/storage_layout-0.8.10.sol --abi --bin -o tests/storage-layout --overwrite -contract StorageLayout { - uint248 packedUint = 1; - bool packedBool = true; - - struct PackedStruct { - bool b; - uint248 a; - } - PackedStruct _packedStruct = PackedStruct(packedBool, packedUint); - - mapping (uint => PackedStruct) mappingPackedStruct; - mapping (address => mapping (uint => PackedStruct)) deepMappingPackedStruct; - mapping (address => mapping (uint => bool)) deepMappingElementaryTypes; - mapping (address => PackedStruct[]) mappingDynamicArrayOfStructs; - - address _address; - string _string = "slither-read-storage"; - uint8 packedUint8 = 8; - bytes8 packedBytes = "aaaaaaaa"; - - enum Enum { - a, - b, - c - } - Enum _enumA = Enum.a; - Enum _enumB = Enum.b; - Enum _enumC = Enum.c; - - uint256[3] fixedArray; - uint256[3][] dynamicArrayOfFixedArrays; - uint[][3] fixedArrayofDynamicArrays; - uint[][] multidimensionalArray; - PackedStruct[] dynamicArrayOfStructs; - PackedStruct[3] fixedArrayOfStructs; - - function store() external { - require(_address == address(0)); - _address = msg.sender; - - mappingPackedStruct[packedUint] = _packedStruct; - - deepMappingPackedStruct[_address][packedUint] = _packedStruct; - - deepMappingElementaryTypes[_address][1] = true; - deepMappingElementaryTypes[_address][2] = true; - - fixedArray = [1, 2, 3]; - - dynamicArrayOfFixedArrays.push(fixedArray); - dynamicArrayOfFixedArrays.push([4, 5, 6]); - - fixedArrayofDynamicArrays[0].push(7); - fixedArrayofDynamicArrays[1].push(8); - fixedArrayofDynamicArrays[1].push(9); - fixedArrayofDynamicArrays[2].push(10); - fixedArrayofDynamicArrays[2].push(11); - fixedArrayofDynamicArrays[2].push(12); - - multidimensionalArray.push([13]); - multidimensionalArray.push([14, 15]); - multidimensionalArray.push([16, 17, 18]); - - dynamicArrayOfStructs.push(_packedStruct); - dynamicArrayOfStructs.push(PackedStruct(false, 10)); - fixedArrayOfStructs[0] = _packedStruct; - fixedArrayOfStructs[1] = PackedStruct(false, 10); - - mappingDynamicArrayOfStructs[_address].push(dynamicArrayOfStructs[0]); - mappingDynamicArrayOfStructs[_address].push(dynamicArrayOfStructs[1]); - } -} diff --git a/tests/taint_mapping.sol b/tests/taint_mapping.sol deleted file mode 100644 index c1a24ed38..000000000 --- a/tests/taint_mapping.sol +++ /dev/null @@ -1,18 +0,0 @@ -contract Test{ - - mapping(uint => mapping(uint => address)) authorized_destination; - - address destination; - - function init(){ - authorized_destination[0][0] = msg.sender; - } - - function setup(uint idx){ - destination = authorized_destination[0][0]; - } - - function withdraw(){ - destination.transfer(this.balance); - } -} diff --git a/tests/test_constant_folding.py b/tests/test_constant_folding.py deleted file mode 100644 index 21517ddc4..000000000 --- a/tests/test_constant_folding.py +++ /dev/null @@ -1,101 +0,0 @@ -from slither import Slither -from slither.visitors.expression.constants_folding import ConstantFolding - - -def test_constant_folding_unary(): - Slither("./tests/constant_folding_unary.sol") - - -def test_constant_folding_rational(): - s = Slither("./tests/constant_folding_rational.sol") - contract = s.get_contract_from_name("C")[0] - - variable_a = contract.get_state_variable_from_name("a") - assert str(variable_a.type) == "uint256" - assert str(ConstantFolding(variable_a.expression, "uint256").result()) == "10" - - variable_b = contract.get_state_variable_from_name("b") - assert str(variable_b.type) == "int128" - assert str(ConstantFolding(variable_b.expression, "int128").result()) == "2" - - variable_c = contract.get_state_variable_from_name("c") - assert str(variable_c.type) == "int64" - assert str(ConstantFolding(variable_c.expression, "int64").result()) == "3" - - variable_d = contract.get_state_variable_from_name("d") - assert str(variable_d.type) == "int256" - assert str(ConstantFolding(variable_d.expression, "int256").result()) == "1500" - - variable_e = contract.get_state_variable_from_name("e") - assert str(variable_e.type) == "uint256" - assert ( - str(ConstantFolding(variable_e.expression, "uint256").result()) - == "57896044618658097711785492504343953926634992332820282019728792003956564819968" - ) - - variable_f = contract.get_state_variable_from_name("f") - assert str(variable_f.type) == "uint256" - assert ( - str(ConstantFolding(variable_f.expression, "uint256").result()) - == "115792089237316195423570985008687907853269984665640564039457584007913129639935" - ) - - variable_g = contract.get_state_variable_from_name("g") - assert str(variable_g.type) == "int64" - assert str(ConstantFolding(variable_g.expression, "int64").result()) == "-7" - - -def test_constant_folding_binary_expressions(): - sl = Slither("./tests/constant_folding_binop.sol") - contract = sl.get_contract_from_name("BinOp")[0] - - variable_a = contract.get_state_variable_from_name("a") - assert str(variable_a.type) == "uint256" - assert str(ConstantFolding(variable_a.expression, "uint256").result()) == "0" - - variable_b = contract.get_state_variable_from_name("b") - assert str(variable_b.type) == "uint256" - assert str(ConstantFolding(variable_b.expression, "uint256").result()) == "3" - - variable_c = contract.get_state_variable_from_name("c") - assert str(variable_c.type) == "uint256" - assert str(ConstantFolding(variable_c.expression, "uint256").result()) == "3" - - variable_d = contract.get_state_variable_from_name("d") - assert str(variable_d.type) == "bool" - assert str(ConstantFolding(variable_d.expression, "bool").result()) == "False" - - variable_e = contract.get_state_variable_from_name("e") - assert str(variable_e.type) == "bool" - assert str(ConstantFolding(variable_e.expression, "bool").result()) == "False" - - variable_f = contract.get_state_variable_from_name("f") - assert str(variable_f.type) == "bool" - assert str(ConstantFolding(variable_f.expression, "bool").result()) == "True" - - variable_g = contract.get_state_variable_from_name("g") - assert str(variable_g.type) == "bool" - assert str(ConstantFolding(variable_g.expression, "bool").result()) == "False" - - variable_h = contract.get_state_variable_from_name("h") - assert str(variable_h.type) == "bool" - assert str(ConstantFolding(variable_h.expression, "bool").result()) == "False" - - variable_i = contract.get_state_variable_from_name("i") - assert str(variable_i.type) == "bool" - assert str(ConstantFolding(variable_i.expression, "bool").result()) == "True" - - variable_j = contract.get_state_variable_from_name("j") - assert str(variable_j.type) == "bool" - assert str(ConstantFolding(variable_j.expression, "bool").result()) == "False" - - variable_k = contract.get_state_variable_from_name("k") - assert str(variable_k.type) == "bool" - assert str(ConstantFolding(variable_k.expression, "bool").result()) == "True" - - variable_l = contract.get_state_variable_from_name("l") - assert str(variable_l.type) == "uint256" - assert ( - str(ConstantFolding(variable_l.expression, "uint256").result()) - == "115792089237316195423570985008687907853269984665640564039457584007913129639935" - ) diff --git a/tests/test_cyclic_import/a.sol b/tests/test_cyclic_import/a.sol deleted file mode 100644 index e5491b986..000000000 --- a/tests/test_cyclic_import/a.sol +++ /dev/null @@ -1,5 +0,0 @@ -import "./b.sol"; - -contract A{ - -} diff --git a/tests/test_cyclic_import/b.sol b/tests/test_cyclic_import/b.sol deleted file mode 100644 index 7bc85011d..000000000 --- a/tests/test_cyclic_import/b.sol +++ /dev/null @@ -1,5 +0,0 @@ -import "./a.sol"; - -contract B{ - -} diff --git a/tests/test_features.py b/tests/test_features.py deleted file mode 100644 index 26f76f3ce..000000000 --- a/tests/test_features.py +++ /dev/null @@ -1,225 +0,0 @@ -import inspect -import shutil -from pathlib import Path -import pytest - -from crytic_compile import CryticCompile -from crytic_compile.platform.solc_standard_json import SolcStandardJson -from solc_select import solc_select - -from slither import Slither -from slither.core.variables.state_variable import StateVariable -from slither.detectors import all_detectors -from slither.detectors.abstract_detector import AbstractDetector -from slither.slithir.operations import InternalCall, LibraryCall -from slither.utils.arithmetic import unchecked_arithemtic_usage - - -def _run_all_detectors(slither: Slither) -> None: - detectors = [getattr(all_detectors, name) for name in dir(all_detectors)] - detectors = [d for d in detectors if inspect.isclass(d) and issubclass(d, AbstractDetector)] - - for detector in detectors: - slither.register_detector(detector) - - slither.run_detectors() - - -hardhat_available = shutil.which("hardhat") is not None - - -@pytest.mark.skipif(not hardhat_available, reason="requires Hardhat and project setup") -def test_node() -> None: - # hardhat must have been installed in tests/test_node_modules - # For the CI its done through the github action config - - slither = Slither("./tests/test_node_modules") - _run_all_detectors(slither) - - -def test_collision() -> None: - solc_select.switch_global_version("0.8.0", always_install=True) - standard_json = SolcStandardJson() - standard_json.add_source_file("./tests/collisions/a.sol") - standard_json.add_source_file("./tests/collisions/b.sol") - - compilation = CryticCompile(standard_json) - slither = Slither(compilation) - - _run_all_detectors(slither) - - -def test_cycle() -> None: - solc_select.switch_global_version("0.8.0", always_install=True) - slither = Slither("./tests/test_cyclic_import/a.sol") - _run_all_detectors(slither) - - -def test_funcion_id_rec_structure() -> None: - solc_select.switch_global_version("0.8.0", always_install=True) - slither = Slither("./tests/function_ids/rec_struct-0.8.sol") - for compilation_unit in slither.compilation_units: - for function in compilation_unit.functions: - assert function.solidity_signature - - -def test_upgradeable_comments() -> None: - solc_select.switch_global_version("0.8.10", always_install=True) - slither = Slither("./tests/custom_comments/upgrade.sol") - compilation_unit = slither.compilation_units[0] - proxy = compilation_unit.get_contract_from_name("Proxy")[0] - - assert proxy.is_upgradeable_proxy - - v0 = compilation_unit.get_contract_from_name("V0")[0] - - assert v0.is_upgradeable - print(v0.upgradeable_version) - assert v0.upgradeable_version == "version-0" - - v1 = compilation_unit.get_contract_from_name("V1")[0] - assert v0.is_upgradeable - assert v1.upgradeable_version == "version_1" - - -def test_contract_comments() -> None: - comments = " @title Test Contract\n @dev Test comment" - - solc_select.switch_global_version("0.8.10", always_install=True) - slither = Slither("./tests/custom_comments/contract_comment.sol") - compilation_unit = slither.compilation_units[0] - contract = compilation_unit.get_contract_from_name("A")[0] - - assert contract.comments == comments - - # Old solc versions have a different parsing of comments - # the initial space (after *) is also not kept on every line - comments = "@title Test Contract\n@dev Test comment" - solc_select.switch_global_version("0.5.16", always_install=True) - slither = Slither("./tests/custom_comments/contract_comment.sol") - compilation_unit = slither.compilation_units[0] - contract = compilation_unit.get_contract_from_name("A")[0] - - assert contract.comments == comments - - # Test with legacy AST - comments = "@title Test Contract\n@dev Test comment" - solc_select.switch_global_version("0.5.16", always_install=True) - slither = Slither("./tests/custom_comments/contract_comment.sol", solc_force_legacy_json=True) - compilation_unit = slither.compilation_units[0] - contract = compilation_unit.get_contract_from_name("A")[0] - - assert contract.comments == comments - - -def test_using_for_top_level_same_name() -> None: - solc_select.switch_global_version("0.8.15", always_install=True) - slither = Slither("./tests/ast-parsing/using-for-3-0.8.0.sol") - contract_c = slither.get_contract_from_name("C")[0] - libCall = contract_c.get_function_from_full_name("libCall(uint256)") - for ir in libCall.all_slithir_operations(): - if isinstance(ir, LibraryCall) and ir.destination == "Lib" and ir.function_name == "a": - return - assert False - - -def test_using_for_top_level_implicit_conversion() -> None: - solc_select.switch_global_version("0.8.15", always_install=True) - slither = Slither("./tests/ast-parsing/using-for-4-0.8.0.sol") - contract_c = slither.get_contract_from_name("C")[0] - libCall = contract_c.get_function_from_full_name("libCall(uint16)") - for ir in libCall.all_slithir_operations(): - if isinstance(ir, LibraryCall) and ir.destination == "Lib" and ir.function_name == "f": - return - assert False - - -def test_using_for_alias_top_level() -> None: - solc_select.switch_global_version("0.8.15", always_install=True) - slither = Slither("./tests/ast-parsing/using-for-alias-top-level-0.8.0.sol") - contract_c = slither.get_contract_from_name("C")[0] - libCall = contract_c.get_function_from_full_name("libCall(uint256)") - ok = False - for ir in libCall.all_slithir_operations(): - if isinstance(ir, LibraryCall) and ir.destination == "Lib" and ir.function_name == "b": - ok = True - if not ok: - assert False - topLevelCall = contract_c.get_function_from_full_name("topLevel(uint256)") - for ir in topLevelCall.all_slithir_operations(): - if isinstance(ir, InternalCall) and ir.function_name == "a": - return - assert False - - -def test_using_for_alias_contract() -> None: - solc_select.switch_global_version("0.8.15", always_install=True) - slither = Slither("./tests/ast-parsing/using-for-alias-contract-0.8.0.sol") - contract_c = slither.get_contract_from_name("C")[0] - libCall = contract_c.get_function_from_full_name("libCall(uint256)") - ok = False - for ir in libCall.all_slithir_operations(): - if isinstance(ir, LibraryCall) and ir.destination == "Lib" and ir.function_name == "b": - ok = True - if not ok: - assert False - topLevelCall = contract_c.get_function_from_full_name("topLevel(uint256)") - for ir in topLevelCall.all_slithir_operations(): - if isinstance(ir, InternalCall) and ir.function_name == "a": - return - assert False - - -def test_using_for_in_library() -> None: - solc_select.switch_global_version("0.8.15", always_install=True) - slither = Slither("./tests/ast-parsing/using-for-in-library-0.8.0.sol") - contract_c = slither.get_contract_from_name("A")[0] - libCall = contract_c.get_function_from_full_name("a(uint256)") - for ir in libCall.all_slithir_operations(): - if isinstance(ir, LibraryCall) and ir.destination == "B" and ir.function_name == "b": - return - assert False - - -def test_private_variable() -> None: - solc_select.switch_global_version("0.8.15", always_install=True) - slither = Slither("./tests/lookup/private_variable.sol") - contract_c = slither.get_contract_from_name("C")[0] - f = contract_c.functions[0] - var_read = f.variables_read[0] - assert isinstance(var_read, StateVariable) - assert str(var_read.contract) == "B" - - -def test_arithmetic_usage() -> None: - solc_select.switch_global_version("0.8.15", always_install=True) - slither = Slither("./tests/arithmetic_usage/test.sol") - - assert { - f.source_mapping.content_hash for f in unchecked_arithemtic_usage(slither.contracts[0]) - } == {"2b4bc73cf59d486dd9043e840b5028b679354dd9", "e4ecd4d0fda7e762d29aceb8425f2c5d4d0bf962"} - - -def test_using_for_global_collision() -> None: - solc_select.switch_global_version("0.8.18", always_install=True) - standard_json = SolcStandardJson() - for source_file in Path("./tests/using-for-global-collision").rglob("*.sol"): - standard_json.add_source_file(Path(source_file).as_posix()) - compilation = CryticCompile(standard_json) - sl = Slither(compilation) - _run_all_detectors(sl) - - -def test_abstract_contract() -> None: - solc_select.switch_global_version("0.8.0", always_install=True) - slither = Slither("./tests/function_features/abstract.sol") - assert not slither.contracts[0].is_fully_implemented - - solc_select.switch_global_version("0.5.0", always_install=True) - slither = Slither("./tests/function_features/implicit_abstract.sol") - assert not slither.contracts[0].is_fully_implemented - - slither = Slither( - "./tests/function_features/implicit_abstract.sol", solc_force_legacy_json=True - ) - assert not slither.contracts[0].is_fully_implemented diff --git a/tests/test_function.py b/tests/test_function.py deleted file mode 100644 index ef6775d64..000000000 --- a/tests/test_function.py +++ /dev/null @@ -1,297 +0,0 @@ -""" -tests for `slither.core.declarations.Function`. -tests that `tests/test_function.sol` gets translated into correct -`slither.core.declarations.Function` objects or its subclasses -and that these objects behave correctly. -""" -from solc_select import solc_select - -from slither import Slither -from slither.core.declarations.function import FunctionType -from slither.core.solidity_types.elementary_type import ElementaryType - - -def test_functions(): - # pylint: disable=too-many-statements - solc_select.switch_global_version("0.6.12", always_install=True) - slither = Slither("tests/test_function.sol") - functions = slither.get_contract_from_name("TestFunction")[0].available_functions_as_dict() - - f = functions["external_payable(uint256)"] - assert f.name == "external_payable" - assert f.full_name == "external_payable(uint256)" - assert f.canonical_name == "TestFunction.external_payable(uint256)" - assert f.solidity_signature == "external_payable(uint256)" - assert f.signature_str == "external_payable(uint256) returns(uint256)" - assert f.function_type == FunctionType.NORMAL - assert f.contains_assembly is False - assert f.can_reenter() is False - assert f.can_send_eth() is False - assert f.is_constructor is False - assert f.is_fallback is False - assert f.is_receive is False - assert f.payable is True - assert f.visibility == "external" - assert f.view is False - assert f.pure is False - assert f.is_implemented is True - assert f.is_empty is False - assert f.parameters[0].name == "_a" - assert f.parameters[0].type == ElementaryType("uint256") - assert f.return_type[0] == ElementaryType("uint256") - - f = functions["public_reenter()"] - assert f.name == "public_reenter" - assert f.full_name == "public_reenter()" - assert f.canonical_name == "TestFunction.public_reenter()" - assert f.solidity_signature == "public_reenter()" - assert f.signature_str == "public_reenter() returns()" - assert f.function_type == FunctionType.NORMAL - assert f.contains_assembly is False - assert f.can_reenter() is True - assert f.can_send_eth() is False - assert f.is_constructor is False - assert f.is_fallback is False - assert f.is_receive is False - assert f.payable is False - assert f.visibility == "public" - assert f.view is False - assert f.pure is False - assert f.is_implemented is True - assert f.is_empty is False - assert f.parameters == [] - assert f.return_type is None - - f = functions["public_payable_reenter_send(bool)"] - assert f.name == "public_payable_reenter_send" - assert f.full_name == "public_payable_reenter_send(bool)" - assert f.canonical_name == "TestFunction.public_payable_reenter_send(bool)" - assert f.solidity_signature == "public_payable_reenter_send(bool)" - assert f.signature_str == "public_payable_reenter_send(bool) returns()" - assert f.function_type == FunctionType.NORMAL - assert f.contains_assembly is False - assert f.can_reenter() is True - assert f.can_send_eth() is True - assert f.is_constructor is False - assert f.is_fallback is False - assert f.is_receive is False - assert f.payable is True - assert f.visibility == "public" - assert f.view is False - assert f.pure is False - assert f.is_implemented is True - assert f.is_empty is False - assert f.parameters[0].name == "_b" - assert f.parameters[0].type == ElementaryType("bool") - assert f.return_type is None - - f = functions["external_send(uint8)"] - assert f.name == "external_send" - assert f.full_name == "external_send(uint8)" - assert f.canonical_name == "TestFunction.external_send(uint8)" - assert f.solidity_signature == "external_send(uint8)" - assert f.signature_str == "external_send(uint8) returns()" - assert f.function_type == FunctionType.NORMAL - assert f.contains_assembly is False - assert f.can_reenter() is True - assert f.can_send_eth() is True - assert f.is_constructor is False - assert f.is_fallback is False - assert f.is_receive is False - assert f.payable is False - assert f.visibility == "external" - assert f.view is False - assert f.pure is False - assert f.is_implemented is True - assert f.is_empty is False - assert f.parameters[0].name == "_c" - assert f.parameters[0].type == ElementaryType("uint8") - assert f.return_type is None - - f = functions["internal_assembly(bytes)"] - assert f.name == "internal_assembly" - assert f.full_name == "internal_assembly(bytes)" - assert f.canonical_name == "TestFunction.internal_assembly(bytes)" - assert f.solidity_signature == "internal_assembly(bytes)" - assert f.signature_str == "internal_assembly(bytes) returns(uint256)" - assert f.function_type == FunctionType.NORMAL - assert f.contains_assembly is True - assert f.can_reenter() is False - assert f.can_send_eth() is False - assert f.is_constructor is False - assert f.is_fallback is False - assert f.is_receive is False - assert f.payable is False - assert f.visibility == "internal" - assert f.view is False - assert f.pure is False - assert f.is_implemented is True - assert f.is_empty is False - assert f.parameters[0].name == "_d" - assert f.parameters[0].type == ElementaryType("bytes") - assert f.return_type[0] == ElementaryType("uint256") - - f = functions["fallback()"] - assert f.name == "fallback" - assert f.full_name == "fallback()" - assert f.canonical_name == "TestFunction.fallback()" - assert f.solidity_signature == "fallback()" - assert f.signature_str == "fallback() returns()" - assert f.function_type == FunctionType.FALLBACK - assert f.contains_assembly is False - assert f.can_reenter() is False - assert f.can_send_eth() is False - assert f.is_constructor is False - assert f.is_fallback is True - assert f.is_receive is False - assert f.payable is False - assert f.visibility == "external" - assert f.view is False - assert f.pure is False - assert f.is_implemented is True - assert f.is_empty is True - assert f.parameters == [] - assert f.return_type is None - - f = functions["receive()"] - assert f.name == "receive" - assert f.full_name == "receive()" - assert f.canonical_name == "TestFunction.receive()" - assert f.solidity_signature == "receive()" - assert f.signature_str == "receive() returns()" - assert f.function_type == FunctionType.RECEIVE - assert f.contains_assembly is False - assert f.can_reenter() is False - assert f.can_send_eth() is False - assert f.is_constructor is False - assert f.is_fallback is False - assert f.is_receive is True - assert f.payable is True - assert f.visibility == "external" - assert f.view is False - assert f.pure is False - assert f.is_implemented is True - assert f.is_empty is True - assert f.parameters == [] - assert f.return_type is None - - f = functions["constructor(address)"] - assert f.name == "constructor" - assert f.full_name == "constructor(address)" - assert f.canonical_name == "TestFunction.constructor(address)" - assert f.solidity_signature == "constructor(address)" - assert f.signature_str == "constructor(address) returns()" - assert f.function_type == FunctionType.CONSTRUCTOR - assert f.contains_assembly is False - assert f.can_reenter() is False - assert f.can_send_eth() is False - assert f.is_constructor - assert f.is_fallback is False - assert f.is_receive is False - assert f.payable is True - assert f.visibility == "public" - assert f.view is False - assert f.pure is False - assert f.is_implemented is True - assert f.is_empty is True - assert f.parameters[0].name == "_e" - assert f.parameters[0].type == ElementaryType("address") - assert f.return_type is None - - f = functions["private_view()"] - assert f.name == "private_view" - assert f.full_name == "private_view()" - assert f.canonical_name == "TestFunction.private_view()" - assert f.solidity_signature == "private_view()" - assert f.signature_str == "private_view() returns(bool)" - assert f.function_type == FunctionType.NORMAL - assert f.contains_assembly is False - assert f.can_reenter() is False - assert f.can_send_eth() is False - assert f.is_constructor is False - assert f.is_fallback is False - assert f.is_receive is False - assert f.payable is False - assert f.visibility == "private" - assert f.view is True - assert f.pure is False - assert f.is_implemented is True - assert f.is_empty is False - assert f.parameters == [] - assert f.return_type[0] == ElementaryType("bool") - - f = functions["public_pure()"] - assert f.name == "public_pure" - assert f.full_name == "public_pure()" - assert f.canonical_name == "TestFunction.public_pure()" - assert f.solidity_signature == "public_pure()" - assert f.signature_str == "public_pure() returns(bool)" - assert f.function_type == FunctionType.NORMAL - assert f.contains_assembly is False - assert f.can_reenter() is False - assert f.can_send_eth() is False - assert f.is_constructor is False - assert f.is_fallback is False - assert f.is_receive is False - assert f.payable is False - assert f.visibility == "public" - assert f.view is True - assert f.pure is True - assert f.is_implemented is True - assert f.is_empty is False - assert f.parameters == [] - assert f.return_type[0] == ElementaryType("bool") - - -def test_function_can_send_eth(): - solc_select.switch_global_version("0.6.12", always_install=True) - slither = Slither("tests/test_function.sol") - compilation_unit = slither.compilation_units[0] - functions = compilation_unit.get_contract_from_name("TestFunctionCanSendEth")[ - 0 - ].available_functions_as_dict() - - assert functions["send_direct()"].can_send_eth() is True - assert functions["transfer_direct()"].can_send_eth() is True - assert functions["call_direct()"].can_send_eth() is True - assert functions["highlevel_call_direct()"].can_send_eth() is True - - assert functions["send_via_internal()"].can_send_eth() is True - assert functions["transfer_via_internal()"].can_send_eth() is True - assert functions["call_via_internal()"].can_send_eth() is True - assert functions["highlevel_call_via_internal()"].can_send_eth() is True - - assert functions["send_via_external()"].can_send_eth() is False - assert functions["transfer_via_external()"].can_send_eth() is False - assert functions["call_via_external()"].can_send_eth() is False - assert functions["highlevel_call_via_external()"].can_send_eth() is False - - -def test_reentrant(): - solc_select.switch_global_version("0.8.10", always_install=True) - slither = Slither("tests/test_function_reentrant.sol") - compilation_unit = slither.compilation_units[0] - functions = compilation_unit.get_contract_from_name("TestReentrant")[ - 0 - ].available_functions_as_dict() - - assert functions["is_reentrant()"].is_reentrant - assert not functions["is_non_reentrant()"].is_reentrant - assert not functions["internal_and_not_reentrant()"].is_reentrant - assert not functions["internal_and_not_reentrant2()"].is_reentrant - assert functions["internal_and_could_be_reentrant()"].is_reentrant - assert functions["internal_and_reentrant()"].is_reentrant - - -def test_public_variable() -> None: - solc_select.switch_global_version("0.6.12", always_install=True) - slither = Slither("tests/test_function.sol") - contracts = slither.get_contract_from_name("TestFunction") - assert len(contracts) == 1 - contract = contracts[0] - var = contract.get_state_variable_from_name("info") - assert var - assert var.solidity_signature == "info()" - assert var.signature_str == "info() returns(bytes32)" - assert var.visibility == "public" - assert var.type == ElementaryType("bytes32") diff --git a/tests/test_function.sol b/tests/test_function.sol deleted file mode 100644 index aca9fc93d..000000000 --- a/tests/test_function.sol +++ /dev/null @@ -1,130 +0,0 @@ -pragma solidity ^0.6.12; - -// solidity source used by tests/test_function.py. -// tests/test_function.py tests that the functions below get translated into correct -// `slither.core.declarations.Function` objects or its subclasses -// and that these objects behave correctly. - -contract TestFunction { - bool entered = false; - bytes32 public info; - - function external_payable(uint _a) external payable returns (uint) { - return 1; - } - - function public_reenter() public { - msg.sender.call(""); - } - - function public_payable_reenter_send(bool _b) public payable { - msg.sender.call{value: 1}(""); - } - - function external_send(uint8 _c) external { - require(!entered); - entered = true; - msg.sender.call{value: 1}(""); - } - - function internal_assembly(bytes calldata _d) internal returns (uint) { - uint256 chain; - assembly { - chain := chainid() - } - return chain; - } - - fallback() external { - - } - - receive() external payable { - - } - - constructor(address payable _e) public payable { - - } - - function private_view() private view returns (bool) { - return entered; - } - - function public_pure() public pure returns (bool) { - return true; - } -} - -contract TestFunctionCanSendEth { - - function send_direct() internal { - address(1).send(1); - } - - function transfer_direct() internal { - address(1).transfer(1); - } - - function call_direct() internal { - address(1).call{value: 1}(""); - } - - function highlevel_call_direct() internal { - TestFunctionCanSendEthOther(address(5)).i_am_payable{value: 1}(); - } - - function send_via_internal() public { - send_direct(); - } - - function transfer_via_internal() public { - transfer_direct(); - } - - function call_via_internal() public { - call_direct(); - } - - function highlevel_call_via_internal() public { - highlevel_call_direct(); - } - - function send_via_external() public { - TestFunctionCanSendEthOther(address(5)).send_direct(); - } - - function transfer_via_external() public { - TestFunctionCanSendEthOther(address(5)).transfer_direct(); - } - - function call_via_external() public { - TestFunctionCanSendEthOther(address(5)).call_direct(); - } - - function highlevel_call_via_external() public { - TestFunctionCanSendEthOther(address(5)).highlevel_call_direct(); - } -} - -contract TestFunctionCanSendEthOther { - function i_am_payable() external payable { - - } - - function send_direct() external { - address(1).send(1); - } - - function transfer_direct() external { - address(1).transfer(1); - } - - function call_direct() external { - address(1).call{value: 1}(""); - } - - function highlevel_call_direct() external { - TestFunctionCanSendEthOther(address(5)).i_am_payable{value: 1}(); - } -} diff --git a/tests/test_function_reentrant.sol b/tests/test_function_reentrant.sol deleted file mode 100644 index a1a8faa7b..000000000 --- a/tests/test_function_reentrant.sol +++ /dev/null @@ -1,36 +0,0 @@ -contract TestReentrant{ - - modifier nonReentrant(){ - _; - } - - function is_reentrant() public{ - internal_and_could_be_reentrant(); - internal_and_reentrant(); - } - - function is_non_reentrant() nonReentrant() public{ - internal_and_could_be_reentrant(); - internal_and_not_reentrant2(); - } - - function internal_and_not_reentrant() nonReentrant() internal{ - - } - - function internal_and_not_reentrant2() internal{ - - } - - // Called by a protected and unprotected function - function internal_and_could_be_reentrant() internal{ - - } - - // Called by a protected and unprotected function - function internal_and_reentrant() internal{ - - } - - -} \ No newline at end of file diff --git a/tests/test_functions_ids.py b/tests/test_functions_ids.py deleted file mode 100644 index eacbf4930..000000000 --- a/tests/test_functions_ids.py +++ /dev/null @@ -1,60 +0,0 @@ -from solc_select import solc_select -from slither import Slither - -# % solc functions_ids.sol --hashes -# ======= functions_ids.sol:C ======= -# Function signatures: -# 0dbe671f: a() -# 4a1f689d: a_array(uint256) -# 98fc2aa5: arrayOfMappings(uint256,uint256) -# 4ea7a557: b_mapping_of_array(address,uint256) -# 3c0af344: contractMap(address) -# 20969954: function_with_array(((uint256,uint256),uint256)[],(uint256,(uint256,uint256))) -# 1c039831: function_with_struct(((uint256,uint256),uint256)) -# 37e66bae: mapping_of_double_array_of_struct(address,uint256,uint256) -# f29872a8: multiDimensionalArray(uint256,uint256) -# 9539e3c8: normalMappingArrayField(uint256,uint256) -# 87c3dbb6: outer() -# df201a46: simple() -# 5a20851f: stateMap(uint16) - -# {"contracts":{"functions_ids.sol:C":{"hashes":{"a()":"0dbe671f","a_array(uint256)":"4a1f689d","arrayOfMappings(uint256,uint256)":"98fc2aa5","b_mapping_of_array(address,uint256)":"4ea7a557","contractMap(address)":"3c0af344","function_with_array(((uint256,uint256),uint256)[],(uint256,(uint256,uint256)))":"20969954","function_with_struct(((uint256,uint256),uint256))":"1c039831","mapping_of_double_array_of_struct(address,uint256,uint256)":"37e66bae","multiDimensionalArray(uint256,uint256)":"f29872a8","normalMappingArrayField(uint256,uint256)":"9539e3c8","outer()":"87c3dbb6","simple()":"df201a46","stateMap(uint16)":"5a20851f"}},"functions_ids.sol:Contract":{"hashes":{}}},"version":"0.7.0+commit.9e61f92b.Darwin.appleclang"} -from slither.utils.function import get_function_id - -signatures = { - "a()": "0dbe671f", - "a_array(uint256)": "4a1f689d", - "arrayOfMappings(uint256,uint256)": "98fc2aa5", - "b_mapping_of_array(address,uint256)": "4ea7a557", - "contractMap(address)": "3c0af344", - "function_with_array(((uint256,uint256),uint256)[],(uint256,(uint256,uint256)))": "20969954", - "function_with_struct(((uint256,uint256),uint256))": "1c039831", - "mapping_of_double_array_of_struct(address,uint256,uint256)": "37e66bae", - "multiDimensionalArray(uint256,uint256)": "f29872a8", - "normalMappingArrayField(uint256,uint256)": "9539e3c8", - "outer()": "87c3dbb6", - "simple()": "df201a46", - "stateMap(uint16)": "5a20851f", -} - - -def test_functions_ids() -> None: - solc_select.switch_global_version("0.7.0", always_install=True) - sl = Slither("tests/printers/functions_ids.sol") - contracts_c = sl.get_contract_from_name("C") - assert len(contracts_c) == 1 - contract_c = contracts_c[0] - - for sig, hashes in signatures.items(): - func = contract_c.get_function_from_signature(sig) - if not func: - var_name = sig[: sig.find("(")] - var = contract_c.get_state_variable_from_name(var_name) - assert var - assert get_function_id(var.solidity_signature) == int(hashes, 16) - else: - assert get_function_id(func.solidity_signature) == int(hashes, 16) - - -if __name__ == "__main__": - test_functions_ids() diff --git a/tests/test_node_modules/contracts/MyCoin.sol b/tests/test_node_modules/contracts/MyCoin.sol deleted file mode 100644 index ba1d183ef..000000000 --- a/tests/test_node_modules/contracts/MyCoin.sol +++ /dev/null @@ -1,8 +0,0 @@ -pragma solidity ^0.8.0; - -import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; - -contract MyCoin is ERC721 { - constructor() ERC721("MyCoin", "MC") { - } -} diff --git a/tests/test_node_modules/hardhat.config.js b/tests/test_node_modules/hardhat.config.js deleted file mode 100644 index 54d19f565..000000000 --- a/tests/test_node_modules/hardhat.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - solidity: { - version: "0.8.0" - }, -} - diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControl.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControl.sol deleted file mode 100644 index 5c54d33d3..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControl.sol +++ /dev/null @@ -1,223 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (access/AccessControl.sol) - -pragma solidity ^0.8.0; - -import "./IAccessControl.sol"; -import "../utils/Context.sol"; -import "../utils/Strings.sol"; -import "../utils/introspection/ERC165.sol"; - -/** - * @dev Contract module that allows children to implement role-based access - * control mechanisms. This is a lightweight version that doesn't allow enumerating role - * members except through off-chain means by accessing the contract event logs. Some - * applications may benefit from on-chain enumerability, for those cases see - * {AccessControlEnumerable}. - * - * Roles are referred to by their `bytes32` identifier. These should be exposed - * in the external API and be unique. The best way to achieve this is by - * using `public constant` hash digests: - * - * ``` - * bytes32 public constant MY_ROLE = keccak256("MY_ROLE"); - * ``` - * - * Roles can be used to represent a set of permissions. To restrict access to a - * function call, use {hasRole}: - * - * ``` - * function foo() public { - * require(hasRole(MY_ROLE, msg.sender)); - * ... - * } - * ``` - * - * Roles can be granted and revoked dynamically via the {grantRole} and - * {revokeRole} functions. Each role has an associated admin role, and only - * accounts that have a role's admin role can call {grantRole} and {revokeRole}. - * - * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means - * that only accounts with this role will be able to grant or revoke other - * roles. More complex role relationships can be created by using - * {_setRoleAdmin}. - * - * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to - * grant and revoke this role. Extra precautions should be taken to secure - * accounts that have been granted it. - */ -abstract contract AccessControl is Context, IAccessControl, ERC165 { - struct RoleData { - mapping(address => bool) members; - bytes32 adminRole; - } - - mapping(bytes32 => RoleData) private _roles; - - bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00; - - /** - * @dev Modifier that checks that an account has a specific role. Reverts - * with a standardized message including the required role. - * - * The format of the revert reason is given by the following regular expression: - * - * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/ - * - * _Available since v4.1._ - */ - modifier onlyRole(bytes32 role) { - _checkRole(role, _msgSender()); - _; - } - - /** - * @dev See {IERC165-supportsInterface}. - */ - function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { - return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId); - } - - /** - * @dev Returns `true` if `account` has been granted `role`. - */ - function hasRole(bytes32 role, address account) public view override returns (bool) { - return _roles[role].members[account]; - } - - /** - * @dev Revert with a standard message if `account` is missing `role`. - * - * The format of the revert reason is given by the following regular expression: - * - * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/ - */ - function _checkRole(bytes32 role, address account) internal view { - if (!hasRole(role, account)) { - revert( - string( - abi.encodePacked( - "AccessControl: account ", - Strings.toHexString(uint160(account), 20), - " is missing role ", - Strings.toHexString(uint256(role), 32) - ) - ) - ); - } - } - - /** - * @dev Returns the admin role that controls `role`. See {grantRole} and - * {revokeRole}. - * - * To change a role's admin, use {_setRoleAdmin}. - */ - function getRoleAdmin(bytes32 role) public view override returns (bytes32) { - return _roles[role].adminRole; - } - - /** - * @dev Grants `role` to `account`. - * - * If `account` had not been already granted `role`, emits a {RoleGranted} - * event. - * - * Requirements: - * - * - the caller must have ``role``'s admin role. - */ - function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) { - _grantRole(role, account); - } - - /** - * @dev Revokes `role` from `account`. - * - * If `account` had been granted `role`, emits a {RoleRevoked} event. - * - * Requirements: - * - * - the caller must have ``role``'s admin role. - */ - function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) { - _revokeRole(role, account); - } - - /** - * @dev Revokes `role` from the calling account. - * - * Roles are often managed via {grantRole} and {revokeRole}: this function's - * purpose is to provide a mechanism for accounts to lose their privileges - * if they are compromised (such as when a trusted device is misplaced). - * - * If the calling account had been revoked `role`, emits a {RoleRevoked} - * event. - * - * Requirements: - * - * - the caller must be `account`. - */ - function renounceRole(bytes32 role, address account) public virtual override { - require(account == _msgSender(), "AccessControl: can only renounce roles for self"); - - _revokeRole(role, account); - } - - /** - * @dev Grants `role` to `account`. - * - * If `account` had not been already granted `role`, emits a {RoleGranted} - * event. Note that unlike {grantRole}, this function doesn't perform any - * checks on the calling account. - * - * [WARNING] - * ==== - * This function should only be called from the constructor when setting - * up the initial roles for the system. - * - * Using this function in any other way is effectively circumventing the admin - * system imposed by {AccessControl}. - * ==== - * - * NOTE: This function is deprecated in favor of {_grantRole}. - */ - function _setupRole(bytes32 role, address account) internal virtual { - _grantRole(role, account); - } - - /** - * @dev Sets `adminRole` as ``role``'s admin role. - * - * Emits a {RoleAdminChanged} event. - */ - function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual { - bytes32 previousAdminRole = getRoleAdmin(role); - _roles[role].adminRole = adminRole; - emit RoleAdminChanged(role, previousAdminRole, adminRole); - } - - /** - * @dev Grants `role` to `account`. - * - * Internal function without access restriction. - */ - function _grantRole(bytes32 role, address account) internal virtual { - if (!hasRole(role, account)) { - _roles[role].members[account] = true; - emit RoleGranted(role, account, _msgSender()); - } - } - - /** - * @dev Revokes `role` from `account`. - * - * Internal function without access restriction. - */ - function _revokeRole(bytes32 role, address account) internal virtual { - if (hasRole(role, account)) { - _roles[role].members[account] = false; - emit RoleRevoked(role, account, _msgSender()); - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControlEnumerable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControlEnumerable.sol deleted file mode 100644 index f6fba1952..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/AccessControlEnumerable.sol +++ /dev/null @@ -1,64 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (access/AccessControlEnumerable.sol) - -pragma solidity ^0.8.0; - -import "./IAccessControlEnumerable.sol"; -import "./AccessControl.sol"; -import "../utils/structs/EnumerableSet.sol"; - -/** - * @dev Extension of {AccessControl} that allows enumerating the members of each role. - */ -abstract contract AccessControlEnumerable is IAccessControlEnumerable, AccessControl { - using EnumerableSet for EnumerableSet.AddressSet; - - mapping(bytes32 => EnumerableSet.AddressSet) private _roleMembers; - - /** - * @dev See {IERC165-supportsInterface}. - */ - function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { - return interfaceId == type(IAccessControlEnumerable).interfaceId || super.supportsInterface(interfaceId); - } - - /** - * @dev Returns one of the accounts that have `role`. `index` must be a - * value between 0 and {getRoleMemberCount}, non-inclusive. - * - * Role bearers are not sorted in any particular way, and their ordering may - * change at any point. - * - * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure - * you perform all queries on the same block. See the following - * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] - * for more information. - */ - function getRoleMember(bytes32 role, uint256 index) public view override returns (address) { - return _roleMembers[role].at(index); - } - - /** - * @dev Returns the number of accounts that have `role`. Can be used - * together with {getRoleMember} to enumerate all bearers of a role. - */ - function getRoleMemberCount(bytes32 role) public view override returns (uint256) { - return _roleMembers[role].length(); - } - - /** - * @dev Overload {_grantRole} to track enumerable memberships - */ - function _grantRole(bytes32 role, address account) internal virtual override { - super._grantRole(role, account); - _roleMembers[role].add(account); - } - - /** - * @dev Overload {_revokeRole} to track enumerable memberships - */ - function _revokeRole(bytes32 role, address account) internal virtual override { - super._revokeRole(role, account); - _roleMembers[role].remove(account); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControl.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControl.sol deleted file mode 100644 index cf09fe791..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControl.sol +++ /dev/null @@ -1,88 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (access/IAccessControl.sol) - -pragma solidity ^0.8.0; - -/** - * @dev External interface of AccessControl declared to support ERC165 detection. - */ -interface IAccessControl { - /** - * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` - * - * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite - * {RoleAdminChanged} not being emitted signaling this. - * - * _Available since v3.1._ - */ - event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole); - - /** - * @dev Emitted when `account` is granted `role`. - * - * `sender` is the account that originated the contract call, an admin role - * bearer except when using {AccessControl-_setupRole}. - */ - event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender); - - /** - * @dev Emitted when `account` is revoked `role`. - * - * `sender` is the account that originated the contract call: - * - if using `revokeRole`, it is the admin role bearer - * - if using `renounceRole`, it is the role bearer (i.e. `account`) - */ - event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender); - - /** - * @dev Returns `true` if `account` has been granted `role`. - */ - function hasRole(bytes32 role, address account) external view returns (bool); - - /** - * @dev Returns the admin role that controls `role`. See {grantRole} and - * {revokeRole}. - * - * To change a role's admin, use {AccessControl-_setRoleAdmin}. - */ - function getRoleAdmin(bytes32 role) external view returns (bytes32); - - /** - * @dev Grants `role` to `account`. - * - * If `account` had not been already granted `role`, emits a {RoleGranted} - * event. - * - * Requirements: - * - * - the caller must have ``role``'s admin role. - */ - function grantRole(bytes32 role, address account) external; - - /** - * @dev Revokes `role` from `account`. - * - * If `account` had been granted `role`, emits a {RoleRevoked} event. - * - * Requirements: - * - * - the caller must have ``role``'s admin role. - */ - function revokeRole(bytes32 role, address account) external; - - /** - * @dev Revokes `role` from the calling account. - * - * Roles are often managed via {grantRole} and {revokeRole}: this function's - * purpose is to provide a mechanism for accounts to lose their privileges - * if they are compromised (such as when a trusted device is misplaced). - * - * If the calling account had been granted `role`, emits a {RoleRevoked} - * event. - * - * Requirements: - * - * - the caller must be `account`. - */ - function renounceRole(bytes32 role, address account) external; -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControlEnumerable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControlEnumerable.sol deleted file mode 100644 index 985a69115..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/IAccessControlEnumerable.sol +++ /dev/null @@ -1,31 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (access/IAccessControlEnumerable.sol) - -pragma solidity ^0.8.0; - -import "./IAccessControl.sol"; - -/** - * @dev External interface of AccessControlEnumerable declared to support ERC165 detection. - */ -interface IAccessControlEnumerable is IAccessControl { - /** - * @dev Returns one of the accounts that have `role`. `index` must be a - * value between 0 and {getRoleMemberCount}, non-inclusive. - * - * Role bearers are not sorted in any particular way, and their ordering may - * change at any point. - * - * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure - * you perform all queries on the same block. See the following - * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] - * for more information. - */ - function getRoleMember(bytes32 role, uint256 index) external view returns (address); - - /** - * @dev Returns the number of accounts that have `role`. Can be used - * together with {getRoleMember} to enumerate all bearers of a role. - */ - function getRoleMemberCount(bytes32 role) external view returns (uint256); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/Ownable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/Ownable.sol deleted file mode 100644 index 04f3f14d5..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/access/Ownable.sol +++ /dev/null @@ -1,76 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (access/Ownable.sol) - -pragma solidity ^0.8.0; - -import "../utils/Context.sol"; - -/** - * @dev Contract module which provides a basic access control mechanism, where - * there is an account (an owner) that can be granted exclusive access to - * specific functions. - * - * By default, the owner account will be the one that deploys the contract. This - * can later be changed with {transferOwnership}. - * - * This module is used through inheritance. It will make available the modifier - * `onlyOwner`, which can be applied to your functions to restrict their use to - * the owner. - */ -abstract contract Ownable is Context { - address private _owner; - - event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); - - /** - * @dev Initializes the contract setting the deployer as the initial owner. - */ - constructor() { - _transferOwnership(_msgSender()); - } - - /** - * @dev Returns the address of the current owner. - */ - function owner() public view virtual returns (address) { - return _owner; - } - - /** - * @dev Throws if called by any account other than the owner. - */ - modifier onlyOwner() { - require(owner() == _msgSender(), "Ownable: caller is not the owner"); - _; - } - - /** - * @dev Leaves the contract without owner. It will not be possible to call - * `onlyOwner` functions anymore. Can only be called by the current owner. - * - * NOTE: Renouncing ownership will leave the contract without an owner, - * thereby removing any functionality that is only available to the owner. - */ - function renounceOwnership() public virtual onlyOwner { - _transferOwnership(address(0)); - } - - /** - * @dev Transfers ownership of the contract to a new account (`newOwner`). - * Can only be called by the current owner. - */ - function transferOwnership(address newOwner) public virtual onlyOwner { - require(newOwner != address(0), "Ownable: new owner is the zero address"); - _transferOwnership(newOwner); - } - - /** - * @dev Transfers ownership of the contract to a new account (`newOwner`). - * Internal function without access restriction. - */ - function _transferOwnership(address newOwner) internal virtual { - address oldOwner = _owner; - _owner = newOwner; - emit OwnershipTransferred(oldOwner, newOwner); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/finance/PaymentSplitter.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/finance/PaymentSplitter.sol deleted file mode 100644 index 43e28b268..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/finance/PaymentSplitter.sol +++ /dev/null @@ -1,189 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (finance/PaymentSplitter.sol) - -pragma solidity ^0.8.0; - -import "../token/ERC20/utils/SafeERC20.sol"; -import "../utils/Address.sol"; -import "../utils/Context.sol"; - -/** - * @title PaymentSplitter - * @dev This contract allows to split Ether payments among a group of accounts. The sender does not need to be aware - * that the Ether will be split in this way, since it is handled transparently by the contract. - * - * The split can be in equal parts or in any other arbitrary proportion. The way this is specified is by assigning each - * account to a number of shares. Of all the Ether that this contract receives, each account will then be able to claim - * an amount proportional to the percentage of total shares they were assigned. - * - * `PaymentSplitter` follows a _pull payment_ model. This means that payments are not automatically forwarded to the - * accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {release} - * function. - * - * NOTE: This contract assumes that ERC20 tokens will behave similarly to native tokens (Ether). Rebasing tokens, and - * tokens that apply fees during transfers, are likely to not be supported as expected. If in doubt, we encourage you - * to run tests before sending real value to this contract. - */ -contract PaymentSplitter is Context { - event PayeeAdded(address account, uint256 shares); - event PaymentReleased(address to, uint256 amount); - event ERC20PaymentReleased(IERC20 indexed token, address to, uint256 amount); - event PaymentReceived(address from, uint256 amount); - - uint256 private _totalShares; - uint256 private _totalReleased; - - mapping(address => uint256) private _shares; - mapping(address => uint256) private _released; - address[] private _payees; - - mapping(IERC20 => uint256) private _erc20TotalReleased; - mapping(IERC20 => mapping(address => uint256)) private _erc20Released; - - /** - * @dev Creates an instance of `PaymentSplitter` where each account in `payees` is assigned the number of shares at - * the matching position in the `shares` array. - * - * All addresses in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no - * duplicates in `payees`. - */ - constructor(address[] memory payees, uint256[] memory shares_) payable { - require(payees.length == shares_.length, "PaymentSplitter: payees and shares length mismatch"); - require(payees.length > 0, "PaymentSplitter: no payees"); - - for (uint256 i = 0; i < payees.length; i++) { - _addPayee(payees[i], shares_[i]); - } - } - - /** - * @dev The Ether received will be logged with {PaymentReceived} events. Note that these events are not fully - * reliable: it's possible for a contract to receive Ether without triggering this function. This only affects the - * reliability of the events, and not the actual splitting of Ether. - * - * To learn more about this see the Solidity documentation for - * https://solidity.readthedocs.io/en/latest/contracts.html#fallback-function[fallback - * functions]. - */ - receive() external payable virtual { - emit PaymentReceived(_msgSender(), msg.value); - } - - /** - * @dev Getter for the total shares held by payees. - */ - function totalShares() public view returns (uint256) { - return _totalShares; - } - - /** - * @dev Getter for the total amount of Ether already released. - */ - function totalReleased() public view returns (uint256) { - return _totalReleased; - } - - /** - * @dev Getter for the total amount of `token` already released. `token` should be the address of an IERC20 - * contract. - */ - function totalReleased(IERC20 token) public view returns (uint256) { - return _erc20TotalReleased[token]; - } - - /** - * @dev Getter for the amount of shares held by an account. - */ - function shares(address account) public view returns (uint256) { - return _shares[account]; - } - - /** - * @dev Getter for the amount of Ether already released to a payee. - */ - function released(address account) public view returns (uint256) { - return _released[account]; - } - - /** - * @dev Getter for the amount of `token` tokens already released to a payee. `token` should be the address of an - * IERC20 contract. - */ - function released(IERC20 token, address account) public view returns (uint256) { - return _erc20Released[token][account]; - } - - /** - * @dev Getter for the address of the payee number `index`. - */ - function payee(uint256 index) public view returns (address) { - return _payees[index]; - } - - /** - * @dev Triggers a transfer to `account` of the amount of Ether they are owed, according to their percentage of the - * total shares and their previous withdrawals. - */ - function release(address payable account) public virtual { - require(_shares[account] > 0, "PaymentSplitter: account has no shares"); - - uint256 totalReceived = address(this).balance + totalReleased(); - uint256 payment = _pendingPayment(account, totalReceived, released(account)); - - require(payment != 0, "PaymentSplitter: account is not due payment"); - - _released[account] += payment; - _totalReleased += payment; - - Address.sendValue(account, payment); - emit PaymentReleased(account, payment); - } - - /** - * @dev Triggers a transfer to `account` of the amount of `token` tokens they are owed, according to their - * percentage of the total shares and their previous withdrawals. `token` must be the address of an IERC20 - * contract. - */ - function release(IERC20 token, address account) public virtual { - require(_shares[account] > 0, "PaymentSplitter: account has no shares"); - - uint256 totalReceived = token.balanceOf(address(this)) + totalReleased(token); - uint256 payment = _pendingPayment(account, totalReceived, released(token, account)); - - require(payment != 0, "PaymentSplitter: account is not due payment"); - - _erc20Released[token][account] += payment; - _erc20TotalReleased[token] += payment; - - SafeERC20.safeTransfer(token, account, payment); - emit ERC20PaymentReleased(token, account, payment); - } - - /** - * @dev internal logic for computing the pending payment of an `account` given the token historical balances and - * already released amounts. - */ - function _pendingPayment( - address account, - uint256 totalReceived, - uint256 alreadyReleased - ) private view returns (uint256) { - return (totalReceived * _shares[account]) / _totalShares - alreadyReleased; - } - - /** - * @dev Add a new payee to the contract. - * @param account The address of the payee to add. - * @param shares_ The number of shares owned by the payee. - */ - function _addPayee(address account, uint256 shares_) private { - require(account != address(0), "PaymentSplitter: account is the zero address"); - require(shares_ > 0, "PaymentSplitter: shares are 0"); - require(_shares[account] == 0, "PaymentSplitter: account already has shares"); - - _payees.push(account); - _shares[account] = shares_; - _totalShares = _totalShares + shares_; - emit PayeeAdded(account, shares_); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/finance/VestingWallet.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/finance/VestingWallet.sol deleted file mode 100644 index 304f813f2..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/finance/VestingWallet.sol +++ /dev/null @@ -1,135 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (finance/VestingWallet.sol) -pragma solidity ^0.8.0; - -import "../token/ERC20/utils/SafeERC20.sol"; -import "../utils/Address.sol"; -import "../utils/Context.sol"; -import "../utils/math/Math.sol"; - -/** - * @title VestingWallet - * @dev This contract handles the vesting of Eth and ERC20 tokens for a given beneficiary. Custody of multiple tokens - * can be given to this contract, which will release the token to the beneficiary following a given vesting schedule. - * The vesting schedule is customizable through the {vestedAmount} function. - * - * Any token transferred to this contract will follow the vesting schedule as if they were locked from the beginning. - * Consequently, if the vesting has already started, any amount of tokens sent to this contract will (at least partly) - * be immediately releasable. - */ -contract VestingWallet is Context { - event EtherReleased(uint256 amount); - event ERC20Released(address indexed token, uint256 amount); - - uint256 private _released; - mapping(address => uint256) private _erc20Released; - address private immutable _beneficiary; - uint64 private immutable _start; - uint64 private immutable _duration; - - /** - * @dev Set the beneficiary, start timestamp and vesting duration of the vesting wallet. - */ - constructor( - address beneficiaryAddress, - uint64 startTimestamp, - uint64 durationSeconds - ) { - require(beneficiaryAddress != address(0), "VestingWallet: beneficiary is zero address"); - _beneficiary = beneficiaryAddress; - _start = startTimestamp; - _duration = durationSeconds; - } - - /** - * @dev The contract should be able to receive Eth. - */ - receive() external payable virtual {} - - /** - * @dev Getter for the beneficiary address. - */ - function beneficiary() public view virtual returns (address) { - return _beneficiary; - } - - /** - * @dev Getter for the start timestamp. - */ - function start() public view virtual returns (uint256) { - return _start; - } - - /** - * @dev Getter for the vesting duration. - */ - function duration() public view virtual returns (uint256) { - return _duration; - } - - /** - * @dev Amount of eth already released - */ - function released() public view virtual returns (uint256) { - return _released; - } - - /** - * @dev Amount of token already released - */ - function released(address token) public view virtual returns (uint256) { - return _erc20Released[token]; - } - - /** - * @dev Release the native token (ether) that have already vested. - * - * Emits a {TokensReleased} event. - */ - function release() public virtual { - uint256 releasable = vestedAmount(uint64(block.timestamp)) - released(); - _released += releasable; - emit EtherReleased(releasable); - Address.sendValue(payable(beneficiary()), releasable); - } - - /** - * @dev Release the tokens that have already vested. - * - * Emits a {TokensReleased} event. - */ - function release(address token) public virtual { - uint256 releasable = vestedAmount(token, uint64(block.timestamp)) - released(token); - _erc20Released[token] += releasable; - emit ERC20Released(token, releasable); - SafeERC20.safeTransfer(IERC20(token), beneficiary(), releasable); - } - - /** - * @dev Calculates the amount of ether that has already vested. Default implementation is a linear vesting curve. - */ - function vestedAmount(uint64 timestamp) public view virtual returns (uint256) { - return _vestingSchedule(address(this).balance + released(), timestamp); - } - - /** - * @dev Calculates the amount of tokens that has already vested. Default implementation is a linear vesting curve. - */ - function vestedAmount(address token, uint64 timestamp) public view virtual returns (uint256) { - return _vestingSchedule(IERC20(token).balanceOf(address(this)) + released(token), timestamp); - } - - /** - * @dev Virtual implementation of the vesting formula. This returns the amout vested, as a function of time, for - * an asset given its total historical allocation. - */ - function _vestingSchedule(uint256 totalAllocation, uint64 timestamp) internal view virtual returns (uint256) { - if (timestamp < start()) { - return 0; - } else if (timestamp > start() + duration()) { - return totalAllocation; - } else { - return (totalAllocation * (timestamp - start())) / duration(); - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/Governor.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/Governor.sol deleted file mode 100644 index 235b76891..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/Governor.sol +++ /dev/null @@ -1,357 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (governance/Governor.sol) - -pragma solidity ^0.8.0; - -import "../utils/cryptography/ECDSA.sol"; -import "../utils/cryptography/draft-EIP712.sol"; -import "../utils/introspection/ERC165.sol"; -import "../utils/math/SafeCast.sol"; -import "../utils/Address.sol"; -import "../utils/Context.sol"; -import "../utils/Timers.sol"; -import "./IGovernor.sol"; - -/** - * @dev Core of the governance system, designed to be extended though various modules. - * - * This contract is abstract and requires several function to be implemented in various modules: - * - * - A counting module must implement {quorum}, {_quorumReached}, {_voteSucceeded} and {_countVote} - * - A voting module must implement {getVotes} - * - Additionanly, the {votingPeriod} must also be implemented - * - * _Available since v4.3._ - */ -abstract contract Governor is Context, ERC165, EIP712, IGovernor { - using SafeCast for uint256; - using Timers for Timers.BlockNumber; - - bytes32 public constant BALLOT_TYPEHASH = keccak256("Ballot(uint256 proposalId,uint8 support)"); - - struct ProposalCore { - Timers.BlockNumber voteStart; - Timers.BlockNumber voteEnd; - bool executed; - bool canceled; - } - - string private _name; - - mapping(uint256 => ProposalCore) private _proposals; - - /** - * @dev Restrict access to governor executing address. Some module might override the _executor function to make - * sure this modifier is consistant with the execution model. - */ - modifier onlyGovernance() { - require(_msgSender() == _executor(), "Governor: onlyGovernance"); - _; - } - - /** - * @dev Sets the value for {name} and {version} - */ - constructor(string memory name_) EIP712(name_, version()) { - _name = name_; - } - - /** - * @dev Function to receive ETH that will be handled by the governor (disabled if executor is a third party contract) - */ - receive() external payable virtual { - require(_executor() == address(this)); - } - - /** - * @dev See {IERC165-supportsInterface}. - */ - function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC165) returns (bool) { - return interfaceId == type(IGovernor).interfaceId || super.supportsInterface(interfaceId); - } - - /** - * @dev See {IGovernor-name}. - */ - function name() public view virtual override returns (string memory) { - return _name; - } - - /** - * @dev See {IGovernor-version}. - */ - function version() public view virtual override returns (string memory) { - return "1"; - } - - /** - * @dev See {IGovernor-hashProposal}. - * - * The proposal id is produced by hashing the RLC encoded `targets` array, the `values` array, the `calldatas` array - * and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id - * can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in - * advance, before the proposal is submitted. - * - * Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the - * same proposal (with same operation and same description) will have the same id if submitted on multiple governors - * accross multiple networks. This also means that in order to execute the same operation twice (on the same - * governor) the proposer will have to change the description in order to avoid proposal id conflicts. - */ - function hashProposal( - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - bytes32 descriptionHash - ) public pure virtual override returns (uint256) { - return uint256(keccak256(abi.encode(targets, values, calldatas, descriptionHash))); - } - - /** - * @dev See {IGovernor-state}. - */ - function state(uint256 proposalId) public view virtual override returns (ProposalState) { - ProposalCore memory proposal = _proposals[proposalId]; - - if (proposal.executed) { - return ProposalState.Executed; - } else if (proposal.canceled) { - return ProposalState.Canceled; - } else if (proposal.voteStart.getDeadline() >= block.number) { - return ProposalState.Pending; - } else if (proposal.voteEnd.getDeadline() >= block.number) { - return ProposalState.Active; - } else if (proposal.voteEnd.isExpired()) { - return - _quorumReached(proposalId) && _voteSucceeded(proposalId) - ? ProposalState.Succeeded - : ProposalState.Defeated; - } else { - revert("Governor: unknown proposal id"); - } - } - - /** - * @dev See {IGovernor-proposalSnapshot}. - */ - function proposalSnapshot(uint256 proposalId) public view virtual override returns (uint256) { - return _proposals[proposalId].voteStart.getDeadline(); - } - - /** - * @dev See {IGovernor-proposalDeadline}. - */ - function proposalDeadline(uint256 proposalId) public view virtual override returns (uint256) { - return _proposals[proposalId].voteEnd.getDeadline(); - } - - /** - * @dev Part of the Governor Bravo's interface: _"The number of votes required in order for a voter to become a proposer"_. - */ - function proposalThreshold() public view virtual returns (uint256) { - return 0; - } - - /** - * @dev Amount of votes already cast passes the threshold limit. - */ - function _quorumReached(uint256 proposalId) internal view virtual returns (bool); - - /** - * @dev Is the proposal successful or not. - */ - function _voteSucceeded(uint256 proposalId) internal view virtual returns (bool); - - /** - * @dev Register a vote with a given support and voting weight. - * - * Note: Support is generic and can represent various things depending on the voting system used. - */ - function _countVote( - uint256 proposalId, - address account, - uint8 support, - uint256 weight - ) internal virtual; - - /** - * @dev See {IGovernor-propose}. - */ - function propose( - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - string memory description - ) public virtual override returns (uint256) { - require( - getVotes(msg.sender, block.number - 1) >= proposalThreshold(), - "GovernorCompatibilityBravo: proposer votes below proposal threshold" - ); - - uint256 proposalId = hashProposal(targets, values, calldatas, keccak256(bytes(description))); - - require(targets.length == values.length, "Governor: invalid proposal length"); - require(targets.length == calldatas.length, "Governor: invalid proposal length"); - require(targets.length > 0, "Governor: empty proposal"); - - ProposalCore storage proposal = _proposals[proposalId]; - require(proposal.voteStart.isUnset(), "Governor: proposal already exists"); - - uint64 snapshot = block.number.toUint64() + votingDelay().toUint64(); - uint64 deadline = snapshot + votingPeriod().toUint64(); - - proposal.voteStart.setDeadline(snapshot); - proposal.voteEnd.setDeadline(deadline); - - emit ProposalCreated( - proposalId, - _msgSender(), - targets, - values, - new string[](targets.length), - calldatas, - snapshot, - deadline, - description - ); - - return proposalId; - } - - /** - * @dev See {IGovernor-execute}. - */ - function execute( - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - bytes32 descriptionHash - ) public payable virtual override returns (uint256) { - uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash); - - ProposalState status = state(proposalId); - require( - status == ProposalState.Succeeded || status == ProposalState.Queued, - "Governor: proposal not successful" - ); - _proposals[proposalId].executed = true; - - emit ProposalExecuted(proposalId); - - _execute(proposalId, targets, values, calldatas, descriptionHash); - - return proposalId; - } - - /** - * @dev Internal execution mechanism. Can be overriden to implement different execution mechanism - */ - function _execute( - uint256, /* proposalId */ - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - bytes32 /*descriptionHash*/ - ) internal virtual { - string memory errorMessage = "Governor: call reverted without message"; - for (uint256 i = 0; i < targets.length; ++i) { - (bool success, bytes memory returndata) = targets[i].call{value: values[i]}(calldatas[i]); - Address.verifyCallResult(success, returndata, errorMessage); - } - } - - /** - * @dev Internal cancel mechanism: locks up the proposal timer, preventing it from being re-submitted. Marks it as - * canceled to allow distinguishing it from executed proposals. - * - * Emits a {IGovernor-ProposalCanceled} event. - */ - function _cancel( - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - bytes32 descriptionHash - ) internal virtual returns (uint256) { - uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash); - ProposalState status = state(proposalId); - - require( - status != ProposalState.Canceled && status != ProposalState.Expired && status != ProposalState.Executed, - "Governor: proposal not active" - ); - _proposals[proposalId].canceled = true; - - emit ProposalCanceled(proposalId); - - return proposalId; - } - - /** - * @dev See {IGovernor-castVote}. - */ - function castVote(uint256 proposalId, uint8 support) public virtual override returns (uint256) { - address voter = _msgSender(); - return _castVote(proposalId, voter, support, ""); - } - - /** - * @dev See {IGovernor-castVoteWithReason}. - */ - function castVoteWithReason( - uint256 proposalId, - uint8 support, - string calldata reason - ) public virtual override returns (uint256) { - address voter = _msgSender(); - return _castVote(proposalId, voter, support, reason); - } - - /** - * @dev See {IGovernor-castVoteBySig}. - */ - function castVoteBySig( - uint256 proposalId, - uint8 support, - uint8 v, - bytes32 r, - bytes32 s - ) public virtual override returns (uint256) { - address voter = ECDSA.recover( - _hashTypedDataV4(keccak256(abi.encode(BALLOT_TYPEHASH, proposalId, support))), - v, - r, - s - ); - return _castVote(proposalId, voter, support, ""); - } - - /** - * @dev Internal vote casting mechanism: Check that the vote is pending, that it has not been cast yet, retrieve - * voting weight using {IGovernor-getVotes} and call the {_countVote} internal function. - * - * Emits a {IGovernor-VoteCast} event. - */ - function _castVote( - uint256 proposalId, - address account, - uint8 support, - string memory reason - ) internal virtual returns (uint256) { - ProposalCore storage proposal = _proposals[proposalId]; - require(state(proposalId) == ProposalState.Active, "Governor: vote not currently active"); - - uint256 weight = getVotes(account, proposal.voteStart.getDeadline()); - _countVote(proposalId, account, support, weight); - - emit VoteCast(account, proposalId, support, weight, reason); - - return weight; - } - - /** - * @dev Address through which the governor executes action. Will be overloaded by module that execute actions - * through another contract such as a timelock. - */ - function _executor() internal view virtual returns (address) { - return address(this); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/IGovernor.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/IGovernor.sol deleted file mode 100644 index 50d9d9952..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/IGovernor.sol +++ /dev/null @@ -1,218 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (governance/IGovernor.sol) - -pragma solidity ^0.8.0; - -import "../utils/introspection/ERC165.sol"; - -/** - * @dev Interface of the {Governor} core. - * - * _Available since v4.3._ - */ -abstract contract IGovernor is IERC165 { - enum ProposalState { - Pending, - Active, - Canceled, - Defeated, - Succeeded, - Queued, - Expired, - Executed - } - - /** - * @dev Emitted when a proposal is created. - */ - event ProposalCreated( - uint256 proposalId, - address proposer, - address[] targets, - uint256[] values, - string[] signatures, - bytes[] calldatas, - uint256 startBlock, - uint256 endBlock, - string description - ); - - /** - * @dev Emitted when a proposal is canceled. - */ - event ProposalCanceled(uint256 proposalId); - - /** - * @dev Emitted when a proposal is executed. - */ - event ProposalExecuted(uint256 proposalId); - - /** - * @dev Emitted when a vote is cast. - * - * Note: `support` values should be seen as buckets. There interpretation depends on the voting module used. - */ - event VoteCast(address indexed voter, uint256 proposalId, uint8 support, uint256 weight, string reason); - - /** - * @notice module:core - * @dev Name of the governor instance (used in building the ERC712 domain separator). - */ - function name() public view virtual returns (string memory); - - /** - * @notice module:core - * @dev Version of the governor instance (used in building the ERC712 domain separator). Default: "1" - */ - function version() public view virtual returns (string memory); - - /** - * @notice module:voting - * @dev A description of the possible `support` values for {castVote} and the way these votes are counted, meant to - * be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of - * key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. - * - * There are 2 standard keys: `support` and `quorum`. - * - * - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - * - `quorum=bravo` means that only For votes are counted towards quorum. - * - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. - * - * NOTE: The string can be decoded by the standard - * https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] - * JavaScript class. - */ - // solhint-disable-next-line func-name-mixedcase - function COUNTING_MODE() public pure virtual returns (string memory); - - /** - * @notice module:core - * @dev Hashing function used to (re)build the proposal id from the proposal details.. - */ - function hashProposal( - address[] calldata targets, - uint256[] calldata values, - bytes[] calldata calldatas, - bytes32 descriptionHash - ) public pure virtual returns (uint256); - - /** - * @notice module:core - * @dev Current state of a proposal, following Compound's convention - */ - function state(uint256 proposalId) public view virtual returns (ProposalState); - - /** - * @notice module:core - * @dev Block number used to retrieve user's votes and quorum. As per Compound's Comp and OpenZeppelin's - * ERC20Votes, the snapshot is performed at the end of this block. Hence, voting for this proposal starts at the - * beginning of the following block. - */ - function proposalSnapshot(uint256 proposalId) public view virtual returns (uint256); - - /** - * @notice module:core - * @dev Block number at which votes close. Votes close at the end of this block, so it is possible to cast a vote - * during this block. - */ - function proposalDeadline(uint256 proposalId) public view virtual returns (uint256); - - /** - * @notice module:user-config - * @dev Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to - * leave time for users to buy voting power, of delegate it, before the voting of a proposal starts. - */ - function votingDelay() public view virtual returns (uint256); - - /** - * @notice module:user-config - * @dev Delay, in number of blocks, between the vote start and vote ends. - * - * NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting - * duration compared to the voting delay. - */ - function votingPeriod() public view virtual returns (uint256); - - /** - * @notice module:user-config - * @dev Minimum number of cast voted required for a proposal to be successful. - * - * Note: The `blockNumber` parameter corresponds to the snaphot used for counting vote. This allows to scale the - * quroum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}). - */ - function quorum(uint256 blockNumber) public view virtual returns (uint256); - - /** - * @notice module:reputation - * @dev Voting power of an `account` at a specific `blockNumber`. - * - * Note: this can be implemented in a number of ways, for example by reading the delegated balance from one (or - * multiple), {ERC20Votes} tokens. - */ - function getVotes(address account, uint256 blockNumber) public view virtual returns (uint256); - - /** - * @notice module:voting - * @dev Returns weither `account` has cast a vote on `proposalId`. - */ - function hasVoted(uint256 proposalId, address account) public view virtual returns (bool); - - /** - * @dev Create a new proposal. Vote start {IGovernor-votingDelay} blocks after the proposal is created and ends - * {IGovernor-votingPeriod} blocks after the voting starts. - * - * Emits a {ProposalCreated} event. - */ - function propose( - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - string memory description - ) public virtual returns (uint256 proposalId); - - /** - * @dev Execute a successful proposal. This requires the quorum to be reached, the vote to be successful, and the - * deadline to be reached. - * - * Emits a {ProposalExecuted} event. - * - * Note: some module can modify the requirements for execution, for example by adding an additional timelock. - */ - function execute( - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - bytes32 descriptionHash - ) public payable virtual returns (uint256 proposalId); - - /** - * @dev Cast a vote - * - * Emits a {VoteCast} event. - */ - function castVote(uint256 proposalId, uint8 support) public virtual returns (uint256 balance); - - /** - * @dev Cast a with a reason - * - * Emits a {VoteCast} event. - */ - function castVoteWithReason( - uint256 proposalId, - uint8 support, - string calldata reason - ) public virtual returns (uint256 balance); - - /** - * @dev Cast a vote using the user cryptographic signature. - * - * Emits a {VoteCast} event. - */ - function castVoteBySig( - uint256 proposalId, - uint8 support, - uint8 v, - bytes32 r, - bytes32 s - ) public virtual returns (uint256 balance); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/TimelockController.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/TimelockController.sol deleted file mode 100644 index b20ac9538..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/TimelockController.sol +++ /dev/null @@ -1,353 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (governance/TimelockController.sol) - -pragma solidity ^0.8.0; - -import "../access/AccessControl.sol"; - -/** - * @dev Contract module which acts as a timelocked controller. When set as the - * owner of an `Ownable` smart contract, it enforces a timelock on all - * `onlyOwner` maintenance operations. This gives time for users of the - * controlled contract to exit before a potentially dangerous maintenance - * operation is applied. - * - * By default, this contract is self administered, meaning administration tasks - * have to go through the timelock process. The proposer (resp executor) role - * is in charge of proposing (resp executing) operations. A common use case is - * to position this {TimelockController} as the owner of a smart contract, with - * a multisig or a DAO as the sole proposer. - * - * _Available since v3.3._ - */ -contract TimelockController is AccessControl { - bytes32 public constant TIMELOCK_ADMIN_ROLE = keccak256("TIMELOCK_ADMIN_ROLE"); - bytes32 public constant PROPOSER_ROLE = keccak256("PROPOSER_ROLE"); - bytes32 public constant EXECUTOR_ROLE = keccak256("EXECUTOR_ROLE"); - uint256 internal constant _DONE_TIMESTAMP = uint256(1); - - mapping(bytes32 => uint256) private _timestamps; - uint256 private _minDelay; - - /** - * @dev Emitted when a call is scheduled as part of operation `id`. - */ - event CallScheduled( - bytes32 indexed id, - uint256 indexed index, - address target, - uint256 value, - bytes data, - bytes32 predecessor, - uint256 delay - ); - - /** - * @dev Emitted when a call is performed as part of operation `id`. - */ - event CallExecuted(bytes32 indexed id, uint256 indexed index, address target, uint256 value, bytes data); - - /** - * @dev Emitted when operation `id` is cancelled. - */ - event Cancelled(bytes32 indexed id); - - /** - * @dev Emitted when the minimum delay for future operations is modified. - */ - event MinDelayChange(uint256 oldDuration, uint256 newDuration); - - /** - * @dev Initializes the contract with a given `minDelay`. - */ - constructor( - uint256 minDelay, - address[] memory proposers, - address[] memory executors - ) { - _setRoleAdmin(TIMELOCK_ADMIN_ROLE, TIMELOCK_ADMIN_ROLE); - _setRoleAdmin(PROPOSER_ROLE, TIMELOCK_ADMIN_ROLE); - _setRoleAdmin(EXECUTOR_ROLE, TIMELOCK_ADMIN_ROLE); - - // deployer + self administration - _setupRole(TIMELOCK_ADMIN_ROLE, _msgSender()); - _setupRole(TIMELOCK_ADMIN_ROLE, address(this)); - - // register proposers - for (uint256 i = 0; i < proposers.length; ++i) { - _setupRole(PROPOSER_ROLE, proposers[i]); - } - - // register executors - for (uint256 i = 0; i < executors.length; ++i) { - _setupRole(EXECUTOR_ROLE, executors[i]); - } - - _minDelay = minDelay; - emit MinDelayChange(0, minDelay); - } - - /** - * @dev Modifier to make a function callable only by a certain role. In - * addition to checking the sender's role, `address(0)` 's role is also - * considered. Granting a role to `address(0)` is equivalent to enabling - * this role for everyone. - */ - modifier onlyRoleOrOpenRole(bytes32 role) { - if (!hasRole(role, address(0))) { - _checkRole(role, _msgSender()); - } - _; - } - - /** - * @dev Contract might receive/hold ETH as part of the maintenance process. - */ - receive() external payable {} - - /** - * @dev Returns whether an id correspond to a registered operation. This - * includes both Pending, Ready and Done operations. - */ - function isOperation(bytes32 id) public view virtual returns (bool pending) { - return getTimestamp(id) > 0; - } - - /** - * @dev Returns whether an operation is pending or not. - */ - function isOperationPending(bytes32 id) public view virtual returns (bool pending) { - return getTimestamp(id) > _DONE_TIMESTAMP; - } - - /** - * @dev Returns whether an operation is ready or not. - */ - function isOperationReady(bytes32 id) public view virtual returns (bool ready) { - uint256 timestamp = getTimestamp(id); - return timestamp > _DONE_TIMESTAMP && timestamp <= block.timestamp; - } - - /** - * @dev Returns whether an operation is done or not. - */ - function isOperationDone(bytes32 id) public view virtual returns (bool done) { - return getTimestamp(id) == _DONE_TIMESTAMP; - } - - /** - * @dev Returns the timestamp at with an operation becomes ready (0 for - * unset operations, 1 for done operations). - */ - function getTimestamp(bytes32 id) public view virtual returns (uint256 timestamp) { - return _timestamps[id]; - } - - /** - * @dev Returns the minimum delay for an operation to become valid. - * - * This value can be changed by executing an operation that calls `updateDelay`. - */ - function getMinDelay() public view virtual returns (uint256 duration) { - return _minDelay; - } - - /** - * @dev Returns the identifier of an operation containing a single - * transaction. - */ - function hashOperation( - address target, - uint256 value, - bytes calldata data, - bytes32 predecessor, - bytes32 salt - ) public pure virtual returns (bytes32 hash) { - return keccak256(abi.encode(target, value, data, predecessor, salt)); - } - - /** - * @dev Returns the identifier of an operation containing a batch of - * transactions. - */ - function hashOperationBatch( - address[] calldata targets, - uint256[] calldata values, - bytes[] calldata datas, - bytes32 predecessor, - bytes32 salt - ) public pure virtual returns (bytes32 hash) { - return keccak256(abi.encode(targets, values, datas, predecessor, salt)); - } - - /** - * @dev Schedule an operation containing a single transaction. - * - * Emits a {CallScheduled} event. - * - * Requirements: - * - * - the caller must have the 'proposer' role. - */ - function schedule( - address target, - uint256 value, - bytes calldata data, - bytes32 predecessor, - bytes32 salt, - uint256 delay - ) public virtual onlyRole(PROPOSER_ROLE) { - bytes32 id = hashOperation(target, value, data, predecessor, salt); - _schedule(id, delay); - emit CallScheduled(id, 0, target, value, data, predecessor, delay); - } - - /** - * @dev Schedule an operation containing a batch of transactions. - * - * Emits one {CallScheduled} event per transaction in the batch. - * - * Requirements: - * - * - the caller must have the 'proposer' role. - */ - function scheduleBatch( - address[] calldata targets, - uint256[] calldata values, - bytes[] calldata datas, - bytes32 predecessor, - bytes32 salt, - uint256 delay - ) public virtual onlyRole(PROPOSER_ROLE) { - require(targets.length == values.length, "TimelockController: length mismatch"); - require(targets.length == datas.length, "TimelockController: length mismatch"); - - bytes32 id = hashOperationBatch(targets, values, datas, predecessor, salt); - _schedule(id, delay); - for (uint256 i = 0; i < targets.length; ++i) { - emit CallScheduled(id, i, targets[i], values[i], datas[i], predecessor, delay); - } - } - - /** - * @dev Schedule an operation that is to becomes valid after a given delay. - */ - function _schedule(bytes32 id, uint256 delay) private { - require(!isOperation(id), "TimelockController: operation already scheduled"); - require(delay >= getMinDelay(), "TimelockController: insufficient delay"); - _timestamps[id] = block.timestamp + delay; - } - - /** - * @dev Cancel an operation. - * - * Requirements: - * - * - the caller must have the 'proposer' role. - */ - function cancel(bytes32 id) public virtual onlyRole(PROPOSER_ROLE) { - require(isOperationPending(id), "TimelockController: operation cannot be cancelled"); - delete _timestamps[id]; - - emit Cancelled(id); - } - - /** - * @dev Execute an (ready) operation containing a single transaction. - * - * Emits a {CallExecuted} event. - * - * Requirements: - * - * - the caller must have the 'executor' role. - */ - function execute( - address target, - uint256 value, - bytes calldata data, - bytes32 predecessor, - bytes32 salt - ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) { - bytes32 id = hashOperation(target, value, data, predecessor, salt); - _beforeCall(id, predecessor); - _call(id, 0, target, value, data); - _afterCall(id); - } - - /** - * @dev Execute an (ready) operation containing a batch of transactions. - * - * Emits one {CallExecuted} event per transaction in the batch. - * - * Requirements: - * - * - the caller must have the 'executor' role. - */ - function executeBatch( - address[] calldata targets, - uint256[] calldata values, - bytes[] calldata datas, - bytes32 predecessor, - bytes32 salt - ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) { - require(targets.length == values.length, "TimelockController: length mismatch"); - require(targets.length == datas.length, "TimelockController: length mismatch"); - - bytes32 id = hashOperationBatch(targets, values, datas, predecessor, salt); - _beforeCall(id, predecessor); - for (uint256 i = 0; i < targets.length; ++i) { - _call(id, i, targets[i], values[i], datas[i]); - } - _afterCall(id); - } - - /** - * @dev Checks before execution of an operation's calls. - */ - function _beforeCall(bytes32 id, bytes32 predecessor) private view { - require(isOperationReady(id), "TimelockController: operation is not ready"); - require(predecessor == bytes32(0) || isOperationDone(predecessor), "TimelockController: missing dependency"); - } - - /** - * @dev Checks after execution of an operation's calls. - */ - function _afterCall(bytes32 id) private { - require(isOperationReady(id), "TimelockController: operation is not ready"); - _timestamps[id] = _DONE_TIMESTAMP; - } - - /** - * @dev Execute an operation's call. - * - * Emits a {CallExecuted} event. - */ - function _call( - bytes32 id, - uint256 index, - address target, - uint256 value, - bytes calldata data - ) private { - (bool success, ) = target.call{value: value}(data); - require(success, "TimelockController: underlying transaction reverted"); - - emit CallExecuted(id, index, target, value, data); - } - - /** - * @dev Changes the minimum timelock duration for future operations. - * - * Emits a {MinDelayChange} event. - * - * Requirements: - * - * - the caller must be the timelock itself. This can only be achieved by scheduling and later executing - * an operation where the timelock is the target and the data is the ABI-encoded call to this function. - */ - function updateDelay(uint256 newDelay) external virtual { - require(msg.sender == address(this), "TimelockController: caller must be timelock"); - emit MinDelayChange(_minDelay, newDelay); - _minDelay = newDelay; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/GovernorCompatibilityBravo.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/GovernorCompatibilityBravo.sol deleted file mode 100644 index 5c6418727..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/GovernorCompatibilityBravo.sol +++ /dev/null @@ -1,288 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (governance/compatibility/GovernorCompatibilityBravo.sol) - -pragma solidity ^0.8.0; - -import "../../utils/Counters.sol"; -import "../../utils/math/SafeCast.sol"; -import "../extensions/IGovernorTimelock.sol"; -import "../Governor.sol"; -import "./IGovernorCompatibilityBravo.sol"; - -/** - * @dev Compatibility layer that implements GovernorBravo compatibility on to of {Governor}. - * - * This compatibility layer includes a voting system and requires a {IGovernorTimelock} compatible module to be added - * through inheritance. It does not include token bindings, not does it include any variable upgrade patterns. - * - * NOTE: When using this module, you may need to enable the Solidity optimizer to avoid hitting the contract size limit. - * - * _Available since v4.3._ - */ -abstract contract GovernorCompatibilityBravo is IGovernorTimelock, IGovernorCompatibilityBravo, Governor { - using Counters for Counters.Counter; - using Timers for Timers.BlockNumber; - - enum VoteType { - Against, - For, - Abstain - } - - struct ProposalDetails { - address proposer; - address[] targets; - uint256[] values; - string[] signatures; - bytes[] calldatas; - uint256 forVotes; - uint256 againstVotes; - uint256 abstainVotes; - mapping(address => Receipt) receipts; - bytes32 descriptionHash; - } - - mapping(uint256 => ProposalDetails) private _proposalDetails; - - // solhint-disable-next-line func-name-mixedcase - function COUNTING_MODE() public pure virtual override returns (string memory) { - return "support=bravo&quorum=bravo"; - } - - // ============================================== Proposal lifecycle ============================================== - /** - * @dev See {IGovernor-propose}. - */ - function propose( - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - string memory description - ) public virtual override(IGovernor, Governor) returns (uint256) { - _storeProposal(_msgSender(), targets, values, new string[](calldatas.length), calldatas, description); - return super.propose(targets, values, calldatas, description); - } - - /** - * @dev See {IGovernorCompatibilityBravo-propose}. - */ - function propose( - address[] memory targets, - uint256[] memory values, - string[] memory signatures, - bytes[] memory calldatas, - string memory description - ) public virtual override returns (uint256) { - _storeProposal(_msgSender(), targets, values, signatures, calldatas, description); - return propose(targets, values, _encodeCalldata(signatures, calldatas), description); - } - - /** - * @dev See {IGovernorCompatibilityBravo-queue}. - */ - function queue(uint256 proposalId) public virtual override { - ProposalDetails storage details = _proposalDetails[proposalId]; - queue( - details.targets, - details.values, - _encodeCalldata(details.signatures, details.calldatas), - details.descriptionHash - ); - } - - /** - * @dev See {IGovernorCompatibilityBravo-execute}. - */ - function execute(uint256 proposalId) public payable virtual override { - ProposalDetails storage details = _proposalDetails[proposalId]; - execute( - details.targets, - details.values, - _encodeCalldata(details.signatures, details.calldatas), - details.descriptionHash - ); - } - - function cancel(uint256 proposalId) public virtual override { - ProposalDetails storage details = _proposalDetails[proposalId]; - - require( - _msgSender() == details.proposer || getVotes(details.proposer, block.number - 1) < proposalThreshold(), - "GovernorBravo: proposer above threshold" - ); - - _cancel( - details.targets, - details.values, - _encodeCalldata(details.signatures, details.calldatas), - details.descriptionHash - ); - } - - /** - * @dev Encodes calldatas with optional function signature. - */ - function _encodeCalldata(string[] memory signatures, bytes[] memory calldatas) - private - pure - returns (bytes[] memory) - { - bytes[] memory fullcalldatas = new bytes[](calldatas.length); - - for (uint256 i = 0; i < signatures.length; ++i) { - fullcalldatas[i] = bytes(signatures[i]).length == 0 - ? calldatas[i] - : abi.encodeWithSignature(signatures[i], calldatas[i]); - } - - return fullcalldatas; - } - - /** - * @dev Store proposal metadata for later lookup - */ - function _storeProposal( - address proposer, - address[] memory targets, - uint256[] memory values, - string[] memory signatures, - bytes[] memory calldatas, - string memory description - ) private { - bytes32 descriptionHash = keccak256(bytes(description)); - uint256 proposalId = hashProposal(targets, values, _encodeCalldata(signatures, calldatas), descriptionHash); - - ProposalDetails storage details = _proposalDetails[proposalId]; - if (details.descriptionHash == bytes32(0)) { - details.proposer = proposer; - details.targets = targets; - details.values = values; - details.signatures = signatures; - details.calldatas = calldatas; - details.descriptionHash = descriptionHash; - } - } - - // ==================================================== Views ===================================================== - /** - * @dev See {IGovernorCompatibilityBravo-proposals}. - */ - function proposals(uint256 proposalId) - public - view - virtual - override - returns ( - uint256 id, - address proposer, - uint256 eta, - uint256 startBlock, - uint256 endBlock, - uint256 forVotes, - uint256 againstVotes, - uint256 abstainVotes, - bool canceled, - bool executed - ) - { - id = proposalId; - eta = proposalEta(proposalId); - startBlock = proposalSnapshot(proposalId); - endBlock = proposalDeadline(proposalId); - - ProposalDetails storage details = _proposalDetails[proposalId]; - proposer = details.proposer; - forVotes = details.forVotes; - againstVotes = details.againstVotes; - abstainVotes = details.abstainVotes; - - ProposalState status = state(proposalId); - canceled = status == ProposalState.Canceled; - executed = status == ProposalState.Executed; - } - - /** - * @dev See {IGovernorCompatibilityBravo-getActions}. - */ - function getActions(uint256 proposalId) - public - view - virtual - override - returns ( - address[] memory targets, - uint256[] memory values, - string[] memory signatures, - bytes[] memory calldatas - ) - { - ProposalDetails storage details = _proposalDetails[proposalId]; - return (details.targets, details.values, details.signatures, details.calldatas); - } - - /** - * @dev See {IGovernorCompatibilityBravo-getReceipt}. - */ - function getReceipt(uint256 proposalId, address voter) public view virtual override returns (Receipt memory) { - return _proposalDetails[proposalId].receipts[voter]; - } - - /** - * @dev See {IGovernorCompatibilityBravo-quorumVotes}. - */ - function quorumVotes() public view virtual override returns (uint256) { - return quorum(block.number - 1); - } - - // ==================================================== Voting ==================================================== - /** - * @dev See {IGovernor-hasVoted}. - */ - function hasVoted(uint256 proposalId, address account) public view virtual override returns (bool) { - return _proposalDetails[proposalId].receipts[account].hasVoted; - } - - /** - * @dev See {Governor-_quorumReached}. In this module, only forVotes count toward the quorum. - */ - function _quorumReached(uint256 proposalId) internal view virtual override returns (bool) { - ProposalDetails storage details = _proposalDetails[proposalId]; - return quorum(proposalSnapshot(proposalId)) <= details.forVotes; - } - - /** - * @dev See {Governor-_voteSucceeded}. In this module, the forVotes must be scritly over the againstVotes. - */ - function _voteSucceeded(uint256 proposalId) internal view virtual override returns (bool) { - ProposalDetails storage details = _proposalDetails[proposalId]; - return details.forVotes > details.againstVotes; - } - - /** - * @dev See {Governor-_countVote}. In this module, the support follows Governor Bravo. - */ - function _countVote( - uint256 proposalId, - address account, - uint8 support, - uint256 weight - ) internal virtual override { - ProposalDetails storage details = _proposalDetails[proposalId]; - Receipt storage receipt = details.receipts[account]; - - require(!receipt.hasVoted, "GovernorCompatibilityBravo: vote already cast"); - receipt.hasVoted = true; - receipt.support = support; - receipt.votes = SafeCast.toUint96(weight); - - if (support == uint8(VoteType.Against)) { - details.againstVotes += weight; - } else if (support == uint8(VoteType.For)) { - details.forVotes += weight; - } else if (support == uint8(VoteType.Abstain)) { - details.abstainVotes += weight; - } else { - revert("GovernorCompatibilityBravo: invalid vote type"); - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol deleted file mode 100644 index 591bc3f78..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol +++ /dev/null @@ -1,114 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (governance/compatibility/IGovernorCompatibilityBravo.sol) - -pragma solidity ^0.8.0; - -import "../IGovernor.sol"; - -/** - * @dev Interface extension that adds missing functions to the {Governor} core to provide `GovernorBravo` compatibility. - * - * _Available since v4.3._ - */ -abstract contract IGovernorCompatibilityBravo is IGovernor { - /** - * @dev Proposal structure from Compound Governor Bravo. Not actually used by the compatibility layer, as - * {{proposal}} returns a very different structure. - */ - struct Proposal { - uint256 id; - address proposer; - uint256 eta; - address[] targets; - uint256[] values; - string[] signatures; - bytes[] calldatas; - uint256 startBlock; - uint256 endBlock; - uint256 forVotes; - uint256 againstVotes; - uint256 abstainVotes; - bool canceled; - bool executed; - mapping(address => Receipt) receipts; - } - - /** - * @dev Receipt structure from Compound Governor Bravo - */ - struct Receipt { - bool hasVoted; - uint8 support; - uint96 votes; - } - - /** - * @dev Part of the Governor Bravo's interface. - */ - function quorumVotes() public view virtual returns (uint256); - - /** - * @dev Part of the Governor Bravo's interface: _"The official record of all proposals ever proposed"_. - */ - function proposals(uint256) - public - view - virtual - returns ( - uint256 id, - address proposer, - uint256 eta, - uint256 startBlock, - uint256 endBlock, - uint256 forVotes, - uint256 againstVotes, - uint256 abstainVotes, - bool canceled, - bool executed - ); - - /** - * @dev Part of the Governor Bravo's interface: _"Function used to propose a new proposal"_. - */ - function propose( - address[] memory targets, - uint256[] memory values, - string[] memory signatures, - bytes[] memory calldatas, - string memory description - ) public virtual returns (uint256); - - /** - * @dev Part of the Governor Bravo's interface: _"Queues a proposal of state succeeded"_. - */ - function queue(uint256 proposalId) public virtual; - - /** - * @dev Part of the Governor Bravo's interface: _"Executes a queued proposal if eta has passed"_. - */ - function execute(uint256 proposalId) public payable virtual; - - /** - * @dev Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold. - */ - function cancel(uint256 proposalId) public virtual; - - /** - * @dev Part of the Governor Bravo's interface: _"Gets actions of a proposal"_. - */ - function getActions(uint256 proposalId) - public - view - virtual - returns ( - address[] memory targets, - uint256[] memory values, - string[] memory signatures, - bytes[] memory calldatas - ); - - /** - * @dev Part of the Governor Bravo's interface: _"Gets the receipt for a voter on a given proposal"_. - */ - function getReceipt(uint256 proposalId, address voter) public view virtual returns (Receipt memory); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol deleted file mode 100644 index 68fa2e311..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol +++ /dev/null @@ -1,106 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorCountingSimple.sol) - -pragma solidity ^0.8.0; - -import "../Governor.sol"; - -/** - * @dev Extension of {Governor} for simple, 3 options, vote counting. - * - * _Available since v4.3._ - */ -abstract contract GovernorCountingSimple is Governor { - /** - * @dev Supported vote types. Matches Governor Bravo ordering. - */ - enum VoteType { - Against, - For, - Abstain - } - - struct ProposalVote { - uint256 againstVotes; - uint256 forVotes; - uint256 abstainVotes; - mapping(address => bool) hasVoted; - } - - mapping(uint256 => ProposalVote) private _proposalVotes; - - /** - * @dev See {IGovernor-COUNTING_MODE}. - */ - // solhint-disable-next-line func-name-mixedcase - function COUNTING_MODE() public pure virtual override returns (string memory) { - return "support=bravo&quorum=for,abstain"; - } - - /** - * @dev See {IGovernor-hasVoted}. - */ - function hasVoted(uint256 proposalId, address account) public view virtual override returns (bool) { - return _proposalVotes[proposalId].hasVoted[account]; - } - - /** - * @dev Accessor to the internal vote counts. - */ - function proposalVotes(uint256 proposalId) - public - view - virtual - returns ( - uint256 againstVotes, - uint256 forVotes, - uint256 abstainVotes - ) - { - ProposalVote storage proposalvote = _proposalVotes[proposalId]; - return (proposalvote.againstVotes, proposalvote.forVotes, proposalvote.abstainVotes); - } - - /** - * @dev See {Governor-_quorumReached}. - */ - function _quorumReached(uint256 proposalId) internal view virtual override returns (bool) { - ProposalVote storage proposalvote = _proposalVotes[proposalId]; - - return quorum(proposalSnapshot(proposalId)) <= proposalvote.forVotes + proposalvote.abstainVotes; - } - - /** - * @dev See {Governor-_voteSucceeded}. In this module, the forVotes must be strictly over the againstVotes. - */ - function _voteSucceeded(uint256 proposalId) internal view virtual override returns (bool) { - ProposalVote storage proposalvote = _proposalVotes[proposalId]; - - return proposalvote.forVotes > proposalvote.againstVotes; - } - - /** - * @dev See {Governor-_countVote}. In this module, the support follows the `VoteType` enum (from Governor Bravo). - */ - function _countVote( - uint256 proposalId, - address account, - uint8 support, - uint256 weight - ) internal virtual override { - ProposalVote storage proposalvote = _proposalVotes[proposalId]; - - require(!proposalvote.hasVoted[account], "GovernorVotingSimple: vote already cast"); - proposalvote.hasVoted[account] = true; - - if (support == uint8(VoteType.Against)) { - proposalvote.againstVotes += weight; - } else if (support == uint8(VoteType.For)) { - proposalvote.forVotes += weight; - } else if (support == uint8(VoteType.Abstain)) { - proposalvote.abstainVotes += weight; - } else { - revert("GovernorVotingSimple: invalid value for enum VoteType"); - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorProposalThreshold.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorProposalThreshold.sol deleted file mode 100644 index fae4c625b..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorProposalThreshold.sol +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorProposalThreshold.sol) - -pragma solidity ^0.8.0; - -import "../Governor.sol"; - -/** - * @dev Extension of {Governor} for proposal restriction to token holders with a minimum balance. - * - * _Available since v4.3._ - * _Deprecated since v4.4._ - */ -abstract contract GovernorProposalThreshold is Governor { - function propose( - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - string memory description - ) public virtual override returns (uint256) { - return super.propose(targets, values, calldatas, description); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorSettings.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorSettings.sol deleted file mode 100644 index 41152d486..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorSettings.sol +++ /dev/null @@ -1,114 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorSettings.sol) - -pragma solidity ^0.8.0; - -import "../Governor.sol"; - -/** - * @dev Extension of {Governor} for settings updatable through governance. - * - * _Available since v4.4._ - */ -abstract contract GovernorSettings is Governor { - uint256 private _votingDelay; - uint256 private _votingPeriod; - uint256 private _proposalThreshold; - - event VotingDelaySet(uint256 oldVotingDelay, uint256 newVotingDelay); - event VotingPeriodSet(uint256 oldVotingPeriod, uint256 newVotingPeriod); - event ProposalThresholdSet(uint256 oldProposalThreshold, uint256 newProposalThreshold); - - /** - * @dev Initialize the governance parameters. - */ - constructor( - uint256 initialVotingDelay, - uint256 initialVotingPeriod, - uint256 initialProposalThreshold - ) { - _setVotingDelay(initialVotingDelay); - _setVotingPeriod(initialVotingPeriod); - _setProposalThreshold(initialProposalThreshold); - } - - /** - * @dev See {IGovernor-votingDelay}. - */ - function votingDelay() public view virtual override returns (uint256) { - return _votingDelay; - } - - /** - * @dev See {IGovernor-votingPeriod}. - */ - function votingPeriod() public view virtual override returns (uint256) { - return _votingPeriod; - } - - /** - * @dev See {Governor-proposalThreshold}. - */ - function proposalThreshold() public view virtual override returns (uint256) { - return _proposalThreshold; - } - - /** - * @dev Update the voting delay. This operation can only be performed through a governance proposal. - * - * Emits a {VotingDelaySet} event. - */ - function setVotingDelay(uint256 newVotingDelay) public virtual onlyGovernance { - _setVotingDelay(newVotingDelay); - } - - /** - * @dev Update the voting period. This operation can only be performed through a governance proposal. - * - * Emits a {VotingPeriodSet} event. - */ - function setVotingPeriod(uint256 newVotingPeriod) public virtual onlyGovernance { - _setVotingPeriod(newVotingPeriod); - } - - /** - * @dev Update the proposal threshold. This operation can only be performed through a governance proposal. - * - * Emits a {ProposalThresholdSet} event. - */ - function setProposalThreshold(uint256 newProposalThreshold) public virtual onlyGovernance { - _setProposalThreshold(newProposalThreshold); - } - - /** - * @dev Internal setter for the voting delay. - * - * Emits a {VotingDelaySet} event. - */ - function _setVotingDelay(uint256 newVotingDelay) internal virtual { - emit VotingDelaySet(_votingDelay, newVotingDelay); - _votingDelay = newVotingDelay; - } - - /** - * @dev Internal setter for the voting period. - * - * Emits a {VotingPeriodSet} event. - */ - function _setVotingPeriod(uint256 newVotingPeriod) internal virtual { - // voting period must be at least one block long - require(newVotingPeriod > 0, "GovernorSettings: voting period too low"); - emit VotingPeriodSet(_votingPeriod, newVotingPeriod); - _votingPeriod = newVotingPeriod; - } - - /** - * @dev Internal setter for the proposal threshold. - * - * Emits a {ProposalThresholdSet} event. - */ - function _setProposalThreshold(uint256 newProposalThreshold) internal virtual { - emit ProposalThresholdSet(_proposalThreshold, newProposalThreshold); - _proposalThreshold = newProposalThreshold; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockCompound.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockCompound.sol deleted file mode 100644 index fa5ccb2c7..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockCompound.sol +++ /dev/null @@ -1,244 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorTimelockCompound.sol) - -pragma solidity ^0.8.0; - -import "./IGovernorTimelock.sol"; -import "../Governor.sol"; -import "../../utils/math/SafeCast.sol"; - -/** - * https://github.com/compound-finance/compound-protocol/blob/master/contracts/Timelock.sol[Compound's timelock] interface - */ -interface ICompoundTimelock { - receive() external payable; - - // solhint-disable-next-line func-name-mixedcase - function GRACE_PERIOD() external view returns (uint256); - - // solhint-disable-next-line func-name-mixedcase - function MINIMUM_DELAY() external view returns (uint256); - - // solhint-disable-next-line func-name-mixedcase - function MAXIMUM_DELAY() external view returns (uint256); - - function admin() external view returns (address); - - function pendingAdmin() external view returns (address); - - function delay() external view returns (uint256); - - function queuedTransactions(bytes32) external view returns (bool); - - function setDelay(uint256) external; - - function acceptAdmin() external; - - function setPendingAdmin(address) external; - - function queueTransaction( - address target, - uint256 value, - string memory signature, - bytes memory data, - uint256 eta - ) external returns (bytes32); - - function cancelTransaction( - address target, - uint256 value, - string memory signature, - bytes memory data, - uint256 eta - ) external; - - function executeTransaction( - address target, - uint256 value, - string memory signature, - bytes memory data, - uint256 eta - ) external payable returns (bytes memory); -} - -/** - * @dev Extension of {Governor} that binds the execution process to a Compound Timelock. This adds a delay, enforced by - * the external timelock to all successful proposal (in addition to the voting duration). The {Governor} needs to be - * the admin of the timelock for any operation to be performed. A public, unrestricted, - * {GovernorTimelockCompound-__acceptAdmin} is available to accept ownership of the timelock. - * - * Using this model means the proposal will be operated by the {TimelockController} and not by the {Governor}. Thus, - * the assets and permissions must be attached to the {TimelockController}. Any asset sent to the {Governor} will be - * inaccessible. - * - * _Available since v4.3._ - */ -abstract contract GovernorTimelockCompound is IGovernorTimelock, Governor { - using SafeCast for uint256; - using Timers for Timers.Timestamp; - - struct ProposalTimelock { - Timers.Timestamp timer; - } - - ICompoundTimelock private _timelock; - - mapping(uint256 => ProposalTimelock) private _proposalTimelocks; - - /** - * @dev Emitted when the timelock controller used for proposal execution is modified. - */ - event TimelockChange(address oldTimelock, address newTimelock); - - /** - * @dev Set the timelock. - */ - constructor(ICompoundTimelock timelockAddress) { - _updateTimelock(timelockAddress); - } - - /** - * @dev See {IERC165-supportsInterface}. - */ - function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, Governor) returns (bool) { - return interfaceId == type(IGovernorTimelock).interfaceId || super.supportsInterface(interfaceId); - } - - /** - * @dev Overriden version of the {Governor-state} function with added support for the `Queued` and `Expired` status. - */ - function state(uint256 proposalId) public view virtual override(IGovernor, Governor) returns (ProposalState) { - ProposalState status = super.state(proposalId); - - if (status != ProposalState.Succeeded) { - return status; - } - - uint256 eta = proposalEta(proposalId); - if (eta == 0) { - return status; - } else if (block.timestamp >= eta + _timelock.GRACE_PERIOD()) { - return ProposalState.Expired; - } else { - return ProposalState.Queued; - } - } - - /** - * @dev Public accessor to check the address of the timelock - */ - function timelock() public view virtual override returns (address) { - return address(_timelock); - } - - /** - * @dev Public accessor to check the eta of a queued proposal - */ - function proposalEta(uint256 proposalId) public view virtual override returns (uint256) { - return _proposalTimelocks[proposalId].timer.getDeadline(); - } - - /** - * @dev Function to queue a proposal to the timelock. - */ - function queue( - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - bytes32 descriptionHash - ) public virtual override returns (uint256) { - uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash); - - require(state(proposalId) == ProposalState.Succeeded, "Governor: proposal not successful"); - - uint256 eta = block.timestamp + _timelock.delay(); - _proposalTimelocks[proposalId].timer.setDeadline(eta.toUint64()); - for (uint256 i = 0; i < targets.length; ++i) { - require( - !_timelock.queuedTransactions(keccak256(abi.encode(targets[i], values[i], "", calldatas[i], eta))), - "GovernorTimelockCompound: identical proposal action already queued" - ); - _timelock.queueTransaction(targets[i], values[i], "", calldatas[i], eta); - } - - emit ProposalQueued(proposalId, eta); - - return proposalId; - } - - /** - * @dev Overriden execute function that run the already queued proposal through the timelock. - */ - function _execute( - uint256 proposalId, - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - bytes32 /*descriptionHash*/ - ) internal virtual override { - uint256 eta = proposalEta(proposalId); - require(eta > 0, "GovernorTimelockCompound: proposal not yet queued"); - Address.sendValue(payable(_timelock), msg.value); - for (uint256 i = 0; i < targets.length; ++i) { - _timelock.executeTransaction(targets[i], values[i], "", calldatas[i], eta); - } - } - - /** - * @dev Overriden version of the {Governor-_cancel} function to cancel the timelocked proposal if it as already - * been queued. - */ - function _cancel( - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - bytes32 descriptionHash - ) internal virtual override returns (uint256) { - uint256 proposalId = super._cancel(targets, values, calldatas, descriptionHash); - - uint256 eta = proposalEta(proposalId); - if (eta > 0) { - for (uint256 i = 0; i < targets.length; ++i) { - _timelock.cancelTransaction(targets[i], values[i], "", calldatas[i], eta); - } - _proposalTimelocks[proposalId].timer.reset(); - } - - return proposalId; - } - - /** - * @dev Address through which the governor executes action. In this case, the timelock. - */ - function _executor() internal view virtual override returns (address) { - return address(_timelock); - } - - /** - * @dev Accept admin right over the timelock. - */ - // solhint-disable-next-line private-vars-leading-underscore - function __acceptAdmin() public { - _timelock.acceptAdmin(); - } - - /** - * @dev Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates - * must be proposed, scheduled and executed using the {Governor} workflow. - * - * For security reason, the timelock must be handed over to another admin before setting up a new one. The two - * operations (hand over the timelock) and do the update can be batched in a single proposal. - * - * Note that if the timelock admin has been handed over in a previous operation, we refuse updates made through the - * timelock if admin of the timelock has already been accepted and the operation is executed outside the scope of - * governance. - */ - function updateTimelock(ICompoundTimelock newTimelock) external virtual onlyGovernance { - _updateTimelock(newTimelock); - } - - function _updateTimelock(ICompoundTimelock newTimelock) private { - emit TimelockChange(address(_timelock), address(newTimelock)); - _timelock = newTimelock; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol deleted file mode 100644 index 37303b4ab..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol +++ /dev/null @@ -1,154 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorTimelockControl.sol) - -pragma solidity ^0.8.0; - -import "./IGovernorTimelock.sol"; -import "../Governor.sol"; -import "../TimelockController.sol"; - -/** - * @dev Extension of {Governor} that binds the execution process to an instance of {TimelockController}. This adds a - * delay, enforced by the {TimelockController} to all successful proposal (in addition to the voting duration). The - * {Governor} needs the proposer (an ideally the executor) roles for the {Governor} to work properly. - * - * Using this model means the proposal will be operated by the {TimelockController} and not by the {Governor}. Thus, - * the assets and permissions must be attached to the {TimelockController}. Any asset sent to the {Governor} will be - * inaccessible. - * - * _Available since v4.3._ - */ -abstract contract GovernorTimelockControl is IGovernorTimelock, Governor { - TimelockController private _timelock; - mapping(uint256 => bytes32) private _timelockIds; - - /** - * @dev Emitted when the timelock controller used for proposal execution is modified. - */ - event TimelockChange(address oldTimelock, address newTimelock); - - /** - * @dev Set the timelock. - */ - constructor(TimelockController timelockAddress) { - _updateTimelock(timelockAddress); - } - - /** - * @dev See {IERC165-supportsInterface}. - */ - function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, Governor) returns (bool) { - return interfaceId == type(IGovernorTimelock).interfaceId || super.supportsInterface(interfaceId); - } - - /** - * @dev Overriden version of the {Governor-state} function with added support for the `Queued` status. - */ - function state(uint256 proposalId) public view virtual override(IGovernor, Governor) returns (ProposalState) { - ProposalState status = super.state(proposalId); - - if (status != ProposalState.Succeeded) { - return status; - } - - // core tracks execution, so we just have to check if successful proposal have been queued. - bytes32 queueid = _timelockIds[proposalId]; - if (queueid == bytes32(0)) { - return status; - } else if (_timelock.isOperationDone(queueid)) { - return ProposalState.Executed; - } else { - return ProposalState.Queued; - } - } - - /** - * @dev Public accessor to check the address of the timelock - */ - function timelock() public view virtual override returns (address) { - return address(_timelock); - } - - /** - * @dev Public accessor to check the eta of a queued proposal - */ - function proposalEta(uint256 proposalId) public view virtual override returns (uint256) { - uint256 eta = _timelock.getTimestamp(_timelockIds[proposalId]); - return eta == 1 ? 0 : eta; // _DONE_TIMESTAMP (1) should be replaced with a 0 value - } - - /** - * @dev Function to queue a proposal to the timelock. - */ - function queue( - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - bytes32 descriptionHash - ) public virtual override returns (uint256) { - uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash); - - require(state(proposalId) == ProposalState.Succeeded, "Governor: proposal not successful"); - - uint256 delay = _timelock.getMinDelay(); - _timelockIds[proposalId] = _timelock.hashOperationBatch(targets, values, calldatas, 0, descriptionHash); - _timelock.scheduleBatch(targets, values, calldatas, 0, descriptionHash, delay); - - emit ProposalQueued(proposalId, block.timestamp + delay); - - return proposalId; - } - - /** - * @dev Overriden execute function that run the already queued proposal through the timelock. - */ - function _execute( - uint256, /* proposalId */ - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - bytes32 descriptionHash - ) internal virtual override { - _timelock.executeBatch{value: msg.value}(targets, values, calldatas, 0, descriptionHash); - } - - /** - * @dev Overriden version of the {Governor-_cancel} function to cancel the timelocked proposal if it as already - * been queued. - */ - function _cancel( - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - bytes32 descriptionHash - ) internal virtual override returns (uint256) { - uint256 proposalId = super._cancel(targets, values, calldatas, descriptionHash); - - if (_timelockIds[proposalId] != 0) { - _timelock.cancel(_timelockIds[proposalId]); - delete _timelockIds[proposalId]; - } - - return proposalId; - } - - /** - * @dev Address through which the governor executes action. In this case, the timelock. - */ - function _executor() internal view virtual override returns (address) { - return address(_timelock); - } - - /** - * @dev Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates - * must be proposed, scheduled and executed using the {Governor} workflow. - */ - function updateTimelock(TimelockController newTimelock) external virtual onlyGovernance { - _updateTimelock(newTimelock); - } - - function _updateTimelock(TimelockController newTimelock) private { - emit TimelockChange(address(_timelock), address(newTimelock)); - _timelock = newTimelock; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol deleted file mode 100644 index d1719ca14..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorVotes.sol) - -pragma solidity ^0.8.0; - -import "../Governor.sol"; -import "../../token/ERC20/extensions/ERC20Votes.sol"; -import "../../utils/math/Math.sol"; - -/** - * @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token. - * - * _Available since v4.3._ - */ -abstract contract GovernorVotes is Governor { - ERC20Votes public immutable token; - - constructor(ERC20Votes tokenAddress) { - token = tokenAddress; - } - - /** - * Read the voting weight from the token's built in snapshot mechanism (see {IGovernor-getVotes}). - */ - function getVotes(address account, uint256 blockNumber) public view virtual override returns (uint256) { - return token.getPastVotes(account, blockNumber); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesComp.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesComp.sol deleted file mode 100644 index 53c882b21..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesComp.sol +++ /dev/null @@ -1,27 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorVotesComp.sol) - -pragma solidity ^0.8.0; - -import "../Governor.sol"; -import "../../token/ERC20/extensions/ERC20VotesComp.sol"; - -/** - * @dev Extension of {Governor} for voting weight extraction from a Comp token. - * - * _Available since v4.3._ - */ -abstract contract GovernorVotesComp is Governor { - ERC20VotesComp public immutable token; - - constructor(ERC20VotesComp token_) { - token = token_; - } - - /** - * Read the voting weight from the token's built in snapshot mechanism (see {IGovernor-getVotes}). - */ - function getVotes(address account, uint256 blockNumber) public view virtual override returns (uint256) { - return token.getPriorVotes(account, blockNumber); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol deleted file mode 100644 index ab52e55d7..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol +++ /dev/null @@ -1,50 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorVotesQuorumFraction.sol) - -pragma solidity ^0.8.0; - -import "./GovernorVotes.sol"; - -/** - * @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token and a quorum expressed as a - * fraction of the total supply. - * - * _Available since v4.3._ - */ -abstract contract GovernorVotesQuorumFraction is GovernorVotes { - uint256 private _quorumNumerator; - - event QuorumNumeratorUpdated(uint256 oldQuorumNumerator, uint256 newQuorumNumerator); - - constructor(uint256 quorumNumeratorValue) { - _updateQuorumNumerator(quorumNumeratorValue); - } - - function quorumNumerator() public view virtual returns (uint256) { - return _quorumNumerator; - } - - function quorumDenominator() public view virtual returns (uint256) { - return 100; - } - - function quorum(uint256 blockNumber) public view virtual override returns (uint256) { - return (token.getPastTotalSupply(blockNumber) * quorumNumerator()) / quorumDenominator(); - } - - function updateQuorumNumerator(uint256 newQuorumNumerator) external virtual onlyGovernance { - _updateQuorumNumerator(newQuorumNumerator); - } - - function _updateQuorumNumerator(uint256 newQuorumNumerator) internal virtual { - require( - newQuorumNumerator <= quorumDenominator(), - "GovernorVotesQuorumFraction: quorumNumerator over quorumDenominator" - ); - - uint256 oldQuorumNumerator = _quorumNumerator; - _quorumNumerator = newQuorumNumerator; - - emit QuorumNumeratorUpdated(oldQuorumNumerator, newQuorumNumerator); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol deleted file mode 100644 index 68ed3f2a1..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (governance/extensions/IGovernorTimelock.sol) - -pragma solidity ^0.8.0; - -import "../IGovernor.sol"; - -/** - * @dev Extension of the {IGovernor} for timelock supporting modules. - * - * _Available since v4.3._ - */ -abstract contract IGovernorTimelock is IGovernor { - event ProposalQueued(uint256 proposalId, uint256 eta); - - function timelock() public view virtual returns (address); - - function proposalEta(uint256 proposalId) public view virtual returns (uint256); - - function queue( - address[] memory targets, - uint256[] memory values, - bytes[] memory calldatas, - bytes32 descriptionHash - ) public virtual returns (uint256 proposalId); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155.sol deleted file mode 100644 index 8998930ba..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1155.sol) - -pragma solidity ^0.8.0; - -import "../token/ERC1155/IERC1155.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155MetadataURI.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155MetadataURI.sol deleted file mode 100644 index 045859e9d..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155MetadataURI.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1155MetadataURI.sol) - -pragma solidity ^0.8.0; - -import "../token/ERC1155/extensions/IERC1155MetadataURI.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155Receiver.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155Receiver.sol deleted file mode 100644 index 9eac7674c..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1155Receiver.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1155Receiver.sol) - -pragma solidity ^0.8.0; - -import "../token/ERC1155/IERC1155Receiver.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol deleted file mode 100644 index 7d7653256..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol +++ /dev/null @@ -1,19 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1271.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Interface of the ERC1271 standard signature validation method for - * contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. - * - * _Available since v4.1._ - */ -interface IERC1271 { - /** - * @dev Should return whether the signature provided is valid for the provided data - * @param hash Hash of the data to be signed - * @param signature Signature byte array associated with _data - */ - function isValidSignature(bytes32 hash, bytes memory signature) external view returns (bytes4 magicValue); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol deleted file mode 100644 index f18c7a4fa..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol +++ /dev/null @@ -1,95 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1363.sol) - -pragma solidity ^0.8.0; - -import "./IERC20.sol"; -import "./IERC165.sol"; - -interface IERC1363 is IERC165, IERC20 { - /* - * Note: the ERC-165 identifier for this interface is 0x4bbee2df. - * 0x4bbee2df === - * bytes4(keccak256('transferAndCall(address,uint256)')) ^ - * bytes4(keccak256('transferAndCall(address,uint256,bytes)')) ^ - * bytes4(keccak256('transferFromAndCall(address,address,uint256)')) ^ - * bytes4(keccak256('transferFromAndCall(address,address,uint256,bytes)')) - */ - - /* - * Note: the ERC-165 identifier for this interface is 0xfb9ec8ce. - * 0xfb9ec8ce === - * bytes4(keccak256('approveAndCall(address,uint256)')) ^ - * bytes4(keccak256('approveAndCall(address,uint256,bytes)')) - */ - - /** - * @dev Transfer tokens from `msg.sender` to another address and then call `onTransferReceived` on receiver - * @param to address The address which you want to transfer to - * @param value uint256 The amount of tokens to be transferred - * @return true unless throwing - */ - function transferAndCall(address to, uint256 value) external returns (bool); - - /** - * @dev Transfer tokens from `msg.sender` to another address and then call `onTransferReceived` on receiver - * @param to address The address which you want to transfer to - * @param value uint256 The amount of tokens to be transferred - * @param data bytes Additional data with no specified format, sent in call to `to` - * @return true unless throwing - */ - function transferAndCall( - address to, - uint256 value, - bytes memory data - ) external returns (bool); - - /** - * @dev Transfer tokens from one address to another and then call `onTransferReceived` on receiver - * @param from address The address which you want to send tokens from - * @param to address The address which you want to transfer to - * @param value uint256 The amount of tokens to be transferred - * @return true unless throwing - */ - function transferFromAndCall( - address from, - address to, - uint256 value - ) external returns (bool); - - /** - * @dev Transfer tokens from one address to another and then call `onTransferReceived` on receiver - * @param from address The address which you want to send tokens from - * @param to address The address which you want to transfer to - * @param value uint256 The amount of tokens to be transferred - * @param data bytes Additional data with no specified format, sent in call to `to` - * @return true unless throwing - */ - function transferFromAndCall( - address from, - address to, - uint256 value, - bytes memory data - ) external returns (bool); - - /** - * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender - * and then call `onApprovalReceived` on spender. - * @param spender address The address which will spend the funds - * @param value uint256 The amount of tokens to be spent - */ - function approveAndCall(address spender, uint256 value) external returns (bool); - - /** - * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender - * and then call `onApprovalReceived` on spender. - * @param spender address The address which will spend the funds - * @param value uint256 The amount of tokens to be spent - * @param data bytes Additional data with no specified format, sent in call to `spender` - */ - function approveAndCall( - address spender, - uint256 value, - bytes memory data - ) external returns (bool); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Receiver.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Receiver.sol deleted file mode 100644 index 18c31dda5..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Receiver.sol +++ /dev/null @@ -1,32 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1363Receiver.sol) - -pragma solidity ^0.8.0; - -interface IERC1363Receiver { - /* - * Note: the ERC-165 identifier for this interface is 0x88a7ca5c. - * 0x88a7ca5c === bytes4(keccak256("onTransferReceived(address,address,uint256,bytes)")) - */ - - /** - * @notice Handle the receipt of ERC1363 tokens - * @dev Any ERC1363 smart contract calls this function on the recipient - * after a `transfer` or a `transferFrom`. This function MAY throw to revert and reject the - * transfer. Return of other than the magic value MUST result in the - * transaction being reverted. - * Note: the token contract address is always the message sender. - * @param operator address The address which called `transferAndCall` or `transferFromAndCall` function - * @param from address The address which are token transferred from - * @param value uint256 The amount of tokens transferred - * @param data bytes Additional data with no specified format - * @return `bytes4(keccak256("onTransferReceived(address,address,uint256,bytes)"))` - * unless throwing - */ - function onTransferReceived( - address operator, - address from, - uint256 value, - bytes memory data - ) external returns (bytes4); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Spender.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Spender.sol deleted file mode 100644 index f5e7503e2..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1363Spender.sol +++ /dev/null @@ -1,30 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1363Spender.sol) - -pragma solidity ^0.8.0; - -interface IERC1363Spender { - /* - * Note: the ERC-165 identifier for this interface is 0x7b04a2d0. - * 0x7b04a2d0 === bytes4(keccak256("onApprovalReceived(address,uint256,bytes)")) - */ - - /** - * @notice Handle the approval of ERC1363 tokens - * @dev Any ERC1363 smart contract calls this function on the recipient - * after an `approve`. This function MAY throw to revert and reject the - * approval. Return of other than the magic value MUST result in the - * transaction being reverted. - * Note: the token contract address is always the message sender. - * @param owner address The address which called `approveAndCall` function - * @param value uint256 The amount of tokens to be spent - * @param data bytes Additional data with no specified format - * @return `bytes4(keccak256("onApprovalReceived(address,uint256,bytes)"))` - * unless throwing - */ - function onApprovalReceived( - address owner, - uint256 value, - bytes memory data - ) external returns (bytes4); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC165.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC165.sol deleted file mode 100644 index 1399ad3f2..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC165.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC165.sol) - -pragma solidity ^0.8.0; - -import "../utils/introspection/IERC165.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Implementer.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Implementer.sol deleted file mode 100644 index efab81914..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Implementer.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1820Implementer.sol) - -pragma solidity ^0.8.0; - -import "../utils/introspection/IERC1820Implementer.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Registry.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Registry.sol deleted file mode 100644 index 6b0b57367..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC1820Registry.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC1820Registry.sol) - -pragma solidity ^0.8.0; - -import "../utils/introspection/IERC1820Registry.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20.sol deleted file mode 100644 index 541ce3deb..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC20.sol) - -pragma solidity ^0.8.0; - -import "../token/ERC20/IERC20.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20Metadata.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20Metadata.sol deleted file mode 100644 index ed5d72fb8..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC20Metadata.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC20Metadata.sol) - -pragma solidity ^0.8.0; - -import "../token/ERC20/extensions/IERC20Metadata.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol deleted file mode 100644 index 20a417c64..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC2981.sol) - -pragma solidity ^0.8.0; - -import "./IERC165.sol"; - -/** - * @dev Interface for the NFT Royalty Standard - */ -interface IERC2981 is IERC165 { - /** - * @dev Called with the sale price to determine how much royalty is owed and to whom. - * @param tokenId - the NFT asset queried for royalty information - * @param salePrice - the sale price of the NFT asset specified by `tokenId` - * @return receiver - address of who should be sent the royalty payment - * @return royaltyAmount - the royalty payment amount for `salePrice` - */ - function royaltyInfo(uint256 tokenId, uint256 salePrice) - external - view - returns (address receiver, uint256 royaltyAmount); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156.sol deleted file mode 100644 index 593c12170..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156.sol +++ /dev/null @@ -1,7 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC3156.sol) - -pragma solidity ^0.8.0; - -import "./IERC3156FlashBorrower.sol"; -import "./IERC3156FlashLender.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashBorrower.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashBorrower.sol deleted file mode 100644 index e0299bfcc..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashBorrower.sol +++ /dev/null @@ -1,29 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC3156FlashBorrower.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Interface of the ERC3156 FlashBorrower, as defined in - * https://eips.ethereum.org/EIPS/eip-3156[ERC-3156]. - * - * _Available since v4.1._ - */ -interface IERC3156FlashBorrower { - /** - * @dev Receive a flash loan. - * @param initiator The initiator of the loan. - * @param token The loan currency. - * @param amount The amount of tokens lent. - * @param fee The additional amount of tokens to repay. - * @param data Arbitrary data structure, intended to contain user-defined parameters. - * @return The keccak256 hash of "ERC3156FlashBorrower.onFlashLoan" - */ - function onFlashLoan( - address initiator, - address token, - uint256 amount, - uint256 fee, - bytes calldata data - ) external returns (bytes32); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashLender.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashLender.sol deleted file mode 100644 index 8f2489c8e..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC3156FlashLender.sol +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC3156FlashLender.sol) - -pragma solidity ^0.8.0; - -import "./IERC3156FlashBorrower.sol"; - -/** - * @dev Interface of the ERC3156 FlashLender, as defined in - * https://eips.ethereum.org/EIPS/eip-3156[ERC-3156]. - * - * _Available since v4.1._ - */ -interface IERC3156FlashLender { - /** - * @dev The amount of currency available to be lended. - * @param token The loan currency. - * @return The amount of `token` that can be borrowed. - */ - function maxFlashLoan(address token) external view returns (uint256); - - /** - * @dev The fee to be charged for a given loan. - * @param token The loan currency. - * @param amount The amount of tokens lent. - * @return The amount of `token` to be charged for the loan, on top of the returned principal. - */ - function flashFee(address token, uint256 amount) external view returns (uint256); - - /** - * @dev Initiate a flash loan. - * @param receiver The receiver of the tokens in the loan, and the receiver of the callback. - * @param token The loan currency. - * @param amount The amount of tokens lent. - * @param data Arbitrary data structure, intended to contain user-defined parameters. - */ - function flashLoan( - IERC3156FlashBorrower receiver, - address token, - uint256 amount, - bytes calldata data - ) external returns (bool); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721.sol deleted file mode 100644 index 5e48b5f03..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC721.sol) - -pragma solidity ^0.8.0; - -import "../token/ERC721/IERC721.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Enumerable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Enumerable.sol deleted file mode 100644 index 109abc5b5..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Enumerable.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC721Enumerable.sol) - -pragma solidity ^0.8.0; - -import "../token/ERC721/extensions/IERC721Enumerable.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Metadata.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Metadata.sol deleted file mode 100644 index 74bc26cc2..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Metadata.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC721Metadata.sol) - -pragma solidity ^0.8.0; - -import "../token/ERC721/extensions/IERC721Metadata.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Receiver.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Receiver.sol deleted file mode 100644 index ef6e704ae..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC721Receiver.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC721Receiver.sol) - -pragma solidity ^0.8.0; - -import "../token/ERC721/IERC721Receiver.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777.sol deleted file mode 100644 index ad7309093..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC777.sol) - -pragma solidity ^0.8.0; - -import "../token/ERC777/IERC777.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Recipient.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Recipient.sol deleted file mode 100644 index 853da819b..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Recipient.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC777Recipient.sol) - -pragma solidity ^0.8.0; - -import "../token/ERC777/IERC777Recipient.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Sender.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Sender.sol deleted file mode 100644 index fe288135f..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/IERC777Sender.sol +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/IERC777Sender.sol) - -pragma solidity ^0.8.0; - -import "../token/ERC777/IERC777Sender.sol"; diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/draft-IERC2612.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/draft-IERC2612.sol deleted file mode 100644 index 6ab5de353..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/interfaces/draft-IERC2612.sol +++ /dev/null @@ -1,8 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (interfaces/draft-IERC2612.sol) - -pragma solidity ^0.8.0; - -import "../token/ERC20/extensions/draft-IERC20Permit.sol"; - -interface IERC2612 is IERC20Permit {} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol deleted file mode 100644 index ea96b8d3e..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol +++ /dev/null @@ -1,40 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (metatx/ERC2771Context.sol) - -pragma solidity ^0.8.0; - -import "../utils/Context.sol"; - -/** - * @dev Context variant with ERC2771 support. - */ -abstract contract ERC2771Context is Context { - address private _trustedForwarder; - - constructor(address trustedForwarder) { - _trustedForwarder = trustedForwarder; - } - - function isTrustedForwarder(address forwarder) public view virtual returns (bool) { - return forwarder == _trustedForwarder; - } - - function _msgSender() internal view virtual override returns (address sender) { - if (isTrustedForwarder(msg.sender)) { - // The assembly code is more direct than the Solidity version using `abi.decode`. - assembly { - sender := shr(96, calldataload(sub(calldatasize(), 20))) - } - } else { - return super._msgSender(); - } - } - - function _msgData() internal view virtual override returns (bytes calldata) { - if (isTrustedForwarder(msg.sender)) { - return msg.data[:msg.data.length - 20]; - } else { - return super._msgData(); - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/metatx/MinimalForwarder.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/metatx/MinimalForwarder.sol deleted file mode 100644 index 01638181b..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/metatx/MinimalForwarder.sol +++ /dev/null @@ -1,59 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (metatx/MinimalForwarder.sol) - -pragma solidity ^0.8.0; - -import "../utils/cryptography/ECDSA.sol"; -import "../utils/cryptography/draft-EIP712.sol"; - -/** - * @dev Simple minimal forwarder to be used together with an ERC2771 compatible contract. See {ERC2771Context}. - */ -contract MinimalForwarder is EIP712 { - using ECDSA for bytes32; - - struct ForwardRequest { - address from; - address to; - uint256 value; - uint256 gas; - uint256 nonce; - bytes data; - } - - bytes32 private constant _TYPEHASH = - keccak256("ForwardRequest(address from,address to,uint256 value,uint256 gas,uint256 nonce,bytes data)"); - - mapping(address => uint256) private _nonces; - - constructor() EIP712("MinimalForwarder", "0.0.1") {} - - function getNonce(address from) public view returns (uint256) { - return _nonces[from]; - } - - function verify(ForwardRequest calldata req, bytes calldata signature) public view returns (bool) { - address signer = _hashTypedDataV4( - keccak256(abi.encode(_TYPEHASH, req.from, req.to, req.value, req.gas, req.nonce, keccak256(req.data))) - ).recover(signature); - return _nonces[req.from] == req.nonce && signer == req.from; - } - - function execute(ForwardRequest calldata req, bytes calldata signature) - public - payable - returns (bool, bytes memory) - { - require(verify(req, signature), "MinimalForwarder: signature does not match request"); - _nonces[req.from] = req.nonce + 1; - - (bool success, bytes memory returndata) = req.to.call{gas: req.gas, value: req.value}( - abi.encodePacked(req.data, req.from) - ); - // Validate that the relayer has sent enough gas for the call. - // See https://ronan.eth.link/blog/ethereum-gas-dangers/ - assert(gasleft() > req.gas / 63); - - return (success, returndata); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/package.json b/tests/test_node_modules/node_modules/@openzeppelin/contracts/package.json deleted file mode 100644 index 220a063ff..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "_from": "@openzeppelin/contracts", - "_id": "@openzeppelin/contracts@4.4.0", - "_inBundle": false, - "_integrity": "sha512-dlKiZmDvJnGRLHojrDoFZJmsQVeltVeoiRN7RK+cf2FmkhASDEblE0RiaYdxPNsUZa6mRG8393b9bfyp+V5IAw==", - "_location": "/@openzeppelin/contracts", - "_phantomChildren": {}, - "_requested": { - "type": "tag", - "registry": true, - "raw": "@openzeppelin/contracts", - "name": "@openzeppelin/contracts", - "escapedName": "@openzeppelin%2fcontracts", - "scope": "@openzeppelin", - "rawSpec": "", - "saveSpec": null, - "fetchSpec": "latest" - }, - "_requiredBy": [ - "#USER", - "/" - ], - "_resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.4.0.tgz", - "_shasum": "4a1df71f736c31230bbbd634dfb006a756b51e6b", - "_spec": "@openzeppelin/contracts", - "_where": "/home/monty/tob/tools/slither/tests/test_node_modules", - "author": { - "name": "OpenZeppelin Community", - "email": "maintainers@openzeppelin.org" - }, - "bugs": { - "url": "https://github.com/OpenZeppelin/openzeppelin-contracts/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Secure Smart Contract library for Solidity", - "files": [ - "**/*.sol", - "/build/contracts/*.json", - "!/mocks/**/*" - ], - "homepage": "https://openzeppelin.com/contracts/", - "keywords": [ - "solidity", - "ethereum", - "smart", - "contracts", - "security", - "zeppelin" - ], - "license": "MIT", - "name": "@openzeppelin/contracts", - "repository": { - "type": "git", - "url": "git+https://github.com/OpenZeppelin/openzeppelin-contracts.git" - }, - "scripts": { - "prepare": "bash ../scripts/prepare-contracts-package.sh", - "prepare-docs": "cd ..; npm run prepare-docs" - }, - "version": "4.4.0" -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Clones.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Clones.sol deleted file mode 100644 index feed33e7d..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Clones.sol +++ /dev/null @@ -1,84 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (proxy/Clones.sol) - -pragma solidity ^0.8.0; - -/** - * @dev https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for - * deploying minimal proxy contracts, also known as "clones". - * - * > To simply and cheaply clone contract functionality in an immutable way, this standard specifies - * > a minimal bytecode implementation that delegates all calls to a known, fixed address. - * - * The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2` - * (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the - * deterministic method. - * - * _Available since v3.4._ - */ -library Clones { - /** - * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`. - * - * This function uses the create opcode, which should never revert. - */ - function clone(address implementation) internal returns (address instance) { - assembly { - let ptr := mload(0x40) - mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) - mstore(add(ptr, 0x14), shl(0x60, implementation)) - mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000) - instance := create(0, ptr, 0x37) - } - require(instance != address(0), "ERC1167: create failed"); - } - - /** - * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`. - * - * This function uses the create2 opcode and a `salt` to deterministically deploy - * the clone. Using the same `implementation` and `salt` multiple time will revert, since - * the clones cannot be deployed twice at the same address. - */ - function cloneDeterministic(address implementation, bytes32 salt) internal returns (address instance) { - assembly { - let ptr := mload(0x40) - mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) - mstore(add(ptr, 0x14), shl(0x60, implementation)) - mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000) - instance := create2(0, ptr, 0x37, salt) - } - require(instance != address(0), "ERC1167: create2 failed"); - } - - /** - * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}. - */ - function predictDeterministicAddress( - address implementation, - bytes32 salt, - address deployer - ) internal pure returns (address predicted) { - assembly { - let ptr := mload(0x40) - mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) - mstore(add(ptr, 0x14), shl(0x60, implementation)) - mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf3ff00000000000000000000000000000000) - mstore(add(ptr, 0x38), shl(0x60, deployer)) - mstore(add(ptr, 0x4c), salt) - mstore(add(ptr, 0x6c), keccak256(ptr, 0x37)) - predicted := keccak256(add(ptr, 0x37), 0x55) - } - } - - /** - * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}. - */ - function predictDeterministicAddress(address implementation, bytes32 salt) - internal - view - returns (address predicted) - { - return predictDeterministicAddress(implementation, salt, address(this)); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol deleted file mode 100644 index 5d2a3533f..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (proxy/ERC1967/ERC1967Proxy.sol) - -pragma solidity ^0.8.0; - -import "../Proxy.sol"; -import "./ERC1967Upgrade.sol"; - -/** - * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an - * implementation address that can be changed. This address is stored in storage in the location specified by - * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the - * implementation behind the proxy. - */ -contract ERC1967Proxy is Proxy, ERC1967Upgrade { - /** - * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`. - * - * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded - * function call, and allows initializating the storage of the proxy like a Solidity constructor. - */ - constructor(address _logic, bytes memory _data) payable { - assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1)); - _upgradeToAndCall(_logic, _data, false); - } - - /** - * @dev Returns the current implementation address. - */ - function _implementation() internal view virtual override returns (address impl) { - return ERC1967Upgrade._getImplementation(); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol deleted file mode 100644 index 04394aeee..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol +++ /dev/null @@ -1,194 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (proxy/ERC1967/ERC1967Upgrade.sol) - -pragma solidity ^0.8.2; - -import "../beacon/IBeacon.sol"; -import "../../utils/Address.sol"; -import "../../utils/StorageSlot.sol"; - -/** - * @dev This abstract contract provides getters and event emitting update functions for - * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. - * - * _Available since v4.1._ - * - * @custom:oz-upgrades-unsafe-allow delegatecall - */ -abstract contract ERC1967Upgrade { - // This is the keccak-256 hash of "eip1967.proxy.rollback" subtracted by 1 - bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143; - - /** - * @dev Storage slot with the address of the current implementation. - * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is - * validated in the constructor. - */ - bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; - - /** - * @dev Emitted when the implementation is upgraded. - */ - event Upgraded(address indexed implementation); - - /** - * @dev Returns the current implementation address. - */ - function _getImplementation() internal view returns (address) { - return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; - } - - /** - * @dev Stores a new address in the EIP1967 implementation slot. - */ - function _setImplementation(address newImplementation) private { - require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract"); - StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; - } - - /** - * @dev Perform implementation upgrade - * - * Emits an {Upgraded} event. - */ - function _upgradeTo(address newImplementation) internal { - _setImplementation(newImplementation); - emit Upgraded(newImplementation); - } - - /** - * @dev Perform implementation upgrade with additional setup call. - * - * Emits an {Upgraded} event. - */ - function _upgradeToAndCall( - address newImplementation, - bytes memory data, - bool forceCall - ) internal { - _upgradeTo(newImplementation); - if (data.length > 0 || forceCall) { - Address.functionDelegateCall(newImplementation, data); - } - } - - /** - * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call. - * - * Emits an {Upgraded} event. - */ - function _upgradeToAndCallSecure( - address newImplementation, - bytes memory data, - bool forceCall - ) internal { - address oldImplementation = _getImplementation(); - - // Initial upgrade and setup call - _setImplementation(newImplementation); - if (data.length > 0 || forceCall) { - Address.functionDelegateCall(newImplementation, data); - } - - // Perform rollback test if not already in progress - StorageSlot.BooleanSlot storage rollbackTesting = StorageSlot.getBooleanSlot(_ROLLBACK_SLOT); - if (!rollbackTesting.value) { - // Trigger rollback using upgradeTo from the new implementation - rollbackTesting.value = true; - Address.functionDelegateCall( - newImplementation, - abi.encodeWithSignature("upgradeTo(address)", oldImplementation) - ); - rollbackTesting.value = false; - // Check rollback was effective - require(oldImplementation == _getImplementation(), "ERC1967Upgrade: upgrade breaks further upgrades"); - // Finally reset to the new implementation and log the upgrade - _upgradeTo(newImplementation); - } - } - - /** - * @dev Storage slot with the admin of the contract. - * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is - * validated in the constructor. - */ - bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; - - /** - * @dev Emitted when the admin account has changed. - */ - event AdminChanged(address previousAdmin, address newAdmin); - - /** - * @dev Returns the current admin. - */ - function _getAdmin() internal view returns (address) { - return StorageSlot.getAddressSlot(_ADMIN_SLOT).value; - } - - /** - * @dev Stores a new address in the EIP1967 admin slot. - */ - function _setAdmin(address newAdmin) private { - require(newAdmin != address(0), "ERC1967: new admin is the zero address"); - StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin; - } - - /** - * @dev Changes the admin of the proxy. - * - * Emits an {AdminChanged} event. - */ - function _changeAdmin(address newAdmin) internal { - emit AdminChanged(_getAdmin(), newAdmin); - _setAdmin(newAdmin); - } - - /** - * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. - * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor. - */ - bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50; - - /** - * @dev Emitted when the beacon is upgraded. - */ - event BeaconUpgraded(address indexed beacon); - - /** - * @dev Returns the current beacon. - */ - function _getBeacon() internal view returns (address) { - return StorageSlot.getAddressSlot(_BEACON_SLOT).value; - } - - /** - * @dev Stores a new beacon in the EIP1967 beacon slot. - */ - function _setBeacon(address newBeacon) private { - require(Address.isContract(newBeacon), "ERC1967: new beacon is not a contract"); - require( - Address.isContract(IBeacon(newBeacon).implementation()), - "ERC1967: beacon implementation is not a contract" - ); - StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon; - } - - /** - * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does - * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that). - * - * Emits a {BeaconUpgraded} event. - */ - function _upgradeBeaconToAndCall( - address newBeacon, - bytes memory data, - bool forceCall - ) internal { - _setBeacon(newBeacon); - emit BeaconUpgraded(newBeacon); - if (data.length > 0 || forceCall) { - Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data); - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Proxy.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Proxy.sol deleted file mode 100644 index cbb78efa9..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/Proxy.sol +++ /dev/null @@ -1,86 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (proxy/Proxy.sol) - -pragma solidity ^0.8.0; - -/** - * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM - * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to - * be specified by overriding the virtual {_implementation} function. - * - * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a - * different contract through the {_delegate} function. - * - * The success and return data of the delegated call will be returned back to the caller of the proxy. - */ -abstract contract Proxy { - /** - * @dev Delegates the current call to `implementation`. - * - * This function does not return to its internall call site, it will return directly to the external caller. - */ - function _delegate(address implementation) internal virtual { - assembly { - // Copy msg.data. We take full control of memory in this inline assembly - // block because it will not return to Solidity code. We overwrite the - // Solidity scratch pad at memory position 0. - calldatacopy(0, 0, calldatasize()) - - // Call the implementation. - // out and outsize are 0 because we don't know the size yet. - let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) - - // Copy the returned data. - returndatacopy(0, 0, returndatasize()) - - switch result - // delegatecall returns 0 on error. - case 0 { - revert(0, returndatasize()) - } - default { - return(0, returndatasize()) - } - } - } - - /** - * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function - * and {_fallback} should delegate. - */ - function _implementation() internal view virtual returns (address); - - /** - * @dev Delegates the current call to the address returned by `_implementation()`. - * - * This function does not return to its internall call site, it will return directly to the external caller. - */ - function _fallback() internal virtual { - _beforeFallback(); - _delegate(_implementation()); - } - - /** - * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other - * function in the contract matches the call data. - */ - fallback() external payable virtual { - _fallback(); - } - - /** - * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data - * is empty. - */ - receive() external payable virtual { - _fallback(); - } - - /** - * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback` - * call, or as part of the Solidity `fallback` or `receive` functions. - * - * If overriden should call `super._beforeFallback()`. - */ - function _beforeFallback() internal virtual {} -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol deleted file mode 100644 index 15b6eb55e..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol +++ /dev/null @@ -1,62 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (proxy/beacon/BeaconProxy.sol) - -pragma solidity ^0.8.0; - -import "./IBeacon.sol"; -import "../Proxy.sol"; -import "../ERC1967/ERC1967Upgrade.sol"; - -/** - * @dev This contract implements a proxy that gets the implementation address for each call from a {UpgradeableBeacon}. - * - * The beacon address is stored in storage slot `uint256(keccak256('eip1967.proxy.beacon')) - 1`, so that it doesn't - * conflict with the storage layout of the implementation behind the proxy. - * - * _Available since v3.4._ - */ -contract BeaconProxy is Proxy, ERC1967Upgrade { - /** - * @dev Initializes the proxy with `beacon`. - * - * If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This - * will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity - * constructor. - * - * Requirements: - * - * - `beacon` must be a contract with the interface {IBeacon}. - */ - constructor(address beacon, bytes memory data) payable { - assert(_BEACON_SLOT == bytes32(uint256(keccak256("eip1967.proxy.beacon")) - 1)); - _upgradeBeaconToAndCall(beacon, data, false); - } - - /** - * @dev Returns the current beacon address. - */ - function _beacon() internal view virtual returns (address) { - return _getBeacon(); - } - - /** - * @dev Returns the current implementation address of the associated beacon. - */ - function _implementation() internal view virtual override returns (address) { - return IBeacon(_getBeacon()).implementation(); - } - - /** - * @dev Changes the proxy to use a new beacon. Deprecated: see {_upgradeBeaconToAndCall}. - * - * If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. - * - * Requirements: - * - * - `beacon` must be a contract. - * - The implementation returned by `beacon` must be a contract. - */ - function _setBeacon(address beacon, bytes memory data) internal virtual { - _upgradeBeaconToAndCall(beacon, data, false); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol deleted file mode 100644 index e8b18af4c..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (proxy/beacon/IBeacon.sol) - -pragma solidity ^0.8.0; - -/** - * @dev This is the interface that {BeaconProxy} expects of its beacon. - */ -interface IBeacon { - /** - * @dev Must return an address that can be used as a delegate call target. - * - * {BeaconProxy} will check that this address is a contract. - */ - function implementation() external view returns (address); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol deleted file mode 100644 index c03261509..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol +++ /dev/null @@ -1,65 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (proxy/beacon/UpgradeableBeacon.sol) - -pragma solidity ^0.8.0; - -import "./IBeacon.sol"; -import "../../access/Ownable.sol"; -import "../../utils/Address.sol"; - -/** - * @dev This contract is used in conjunction with one or more instances of {BeaconProxy} to determine their - * implementation contract, which is where they will delegate all function calls. - * - * An owner is able to change the implementation the beacon points to, thus upgrading the proxies that use this beacon. - */ -contract UpgradeableBeacon is IBeacon, Ownable { - address private _implementation; - - /** - * @dev Emitted when the implementation returned by the beacon is changed. - */ - event Upgraded(address indexed implementation); - - /** - * @dev Sets the address of the initial implementation, and the deployer account as the owner who can upgrade the - * beacon. - */ - constructor(address implementation_) { - _setImplementation(implementation_); - } - - /** - * @dev Returns the current implementation address. - */ - function implementation() public view virtual override returns (address) { - return _implementation; - } - - /** - * @dev Upgrades the beacon to a new implementation. - * - * Emits an {Upgraded} event. - * - * Requirements: - * - * - msg.sender must be the owner of the contract. - * - `newImplementation` must be a contract. - */ - function upgradeTo(address newImplementation) public virtual onlyOwner { - _setImplementation(newImplementation); - emit Upgraded(newImplementation); - } - - /** - * @dev Sets the implementation contract address for this beacon - * - * Requirements: - * - * - `newImplementation` must be a contract. - */ - function _setImplementation(address newImplementation) private { - require(Address.isContract(newImplementation), "UpgradeableBeacon: implementation is not a contract"); - _implementation = newImplementation; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol deleted file mode 100644 index 82f49eb7d..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol +++ /dev/null @@ -1,81 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (proxy/transparent/ProxyAdmin.sol) - -pragma solidity ^0.8.0; - -import "./TransparentUpgradeableProxy.sol"; -import "../../access/Ownable.sol"; - -/** - * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an - * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}. - */ -contract ProxyAdmin is Ownable { - /** - * @dev Returns the current implementation of `proxy`. - * - * Requirements: - * - * - This contract must be the admin of `proxy`. - */ - function getProxyImplementation(TransparentUpgradeableProxy proxy) public view virtual returns (address) { - // We need to manually run the static call since the getter cannot be flagged as view - // bytes4(keccak256("implementation()")) == 0x5c60da1b - (bool success, bytes memory returndata) = address(proxy).staticcall(hex"5c60da1b"); - require(success); - return abi.decode(returndata, (address)); - } - - /** - * @dev Returns the current admin of `proxy`. - * - * Requirements: - * - * - This contract must be the admin of `proxy`. - */ - function getProxyAdmin(TransparentUpgradeableProxy proxy) public view virtual returns (address) { - // We need to manually run the static call since the getter cannot be flagged as view - // bytes4(keccak256("admin()")) == 0xf851a440 - (bool success, bytes memory returndata) = address(proxy).staticcall(hex"f851a440"); - require(success); - return abi.decode(returndata, (address)); - } - - /** - * @dev Changes the admin of `proxy` to `newAdmin`. - * - * Requirements: - * - * - This contract must be the current admin of `proxy`. - */ - function changeProxyAdmin(TransparentUpgradeableProxy proxy, address newAdmin) public virtual onlyOwner { - proxy.changeAdmin(newAdmin); - } - - /** - * @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. - * - * Requirements: - * - * - This contract must be the admin of `proxy`. - */ - function upgrade(TransparentUpgradeableProxy proxy, address implementation) public virtual onlyOwner { - proxy.upgradeTo(implementation); - } - - /** - * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See - * {TransparentUpgradeableProxy-upgradeToAndCall}. - * - * Requirements: - * - * - This contract must be the admin of `proxy`. - */ - function upgradeAndCall( - TransparentUpgradeableProxy proxy, - address implementation, - bytes memory data - ) public payable virtual onlyOwner { - proxy.upgradeToAndCall{value: msg.value}(implementation, data); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol deleted file mode 100644 index f1b101ef3..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +++ /dev/null @@ -1,125 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (proxy/transparent/TransparentUpgradeableProxy.sol) - -pragma solidity ^0.8.0; - -import "../ERC1967/ERC1967Proxy.sol"; - -/** - * @dev This contract implements a proxy that is upgradeable by an admin. - * - * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector - * clashing], which can potentially be used in an attack, this contract uses the - * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two - * things that go hand in hand: - * - * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if - * that call matches one of the admin functions exposed by the proxy itself. - * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the - * implementation. If the admin tries to call a function on the implementation it will fail with an error that says - * "admin cannot fallback to proxy target". - * - * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing - * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due - * to sudden errors when trying to call a function from the proxy implementation. - * - * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, - * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy. - */ -contract TransparentUpgradeableProxy is ERC1967Proxy { - /** - * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and - * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}. - */ - constructor( - address _logic, - address admin_, - bytes memory _data - ) payable ERC1967Proxy(_logic, _data) { - assert(_ADMIN_SLOT == bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1)); - _changeAdmin(admin_); - } - - /** - * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin. - */ - modifier ifAdmin() { - if (msg.sender == _getAdmin()) { - _; - } else { - _fallback(); - } - } - - /** - * @dev Returns the current admin. - * - * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. - * - * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the - * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. - * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103` - */ - function admin() external ifAdmin returns (address admin_) { - admin_ = _getAdmin(); - } - - /** - * @dev Returns the current implementation. - * - * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. - * - * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the - * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. - * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc` - */ - function implementation() external ifAdmin returns (address implementation_) { - implementation_ = _implementation(); - } - - /** - * @dev Changes the admin of the proxy. - * - * Emits an {AdminChanged} event. - * - * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}. - */ - function changeAdmin(address newAdmin) external virtual ifAdmin { - _changeAdmin(newAdmin); - } - - /** - * @dev Upgrade the implementation of the proxy. - * - * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}. - */ - function upgradeTo(address newImplementation) external ifAdmin { - _upgradeToAndCall(newImplementation, bytes(""), false); - } - - /** - * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified - * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the - * proxied contract. - * - * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}. - */ - function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin { - _upgradeToAndCall(newImplementation, data, true); - } - - /** - * @dev Returns the current admin. - */ - function _admin() internal view virtual returns (address) { - return _getAdmin(); - } - - /** - * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}. - */ - function _beforeFallback() internal virtual override { - require(msg.sender != _getAdmin(), "TransparentUpgradeableProxy: admin cannot fallback to proxy target"); - super._beforeFallback(); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol deleted file mode 100644 index 0107bdabf..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol +++ /dev/null @@ -1,62 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (proxy/utils/Initializable.sol) - -pragma solidity ^0.8.0; - -/** - * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed - * behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an - * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer - * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. - * - * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as - * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. - * - * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure - * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. - * - * [CAUTION] - * ==== - * Avoid leaving a contract uninitialized. - * - * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation - * contract, which may impact the proxy. To initialize the implementation contract, you can either invoke the - * initializer manually, or you can include a constructor to automatically mark it as initialized when it is deployed: - * - * [.hljs-theme-light.nopadding] - * ``` - * /// @custom:oz-upgrades-unsafe-allow constructor - * constructor() initializer {} - * ``` - * ==== - */ -abstract contract Initializable { - /** - * @dev Indicates that the contract has been initialized. - */ - bool private _initialized; - - /** - * @dev Indicates that the contract is in the process of being initialized. - */ - bool private _initializing; - - /** - * @dev Modifier to protect an initializer function from being invoked twice. - */ - modifier initializer() { - require(_initializing || !_initialized, "Initializable: contract is already initialized"); - - bool isTopLevelCall = !_initializing; - if (isTopLevelCall) { - _initializing = true; - _initialized = true; - } - - _; - - if (isTopLevelCall) { - _initializing = false; - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol deleted file mode 100644 index 89ceccced..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (proxy/utils/UUPSUpgradeable.sol) - -pragma solidity ^0.8.0; - -import "../ERC1967/ERC1967Upgrade.sol"; - -/** - * @dev An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an - * {ERC1967Proxy}, when this contract is set as the implementation behind such a proxy. - * - * A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is - * reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing - * `UUPSUpgradeable` with a custom implementation of upgrades. - * - * The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism. - * - * _Available since v4.1._ - */ -abstract contract UUPSUpgradeable is ERC1967Upgrade { - /// @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment - address private immutable __self = address(this); - - /** - * @dev Check that the execution is being performed through a delegatecall call and that the execution context is - * a proxy contract with an implementation (as defined in ERC1967) pointing to self. This should only be the case - * for UUPS and transparent proxies that are using the current contract as their implementation. Execution of a - * function through ERC1167 minimal proxies (clones) would not normally pass this test, but is not guaranteed to - * fail. - */ - modifier onlyProxy() { - require(address(this) != __self, "Function must be called through delegatecall"); - require(_getImplementation() == __self, "Function must be called through active proxy"); - _; - } - - /** - * @dev Upgrade the implementation of the proxy to `newImplementation`. - * - * Calls {_authorizeUpgrade}. - * - * Emits an {Upgraded} event. - */ - function upgradeTo(address newImplementation) external virtual onlyProxy { - _authorizeUpgrade(newImplementation); - _upgradeToAndCallSecure(newImplementation, new bytes(0), false); - } - - /** - * @dev Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call - * encoded in `data`. - * - * Calls {_authorizeUpgrade}. - * - * Emits an {Upgraded} event. - */ - function upgradeToAndCall(address newImplementation, bytes memory data) external payable virtual onlyProxy { - _authorizeUpgrade(newImplementation); - _upgradeToAndCallSecure(newImplementation, data, true); - } - - /** - * @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract. Called by - * {upgradeTo} and {upgradeToAndCall}. - * - * Normally, this function will use an xref:access.adoc[access control] modifier such as {Ownable-onlyOwner}. - * - * ```solidity - * function _authorizeUpgrade(address) internal override onlyOwner {} - * ``` - */ - function _authorizeUpgrade(address newImplementation) internal virtual; -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/security/Pausable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/security/Pausable.sol deleted file mode 100644 index 004db0492..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/security/Pausable.sol +++ /dev/null @@ -1,91 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (security/Pausable.sol) - -pragma solidity ^0.8.0; - -import "../utils/Context.sol"; - -/** - * @dev Contract module which allows children to implement an emergency stop - * mechanism that can be triggered by an authorized account. - * - * This module is used through inheritance. It will make available the - * modifiers `whenNotPaused` and `whenPaused`, which can be applied to - * the functions of your contract. Note that they will not be pausable by - * simply including this module, only once the modifiers are put in place. - */ -abstract contract Pausable is Context { - /** - * @dev Emitted when the pause is triggered by `account`. - */ - event Paused(address account); - - /** - * @dev Emitted when the pause is lifted by `account`. - */ - event Unpaused(address account); - - bool private _paused; - - /** - * @dev Initializes the contract in unpaused state. - */ - constructor() { - _paused = false; - } - - /** - * @dev Returns true if the contract is paused, and false otherwise. - */ - function paused() public view virtual returns (bool) { - return _paused; - } - - /** - * @dev Modifier to make a function callable only when the contract is not paused. - * - * Requirements: - * - * - The contract must not be paused. - */ - modifier whenNotPaused() { - require(!paused(), "Pausable: paused"); - _; - } - - /** - * @dev Modifier to make a function callable only when the contract is paused. - * - * Requirements: - * - * - The contract must be paused. - */ - modifier whenPaused() { - require(paused(), "Pausable: not paused"); - _; - } - - /** - * @dev Triggers stopped state. - * - * Requirements: - * - * - The contract must not be paused. - */ - function _pause() internal virtual whenNotPaused { - _paused = true; - emit Paused(_msgSender()); - } - - /** - * @dev Returns to normal state. - * - * Requirements: - * - * - The contract must be paused. - */ - function _unpause() internal virtual whenPaused { - _paused = false; - emit Unpaused(_msgSender()); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/security/PullPayment.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/security/PullPayment.sol deleted file mode 100644 index 829f13ed3..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/security/PullPayment.sol +++ /dev/null @@ -1,70 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (security/PullPayment.sol) - -pragma solidity ^0.8.0; - -import "../utils/escrow/Escrow.sol"; - -/** - * @dev Simple implementation of a - * https://consensys.github.io/smart-contract-best-practices/recommendations/#favor-pull-over-push-for-external-calls[pull-payment] - * strategy, where the paying contract doesn't interact directly with the - * receiver account, which must withdraw its payments itself. - * - * Pull-payments are often considered the best practice when it comes to sending - * Ether, security-wise. It prevents recipients from blocking execution, and - * eliminates reentrancy concerns. - * - * TIP: If you would like to learn more about reentrancy and alternative ways - * to protect against it, check out our blog post - * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. - * - * To use, derive from the `PullPayment` contract, and use {_asyncTransfer} - * instead of Solidity's `transfer` function. Payees can query their due - * payments with {payments}, and retrieve them with {withdrawPayments}. - */ -abstract contract PullPayment { - Escrow private immutable _escrow; - - constructor() { - _escrow = new Escrow(); - } - - /** - * @dev Withdraw accumulated payments, forwarding all gas to the recipient. - * - * Note that _any_ account can call this function, not just the `payee`. - * This means that contracts unaware of the `PullPayment` protocol can still - * receive funds this way, by having a separate account call - * {withdrawPayments}. - * - * WARNING: Forwarding all gas opens the door to reentrancy vulnerabilities. - * Make sure you trust the recipient, or are either following the - * checks-effects-interactions pattern or using {ReentrancyGuard}. - * - * @param payee Whose payments will be withdrawn. - */ - function withdrawPayments(address payable payee) public virtual { - _escrow.withdraw(payee); - } - - /** - * @dev Returns the payments owed to an address. - * @param dest The creditor's address. - */ - function payments(address dest) public view returns (uint256) { - return _escrow.depositsOf(dest); - } - - /** - * @dev Called by the payer to store the sent amount as credit to be pulled. - * Funds sent in this way are stored in an intermediate {Escrow} contract, so - * there is no danger of them being spent before withdrawal. - * - * @param dest The destination address of the funds. - * @param amount The amount to transfer. - */ - function _asyncTransfer(address dest, uint256 amount) internal virtual { - _escrow.deposit{value: amount}(dest); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol deleted file mode 100644 index 0534bc321..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol +++ /dev/null @@ -1,63 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (security/ReentrancyGuard.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Contract module that helps prevent reentrant calls to a function. - * - * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier - * available, which can be applied to functions to make sure there are no nested - * (reentrant) calls to them. - * - * Note that because there is a single `nonReentrant` guard, functions marked as - * `nonReentrant` may not call one another. This can be worked around by making - * those functions `private`, and then adding `external` `nonReentrant` entry - * points to them. - * - * TIP: If you would like to learn more about reentrancy and alternative ways - * to protect against it, check out our blog post - * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. - */ -abstract contract ReentrancyGuard { - // Booleans are more expensive than uint256 or any type that takes up a full - // word because each write operation emits an extra SLOAD to first read the - // slot's contents, replace the bits taken up by the boolean, and then write - // back. This is the compiler's defense against contract upgrades and - // pointer aliasing, and it cannot be disabled. - - // The values being non-zero value makes deployment a bit more expensive, - // but in exchange the refund on every call to nonReentrant will be lower in - // amount. Since refunds are capped to a percentage of the total - // transaction's gas, it is best to keep them low in cases like this one, to - // increase the likelihood of the full refund coming into effect. - uint256 private constant _NOT_ENTERED = 1; - uint256 private constant _ENTERED = 2; - - uint256 private _status; - - constructor() { - _status = _NOT_ENTERED; - } - - /** - * @dev Prevents a contract from calling itself, directly or indirectly. - * Calling a `nonReentrant` function from another `nonReentrant` - * function is not supported. It is possible to prevent this from happening - * by making the `nonReentrant` function external, and making it call a - * `private` function that does the actual work. - */ - modifier nonReentrant() { - // On the first call to nonReentrant, _notEntered will be true - require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); - - // Any calls to nonReentrant after this point will fail - _status = _ENTERED; - - _; - - // By storing the original value once again, a refund is triggered (see - // https://eips.ethereum.org/EIPS/eip-2200) - _status = _NOT_ENTERED; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol deleted file mode 100644 index 5357a5d28..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol +++ /dev/null @@ -1,464 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC1155/ERC1155.sol) - -pragma solidity ^0.8.0; - -import "./IERC1155.sol"; -import "./IERC1155Receiver.sol"; -import "./extensions/IERC1155MetadataURI.sol"; -import "../../utils/Address.sol"; -import "../../utils/Context.sol"; -import "../../utils/introspection/ERC165.sol"; - -/** - * @dev Implementation of the basic standard multi-token. - * See https://eips.ethereum.org/EIPS/eip-1155 - * Originally based on code by Enjin: https://github.com/enjin/erc-1155 - * - * _Available since v3.1._ - */ -contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { - using Address for address; - - // Mapping from token ID to account balances - mapping(uint256 => mapping(address => uint256)) private _balances; - - // Mapping from account to operator approvals - mapping(address => mapping(address => bool)) private _operatorApprovals; - - // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json - string private _uri; - - /** - * @dev See {_setURI}. - */ - constructor(string memory uri_) { - _setURI(uri_); - } - - /** - * @dev See {IERC165-supportsInterface}. - */ - function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { - return - interfaceId == type(IERC1155).interfaceId || - interfaceId == type(IERC1155MetadataURI).interfaceId || - super.supportsInterface(interfaceId); - } - - /** - * @dev See {IERC1155MetadataURI-uri}. - * - * This implementation returns the same URI for *all* token types. It relies - * on the token type ID substitution mechanism - * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. - * - * Clients calling this function must replace the `\{id\}` substring with the - * actual token type ID. - */ - function uri(uint256) public view virtual override returns (string memory) { - return _uri; - } - - /** - * @dev See {IERC1155-balanceOf}. - * - * Requirements: - * - * - `account` cannot be the zero address. - */ - function balanceOf(address account, uint256 id) public view virtual override returns (uint256) { - require(account != address(0), "ERC1155: balance query for the zero address"); - return _balances[id][account]; - } - - /** - * @dev See {IERC1155-balanceOfBatch}. - * - * Requirements: - * - * - `accounts` and `ids` must have the same length. - */ - function balanceOfBatch(address[] memory accounts, uint256[] memory ids) - public - view - virtual - override - returns (uint256[] memory) - { - require(accounts.length == ids.length, "ERC1155: accounts and ids length mismatch"); - - uint256[] memory batchBalances = new uint256[](accounts.length); - - for (uint256 i = 0; i < accounts.length; ++i) { - batchBalances[i] = balanceOf(accounts[i], ids[i]); - } - - return batchBalances; - } - - /** - * @dev See {IERC1155-setApprovalForAll}. - */ - function setApprovalForAll(address operator, bool approved) public virtual override { - _setApprovalForAll(_msgSender(), operator, approved); - } - - /** - * @dev See {IERC1155-isApprovedForAll}. - */ - function isApprovedForAll(address account, address operator) public view virtual override returns (bool) { - return _operatorApprovals[account][operator]; - } - - /** - * @dev See {IERC1155-safeTransferFrom}. - */ - function safeTransferFrom( - address from, - address to, - uint256 id, - uint256 amount, - bytes memory data - ) public virtual override { - require( - from == _msgSender() || isApprovedForAll(from, _msgSender()), - "ERC1155: caller is not owner nor approved" - ); - _safeTransferFrom(from, to, id, amount, data); - } - - /** - * @dev See {IERC1155-safeBatchTransferFrom}. - */ - function safeBatchTransferFrom( - address from, - address to, - uint256[] memory ids, - uint256[] memory amounts, - bytes memory data - ) public virtual override { - require( - from == _msgSender() || isApprovedForAll(from, _msgSender()), - "ERC1155: transfer caller is not owner nor approved" - ); - _safeBatchTransferFrom(from, to, ids, amounts, data); - } - - /** - * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. - * - * Emits a {TransferSingle} event. - * - * Requirements: - * - * - `to` cannot be the zero address. - * - `from` must have a balance of tokens of type `id` of at least `amount`. - * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the - * acceptance magic value. - */ - function _safeTransferFrom( - address from, - address to, - uint256 id, - uint256 amount, - bytes memory data - ) internal virtual { - require(to != address(0), "ERC1155: transfer to the zero address"); - - address operator = _msgSender(); - - _beforeTokenTransfer(operator, from, to, _asSingletonArray(id), _asSingletonArray(amount), data); - - uint256 fromBalance = _balances[id][from]; - require(fromBalance >= amount, "ERC1155: insufficient balance for transfer"); - unchecked { - _balances[id][from] = fromBalance - amount; - } - _balances[id][to] += amount; - - emit TransferSingle(operator, from, to, id, amount); - - _doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data); - } - - /** - * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}. - * - * Emits a {TransferBatch} event. - * - * Requirements: - * - * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the - * acceptance magic value. - */ - function _safeBatchTransferFrom( - address from, - address to, - uint256[] memory ids, - uint256[] memory amounts, - bytes memory data - ) internal virtual { - require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); - require(to != address(0), "ERC1155: transfer to the zero address"); - - address operator = _msgSender(); - - _beforeTokenTransfer(operator, from, to, ids, amounts, data); - - for (uint256 i = 0; i < ids.length; ++i) { - uint256 id = ids[i]; - uint256 amount = amounts[i]; - - uint256 fromBalance = _balances[id][from]; - require(fromBalance >= amount, "ERC1155: insufficient balance for transfer"); - unchecked { - _balances[id][from] = fromBalance - amount; - } - _balances[id][to] += amount; - } - - emit TransferBatch(operator, from, to, ids, amounts); - - _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data); - } - - /** - * @dev Sets a new URI for all token types, by relying on the token type ID - * substitution mechanism - * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. - * - * By this mechanism, any occurrence of the `\{id\}` substring in either the - * URI or any of the amounts in the JSON file at said URI will be replaced by - * clients with the token type ID. - * - * For example, the `https://token-cdn-domain/\{id\}.json` URI would be - * interpreted by clients as - * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json` - * for token type ID 0x4cce0. - * - * See {uri}. - * - * Because these URIs cannot be meaningfully represented by the {URI} event, - * this function emits no events. - */ - function _setURI(string memory newuri) internal virtual { - _uri = newuri; - } - - /** - * @dev Creates `amount` tokens of token type `id`, and assigns them to `to`. - * - * Emits a {TransferSingle} event. - * - * Requirements: - * - * - `to` cannot be the zero address. - * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the - * acceptance magic value. - */ - function _mint( - address to, - uint256 id, - uint256 amount, - bytes memory data - ) internal virtual { - require(to != address(0), "ERC1155: mint to the zero address"); - - address operator = _msgSender(); - - _beforeTokenTransfer(operator, address(0), to, _asSingletonArray(id), _asSingletonArray(amount), data); - - _balances[id][to] += amount; - emit TransferSingle(operator, address(0), to, id, amount); - - _doSafeTransferAcceptanceCheck(operator, address(0), to, id, amount, data); - } - - /** - * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}. - * - * Requirements: - * - * - `ids` and `amounts` must have the same length. - * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the - * acceptance magic value. - */ - function _mintBatch( - address to, - uint256[] memory ids, - uint256[] memory amounts, - bytes memory data - ) internal virtual { - require(to != address(0), "ERC1155: mint to the zero address"); - require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); - - address operator = _msgSender(); - - _beforeTokenTransfer(operator, address(0), to, ids, amounts, data); - - for (uint256 i = 0; i < ids.length; i++) { - _balances[ids[i]][to] += amounts[i]; - } - - emit TransferBatch(operator, address(0), to, ids, amounts); - - _doSafeBatchTransferAcceptanceCheck(operator, address(0), to, ids, amounts, data); - } - - /** - * @dev Destroys `amount` tokens of token type `id` from `from` - * - * Requirements: - * - * - `from` cannot be the zero address. - * - `from` must have at least `amount` tokens of token type `id`. - */ - function _burn( - address from, - uint256 id, - uint256 amount - ) internal virtual { - require(from != address(0), "ERC1155: burn from the zero address"); - - address operator = _msgSender(); - - _beforeTokenTransfer(operator, from, address(0), _asSingletonArray(id), _asSingletonArray(amount), ""); - - uint256 fromBalance = _balances[id][from]; - require(fromBalance >= amount, "ERC1155: burn amount exceeds balance"); - unchecked { - _balances[id][from] = fromBalance - amount; - } - - emit TransferSingle(operator, from, address(0), id, amount); - } - - /** - * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}. - * - * Requirements: - * - * - `ids` and `amounts` must have the same length. - */ - function _burnBatch( - address from, - uint256[] memory ids, - uint256[] memory amounts - ) internal virtual { - require(from != address(0), "ERC1155: burn from the zero address"); - require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); - - address operator = _msgSender(); - - _beforeTokenTransfer(operator, from, address(0), ids, amounts, ""); - - for (uint256 i = 0; i < ids.length; i++) { - uint256 id = ids[i]; - uint256 amount = amounts[i]; - - uint256 fromBalance = _balances[id][from]; - require(fromBalance >= amount, "ERC1155: burn amount exceeds balance"); - unchecked { - _balances[id][from] = fromBalance - amount; - } - } - - emit TransferBatch(operator, from, address(0), ids, amounts); - } - - /** - * @dev Approve `operator` to operate on all of `owner` tokens - * - * Emits a {ApprovalForAll} event. - */ - function _setApprovalForAll( - address owner, - address operator, - bool approved - ) internal virtual { - require(owner != operator, "ERC1155: setting approval status for self"); - _operatorApprovals[owner][operator] = approved; - emit ApprovalForAll(owner, operator, approved); - } - - /** - * @dev Hook that is called before any token transfer. This includes minting - * and burning, as well as batched variants. - * - * The same hook is called on both single and batched variants. For single - * transfers, the length of the `id` and `amount` arrays will be 1. - * - * Calling conditions (for each `id` and `amount` pair): - * - * - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens - * of token type `id` will be transferred to `to`. - * - When `from` is zero, `amount` tokens of token type `id` will be minted - * for `to`. - * - when `to` is zero, `amount` of ``from``'s tokens of token type `id` - * will be burned. - * - `from` and `to` are never both zero. - * - `ids` and `amounts` have the same, non-zero length. - * - * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. - */ - function _beforeTokenTransfer( - address operator, - address from, - address to, - uint256[] memory ids, - uint256[] memory amounts, - bytes memory data - ) internal virtual {} - - function _doSafeTransferAcceptanceCheck( - address operator, - address from, - address to, - uint256 id, - uint256 amount, - bytes memory data - ) private { - if (to.isContract()) { - try IERC1155Receiver(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) { - if (response != IERC1155Receiver.onERC1155Received.selector) { - revert("ERC1155: ERC1155Receiver rejected tokens"); - } - } catch Error(string memory reason) { - revert(reason); - } catch { - revert("ERC1155: transfer to non ERC1155Receiver implementer"); - } - } - } - - function _doSafeBatchTransferAcceptanceCheck( - address operator, - address from, - address to, - uint256[] memory ids, - uint256[] memory amounts, - bytes memory data - ) private { - if (to.isContract()) { - try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns ( - bytes4 response - ) { - if (response != IERC1155Receiver.onERC1155BatchReceived.selector) { - revert("ERC1155: ERC1155Receiver rejected tokens"); - } - } catch Error(string memory reason) { - revert(reason); - } catch { - revert("ERC1155: transfer to non ERC1155Receiver implementer"); - } - } - } - - function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) { - uint256[] memory array = new uint256[](1); - array[0] = element; - - return array; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol deleted file mode 100644 index 6c93eddd1..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol +++ /dev/null @@ -1,125 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC1155/IERC1155.sol) - -pragma solidity ^0.8.0; - -import "../../utils/introspection/IERC165.sol"; - -/** - * @dev Required interface of an ERC1155 compliant contract, as defined in the - * https://eips.ethereum.org/EIPS/eip-1155[EIP]. - * - * _Available since v3.1._ - */ -interface IERC1155 is IERC165 { - /** - * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`. - */ - event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); - - /** - * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all - * transfers. - */ - event TransferBatch( - address indexed operator, - address indexed from, - address indexed to, - uint256[] ids, - uint256[] values - ); - - /** - * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to - * `approved`. - */ - event ApprovalForAll(address indexed account, address indexed operator, bool approved); - - /** - * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. - * - * If an {URI} event was emitted for `id`, the standard - * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value - * returned by {IERC1155MetadataURI-uri}. - */ - event URI(string value, uint256 indexed id); - - /** - * @dev Returns the amount of tokens of token type `id` owned by `account`. - * - * Requirements: - * - * - `account` cannot be the zero address. - */ - function balanceOf(address account, uint256 id) external view returns (uint256); - - /** - * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. - * - * Requirements: - * - * - `accounts` and `ids` must have the same length. - */ - function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) - external - view - returns (uint256[] memory); - - /** - * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, - * - * Emits an {ApprovalForAll} event. - * - * Requirements: - * - * - `operator` cannot be the caller. - */ - function setApprovalForAll(address operator, bool approved) external; - - /** - * @dev Returns true if `operator` is approved to transfer ``account``'s tokens. - * - * See {setApprovalForAll}. - */ - function isApprovedForAll(address account, address operator) external view returns (bool); - - /** - * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. - * - * Emits a {TransferSingle} event. - * - * Requirements: - * - * - `to` cannot be the zero address. - * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}. - * - `from` must have a balance of tokens of type `id` of at least `amount`. - * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the - * acceptance magic value. - */ - function safeTransferFrom( - address from, - address to, - uint256 id, - uint256 amount, - bytes calldata data - ) external; - - /** - * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. - * - * Emits a {TransferBatch} event. - * - * Requirements: - * - * - `ids` and `amounts` must have the same length. - * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the - * acceptance magic value. - */ - function safeBatchTransferFrom( - address from, - address to, - uint256[] calldata ids, - uint256[] calldata amounts, - bytes calldata data - ) external; -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol deleted file mode 100644 index e19d64f08..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol +++ /dev/null @@ -1,53 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC1155/IERC1155Receiver.sol) - -pragma solidity ^0.8.0; - -import "../../utils/introspection/IERC165.sol"; - -/** - * @dev _Available since v3.1._ - */ -interface IERC1155Receiver is IERC165 { - /** - @dev Handles the receipt of a single ERC1155 token type. This function is - called at the end of a `safeTransferFrom` after the balance has been updated. - To accept the transfer, this must return - `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` - (i.e. 0xf23a6e61, or its own function selector). - @param operator The address which initiated the transfer (i.e. msg.sender) - @param from The address which previously owned the token - @param id The ID of the token being transferred - @param value The amount of tokens being transferred - @param data Additional data with no specified format - @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed - */ - function onERC1155Received( - address operator, - address from, - uint256 id, - uint256 value, - bytes calldata data - ) external returns (bytes4); - - /** - @dev Handles the receipt of a multiple ERC1155 token types. This function - is called at the end of a `safeBatchTransferFrom` after the balances have - been updated. To accept the transfer(s), this must return - `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` - (i.e. 0xbc197c81, or its own function selector). - @param operator The address which initiated the batch transfer (i.e. msg.sender) - @param from The address which previously owned the token - @param ids An array containing ids of each token being transferred (order and length must match values array) - @param values An array containing amounts of each token being transferred (order and length must match ids array) - @param data Additional data with no specified format - @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed - */ - function onERC1155BatchReceived( - address operator, - address from, - uint256[] calldata ids, - uint256[] calldata values, - bytes calldata data - ) external returns (bytes4); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol deleted file mode 100644 index 3608d8124..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol +++ /dev/null @@ -1,40 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC1155/extensions/ERC1155Burnable.sol) - -pragma solidity ^0.8.0; - -import "../ERC1155.sol"; - -/** - * @dev Extension of {ERC1155} that allows token holders to destroy both their - * own tokens and those that they have been approved to use. - * - * _Available since v3.1._ - */ -abstract contract ERC1155Burnable is ERC1155 { - function burn( - address account, - uint256 id, - uint256 value - ) public virtual { - require( - account == _msgSender() || isApprovedForAll(account, _msgSender()), - "ERC1155: caller is not owner nor approved" - ); - - _burn(account, id, value); - } - - function burnBatch( - address account, - uint256[] memory ids, - uint256[] memory values - ) public virtual { - require( - account == _msgSender() || isApprovedForAll(account, _msgSender()), - "ERC1155: caller is not owner nor approved" - ); - - _burnBatch(account, ids, values); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Pausable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Pausable.sol deleted file mode 100644 index 189c24871..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Pausable.sol +++ /dev/null @@ -1,38 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC1155/extensions/ERC1155Pausable.sol) - -pragma solidity ^0.8.0; - -import "../ERC1155.sol"; -import "../../../security/Pausable.sol"; - -/** - * @dev ERC1155 token with pausable token transfers, minting and burning. - * - * Useful for scenarios such as preventing trades until the end of an evaluation - * period, or having an emergency switch for freezing all token transfers in the - * event of a large bug. - * - * _Available since v3.1._ - */ -abstract contract ERC1155Pausable is ERC1155, Pausable { - /** - * @dev See {ERC1155-_beforeTokenTransfer}. - * - * Requirements: - * - * - the contract must not be paused. - */ - function _beforeTokenTransfer( - address operator, - address from, - address to, - uint256[] memory ids, - uint256[] memory amounts, - bytes memory data - ) internal virtual override { - super._beforeTokenTransfer(operator, from, to, ids, amounts, data); - - require(!paused(), "ERC1155Pausable: token transfer while paused"); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol deleted file mode 100644 index 10552f26a..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol +++ /dev/null @@ -1,58 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC1155/extensions/ERC1155Supply.sol) - -pragma solidity ^0.8.0; - -import "../ERC1155.sol"; - -/** - * @dev Extension of ERC1155 that adds tracking of total supply per id. - * - * Useful for scenarios where Fungible and Non-fungible tokens have to be - * clearly identified. Note: While a totalSupply of 1 might mean the - * corresponding is an NFT, there is no guarantees that no other token with the - * same id are not going to be minted. - */ -abstract contract ERC1155Supply is ERC1155 { - mapping(uint256 => uint256) private _totalSupply; - - /** - * @dev Total amount of tokens in with a given id. - */ - function totalSupply(uint256 id) public view virtual returns (uint256) { - return _totalSupply[id]; - } - - /** - * @dev Indicates whether any token exist with a given id, or not. - */ - function exists(uint256 id) public view virtual returns (bool) { - return ERC1155Supply.totalSupply(id) > 0; - } - - /** - * @dev See {ERC1155-_beforeTokenTransfer}. - */ - function _beforeTokenTransfer( - address operator, - address from, - address to, - uint256[] memory ids, - uint256[] memory amounts, - bytes memory data - ) internal virtual override { - super._beforeTokenTransfer(operator, from, to, ids, amounts, data); - - if (from == address(0)) { - for (uint256 i = 0; i < ids.length; ++i) { - _totalSupply[ids[i]] += amounts[i]; - } - } - - if (to == address(0)) { - for (uint256 i = 0; i < ids.length; ++i) { - _totalSupply[ids[i]] -= amounts[i]; - } - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol deleted file mode 100644 index 9f3522c79..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC1155/extensions/IERC1155MetadataURI.sol) - -pragma solidity ^0.8.0; - -import "../IERC1155.sol"; - -/** - * @dev Interface of the optional ERC1155MetadataExtension interface, as defined - * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP]. - * - * _Available since v3.1._ - */ -interface IERC1155MetadataURI is IERC1155 { - /** - * @dev Returns the URI for token type `id`. - * - * If the `\{id\}` substring is present in the URI, it must be replaced by - * clients with the actual token type ID. - */ - function uri(uint256 id) external view returns (string memory); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol deleted file mode 100644 index 1241f2ad1..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol +++ /dev/null @@ -1,126 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC1155/presets/ERC1155PresetMinterPauser.sol) - -pragma solidity ^0.8.0; - -import "../ERC1155.sol"; -import "../extensions/ERC1155Burnable.sol"; -import "../extensions/ERC1155Pausable.sol"; -import "../../../access/AccessControlEnumerable.sol"; -import "../../../utils/Context.sol"; - -/** - * @dev {ERC1155} token, including: - * - * - ability for holders to burn (destroy) their tokens - * - a minter role that allows for token minting (creation) - * - a pauser role that allows to stop all token transfers - * - * This contract uses {AccessControl} to lock permissioned functions using the - * different roles - head to its documentation for details. - * - * The account that deploys the contract will be granted the minter and pauser - * roles, as well as the default admin role, which will let it grant both minter - * and pauser roles to other accounts. - */ -contract ERC1155PresetMinterPauser is Context, AccessControlEnumerable, ERC1155Burnable, ERC1155Pausable { - bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); - bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); - - /** - * @dev Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE`, and `PAUSER_ROLE` to the account that - * deploys the contract. - */ - constructor(string memory uri) ERC1155(uri) { - _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); - - _setupRole(MINTER_ROLE, _msgSender()); - _setupRole(PAUSER_ROLE, _msgSender()); - } - - /** - * @dev Creates `amount` new tokens for `to`, of token type `id`. - * - * See {ERC1155-_mint}. - * - * Requirements: - * - * - the caller must have the `MINTER_ROLE`. - */ - function mint( - address to, - uint256 id, - uint256 amount, - bytes memory data - ) public virtual { - require(hasRole(MINTER_ROLE, _msgSender()), "ERC1155PresetMinterPauser: must have minter role to mint"); - - _mint(to, id, amount, data); - } - - /** - * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] variant of {mint}. - */ - function mintBatch( - address to, - uint256[] memory ids, - uint256[] memory amounts, - bytes memory data - ) public virtual { - require(hasRole(MINTER_ROLE, _msgSender()), "ERC1155PresetMinterPauser: must have minter role to mint"); - - _mintBatch(to, ids, amounts, data); - } - - /** - * @dev Pauses all token transfers. - * - * See {ERC1155Pausable} and {Pausable-_pause}. - * - * Requirements: - * - * - the caller must have the `PAUSER_ROLE`. - */ - function pause() public virtual { - require(hasRole(PAUSER_ROLE, _msgSender()), "ERC1155PresetMinterPauser: must have pauser role to pause"); - _pause(); - } - - /** - * @dev Unpauses all token transfers. - * - * See {ERC1155Pausable} and {Pausable-_unpause}. - * - * Requirements: - * - * - the caller must have the `PAUSER_ROLE`. - */ - function unpause() public virtual { - require(hasRole(PAUSER_ROLE, _msgSender()), "ERC1155PresetMinterPauser: must have pauser role to unpause"); - _unpause(); - } - - /** - * @dev See {IERC165-supportsInterface}. - */ - function supportsInterface(bytes4 interfaceId) - public - view - virtual - override(AccessControlEnumerable, ERC1155) - returns (bool) - { - return super.supportsInterface(interfaceId); - } - - function _beforeTokenTransfer( - address operator, - address from, - address to, - uint256[] memory ids, - uint256[] memory amounts, - bytes memory data - ) internal virtual override(ERC1155, ERC1155Pausable) { - super._beforeTokenTransfer(operator, from, to, ids, amounts, data); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol deleted file mode 100644 index c5d737a1c..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol +++ /dev/null @@ -1,31 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC1155/utils/ERC1155Holder.sol) - -pragma solidity ^0.8.0; - -import "./ERC1155Receiver.sol"; - -/** - * @dev _Available since v3.1._ - */ -contract ERC1155Holder is ERC1155Receiver { - function onERC1155Received( - address, - address, - uint256, - uint256, - bytes memory - ) public virtual override returns (bytes4) { - return this.onERC1155Received.selector; - } - - function onERC1155BatchReceived( - address, - address, - uint256[] memory, - uint256[] memory, - bytes memory - ) public virtual override returns (bytes4) { - return this.onERC1155BatchReceived.selector; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol deleted file mode 100644 index b0d2f5dee..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol +++ /dev/null @@ -1,19 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC1155/utils/ERC1155Receiver.sol) - -pragma solidity ^0.8.0; - -import "../IERC1155Receiver.sol"; -import "../../../utils/introspection/ERC165.sol"; - -/** - * @dev _Available since v3.1._ - */ -abstract contract ERC1155Receiver is ERC165, IERC1155Receiver { - /** - * @dev See {IERC165-supportsInterface}. - */ - function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { - return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol deleted file mode 100644 index a8c60e595..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol +++ /dev/null @@ -1,356 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/ERC20.sol) - -pragma solidity ^0.8.0; - -import "./IERC20.sol"; -import "./extensions/IERC20Metadata.sol"; -import "../../utils/Context.sol"; - -/** - * @dev Implementation of the {IERC20} interface. - * - * This implementation is agnostic to the way tokens are created. This means - * that a supply mechanism has to be added in a derived contract using {_mint}. - * For a generic mechanism see {ERC20PresetMinterPauser}. - * - * TIP: For a detailed writeup see our guide - * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How - * to implement supply mechanisms]. - * - * We have followed general OpenZeppelin Contracts guidelines: functions revert - * instead returning `false` on failure. This behavior is nonetheless - * conventional and does not conflict with the expectations of ERC20 - * applications. - * - * Additionally, an {Approval} event is emitted on calls to {transferFrom}. - * This allows applications to reconstruct the allowance for all accounts just - * by listening to said events. Other implementations of the EIP may not emit - * these events, as it isn't required by the specification. - * - * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} - * functions have been added to mitigate the well-known issues around setting - * allowances. See {IERC20-approve}. - */ -contract ERC20 is Context, IERC20, IERC20Metadata { - mapping(address => uint256) private _balances; - - mapping(address => mapping(address => uint256)) private _allowances; - - uint256 private _totalSupply; - - string private _name; - string private _symbol; - - /** - * @dev Sets the values for {name} and {symbol}. - * - * The default value of {decimals} is 18. To select a different value for - * {decimals} you should overload it. - * - * All two of these values are immutable: they can only be set once during - * construction. - */ - constructor(string memory name_, string memory symbol_) { - _name = name_; - _symbol = symbol_; - } - - /** - * @dev Returns the name of the token. - */ - function name() public view virtual override returns (string memory) { - return _name; - } - - /** - * @dev Returns the symbol of the token, usually a shorter version of the - * name. - */ - function symbol() public view virtual override returns (string memory) { - return _symbol; - } - - /** - * @dev Returns the number of decimals used to get its user representation. - * For example, if `decimals` equals `2`, a balance of `505` tokens should - * be displayed to a user as `5.05` (`505 / 10 ** 2`). - * - * Tokens usually opt for a value of 18, imitating the relationship between - * Ether and Wei. This is the value {ERC20} uses, unless this function is - * overridden; - * - * NOTE: This information is only used for _display_ purposes: it in - * no way affects any of the arithmetic of the contract, including - * {IERC20-balanceOf} and {IERC20-transfer}. - */ - function decimals() public view virtual override returns (uint8) { - return 18; - } - - /** - * @dev See {IERC20-totalSupply}. - */ - function totalSupply() public view virtual override returns (uint256) { - return _totalSupply; - } - - /** - * @dev See {IERC20-balanceOf}. - */ - function balanceOf(address account) public view virtual override returns (uint256) { - return _balances[account]; - } - - /** - * @dev See {IERC20-transfer}. - * - * Requirements: - * - * - `recipient` cannot be the zero address. - * - the caller must have a balance of at least `amount`. - */ - function transfer(address recipient, uint256 amount) public virtual override returns (bool) { - _transfer(_msgSender(), recipient, amount); - return true; - } - - /** - * @dev See {IERC20-allowance}. - */ - function allowance(address owner, address spender) public view virtual override returns (uint256) { - return _allowances[owner][spender]; - } - - /** - * @dev See {IERC20-approve}. - * - * Requirements: - * - * - `spender` cannot be the zero address. - */ - function approve(address spender, uint256 amount) public virtual override returns (bool) { - _approve(_msgSender(), spender, amount); - return true; - } - - /** - * @dev See {IERC20-transferFrom}. - * - * Emits an {Approval} event indicating the updated allowance. This is not - * required by the EIP. See the note at the beginning of {ERC20}. - * - * Requirements: - * - * - `sender` and `recipient` cannot be the zero address. - * - `sender` must have a balance of at least `amount`. - * - the caller must have allowance for ``sender``'s tokens of at least - * `amount`. - */ - function transferFrom( - address sender, - address recipient, - uint256 amount - ) public virtual override returns (bool) { - _transfer(sender, recipient, amount); - - uint256 currentAllowance = _allowances[sender][_msgSender()]; - require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); - unchecked { - _approve(sender, _msgSender(), currentAllowance - amount); - } - - return true; - } - - /** - * @dev Atomically increases the allowance granted to `spender` by the caller. - * - * This is an alternative to {approve} that can be used as a mitigation for - * problems described in {IERC20-approve}. - * - * Emits an {Approval} event indicating the updated allowance. - * - * Requirements: - * - * - `spender` cannot be the zero address. - */ - function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { - _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); - return true; - } - - /** - * @dev Atomically decreases the allowance granted to `spender` by the caller. - * - * This is an alternative to {approve} that can be used as a mitigation for - * problems described in {IERC20-approve}. - * - * Emits an {Approval} event indicating the updated allowance. - * - * Requirements: - * - * - `spender` cannot be the zero address. - * - `spender` must have allowance for the caller of at least - * `subtractedValue`. - */ - function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { - uint256 currentAllowance = _allowances[_msgSender()][spender]; - require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); - unchecked { - _approve(_msgSender(), spender, currentAllowance - subtractedValue); - } - - return true; - } - - /** - * @dev Moves `amount` of tokens from `sender` to `recipient`. - * - * This internal function is equivalent to {transfer}, and can be used to - * e.g. implement automatic token fees, slashing mechanisms, etc. - * - * Emits a {Transfer} event. - * - * Requirements: - * - * - `sender` cannot be the zero address. - * - `recipient` cannot be the zero address. - * - `sender` must have a balance of at least `amount`. - */ - function _transfer( - address sender, - address recipient, - uint256 amount - ) internal virtual { - require(sender != address(0), "ERC20: transfer from the zero address"); - require(recipient != address(0), "ERC20: transfer to the zero address"); - - _beforeTokenTransfer(sender, recipient, amount); - - uint256 senderBalance = _balances[sender]; - require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); - unchecked { - _balances[sender] = senderBalance - amount; - } - _balances[recipient] += amount; - - emit Transfer(sender, recipient, amount); - - _afterTokenTransfer(sender, recipient, amount); - } - - /** @dev Creates `amount` tokens and assigns them to `account`, increasing - * the total supply. - * - * Emits a {Transfer} event with `from` set to the zero address. - * - * Requirements: - * - * - `account` cannot be the zero address. - */ - function _mint(address account, uint256 amount) internal virtual { - require(account != address(0), "ERC20: mint to the zero address"); - - _beforeTokenTransfer(address(0), account, amount); - - _totalSupply += amount; - _balances[account] += amount; - emit Transfer(address(0), account, amount); - - _afterTokenTransfer(address(0), account, amount); - } - - /** - * @dev Destroys `amount` tokens from `account`, reducing the - * total supply. - * - * Emits a {Transfer} event with `to` set to the zero address. - * - * Requirements: - * - * - `account` cannot be the zero address. - * - `account` must have at least `amount` tokens. - */ - function _burn(address account, uint256 amount) internal virtual { - require(account != address(0), "ERC20: burn from the zero address"); - - _beforeTokenTransfer(account, address(0), amount); - - uint256 accountBalance = _balances[account]; - require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); - unchecked { - _balances[account] = accountBalance - amount; - } - _totalSupply -= amount; - - emit Transfer(account, address(0), amount); - - _afterTokenTransfer(account, address(0), amount); - } - - /** - * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. - * - * This internal function is equivalent to `approve`, and can be used to - * e.g. set automatic allowances for certain subsystems, etc. - * - * Emits an {Approval} event. - * - * Requirements: - * - * - `owner` cannot be the zero address. - * - `spender` cannot be the zero address. - */ - function _approve( - address owner, - address spender, - uint256 amount - ) internal virtual { - require(owner != address(0), "ERC20: approve from the zero address"); - require(spender != address(0), "ERC20: approve to the zero address"); - - _allowances[owner][spender] = amount; - emit Approval(owner, spender, amount); - } - - /** - * @dev Hook that is called before any transfer of tokens. This includes - * minting and burning. - * - * Calling conditions: - * - * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens - * will be transferred to `to`. - * - when `from` is zero, `amount` tokens will be minted for `to`. - * - when `to` is zero, `amount` of ``from``'s tokens will be burned. - * - `from` and `to` are never both zero. - * - * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. - */ - function _beforeTokenTransfer( - address from, - address to, - uint256 amount - ) internal virtual {} - - /** - * @dev Hook that is called after any transfer of tokens. This includes - * minting and burning. - * - * Calling conditions: - * - * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens - * has been transferred to `to`. - * - when `from` is zero, `amount` tokens have been minted for `to`. - * - when `to` is zero, `amount` of ``from``'s tokens have been burned. - * - `from` and `to` are never both zero. - * - * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. - */ - function _afterTokenTransfer( - address from, - address to, - uint256 amount - ) internal virtual {} -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol deleted file mode 100644 index ba210565b..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol +++ /dev/null @@ -1,82 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/IERC20.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Interface of the ERC20 standard as defined in the EIP. - */ -interface IERC20 { - /** - * @dev Returns the amount of tokens in existence. - */ - function totalSupply() external view returns (uint256); - - /** - * @dev Returns the amount of tokens owned by `account`. - */ - function balanceOf(address account) external view returns (uint256); - - /** - * @dev Moves `amount` tokens from the caller's account to `recipient`. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transfer(address recipient, uint256 amount) external returns (bool); - - /** - * @dev Returns the remaining number of tokens that `spender` will be - * allowed to spend on behalf of `owner` through {transferFrom}. This is - * zero by default. - * - * This value changes when {approve} or {transferFrom} are called. - */ - function allowance(address owner, address spender) external view returns (uint256); - - /** - * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * IMPORTANT: Beware that changing an allowance with this method brings the risk - * that someone may use both the old and the new allowance by unfortunate - * transaction ordering. One possible solution to mitigate this race - * condition is to first reduce the spender's allowance to 0 and set the - * desired value afterwards: - * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 - * - * Emits an {Approval} event. - */ - function approve(address spender, uint256 amount) external returns (bool); - - /** - * @dev Moves `amount` tokens from `sender` to `recipient` using the - * allowance mechanism. `amount` is then deducted from the caller's - * allowance. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transferFrom( - address sender, - address recipient, - uint256 amount - ) external returns (bool); - - /** - * @dev Emitted when `value` tokens are moved from one account (`from`) to - * another (`to`). - * - * Note that `value` may be zero. - */ - event Transfer(address indexed from, address indexed to, uint256 value); - - /** - * @dev Emitted when the allowance of a `spender` for an `owner` is set by - * a call to {approve}. `value` is the new allowance. - */ - event Approval(address indexed owner, address indexed spender, uint256 value); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol deleted file mode 100644 index e5e00f97c..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20Burnable.sol) - -pragma solidity ^0.8.0; - -import "../ERC20.sol"; -import "../../../utils/Context.sol"; - -/** - * @dev Extension of {ERC20} that allows token holders to destroy both their own - * tokens and those that they have an allowance for, in a way that can be - * recognized off-chain (via event analysis). - */ -abstract contract ERC20Burnable is Context, ERC20 { - /** - * @dev Destroys `amount` tokens from the caller. - * - * See {ERC20-_burn}. - */ - function burn(uint256 amount) public virtual { - _burn(_msgSender(), amount); - } - - /** - * @dev Destroys `amount` tokens from `account`, deducting from the caller's - * allowance. - * - * See {ERC20-_burn} and {ERC20-allowance}. - * - * Requirements: - * - * - the caller must have allowance for ``accounts``'s tokens of at least - * `amount`. - */ - function burnFrom(address account, uint256 amount) public virtual { - uint256 currentAllowance = allowance(account, _msgSender()); - require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance"); - unchecked { - _approve(account, _msgSender(), currentAllowance - amount); - } - _burn(account, amount); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol deleted file mode 100644 index 88c12cd43..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol +++ /dev/null @@ -1,37 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20Capped.sol) - -pragma solidity ^0.8.0; - -import "../ERC20.sol"; - -/** - * @dev Extension of {ERC20} that adds a cap to the supply of tokens. - */ -abstract contract ERC20Capped is ERC20 { - uint256 private immutable _cap; - - /** - * @dev Sets the value of the `cap`. This value is immutable, it can only be - * set once during construction. - */ - constructor(uint256 cap_) { - require(cap_ > 0, "ERC20Capped: cap is 0"); - _cap = cap_; - } - - /** - * @dev Returns the cap on the token's total supply. - */ - function cap() public view virtual returns (uint256) { - return _cap; - } - - /** - * @dev See {ERC20-_mint}. - */ - function _mint(address account, uint256 amount) internal virtual override { - require(ERC20.totalSupply() + amount <= cap(), "ERC20Capped: cap exceeded"); - super._mint(account, amount); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol deleted file mode 100644 index c16ae0387..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol +++ /dev/null @@ -1,77 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20FlashMint.sol) - -pragma solidity ^0.8.0; - -import "../../../interfaces/IERC3156.sol"; -import "../ERC20.sol"; - -/** - * @dev Implementation of the ERC3156 Flash loans extension, as defined in - * https://eips.ethereum.org/EIPS/eip-3156[ERC-3156]. - * - * Adds the {flashLoan} method, which provides flash loan support at the token - * level. By default there is no fee, but this can be changed by overriding {flashFee}. - * - * _Available since v4.1._ - */ -abstract contract ERC20FlashMint is ERC20, IERC3156FlashLender { - bytes32 private constant _RETURN_VALUE = keccak256("ERC3156FlashBorrower.onFlashLoan"); - - /** - * @dev Returns the maximum amount of tokens available for loan. - * @param token The address of the token that is requested. - * @return The amont of token that can be loaned. - */ - function maxFlashLoan(address token) public view override returns (uint256) { - return token == address(this) ? type(uint256).max - ERC20.totalSupply() : 0; - } - - /** - * @dev Returns the fee applied when doing flash loans. By default this - * implementation has 0 fees. This function can be overloaded to make - * the flash loan mechanism deflationary. - * @param token The token to be flash loaned. - * @param amount The amount of tokens to be loaned. - * @return The fees applied to the corresponding flash loan. - */ - function flashFee(address token, uint256 amount) public view virtual override returns (uint256) { - require(token == address(this), "ERC20FlashMint: wrong token"); - // silence warning about unused variable without the addition of bytecode. - amount; - return 0; - } - - /** - * @dev Performs a flash loan. New tokens are minted and sent to the - * `receiver`, who is required to implement the {IERC3156FlashBorrower} - * interface. By the end of the flash loan, the receiver is expected to own - * amount + fee tokens and have them approved back to the token contract itself so - * they can be burned. - * @param receiver The receiver of the flash loan. Should implement the - * {IERC3156FlashBorrower.onFlashLoan} interface. - * @param token The token to be flash loaned. Only `address(this)` is - * supported. - * @param amount The amount of tokens to be loaned. - * @param data An arbitrary datafield that is passed to the receiver. - * @return `true` is the flash loan was successful. - */ - function flashLoan( - IERC3156FlashBorrower receiver, - address token, - uint256 amount, - bytes calldata data - ) public virtual override returns (bool) { - uint256 fee = flashFee(token, amount); - _mint(address(receiver), amount); - require( - receiver.onFlashLoan(msg.sender, token, amount, fee, data) == _RETURN_VALUE, - "ERC20FlashMint: invalid return value" - ); - uint256 currentAllowance = allowance(address(receiver), address(this)); - require(currentAllowance >= amount + fee, "ERC20FlashMint: allowance does not allow refund"); - _approve(address(receiver), address(this), currentAllowance - amount - fee); - _burn(address(receiver), amount + fee); - return true; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol deleted file mode 100644 index 6bbedade4..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20Pausable.sol) - -pragma solidity ^0.8.0; - -import "../ERC20.sol"; -import "../../../security/Pausable.sol"; - -/** - * @dev ERC20 token with pausable token transfers, minting and burning. - * - * Useful for scenarios such as preventing trades until the end of an evaluation - * period, or having an emergency switch for freezing all token transfers in the - * event of a large bug. - */ -abstract contract ERC20Pausable is ERC20, Pausable { - /** - * @dev See {ERC20-_beforeTokenTransfer}. - * - * Requirements: - * - * - the contract must not be paused. - */ - function _beforeTokenTransfer( - address from, - address to, - uint256 amount - ) internal virtual override { - super._beforeTokenTransfer(from, to, amount); - - require(!paused(), "ERC20Pausable: token transfer while paused"); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol deleted file mode 100644 index fde863703..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol +++ /dev/null @@ -1,195 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20Snapshot.sol) - -pragma solidity ^0.8.0; - -import "../ERC20.sol"; -import "../../../utils/Arrays.sol"; -import "../../../utils/Counters.sol"; - -/** - * @dev This contract extends an ERC20 token with a snapshot mechanism. When a snapshot is created, the balances and - * total supply at the time are recorded for later access. - * - * This can be used to safely create mechanisms based on token balances such as trustless dividends or weighted voting. - * In naive implementations it's possible to perform a "double spend" attack by reusing the same balance from different - * accounts. By using snapshots to calculate dividends or voting power, those attacks no longer apply. It can also be - * used to create an efficient ERC20 forking mechanism. - * - * Snapshots are created by the internal {_snapshot} function, which will emit the {Snapshot} event and return a - * snapshot id. To get the total supply at the time of a snapshot, call the function {totalSupplyAt} with the snapshot - * id. To get the balance of an account at the time of a snapshot, call the {balanceOfAt} function with the snapshot id - * and the account address. - * - * NOTE: Snapshot policy can be customized by overriding the {_getCurrentSnapshotId} method. For example, having it - * return `block.number` will trigger the creation of snapshot at the begining of each new block. When overridding this - * function, be careful about the monotonicity of its result. Non-monotonic snapshot ids will break the contract. - * - * Implementing snapshots for every block using this method will incur significant gas costs. For a gas-efficient - * alternative consider {ERC20Votes}. - * - * ==== Gas Costs - * - * Snapshots are efficient. Snapshot creation is _O(1)_. Retrieval of balances or total supply from a snapshot is _O(log - * n)_ in the number of snapshots that have been created, although _n_ for a specific account will generally be much - * smaller since identical balances in subsequent snapshots are stored as a single entry. - * - * There is a constant overhead for normal ERC20 transfers due to the additional snapshot bookkeeping. This overhead is - * only significant for the first transfer that immediately follows a snapshot for a particular account. Subsequent - * transfers will have normal cost until the next snapshot, and so on. - */ - -abstract contract ERC20Snapshot is ERC20 { - // Inspired by Jordi Baylina's MiniMeToken to record historical balances: - // https://github.com/Giveth/minimd/blob/ea04d950eea153a04c51fa510b068b9dded390cb/contracts/MiniMeToken.sol - - using Arrays for uint256[]; - using Counters for Counters.Counter; - - // Snapshotted values have arrays of ids and the value corresponding to that id. These could be an array of a - // Snapshot struct, but that would impede usage of functions that work on an array. - struct Snapshots { - uint256[] ids; - uint256[] values; - } - - mapping(address => Snapshots) private _accountBalanceSnapshots; - Snapshots private _totalSupplySnapshots; - - // Snapshot ids increase monotonically, with the first value being 1. An id of 0 is invalid. - Counters.Counter private _currentSnapshotId; - - /** - * @dev Emitted by {_snapshot} when a snapshot identified by `id` is created. - */ - event Snapshot(uint256 id); - - /** - * @dev Creates a new snapshot and returns its snapshot id. - * - * Emits a {Snapshot} event that contains the same id. - * - * {_snapshot} is `internal` and you have to decide how to expose it externally. Its usage may be restricted to a - * set of accounts, for example using {AccessControl}, or it may be open to the public. - * - * [WARNING] - * ==== - * While an open way of calling {_snapshot} is required for certain trust minimization mechanisms such as forking, - * you must consider that it can potentially be used by attackers in two ways. - * - * First, it can be used to increase the cost of retrieval of values from snapshots, although it will grow - * logarithmically thus rendering this attack ineffective in the long term. Second, it can be used to target - * specific accounts and increase the cost of ERC20 transfers for them, in the ways specified in the Gas Costs - * section above. - * - * We haven't measured the actual numbers; if this is something you're interested in please reach out to us. - * ==== - */ - function _snapshot() internal virtual returns (uint256) { - _currentSnapshotId.increment(); - - uint256 currentId = _getCurrentSnapshotId(); - emit Snapshot(currentId); - return currentId; - } - - /** - * @dev Get the current snapshotId - */ - function _getCurrentSnapshotId() internal view virtual returns (uint256) { - return _currentSnapshotId.current(); - } - - /** - * @dev Retrieves the balance of `account` at the time `snapshotId` was created. - */ - function balanceOfAt(address account, uint256 snapshotId) public view virtual returns (uint256) { - (bool snapshotted, uint256 value) = _valueAt(snapshotId, _accountBalanceSnapshots[account]); - - return snapshotted ? value : balanceOf(account); - } - - /** - * @dev Retrieves the total supply at the time `snapshotId` was created. - */ - function totalSupplyAt(uint256 snapshotId) public view virtual returns (uint256) { - (bool snapshotted, uint256 value) = _valueAt(snapshotId, _totalSupplySnapshots); - - return snapshotted ? value : totalSupply(); - } - - // Update balance and/or total supply snapshots before the values are modified. This is implemented - // in the _beforeTokenTransfer hook, which is executed for _mint, _burn, and _transfer operations. - function _beforeTokenTransfer( - address from, - address to, - uint256 amount - ) internal virtual override { - super._beforeTokenTransfer(from, to, amount); - - if (from == address(0)) { - // mint - _updateAccountSnapshot(to); - _updateTotalSupplySnapshot(); - } else if (to == address(0)) { - // burn - _updateAccountSnapshot(from); - _updateTotalSupplySnapshot(); - } else { - // transfer - _updateAccountSnapshot(from); - _updateAccountSnapshot(to); - } - } - - function _valueAt(uint256 snapshotId, Snapshots storage snapshots) private view returns (bool, uint256) { - require(snapshotId > 0, "ERC20Snapshot: id is 0"); - require(snapshotId <= _getCurrentSnapshotId(), "ERC20Snapshot: nonexistent id"); - - // When a valid snapshot is queried, there are three possibilities: - // a) The queried value was not modified after the snapshot was taken. Therefore, a snapshot entry was never - // created for this id, and all stored snapshot ids are smaller than the requested one. The value that corresponds - // to this id is the current one. - // b) The queried value was modified after the snapshot was taken. Therefore, there will be an entry with the - // requested id, and its value is the one to return. - // c) More snapshots were created after the requested one, and the queried value was later modified. There will be - // no entry for the requested id: the value that corresponds to it is that of the smallest snapshot id that is - // larger than the requested one. - // - // In summary, we need to find an element in an array, returning the index of the smallest value that is larger if - // it is not found, unless said value doesn't exist (e.g. when all values are smaller). Arrays.findUpperBound does - // exactly this. - - uint256 index = snapshots.ids.findUpperBound(snapshotId); - - if (index == snapshots.ids.length) { - return (false, 0); - } else { - return (true, snapshots.values[index]); - } - } - - function _updateAccountSnapshot(address account) private { - _updateSnapshot(_accountBalanceSnapshots[account], balanceOf(account)); - } - - function _updateTotalSupplySnapshot() private { - _updateSnapshot(_totalSupplySnapshots, totalSupply()); - } - - function _updateSnapshot(Snapshots storage snapshots, uint256 currentValue) private { - uint256 currentId = _getCurrentSnapshotId(); - if (_lastSnapshotId(snapshots.ids) < currentId) { - snapshots.ids.push(currentId); - snapshots.values.push(currentValue); - } - } - - function _lastSnapshotId(uint256[] storage ids) private view returns (uint256) { - if (ids.length == 0) { - return 0; - } else { - return ids[ids.length - 1]; - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol deleted file mode 100644 index f4fd21d3e..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol +++ /dev/null @@ -1,260 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20Votes.sol) - -pragma solidity ^0.8.0; - -import "./draft-ERC20Permit.sol"; -import "../../../utils/math/Math.sol"; -import "../../../utils/math/SafeCast.sol"; -import "../../../utils/cryptography/ECDSA.sol"; - -/** - * @dev Extension of ERC20 to support Compound-like voting and delegation. This version is more generic than Compound's, - * and supports token supply up to 2^224^ - 1, while COMP is limited to 2^96^ - 1. - * - * NOTE: If exact COMP compatibility is required, use the {ERC20VotesComp} variant of this module. - * - * This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either - * by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting - * power can be queried through the public accessors {getVotes} and {getPastVotes}. - * - * By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it - * requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked. - * Enabling self-delegation can easily be done by overriding the {delegates} function. Keep in mind however that this - * will significantly increase the base gas cost of transfers. - * - * _Available since v4.2._ - */ -abstract contract ERC20Votes is ERC20Permit { - struct Checkpoint { - uint32 fromBlock; - uint224 votes; - } - - bytes32 private constant _DELEGATION_TYPEHASH = - keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)"); - - mapping(address => address) private _delegates; - mapping(address => Checkpoint[]) private _checkpoints; - Checkpoint[] private _totalSupplyCheckpoints; - - /** - * @dev Emitted when an account changes their delegate. - */ - event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); - - /** - * @dev Emitted when a token transfer or delegate change results in changes to an account's voting power. - */ - event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance); - - /** - * @dev Get the `pos`-th checkpoint for `account`. - */ - function checkpoints(address account, uint32 pos) public view virtual returns (Checkpoint memory) { - return _checkpoints[account][pos]; - } - - /** - * @dev Get number of checkpoints for `account`. - */ - function numCheckpoints(address account) public view virtual returns (uint32) { - return SafeCast.toUint32(_checkpoints[account].length); - } - - /** - * @dev Get the address `account` is currently delegating to. - */ - function delegates(address account) public view virtual returns (address) { - return _delegates[account]; - } - - /** - * @dev Gets the current votes balance for `account` - */ - function getVotes(address account) public view returns (uint256) { - uint256 pos = _checkpoints[account].length; - return pos == 0 ? 0 : _checkpoints[account][pos - 1].votes; - } - - /** - * @dev Retrieve the number of votes for `account` at the end of `blockNumber`. - * - * Requirements: - * - * - `blockNumber` must have been already mined - */ - function getPastVotes(address account, uint256 blockNumber) public view returns (uint256) { - require(blockNumber < block.number, "ERC20Votes: block not yet mined"); - return _checkpointsLookup(_checkpoints[account], blockNumber); - } - - /** - * @dev Retrieve the `totalSupply` at the end of `blockNumber`. Note, this value is the sum of all balances. - * It is but NOT the sum of all the delegated votes! - * - * Requirements: - * - * - `blockNumber` must have been already mined - */ - function getPastTotalSupply(uint256 blockNumber) public view returns (uint256) { - require(blockNumber < block.number, "ERC20Votes: block not yet mined"); - return _checkpointsLookup(_totalSupplyCheckpoints, blockNumber); - } - - /** - * @dev Lookup a value in a list of (sorted) checkpoints. - */ - function _checkpointsLookup(Checkpoint[] storage ckpts, uint256 blockNumber) private view returns (uint256) { - // We run a binary search to look for the earliest checkpoint taken after `blockNumber`. - // - // During the loop, the index of the wanted checkpoint remains in the range [low-1, high). - // With each iteration, either `low` or `high` is moved towards the middle of the range to maintain the invariant. - // - If the middle checkpoint is after `blockNumber`, we look in [low, mid) - // - If the middle checkpoint is before or equal to `blockNumber`, we look in [mid+1, high) - // Once we reach a single value (when low == high), we've found the right checkpoint at the index high-1, if not - // out of bounds (in which case we're looking too far in the past and the result is 0). - // Note that if the latest checkpoint available is exactly for `blockNumber`, we end up with an index that is - // past the end of the array, so we technically don't find a checkpoint after `blockNumber`, but it works out - // the same. - uint256 high = ckpts.length; - uint256 low = 0; - while (low < high) { - uint256 mid = Math.average(low, high); - if (ckpts[mid].fromBlock > blockNumber) { - high = mid; - } else { - low = mid + 1; - } - } - - return high == 0 ? 0 : ckpts[high - 1].votes; - } - - /** - * @dev Delegate votes from the sender to `delegatee`. - */ - function delegate(address delegatee) public virtual { - _delegate(_msgSender(), delegatee); - } - - /** - * @dev Delegates votes from signer to `delegatee` - */ - function delegateBySig( - address delegatee, - uint256 nonce, - uint256 expiry, - uint8 v, - bytes32 r, - bytes32 s - ) public virtual { - require(block.timestamp <= expiry, "ERC20Votes: signature expired"); - address signer = ECDSA.recover( - _hashTypedDataV4(keccak256(abi.encode(_DELEGATION_TYPEHASH, delegatee, nonce, expiry))), - v, - r, - s - ); - require(nonce == _useNonce(signer), "ERC20Votes: invalid nonce"); - _delegate(signer, delegatee); - } - - /** - * @dev Maximum token supply. Defaults to `type(uint224).max` (2^224^ - 1). - */ - function _maxSupply() internal view virtual returns (uint224) { - return type(uint224).max; - } - - /** - * @dev Snapshots the totalSupply after it has been increased. - */ - function _mint(address account, uint256 amount) internal virtual override { - super._mint(account, amount); - require(totalSupply() <= _maxSupply(), "ERC20Votes: total supply risks overflowing votes"); - - _writeCheckpoint(_totalSupplyCheckpoints, _add, amount); - } - - /** - * @dev Snapshots the totalSupply after it has been decreased. - */ - function _burn(address account, uint256 amount) internal virtual override { - super._burn(account, amount); - - _writeCheckpoint(_totalSupplyCheckpoints, _subtract, amount); - } - - /** - * @dev Move voting power when tokens are transferred. - * - * Emits a {DelegateVotesChanged} event. - */ - function _afterTokenTransfer( - address from, - address to, - uint256 amount - ) internal virtual override { - super._afterTokenTransfer(from, to, amount); - - _moveVotingPower(delegates(from), delegates(to), amount); - } - - /** - * @dev Change delegation for `delegator` to `delegatee`. - * - * Emits events {DelegateChanged} and {DelegateVotesChanged}. - */ - function _delegate(address delegator, address delegatee) internal virtual { - address currentDelegate = delegates(delegator); - uint256 delegatorBalance = balanceOf(delegator); - _delegates[delegator] = delegatee; - - emit DelegateChanged(delegator, currentDelegate, delegatee); - - _moveVotingPower(currentDelegate, delegatee, delegatorBalance); - } - - function _moveVotingPower( - address src, - address dst, - uint256 amount - ) private { - if (src != dst && amount > 0) { - if (src != address(0)) { - (uint256 oldWeight, uint256 newWeight) = _writeCheckpoint(_checkpoints[src], _subtract, amount); - emit DelegateVotesChanged(src, oldWeight, newWeight); - } - - if (dst != address(0)) { - (uint256 oldWeight, uint256 newWeight) = _writeCheckpoint(_checkpoints[dst], _add, amount); - emit DelegateVotesChanged(dst, oldWeight, newWeight); - } - } - } - - function _writeCheckpoint( - Checkpoint[] storage ckpts, - function(uint256, uint256) view returns (uint256) op, - uint256 delta - ) private returns (uint256 oldWeight, uint256 newWeight) { - uint256 pos = ckpts.length; - oldWeight = pos == 0 ? 0 : ckpts[pos - 1].votes; - newWeight = op(oldWeight, delta); - - if (pos > 0 && ckpts[pos - 1].fromBlock == block.number) { - ckpts[pos - 1].votes = SafeCast.toUint224(newWeight); - } else { - ckpts.push(Checkpoint({fromBlock: SafeCast.toUint32(block.number), votes: SafeCast.toUint224(newWeight)})); - } - } - - function _add(uint256 a, uint256 b) private pure returns (uint256) { - return a + b; - } - - function _subtract(uint256 a, uint256 b) private pure returns (uint256) { - return a - b; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol deleted file mode 100644 index 1939c3f57..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol +++ /dev/null @@ -1,48 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20VotesComp.sol) - -pragma solidity ^0.8.0; - -import "./ERC20Votes.sol"; - -/** - * @dev Extension of ERC20 to support Compound's voting and delegation. This version exactly matches Compound's - * interface, with the drawback of only supporting supply up to (2^96^ - 1). - * - * NOTE: You should use this contract if you need exact compatibility with COMP (for example in order to use your token - * with Governor Alpha or Bravo) and if you are sure the supply cap of 2^96^ is enough for you. Otherwise, use the - * {ERC20Votes} variant of this module. - * - * This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either - * by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting - * power can be queried through the public accessors {getCurrentVotes} and {getPriorVotes}. - * - * By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it - * requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked. - * Enabling self-delegation can easily be done by overriding the {delegates} function. Keep in mind however that this - * will significantly increase the base gas cost of transfers. - * - * _Available since v4.2._ - */ -abstract contract ERC20VotesComp is ERC20Votes { - /** - * @dev Comp version of the {getVotes} accessor, with `uint96` return type. - */ - function getCurrentVotes(address account) external view returns (uint96) { - return SafeCast.toUint96(getVotes(account)); - } - - /** - * @dev Comp version of the {getPastVotes} accessor, with `uint96` return type. - */ - function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96) { - return SafeCast.toUint96(getPastVotes(account, blockNumber)); - } - - /** - * @dev Maximum token supply. Reduced to `type(uint96).max` (2^96^ - 1) to fit COMP interface. - */ - function _maxSupply() internal view virtual override returns (uint224) { - return type(uint96).max; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Wrapper.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Wrapper.sol deleted file mode 100644 index 6bc313d6e..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Wrapper.sol +++ /dev/null @@ -1,52 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/ERC20Wrapper.sol) - -pragma solidity ^0.8.0; - -import "../ERC20.sol"; -import "../utils/SafeERC20.sol"; - -/** - * @dev Extension of the ERC20 token contract to support token wrapping. - * - * Users can deposit and withdraw "underlying tokens" and receive a matching number of "wrapped tokens". This is useful - * in conjunction with other modules. For example, combining this wrapping mechanism with {ERC20Votes} will allow the - * wrapping of an existing "basic" ERC20 into a governance token. - * - * _Available since v4.2._ - */ -abstract contract ERC20Wrapper is ERC20 { - IERC20 public immutable underlying; - - constructor(IERC20 underlyingToken) { - underlying = underlyingToken; - } - - /** - * @dev Allow a user to deposit underlying tokens and mint the corresponding number of wrapped tokens. - */ - function depositFor(address account, uint256 amount) public virtual returns (bool) { - SafeERC20.safeTransferFrom(underlying, _msgSender(), address(this), amount); - _mint(account, amount); - return true; - } - - /** - * @dev Allow a user to burn a number of wrapped tokens and withdraw the corresponding number of underlying tokens. - */ - function withdrawTo(address account, uint256 amount) public virtual returns (bool) { - _burn(_msgSender(), amount); - SafeERC20.safeTransfer(underlying, account, amount); - return true; - } - - /** - * @dev Mint wrapped token to cover any underlyingTokens that would have been transfered by mistake. Internal - * function that can be exposed with access control if desired. - */ - function _recover(address account) internal virtual returns (uint256) { - uint256 value = underlying.balanceOf(address(this)) - totalSupply(); - _mint(account, value); - return value; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol deleted file mode 100644 index 93fe3670f..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/IERC20Metadata.sol) - -pragma solidity ^0.8.0; - -import "../IERC20.sol"; - -/** - * @dev Interface for the optional metadata functions from the ERC20 standard. - * - * _Available since v4.1._ - */ -interface IERC20Metadata is IERC20 { - /** - * @dev Returns the name of the token. - */ - function name() external view returns (string memory); - - /** - * @dev Returns the symbol of the token. - */ - function symbol() external view returns (string memory); - - /** - * @dev Returns the decimals places of the token. - */ - function decimals() external view returns (uint8); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol deleted file mode 100644 index 1b33f1642..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol +++ /dev/null @@ -1,87 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/draft-ERC20Permit.sol) - -pragma solidity ^0.8.0; - -import "./draft-IERC20Permit.sol"; -import "../ERC20.sol"; -import "../../../utils/cryptography/draft-EIP712.sol"; -import "../../../utils/cryptography/ECDSA.sol"; -import "../../../utils/Counters.sol"; - -/** - * @dev Implementation of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in - * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. - * - * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by - * presenting a message signed by the account. By not relying on `{IERC20-approve}`, the token holder account doesn't - * need to send a transaction, and thus is not required to hold Ether at all. - * - * _Available since v3.4._ - */ -abstract contract ERC20Permit is ERC20, IERC20Permit, EIP712 { - using Counters for Counters.Counter; - - mapping(address => Counters.Counter) private _nonces; - - // solhint-disable-next-line var-name-mixedcase - bytes32 private immutable _PERMIT_TYPEHASH = - keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); - - /** - * @dev Initializes the {EIP712} domain separator using the `name` parameter, and setting `version` to `"1"`. - * - * It's a good idea to use the same `name` that is defined as the ERC20 token name. - */ - constructor(string memory name) EIP712(name, "1") {} - - /** - * @dev See {IERC20Permit-permit}. - */ - function permit( - address owner, - address spender, - uint256 value, - uint256 deadline, - uint8 v, - bytes32 r, - bytes32 s - ) public virtual override { - require(block.timestamp <= deadline, "ERC20Permit: expired deadline"); - - bytes32 structHash = keccak256(abi.encode(_PERMIT_TYPEHASH, owner, spender, value, _useNonce(owner), deadline)); - - bytes32 hash = _hashTypedDataV4(structHash); - - address signer = ECDSA.recover(hash, v, r, s); - require(signer == owner, "ERC20Permit: invalid signature"); - - _approve(owner, spender, value); - } - - /** - * @dev See {IERC20Permit-nonces}. - */ - function nonces(address owner) public view virtual override returns (uint256) { - return _nonces[owner].current(); - } - - /** - * @dev See {IERC20Permit-DOMAIN_SEPARATOR}. - */ - // solhint-disable-next-line func-name-mixedcase - function DOMAIN_SEPARATOR() external view override returns (bytes32) { - return _domainSeparatorV4(); - } - - /** - * @dev "Consume a nonce": return the current value and increment. - * - * _Available since v4.1._ - */ - function _useNonce(address owner) internal virtual returns (uint256 current) { - Counters.Counter storage nonce = _nonces[owner]; - current = nonce.current(); - nonce.increment(); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol deleted file mode 100644 index 6869944cc..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol +++ /dev/null @@ -1,60 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/draft-IERC20Permit.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in - * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. - * - * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by - * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't - * need to send a transaction, and thus is not required to hold Ether at all. - */ -interface IERC20Permit { - /** - * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens, - * given ``owner``'s signed approval. - * - * IMPORTANT: The same issues {IERC20-approve} has related to transaction - * ordering also apply here. - * - * Emits an {Approval} event. - * - * Requirements: - * - * - `spender` cannot be the zero address. - * - `deadline` must be a timestamp in the future. - * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` - * over the EIP712-formatted function arguments. - * - the signature must use ``owner``'s current nonce (see {nonces}). - * - * For more information on the signature format, see the - * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP - * section]. - */ - function permit( - address owner, - address spender, - uint256 value, - uint256 deadline, - uint8 v, - bytes32 r, - bytes32 s - ) external; - - /** - * @dev Returns the current nonce for `owner`. This value must be - * included whenever a signature is generated for {permit}. - * - * Every successful call to {permit} increases ``owner``'s nonce by one. This - * prevents a signature from being used multiple times. - */ - function nonces(address owner) external view returns (uint256); - - /** - * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}. - */ - // solhint-disable-next-line func-name-mixedcase - function DOMAIN_SEPARATOR() external view returns (bytes32); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol deleted file mode 100644 index 7a9703d63..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/presets/ERC20PresetFixedSupply.sol) -pragma solidity ^0.8.0; - -import "../extensions/ERC20Burnable.sol"; - -/** - * @dev {ERC20} token, including: - * - * - Preminted initial supply - * - Ability for holders to burn (destroy) their tokens - * - No access control mechanism (for minting/pausing) and hence no governance - * - * This contract uses {ERC20Burnable} to include burn capabilities - head to - * its documentation for details. - * - * _Available since v3.4._ - */ -contract ERC20PresetFixedSupply is ERC20Burnable { - /** - * @dev Mints `initialSupply` amount of token and transfers them to `owner`. - * - * See {ERC20-constructor}. - */ - constructor( - string memory name, - string memory symbol, - uint256 initialSupply, - address owner - ) ERC20(name, symbol) { - _mint(owner, initialSupply); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol deleted file mode 100644 index 2258b23e9..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol +++ /dev/null @@ -1,92 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/presets/ERC20PresetMinterPauser.sol) - -pragma solidity ^0.8.0; - -import "../ERC20.sol"; -import "../extensions/ERC20Burnable.sol"; -import "../extensions/ERC20Pausable.sol"; -import "../../../access/AccessControlEnumerable.sol"; -import "../../../utils/Context.sol"; - -/** - * @dev {ERC20} token, including: - * - * - ability for holders to burn (destroy) their tokens - * - a minter role that allows for token minting (creation) - * - a pauser role that allows to stop all token transfers - * - * This contract uses {AccessControl} to lock permissioned functions using the - * different roles - head to its documentation for details. - * - * The account that deploys the contract will be granted the minter and pauser - * roles, as well as the default admin role, which will let it grant both minter - * and pauser roles to other accounts. - */ -contract ERC20PresetMinterPauser is Context, AccessControlEnumerable, ERC20Burnable, ERC20Pausable { - bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); - bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); - - /** - * @dev Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE` and `PAUSER_ROLE` to the - * account that deploys the contract. - * - * See {ERC20-constructor}. - */ - constructor(string memory name, string memory symbol) ERC20(name, symbol) { - _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); - - _setupRole(MINTER_ROLE, _msgSender()); - _setupRole(PAUSER_ROLE, _msgSender()); - } - - /** - * @dev Creates `amount` new tokens for `to`. - * - * See {ERC20-_mint}. - * - * Requirements: - * - * - the caller must have the `MINTER_ROLE`. - */ - function mint(address to, uint256 amount) public virtual { - require(hasRole(MINTER_ROLE, _msgSender()), "ERC20PresetMinterPauser: must have minter role to mint"); - _mint(to, amount); - } - - /** - * @dev Pauses all token transfers. - * - * See {ERC20Pausable} and {Pausable-_pause}. - * - * Requirements: - * - * - the caller must have the `PAUSER_ROLE`. - */ - function pause() public virtual { - require(hasRole(PAUSER_ROLE, _msgSender()), "ERC20PresetMinterPauser: must have pauser role to pause"); - _pause(); - } - - /** - * @dev Unpauses all token transfers. - * - * See {ERC20Pausable} and {Pausable-_unpause}. - * - * Requirements: - * - * - the caller must have the `PAUSER_ROLE`. - */ - function unpause() public virtual { - require(hasRole(PAUSER_ROLE, _msgSender()), "ERC20PresetMinterPauser: must have pauser role to unpause"); - _unpause(); - } - - function _beforeTokenTransfer( - address from, - address to, - uint256 amount - ) internal virtual override(ERC20, ERC20Pausable) { - super._beforeTokenTransfer(from, to, amount); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol deleted file mode 100644 index e24d8965f..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol +++ /dev/null @@ -1,99 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/utils/SafeERC20.sol) - -pragma solidity ^0.8.0; - -import "../IERC20.sol"; -import "../../../utils/Address.sol"; - -/** - * @title SafeERC20 - * @dev Wrappers around ERC20 operations that throw on failure (when the token - * contract returns false). Tokens that return no value (and instead revert or - * throw on failure) are also supported, non-reverting calls are assumed to be - * successful. - * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, - * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. - */ -library SafeERC20 { - using Address for address; - - function safeTransfer( - IERC20 token, - address to, - uint256 value - ) internal { - _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); - } - - function safeTransferFrom( - IERC20 token, - address from, - address to, - uint256 value - ) internal { - _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); - } - - /** - * @dev Deprecated. This function has issues similar to the ones found in - * {IERC20-approve}, and its usage is discouraged. - * - * Whenever possible, use {safeIncreaseAllowance} and - * {safeDecreaseAllowance} instead. - */ - function safeApprove( - IERC20 token, - address spender, - uint256 value - ) internal { - // safeApprove should only be called when setting an initial allowance, - // or when resetting it to zero. To increase and decrease it, use - // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' - require( - (value == 0) || (token.allowance(address(this), spender) == 0), - "SafeERC20: approve from non-zero to non-zero allowance" - ); - _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); - } - - function safeIncreaseAllowance( - IERC20 token, - address spender, - uint256 value - ) internal { - uint256 newAllowance = token.allowance(address(this), spender) + value; - _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); - } - - function safeDecreaseAllowance( - IERC20 token, - address spender, - uint256 value - ) internal { - unchecked { - uint256 oldAllowance = token.allowance(address(this), spender); - require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); - uint256 newAllowance = oldAllowance - value; - _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); - } - } - - /** - * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement - * on the return value: the return value is optional (but if data is returned, it must not be false). - * @param token The token targeted by the call. - * @param data The call data (encoded using abi.encode or one of its variants). - */ - function _callOptionalReturn(IERC20 token, bytes memory data) private { - // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since - // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that - // the target address contains contract code and also asserts for success in the low-level call. - - bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); - if (returndata.length > 0) { - // Return data is optional - require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/TokenTimelock.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/TokenTimelock.sol deleted file mode 100644 index ddfe55e03..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC20/utils/TokenTimelock.sol +++ /dev/null @@ -1,70 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC20/utils/TokenTimelock.sol) - -pragma solidity ^0.8.0; - -import "./SafeERC20.sol"; - -/** - * @dev A token holder contract that will allow a beneficiary to extract the - * tokens after a given release time. - * - * Useful for simple vesting schedules like "advisors get all of their tokens - * after 1 year". - */ -contract TokenTimelock { - using SafeERC20 for IERC20; - - // ERC20 basic token contract being held - IERC20 private immutable _token; - - // beneficiary of tokens after they are released - address private immutable _beneficiary; - - // timestamp when token release is enabled - uint256 private immutable _releaseTime; - - constructor( - IERC20 token_, - address beneficiary_, - uint256 releaseTime_ - ) { - require(releaseTime_ > block.timestamp, "TokenTimelock: release time is before current time"); - _token = token_; - _beneficiary = beneficiary_; - _releaseTime = releaseTime_; - } - - /** - * @return the token being held. - */ - function token() public view virtual returns (IERC20) { - return _token; - } - - /** - * @return the beneficiary of the tokens. - */ - function beneficiary() public view virtual returns (address) { - return _beneficiary; - } - - /** - * @return the time when the tokens are released. - */ - function releaseTime() public view virtual returns (uint256) { - return _releaseTime; - } - - /** - * @notice Transfers tokens held by timelock to beneficiary. - */ - function release() public virtual { - require(block.timestamp >= releaseTime(), "TokenTimelock: current time is before release time"); - - uint256 amount = token().balanceOf(address(this)); - require(amount > 0, "TokenTimelock: no tokens to release"); - - token().safeTransfer(beneficiary(), amount); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol deleted file mode 100644 index 3c960417d..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol +++ /dev/null @@ -1,424 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC721/ERC721.sol) - -pragma solidity ^0.8.0; - -import "./IERC721.sol"; -import "./IERC721Receiver.sol"; -import "./extensions/IERC721Metadata.sol"; -import "../../utils/Address.sol"; -import "../../utils/Context.sol"; -import "../../utils/Strings.sol"; -import "../../utils/introspection/ERC165.sol"; - -/** - * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including - * the Metadata extension, but not including the Enumerable extension, which is available separately as - * {ERC721Enumerable}. - */ -contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { - using Address for address; - using Strings for uint256; - - // Token name - string private _name; - - // Token symbol - string private _symbol; - - // Mapping from token ID to owner address - mapping(uint256 => address) private _owners; - - // Mapping owner address to token count - mapping(address => uint256) private _balances; - - // Mapping from token ID to approved address - mapping(uint256 => address) private _tokenApprovals; - - // Mapping from owner to operator approvals - mapping(address => mapping(address => bool)) private _operatorApprovals; - - /** - * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection. - */ - constructor(string memory name_, string memory symbol_) { - _name = name_; - _symbol = symbol_; - } - - /** - * @dev See {IERC165-supportsInterface}. - */ - function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { - return - interfaceId == type(IERC721).interfaceId || - interfaceId == type(IERC721Metadata).interfaceId || - super.supportsInterface(interfaceId); - } - - /** - * @dev See {IERC721-balanceOf}. - */ - function balanceOf(address owner) public view virtual override returns (uint256) { - require(owner != address(0), "ERC721: balance query for the zero address"); - return _balances[owner]; - } - - /** - * @dev See {IERC721-ownerOf}. - */ - function ownerOf(uint256 tokenId) public view virtual override returns (address) { - address owner = _owners[tokenId]; - require(owner != address(0), "ERC721: owner query for nonexistent token"); - return owner; - } - - /** - * @dev See {IERC721Metadata-name}. - */ - function name() public view virtual override returns (string memory) { - return _name; - } - - /** - * @dev See {IERC721Metadata-symbol}. - */ - function symbol() public view virtual override returns (string memory) { - return _symbol; - } - - /** - * @dev See {IERC721Metadata-tokenURI}. - */ - function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { - require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); - - string memory baseURI = _baseURI(); - return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : ""; - } - - /** - * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each - * token will be the concatenation of the `baseURI` and the `tokenId`. Empty - * by default, can be overriden in child contracts. - */ - function _baseURI() internal view virtual returns (string memory) { - return ""; - } - - /** - * @dev See {IERC721-approve}. - */ - function approve(address to, uint256 tokenId) public virtual override { - address owner = ERC721.ownerOf(tokenId); - require(to != owner, "ERC721: approval to current owner"); - - require( - _msgSender() == owner || isApprovedForAll(owner, _msgSender()), - "ERC721: approve caller is not owner nor approved for all" - ); - - _approve(to, tokenId); - } - - /** - * @dev See {IERC721-getApproved}. - */ - function getApproved(uint256 tokenId) public view virtual override returns (address) { - require(_exists(tokenId), "ERC721: approved query for nonexistent token"); - - return _tokenApprovals[tokenId]; - } - - /** - * @dev See {IERC721-setApprovalForAll}. - */ - function setApprovalForAll(address operator, bool approved) public virtual override { - _setApprovalForAll(_msgSender(), operator, approved); - } - - /** - * @dev See {IERC721-isApprovedForAll}. - */ - function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { - return _operatorApprovals[owner][operator]; - } - - /** - * @dev See {IERC721-transferFrom}. - */ - function transferFrom( - address from, - address to, - uint256 tokenId - ) public virtual override { - //solhint-disable-next-line max-line-length - require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); - - _transfer(from, to, tokenId); - } - - /** - * @dev See {IERC721-safeTransferFrom}. - */ - function safeTransferFrom( - address from, - address to, - uint256 tokenId - ) public virtual override { - safeTransferFrom(from, to, tokenId, ""); - } - - /** - * @dev See {IERC721-safeTransferFrom}. - */ - function safeTransferFrom( - address from, - address to, - uint256 tokenId, - bytes memory _data - ) public virtual override { - require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); - _safeTransfer(from, to, tokenId, _data); - } - - /** - * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients - * are aware of the ERC721 protocol to prevent tokens from being forever locked. - * - * `_data` is additional data, it has no specified format and it is sent in call to `to`. - * - * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g. - * implement alternative mechanisms to perform token transfer, such as signature-based. - * - * Requirements: - * - * - `from` cannot be the zero address. - * - `to` cannot be the zero address. - * - `tokenId` token must exist and be owned by `from`. - * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. - * - * Emits a {Transfer} event. - */ - function _safeTransfer( - address from, - address to, - uint256 tokenId, - bytes memory _data - ) internal virtual { - _transfer(from, to, tokenId); - require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); - } - - /** - * @dev Returns whether `tokenId` exists. - * - * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}. - * - * Tokens start existing when they are minted (`_mint`), - * and stop existing when they are burned (`_burn`). - */ - function _exists(uint256 tokenId) internal view virtual returns (bool) { - return _owners[tokenId] != address(0); - } - - /** - * @dev Returns whether `spender` is allowed to manage `tokenId`. - * - * Requirements: - * - * - `tokenId` must exist. - */ - function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { - require(_exists(tokenId), "ERC721: operator query for nonexistent token"); - address owner = ERC721.ownerOf(tokenId); - return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); - } - - /** - * @dev Safely mints `tokenId` and transfers it to `to`. - * - * Requirements: - * - * - `tokenId` must not exist. - * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. - * - * Emits a {Transfer} event. - */ - function _safeMint(address to, uint256 tokenId) internal virtual { - _safeMint(to, tokenId, ""); - } - - /** - * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is - * forwarded in {IERC721Receiver-onERC721Received} to contract recipients. - */ - function _safeMint( - address to, - uint256 tokenId, - bytes memory _data - ) internal virtual { - _mint(to, tokenId); - require( - _checkOnERC721Received(address(0), to, tokenId, _data), - "ERC721: transfer to non ERC721Receiver implementer" - ); - } - - /** - * @dev Mints `tokenId` and transfers it to `to`. - * - * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible - * - * Requirements: - * - * - `tokenId` must not exist. - * - `to` cannot be the zero address. - * - * Emits a {Transfer} event. - */ - function _mint(address to, uint256 tokenId) internal virtual { - require(to != address(0), "ERC721: mint to the zero address"); - require(!_exists(tokenId), "ERC721: token already minted"); - - _beforeTokenTransfer(address(0), to, tokenId); - - _balances[to] += 1; - _owners[tokenId] = to; - - emit Transfer(address(0), to, tokenId); - } - - /** - * @dev Destroys `tokenId`. - * The approval is cleared when the token is burned. - * - * Requirements: - * - * - `tokenId` must exist. - * - * Emits a {Transfer} event. - */ - function _burn(uint256 tokenId) internal virtual { - address owner = ERC721.ownerOf(tokenId); - - _beforeTokenTransfer(owner, address(0), tokenId); - - // Clear approvals - _approve(address(0), tokenId); - - _balances[owner] -= 1; - delete _owners[tokenId]; - - emit Transfer(owner, address(0), tokenId); - } - - /** - * @dev Transfers `tokenId` from `from` to `to`. - * As opposed to {transferFrom}, this imposes no restrictions on msg.sender. - * - * Requirements: - * - * - `to` cannot be the zero address. - * - `tokenId` token must be owned by `from`. - * - * Emits a {Transfer} event. - */ - function _transfer( - address from, - address to, - uint256 tokenId - ) internal virtual { - require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); - require(to != address(0), "ERC721: transfer to the zero address"); - - _beforeTokenTransfer(from, to, tokenId); - - // Clear approvals from the previous owner - _approve(address(0), tokenId); - - _balances[from] -= 1; - _balances[to] += 1; - _owners[tokenId] = to; - - emit Transfer(from, to, tokenId); - } - - /** - * @dev Approve `to` to operate on `tokenId` - * - * Emits a {Approval} event. - */ - function _approve(address to, uint256 tokenId) internal virtual { - _tokenApprovals[tokenId] = to; - emit Approval(ERC721.ownerOf(tokenId), to, tokenId); - } - - /** - * @dev Approve `operator` to operate on all of `owner` tokens - * - * Emits a {ApprovalForAll} event. - */ - function _setApprovalForAll( - address owner, - address operator, - bool approved - ) internal virtual { - require(owner != operator, "ERC721: approve to caller"); - _operatorApprovals[owner][operator] = approved; - emit ApprovalForAll(owner, operator, approved); - } - - /** - * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address. - * The call is not executed if the target address is not a contract. - * - * @param from address representing the previous owner of the given token ID - * @param to target address that will receive the tokens - * @param tokenId uint256 ID of the token to be transferred - * @param _data bytes optional data to send along with the call - * @return bool whether the call correctly returned the expected magic value - */ - function _checkOnERC721Received( - address from, - address to, - uint256 tokenId, - bytes memory _data - ) private returns (bool) { - if (to.isContract()) { - try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { - return retval == IERC721Receiver.onERC721Received.selector; - } catch (bytes memory reason) { - if (reason.length == 0) { - revert("ERC721: transfer to non ERC721Receiver implementer"); - } else { - assembly { - revert(add(32, reason), mload(reason)) - } - } - } - } else { - return true; - } - } - - /** - * @dev Hook that is called before any token transfer. This includes minting - * and burning. - * - * Calling conditions: - * - * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be - * transferred to `to`. - * - When `from` is zero, `tokenId` will be minted for `to`. - * - When `to` is zero, ``from``'s `tokenId` will be burned. - * - `from` and `to` are never both zero. - * - * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. - */ - function _beforeTokenTransfer( - address from, - address to, - uint256 tokenId - ) internal virtual {} -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol deleted file mode 100644 index 7d6c99c4f..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol +++ /dev/null @@ -1,143 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC721/IERC721.sol) - -pragma solidity ^0.8.0; - -import "../../utils/introspection/IERC165.sol"; - -/** - * @dev Required interface of an ERC721 compliant contract. - */ -interface IERC721 is IERC165 { - /** - * @dev Emitted when `tokenId` token is transferred from `from` to `to`. - */ - event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); - - /** - * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. - */ - event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); - - /** - * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. - */ - event ApprovalForAll(address indexed owner, address indexed operator, bool approved); - - /** - * @dev Returns the number of tokens in ``owner``'s account. - */ - function balanceOf(address owner) external view returns (uint256 balance); - - /** - * @dev Returns the owner of the `tokenId` token. - * - * Requirements: - * - * - `tokenId` must exist. - */ - function ownerOf(uint256 tokenId) external view returns (address owner); - - /** - * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients - * are aware of the ERC721 protocol to prevent tokens from being forever locked. - * - * Requirements: - * - * - `from` cannot be the zero address. - * - `to` cannot be the zero address. - * - `tokenId` token must exist and be owned by `from`. - * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. - * - * Emits a {Transfer} event. - */ - function safeTransferFrom( - address from, - address to, - uint256 tokenId - ) external; - - /** - * @dev Transfers `tokenId` token from `from` to `to`. - * - * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. - * - * Requirements: - * - * - `from` cannot be the zero address. - * - `to` cannot be the zero address. - * - `tokenId` token must be owned by `from`. - * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - * - * Emits a {Transfer} event. - */ - function transferFrom( - address from, - address to, - uint256 tokenId - ) external; - - /** - * @dev Gives permission to `to` to transfer `tokenId` token to another account. - * The approval is cleared when the token is transferred. - * - * Only a single account can be approved at a time, so approving the zero address clears previous approvals. - * - * Requirements: - * - * - The caller must own the token or be an approved operator. - * - `tokenId` must exist. - * - * Emits an {Approval} event. - */ - function approve(address to, uint256 tokenId) external; - - /** - * @dev Returns the account approved for `tokenId` token. - * - * Requirements: - * - * - `tokenId` must exist. - */ - function getApproved(uint256 tokenId) external view returns (address operator); - - /** - * @dev Approve or remove `operator` as an operator for the caller. - * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. - * - * Requirements: - * - * - The `operator` cannot be the caller. - * - * Emits an {ApprovalForAll} event. - */ - function setApprovalForAll(address operator, bool _approved) external; - - /** - * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. - * - * See {setApprovalForAll} - */ - function isApprovedForAll(address owner, address operator) external view returns (bool); - - /** - * @dev Safely transfers `tokenId` token from `from` to `to`. - * - * Requirements: - * - * - `from` cannot be the zero address. - * - `to` cannot be the zero address. - * - `tokenId` token must exist and be owned by `from`. - * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. - * - * Emits a {Transfer} event. - */ - function safeTransferFrom( - address from, - address to, - uint256 tokenId, - bytes calldata data - ) external; -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol deleted file mode 100644 index 5e2868042..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol +++ /dev/null @@ -1,27 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC721/IERC721Receiver.sol) - -pragma solidity ^0.8.0; - -/** - * @title ERC721 token receiver interface - * @dev Interface for any contract that wants to support safeTransfers - * from ERC721 asset contracts. - */ -interface IERC721Receiver { - /** - * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} - * by `operator` from `from`, this function is called. - * - * It must return its Solidity selector to confirm the token transfer. - * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. - * - * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`. - */ - function onERC721Received( - address operator, - address from, - uint256 tokenId, - bytes calldata data - ) external returns (bytes4); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol deleted file mode 100644 index 922fa959e..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/ERC721Burnable.sol) - -pragma solidity ^0.8.0; - -import "../ERC721.sol"; -import "../../../utils/Context.sol"; - -/** - * @title ERC721 Burnable Token - * @dev ERC721 Token that can be irreversibly burned (destroyed). - */ -abstract contract ERC721Burnable is Context, ERC721 { - /** - * @dev Burns `tokenId`. See {ERC721-_burn}. - * - * Requirements: - * - * - The caller must own `tokenId` or be an approved operator. - */ - function burn(uint256 tokenId) public virtual { - //solhint-disable-next-line max-line-length - require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721Burnable: caller is not owner nor approved"); - _burn(tokenId); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol deleted file mode 100644 index a2ad6d5ac..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol +++ /dev/null @@ -1,163 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/ERC721Enumerable.sol) - -pragma solidity ^0.8.0; - -import "../ERC721.sol"; -import "./IERC721Enumerable.sol"; - -/** - * @dev This implements an optional extension of {ERC721} defined in the EIP that adds - * enumerability of all the token ids in the contract as well as all token ids owned by each - * account. - */ -abstract contract ERC721Enumerable is ERC721, IERC721Enumerable { - // Mapping from owner to list of owned token IDs - mapping(address => mapping(uint256 => uint256)) private _ownedTokens; - - // Mapping from token ID to index of the owner tokens list - mapping(uint256 => uint256) private _ownedTokensIndex; - - // Array with all token ids, used for enumeration - uint256[] private _allTokens; - - // Mapping from token id to position in the allTokens array - mapping(uint256 => uint256) private _allTokensIndex; - - /** - * @dev See {IERC165-supportsInterface}. - */ - function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) { - return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId); - } - - /** - * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}. - */ - function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) { - require(index < ERC721.balanceOf(owner), "ERC721Enumerable: owner index out of bounds"); - return _ownedTokens[owner][index]; - } - - /** - * @dev See {IERC721Enumerable-totalSupply}. - */ - function totalSupply() public view virtual override returns (uint256) { - return _allTokens.length; - } - - /** - * @dev See {IERC721Enumerable-tokenByIndex}. - */ - function tokenByIndex(uint256 index) public view virtual override returns (uint256) { - require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds"); - return _allTokens[index]; - } - - /** - * @dev Hook that is called before any token transfer. This includes minting - * and burning. - * - * Calling conditions: - * - * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be - * transferred to `to`. - * - When `from` is zero, `tokenId` will be minted for `to`. - * - When `to` is zero, ``from``'s `tokenId` will be burned. - * - `from` cannot be the zero address. - * - `to` cannot be the zero address. - * - * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. - */ - function _beforeTokenTransfer( - address from, - address to, - uint256 tokenId - ) internal virtual override { - super._beforeTokenTransfer(from, to, tokenId); - - if (from == address(0)) { - _addTokenToAllTokensEnumeration(tokenId); - } else if (from != to) { - _removeTokenFromOwnerEnumeration(from, tokenId); - } - if (to == address(0)) { - _removeTokenFromAllTokensEnumeration(tokenId); - } else if (to != from) { - _addTokenToOwnerEnumeration(to, tokenId); - } - } - - /** - * @dev Private function to add a token to this extension's ownership-tracking data structures. - * @param to address representing the new owner of the given token ID - * @param tokenId uint256 ID of the token to be added to the tokens list of the given address - */ - function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private { - uint256 length = ERC721.balanceOf(to); - _ownedTokens[to][length] = tokenId; - _ownedTokensIndex[tokenId] = length; - } - - /** - * @dev Private function to add a token to this extension's token tracking data structures. - * @param tokenId uint256 ID of the token to be added to the tokens list - */ - function _addTokenToAllTokensEnumeration(uint256 tokenId) private { - _allTokensIndex[tokenId] = _allTokens.length; - _allTokens.push(tokenId); - } - - /** - * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that - * while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for - * gas optimizations e.g. when performing a transfer operation (avoiding double writes). - * This has O(1) time complexity, but alters the order of the _ownedTokens array. - * @param from address representing the previous owner of the given token ID - * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address - */ - function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private { - // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and - // then delete the last slot (swap and pop). - - uint256 lastTokenIndex = ERC721.balanceOf(from) - 1; - uint256 tokenIndex = _ownedTokensIndex[tokenId]; - - // When the token to delete is the last token, the swap operation is unnecessary - if (tokenIndex != lastTokenIndex) { - uint256 lastTokenId = _ownedTokens[from][lastTokenIndex]; - - _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token - _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index - } - - // This also deletes the contents at the last position of the array - delete _ownedTokensIndex[tokenId]; - delete _ownedTokens[from][lastTokenIndex]; - } - - /** - * @dev Private function to remove a token from this extension's token tracking data structures. - * This has O(1) time complexity, but alters the order of the _allTokens array. - * @param tokenId uint256 ID of the token to be removed from the tokens list - */ - function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private { - // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and - // then delete the last slot (swap and pop). - - uint256 lastTokenIndex = _allTokens.length - 1; - uint256 tokenIndex = _allTokensIndex[tokenId]; - - // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so - // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding - // an 'if' statement (like in _removeTokenFromOwnerEnumeration) - uint256 lastTokenId = _allTokens[lastTokenIndex]; - - _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token - _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index - - // This also deletes the contents at the last position of the array - delete _allTokensIndex[tokenId]; - _allTokens.pop(); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Pausable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Pausable.sol deleted file mode 100644 index b8d5b68d9..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Pausable.sol +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/ERC721Pausable.sol) - -pragma solidity ^0.8.0; - -import "../ERC721.sol"; -import "../../../security/Pausable.sol"; - -/** - * @dev ERC721 token with pausable token transfers, minting and burning. - * - * Useful for scenarios such as preventing trades until the end of an evaluation - * period, or having an emergency switch for freezing all token transfers in the - * event of a large bug. - */ -abstract contract ERC721Pausable is ERC721, Pausable { - /** - * @dev See {ERC721-_beforeTokenTransfer}. - * - * Requirements: - * - * - the contract must not be paused. - */ - function _beforeTokenTransfer( - address from, - address to, - uint256 tokenId - ) internal virtual override { - super._beforeTokenTransfer(from, to, tokenId); - - require(!paused(), "ERC721Pausable: token transfer while paused"); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol deleted file mode 100644 index e4ef29dbe..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol +++ /dev/null @@ -1,67 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/ERC721URIStorage.sol) - -pragma solidity ^0.8.0; - -import "../ERC721.sol"; - -/** - * @dev ERC721 token with storage based token URI management. - */ -abstract contract ERC721URIStorage is ERC721 { - using Strings for uint256; - - // Optional mapping for token URIs - mapping(uint256 => string) private _tokenURIs; - - /** - * @dev See {IERC721Metadata-tokenURI}. - */ - function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { - require(_exists(tokenId), "ERC721URIStorage: URI query for nonexistent token"); - - string memory _tokenURI = _tokenURIs[tokenId]; - string memory base = _baseURI(); - - // If there is no base URI, return the token URI. - if (bytes(base).length == 0) { - return _tokenURI; - } - // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked). - if (bytes(_tokenURI).length > 0) { - return string(abi.encodePacked(base, _tokenURI)); - } - - return super.tokenURI(tokenId); - } - - /** - * @dev Sets `_tokenURI` as the tokenURI of `tokenId`. - * - * Requirements: - * - * - `tokenId` must exist. - */ - function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual { - require(_exists(tokenId), "ERC721URIStorage: URI set of nonexistent token"); - _tokenURIs[tokenId] = _tokenURI; - } - - /** - * @dev Destroys `tokenId`. - * The approval is cleared when the token is burned. - * - * Requirements: - * - * - `tokenId` must exist. - * - * Emits a {Transfer} event. - */ - function _burn(uint256 tokenId) internal virtual override { - super._burn(tokenId); - - if (bytes(_tokenURIs[tokenId]).length != 0) { - delete _tokenURIs[tokenId]; - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol deleted file mode 100644 index fc5dfba32..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol +++ /dev/null @@ -1,29 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/IERC721Enumerable.sol) - -pragma solidity ^0.8.0; - -import "../IERC721.sol"; - -/** - * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension - * @dev See https://eips.ethereum.org/EIPS/eip-721 - */ -interface IERC721Enumerable is IERC721 { - /** - * @dev Returns the total amount of tokens stored by the contract. - */ - function totalSupply() external view returns (uint256); - - /** - * @dev Returns a token ID owned by `owner` at a given `index` of its token list. - * Use along with {balanceOf} to enumerate all of ``owner``'s tokens. - */ - function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); - - /** - * @dev Returns a token ID at a given `index` of all the tokens stored by the contract. - * Use along with {totalSupply} to enumerate all tokens. - */ - function tokenByIndex(uint256 index) external view returns (uint256); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol deleted file mode 100644 index 0a135ce58..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol +++ /dev/null @@ -1,27 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/IERC721Metadata.sol) - -pragma solidity ^0.8.0; - -import "../IERC721.sol"; - -/** - * @title ERC-721 Non-Fungible Token Standard, optional metadata extension - * @dev See https://eips.ethereum.org/EIPS/eip-721 - */ -interface IERC721Metadata is IERC721 { - /** - * @dev Returns the token collection name. - */ - function name() external view returns (string memory); - - /** - * @dev Returns the token collection symbol. - */ - function symbol() external view returns (string memory); - - /** - * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. - */ - function tokenURI(uint256 tokenId) external view returns (string memory); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol deleted file mode 100644 index da19b9220..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol +++ /dev/null @@ -1,137 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol) - -pragma solidity ^0.8.0; - -import "../ERC721.sol"; -import "../extensions/ERC721Enumerable.sol"; -import "../extensions/ERC721Burnable.sol"; -import "../extensions/ERC721Pausable.sol"; -import "../../../access/AccessControlEnumerable.sol"; -import "../../../utils/Context.sol"; -import "../../../utils/Counters.sol"; - -/** - * @dev {ERC721} token, including: - * - * - ability for holders to burn (destroy) their tokens - * - a minter role that allows for token minting (creation) - * - a pauser role that allows to stop all token transfers - * - token ID and URI autogeneration - * - * This contract uses {AccessControl} to lock permissioned functions using the - * different roles - head to its documentation for details. - * - * The account that deploys the contract will be granted the minter and pauser - * roles, as well as the default admin role, which will let it grant both minter - * and pauser roles to other accounts. - */ -contract ERC721PresetMinterPauserAutoId is - Context, - AccessControlEnumerable, - ERC721Enumerable, - ERC721Burnable, - ERC721Pausable -{ - using Counters for Counters.Counter; - - bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); - bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); - - Counters.Counter private _tokenIdTracker; - - string private _baseTokenURI; - - /** - * @dev Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE` and `PAUSER_ROLE` to the - * account that deploys the contract. - * - * Token URIs will be autogenerated based on `baseURI` and their token IDs. - * See {ERC721-tokenURI}. - */ - constructor( - string memory name, - string memory symbol, - string memory baseTokenURI - ) ERC721(name, symbol) { - _baseTokenURI = baseTokenURI; - - _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); - - _setupRole(MINTER_ROLE, _msgSender()); - _setupRole(PAUSER_ROLE, _msgSender()); - } - - function _baseURI() internal view virtual override returns (string memory) { - return _baseTokenURI; - } - - /** - * @dev Creates a new token for `to`. Its token ID will be automatically - * assigned (and available on the emitted {IERC721-Transfer} event), and the token - * URI autogenerated based on the base URI passed at construction. - * - * See {ERC721-_mint}. - * - * Requirements: - * - * - the caller must have the `MINTER_ROLE`. - */ - function mint(address to) public virtual { - require(hasRole(MINTER_ROLE, _msgSender()), "ERC721PresetMinterPauserAutoId: must have minter role to mint"); - - // We cannot just use balanceOf to create the new tokenId because tokens - // can be burned (destroyed), so we need a separate counter. - _mint(to, _tokenIdTracker.current()); - _tokenIdTracker.increment(); - } - - /** - * @dev Pauses all token transfers. - * - * See {ERC721Pausable} and {Pausable-_pause}. - * - * Requirements: - * - * - the caller must have the `PAUSER_ROLE`. - */ - function pause() public virtual { - require(hasRole(PAUSER_ROLE, _msgSender()), "ERC721PresetMinterPauserAutoId: must have pauser role to pause"); - _pause(); - } - - /** - * @dev Unpauses all token transfers. - * - * See {ERC721Pausable} and {Pausable-_unpause}. - * - * Requirements: - * - * - the caller must have the `PAUSER_ROLE`. - */ - function unpause() public virtual { - require(hasRole(PAUSER_ROLE, _msgSender()), "ERC721PresetMinterPauserAutoId: must have pauser role to unpause"); - _unpause(); - } - - function _beforeTokenTransfer( - address from, - address to, - uint256 tokenId - ) internal virtual override(ERC721, ERC721Enumerable, ERC721Pausable) { - super._beforeTokenTransfer(from, to, tokenId); - } - - /** - * @dev See {IERC165-supportsInterface}. - */ - function supportsInterface(bytes4 interfaceId) - public - view - virtual - override(AccessControlEnumerable, ERC721, ERC721Enumerable) - returns (bool) - { - return super.supportsInterface(interfaceId); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol deleted file mode 100644 index 562ff2e18..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC721/utils/ERC721Holder.sol) - -pragma solidity ^0.8.0; - -import "../IERC721Receiver.sol"; - -/** - * @dev Implementation of the {IERC721Receiver} interface. - * - * Accepts all token transfers. - * Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}. - */ -contract ERC721Holder is IERC721Receiver { - /** - * @dev See {IERC721Receiver-onERC721Received}. - * - * Always returns `IERC721Receiver.onERC721Received.selector`. - */ - function onERC721Received( - address, - address, - uint256, - bytes memory - ) public virtual override returns (bytes4) { - return this.onERC721Received.selector; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/ERC777.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/ERC777.sol deleted file mode 100644 index 8c53a3a5f..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/ERC777.sol +++ /dev/null @@ -1,539 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC777/ERC777.sol) - -pragma solidity ^0.8.0; - -import "./IERC777.sol"; -import "./IERC777Recipient.sol"; -import "./IERC777Sender.sol"; -import "../ERC20/IERC20.sol"; -import "../../utils/Address.sol"; -import "../../utils/Context.sol"; -import "../../utils/introspection/IERC1820Registry.sol"; - -/** - * @dev Implementation of the {IERC777} interface. - * - * This implementation is agnostic to the way tokens are created. This means - * that a supply mechanism has to be added in a derived contract using {_mint}. - * - * Support for ERC20 is included in this contract, as specified by the EIP: both - * the ERC777 and ERC20 interfaces can be safely used when interacting with it. - * Both {IERC777-Sent} and {IERC20-Transfer} events are emitted on token - * movements. - * - * Additionally, the {IERC777-granularity} value is hard-coded to `1`, meaning that there - * are no special restrictions in the amount of tokens that created, moved, or - * destroyed. This makes integration with ERC20 applications seamless. - */ -contract ERC777 is Context, IERC777, IERC20 { - using Address for address; - - IERC1820Registry internal constant _ERC1820_REGISTRY = IERC1820Registry(0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24); - - mapping(address => uint256) private _balances; - - uint256 private _totalSupply; - - string private _name; - string private _symbol; - - bytes32 private constant _TOKENS_SENDER_INTERFACE_HASH = keccak256("ERC777TokensSender"); - bytes32 private constant _TOKENS_RECIPIENT_INTERFACE_HASH = keccak256("ERC777TokensRecipient"); - - // This isn't ever read from - it's only used to respond to the defaultOperators query. - address[] private _defaultOperatorsArray; - - // Immutable, but accounts may revoke them (tracked in __revokedDefaultOperators). - mapping(address => bool) private _defaultOperators; - - // For each account, a mapping of its operators and revoked default operators. - mapping(address => mapping(address => bool)) private _operators; - mapping(address => mapping(address => bool)) private _revokedDefaultOperators; - - // ERC20-allowances - mapping(address => mapping(address => uint256)) private _allowances; - - /** - * @dev `defaultOperators` may be an empty array. - */ - constructor( - string memory name_, - string memory symbol_, - address[] memory defaultOperators_ - ) { - _name = name_; - _symbol = symbol_; - - _defaultOperatorsArray = defaultOperators_; - for (uint256 i = 0; i < defaultOperators_.length; i++) { - _defaultOperators[defaultOperators_[i]] = true; - } - - // register interfaces - _ERC1820_REGISTRY.setInterfaceImplementer(address(this), keccak256("ERC777Token"), address(this)); - _ERC1820_REGISTRY.setInterfaceImplementer(address(this), keccak256("ERC20Token"), address(this)); - } - - /** - * @dev See {IERC777-name}. - */ - function name() public view virtual override returns (string memory) { - return _name; - } - - /** - * @dev See {IERC777-symbol}. - */ - function symbol() public view virtual override returns (string memory) { - return _symbol; - } - - /** - * @dev See {ERC20-decimals}. - * - * Always returns 18, as per the - * [ERC777 EIP](https://eips.ethereum.org/EIPS/eip-777#backward-compatibility). - */ - function decimals() public pure virtual returns (uint8) { - return 18; - } - - /** - * @dev See {IERC777-granularity}. - * - * This implementation always returns `1`. - */ - function granularity() public view virtual override returns (uint256) { - return 1; - } - - /** - * @dev See {IERC777-totalSupply}. - */ - function totalSupply() public view virtual override(IERC20, IERC777) returns (uint256) { - return _totalSupply; - } - - /** - * @dev Returns the amount of tokens owned by an account (`tokenHolder`). - */ - function balanceOf(address tokenHolder) public view virtual override(IERC20, IERC777) returns (uint256) { - return _balances[tokenHolder]; - } - - /** - * @dev See {IERC777-send}. - * - * Also emits a {IERC20-Transfer} event for ERC20 compatibility. - */ - function send( - address recipient, - uint256 amount, - bytes memory data - ) public virtual override { - _send(_msgSender(), recipient, amount, data, "", true); - } - - /** - * @dev See {IERC20-transfer}. - * - * Unlike `send`, `recipient` is _not_ required to implement the {IERC777Recipient} - * interface if it is a contract. - * - * Also emits a {Sent} event. - */ - function transfer(address recipient, uint256 amount) public virtual override returns (bool) { - require(recipient != address(0), "ERC777: transfer to the zero address"); - - address from = _msgSender(); - - _callTokensToSend(from, from, recipient, amount, "", ""); - - _move(from, from, recipient, amount, "", ""); - - _callTokensReceived(from, from, recipient, amount, "", "", false); - - return true; - } - - /** - * @dev See {IERC777-burn}. - * - * Also emits a {IERC20-Transfer} event for ERC20 compatibility. - */ - function burn(uint256 amount, bytes memory data) public virtual override { - _burn(_msgSender(), amount, data, ""); - } - - /** - * @dev See {IERC777-isOperatorFor}. - */ - function isOperatorFor(address operator, address tokenHolder) public view virtual override returns (bool) { - return - operator == tokenHolder || - (_defaultOperators[operator] && !_revokedDefaultOperators[tokenHolder][operator]) || - _operators[tokenHolder][operator]; - } - - /** - * @dev See {IERC777-authorizeOperator}. - */ - function authorizeOperator(address operator) public virtual override { - require(_msgSender() != operator, "ERC777: authorizing self as operator"); - - if (_defaultOperators[operator]) { - delete _revokedDefaultOperators[_msgSender()][operator]; - } else { - _operators[_msgSender()][operator] = true; - } - - emit AuthorizedOperator(operator, _msgSender()); - } - - /** - * @dev See {IERC777-revokeOperator}. - */ - function revokeOperator(address operator) public virtual override { - require(operator != _msgSender(), "ERC777: revoking self as operator"); - - if (_defaultOperators[operator]) { - _revokedDefaultOperators[_msgSender()][operator] = true; - } else { - delete _operators[_msgSender()][operator]; - } - - emit RevokedOperator(operator, _msgSender()); - } - - /** - * @dev See {IERC777-defaultOperators}. - */ - function defaultOperators() public view virtual override returns (address[] memory) { - return _defaultOperatorsArray; - } - - /** - * @dev See {IERC777-operatorSend}. - * - * Emits {Sent} and {IERC20-Transfer} events. - */ - function operatorSend( - address sender, - address recipient, - uint256 amount, - bytes memory data, - bytes memory operatorData - ) public virtual override { - require(isOperatorFor(_msgSender(), sender), "ERC777: caller is not an operator for holder"); - _send(sender, recipient, amount, data, operatorData, true); - } - - /** - * @dev See {IERC777-operatorBurn}. - * - * Emits {Burned} and {IERC20-Transfer} events. - */ - function operatorBurn( - address account, - uint256 amount, - bytes memory data, - bytes memory operatorData - ) public virtual override { - require(isOperatorFor(_msgSender(), account), "ERC777: caller is not an operator for holder"); - _burn(account, amount, data, operatorData); - } - - /** - * @dev See {IERC20-allowance}. - * - * Note that operator and allowance concepts are orthogonal: operators may - * not have allowance, and accounts with allowance may not be operators - * themselves. - */ - function allowance(address holder, address spender) public view virtual override returns (uint256) { - return _allowances[holder][spender]; - } - - /** - * @dev See {IERC20-approve}. - * - * Note that accounts cannot have allowance issued by their operators. - */ - function approve(address spender, uint256 value) public virtual override returns (bool) { - address holder = _msgSender(); - _approve(holder, spender, value); - return true; - } - - /** - * @dev See {IERC20-transferFrom}. - * - * Note that operator and allowance concepts are orthogonal: operators cannot - * call `transferFrom` (unless they have allowance), and accounts with - * allowance cannot call `operatorSend` (unless they are operators). - * - * Emits {Sent}, {IERC20-Transfer} and {IERC20-Approval} events. - */ - function transferFrom( - address holder, - address recipient, - uint256 amount - ) public virtual override returns (bool) { - require(recipient != address(0), "ERC777: transfer to the zero address"); - require(holder != address(0), "ERC777: transfer from the zero address"); - - address spender = _msgSender(); - - _callTokensToSend(spender, holder, recipient, amount, "", ""); - - _move(spender, holder, recipient, amount, "", ""); - - uint256 currentAllowance = _allowances[holder][spender]; - require(currentAllowance >= amount, "ERC777: transfer amount exceeds allowance"); - _approve(holder, spender, currentAllowance - amount); - - _callTokensReceived(spender, holder, recipient, amount, "", "", false); - - return true; - } - - /** - * @dev Creates `amount` tokens and assigns them to `account`, increasing - * the total supply. - * - * If a send hook is registered for `account`, the corresponding function - * will be called with `operator`, `data` and `operatorData`. - * - * See {IERC777Sender} and {IERC777Recipient}. - * - * Emits {Minted} and {IERC20-Transfer} events. - * - * Requirements - * - * - `account` cannot be the zero address. - * - if `account` is a contract, it must implement the {IERC777Recipient} - * interface. - */ - function _mint( - address account, - uint256 amount, - bytes memory userData, - bytes memory operatorData - ) internal virtual { - _mint(account, amount, userData, operatorData, true); - } - - /** - * @dev Creates `amount` tokens and assigns them to `account`, increasing - * the total supply. - * - * If `requireReceptionAck` is set to true, and if a send hook is - * registered for `account`, the corresponding function will be called with - * `operator`, `data` and `operatorData`. - * - * See {IERC777Sender} and {IERC777Recipient}. - * - * Emits {Minted} and {IERC20-Transfer} events. - * - * Requirements - * - * - `account` cannot be the zero address. - * - if `account` is a contract, it must implement the {IERC777Recipient} - * interface. - */ - function _mint( - address account, - uint256 amount, - bytes memory userData, - bytes memory operatorData, - bool requireReceptionAck - ) internal virtual { - require(account != address(0), "ERC777: mint to the zero address"); - - address operator = _msgSender(); - - _beforeTokenTransfer(operator, address(0), account, amount); - - // Update state variables - _totalSupply += amount; - _balances[account] += amount; - - _callTokensReceived(operator, address(0), account, amount, userData, operatorData, requireReceptionAck); - - emit Minted(operator, account, amount, userData, operatorData); - emit Transfer(address(0), account, amount); - } - - /** - * @dev Send tokens - * @param from address token holder address - * @param to address recipient address - * @param amount uint256 amount of tokens to transfer - * @param userData bytes extra information provided by the token holder (if any) - * @param operatorData bytes extra information provided by the operator (if any) - * @param requireReceptionAck if true, contract recipients are required to implement ERC777TokensRecipient - */ - function _send( - address from, - address to, - uint256 amount, - bytes memory userData, - bytes memory operatorData, - bool requireReceptionAck - ) internal virtual { - require(from != address(0), "ERC777: send from the zero address"); - require(to != address(0), "ERC777: send to the zero address"); - - address operator = _msgSender(); - - _callTokensToSend(operator, from, to, amount, userData, operatorData); - - _move(operator, from, to, amount, userData, operatorData); - - _callTokensReceived(operator, from, to, amount, userData, operatorData, requireReceptionAck); - } - - /** - * @dev Burn tokens - * @param from address token holder address - * @param amount uint256 amount of tokens to burn - * @param data bytes extra information provided by the token holder - * @param operatorData bytes extra information provided by the operator (if any) - */ - function _burn( - address from, - uint256 amount, - bytes memory data, - bytes memory operatorData - ) internal virtual { - require(from != address(0), "ERC777: burn from the zero address"); - - address operator = _msgSender(); - - _callTokensToSend(operator, from, address(0), amount, data, operatorData); - - _beforeTokenTransfer(operator, from, address(0), amount); - - // Update state variables - uint256 fromBalance = _balances[from]; - require(fromBalance >= amount, "ERC777: burn amount exceeds balance"); - unchecked { - _balances[from] = fromBalance - amount; - } - _totalSupply -= amount; - - emit Burned(operator, from, amount, data, operatorData); - emit Transfer(from, address(0), amount); - } - - function _move( - address operator, - address from, - address to, - uint256 amount, - bytes memory userData, - bytes memory operatorData - ) private { - _beforeTokenTransfer(operator, from, to, amount); - - uint256 fromBalance = _balances[from]; - require(fromBalance >= amount, "ERC777: transfer amount exceeds balance"); - unchecked { - _balances[from] = fromBalance - amount; - } - _balances[to] += amount; - - emit Sent(operator, from, to, amount, userData, operatorData); - emit Transfer(from, to, amount); - } - - /** - * @dev See {ERC20-_approve}. - * - * Note that accounts cannot have allowance issued by their operators. - */ - function _approve( - address holder, - address spender, - uint256 value - ) internal { - require(holder != address(0), "ERC777: approve from the zero address"); - require(spender != address(0), "ERC777: approve to the zero address"); - - _allowances[holder][spender] = value; - emit Approval(holder, spender, value); - } - - /** - * @dev Call from.tokensToSend() if the interface is registered - * @param operator address operator requesting the transfer - * @param from address token holder address - * @param to address recipient address - * @param amount uint256 amount of tokens to transfer - * @param userData bytes extra information provided by the token holder (if any) - * @param operatorData bytes extra information provided by the operator (if any) - */ - function _callTokensToSend( - address operator, - address from, - address to, - uint256 amount, - bytes memory userData, - bytes memory operatorData - ) private { - address implementer = _ERC1820_REGISTRY.getInterfaceImplementer(from, _TOKENS_SENDER_INTERFACE_HASH); - if (implementer != address(0)) { - IERC777Sender(implementer).tokensToSend(operator, from, to, amount, userData, operatorData); - } - } - - /** - * @dev Call to.tokensReceived() if the interface is registered. Reverts if the recipient is a contract but - * tokensReceived() was not registered for the recipient - * @param operator address operator requesting the transfer - * @param from address token holder address - * @param to address recipient address - * @param amount uint256 amount of tokens to transfer - * @param userData bytes extra information provided by the token holder (if any) - * @param operatorData bytes extra information provided by the operator (if any) - * @param requireReceptionAck if true, contract recipients are required to implement ERC777TokensRecipient - */ - function _callTokensReceived( - address operator, - address from, - address to, - uint256 amount, - bytes memory userData, - bytes memory operatorData, - bool requireReceptionAck - ) private { - address implementer = _ERC1820_REGISTRY.getInterfaceImplementer(to, _TOKENS_RECIPIENT_INTERFACE_HASH); - if (implementer != address(0)) { - IERC777Recipient(implementer).tokensReceived(operator, from, to, amount, userData, operatorData); - } else if (requireReceptionAck) { - require(!to.isContract(), "ERC777: token recipient contract has no implementer for ERC777TokensRecipient"); - } - } - - /** - * @dev Hook that is called before any token transfer. This includes - * calls to {send}, {transfer}, {operatorSend}, minting and burning. - * - * Calling conditions: - * - * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens - * will be to transferred to `to`. - * - when `from` is zero, `amount` tokens will be minted for `to`. - * - when `to` is zero, `amount` of ``from``'s tokens will be burned. - * - `from` and `to` are never both zero. - * - * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. - */ - function _beforeTokenTransfer( - address operator, - address from, - address to, - uint256 amount - ) internal virtual {} -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777.sol deleted file mode 100644 index 89bfb5dae..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777.sol +++ /dev/null @@ -1,193 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC777/IERC777.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Interface of the ERC777Token standard as defined in the EIP. - * - * This contract uses the - * https://eips.ethereum.org/EIPS/eip-1820[ERC1820 registry standard] to let - * token holders and recipients react to token movements by using setting implementers - * for the associated interfaces in said registry. See {IERC1820Registry} and - * {ERC1820Implementer}. - */ -interface IERC777 { - /** - * @dev Returns the name of the token. - */ - function name() external view returns (string memory); - - /** - * @dev Returns the symbol of the token, usually a shorter version of the - * name. - */ - function symbol() external view returns (string memory); - - /** - * @dev Returns the smallest part of the token that is not divisible. This - * means all token operations (creation, movement and destruction) must have - * amounts that are a multiple of this number. - * - * For most token contracts, this value will equal 1. - */ - function granularity() external view returns (uint256); - - /** - * @dev Returns the amount of tokens in existence. - */ - function totalSupply() external view returns (uint256); - - /** - * @dev Returns the amount of tokens owned by an account (`owner`). - */ - function balanceOf(address owner) external view returns (uint256); - - /** - * @dev Moves `amount` tokens from the caller's account to `recipient`. - * - * If send or receive hooks are registered for the caller and `recipient`, - * the corresponding functions will be called with `data` and empty - * `operatorData`. See {IERC777Sender} and {IERC777Recipient}. - * - * Emits a {Sent} event. - * - * Requirements - * - * - the caller must have at least `amount` tokens. - * - `recipient` cannot be the zero address. - * - if `recipient` is a contract, it must implement the {IERC777Recipient} - * interface. - */ - function send( - address recipient, - uint256 amount, - bytes calldata data - ) external; - - /** - * @dev Destroys `amount` tokens from the caller's account, reducing the - * total supply. - * - * If a send hook is registered for the caller, the corresponding function - * will be called with `data` and empty `operatorData`. See {IERC777Sender}. - * - * Emits a {Burned} event. - * - * Requirements - * - * - the caller must have at least `amount` tokens. - */ - function burn(uint256 amount, bytes calldata data) external; - - /** - * @dev Returns true if an account is an operator of `tokenHolder`. - * Operators can send and burn tokens on behalf of their owners. All - * accounts are their own operator. - * - * See {operatorSend} and {operatorBurn}. - */ - function isOperatorFor(address operator, address tokenHolder) external view returns (bool); - - /** - * @dev Make an account an operator of the caller. - * - * See {isOperatorFor}. - * - * Emits an {AuthorizedOperator} event. - * - * Requirements - * - * - `operator` cannot be calling address. - */ - function authorizeOperator(address operator) external; - - /** - * @dev Revoke an account's operator status for the caller. - * - * See {isOperatorFor} and {defaultOperators}. - * - * Emits a {RevokedOperator} event. - * - * Requirements - * - * - `operator` cannot be calling address. - */ - function revokeOperator(address operator) external; - - /** - * @dev Returns the list of default operators. These accounts are operators - * for all token holders, even if {authorizeOperator} was never called on - * them. - * - * This list is immutable, but individual holders may revoke these via - * {revokeOperator}, in which case {isOperatorFor} will return false. - */ - function defaultOperators() external view returns (address[] memory); - - /** - * @dev Moves `amount` tokens from `sender` to `recipient`. The caller must - * be an operator of `sender`. - * - * If send or receive hooks are registered for `sender` and `recipient`, - * the corresponding functions will be called with `data` and - * `operatorData`. See {IERC777Sender} and {IERC777Recipient}. - * - * Emits a {Sent} event. - * - * Requirements - * - * - `sender` cannot be the zero address. - * - `sender` must have at least `amount` tokens. - * - the caller must be an operator for `sender`. - * - `recipient` cannot be the zero address. - * - if `recipient` is a contract, it must implement the {IERC777Recipient} - * interface. - */ - function operatorSend( - address sender, - address recipient, - uint256 amount, - bytes calldata data, - bytes calldata operatorData - ) external; - - /** - * @dev Destroys `amount` tokens from `account`, reducing the total supply. - * The caller must be an operator of `account`. - * - * If a send hook is registered for `account`, the corresponding function - * will be called with `data` and `operatorData`. See {IERC777Sender}. - * - * Emits a {Burned} event. - * - * Requirements - * - * - `account` cannot be the zero address. - * - `account` must have at least `amount` tokens. - * - the caller must be an operator for `account`. - */ - function operatorBurn( - address account, - uint256 amount, - bytes calldata data, - bytes calldata operatorData - ) external; - - event Sent( - address indexed operator, - address indexed from, - address indexed to, - uint256 amount, - bytes data, - bytes operatorData - ); - - event Minted(address indexed operator, address indexed to, uint256 amount, bytes data, bytes operatorData); - - event Burned(address indexed operator, address indexed from, uint256 amount, bytes data, bytes operatorData); - - event AuthorizedOperator(address indexed operator, address indexed tokenHolder); - - event RevokedOperator(address indexed operator, address indexed tokenHolder); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol deleted file mode 100644 index 4ea1a6984..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol +++ /dev/null @@ -1,35 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC777/IERC777Recipient.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Interface of the ERC777TokensRecipient standard as defined in the EIP. - * - * Accounts can be notified of {IERC777} tokens being sent to them by having a - * contract implement this interface (contract holders can be their own - * implementer) and registering it on the - * https://eips.ethereum.org/EIPS/eip-1820[ERC1820 global registry]. - * - * See {IERC1820Registry} and {ERC1820Implementer}. - */ -interface IERC777Recipient { - /** - * @dev Called by an {IERC777} token contract whenever tokens are being - * moved or created into a registered account (`to`). The type of operation - * is conveyed by `from` being the zero address or not. - * - * This call occurs _after_ the token contract's state is updated, so - * {IERC777-balanceOf}, etc., can be used to query the post-operation state. - * - * This function may revert to prevent the operation from being executed. - */ - function tokensReceived( - address operator, - address from, - address to, - uint256 amount, - bytes calldata userData, - bytes calldata operatorData - ) external; -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Sender.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Sender.sol deleted file mode 100644 index 34805bba1..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/IERC777Sender.sol +++ /dev/null @@ -1,35 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC777/IERC777Sender.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Interface of the ERC777TokensSender standard as defined in the EIP. - * - * {IERC777} Token holders can be notified of operations performed on their - * tokens by having a contract implement this interface (contract holders can be - * their own implementer) and registering it on the - * https://eips.ethereum.org/EIPS/eip-1820[ERC1820 global registry]. - * - * See {IERC1820Registry} and {ERC1820Implementer}. - */ -interface IERC777Sender { - /** - * @dev Called by an {IERC777} token contract whenever a registered holder's - * (`from`) tokens are about to be moved or destroyed. The type of operation - * is conveyed by `to` being the zero address or not. - * - * This call occurs _before_ the token contract's state is updated, so - * {IERC777-balanceOf}, etc., can be used to query the pre-operation state. - * - * This function may revert to prevent the operation from being executed. - */ - function tokensToSend( - address operator, - address from, - address to, - uint256 amount, - bytes calldata userData, - bytes calldata operatorData - ) external; -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol deleted file mode 100644 index 4441fad48..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol +++ /dev/null @@ -1,30 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (token/ERC777/presets/ERC777PresetFixedSupply.sol) -pragma solidity ^0.8.0; - -import "../ERC777.sol"; - -/** - * @dev {ERC777} token, including: - * - * - Preminted initial supply - * - No access control mechanism (for minting/pausing) and hence no governance - * - * _Available since v3.4._ - */ -contract ERC777PresetFixedSupply is ERC777 { - /** - * @dev Mints `initialSupply` amount of token and transfers them to `owner`. - * - * See {ERC777-constructor}. - */ - constructor( - string memory name, - string memory symbol, - address[] memory defaultOperators, - uint256 initialSupply, - address owner - ) ERC777(name, symbol, defaultOperators) { - _mint(owner, initialSupply, "", ""); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Address.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Address.sol deleted file mode 100644 index 7fae36f1f..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Address.sol +++ /dev/null @@ -1,217 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/Address.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Collection of functions related to the address type - */ -library Address { - /** - * @dev Returns true if `account` is a contract. - * - * [IMPORTANT] - * ==== - * It is unsafe to assume that an address for which this function returns - * false is an externally-owned account (EOA) and not a contract. - * - * Among others, `isContract` will return false for the following - * types of addresses: - * - * - an externally-owned account - * - a contract in construction - * - an address where a contract will be created - * - an address where a contract lived, but was destroyed - * ==== - */ - function isContract(address account) internal view returns (bool) { - // This method relies on extcodesize, which returns 0 for contracts in - // construction, since the code is only stored at the end of the - // constructor execution. - - uint256 size; - assembly { - size := extcodesize(account) - } - return size > 0; - } - - /** - * @dev Replacement for Solidity's `transfer`: sends `amount` wei to - * `recipient`, forwarding all available gas and reverting on errors. - * - * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost - * of certain opcodes, possibly making contracts go over the 2300 gas limit - * imposed by `transfer`, making them unable to receive funds via - * `transfer`. {sendValue} removes this limitation. - * - * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. - * - * IMPORTANT: because control is transferred to `recipient`, care must be - * taken to not create reentrancy vulnerabilities. Consider using - * {ReentrancyGuard} or the - * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. - */ - function sendValue(address payable recipient, uint256 amount) internal { - require(address(this).balance >= amount, "Address: insufficient balance"); - - (bool success, ) = recipient.call{value: amount}(""); - require(success, "Address: unable to send value, recipient may have reverted"); - } - - /** - * @dev Performs a Solidity function call using a low level `call`. A - * plain `call` is an unsafe replacement for a function call: use this - * function instead. - * - * If `target` reverts with a revert reason, it is bubbled up by this - * function (like regular Solidity function calls). - * - * Returns the raw returned data. To convert to the expected return value, - * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. - * - * Requirements: - * - * - `target` must be a contract. - * - calling `target` with `data` must not revert. - * - * _Available since v3.1._ - */ - function functionCall(address target, bytes memory data) internal returns (bytes memory) { - return functionCall(target, data, "Address: low-level call failed"); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with - * `errorMessage` as a fallback revert reason when `target` reverts. - * - * _Available since v3.1._ - */ - function functionCall( - address target, - bytes memory data, - string memory errorMessage - ) internal returns (bytes memory) { - return functionCallWithValue(target, data, 0, errorMessage); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], - * but also transferring `value` wei to `target`. - * - * Requirements: - * - * - the calling contract must have an ETH balance of at least `value`. - * - the called Solidity function must be `payable`. - * - * _Available since v3.1._ - */ - function functionCallWithValue( - address target, - bytes memory data, - uint256 value - ) internal returns (bytes memory) { - return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); - } - - /** - * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but - * with `errorMessage` as a fallback revert reason when `target` reverts. - * - * _Available since v3.1._ - */ - function functionCallWithValue( - address target, - bytes memory data, - uint256 value, - string memory errorMessage - ) internal returns (bytes memory) { - require(address(this).balance >= value, "Address: insufficient balance for call"); - require(isContract(target), "Address: call to non-contract"); - - (bool success, bytes memory returndata) = target.call{value: value}(data); - return verifyCallResult(success, returndata, errorMessage); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], - * but performing a static call. - * - * _Available since v3.3._ - */ - function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { - return functionStaticCall(target, data, "Address: low-level static call failed"); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], - * but performing a static call. - * - * _Available since v3.3._ - */ - function functionStaticCall( - address target, - bytes memory data, - string memory errorMessage - ) internal view returns (bytes memory) { - require(isContract(target), "Address: static call to non-contract"); - - (bool success, bytes memory returndata) = target.staticcall(data); - return verifyCallResult(success, returndata, errorMessage); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], - * but performing a delegate call. - * - * _Available since v3.4._ - */ - function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { - return functionDelegateCall(target, data, "Address: low-level delegate call failed"); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], - * but performing a delegate call. - * - * _Available since v3.4._ - */ - function functionDelegateCall( - address target, - bytes memory data, - string memory errorMessage - ) internal returns (bytes memory) { - require(isContract(target), "Address: delegate call to non-contract"); - - (bool success, bytes memory returndata) = target.delegatecall(data); - return verifyCallResult(success, returndata, errorMessage); - } - - /** - * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the - * revert reason using the provided one. - * - * _Available since v4.3._ - */ - function verifyCallResult( - bool success, - bytes memory returndata, - string memory errorMessage - ) internal pure returns (bytes memory) { - if (success) { - return returndata; - } else { - // Look for revert reason and bubble it up if present - if (returndata.length > 0) { - // The easiest way to bubble the revert reason is using memory via assembly - - assembly { - let returndata_size := mload(returndata) - revert(add(32, returndata), returndata_size) - } - } else { - revert(errorMessage); - } - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Arrays.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Arrays.sol deleted file mode 100644 index 5f06e3049..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Arrays.sol +++ /dev/null @@ -1,48 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/Arrays.sol) - -pragma solidity ^0.8.0; - -import "./math/Math.sol"; - -/** - * @dev Collection of functions related to array types. - */ -library Arrays { - /** - * @dev Searches a sorted `array` and returns the first index that contains - * a value greater or equal to `element`. If no such index exists (i.e. all - * values in the array are strictly less than `element`), the array length is - * returned. Time complexity O(log n). - * - * `array` is expected to be sorted in ascending order, and to contain no - * repeated elements. - */ - function findUpperBound(uint256[] storage array, uint256 element) internal view returns (uint256) { - if (array.length == 0) { - return 0; - } - - uint256 low = 0; - uint256 high = array.length; - - while (low < high) { - uint256 mid = Math.average(low, high); - - // Note that mid will always be strictly less than high (i.e. it will be a valid array index) - // because Math.average rounds down (it does integer division with truncation). - if (array[mid] > element) { - high = mid; - } else { - low = mid + 1; - } - } - - // At this point `low` is the exclusive upper bound. We will return the inclusive upper bound. - if (low > 0 && array[low - 1] == element) { - return low - 1; - } else { - return low; - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Context.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Context.sol deleted file mode 100644 index 8a402a141..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Context.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/Context.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Provides information about the current execution context, including the - * sender of the transaction and its data. While these are generally available - * via msg.sender and msg.data, they should not be accessed in such a direct - * manner, since when dealing with meta-transactions the account sending and - * paying for execution may not be the actual sender (as far as an application - * is concerned). - * - * This contract is only required for intermediate, library-like contracts. - */ -abstract contract Context { - function _msgSender() internal view virtual returns (address) { - return msg.sender; - } - - function _msgData() internal view virtual returns (bytes calldata) { - return msg.data; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Counters.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Counters.sol deleted file mode 100644 index b2538929e..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Counters.sol +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/Counters.sol) - -pragma solidity ^0.8.0; - -/** - * @title Counters - * @author Matt Condon (@shrugs) - * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number - * of elements in a mapping, issuing ERC721 ids, or counting request ids. - * - * Include with `using Counters for Counters.Counter;` - */ -library Counters { - struct Counter { - // This variable should never be directly accessed by users of the library: interactions must be restricted to - // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add - // this feature: see https://github.com/ethereum/solidity/issues/4637 - uint256 _value; // default: 0 - } - - function current(Counter storage counter) internal view returns (uint256) { - return counter._value; - } - - function increment(Counter storage counter) internal { - unchecked { - counter._value += 1; - } - } - - function decrement(Counter storage counter) internal { - uint256 value = counter._value; - require(value > 0, "Counter: decrement overflow"); - unchecked { - counter._value = value - 1; - } - } - - function reset(Counter storage counter) internal { - counter._value = 0; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Create2.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Create2.sol deleted file mode 100644 index b65b63737..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Create2.sol +++ /dev/null @@ -1,65 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/Create2.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Helper to make usage of the `CREATE2` EVM opcode easier and safer. - * `CREATE2` can be used to compute in advance the address where a smart - * contract will be deployed, which allows for interesting new mechanisms known - * as 'counterfactual interactions'. - * - * See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more - * information. - */ -library Create2 { - /** - * @dev Deploys a contract using `CREATE2`. The address where the contract - * will be deployed can be known in advance via {computeAddress}. - * - * The bytecode for a contract can be obtained from Solidity with - * `type(contractName).creationCode`. - * - * Requirements: - * - * - `bytecode` must not be empty. - * - `salt` must have not been used for `bytecode` already. - * - the factory must have a balance of at least `amount`. - * - if `amount` is non-zero, `bytecode` must have a `payable` constructor. - */ - function deploy( - uint256 amount, - bytes32 salt, - bytes memory bytecode - ) internal returns (address) { - address addr; - require(address(this).balance >= amount, "Create2: insufficient balance"); - require(bytecode.length != 0, "Create2: bytecode length is zero"); - assembly { - addr := create2(amount, add(bytecode, 0x20), mload(bytecode), salt) - } - require(addr != address(0), "Create2: Failed on deploy"); - return addr; - } - - /** - * @dev Returns the address where a contract will be stored if deployed via {deploy}. Any change in the - * `bytecodeHash` or `salt` will result in a new destination address. - */ - function computeAddress(bytes32 salt, bytes32 bytecodeHash) internal view returns (address) { - return computeAddress(salt, bytecodeHash, address(this)); - } - - /** - * @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at - * `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}. - */ - function computeAddress( - bytes32 salt, - bytes32 bytecodeHash, - address deployer - ) internal pure returns (address) { - bytes32 _data = keccak256(abi.encodePacked(bytes1(0xff), deployer, salt, bytecodeHash)); - return address(uint160(uint256(_data))); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Multicall.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Multicall.sol deleted file mode 100644 index 2911348ab..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Multicall.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/Multicall.sol) - -pragma solidity ^0.8.0; - -import "./Address.sol"; - -/** - * @dev Provides a function to batch together multiple calls in a single external call. - * - * _Available since v4.1._ - */ -abstract contract Multicall { - /** - * @dev Receives and executes a batch of function calls on this contract. - */ - function multicall(bytes[] calldata data) external returns (bytes[] memory results) { - results = new bytes[](data.length); - for (uint256 i = 0; i < data.length; i++) { - results[i] = Address.functionDelegateCall(address(this), data[i]); - } - return results; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol deleted file mode 100644 index b33a91efb..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol +++ /dev/null @@ -1,84 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/StorageSlot.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Library for reading and writing primitive types to specific storage slots. - * - * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. - * This library helps with reading and writing to such slots without the need for inline assembly. - * - * The functions in this library return Slot structs that contain a `value` member that can be used to read or write. - * - * Example usage to set ERC1967 implementation slot: - * ``` - * contract ERC1967 { - * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; - * - * function _getImplementation() internal view returns (address) { - * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; - * } - * - * function _setImplementation(address newImplementation) internal { - * require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract"); - * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; - * } - * } - * ``` - * - * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._ - */ -library StorageSlot { - struct AddressSlot { - address value; - } - - struct BooleanSlot { - bool value; - } - - struct Bytes32Slot { - bytes32 value; - } - - struct Uint256Slot { - uint256 value; - } - - /** - * @dev Returns an `AddressSlot` with member `value` located at `slot`. - */ - function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) { - assembly { - r.slot := slot - } - } - - /** - * @dev Returns an `BooleanSlot` with member `value` located at `slot`. - */ - function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) { - assembly { - r.slot := slot - } - } - - /** - * @dev Returns an `Bytes32Slot` with member `value` located at `slot`. - */ - function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) { - assembly { - r.slot := slot - } - } - - /** - * @dev Returns an `Uint256Slot` with member `value` located at `slot`. - */ - function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) { - assembly { - r.slot := slot - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Strings.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Strings.sol deleted file mode 100644 index 0cf6e8b27..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Strings.sol +++ /dev/null @@ -1,67 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/Strings.sol) - -pragma solidity ^0.8.0; - -/** - * @dev String operations. - */ -library Strings { - bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; - - /** - * @dev Converts a `uint256` to its ASCII `string` decimal representation. - */ - function toString(uint256 value) internal pure returns (string memory) { - // Inspired by OraclizeAPI's implementation - MIT licence - // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol - - if (value == 0) { - return "0"; - } - uint256 temp = value; - uint256 digits; - while (temp != 0) { - digits++; - temp /= 10; - } - bytes memory buffer = new bytes(digits); - while (value != 0) { - digits -= 1; - buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); - value /= 10; - } - return string(buffer); - } - - /** - * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. - */ - function toHexString(uint256 value) internal pure returns (string memory) { - if (value == 0) { - return "0x00"; - } - uint256 temp = value; - uint256 length = 0; - while (temp != 0) { - length++; - temp >>= 8; - } - return toHexString(value, length); - } - - /** - * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. - */ - function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { - bytes memory buffer = new bytes(2 * length + 2); - buffer[0] = "0"; - buffer[1] = "x"; - for (uint256 i = 2 * length + 1; i > 1; --i) { - buffer[i] = _HEX_SYMBOLS[value & 0xf]; - value >>= 4; - } - require(value == 0, "Strings: hex length insufficient"); - return string(buffer); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Timers.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Timers.sol deleted file mode 100644 index 666abe58e..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/Timers.sol +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/Timers.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Tooling for timepoints, timers and delays - */ -library Timers { - struct Timestamp { - uint64 _deadline; - } - - function getDeadline(Timestamp memory timer) internal pure returns (uint64) { - return timer._deadline; - } - - function setDeadline(Timestamp storage timer, uint64 timestamp) internal { - timer._deadline = timestamp; - } - - function reset(Timestamp storage timer) internal { - timer._deadline = 0; - } - - function isUnset(Timestamp memory timer) internal pure returns (bool) { - return timer._deadline == 0; - } - - function isStarted(Timestamp memory timer) internal pure returns (bool) { - return timer._deadline > 0; - } - - function isPending(Timestamp memory timer) internal view returns (bool) { - return timer._deadline > block.timestamp; - } - - function isExpired(Timestamp memory timer) internal view returns (bool) { - return isStarted(timer) && timer._deadline <= block.timestamp; - } - - struct BlockNumber { - uint64 _deadline; - } - - function getDeadline(BlockNumber memory timer) internal pure returns (uint64) { - return timer._deadline; - } - - function setDeadline(BlockNumber storage timer, uint64 timestamp) internal { - timer._deadline = timestamp; - } - - function reset(BlockNumber storage timer) internal { - timer._deadline = 0; - } - - function isUnset(BlockNumber memory timer) internal pure returns (bool) { - return timer._deadline == 0; - } - - function isStarted(BlockNumber memory timer) internal pure returns (bool) { - return timer._deadline > 0; - } - - function isPending(BlockNumber memory timer) internal view returns (bool) { - return timer._deadline > block.number; - } - - function isExpired(BlockNumber memory timer) internal view returns (bool) { - return isStarted(timer) && timer._deadline <= block.number; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol deleted file mode 100644 index 7334d2448..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol +++ /dev/null @@ -1,234 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/cryptography/ECDSA.sol) - -pragma solidity ^0.8.0; - -import "../Strings.sol"; - -/** - * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations. - * - * These functions can be used to verify that a message was signed by the holder - * of the private keys of a given address. - */ -library ECDSA { - enum RecoverError { - NoError, - InvalidSignature, - InvalidSignatureLength, - InvalidSignatureS, - InvalidSignatureV - } - - function _throwError(RecoverError error) private pure { - if (error == RecoverError.NoError) { - return; // no error: do nothing - } else if (error == RecoverError.InvalidSignature) { - revert("ECDSA: invalid signature"); - } else if (error == RecoverError.InvalidSignatureLength) { - revert("ECDSA: invalid signature length"); - } else if (error == RecoverError.InvalidSignatureS) { - revert("ECDSA: invalid signature 's' value"); - } else if (error == RecoverError.InvalidSignatureV) { - revert("ECDSA: invalid signature 'v' value"); - } - } - - /** - * @dev Returns the address that signed a hashed message (`hash`) with - * `signature` or error string. This address can then be used for verification purposes. - * - * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures: - * this function rejects them by requiring the `s` value to be in the lower - * half order, and the `v` value to be either 27 or 28. - * - * IMPORTANT: `hash` _must_ be the result of a hash operation for the - * verification to be secure: it is possible to craft signatures that - * recover to arbitrary addresses for non-hashed data. A safe way to ensure - * this is by receiving a hash of the original message (which may otherwise - * be too long), and then calling {toEthSignedMessageHash} on it. - * - * Documentation for signature generation: - * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js] - * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers] - * - * _Available since v4.3._ - */ - function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) { - // Check the signature length - // - case 65: r,s,v signature (standard) - // - case 64: r,vs signature (cf https://eips.ethereum.org/EIPS/eip-2098) _Available since v4.1._ - if (signature.length == 65) { - bytes32 r; - bytes32 s; - uint8 v; - // ecrecover takes the signature parameters, and the only way to get them - // currently is to use assembly. - assembly { - r := mload(add(signature, 0x20)) - s := mload(add(signature, 0x40)) - v := byte(0, mload(add(signature, 0x60))) - } - return tryRecover(hash, v, r, s); - } else if (signature.length == 64) { - bytes32 r; - bytes32 vs; - // ecrecover takes the signature parameters, and the only way to get them - // currently is to use assembly. - assembly { - r := mload(add(signature, 0x20)) - vs := mload(add(signature, 0x40)) - } - return tryRecover(hash, r, vs); - } else { - return (address(0), RecoverError.InvalidSignatureLength); - } - } - - /** - * @dev Returns the address that signed a hashed message (`hash`) with - * `signature`. This address can then be used for verification purposes. - * - * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures: - * this function rejects them by requiring the `s` value to be in the lower - * half order, and the `v` value to be either 27 or 28. - * - * IMPORTANT: `hash` _must_ be the result of a hash operation for the - * verification to be secure: it is possible to craft signatures that - * recover to arbitrary addresses for non-hashed data. A safe way to ensure - * this is by receiving a hash of the original message (which may otherwise - * be too long), and then calling {toEthSignedMessageHash} on it. - */ - function recover(bytes32 hash, bytes memory signature) internal pure returns (address) { - (address recovered, RecoverError error) = tryRecover(hash, signature); - _throwError(error); - return recovered; - } - - /** - * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately. - * - * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures] - * - * _Available since v4.3._ - */ - function tryRecover( - bytes32 hash, - bytes32 r, - bytes32 vs - ) internal pure returns (address, RecoverError) { - bytes32 s; - uint8 v; - assembly { - s := and(vs, 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - v := add(shr(255, vs), 27) - } - return tryRecover(hash, v, r, s); - } - - /** - * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately. - * - * _Available since v4.2._ - */ - function recover( - bytes32 hash, - bytes32 r, - bytes32 vs - ) internal pure returns (address) { - (address recovered, RecoverError error) = tryRecover(hash, r, vs); - _throwError(error); - return recovered; - } - - /** - * @dev Overload of {ECDSA-tryRecover} that receives the `v`, - * `r` and `s` signature fields separately. - * - * _Available since v4.3._ - */ - function tryRecover( - bytes32 hash, - uint8 v, - bytes32 r, - bytes32 s - ) internal pure returns (address, RecoverError) { - // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature - // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines - // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most - // signatures from current libraries generate a unique signature with an s-value in the lower half order. - // - // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value - // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or - // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept - // these malleable signatures as well. - if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) { - return (address(0), RecoverError.InvalidSignatureS); - } - if (v != 27 && v != 28) { - return (address(0), RecoverError.InvalidSignatureV); - } - - // If the signature is valid (and not malleable), return the signer address - address signer = ecrecover(hash, v, r, s); - if (signer == address(0)) { - return (address(0), RecoverError.InvalidSignature); - } - - return (signer, RecoverError.NoError); - } - - /** - * @dev Overload of {ECDSA-recover} that receives the `v`, - * `r` and `s` signature fields separately. - */ - function recover( - bytes32 hash, - uint8 v, - bytes32 r, - bytes32 s - ) internal pure returns (address) { - (address recovered, RecoverError error) = tryRecover(hash, v, r, s); - _throwError(error); - return recovered; - } - - /** - * @dev Returns an Ethereum Signed Message, created from a `hash`. This - * produces hash corresponding to the one signed with the - * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] - * JSON-RPC method as part of EIP-191. - * - * See {recover}. - */ - function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) { - // 32 is the length in bytes of hash, - // enforced by the type signature above - return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); - } - - /** - * @dev Returns an Ethereum Signed Message, created from `s`. This - * produces hash corresponding to the one signed with the - * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] - * JSON-RPC method as part of EIP-191. - * - * See {recover}. - */ - function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32) { - return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n", Strings.toString(s.length), s)); - } - - /** - * @dev Returns an Ethereum Signed Typed Data, created from a - * `domainSeparator` and a `structHash`. This produces hash corresponding - * to the one signed with the - * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] - * JSON-RPC method as part of EIP-712. - * - * See {recover}. - */ - function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) { - return keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol deleted file mode 100644 index 4092d66b9..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol +++ /dev/null @@ -1,52 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/cryptography/MerkleProof.sol) - -pragma solidity ^0.8.0; - -/** - * @dev These functions deal with verification of Merkle Trees proofs. - * - * The proofs can be generated using the JavaScript library - * https://github.com/miguelmota/merkletreejs[merkletreejs]. - * Note: the hashing algorithm should be keccak256 and pair sorting should be enabled. - * - * See `test/utils/cryptography/MerkleProof.test.js` for some examples. - */ -library MerkleProof { - /** - * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree - * defined by `root`. For this, a `proof` must be provided, containing - * sibling hashes on the branch from the leaf to the root of the tree. Each - * pair of leaves and each pair of pre-images are assumed to be sorted. - */ - function verify( - bytes32[] memory proof, - bytes32 root, - bytes32 leaf - ) internal pure returns (bool) { - return processProof(proof, leaf) == root; - } - - /** - * @dev Returns the rebuilt hash obtained by traversing a Merklee tree up - * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt - * hash matches the root of the tree. When processing the proof, the pairs - * of leafs & pre-images are assumed to be sorted. - * - * _Available since v4.4._ - */ - function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) { - bytes32 computedHash = leaf; - for (uint256 i = 0; i < proof.length; i++) { - bytes32 proofElement = proof[i]; - if (computedHash <= proofElement) { - // Hash(current computed hash + current element of the proof) - computedHash = keccak256(abi.encodePacked(computedHash, proofElement)); - } else { - // Hash(current element of the proof + current computed hash) - computedHash = keccak256(abi.encodePacked(proofElement, computedHash)); - } - } - return computedHash; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol deleted file mode 100644 index 5d9ff3550..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol +++ /dev/null @@ -1,36 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/cryptography/SignatureChecker.sol) - -pragma solidity ^0.8.0; - -import "./ECDSA.sol"; -import "../Address.sol"; -import "../../interfaces/IERC1271.sol"; - -/** - * @dev Signature verification helper: Provide a single mechanism to verify both private-key (EOA) ECDSA signature and - * ERC1271 contract signatures. Using this instead of ECDSA.recover in your contract will make them compatible with - * smart contract wallets such as Argent and Gnosis. - * - * Note: unlike ECDSA signatures, contract signature's are revocable, and the outcome of this function can thus change - * through time. It could return true at block N and false at block N+1 (or the opposite). - * - * _Available since v4.1._ - */ -library SignatureChecker { - function isValidSignatureNow( - address signer, - bytes32 hash, - bytes memory signature - ) internal view returns (bool) { - (address recovered, ECDSA.RecoverError error) = ECDSA.tryRecover(hash, signature); - if (error == ECDSA.RecoverError.NoError && recovered == signer) { - return true; - } - - (bool success, bytes memory result) = signer.staticcall( - abi.encodeWithSelector(IERC1271.isValidSignature.selector, hash, signature) - ); - return (success && result.length == 32 && abi.decode(result, (bytes4)) == IERC1271.isValidSignature.selector); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol deleted file mode 100644 index 68c96378b..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol +++ /dev/null @@ -1,104 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/cryptography/draft-EIP712.sol) - -pragma solidity ^0.8.0; - -import "./ECDSA.sol"; - -/** - * @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. - * - * The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, - * thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding - * they need in their contracts using a combination of `abi.encode` and `keccak256`. - * - * This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding - * scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA - * ({_hashTypedDataV4}). - * - * The implementation of the domain separator was designed to be as efficient as possible while still properly updating - * the chain id to protect against replay attacks on an eventual fork of the chain. - * - * NOTE: This contract implements the version of the encoding known as "v4", as implemented by the JSON RPC method - * https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. - * - * _Available since v3.4._ - */ -abstract contract EIP712 { - /* solhint-disable var-name-mixedcase */ - // Cache the domain separator as an immutable value, but also store the chain id that it corresponds to, in order to - // invalidate the cached domain separator if the chain id changes. - bytes32 private immutable _CACHED_DOMAIN_SEPARATOR; - uint256 private immutable _CACHED_CHAIN_ID; - address private immutable _CACHED_THIS; - - bytes32 private immutable _HASHED_NAME; - bytes32 private immutable _HASHED_VERSION; - bytes32 private immutable _TYPE_HASH; - - /* solhint-enable var-name-mixedcase */ - - /** - * @dev Initializes the domain separator and parameter caches. - * - * The meaning of `name` and `version` is specified in - * https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - * - * - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - * - `version`: the current major version of the signing domain. - * - * NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart - * contract upgrade]. - */ - constructor(string memory name, string memory version) { - bytes32 hashedName = keccak256(bytes(name)); - bytes32 hashedVersion = keccak256(bytes(version)); - bytes32 typeHash = keccak256( - "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" - ); - _HASHED_NAME = hashedName; - _HASHED_VERSION = hashedVersion; - _CACHED_CHAIN_ID = block.chainid; - _CACHED_DOMAIN_SEPARATOR = _buildDomainSeparator(typeHash, hashedName, hashedVersion); - _CACHED_THIS = address(this); - _TYPE_HASH = typeHash; - } - - /** - * @dev Returns the domain separator for the current chain. - */ - function _domainSeparatorV4() internal view returns (bytes32) { - if (address(this) == _CACHED_THIS && block.chainid == _CACHED_CHAIN_ID) { - return _CACHED_DOMAIN_SEPARATOR; - } else { - return _buildDomainSeparator(_TYPE_HASH, _HASHED_NAME, _HASHED_VERSION); - } - } - - function _buildDomainSeparator( - bytes32 typeHash, - bytes32 nameHash, - bytes32 versionHash - ) private view returns (bytes32) { - return keccak256(abi.encode(typeHash, nameHash, versionHash, block.chainid, address(this))); - } - - /** - * @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this - * function returns the hash of the fully encoded EIP712 message for this domain. - * - * This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example: - * - * ```solidity - * bytes32 digest = _hashTypedDataV4(keccak256(abi.encode( - * keccak256("Mail(address to,string contents)"), - * mailTo, - * keccak256(bytes(mailContents)) - * ))); - * address signer = ECDSA.recover(digest, signature); - * ``` - */ - function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) { - return ECDSA.toTypedDataHash(_domainSeparatorV4(), structHash); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/ConditionalEscrow.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/ConditionalEscrow.sol deleted file mode 100644 index a9bc3b165..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/ConditionalEscrow.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/escrow/ConditionalEscrow.sol) - -pragma solidity ^0.8.0; - -import "./Escrow.sol"; - -/** - * @title ConditionalEscrow - * @dev Base abstract escrow to only allow withdrawal if a condition is met. - * @dev Intended usage: See {Escrow}. Same usage guidelines apply here. - */ -abstract contract ConditionalEscrow is Escrow { - /** - * @dev Returns whether an address is allowed to withdraw their funds. To be - * implemented by derived contracts. - * @param payee The destination address of the funds. - */ - function withdrawalAllowed(address payee) public view virtual returns (bool); - - function withdraw(address payable payee) public virtual override { - require(withdrawalAllowed(payee), "ConditionalEscrow: payee is not allowed to withdraw"); - super.withdraw(payee); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/Escrow.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/Escrow.sol deleted file mode 100644 index e42a4fe67..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/Escrow.sol +++ /dev/null @@ -1,63 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/escrow/Escrow.sol) - -pragma solidity ^0.8.0; - -import "../../access/Ownable.sol"; -import "../Address.sol"; - -/** - * @title Escrow - * @dev Base escrow contract, holds funds designated for a payee until they - * withdraw them. - * - * Intended usage: This contract (and derived escrow contracts) should be a - * standalone contract, that only interacts with the contract that instantiated - * it. That way, it is guaranteed that all Ether will be handled according to - * the `Escrow` rules, and there is no need to check for payable functions or - * transfers in the inheritance tree. The contract that uses the escrow as its - * payment method should be its owner, and provide public methods redirecting - * to the escrow's deposit and withdraw. - */ -contract Escrow is Ownable { - using Address for address payable; - - event Deposited(address indexed payee, uint256 weiAmount); - event Withdrawn(address indexed payee, uint256 weiAmount); - - mapping(address => uint256) private _deposits; - - function depositsOf(address payee) public view returns (uint256) { - return _deposits[payee]; - } - - /** - * @dev Stores the sent amount as credit to be withdrawn. - * @param payee The destination address of the funds. - */ - function deposit(address payee) public payable virtual onlyOwner { - uint256 amount = msg.value; - _deposits[payee] += amount; - emit Deposited(payee, amount); - } - - /** - * @dev Withdraw accumulated balance for a payee, forwarding all gas to the - * recipient. - * - * WARNING: Forwarding all gas opens the door to reentrancy vulnerabilities. - * Make sure you trust the recipient, or are either following the - * checks-effects-interactions pattern or using {ReentrancyGuard}. - * - * @param payee The address whose funds will be withdrawn and transferred to. - */ - function withdraw(address payable payee) public virtual onlyOwner { - uint256 payment = _deposits[payee]; - - _deposits[payee] = 0; - - payee.sendValue(payment); - - emit Withdrawn(payee, payment); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/RefundEscrow.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/RefundEscrow.sol deleted file mode 100644 index 8d182a297..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/escrow/RefundEscrow.sol +++ /dev/null @@ -1,100 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/escrow/RefundEscrow.sol) - -pragma solidity ^0.8.0; - -import "./ConditionalEscrow.sol"; - -/** - * @title RefundEscrow - * @dev Escrow that holds funds for a beneficiary, deposited from multiple - * parties. - * @dev Intended usage: See {Escrow}. Same usage guidelines apply here. - * @dev The owner account (that is, the contract that instantiates this - * contract) may deposit, close the deposit period, and allow for either - * withdrawal by the beneficiary, or refunds to the depositors. All interactions - * with `RefundEscrow` will be made through the owner contract. - */ -contract RefundEscrow is ConditionalEscrow { - using Address for address payable; - - enum State { - Active, - Refunding, - Closed - } - - event RefundsClosed(); - event RefundsEnabled(); - - State private _state; - address payable private immutable _beneficiary; - - /** - * @dev Constructor. - * @param beneficiary_ The beneficiary of the deposits. - */ - constructor(address payable beneficiary_) { - require(beneficiary_ != address(0), "RefundEscrow: beneficiary is the zero address"); - _beneficiary = beneficiary_; - _state = State.Active; - } - - /** - * @return The current state of the escrow. - */ - function state() public view virtual returns (State) { - return _state; - } - - /** - * @return The beneficiary of the escrow. - */ - function beneficiary() public view virtual returns (address payable) { - return _beneficiary; - } - - /** - * @dev Stores funds that may later be refunded. - * @param refundee The address funds will be sent to if a refund occurs. - */ - function deposit(address refundee) public payable virtual override { - require(state() == State.Active, "RefundEscrow: can only deposit while active"); - super.deposit(refundee); - } - - /** - * @dev Allows for the beneficiary to withdraw their funds, rejecting - * further deposits. - */ - function close() public virtual onlyOwner { - require(state() == State.Active, "RefundEscrow: can only close while active"); - _state = State.Closed; - emit RefundsClosed(); - } - - /** - * @dev Allows for refunds to take place, rejecting further deposits. - */ - function enableRefunds() public virtual onlyOwner { - require(state() == State.Active, "RefundEscrow: can only enable refunds while active"); - _state = State.Refunding; - emit RefundsEnabled(); - } - - /** - * @dev Withdraws the beneficiary's funds. - */ - function beneficiaryWithdraw() public virtual { - require(state() == State.Closed, "RefundEscrow: beneficiary can only withdraw while closed"); - beneficiary().sendValue(address(this).balance); - } - - /** - * @dev Returns whether refundees can withdraw their deposits (be refunded). The overridden function receives a - * 'payee' argument, but we ignore it here since the condition is global, not per-payee. - */ - function withdrawalAllowed(address) public view override returns (bool) { - return state() == State.Refunding; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol deleted file mode 100644 index 542d0b07d..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol +++ /dev/null @@ -1,29 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/introspection/ERC165.sol) - -pragma solidity ^0.8.0; - -import "./IERC165.sol"; - -/** - * @dev Implementation of the {IERC165} interface. - * - * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check - * for the additional interface id that will be supported. For example: - * - * ```solidity - * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { - * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); - * } - * ``` - * - * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. - */ -abstract contract ERC165 is IERC165 { - /** - * @dev See {IERC165-supportsInterface}. - */ - function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { - return interfaceId == type(IERC165).interfaceId; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol deleted file mode 100644 index b24aeba52..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol +++ /dev/null @@ -1,113 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/introspection/ERC165Checker.sol) - -pragma solidity ^0.8.0; - -import "./IERC165.sol"; - -/** - * @dev Library used to query support of an interface declared via {IERC165}. - * - * Note that these functions return the actual result of the query: they do not - * `revert` if an interface is not supported. It is up to the caller to decide - * what to do in these cases. - */ -library ERC165Checker { - // As per the EIP-165 spec, no interface should ever match 0xffffffff - bytes4 private constant _INTERFACE_ID_INVALID = 0xffffffff; - - /** - * @dev Returns true if `account` supports the {IERC165} interface, - */ - function supportsERC165(address account) internal view returns (bool) { - // Any contract that implements ERC165 must explicitly indicate support of - // InterfaceId_ERC165 and explicitly indicate non-support of InterfaceId_Invalid - return - _supportsERC165Interface(account, type(IERC165).interfaceId) && - !_supportsERC165Interface(account, _INTERFACE_ID_INVALID); - } - - /** - * @dev Returns true if `account` supports the interface defined by - * `interfaceId`. Support for {IERC165} itself is queried automatically. - * - * See {IERC165-supportsInterface}. - */ - function supportsInterface(address account, bytes4 interfaceId) internal view returns (bool) { - // query support of both ERC165 as per the spec and support of _interfaceId - return supportsERC165(account) && _supportsERC165Interface(account, interfaceId); - } - - /** - * @dev Returns a boolean array where each value corresponds to the - * interfaces passed in and whether they're supported or not. This allows - * you to batch check interfaces for a contract where your expectation - * is that some interfaces may not be supported. - * - * See {IERC165-supportsInterface}. - * - * _Available since v3.4._ - */ - function getSupportedInterfaces(address account, bytes4[] memory interfaceIds) - internal - view - returns (bool[] memory) - { - // an array of booleans corresponding to interfaceIds and whether they're supported or not - bool[] memory interfaceIdsSupported = new bool[](interfaceIds.length); - - // query support of ERC165 itself - if (supportsERC165(account)) { - // query support of each interface in interfaceIds - for (uint256 i = 0; i < interfaceIds.length; i++) { - interfaceIdsSupported[i] = _supportsERC165Interface(account, interfaceIds[i]); - } - } - - return interfaceIdsSupported; - } - - /** - * @dev Returns true if `account` supports all the interfaces defined in - * `interfaceIds`. Support for {IERC165} itself is queried automatically. - * - * Batch-querying can lead to gas savings by skipping repeated checks for - * {IERC165} support. - * - * See {IERC165-supportsInterface}. - */ - function supportsAllInterfaces(address account, bytes4[] memory interfaceIds) internal view returns (bool) { - // query support of ERC165 itself - if (!supportsERC165(account)) { - return false; - } - - // query support of each interface in _interfaceIds - for (uint256 i = 0; i < interfaceIds.length; i++) { - if (!_supportsERC165Interface(account, interfaceIds[i])) { - return false; - } - } - - // all interfaces supported - return true; - } - - /** - * @notice Query if a contract implements an interface, does not check ERC165 support - * @param account The address of the contract to query for support of an interface - * @param interfaceId The interface identifier, as specified in ERC-165 - * @return true if the contract at account indicates support of the interface with - * identifier interfaceId, false otherwise - * @dev Assumes that account contains a contract that supports ERC165, otherwise - * the behavior of this method is undefined. This precondition can be checked - * with {supportsERC165}. - * Interface identification is specified in ERC-165. - */ - function _supportsERC165Interface(address account, bytes4 interfaceId) private view returns (bool) { - bytes memory encodedParams = abi.encodeWithSelector(IERC165.supportsInterface.selector, interfaceId); - (bool success, bytes memory result) = account.staticcall{gas: 30000}(encodedParams); - if (result.length < 32) return false; - return success && abi.decode(result, (bool)); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Storage.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Storage.sol deleted file mode 100644 index 5b7c8d3d0..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC165Storage.sol +++ /dev/null @@ -1,42 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/introspection/ERC165Storage.sol) - -pragma solidity ^0.8.0; - -import "./ERC165.sol"; - -/** - * @dev Storage based implementation of the {IERC165} interface. - * - * Contracts may inherit from this and call {_registerInterface} to declare - * their support of an interface. - */ -abstract contract ERC165Storage is ERC165 { - /** - * @dev Mapping of interface ids to whether or not it's supported. - */ - mapping(bytes4 => bool) private _supportedInterfaces; - - /** - * @dev See {IERC165-supportsInterface}. - */ - function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { - return super.supportsInterface(interfaceId) || _supportedInterfaces[interfaceId]; - } - - /** - * @dev Registers the contract as an implementer of the interface defined by - * `interfaceId`. Support of the actual ERC165 interface is automatic and - * registering its interface id is not required. - * - * See {IERC165-supportsInterface}. - * - * Requirements: - * - * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`). - */ - function _registerInterface(bytes4 interfaceId) internal virtual { - require(interfaceId != 0xffffffff, "ERC165: invalid interface id"); - _supportedInterfaces[interfaceId] = true; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC1820Implementer.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC1820Implementer.sol deleted file mode 100644 index 50a4f1fc4..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/ERC1820Implementer.sol +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/introspection/ERC1820Implementer.sol) - -pragma solidity ^0.8.0; - -import "./IERC1820Implementer.sol"; - -/** - * @dev Implementation of the {IERC1820Implementer} interface. - * - * Contracts may inherit from this and call {_registerInterfaceForAddress} to - * declare their willingness to be implementers. - * {IERC1820Registry-setInterfaceImplementer} should then be called for the - * registration to be complete. - */ -contract ERC1820Implementer is IERC1820Implementer { - bytes32 private constant _ERC1820_ACCEPT_MAGIC = keccak256("ERC1820_ACCEPT_MAGIC"); - - mapping(bytes32 => mapping(address => bool)) private _supportedInterfaces; - - /** - * @dev See {IERC1820Implementer-canImplementInterfaceForAddress}. - */ - function canImplementInterfaceForAddress(bytes32 interfaceHash, address account) - public - view - virtual - override - returns (bytes32) - { - return _supportedInterfaces[interfaceHash][account] ? _ERC1820_ACCEPT_MAGIC : bytes32(0x00); - } - - /** - * @dev Declares the contract as willing to be an implementer of - * `interfaceHash` for `account`. - * - * See {IERC1820Registry-setInterfaceImplementer} and - * {IERC1820Registry-interfaceHash}. - */ - function _registerInterfaceForAddress(bytes32 interfaceHash, address account) internal virtual { - _supportedInterfaces[interfaceHash][account] = true; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol deleted file mode 100644 index 40cf6d29d..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/introspection/IERC165.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Interface of the ERC165 standard, as defined in the - * https://eips.ethereum.org/EIPS/eip-165[EIP]. - * - * Implementers can declare support of contract interfaces, which can then be - * queried by others ({ERC165Checker}). - * - * For an implementation, see {ERC165}. - */ -interface IERC165 { - /** - * @dev Returns true if this contract implements the interface defined by - * `interfaceId`. See the corresponding - * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] - * to learn more about how these ids are created. - * - * This function call must use less than 30 000 gas. - */ - function supportsInterface(bytes4 interfaceId) external view returns (bool); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Implementer.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Implementer.sol deleted file mode 100644 index 1e474ddb6..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Implementer.sol +++ /dev/null @@ -1,20 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/introspection/IERC1820Implementer.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Interface for an ERC1820 implementer, as defined in the - * https://eips.ethereum.org/EIPS/eip-1820#interface-implementation-erc1820implementerinterface[EIP]. - * Used by contracts that will be registered as implementers in the - * {IERC1820Registry}. - */ -interface IERC1820Implementer { - /** - * @dev Returns a special value (`ERC1820_ACCEPT_MAGIC`) if this contract - * implements `interfaceHash` for `account`. - * - * See {IERC1820Registry-setInterfaceImplementer}. - */ - function canImplementInterfaceForAddress(bytes32 interfaceHash, address account) external view returns (bytes32); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol deleted file mode 100644 index 0e2a9efed..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol +++ /dev/null @@ -1,116 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/introspection/IERC1820Registry.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Interface of the global ERC1820 Registry, as defined in the - * https://eips.ethereum.org/EIPS/eip-1820[EIP]. Accounts may register - * implementers for interfaces in this registry, as well as query support. - * - * Implementers may be shared by multiple accounts, and can also implement more - * than a single interface for each account. Contracts can implement interfaces - * for themselves, but externally-owned accounts (EOA) must delegate this to a - * contract. - * - * {IERC165} interfaces can also be queried via the registry. - * - * For an in-depth explanation and source code analysis, see the EIP text. - */ -interface IERC1820Registry { - /** - * @dev Sets `newManager` as the manager for `account`. A manager of an - * account is able to set interface implementers for it. - * - * By default, each account is its own manager. Passing a value of `0x0` in - * `newManager` will reset the manager to this initial state. - * - * Emits a {ManagerChanged} event. - * - * Requirements: - * - * - the caller must be the current manager for `account`. - */ - function setManager(address account, address newManager) external; - - /** - * @dev Returns the manager for `account`. - * - * See {setManager}. - */ - function getManager(address account) external view returns (address); - - /** - * @dev Sets the `implementer` contract as ``account``'s implementer for - * `interfaceHash`. - * - * `account` being the zero address is an alias for the caller's address. - * The zero address can also be used in `implementer` to remove an old one. - * - * See {interfaceHash} to learn how these are created. - * - * Emits an {InterfaceImplementerSet} event. - * - * Requirements: - * - * - the caller must be the current manager for `account`. - * - `interfaceHash` must not be an {IERC165} interface id (i.e. it must not - * end in 28 zeroes). - * - `implementer` must implement {IERC1820Implementer} and return true when - * queried for support, unless `implementer` is the caller. See - * {IERC1820Implementer-canImplementInterfaceForAddress}. - */ - function setInterfaceImplementer( - address account, - bytes32 _interfaceHash, - address implementer - ) external; - - /** - * @dev Returns the implementer of `interfaceHash` for `account`. If no such - * implementer is registered, returns the zero address. - * - * If `interfaceHash` is an {IERC165} interface id (i.e. it ends with 28 - * zeroes), `account` will be queried for support of it. - * - * `account` being the zero address is an alias for the caller's address. - */ - function getInterfaceImplementer(address account, bytes32 _interfaceHash) external view returns (address); - - /** - * @dev Returns the interface hash for an `interfaceName`, as defined in the - * corresponding - * https://eips.ethereum.org/EIPS/eip-1820#interface-name[section of the EIP]. - */ - function interfaceHash(string calldata interfaceName) external pure returns (bytes32); - - /** - * @notice Updates the cache with whether the contract implements an ERC165 interface or not. - * @param account Address of the contract for which to update the cache. - * @param interfaceId ERC165 interface for which to update the cache. - */ - function updateERC165Cache(address account, bytes4 interfaceId) external; - - /** - * @notice Checks whether a contract implements an ERC165 interface or not. - * If the result is not cached a direct lookup on the contract address is performed. - * If the result is not cached or the cached value is out-of-date, the cache MUST be updated manually by calling - * {updateERC165Cache} with the contract address. - * @param account Address of the contract to check. - * @param interfaceId ERC165 interface to check. - * @return True if `account` implements `interfaceId`, false otherwise. - */ - function implementsERC165Interface(address account, bytes4 interfaceId) external view returns (bool); - - /** - * @notice Checks whether a contract implements an ERC165 interface or not without using nor updating the cache. - * @param account Address of the contract to check. - * @param interfaceId ERC165 interface to check. - * @return True if `account` implements `interfaceId`, false otherwise. - */ - function implementsERC165InterfaceNoCache(address account, bytes4 interfaceId) external view returns (bool); - - event InterfaceImplementerSet(address indexed account, bytes32 indexed interfaceHash, address indexed implementer); - - event ManagerChanged(address indexed account, address indexed newManager); -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/Math.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/Math.sol deleted file mode 100644 index cbb1f7e70..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/Math.sol +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/math/Math.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Standard math utilities missing in the Solidity language. - */ -library Math { - /** - * @dev Returns the largest of two numbers. - */ - function max(uint256 a, uint256 b) internal pure returns (uint256) { - return a >= b ? a : b; - } - - /** - * @dev Returns the smallest of two numbers. - */ - function min(uint256 a, uint256 b) internal pure returns (uint256) { - return a < b ? a : b; - } - - /** - * @dev Returns the average of two numbers. The result is rounded towards - * zero. - */ - function average(uint256 a, uint256 b) internal pure returns (uint256) { - // (a + b) / 2 can overflow. - return (a & b) + (a ^ b) / 2; - } - - /** - * @dev Returns the ceiling of the division of two numbers. - * - * This differs from standard division with `/` in that it rounds up instead - * of rounding down. - */ - function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) { - // (a + b - 1) / b can overflow on addition, so we distribute. - return a / b + (a % b == 0 ? 0 : 1); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol deleted file mode 100644 index 9877fbb77..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol +++ /dev/null @@ -1,241 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/math/SafeCast.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow - * checks. - * - * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can - * easily result in undesired exploitation or bugs, since developers usually - * assume that overflows raise errors. `SafeCast` restores this intuition by - * reverting the transaction when such an operation overflows. - * - * Using this library instead of the unchecked operations eliminates an entire - * class of bugs, so it's recommended to use it always. - * - * Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing - * all math on `uint256` and `int256` and then downcasting. - */ -library SafeCast { - /** - * @dev Returns the downcasted uint224 from uint256, reverting on - * overflow (when the input is greater than largest uint224). - * - * Counterpart to Solidity's `uint224` operator. - * - * Requirements: - * - * - input must fit into 224 bits - */ - function toUint224(uint256 value) internal pure returns (uint224) { - require(value <= type(uint224).max, "SafeCast: value doesn't fit in 224 bits"); - return uint224(value); - } - - /** - * @dev Returns the downcasted uint128 from uint256, reverting on - * overflow (when the input is greater than largest uint128). - * - * Counterpart to Solidity's `uint128` operator. - * - * Requirements: - * - * - input must fit into 128 bits - */ - function toUint128(uint256 value) internal pure returns (uint128) { - require(value <= type(uint128).max, "SafeCast: value doesn't fit in 128 bits"); - return uint128(value); - } - - /** - * @dev Returns the downcasted uint96 from uint256, reverting on - * overflow (when the input is greater than largest uint96). - * - * Counterpart to Solidity's `uint96` operator. - * - * Requirements: - * - * - input must fit into 96 bits - */ - function toUint96(uint256 value) internal pure returns (uint96) { - require(value <= type(uint96).max, "SafeCast: value doesn't fit in 96 bits"); - return uint96(value); - } - - /** - * @dev Returns the downcasted uint64 from uint256, reverting on - * overflow (when the input is greater than largest uint64). - * - * Counterpart to Solidity's `uint64` operator. - * - * Requirements: - * - * - input must fit into 64 bits - */ - function toUint64(uint256 value) internal pure returns (uint64) { - require(value <= type(uint64).max, "SafeCast: value doesn't fit in 64 bits"); - return uint64(value); - } - - /** - * @dev Returns the downcasted uint32 from uint256, reverting on - * overflow (when the input is greater than largest uint32). - * - * Counterpart to Solidity's `uint32` operator. - * - * Requirements: - * - * - input must fit into 32 bits - */ - function toUint32(uint256 value) internal pure returns (uint32) { - require(value <= type(uint32).max, "SafeCast: value doesn't fit in 32 bits"); - return uint32(value); - } - - /** - * @dev Returns the downcasted uint16 from uint256, reverting on - * overflow (when the input is greater than largest uint16). - * - * Counterpart to Solidity's `uint16` operator. - * - * Requirements: - * - * - input must fit into 16 bits - */ - function toUint16(uint256 value) internal pure returns (uint16) { - require(value <= type(uint16).max, "SafeCast: value doesn't fit in 16 bits"); - return uint16(value); - } - - /** - * @dev Returns the downcasted uint8 from uint256, reverting on - * overflow (when the input is greater than largest uint8). - * - * Counterpart to Solidity's `uint8` operator. - * - * Requirements: - * - * - input must fit into 8 bits. - */ - function toUint8(uint256 value) internal pure returns (uint8) { - require(value <= type(uint8).max, "SafeCast: value doesn't fit in 8 bits"); - return uint8(value); - } - - /** - * @dev Converts a signed int256 into an unsigned uint256. - * - * Requirements: - * - * - input must be greater than or equal to 0. - */ - function toUint256(int256 value) internal pure returns (uint256) { - require(value >= 0, "SafeCast: value must be positive"); - return uint256(value); - } - - /** - * @dev Returns the downcasted int128 from int256, reverting on - * overflow (when the input is less than smallest int128 or - * greater than largest int128). - * - * Counterpart to Solidity's `int128` operator. - * - * Requirements: - * - * - input must fit into 128 bits - * - * _Available since v3.1._ - */ - function toInt128(int256 value) internal pure returns (int128) { - require(value >= type(int128).min && value <= type(int128).max, "SafeCast: value doesn't fit in 128 bits"); - return int128(value); - } - - /** - * @dev Returns the downcasted int64 from int256, reverting on - * overflow (when the input is less than smallest int64 or - * greater than largest int64). - * - * Counterpart to Solidity's `int64` operator. - * - * Requirements: - * - * - input must fit into 64 bits - * - * _Available since v3.1._ - */ - function toInt64(int256 value) internal pure returns (int64) { - require(value >= type(int64).min && value <= type(int64).max, "SafeCast: value doesn't fit in 64 bits"); - return int64(value); - } - - /** - * @dev Returns the downcasted int32 from int256, reverting on - * overflow (when the input is less than smallest int32 or - * greater than largest int32). - * - * Counterpart to Solidity's `int32` operator. - * - * Requirements: - * - * - input must fit into 32 bits - * - * _Available since v3.1._ - */ - function toInt32(int256 value) internal pure returns (int32) { - require(value >= type(int32).min && value <= type(int32).max, "SafeCast: value doesn't fit in 32 bits"); - return int32(value); - } - - /** - * @dev Returns the downcasted int16 from int256, reverting on - * overflow (when the input is less than smallest int16 or - * greater than largest int16). - * - * Counterpart to Solidity's `int16` operator. - * - * Requirements: - * - * - input must fit into 16 bits - * - * _Available since v3.1._ - */ - function toInt16(int256 value) internal pure returns (int16) { - require(value >= type(int16).min && value <= type(int16).max, "SafeCast: value doesn't fit in 16 bits"); - return int16(value); - } - - /** - * @dev Returns the downcasted int8 from int256, reverting on - * overflow (when the input is less than smallest int8 or - * greater than largest int8). - * - * Counterpart to Solidity's `int8` operator. - * - * Requirements: - * - * - input must fit into 8 bits. - * - * _Available since v3.1._ - */ - function toInt8(int256 value) internal pure returns (int8) { - require(value >= type(int8).min && value <= type(int8).max, "SafeCast: value doesn't fit in 8 bits"); - return int8(value); - } - - /** - * @dev Converts an unsigned uint256 into a signed int256. - * - * Requirements: - * - * - input must be less than or equal to maxInt256. - */ - function toInt256(uint256 value) internal pure returns (int256) { - // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive - require(value <= uint256(type(int256).max), "SafeCast: value doesn't fit in an int256"); - return int256(value); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol deleted file mode 100644 index 36e74cf44..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol +++ /dev/null @@ -1,227 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/math/SafeMath.sol) - -pragma solidity ^0.8.0; - -// CAUTION -// This version of SafeMath should only be used with Solidity 0.8 or later, -// because it relies on the compiler's built in overflow checks. - -/** - * @dev Wrappers over Solidity's arithmetic operations. - * - * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler - * now has built in overflow checking. - */ -library SafeMath { - /** - * @dev Returns the addition of two unsigned integers, with an overflow flag. - * - * _Available since v3.4._ - */ - function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { - unchecked { - uint256 c = a + b; - if (c < a) return (false, 0); - return (true, c); - } - } - - /** - * @dev Returns the substraction of two unsigned integers, with an overflow flag. - * - * _Available since v3.4._ - */ - function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { - unchecked { - if (b > a) return (false, 0); - return (true, a - b); - } - } - - /** - * @dev Returns the multiplication of two unsigned integers, with an overflow flag. - * - * _Available since v3.4._ - */ - function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { - unchecked { - // Gas optimization: this is cheaper than requiring 'a' not being zero, but the - // benefit is lost if 'b' is also tested. - // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 - if (a == 0) return (true, 0); - uint256 c = a * b; - if (c / a != b) return (false, 0); - return (true, c); - } - } - - /** - * @dev Returns the division of two unsigned integers, with a division by zero flag. - * - * _Available since v3.4._ - */ - function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { - unchecked { - if (b == 0) return (false, 0); - return (true, a / b); - } - } - - /** - * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. - * - * _Available since v3.4._ - */ - function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { - unchecked { - if (b == 0) return (false, 0); - return (true, a % b); - } - } - - /** - * @dev Returns the addition of two unsigned integers, reverting on - * overflow. - * - * Counterpart to Solidity's `+` operator. - * - * Requirements: - * - * - Addition cannot overflow. - */ - function add(uint256 a, uint256 b) internal pure returns (uint256) { - return a + b; - } - - /** - * @dev Returns the subtraction of two unsigned integers, reverting on - * overflow (when the result is negative). - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub(uint256 a, uint256 b) internal pure returns (uint256) { - return a - b; - } - - /** - * @dev Returns the multiplication of two unsigned integers, reverting on - * overflow. - * - * Counterpart to Solidity's `*` operator. - * - * Requirements: - * - * - Multiplication cannot overflow. - */ - function mul(uint256 a, uint256 b) internal pure returns (uint256) { - return a * b; - } - - /** - * @dev Returns the integer division of two unsigned integers, reverting on - * division by zero. The result is rounded towards zero. - * - * Counterpart to Solidity's `/` operator. - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function div(uint256 a, uint256 b) internal pure returns (uint256) { - return a / b; - } - - /** - * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), - * reverting when dividing by zero. - * - * Counterpart to Solidity's `%` operator. This function uses a `revert` - * opcode (which leaves remaining gas untouched) while Solidity uses an - * invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function mod(uint256 a, uint256 b) internal pure returns (uint256) { - return a % b; - } - - /** - * @dev Returns the subtraction of two unsigned integers, reverting with custom message on - * overflow (when the result is negative). - * - * CAUTION: This function is deprecated because it requires allocating memory for the error - * message unnecessarily. For custom revert reasons use {trySub}. - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub( - uint256 a, - uint256 b, - string memory errorMessage - ) internal pure returns (uint256) { - unchecked { - require(b <= a, errorMessage); - return a - b; - } - } - - /** - * @dev Returns the integer division of two unsigned integers, reverting with custom message on - * division by zero. The result is rounded towards zero. - * - * Counterpart to Solidity's `/` operator. Note: this function uses a - * `revert` opcode (which leaves remaining gas untouched) while Solidity - * uses an invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function div( - uint256 a, - uint256 b, - string memory errorMessage - ) internal pure returns (uint256) { - unchecked { - require(b > 0, errorMessage); - return a / b; - } - } - - /** - * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), - * reverting with custom message when dividing by zero. - * - * CAUTION: This function is deprecated because it requires allocating memory for the error - * message unnecessarily. For custom revert reasons use {tryMod}. - * - * Counterpart to Solidity's `%` operator. This function uses a `revert` - * opcode (which leaves remaining gas untouched) while Solidity uses an - * invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function mod( - uint256 a, - uint256 b, - string memory errorMessage - ) internal pure returns (uint256) { - unchecked { - require(b > 0, errorMessage); - return a % b; - } - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SignedSafeMath.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SignedSafeMath.sol deleted file mode 100644 index 1b6a6f00e..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/math/SignedSafeMath.sol +++ /dev/null @@ -1,68 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/math/SignedSafeMath.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Wrappers over Solidity's arithmetic operations. - * - * NOTE: `SignedSafeMath` is no longer needed starting with Solidity 0.8. The compiler - * now has built in overflow checking. - */ -library SignedSafeMath { - /** - * @dev Returns the multiplication of two signed integers, reverting on - * overflow. - * - * Counterpart to Solidity's `*` operator. - * - * Requirements: - * - * - Multiplication cannot overflow. - */ - function mul(int256 a, int256 b) internal pure returns (int256) { - return a * b; - } - - /** - * @dev Returns the integer division of two signed integers. Reverts on - * division by zero. The result is rounded towards zero. - * - * Counterpart to Solidity's `/` operator. - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function div(int256 a, int256 b) internal pure returns (int256) { - return a / b; - } - - /** - * @dev Returns the subtraction of two signed integers, reverting on - * overflow. - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub(int256 a, int256 b) internal pure returns (int256) { - return a - b; - } - - /** - * @dev Returns the addition of two signed integers, reverting on - * overflow. - * - * Counterpart to Solidity's `+` operator. - * - * Requirements: - * - * - Addition cannot overflow. - */ - function add(int256 a, int256 b) internal pure returns (int256) { - return a + b; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol deleted file mode 100644 index 8d160580f..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol +++ /dev/null @@ -1,55 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/structs/BitMaps.sol) -pragma solidity ^0.8.0; - -/** - * @dev Library for managing uint256 to bool mapping in a compact and efficient way, providing the keys are sequential. - * Largelly inspired by Uniswap's https://github.com/Uniswap/merkle-distributor/blob/master/contracts/MerkleDistributor.sol[merkle-distributor]. - */ -library BitMaps { - struct BitMap { - mapping(uint256 => uint256) _data; - } - - /** - * @dev Returns whether the bit at `index` is set. - */ - function get(BitMap storage bitmap, uint256 index) internal view returns (bool) { - uint256 bucket = index >> 8; - uint256 mask = 1 << (index & 0xff); - return bitmap._data[bucket] & mask != 0; - } - - /** - * @dev Sets the bit at `index` to the boolean `value`. - */ - function setTo( - BitMap storage bitmap, - uint256 index, - bool value - ) internal { - if (value) { - set(bitmap, index); - } else { - unset(bitmap, index); - } - } - - /** - * @dev Sets the bit at `index`. - */ - function set(BitMap storage bitmap, uint256 index) internal { - uint256 bucket = index >> 8; - uint256 mask = 1 << (index & 0xff); - bitmap._data[bucket] |= mask; - } - - /** - * @dev Unsets the bit at `index`. - */ - function unset(BitMap storage bitmap, uint256 index) internal { - uint256 bucket = index >> 8; - uint256 mask = 1 << (index & 0xff); - bitmap._data[bucket] &= ~mask; - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol deleted file mode 100644 index 2fd1905e6..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol +++ /dev/null @@ -1,240 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/structs/EnumerableMap.sol) - -pragma solidity ^0.8.0; - -import "./EnumerableSet.sol"; - -/** - * @dev Library for managing an enumerable variant of Solidity's - * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`] - * type. - * - * Maps have the following properties: - * - * - Entries are added, removed, and checked for existence in constant time - * (O(1)). - * - Entries are enumerated in O(n). No guarantees are made on the ordering. - * - * ``` - * contract Example { - * // Add the library methods - * using EnumerableMap for EnumerableMap.UintToAddressMap; - * - * // Declare a set state variable - * EnumerableMap.UintToAddressMap private myMap; - * } - * ``` - * - * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are - * supported. - */ -library EnumerableMap { - using EnumerableSet for EnumerableSet.Bytes32Set; - - // To implement this library for multiple types with as little code - // repetition as possible, we write it in terms of a generic Map type with - // bytes32 keys and values. - // The Map implementation uses private functions, and user-facing - // implementations (such as Uint256ToAddressMap) are just wrappers around - // the underlying Map. - // This means that we can only create new EnumerableMaps for types that fit - // in bytes32. - - struct Map { - // Storage of keys - EnumerableSet.Bytes32Set _keys; - mapping(bytes32 => bytes32) _values; - } - - /** - * @dev Adds a key-value pair to a map, or updates the value for an existing - * key. O(1). - * - * Returns true if the key was added to the map, that is if it was not - * already present. - */ - function _set( - Map storage map, - bytes32 key, - bytes32 value - ) private returns (bool) { - map._values[key] = value; - return map._keys.add(key); - } - - /** - * @dev Removes a key-value pair from a map. O(1). - * - * Returns true if the key was removed from the map, that is if it was present. - */ - function _remove(Map storage map, bytes32 key) private returns (bool) { - delete map._values[key]; - return map._keys.remove(key); - } - - /** - * @dev Returns true if the key is in the map. O(1). - */ - function _contains(Map storage map, bytes32 key) private view returns (bool) { - return map._keys.contains(key); - } - - /** - * @dev Returns the number of key-value pairs in the map. O(1). - */ - function _length(Map storage map) private view returns (uint256) { - return map._keys.length(); - } - - /** - * @dev Returns the key-value pair stored at position `index` in the map. O(1). - * - * Note that there are no guarantees on the ordering of entries inside the - * array, and it may change when more entries are added or removed. - * - * Requirements: - * - * - `index` must be strictly less than {length}. - */ - function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) { - bytes32 key = map._keys.at(index); - return (key, map._values[key]); - } - - /** - * @dev Tries to returns the value associated with `key`. O(1). - * Does not revert if `key` is not in the map. - */ - function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) { - bytes32 value = map._values[key]; - if (value == bytes32(0)) { - return (_contains(map, key), bytes32(0)); - } else { - return (true, value); - } - } - - /** - * @dev Returns the value associated with `key`. O(1). - * - * Requirements: - * - * - `key` must be in the map. - */ - function _get(Map storage map, bytes32 key) private view returns (bytes32) { - bytes32 value = map._values[key]; - require(value != 0 || _contains(map, key), "EnumerableMap: nonexistent key"); - return value; - } - - /** - * @dev Same as {_get}, with a custom error message when `key` is not in the map. - * - * CAUTION: This function is deprecated because it requires allocating memory for the error - * message unnecessarily. For custom revert reasons use {_tryGet}. - */ - function _get( - Map storage map, - bytes32 key, - string memory errorMessage - ) private view returns (bytes32) { - bytes32 value = map._values[key]; - require(value != 0 || _contains(map, key), errorMessage); - return value; - } - - // UintToAddressMap - - struct UintToAddressMap { - Map _inner; - } - - /** - * @dev Adds a key-value pair to a map, or updates the value for an existing - * key. O(1). - * - * Returns true if the key was added to the map, that is if it was not - * already present. - */ - function set( - UintToAddressMap storage map, - uint256 key, - address value - ) internal returns (bool) { - return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value)))); - } - - /** - * @dev Removes a value from a set. O(1). - * - * Returns true if the key was removed from the map, that is if it was present. - */ - function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) { - return _remove(map._inner, bytes32(key)); - } - - /** - * @dev Returns true if the key is in the map. O(1). - */ - function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) { - return _contains(map._inner, bytes32(key)); - } - - /** - * @dev Returns the number of elements in the map. O(1). - */ - function length(UintToAddressMap storage map) internal view returns (uint256) { - return _length(map._inner); - } - - /** - * @dev Returns the element stored at position `index` in the set. O(1). - * Note that there are no guarantees on the ordering of values inside the - * array, and it may change when more values are added or removed. - * - * Requirements: - * - * - `index` must be strictly less than {length}. - */ - function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) { - (bytes32 key, bytes32 value) = _at(map._inner, index); - return (uint256(key), address(uint160(uint256(value)))); - } - - /** - * @dev Tries to returns the value associated with `key`. O(1). - * Does not revert if `key` is not in the map. - * - * _Available since v3.4._ - */ - function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) { - (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key)); - return (success, address(uint160(uint256(value)))); - } - - /** - * @dev Returns the value associated with `key`. O(1). - * - * Requirements: - * - * - `key` must be in the map. - */ - function get(UintToAddressMap storage map, uint256 key) internal view returns (address) { - return address(uint160(uint256(_get(map._inner, bytes32(key))))); - } - - /** - * @dev Same as {get}, with a custom error message when `key` is not in the map. - * - * CAUTION: This function is deprecated because it requires allocating memory for the error - * message unnecessarily. For custom revert reasons use {tryGet}. - */ - function get( - UintToAddressMap storage map, - uint256 key, - string memory errorMessage - ) internal view returns (address) { - return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage)))); - } -} diff --git a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol b/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol deleted file mode 100644 index 4cb9aeb67..000000000 --- a/tests/test_node_modules/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol +++ /dev/null @@ -1,357 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.0 (utils/structs/EnumerableSet.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Library for managing - * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive - * types. - * - * Sets have the following properties: - * - * - Elements are added, removed, and checked for existence in constant time - * (O(1)). - * - Elements are enumerated in O(n). No guarantees are made on the ordering. - * - * ``` - * contract Example { - * // Add the library methods - * using EnumerableSet for EnumerableSet.AddressSet; - * - * // Declare a set state variable - * EnumerableSet.AddressSet private mySet; - * } - * ``` - * - * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) - * and `uint256` (`UintSet`) are supported. - */ -library EnumerableSet { - // To implement this library for multiple types with as little code - // repetition as possible, we write it in terms of a generic Set type with - // bytes32 values. - // The Set implementation uses private functions, and user-facing - // implementations (such as AddressSet) are just wrappers around the - // underlying Set. - // This means that we can only create new EnumerableSets for types that fit - // in bytes32. - - struct Set { - // Storage of set values - bytes32[] _values; - // Position of the value in the `values` array, plus 1 because index 0 - // means a value is not in the set. - mapping(bytes32 => uint256) _indexes; - } - - /** - * @dev Add a value to a set. O(1). - * - * Returns true if the value was added to the set, that is if it was not - * already present. - */ - function _add(Set storage set, bytes32 value) private returns (bool) { - if (!_contains(set, value)) { - set._values.push(value); - // The value is stored at length-1, but we add 1 to all indexes - // and use 0 as a sentinel value - set._indexes[value] = set._values.length; - return true; - } else { - return false; - } - } - - /** - * @dev Removes a value from a set. O(1). - * - * Returns true if the value was removed from the set, that is if it was - * present. - */ - function _remove(Set storage set, bytes32 value) private returns (bool) { - // We read and store the value's index to prevent multiple reads from the same storage slot - uint256 valueIndex = set._indexes[value]; - - if (valueIndex != 0) { - // Equivalent to contains(set, value) - // To delete an element from the _values array in O(1), we swap the element to delete with the last one in - // the array, and then remove the last element (sometimes called as 'swap and pop'). - // This modifies the order of the array, as noted in {at}. - - uint256 toDeleteIndex = valueIndex - 1; - uint256 lastIndex = set._values.length - 1; - - if (lastIndex != toDeleteIndex) { - bytes32 lastvalue = set._values[lastIndex]; - - // Move the last value to the index where the value to delete is - set._values[toDeleteIndex] = lastvalue; - // Update the index for the moved value - set._indexes[lastvalue] = valueIndex; // Replace lastvalue's index to valueIndex - } - - // Delete the slot where the moved value was stored - set._values.pop(); - - // Delete the index for the deleted slot - delete set._indexes[value]; - - return true; - } else { - return false; - } - } - - /** - * @dev Returns true if the value is in the set. O(1). - */ - function _contains(Set storage set, bytes32 value) private view returns (bool) { - return set._indexes[value] != 0; - } - - /** - * @dev Returns the number of values on the set. O(1). - */ - function _length(Set storage set) private view returns (uint256) { - return set._values.length; - } - - /** - * @dev Returns the value stored at position `index` in the set. O(1). - * - * Note that there are no guarantees on the ordering of values inside the - * array, and it may change when more values are added or removed. - * - * Requirements: - * - * - `index` must be strictly less than {length}. - */ - function _at(Set storage set, uint256 index) private view returns (bytes32) { - return set._values[index]; - } - - /** - * @dev Return the entire set in an array - * - * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed - * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that - * this function has an unbounded cost, and using it as part of a state-changing function may render the function - * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. - */ - function _values(Set storage set) private view returns (bytes32[] memory) { - return set._values; - } - - // Bytes32Set - - struct Bytes32Set { - Set _inner; - } - - /** - * @dev Add a value to a set. O(1). - * - * Returns true if the value was added to the set, that is if it was not - * already present. - */ - function add(Bytes32Set storage set, bytes32 value) internal returns (bool) { - return _add(set._inner, value); - } - - /** - * @dev Removes a value from a set. O(1). - * - * Returns true if the value was removed from the set, that is if it was - * present. - */ - function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) { - return _remove(set._inner, value); - } - - /** - * @dev Returns true if the value is in the set. O(1). - */ - function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) { - return _contains(set._inner, value); - } - - /** - * @dev Returns the number of values in the set. O(1). - */ - function length(Bytes32Set storage set) internal view returns (uint256) { - return _length(set._inner); - } - - /** - * @dev Returns the value stored at position `index` in the set. O(1). - * - * Note that there are no guarantees on the ordering of values inside the - * array, and it may change when more values are added or removed. - * - * Requirements: - * - * - `index` must be strictly less than {length}. - */ - function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) { - return _at(set._inner, index); - } - - /** - * @dev Return the entire set in an array - * - * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed - * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that - * this function has an unbounded cost, and using it as part of a state-changing function may render the function - * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. - */ - function values(Bytes32Set storage set) internal view returns (bytes32[] memory) { - return _values(set._inner); - } - - // AddressSet - - struct AddressSet { - Set _inner; - } - - /** - * @dev Add a value to a set. O(1). - * - * Returns true if the value was added to the set, that is if it was not - * already present. - */ - function add(AddressSet storage set, address value) internal returns (bool) { - return _add(set._inner, bytes32(uint256(uint160(value)))); - } - - /** - * @dev Removes a value from a set. O(1). - * - * Returns true if the value was removed from the set, that is if it was - * present. - */ - function remove(AddressSet storage set, address value) internal returns (bool) { - return _remove(set._inner, bytes32(uint256(uint160(value)))); - } - - /** - * @dev Returns true if the value is in the set. O(1). - */ - function contains(AddressSet storage set, address value) internal view returns (bool) { - return _contains(set._inner, bytes32(uint256(uint160(value)))); - } - - /** - * @dev Returns the number of values in the set. O(1). - */ - function length(AddressSet storage set) internal view returns (uint256) { - return _length(set._inner); - } - - /** - * @dev Returns the value stored at position `index` in the set. O(1). - * - * Note that there are no guarantees on the ordering of values inside the - * array, and it may change when more values are added or removed. - * - * Requirements: - * - * - `index` must be strictly less than {length}. - */ - function at(AddressSet storage set, uint256 index) internal view returns (address) { - return address(uint160(uint256(_at(set._inner, index)))); - } - - /** - * @dev Return the entire set in an array - * - * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed - * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that - * this function has an unbounded cost, and using it as part of a state-changing function may render the function - * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. - */ - function values(AddressSet storage set) internal view returns (address[] memory) { - bytes32[] memory store = _values(set._inner); - address[] memory result; - - assembly { - result := store - } - - return result; - } - - // UintSet - - struct UintSet { - Set _inner; - } - - /** - * @dev Add a value to a set. O(1). - * - * Returns true if the value was added to the set, that is if it was not - * already present. - */ - function add(UintSet storage set, uint256 value) internal returns (bool) { - return _add(set._inner, bytes32(value)); - } - - /** - * @dev Removes a value from a set. O(1). - * - * Returns true if the value was removed from the set, that is if it was - * present. - */ - function remove(UintSet storage set, uint256 value) internal returns (bool) { - return _remove(set._inner, bytes32(value)); - } - - /** - * @dev Returns true if the value is in the set. O(1). - */ - function contains(UintSet storage set, uint256 value) internal view returns (bool) { - return _contains(set._inner, bytes32(value)); - } - - /** - * @dev Returns the number of values on the set. O(1). - */ - function length(UintSet storage set) internal view returns (uint256) { - return _length(set._inner); - } - - /** - * @dev Returns the value stored at position `index` in the set. O(1). - * - * Note that there are no guarantees on the ordering of values inside the - * array, and it may change when more values are added or removed. - * - * Requirements: - * - * - `index` must be strictly less than {length}. - */ - function at(UintSet storage set, uint256 index) internal view returns (uint256) { - return uint256(_at(set._inner, index)); - } - - /** - * @dev Return the entire set in an array - * - * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed - * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that - * this function has an unbounded cost, and using it as part of a state-changing function may render the function - * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. - */ - function values(UintSet storage set) internal view returns (uint256[] memory) { - bytes32[] memory store = _values(set._inner); - uint256[] memory result; - - assembly { - result := store - } - - return result; - } -} diff --git a/tests/test_node_modules/package.json b/tests/test_node_modules/package.json deleted file mode 100644 index 8ca261783..000000000 --- a/tests/test_node_modules/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "dependencies": { - "@openzeppelin/contracts": "^4.4.0", - "hardhat": "^2.7.0" - } -} diff --git a/tests/test_source_mapping.py b/tests/test_source_mapping.py deleted file mode 100644 index c5ff28c67..000000000 --- a/tests/test_source_mapping.py +++ /dev/null @@ -1,133 +0,0 @@ -from solc_select import solc_select - -from slither import Slither -from slither.core.declarations import Function - - -def test_source_mapping(): - solc_select.switch_global_version("0.6.12", always_install=True) - slither = Slither("tests/src_mapping/inheritance.sol") - - # Check if A.f() is at the offset 27 - functions = slither.offset_to_objects("tests/src_mapping/inheritance.sol", 27) - print(functions) - assert len(functions) == 1 - function = functions.pop() - assert isinstance(function, Function) - assert function.canonical_name == "A.f()" - - # Only one definition for A.f() - assert { - (x.start, x.end) - for x in slither.offset_to_definitions("tests/src_mapping/inheritance.sol", 27) - } == {(26, 28)} - # Only one reference for A.f(), in A.test() - assert { - (x.start, x.end) - for x in slither.offset_to_references("tests/src_mapping/inheritance.sol", 27) - } == {(92, 93)} - # Only one implementation for A.f(), in A.test() - assert { - (x.start, x.end) - for x in slither.offset_to_implementations("tests/src_mapping/inheritance.sol", 27) - } == {(17, 53)} - - # Check if C.f() is at the offset 203 - functions = slither.offset_to_objects("tests/src_mapping/inheritance.sol", 203) - assert len(functions) == 1 - function = functions.pop() - assert isinstance(function, Function) - assert function.canonical_name == "C.f()" - - # Only one definition for C.f() - assert { - (x.start, x.end) - for x in slither.offset_to_definitions("tests/src_mapping/inheritance.sol", 203) - } == {(202, 204)} - # Two references for C.f(), in A.test() and C.test2() - assert { - (x.start, x.end) - for x in slither.offset_to_references("tests/src_mapping/inheritance.sol", 203) - } == {(270, 271), (92, 93)} - # Only one implementation for A.f(), in A.test() - assert { - (x.start, x.end) - for x in slither.offset_to_implementations("tests/src_mapping/inheritance.sol", 203) - } == {(193, 230)} - - # Offset 93 is the call to f() in A.test() - # This can lead to three differents functions, depending on the current contract's context - functions = slither.offset_to_objects("tests/src_mapping/inheritance.sol", 93) - print(functions) - assert len(functions) == 3 - for function in functions: - assert isinstance(function, Function) - assert function.canonical_name in ["A.f()", "B.f()", "C.f()"] - - # There are three definitions possible (in A, B or C) - assert { - (x.start, x.end) - for x in slither.offset_to_definitions("tests/src_mapping/inheritance.sol", 93) - } == {(26, 28), (202, 204), (138, 140)} - - # There are two references possible (in A.test() or C.test2() ) - assert { - (x.start, x.end) - for x in slither.offset_to_references("tests/src_mapping/inheritance.sol", 93) - } == {(92, 93), (270, 271)} - - # There are three implementations possible (in A, B or C) - assert { - (x.start, x.end) - for x in slither.offset_to_implementations("tests/src_mapping/inheritance.sol", 93) - } == {(17, 53), (193, 230), (129, 166)} - - -def _sort_references_lines(refs: list) -> list: - return sorted([ref.lines[0] for ref in refs]) - - -def _test_references_user_defined_aliases(): - """ - Tests if references are filled correctly for user defined aliases (declared using "type [...] is [...]" statement). - """ - solc_select.switch_global_version("0.8.16", always_install=True) - slither = Slither("tests/src_mapping/ReferencesUserDefinedAliases.sol") - - alias_top_level = slither.compilation_units[0].user_defined_value_types["aliasTopLevel"] - assert len(alias_top_level.references) == 2 - lines = _sort_references_lines(alias_top_level.references) - assert lines == [12, 16] - - alias_contract_level = ( - slither.compilation_units[0] - .contracts[0] - .file_scope.user_defined_types["C.aliasContractLevel"] - ) - assert len(alias_contract_level.references) == 2 - lines = _sort_references_lines(alias_contract_level.references) - assert lines == [13, 16] - - -def _test_references_user_defined_types_when_casting(): - """ - Tests if references are filled correctly for user defined types in case of casting. - """ - solc_select.switch_global_version("0.8.16", always_install=True) - slither = Slither("tests/src_mapping/ReferencesUserDefinedTypesCasting.sol") - - contracts = slither.compilation_units[0].contracts - a = contracts[0] if contracts[0].is_interface else contracts[1] - assert len(a.references) == 2 - lines = _sort_references_lines(a.references) - assert lines == [12, 18] - - -def test_references(): - """ - Tests if references list is filled correctly in the following cases: - - user defined aliases (declared using "type [...] is [...]" statement) - - user defined types in case of casting (TypeConversion expressions) - """ - _test_references_user_defined_aliases() - _test_references_user_defined_types_when_casting() diff --git a/tests/test_source_unit.py b/tests/test_source_unit.py deleted file mode 100644 index 73c165016..000000000 --- a/tests/test_source_unit.py +++ /dev/null @@ -1,43 +0,0 @@ -from pathlib import Path -import shutil - -import pytest -from slither import Slither - -# NB: read tests/source_unit/README.md for setup before using this test - -foundry_available = shutil.which("forge") is not None -project_ready = Path("./tests/source_unit/lib/forge-std").exists() - - -@pytest.mark.skipif( - not foundry_available or not project_ready, reason="requires Foundry and project setup" -) -def test_contract_info() -> None: - slither = Slither("./tests/source_unit") - - assert len(slither.compilation_units) == 1 - compilation_unit = slither.compilation_units[0] - - for source_unit in compilation_unit.crytic_compile_compilation_unit.source_units.values(): - source_unit.remove_metadata() - - counter_sol = compilation_unit.crytic_compile.filename_lookup( - "tests/source_unit/src/Counter.sol" - ) - assert ( - compilation_unit.scopes[counter_sol].bytecode_init( - compilation_unit.crytic_compile_compilation_unit, "Counter" - ) - == "608060405234801561001057600080fd5b5060f78061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146053578063d09de08a14606d575b600080fd5b6051604c3660046083565b600055565b005b605b60005481565b60405190815260200160405180910390f35b6051600080549080607c83609b565b9190505550565b600060208284031215609457600080fd5b5035919050565b60006001820160ba57634e487b7160e01b600052601160045260246000fd5b506001019056fe" - ) - - counter2_sol = compilation_unit.crytic_compile.filename_lookup( - "tests/source_unit/src/Counter2.sol" - ) - assert ( - compilation_unit.scopes[counter2_sol].bytecode_init( - compilation_unit.crytic_compile_compilation_unit, "Counter" - ) - == "6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfe" - ) diff --git a/tests/test_ssa_generation.py b/tests/test_ssa_generation.py deleted file mode 100644 index 3d4874569..000000000 --- a/tests/test_ssa_generation.py +++ /dev/null @@ -1,1078 +0,0 @@ -# pylint: disable=too-many-lines -import os -import pathlib -from argparse import ArgumentTypeError -from collections import defaultdict -from contextlib import contextmanager -from inspect import getsourcefile -from tempfile import NamedTemporaryFile -from typing import Union, List, Optional - -import pytest -from solc_select import solc_select -from solc_select.solc_select import valid_version as solc_valid_version - -from slither import Slither -from slither.core.cfg.node import Node, NodeType -from slither.core.declarations import Function, Contract -from slither.core.variables.state_variable import StateVariable -from slither.slithir.operations import ( - OperationWithLValue, - Phi, - Assignment, - HighLevelCall, - Return, - Operation, - Binary, - BinaryType, - InternalCall, - Index, - InitArray, -) -from slither.slithir.utils.ssa import is_used_later -from slither.slithir.variables import ( - Constant, - ReferenceVariable, - LocalIRVariable, - StateIRVariable, -) - -# Directory of currently executing script. Will be used as basis for temporary file names. -SCRIPT_DIR = pathlib.Path(getsourcefile(lambda: 0)).parent - - -def valid_version(ver: str) -> bool: - """Wrapper function to check if the solc-version is valid - - The solc_select function raises and exception but for checks below, - only a bool is needed. - """ - try: - solc_valid_version(ver) - return True - except ArgumentTypeError: - return False - - -def have_ssa_if_ir(function: Function): - """Verifies that all nodes in a function that have IR also have SSA IR""" - for n in function.nodes: - if n.irs: - assert n.irs_ssa - - -# pylint: disable=too-many-branches -def ssa_basic_properties(function: Function): - """Verifies that basic properties of ssa holds - - 1. Every name is defined only once - 2. A l-value is never index zero - there is always a zero-value available for each var - 3. Every r-value is at least defined at some point - 4. The number of ssa defs is >= the number of assignments to var - 5. Function parameters SSA are stored in function.parameters_ssa - - if function parameter is_storage it refers to a fake variable - 6. Function returns SSA are stored in function.returns_ssa - - if function return is_storage it refers to a fake variable - """ - ssa_lvalues = set() - ssa_rvalues = set() - lvalue_assignments = {} - - for n in function.nodes: - for ir in n.irs: - if isinstance(ir, OperationWithLValue): - name = ir.lvalue.name - if name in lvalue_assignments: - lvalue_assignments[name] += 1 - else: - lvalue_assignments[name] = 1 - - for ssa in n.irs_ssa: - if isinstance(ssa, OperationWithLValue): - # 1 - assert ssa.lvalue not in ssa_lvalues - ssa_lvalues.add(ssa.lvalue) - - # 2 (if Local/State Var) - if isinstance(ssa.lvalue, (StateIRVariable, LocalIRVariable)): - assert ssa.lvalue.index > 0 - - for rvalue in filter( - lambda x: not isinstance(x, (StateIRVariable, Constant)), ssa.read - ): - ssa_rvalues.add(rvalue) - - # 3 - # Each var can have one non-defined value, the value initially held. Typically, - # var_0, i_0, state_0 or similar. - undef_vars = set() - for rvalue in ssa_rvalues: - if rvalue not in ssa_lvalues: - assert rvalue.non_ssa_version not in undef_vars - undef_vars.add(rvalue.non_ssa_version) - - # 4 - ssa_defs = defaultdict(int) - for v in ssa_lvalues: - ssa_defs[v.name] += 1 - - for (k, n) in lvalue_assignments.items(): - assert ssa_defs[k] >= n - - # Helper 5/6 - def check_property_5_and_6(variables, ssavars): - for var in filter(lambda x: x.name, variables): - ssa_vars = [x for x in ssavars if x.non_ssa_version == var] - assert len(ssa_vars) == 1 - ssa_var = ssa_vars[0] - assert var.is_storage == ssa_var.is_storage - if ssa_var.is_storage: - assert len(ssa_var.refers_to) == 1 - assert ssa_var.refers_to[0].location == "reference_to_storage" - - # 5 - check_property_5_and_6(function.parameters, function.parameters_ssa) - - # 6 - check_property_5_and_6(function.returns, function.returns_ssa) - - -def ssa_phi_node_properties(f: Function): - """Every phi-function should have as many args as predecessors - - This does not apply if the phi-node refers to state variables, - they make use os special phi-nodes for tracking potential values - a state variable can have - """ - for node in f.nodes: - for ssa in node.irs_ssa: - if isinstance(ssa, Phi): - n = len(ssa.read) - if not isinstance(ssa.lvalue, StateIRVariable): - assert len(node.fathers) == n - - -# TODO (hbrodin): This should probably go into another file, not specific to SSA -def dominance_properties(f: Function): - """Verifies properties related to dominators holds - - 1. Every node have an immediate dominator except entry_node which have none - 2. From every node immediate dominator there is a path via its successors to the node - """ - - def find_path(from_node: Node, to: Node) -> bool: - visited = set() - worklist = list(from_node.sons) - while worklist: - first, *worklist = worklist - if first == to: - return True - visited.add(first) - for successor in first.sons: - if successor not in visited: - worklist.append(successor) - return False - - for node in f.nodes: - if node is f.entry_point: - assert node.immediate_dominator is None - else: - assert node.immediate_dominator is not None - assert find_path(node.immediate_dominator, node) - - -def phi_values_inserted(f: Function): - """Verifies that phi-values are inserted at the right places - - For every node that has a dominance frontier, any def (including - phi) should be a phi function in its dominance frontier - """ - - def have_phi_for_var(node: Node, var): - """Checks if a node has a phi-instruction for var - - The ssa version would ideally be checked, but then - more data flow analysis would be needed, for cases - where a new def for var is introduced before reaching - DF - """ - non_ssa = var.non_ssa_version - for ssa in node.irs_ssa: - if isinstance(ssa, Phi): - if non_ssa in map(lambda ssa_var: ssa_var.non_ssa_version, ssa.read): - return True - return False - - for node in filter(lambda n: n.dominance_frontier, f.nodes): - for df in node.dominance_frontier: - for ssa in node.irs_ssa: - if isinstance(ssa, OperationWithLValue): - if is_used_later(node, ssa.lvalue): - assert have_phi_for_var(df, ssa.lvalue) - - -@contextmanager -def select_solc_version(version: Optional[str]): - """Selects solc version to use for running tests. - - If no version is provided, latest is used.""" - # If no solc_version selected just use the latest avail - if not version: - # This sorts the versions numerically - vers = sorted( - map( - lambda x: (int(x[0]), int(x[1]), int(x[2])), - map(lambda x: x.split(".", 3), solc_select.installed_versions()), - ) - ) - ver = list(vers)[-1] - version = ".".join(map(str, ver)) - env = dict(os.environ) - env_restore = dict(env) - env["SOLC_VERSION"] = version - os.environ.clear() - os.environ.update(env) - - yield version - - os.environ.clear() - os.environ.update(env_restore) - - -@contextmanager -def slither_from_source(source_code: str, solc_version: Optional[str] = None): - """Yields a Slither instance using source_code string and solc_version - - Creates a temporary file and changes the solc-version temporary to solc_version. - """ - - fname = "" - try: - with NamedTemporaryFile(dir=SCRIPT_DIR, mode="w", suffix=".sol", delete=False) as f: - fname = f.name - f.write(source_code) - with select_solc_version(solc_version): - yield Slither(fname) - finally: - pathlib.Path(fname).unlink() - - -def verify_properties_hold(source_code_or_slither: Union[str, Slither]): - """Ensures that basic properties of SSA hold true""" - - def verify_func(func: Function): - have_ssa_if_ir(func) - phi_values_inserted(func) - ssa_basic_properties(func) - ssa_phi_node_properties(func) - dominance_properties(func) - - def verify(slither): - for cu in slither.compilation_units: - for func in cu.functions_and_modifiers: - _dump_function(func) - verify_func(func) - for contract in cu.contracts: - for f in contract.functions: - if f.is_constructor or f.is_constructor_variables: - _dump_function(f) - verify_func(f) - - if isinstance(source_code_or_slither, Slither): - verify(source_code_or_slither) - else: - with slither_from_source(source_code_or_slither) as slither: - verify(slither) - - -def _dump_function(f: Function): - """Helper function to print nodes/ssa ir for a function or modifier""" - print(f"---- {f.name} ----") - for n in f.nodes: - print(n) - for ir in n.irs_ssa: - print(f"\t{ir}") - print("") - - -def _dump_functions(c: Contract): - """Helper function to print functions and modifiers of a contract""" - for f in c.functions_and_modifiers: - _dump_function(f) - - -def get_filtered_ssa(f: Union[Function, Node], flt) -> List[Operation]: - """Returns a list of all ssanodes filtered by filter for all nodes in function f""" - if isinstance(f, Function): - return [ssanode for node in f.nodes for ssanode in node.irs_ssa if flt(ssanode)] - - assert isinstance(f, Node) - return [ssanode for ssanode in f.irs_ssa if flt(ssanode)] - - -def get_ssa_of_type(f: Union[Function, Node], ssatype) -> List[Operation]: - """Returns a list of all ssanodes of a specific type for all nodes in function f""" - return get_filtered_ssa(f, lambda ssanode: isinstance(ssanode, ssatype)) - - -def test_multi_write(): - contract = """ - pragma solidity ^0.8.11; - contract Test { - function multi_write(uint val) external pure returns(uint) { - val = 1; - val = 2; - val = 3; - } - }""" - verify_properties_hold(contract) - - -def test_single_branch_phi(): - contract = """ - pragma solidity ^0.8.11; - contract Test { - function single_branch_phi(uint val) external pure returns(uint) { - if (val == 3) { - val = 9; - } - return val; - } - } - """ - verify_properties_hold(contract) - - -def test_basic_phi(): - contract = """ - pragma solidity ^0.8.11; - contract Test { - function basic_phi(uint val) external pure returns(uint) { - if (val == 3) { - val = 9; - } else { - val = 1; - } - return val; - } - } - """ - verify_properties_hold(contract) - - -def test_basic_loop_phi(): - contract = """ - pragma solidity ^0.8.11; - contract Test { - function basic_loop_phi(uint val) external pure returns(uint) { - for (uint i=0;i<128;i++) { - val = val + 1; - } - return val; - } - } - """ - verify_properties_hold(contract) - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_phi_propagation_loop(): - contract = """ - pragma solidity ^0.8.11; - contract Test { - function looping(uint v) external pure returns(uint) { - uint val = 0; - for (uint i=0;i i) { - val = i; - } else { - val = 3; - } - } - return val; - } - } - """ - verify_properties_hold(contract) - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_free_function_properties(): - contract = """ - pragma solidity ^0.8.11; - - function free_looping(uint v) returns(uint) { - uint val = 0; - for (uint i=0;i i) { - val = i; - } else { - val = 3; - } - } - return val; - } - - contract Test {} - """ - verify_properties_hold(contract) - - -def test_ssa_inter_transactional(): - source = """ - pragma solidity ^0.8.11; - contract A { - uint my_var_A; - uint my_var_B; - - function direct_set(uint i) public { - my_var_A = i; - } - - function direct_set_plus_one(uint i) public { - my_var_A = i + 1; - } - - function indirect_set() public { - my_var_B = my_var_A; - } - } - """ - with slither_from_source(source) as slither: - c = slither.contracts[0] - variables = c.variables_as_dict - funcs = c.available_functions_as_dict() - direct_set = funcs["direct_set(uint256)"] - # Skip entry point and go straight to assignment ir - assign1 = direct_set.nodes[1].irs_ssa[0] - assert isinstance(assign1, Assignment) - - assign2 = direct_set.nodes[1].irs_ssa[0] - assert isinstance(assign2, Assignment) - - indirect_set = funcs["indirect_set()"] - phi = indirect_set.entry_point.irs_ssa[0] - assert isinstance(phi, Phi) - # phi rvalues come from 1, initial value of my_var_a and 2, assignment in direct_set - assert len(phi.rvalues) == 3 - assert all(x.non_ssa_version == variables["my_var_A"] for x in phi.rvalues) - assert assign1.lvalue in phi.rvalues - assert assign2.lvalue in phi.rvalues - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_ssa_phi_callbacks(): - source = """ - pragma solidity ^0.8.11; - contract A { - uint my_var_A; - uint my_var_B; - - function direct_set(uint i) public { - my_var_A = i; - } - - function use_a() public { - // Expect a phi-node here - my_var_B = my_var_A; - B b = new B(); - my_var_A = 3; - b.do_stuff(); - // Expect a phi-node here - my_var_B = my_var_A; - } - } - - contract B { - function do_stuff() public returns (uint) { - // This could be calling back into A - } - } - """ - with slither_from_source(source) as slither: - c = slither.get_contract_from_name("A")[0] - _dump_functions(c) - f = [x for x in c.functions if x.name == "use_a"][0] - var_a = [x for x in c.variables if x.name == "my_var_A"][0] - - entry_phi = [ - x - for x in f.entry_point.irs_ssa - if isinstance(x, Phi) and x.lvalue.non_ssa_version == var_a - ][0] - # The four potential sources are: - # 1. initial value - # 2. my_var_A = i; - # 3. my_var_A = 3; - # 4. phi-value after call to b.do_stuff(), which could be reentrant. - assert len(entry_phi.rvalues) == 4 - - # Locate the first high-level call (should be b.do_stuff()) - call_node = [x for y in f.nodes for x in y.irs_ssa if isinstance(x, HighLevelCall)][0] - n = call_node.node - # Get phi-node after call - after_call_phi = n.irs_ssa[n.irs_ssa.index(call_node) + 1] - # The two sources for this phi node is - # 1. my_var_A = i; - # 2. my_var_A = 3; - assert isinstance(after_call_phi, Phi) - assert len(after_call_phi.rvalues) == 2 - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_storage_refers_to(): - """Test the storage aspects of the SSA IR - - When declaring a var as being storage, start tracking what storage it refers_to. - When a phi-node is created, ensure refers_to is propagated to the phi-node. - Assignments also propagate refers_to. - Whenever a ReferenceVariable is the destination of an assignment (e.g. s.v = 10) - below, create additional versions of the variables it refers to record that a a - write was made. In the current implementation, this is referenced by phis. - """ - source = """ - contract A{ - - struct St{ - int v; - } - - St state0; - St state1; - - function f() public{ - St storage s = state0; - if(true){ - s = state1; - } - s.v = 10; - } -} - """ - with slither_from_source(source) as slither: - c = slither.contracts[0] - f = c.functions[0] - - phinodes = get_ssa_of_type(f, Phi) - # Expect 2 in entrypoint (state0/state1 initial values), 1 at 'ENDIF' and two related to the - # ReferenceVariable write s.v = 10. - assert len(phinodes) == 5 - - # Assign s to state0, s to state1, s.v to 10 - assigns = get_ssa_of_type(f, Assignment) - assert len(assigns) == 3 - - # The IR variables have is_storage - assert all(x.lvalue.is_storage for x in assigns if isinstance(x, LocalIRVariable)) - - # s.v ReferenceVariable points to one of the phi vars... - ref0 = [x.lvalue for x in assigns if isinstance(x.lvalue, ReferenceVariable)][0] - sphis = [x for x in phinodes if x.lvalue == ref0.points_to] - assert len(sphis) == 1 - sphi = sphis[0] - - # ...and that phi refers to the two entry phi-values - entryphi = [x for x in phinodes if x.lvalue in sphi.lvalue.refers_to] - assert len(entryphi) == 2 - - # The remaining two phis are the ones recording that write through ReferenceVariable occured - for ephi in entryphi: - phinodes.remove(ephi) - phinodes.remove(sphi) - assert len(phinodes) == 2 - - # And they are recorded in one of the entry phis - assert phinodes[0].lvalue in entryphi[0].rvalues or entryphi[1].rvalues - assert phinodes[1].lvalue in entryphi[0].rvalues or entryphi[1].rvalues - - -@pytest.mark.skipif( - not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" -) -def test_initial_version_exists_for_locals(): - """ - In solidity you can write statements such as - uint a = a + 1, this test ensures that can be handled for local variables. - """ - src = """ - contract C { - function func() internal { - uint a = a + 1; - } - } - """ - with slither_from_source(src, "0.4.0") as slither: - verify_properties_hold(slither) - c = slither.contracts[0] - f = c.functions[0] - - addition = get_ssa_of_type(f, Binary)[0] - assert addition.type == BinaryType.ADDITION - assert isinstance(addition.variable_right, Constant) - a_0 = addition.variable_left - assert a_0.index == 0 - assert a_0.name == "a" - - assignment = get_ssa_of_type(f, Assignment)[0] - a_1 = assignment.lvalue - assert a_1.index == 1 - assert a_1.name == "a" - assert assignment.rvalue == addition.lvalue - - assert a_0.non_ssa_version == a_1.non_ssa_version - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -@pytest.mark.skipif( - not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" -) -def test_initial_version_exists_for_state_variables(): - """ - In solidity you can write statements such as - uint a = a + 1, this test ensures that can be handled for state variables. - """ - src = """ - contract C { - uint a = a + 1; - } - """ - with slither_from_source(src, "0.4.0") as slither: - verify_properties_hold(slither) - c = slither.contracts[0] - f = c.functions[0] # There will be one artificial ctor function for the state vars - - addition = get_ssa_of_type(f, Binary)[0] - assert addition.type == BinaryType.ADDITION - assert isinstance(addition.variable_right, Constant) - a_0 = addition.variable_left - assert isinstance(a_0, StateIRVariable) - assert a_0.name == "a" - - assignment = get_ssa_of_type(f, Assignment)[0] - a_1 = assignment.lvalue - assert isinstance(a_1, StateIRVariable) - assert a_1.index == a_0.index + 1 - assert a_1.name == "a" - assert assignment.rvalue == addition.lvalue - - assert a_0.non_ssa_version == a_1.non_ssa_version - assert isinstance(a_0.non_ssa_version, StateVariable) - - # No conditional/other function interaction so no phis - assert len(get_ssa_of_type(f, Phi)) == 0 - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_initial_version_exists_for_state_variables_function_assign(): - """ - In solidity you can write statements such as - uint a = a + 1, this test ensures that can be handled for local variables. - """ - # TODO (hbrodin): Could be a detector that a is not used in f - src = """ - contract C { - uint a = f(); - - function f() internal returns(uint) { - return a; - } - } - """ - with slither_from_source(src) as slither: - verify_properties_hold(slither) - c = slither.contracts[0] - f, ctor = c.functions - if f.is_constructor_variables: - f, ctor = ctor, f - - # ctor should have a single call to f that assigns to a - # temporary variable, that is then assigned to a - - call = get_ssa_of_type(ctor, InternalCall)[0] - assert call.function == f - assign = get_ssa_of_type(ctor, Assignment)[0] - assert assign.rvalue == call.lvalue - assert isinstance(assign.lvalue, StateIRVariable) - assert assign.lvalue.name == "a" - - # f should have a phi node on entry of a0, a1 and should return - # a2 - phi = get_ssa_of_type(f, Phi)[0] - assert len(phi.rvalues) == 2 - assert assign.lvalue in phi.rvalues - - -@pytest.mark.skipif( - not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" -) -def test_return_local_before_assign(): - src = """ - // this require solidity < 0.5 - // a variable can be returned before declared. Ensure it can be - // handled by Slither. - contract A { - function local(bool my_bool) internal returns(uint){ - if(my_bool){ - return a_local; - } - - uint a_local = 10; - } - } - """ - with slither_from_source(src, "0.4.0") as slither: - f = slither.contracts[0].functions[0] - - ret = get_ssa_of_type(f, Return)[0] - assert len(ret.values) == 1 - assert ret.values[0].index == 0 - - assign = get_ssa_of_type(f, Assignment)[0] - assert assign.lvalue.index == 1 - assert assign.lvalue.non_ssa_version == ret.values[0].non_ssa_version - - -@pytest.mark.skipif( - not valid_version("0.5.0"), reason="Solidity version 0.5.0 not available on this platform" -) -def test_shadow_local(): - src = """ - contract A { - // this require solidity 0.5 - function shadowing_local() internal{ - uint local = 0; - { - uint local = 1; - { - uint local = 2; - } - } - } - } - """ - with slither_from_source(src, "0.5.0") as slither: - _dump_functions(slither.contracts[0]) - f = slither.contracts[0].functions[0] - - # Ensure all assignments are to a variable of index 1 - # not using the same IR var. - assert all(map(lambda x: x.lvalue.index == 1, get_ssa_of_type(f, Assignment))) - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_multiple_named_args_returns(): - """Verifies that named arguments and return values have correct versions - - Each arg/ret have an initial version, version 0, and is written once and should - then have version 1. - """ - src = """ - contract A { - function multi(uint arg1, uint arg2) internal returns (uint ret1, uint ret2) { - arg1 = arg1 + 1; - arg2 = arg2 + 2; - ret1 = arg1 + 3; - ret2 = arg2 + 4; - } - }""" - with slither_from_source(src) as slither: - verify_properties_hold(slither) - f = slither.contracts[0].functions[0] - - # Ensure all LocalIRVariables (not TemporaryVariables) have index 1 - assert all( - map( - lambda x: x.lvalue.index == 1 or not isinstance(x.lvalue, LocalIRVariable), - get_ssa_of_type(f, OperationWithLValue), - ) - ) - - -@pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.", strict=True) -def test_memory_array(): - src = """ - contract MemArray { - struct A { - uint val1; - uint val2; - } - - function test_array() internal { - A[] memory a= new A[](4); - // Create REF_0 -> a_1[2] - accept_array_entry(a[2]); - - // Create REF_1 -> a_1[3] - accept_array_entry(a[3]); - - A memory alocal; - accept_array_entry(alocal); - - } - - // val_1 = ϕ(val_0, REF_0, REF_1, alocal_1) - // val_0 is an unknown external value - function accept_array_entry(A memory val) public returns (uint) { - uint zero = 0; - b(zero); - // Create REF_2 -> val_1.val1 - return b(val.val1); - } - - function b(uint arg) public returns (uint){ - // arg_1 = ϕ(arg_0, zero_1, REF_2) - return arg + 1; - } - }""" - with slither_from_source(src) as slither: - c = slither.contracts[0] - - ftest_array, faccept, fb = c.functions - - # Locate REF_0/REF_1/alocal (they are all args to the call) - accept_args = [x.arguments[0] for x in get_ssa_of_type(ftest_array, InternalCall)] - - # Check entrypoint of accept_array_entry, it should contain a phi-node - # of expected rvalues - [phi_entry_accept] = get_ssa_of_type(faccept.entry_point, Phi) - for arg in accept_args: - assert arg in phi_entry_accept.rvalues - # NOTE(hbrodin): There should be an additional val_0 in the phi-node. - # That additional val_0 indicates an external caller of this function. - assert len(phi_entry_accept.rvalues) == len(accept_args) + 1 - - # Args used to invoke b - b_args = [x.arguments[0] for x in get_ssa_of_type(faccept, InternalCall)] - - # Check entrypoint of B, it should contain a phi-node of expected - # rvalues - [phi_entry_b] = get_ssa_of_type(fb.entry_point, Phi) - for arg in b_args: - assert arg in phi_entry_b.rvalues - - # NOTE(hbrodin): There should be an additional arg_0 (see comment about phi_entry_accept). - assert len(phi_entry_b.rvalues) == len(b_args) + 1 - - -@pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.", strict=True) -def test_storage_array(): - src = """ - contract StorageArray { - struct A { - uint val1; - uint val2; - } - - // NOTE(hbrodin): a is never written, should only become a_0. Same for astorage (astorage_0). Phi-nodes at entry - // should only add new versions of a state variable if it is actually written. - A[] a; - A astorage; - - function test_array() internal { - accept_array_entry(a[2]); - accept_array_entry(a[3]); - accept_array_entry(astorage); - } - - function accept_array_entry(A storage val) internal returns (uint) { - // val is either a[2], a[3] or astorage_0. Ideally this could be identified. - uint five = 5; - - // NOTE(hbrodin): If the following line is enabled, there would ideally be a phi-node representing writes - // to either a or astorage. - //val.val2 = 4; - b(five); - return b(val.val1); - } - - function b(uint value) public returns (uint){ - // Expect a phi-node at the entrypoint - // value_1 = ϕ(value_0, five_0, REF_x), where REF_x is the reference to val.val1 in accept_array_entry. - return value + 1; - } - }""" - with slither_from_source(src) as slither: - c = slither.contracts[0] - _dump_functions(c) - ftest, faccept, fb = c.functions - - # None of a/astorage is written so expect that there are no phi-nodes at entrypoint. - assert len(get_ssa_of_type(ftest.entry_point, Phi)) == 0 - - # Expect all references to start from index 0 (no writes) - assert all(x.variable_left.index == 0 for x in get_ssa_of_type(ftest, Index)) - - [phi_entry_accept] = get_ssa_of_type(faccept.entry_point, Phi) - assert len(phi_entry_accept.rvalues) == 3 # See comment in b above - - [phi_entry_b] = get_ssa_of_type(fb.entry_point, Phi) - assert len(phi_entry_b.rvalues) == 3 # See comment in b above - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_issue_468(): - """ - Ensure issue 468 is corrected as per - https://github.com/crytic/slither/issues/468#issuecomment-620974151 - The one difference is that we allow the phi-function at entry of f to - hold exit state which contains init state and state from branch, which - is a bit redundant. This could be further simplified. - """ - source = """ - contract State { - int state = 0; - function f(int a) public returns (int) { - // phi-node here for state - if (a < 1) { - state += 1; - } - // phi-node here for state - return state; - } - } - """ - with slither_from_source(source) as slither: - c = slither.get_contract_from_name("State")[0] - f = [x for x in c.functions if x.name == "f"][0] - - # Check that there is an entry point phi values for each later value - # plus one additional which is the initial value - entry_ssa = f.entry_point.irs_ssa - assert len(entry_ssa) == 1 - phi_entry = entry_ssa[0] - assert isinstance(phi_entry, Phi) - - # Find the second phi function - endif_node = [x for x in f.nodes if x.type == NodeType.ENDIF][0] - assert len(endif_node.irs_ssa) == 1 - phi_endif = endif_node.irs_ssa[0] - assert isinstance(phi_endif, Phi) - - # Ensure second phi-function contains init-phi and one additional - assert len(phi_endif.rvalues) == 2 - assert phi_entry.lvalue in phi_endif.rvalues - - # Find return-statement and ensure it returns the phi_endif - return_node = [x for x in f.nodes if x.type == NodeType.RETURN][0] - assert len(return_node.irs_ssa) == 1 - ret = return_node.irs_ssa[0] - assert len(ret.values) == 1 - assert phi_endif.lvalue in ret.values - - # Ensure that the phi_endif (which is the end-state for function as well) is in the entry_phi - assert phi_endif.lvalue in phi_entry.rvalues - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_issue_434(): - source = """ - contract Contract { - int public a; - function f() public { - g(); - a += 1; - } - - function e() public { - a -= 1; - } - - function g() public { - e(); - } - } - """ - with slither_from_source(source) as slither: - c = slither.get_contract_from_name("Contract")[0] - - e = [x for x in c.functions if x.name == "e"][0] - f = [x for x in c.functions if x.name == "f"][0] - g = [x for x in c.functions if x.name == "g"][0] - - # Ensure there is a phi-node at the beginning of f and e - phi_entry_e = get_ssa_of_type(e.entry_point, Phi)[0] - phi_entry_f = get_ssa_of_type(f.entry_point, Phi)[0] - # But not at g - assert len(get_ssa_of_type(g, Phi)) == 0 - - # Ensure that the final states of f and e are in the entry-states - add_f = get_filtered_ssa( - f, lambda x: isinstance(x, Binary) and x.type == BinaryType.ADDITION - )[0] - sub_e = get_filtered_ssa( - e, lambda x: isinstance(x, Binary) and x.type == BinaryType.SUBTRACTION - )[0] - assert add_f.lvalue in phi_entry_f.rvalues - assert add_f.lvalue in phi_entry_e.rvalues - assert sub_e.lvalue in phi_entry_f.rvalues - assert sub_e.lvalue in phi_entry_e.rvalues - - # Ensure there is a phi-node after call to g - call = get_ssa_of_type(f, InternalCall)[0] - idx = call.node.irs_ssa.index(call) - aftercall_phi = call.node.irs_ssa[idx + 1] - assert isinstance(aftercall_phi, Phi) - - # Ensure that phi node ^ is used in the addition afterwards - assert aftercall_phi.lvalue in (add_f.variable_left, add_f.variable_right) - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_issue_473(): - source = """ - contract Contract { - function f() public returns (int) { - int a = 1; - if (a > 0) { - a = 2; - } - if (a == 3) { - a = 6; - } - return a; - } - } - """ - with slither_from_source(source) as slither: - c = slither.get_contract_from_name("Contract")[0] - f = c.functions[0] - - phis = get_ssa_of_type(f, Phi) - return_value = get_ssa_of_type(f, Return)[0] - - # There shall be two phi functions - assert len(phis) == 2 - first_phi = phis[0] - second_phi = phis[1] - - # The second phi is the one being returned, if it's the first swap them (iteration order) - if first_phi.lvalue in return_value.values: - first_phi, second_phi = second_phi, first_phi - - # First phi is for [a=1 or a=2] - assert len(first_phi.rvalues) == 2 - - # second is for [a=6 or first phi] - assert first_phi.lvalue in second_phi.rvalues - assert len(second_phi.rvalues) == 2 - - # return is for second phi - assert len(return_value.values) == 1 - assert second_phi.lvalue in return_value.values - - -def test_issue_1748(): - source = """ - contract Contract { - uint[] arr; - function foo(uint i) public { - arr = [1]; - } - } - """ - 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, InitArray) diff --git a/tests/test_storage_layout.py b/tests/test_storage_layout.py deleted file mode 100644 index 525cd3b47..000000000 --- a/tests/test_storage_layout.py +++ /dev/null @@ -1,39 +0,0 @@ -import json -import os -import subprocess -from subprocess import PIPE, Popen - -from slither import Slither - -SLITHER_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -STORAGE_TEST_ROOT = os.path.join(SLITHER_ROOT, "tests", "storage-layout") - -# the storage layout has not yet changed between solidity versions so we will test with one version of the compiler - - -def test_storage_layout(): - subprocess.run(["solc-select", "use", "0.8.10"], stdout=subprocess.PIPE, check=True) - - test_item = os.path.join(STORAGE_TEST_ROOT, "storage_layout-0.8.10.sol") - - sl = Slither(test_item, solc_force_legacy_json=False, disallow_partial=True) - - with Popen(["solc", test_item, "--storage-layout"], stdout=PIPE) as process: - for line in process.stdout: # parse solc output - if '{"storage":[{' in line.decode("utf-8"): # find the storage layout - layout = iter(json.loads(line)["storage"]) - while True: - try: - for contract in sl.contracts: - curr_var = next(layout) - var_name = curr_var["label"] - sl_name = contract.variables_as_dict[var_name] - slot, offset = contract.compilation_unit.storage_layout_of( - contract, sl_name - ) - assert slot == int(curr_var["slot"]) - assert offset == int(curr_var["offset"]) - except StopIteration: - break - except KeyError as e: - print(f"not found {e} ") diff --git a/tests/check-erc/erc20.sol b/tests/tools/check-erc/erc20.sol similarity index 100% rename from tests/check-erc/erc20.sol rename to tests/tools/check-erc/erc20.sol diff --git a/tests/check-erc/test_1.txt b/tests/tools/check-erc/test_1.txt similarity index 100% rename from tests/check-erc/test_1.txt rename to tests/tools/check-erc/test_1.txt diff --git a/tests/check-kspec/safeAdd/safeAdd.sol b/tests/tools/check-kspec/safeAdd/safeAdd.sol similarity index 100% rename from tests/check-kspec/safeAdd/safeAdd.sol rename to tests/tools/check-kspec/safeAdd/safeAdd.sol diff --git a/tests/check-kspec/safeAdd/spec.md b/tests/tools/check-kspec/safeAdd/spec.md similarity index 100% rename from tests/check-kspec/safeAdd/spec.md rename to tests/tools/check-kspec/safeAdd/spec.md diff --git a/tests/check-kspec/test_1.txt b/tests/tools/check-kspec/test_1.txt similarity index 100% rename from tests/check-kspec/test_1.txt rename to tests/tools/check-kspec/test_1.txt diff --git a/tests/check-upgradeability/contractV1.sol b/tests/tools/check-upgradeability/contractV1.sol similarity index 100% rename from tests/check-upgradeability/contractV1.sol rename to tests/tools/check-upgradeability/contractV1.sol diff --git a/tests/check-upgradeability/contractV1_struct.sol b/tests/tools/check-upgradeability/contractV1_struct.sol similarity index 100% rename from tests/check-upgradeability/contractV1_struct.sol rename to tests/tools/check-upgradeability/contractV1_struct.sol diff --git a/tests/check-upgradeability/contractV2.sol b/tests/tools/check-upgradeability/contractV2.sol similarity index 100% rename from tests/check-upgradeability/contractV2.sol rename to tests/tools/check-upgradeability/contractV2.sol diff --git a/tests/check-upgradeability/contractV2_bug.sol b/tests/tools/check-upgradeability/contractV2_bug.sol similarity index 100% rename from tests/check-upgradeability/contractV2_bug.sol rename to tests/tools/check-upgradeability/contractV2_bug.sol diff --git a/tests/check-upgradeability/contractV2_bug2.sol b/tests/tools/check-upgradeability/contractV2_bug2.sol similarity index 100% rename from tests/check-upgradeability/contractV2_bug2.sol rename to tests/tools/check-upgradeability/contractV2_bug2.sol diff --git a/tests/check-upgradeability/contractV2_struct.sol b/tests/tools/check-upgradeability/contractV2_struct.sol similarity index 100% rename from tests/check-upgradeability/contractV2_struct.sol rename to tests/tools/check-upgradeability/contractV2_struct.sol diff --git a/tests/check-upgradeability/contractV2_struct_bug.sol b/tests/tools/check-upgradeability/contractV2_struct_bug.sol similarity index 100% rename from tests/check-upgradeability/contractV2_struct_bug.sol rename to tests/tools/check-upgradeability/contractV2_struct_bug.sol diff --git a/tests/check-upgradeability/contract_initialization.sol b/tests/tools/check-upgradeability/contract_initialization.sol similarity index 100% rename from tests/check-upgradeability/contract_initialization.sol rename to tests/tools/check-upgradeability/contract_initialization.sol diff --git a/tests/check-upgradeability/contract_v1_var_init.sol b/tests/tools/check-upgradeability/contract_v1_var_init.sol similarity index 100% rename from tests/check-upgradeability/contract_v1_var_init.sol rename to tests/tools/check-upgradeability/contract_v1_var_init.sol diff --git a/tests/check-upgradeability/contract_v2_constant.sol b/tests/tools/check-upgradeability/contract_v2_constant.sol similarity index 100% rename from tests/check-upgradeability/contract_v2_constant.sol rename to tests/tools/check-upgradeability/contract_v2_constant.sol diff --git a/tests/check-upgradeability/proxy.sol b/tests/tools/check-upgradeability/proxy.sol similarity index 100% rename from tests/check-upgradeability/proxy.sol rename to tests/tools/check-upgradeability/proxy.sol diff --git a/tests/check-upgradeability/test_1.txt b/tests/tools/check-upgradeability/test_1.txt similarity index 100% rename from tests/check-upgradeability/test_1.txt rename to tests/tools/check-upgradeability/test_1.txt diff --git a/tests/check-upgradeability/test_10.txt b/tests/tools/check-upgradeability/test_10.txt similarity index 100% rename from tests/check-upgradeability/test_10.txt rename to tests/tools/check-upgradeability/test_10.txt diff --git a/tests/check-upgradeability/test_11.txt b/tests/tools/check-upgradeability/test_11.txt similarity index 100% rename from tests/check-upgradeability/test_11.txt rename to tests/tools/check-upgradeability/test_11.txt diff --git a/tests/check-upgradeability/test_12.txt b/tests/tools/check-upgradeability/test_12.txt similarity index 100% rename from tests/check-upgradeability/test_12.txt rename to tests/tools/check-upgradeability/test_12.txt diff --git a/tests/check-upgradeability/test_13.txt b/tests/tools/check-upgradeability/test_13.txt similarity index 100% rename from tests/check-upgradeability/test_13.txt rename to tests/tools/check-upgradeability/test_13.txt diff --git a/tests/check-upgradeability/test_2.txt b/tests/tools/check-upgradeability/test_2.txt similarity index 100% rename from tests/check-upgradeability/test_2.txt rename to tests/tools/check-upgradeability/test_2.txt diff --git a/tests/check-upgradeability/test_3.txt b/tests/tools/check-upgradeability/test_3.txt similarity index 100% rename from tests/check-upgradeability/test_3.txt rename to tests/tools/check-upgradeability/test_3.txt diff --git a/tests/check-upgradeability/test_4.txt b/tests/tools/check-upgradeability/test_4.txt similarity index 100% rename from tests/check-upgradeability/test_4.txt rename to tests/tools/check-upgradeability/test_4.txt diff --git a/tests/check-upgradeability/test_5.txt b/tests/tools/check-upgradeability/test_5.txt similarity index 100% rename from tests/check-upgradeability/test_5.txt rename to tests/tools/check-upgradeability/test_5.txt diff --git a/tests/check-upgradeability/test_6.txt b/tests/tools/check-upgradeability/test_6.txt similarity index 100% rename from tests/check-upgradeability/test_6.txt rename to tests/tools/check-upgradeability/test_6.txt diff --git a/tests/check-upgradeability/test_7.txt b/tests/tools/check-upgradeability/test_7.txt similarity index 100% rename from tests/check-upgradeability/test_7.txt rename to tests/tools/check-upgradeability/test_7.txt diff --git a/tests/check-upgradeability/test_8.txt b/tests/tools/check-upgradeability/test_8.txt similarity index 100% rename from tests/check-upgradeability/test_8.txt rename to tests/tools/check-upgradeability/test_8.txt diff --git a/tests/check-upgradeability/test_9.txt b/tests/tools/check-upgradeability/test_9.txt similarity index 100% rename from tests/check-upgradeability/test_9.txt rename to tests/tools/check-upgradeability/test_9.txt diff --git a/tests/flat/file1.sol b/tests/tools/flat/file1.sol similarity index 100% rename from tests/flat/file1.sol rename to tests/tools/flat/file1.sol diff --git a/tests/flat/file2.sol b/tests/tools/flat/file2.sol similarity index 100% rename from tests/flat/file2.sol rename to tests/tools/flat/file2.sol diff --git a/tests/test_read_storage.py b/tests/tools/read-storage/test_read_storage.py similarity index 96% rename from tests/test_read_storage.py rename to tests/tools/read-storage/test_read_storage.py index 7aec6ff40..64b175711 100644 --- a/tests/test_read_storage.py +++ b/tests/tools/read-storage/test_read_storage.py @@ -14,8 +14,8 @@ from web3.contract import Contract from slither import Slither from slither.tools.read_storage import SlitherReadStorage -SLITHER_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -STORAGE_TEST_ROOT = os.path.join(SLITHER_ROOT, "tests", "storage-layout") +TOOLS_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +STORAGE_TEST_ROOT = os.path.join(TOOLS_ROOT, "storage-layout") # pylint: disable=too-few-public-methods class GanacheInstance: diff --git a/tests/simil/test_1.txt b/tests/tools/simil/test_1.txt similarity index 100% rename from tests/simil/test_1.txt rename to tests/tools/simil/test_1.txt diff --git a/tests/using-for-global-collision/src/MyTypeA.sol b/tests/using-for-global-collision/src/MyTypeA.sol deleted file mode 100644 index dbb00faf2..000000000 --- a/tests/using-for-global-collision/src/MyTypeA.sol +++ /dev/null @@ -1,2 +0,0 @@ -import "./MyTypeA/Type.sol"; -import "./MyTypeA/Math.sol"; \ No newline at end of file diff --git a/tests/using-for-global-collision/src/MyTypeA/Casting.sol b/tests/using-for-global-collision/src/MyTypeA/Casting.sol deleted file mode 100644 index c166436fe..000000000 --- a/tests/using-for-global-collision/src/MyTypeA/Casting.sol +++ /dev/null @@ -1,4 +0,0 @@ -import "./Type.sol"; -function unwrap(MyTypeA a) pure returns (int256) { - return MyTypeA.unwrap(a); -} \ No newline at end of file diff --git a/tests/using-for-global-collision/src/MyTypeA/Math.sol b/tests/using-for-global-collision/src/MyTypeA/Math.sol deleted file mode 100644 index 21f7c7925..000000000 --- a/tests/using-for-global-collision/src/MyTypeA/Math.sol +++ /dev/null @@ -1,5 +0,0 @@ -import "./Type.sol"; - -function mul(MyTypeA a, MyTypeA b) pure returns (MyTypeA) { - return MyTypeA.wrap(MyTypeA.unwrap(a) * MyTypeA.unwrap(b)); -} diff --git a/tests/using-for-global-collision/src/MyTypeA/Type.sol b/tests/using-for-global-collision/src/MyTypeA/Type.sol deleted file mode 100644 index 0973c7869..000000000 --- a/tests/using-for-global-collision/src/MyTypeA/Type.sol +++ /dev/null @@ -1,6 +0,0 @@ -import "./Casting.sol" as C; -import "./Math.sol" as M; - -type MyTypeA is int256; - -using {M.mul, C.unwrap} for MyTypeA global; \ No newline at end of file diff --git a/tests/using-for-global-collision/src/MyTypeB.sol b/tests/using-for-global-collision/src/MyTypeB.sol deleted file mode 100644 index 3ddde2ac6..000000000 --- a/tests/using-for-global-collision/src/MyTypeB.sol +++ /dev/null @@ -1,2 +0,0 @@ -import "./MyTypeB/Type.sol"; -import "./MyTypeB/Math.sol"; \ No newline at end of file diff --git a/tests/using-for-global-collision/src/MyTypeB/Casting.sol b/tests/using-for-global-collision/src/MyTypeB/Casting.sol deleted file mode 100644 index c400a9112..000000000 --- a/tests/using-for-global-collision/src/MyTypeB/Casting.sol +++ /dev/null @@ -1,4 +0,0 @@ -import "./Type.sol"; -function unwrap(MyTypeB a) pure returns (uint256) { - return MyTypeB.unwrap(a); -} \ No newline at end of file diff --git a/tests/using-for-global-collision/src/MyTypeB/Math.sol b/tests/using-for-global-collision/src/MyTypeB/Math.sol deleted file mode 100644 index 24ee1a582..000000000 --- a/tests/using-for-global-collision/src/MyTypeB/Math.sol +++ /dev/null @@ -1,6 +0,0 @@ -import "./Type.sol"; - -function mul(MyTypeB a, MyTypeB b) pure returns (MyTypeB) { - return MyTypeB.wrap(MyTypeB.unwrap(a) * MyTypeB.unwrap(b)); -} - diff --git a/tests/using-for-global-collision/src/MyTypeB/Type.sol b/tests/using-for-global-collision/src/MyTypeB/Type.sol deleted file mode 100644 index a66b65f5d..000000000 --- a/tests/using-for-global-collision/src/MyTypeB/Type.sol +++ /dev/null @@ -1,6 +0,0 @@ -import "./Casting.sol" as C; -import "./Math.sol" as M; - -type MyTypeB is uint256; - -using {M.mul, C.unwrap} for MyTypeB global; \ No newline at end of file diff --git a/tests/using-for-global-collision/src/Test.sol b/tests/using-for-global-collision/src/Test.sol deleted file mode 100644 index 013570048..000000000 --- a/tests/using-for-global-collision/src/Test.sol +++ /dev/null @@ -1,7 +0,0 @@ -import "./MyTypeB.sol"; - -contract UsingForGlobalTopLevelCollision { - function mulAndUnwrap(MyTypeB x, MyTypeB y) external pure returns (uint256 z) { - z = x.mul(y).unwrap(); - } -} \ No newline at end of file diff --git a/tests/utils.py b/tests/utils.py new file mode 100644 index 000000000..1560cc7ce --- /dev/null +++ b/tests/utils.py @@ -0,0 +1,14 @@ +import inspect +from slither import Slither +from slither.detectors import all_detectors +from slither.detectors.abstract_detector import AbstractDetector + + +def _run_all_detectors(slither: Slither) -> None: + detectors = [getattr(all_detectors, name) for name in dir(all_detectors)] + detectors = [d for d in detectors if inspect.isclass(d) and issubclass(d, AbstractDetector)] + + for detector in detectors: + slither.register_detector(detector) + + slither.run_detectors() From 519ebda2bd277f502efca3fd18b649a4888ff27c Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 20 Mar 2023 16:10:38 -0500 Subject: [PATCH 103/193] update workflows --- .github/workflows/IR.yml | 2 +- .github/workflows/detectors.yml | 4 +--- .github/workflows/features.yml | 9 +-------- .github/workflows/parser.yml | 2 +- .github/workflows/read_storage.yml | 6 +----- 5 files changed, 5 insertions(+), 18 deletions(-) diff --git a/.github/workflows/IR.yml b/.github/workflows/IR.yml index 02a264f8e..de2023ba9 100644 --- a/.github/workflows/IR.yml +++ b/.github/workflows/IR.yml @@ -48,4 +48,4 @@ jobs: - name: Test with pytest run: | - pytest tests/test_ssa_generation.py \ No newline at end of file + pytest tests/slithir/ \ No newline at end of file diff --git a/.github/workflows/detectors.yml b/.github/workflows/detectors.yml index 05e81275d..adfcd038b 100644 --- a/.github/workflows/detectors.yml +++ b/.github/workflows/detectors.yml @@ -38,8 +38,6 @@ jobs: - name: Install dependencies run: | pip install ".[dev]" - - solc-select use 0.7.3 --always-install - name: Test with pytest run: | - pytest tests/test_detectors.py + pytest tests/e2e/detectors/test_detectors.py diff --git a/.github/workflows/features.yml b/.github/workflows/features.yml index 2c112e0aa..8f88b86dd 100644 --- a/.github/workflows/features.yml +++ b/.github/workflows/features.yml @@ -39,7 +39,6 @@ jobs: run: | pip install ".[dev]" - solc-select use 0.8.0 --always-install cd tests/test_node_modules/ npm install hardhat @@ -47,10 +46,4 @@ jobs: - name: Test with pytest run: | - pytest tests/test_features.py - pytest tests/test_constant_folding.py - pytest tests/slithir/test_ternary_expressions.py - pytest tests/slithir/test_operation_reads.py - pytest tests/test_functions_ids.py - pytest tests/test_function.py - pytest tests/test_source_mapping.py + pytest tests/unit/ \ No newline at end of file diff --git a/.github/workflows/parser.yml b/.github/workflows/parser.yml index 7b2a9efc8..90c14eb0c 100644 --- a/.github/workflows/parser.yml +++ b/.github/workflows/parser.yml @@ -46,4 +46,4 @@ jobs: - name: Test with pytest run: | - pytest tests/test_ast_parsing.py -n auto + pytest tests/e2e/solc_parsing/test_ast_parsing.py -n auto diff --git a/.github/workflows/read_storage.yml b/.github/workflows/read_storage.yml index b9ff687ff..3b4c6a17c 100644 --- a/.github/workflows/read_storage.yml +++ b/.github/workflows/read_storage.yml @@ -46,8 +46,4 @@ jobs: - name: Run slither-read-storage run: | - pytest tests/test_read_storage.py - - - name: Run storage layout tests - run: | - pytest tests/test_storage_layout.py + pytest tests/tools From 4d1f10e74591b05bbc4741f44eed8ac63057dc24 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 20 Mar 2023 23:16:26 -0500 Subject: [PATCH 104/193] correct detector artifacts --- ...cy-benign.sol.0.5.16.ReentrancyBenign.json | 1398 ++++++------- ...cy-benign.sol.0.6.11.ReentrancyBenign.json | 1778 ++++++++--------- ...ncy-benign.sol.0.7.6.ReentrancyBenign.json | 1432 ++++++------- .../dynamic_1.sol.0.5.16.IncorrectSolc.json | 6 +- .../dynamic_2.sol.0.5.16.IncorrectSolc.json | 6 +- .../dynamic_1.sol.0.6.11.IncorrectSolc.json | 6 +- .../dynamic_2.sol.0.6.11.IncorrectSolc.json | 20 +- .../dynamic_1.sol.0.7.6.IncorrectSolc.json | 20 +- .../dynamic_2.sol.0.7.6.IncorrectSolc.json | 6 +- ....sol.0.5.10.StorageSignedIntegerArray.json | 756 +------ ....sol.0.5.16.StorageSignedIntegerArray.json | 756 +------ ....UninitializedFunctionPtrsConstructor.json | 420 +--- 12 files changed, 2208 insertions(+), 4396 deletions(-) diff --git a/tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json b/tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json index 667e6c92f..6b0fc0322 100644 --- a/tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json +++ b/tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json @@ -1,531 +1,5 @@ [ [ - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "success = msg.sender.call()", - "source_mapping": { - "start": 368, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "success = msg.sender.call()", - "source_mapping": { - "start": 368, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "counter += 1", - "source_mapping": { - "start": 471, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- success = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#21)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [success = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L21)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L16-L22", - "id": "01bde163c3436f90414f580ead28b7b0d652f74fdc84312f64c4fdf9f425628f", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, { "elements": [ { @@ -1439,20 +913,22 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 496, - "length": 135, + "start": 335, + "length": 155, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -1544,42 +1020,44 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "bad0()" } }, { "type": "node", - "name": "success = target.call()", + "name": "(success) = msg.sender.call()", "source_mapping": { - "start": 543, - "length": 33, + "start": 368, + "length": 37, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 25 + 17 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 496, - "length": 135, + "start": 335, + "length": 155, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -1671,7 +1149,7 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "bad0()" } } }, @@ -1681,37 +1159,39 @@ }, { "type": "node", - "name": "success = target.call()", + "name": "(success) = msg.sender.call()", "source_mapping": { - "start": 543, - "length": 33, + "start": 368, + "length": 37, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 25 + 17 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 496, - "length": 135, + "start": 335, + "length": 155, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -1803,7 +1283,7 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "bad0()" } } }, @@ -1815,14 +1295,14 @@ "type": "node", "name": "counter += 1", "source_mapping": { - "start": 612, + "start": 471, "length": 12, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 27 + 21 ], "starting_column": 9, "ending_column": 21 @@ -1830,20 +1310,22 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad0", "source_mapping": { - "start": 496, - "length": 135, + "start": 335, + "length": 155, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 16, + 17, + 18, + 19, + 20, + 21, + 22 ], "starting_column": 5, "ending_column": 6 @@ -1935,7 +1417,7 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "bad0()" } } }, @@ -1945,10 +1427,10 @@ } } ], - "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#27)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L27)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L24-L28", - "id": "5bc9d24aecf09e047b2ce2b3f7702daec3f28194eeb19cf372aebd60e4b83cb9", + "description": "Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#21)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L21)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L16-L22", + "id": "244b43e33a9621616a0f97aece5e591ba53563a2178624d90cb056422988824d", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -2709,25 +2191,288 @@ "starting_column": 1, "ending_column": 0 } - }, - "signature": "bad4(address)" + }, + "signature": "bad4(address)" + } + }, + { + "type": "node", + "name": "externalCaller(target)", + "source_mapping": { + "start": 1064, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 48 + ], + "starting_column": 9, + "ending_column": 31 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad4", + "source_mapping": { + "start": 1017, + "length": 172, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 47, + 48, + 49, + 50, + 51, + 52 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad4(address)" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls" + } + }, + { + "type": "node", + "name": "address(target).call()", + "source_mapping": { + "start": 1387, + "length": 24, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 61 + ], + "starting_column": 9, + "ending_column": 33 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "externalCaller", + "source_mapping": { + "start": 1329, + "length": 89, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 60, + 61, + 62 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "externalCaller(address)" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "externalCaller(target)", + "name": "ethSender(address(0))", "source_mapping": { - "start": 1064, - "length": 22, + "start": 1096, + "length": 21, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 48 + 49 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 30 }, "type_specific_fields": { "parent": { @@ -2848,35 +2593,35 @@ }, { "type": "node", - "name": "address(target).call()", + "name": "address(target).call.value(1)()", "source_mapping": { - "start": 1387, - "length": 24, + "start": 1477, + "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 65 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "ethSender", "source_mapping": { - "start": 1329, - "length": 89, + "start": 1424, + "length": 93, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -2968,7 +2713,7 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "ethSender(address)" } } }, @@ -2978,19 +2723,19 @@ }, { "type": "node", - "name": "ethSender(address(0))", + "name": "externalCaller(target)", "source_mapping": { - "start": 1096, - "length": 21, + "start": 1064, + "length": 22, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 49 + 48 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 31 }, "type_specific_fields": { "parent": { @@ -3106,40 +2851,40 @@ } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "address(target).call.value(1)()", + "name": "address(target).call()", "source_mapping": { - "start": 1477, - "length": 33, + "start": 1387, + "length": 24, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 61 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "externalCaller", "source_mapping": { - "start": 1424, - "length": 93, + "start": 1329, + "length": 89, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -3231,7 +2976,7 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "externalCaller(address)" } } }, @@ -3241,19 +2986,19 @@ }, { "type": "node", - "name": "externalCaller(target)", + "name": "ethSender(address(0))", "source_mapping": { - "start": 1064, - "length": 22, + "start": 1096, + "length": 21, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 48 + 49 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 30 }, "type_specific_fields": { "parent": { @@ -3374,35 +3119,168 @@ }, { "type": "node", - "name": "address(target).call()", + "name": "address(target).call.value(1)()", "source_mapping": { - "start": 1387, - "length": 24, + "start": 1477, + "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 65 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "ethSender", + "source_mapping": { + "start": 1424, + "length": 93, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 64, + 65, + 66 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "ethSender(address)" + } + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" + } + }, + { + "type": "node", + "name": "varChanger()", + "source_mapping": { + "start": 1127, + "length": 12, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 50 + ], + "starting_column": 9, + "ending_column": 21 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad4", "source_mapping": { - "start": 1329, - "length": 89, + "start": 1017, + "length": 172, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -3494,48 +3372,46 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "bad4(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } }, { "type": "node", - "name": "ethSender(address(0))", + "name": "anotherVariableToChange ++", "source_mapping": { - "start": 1096, - "length": 21, + "start": 1563, + "length": 25, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 49 + 69 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "varChanger", "source_mapping": { - "start": 1017, - "length": 172, + "start": 1523, + "length": 72, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 68, + 69, + 70 ], "starting_column": 5, "ending_column": 6 @@ -3627,26 +3503,148 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "varChanger()" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" + } + } + ], + "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#65)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L65)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L47-L52", + "id": "a2ff3f26be25c48b10b66f8121b35b0674cfb38309a1f6ba3788852f13e7d166", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "bad1", + "source_mapping": { + "start": 496, + "length": 135, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 24, + 25, + 26, + 27, + 28 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad1(address)" } }, { "type": "node", - "name": "address(target).call.value(1)()", + "name": "(success) = target.call()", "source_mapping": { - "start": 1477, + "start": 543, "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 25 ], "starting_column": 9, "ending_column": 42 @@ -3654,18 +3652,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "bad1", "source_mapping": { - "start": 1424, - "length": 93, + "start": 496, + "length": 135, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 24, + 25, + 26, + 27, + 28 ], "starting_column": 5, "ending_column": 6 @@ -3757,48 +3757,47 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "bad1(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "varChanger()", + "name": "(success) = target.call()", "source_mapping": { - "start": 1127, - "length": 12, + "start": 543, + "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 50 + 25 ], "starting_column": 9, - "ending_column": 21 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad1", "source_mapping": { - "start": 1017, - "length": 172, + "start": 496, + "length": 135, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 24, + 25, + 26, + 27, + 28 ], "starting_column": 5, "ending_column": 6 @@ -3890,46 +3889,47 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad1(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "anotherVariableToChange ++", + "name": "counter += 1", "source_mapping": { - "start": 1563, - "length": 25, + "start": 612, + "length": 12, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 69 + 27 ], "starting_column": 9, - "ending_column": 34 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "varChanger", + "name": "bad1", "source_mapping": { - "start": 1523, - "length": 72, + "start": 496, + "length": 135, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 68, - 69, - 70 + 24, + 25, + 26, + 27, + 28 ], "starting_column": 5, "ending_column": 6 @@ -4021,20 +4021,20 @@ "ending_column": 0 } }, - "signature": "varChanger()" + "signature": "bad1(address)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "variable_name": "counter" } } ], - "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#65)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L65)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L47-L52", - "id": "a2ff3f26be25c48b10b66f8121b35b0674cfb38309a1f6ba3788852f13e7d166", + "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#27)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [(success) = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L27)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L24-L28", + "id": "e7250d07da93991bb8f92df7697c008c36ec785214f7836c4f1c65b37e175309", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -4158,7 +4158,7 @@ }, { "type": "node", - "name": "success = target.call()", + "name": "(success) = target.call()", "source_mapping": { "start": 684, "length": 33, @@ -4432,7 +4432,7 @@ }, { "type": "node", - "name": "success = target.call()", + "name": "(success) = target.call()", "source_mapping": { "start": 684, "length": 33, @@ -4843,10 +4843,10 @@ } } ], - "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#31)\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#33)\n\tExternal calls sending eth:\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#34)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L31)\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L33)\n\tExternal calls sending eth:\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L34)\n", + "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#31)\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#33)\n\tExternal calls sending eth:\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#34)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [(success) = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L31)\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L33)\n\tExternal calls sending eth:\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L34)\n", "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L30-L39", - "id": "f8646c83125ca7b793d7373531a89a1a2729354823bef56e778fd17c328440ff", + "id": "efb5fc52ea69459d644e5074daf0207502967de06e5b3cf876ae71a564d72d98", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" diff --git a/tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json b/tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json index 6cf05ac89..3911f2b0b 100644 --- a/tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json +++ b/tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json @@ -4,25 +4,21 @@ "elements": [ { "type": "function", - "name": "bad2", + "name": "bad4", "source_mapping": { - "start": 637, - "length": 243, + "start": 1017, + "length": 172, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -114,47 +110,43 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad4(address)" } }, { "type": "node", - "name": "success = target.call()", + "name": "externalCaller(target)", "source_mapping": { - "start": 684, - "length": 33, + "start": 1064, + "length": 22, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 31 + 48 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad4", "source_mapping": { - "start": 637, - "length": 243, + "start": 1017, + "length": 172, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -246,7 +238,7 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad4(address)" } } }, @@ -256,42 +248,35 @@ }, { "type": "node", - "name": "address(target).call.value(1000)()", + "name": "address(target).call()", "source_mapping": { - "start": 754, - "length": 36, + "start": 1387, + "length": 24, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 33 + 61 ], - "starting_column": 13, - "ending_column": 49 + "starting_column": 9, + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "externalCaller", "source_mapping": { - "start": 637, - "length": 243, + "start": 1329, + "length": 89, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -383,52 +368,48 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "externalCaller(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "success = target.call()", + "name": "ethSender(address(0))", "source_mapping": { - "start": 684, - "length": 33, + "start": 1096, + "length": 21, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 31 + 49 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 30 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad4", "source_mapping": { - "start": 637, - "length": 243, + "start": 1017, + "length": 172, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -520,52 +501,45 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad4(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "address(target).call.value(1000)()", + "name": "address(target).call.value(1)()", "source_mapping": { - "start": 754, - "length": 36, + "start": 1477, + "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 33 + 65 ], - "starting_column": 13, - "ending_column": 49 + "starting_column": 9, + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "ethSender", "source_mapping": { - "start": 637, - "length": 243, + "start": 1424, + "length": 93, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -657,7 +631,7 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "ethSender(address)" } } }, @@ -667,42 +641,38 @@ }, { "type": "node", - "name": "counter += 1", + "name": "externalCaller(target)", "source_mapping": { - "start": 804, - "length": 12, + "start": 1064, + "length": 22, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 34 + 48 ], - "starting_column": 13, - "ending_column": 25 + "starting_column": 9, + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad4", "source_mapping": { - "start": 637, - "length": 243, + "start": 1017, + "length": 172, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -794,293 +764,37 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad4(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" + "underlying_type": "external_calls_sending_eth" } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#31)\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#33)\n\tExternal calls sending eth:\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#34)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L31)\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L33)\n\tExternal calls sending eth:\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L34)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L30-L39", - "id": "0da08e49d8779324ee3c6f0ea7fb1c4ac9a3b89e9cd60f9dc856730f747485bf", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ + }, { - "type": "function", - "name": "bad4", + "type": "node", + "name": "address(target).call()", "source_mapping": { - "start": 1017, - "length": 172, + "start": 1387, + "length": 24, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 61 ], - "starting_column": 5, - "ending_column": 6 + "starting_column": 9, + "ending_column": 33 }, "type_specific_fields": { "parent": { - "type": "contract", - "name": "ReentrancyBenign", + "type": "function", + "name": "externalCaller", "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 1064, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1329, - "length": 89, + "start": 1329, + "length": 89, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", @@ -1318,7 +1032,7 @@ } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { @@ -1453,19 +1167,19 @@ }, { "type": "node", - "name": "externalCaller(target)", + "name": "varChanger()", "source_mapping": { - "start": 1064, - "length": 22, + "start": 1127, + "length": 12, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 48 + 50 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 21 }, "type_specific_fields": { "parent": { @@ -1581,40 +1295,41 @@ } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } }, { "type": "node", - "name": "address(target).call()", + "name": "anotherVariableToChange ++", "source_mapping": { - "start": 1387, - "length": 24, + "start": 1563, + "length": 25, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 69 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "varChanger", "source_mapping": { - "start": 1329, - "length": 89, + "start": 1523, + "length": 72, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 68, + 69, + 70 ], "starting_column": 5, "ending_column": 6 @@ -1706,48 +1421,169 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "varChanger()" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } - }, + } + ], + "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L47-L52", + "id": "29c069745bf3c12b90fd74cf138f7300e077b078dae17e285fd528aaacb7a149", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ { - "type": "node", - "name": "ethSender(address(0))", + "type": "function", + "name": "bad3", "source_mapping": { - "start": 1096, - "length": 21, + "start": 886, + "length": 125, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 49 + 41, + 42, + 43, + 44, + 45 ], - "starting_column": 9, - "ending_column": 30 + "starting_column": 5, + "ending_column": 6 }, "type_specific_fields": { "parent": { - "type": "function", - "name": "bad4", + "type": "contract", + "name": "ReentrancyBenign", "source_mapping": { - "start": 1017, - "length": 172, + "start": 28, + "length": 1569, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, 47, 48, 49, 50, 51, - 52 + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad3(address)" + } + }, + { + "type": "node", + "name": "externalCaller(target)", + "source_mapping": { + "start": 933, + "length": 22, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 42 + ], + "starting_column": 9, + "ending_column": 31 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "bad3", + "source_mapping": { + "start": 886, + "length": 125, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -1839,45 +1675,45 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad3(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "address(target).call.value(1)()", + "name": "address(target).call()", "source_mapping": { - "start": 1477, - "length": 33, + "start": 1387, + "length": 24, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 61 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "externalCaller", "source_mapping": { - "start": 1424, - "length": 93, + "start": 1329, + "length": 89, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -1969,7 +1805,7 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "externalCaller(address)" } } }, @@ -1979,38 +1815,37 @@ }, { "type": "node", - "name": "varChanger()", + "name": "externalCaller(target)", "source_mapping": { - "start": 1127, - "length": 12, + "start": 933, + "length": 22, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 50 + 42 ], "starting_column": 9, - "ending_column": 21 + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad3", "source_mapping": { - "start": 1017, - "length": 172, + "start": 886, + "length": 125, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -2102,46 +1937,45 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad3(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "anotherVariableToChange ++", + "name": "address(target).call()", "source_mapping": { - "start": 1563, - "length": 25, + "start": 1387, + "length": 24, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 69 + 61 ], "starting_column": 9, - "ending_column": 34 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "varChanger", + "name": "externalCaller", "source_mapping": { - "start": 1523, - "length": 72, + "start": 1329, + "length": 89, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 68, - 69, - 70 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -2233,169 +2067,178 @@ "ending_column": 0 } }, - "signature": "varChanger()" + "signature": "externalCaller(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "underlying_type": "external_calls_sending_eth" } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L47-L52", - "id": "29c069745bf3c12b90fd74cf138f7300e077b078dae17e285fd528aaacb7a149", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ + }, { - "type": "function", - "name": "bad3", + "type": "node", + "name": "varChanger()", "source_mapping": { - "start": 886, - "length": 125, + "start": 965, + "length": 12, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 43 ], - "starting_column": 5, - "ending_column": 6 + "starting_column": 9, + "ending_column": 21 }, "type_specific_fields": { "parent": { - "type": "contract", - "name": "ReentrancyBenign", + "type": "function", + "name": "bad3", "source_mapping": { - "start": 28, - "length": 1569, + "start": 886, + "length": 125, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, 41, 42, 43, 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 + 45 ], - "starting_column": 1, - "ending_column": 0 + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad3(address)" } - }, - "signature": "bad3(address)" + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } }, { "type": "node", - "name": "externalCaller(target)", + "name": "anotherVariableToChange ++", "source_mapping": { - "start": 933, - "length": 22, + "start": 1563, + "length": 25, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 42 + 69 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "varChanger", "source_mapping": { - "start": 886, - "length": 125, + "start": 1523, + "length": 72, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 68, + 69, + 70 ], "starting_column": 5, "ending_column": 6 @@ -2487,45 +2330,179 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "varChanger()" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" + } + } + ], + "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#41-45):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#42)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#61)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#43)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L41-L45):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L42)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L61)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L43)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L41-L45", + "id": "56fad41e825218b4ea67b8f40f78becc7db05f1f9b3a79becede85b495be20f8", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "bad2", + "source_mapping": { + "start": 637, + "length": 243, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad2(address)" } }, { "type": "node", - "name": "address(target).call()", + "name": "(success) = target.call()", "source_mapping": { - "start": 1387, - "length": 24, + "start": 684, + "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 31 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "bad2", "source_mapping": { - "start": 1329, - "length": 89, + "start": 637, + "length": 243, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -2617,47 +2594,52 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "bad2(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "externalCaller(target)", + "name": "address(target).call.value(1000)()", "source_mapping": { - "start": 933, - "length": 22, + "start": 754, + "length": 36, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 42 + 33 ], - "starting_column": 9, - "ending_column": 31 + "starting_column": 13, + "ending_column": 49 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad2", "source_mapping": { - "start": 886, - "length": 125, + "start": 637, + "length": 243, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -2749,45 +2731,52 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad2(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "address(target).call()", + "name": "(success) = target.call()", "source_mapping": { - "start": 1387, - "length": 24, + "start": 684, + "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 31 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "bad2", "source_mapping": { - "start": 1329, - "length": 89, + "start": 637, + "length": 243, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -2879,7 +2868,7 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "bad2(address)" } } }, @@ -2889,37 +2878,42 @@ }, { "type": "node", - "name": "varChanger()", + "name": "address(target).call.value(1000)()", "source_mapping": { - "start": 965, - "length": 12, + "start": 754, + "length": 36, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 43 + 33 ], - "starting_column": 9, - "ending_column": 21 + "starting_column": 13, + "ending_column": 49 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad2", "source_mapping": { - "start": 886, - "length": 125, + "start": 637, + "length": 243, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -3011,46 +3005,52 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad2(address)" } } }, "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "anotherVariableToChange ++", + "name": "counter += 1", "source_mapping": { - "start": 1563, - "length": 25, + "start": 804, + "length": 12, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 69 + 34 ], - "starting_column": 9, - "ending_column": 34 + "starting_column": 13, + "ending_column": 25 }, "type_specific_fields": { "parent": { "type": "function", - "name": "varChanger", + "name": "bad2", "source_mapping": { - "start": 1523, - "length": 72, + "start": 637, + "length": 243, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 68, - 69, - 70 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -3142,20 +3142,20 @@ "ending_column": 0 } }, - "signature": "varChanger()" + "signature": "bad2(address)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "variable_name": "counter" } } ], - "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#41-45):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#42)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#61)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#43)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L41-L45):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L42)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L61)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L43)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L41-L45", - "id": "56fad41e825218b4ea67b8f40f78becc7db05f1f9b3a79becede85b495be20f8", + "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#31)\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#33)\n\tExternal calls sending eth:\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#34)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [(success) = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L31)\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L33)\n\tExternal calls sending eth:\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L34)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L30-L39", + "id": "61f1a1c0a75fec4cea251d935d09700f433422562fac941b49c4060ca13c43cb", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -3164,20 +3164,20 @@ "elements": [ { "type": "function", - "name": "bad5", + "name": "bad1", "source_mapping": { - "start": 1195, - "length": 128, + "start": 496, + "length": 135, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54, - 55, - 56, - 57, - 58 + 24, + 25, + 26, + 27, + 28 ], "starting_column": 5, "ending_column": 6 @@ -3269,42 +3269,42 @@ "ending_column": 0 } }, - "signature": "bad5(address)" + "signature": "bad1(address)" } }, { "type": "node", - "name": "ethSender(address(0))", + "name": "(success) = target.call()", "source_mapping": { - "start": 1242, - "length": 21, + "start": 543, + "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 55 + 25 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad1", "source_mapping": { - "start": 1195, - "length": 128, + "start": 496, + "length": 135, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54, - 55, - 56, - 57, - 58 + 24, + 25, + 26, + 27, + 28 ], "starting_column": 5, "ending_column": 6 @@ -3396,7 +3396,7 @@ "ending_column": 0 } }, - "signature": "bad5(address)" + "signature": "bad1(address)" } } }, @@ -3406,16 +3406,16 @@ }, { "type": "node", - "name": "address(target).call.value(1)()", + "name": "(success) = target.call()", "source_mapping": { - "start": 1477, + "start": 543, "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 25 ], "starting_column": 9, "ending_column": 42 @@ -3423,18 +3423,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "bad1", "source_mapping": { - "start": 1424, - "length": 93, + "start": 496, + "length": 135, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 24, + 25, + 26, + 27, + 28 ], "starting_column": 5, "ending_column": 6 @@ -3526,7 +3528,7 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "bad1(address)" } } }, @@ -3536,168 +3538,37 @@ }, { "type": "node", - "name": "varChanger()", - "source_mapping": { - "start": 1273, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 56 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1195, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", + "name": "counter += 1", "source_mapping": { - "start": 1563, - "length": 25, + "start": 612, + "length": 12, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 69 + 27 ], "starting_column": 9, - "ending_column": 34 + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "varChanger", + "name": "bad1", "source_mapping": { - "start": 1523, - "length": 72, + "start": 496, + "length": 135, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 68, - 69, - 70 + 24, + 25, + 26, + 27, + 28 ], "starting_column": 5, "ending_column": 6 @@ -3789,20 +3660,20 @@ "ending_column": 0 } }, - "signature": "varChanger()" + "signature": "bad1(address)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" + "variable_name": "counter" } } ], - "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#54-58):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#55)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#56)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L54-L58):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L55)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L56)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L54-L58", - "id": "7ffffc2f58dc006f2f543c361a4eb944fe1d6e58f52717b6770745e29593a91b", + "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#27)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [(success) = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L27)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L24-L28", + "id": "6b0541d8db6bf0dc2835d8b19d09afa8f5e7b214d0e4c05b6aca0c625316fb19", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -3811,20 +3682,20 @@ "elements": [ { "type": "function", - "name": "bad1", + "name": "bad5", "source_mapping": { - "start": 496, - "length": 135, + "start": 1195, + "length": 128, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 54, + 55, + 56, + 57, + 58 ], "starting_column": 5, "ending_column": 6 @@ -3916,42 +3787,42 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "bad5(address)" } }, { "type": "node", - "name": "success = target.call()", + "name": "ethSender(address(0))", "source_mapping": { - "start": 543, - "length": 33, + "start": 1242, + "length": 21, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 25 + 55 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 30 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad5", "source_mapping": { - "start": 496, - "length": 135, + "start": 1195, + "length": 128, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 54, + 55, + 56, + 57, + 58 ], "starting_column": 5, "ending_column": 6 @@ -4043,7 +3914,7 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "bad5(address)" } } }, @@ -4053,16 +3924,16 @@ }, { "type": "node", - "name": "success = target.call()", + "name": "address(target).call.value(1)()", "source_mapping": { - "start": 543, + "start": 1477, "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 25 + 65 ], "starting_column": 9, "ending_column": 42 @@ -4070,20 +3941,18 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "ethSender", "source_mapping": { - "start": 496, - "length": 135, + "start": 1424, + "length": 93, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -4175,7 +4044,7 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "ethSender(address)" } } }, @@ -4185,16 +4054,16 @@ }, { "type": "node", - "name": "counter += 1", + "name": "varChanger()", "source_mapping": { - "start": 612, + "start": 1273, "length": 12, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 27 + 56 ], "starting_column": 9, "ending_column": 21 @@ -4202,20 +4071,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad1", + "name": "bad5", "source_mapping": { - "start": 496, - "length": 135, + "start": 1195, + "length": 128, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 24, - 25, - 26, - 27, - 28 + 54, + 55, + 56, + 57, + 58 ], "starting_column": 5, "ending_column": 6 @@ -4307,20 +4176,151 @@ "ending_column": 0 } }, - "signature": "bad1(address)" + "signature": "bad5(address)" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "counter" + "variable_name": "anotherVariableToChange" + } + }, + { + "type": "node", + "name": "anotherVariableToChange ++", + "source_mapping": { + "start": 1563, + "length": 25, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 69 + ], + "starting_column": 9, + "ending_column": 34 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "varChanger", + "source_mapping": { + "start": 1523, + "length": 72, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 68, + 69, + 70 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1569, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "varChanger()" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } } ], - "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#27)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L27)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L24-L28", - "id": "9208d9cb360276f3b472fd5579c705474230dae3a72a84771cef223b2e99b3be", + "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#54-58):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#55)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#56)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L54-L58):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L55)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L56)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L54-L58", + "id": "7ffffc2f58dc006f2f543c361a4eb944fe1d6e58f52717b6770745e29593a91b", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -4441,7 +4441,7 @@ }, { "type": "node", - "name": "success = msg.sender.call()", + "name": "(success) = msg.sender.call()", "source_mapping": { "start": 368, "length": 37, @@ -4575,7 +4575,7 @@ }, { "type": "node", - "name": "success = msg.sender.call()", + "name": "(success) = msg.sender.call()", "source_mapping": { "start": 368, "length": 37, @@ -4843,10 +4843,10 @@ } } ], - "description": "Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- success = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#21)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [success = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L21)\n", + "description": "Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#21)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L21)\n", "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L16-L22", - "id": "b9fcdada71a3c1500775d28268e10c0e035d5f9229ef2854137620432d1c98dc", + "id": "d36181ad9dbae588e0ab4f4689a9675a8afd9cf3f8a5f49ab6fbe3ee46016712", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" diff --git a/tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json b/tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json index 2102ceed7..301b60756 100644 --- a/tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json +++ b/tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json @@ -4,20 +4,20 @@ "elements": [ { "type": "function", - "name": "bad5", + "name": "bad3", "source_mapping": { - "start": 1188, - "length": 128, + "start": 879, + "length": 125, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54, - 55, - 56, - 57, - 58 + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -109,42 +109,42 @@ "ending_column": 0 } }, - "signature": "bad5(address)" + "signature": "bad3(address)" } }, { "type": "node", - "name": "ethSender(address(0))", + "name": "externalCaller(target)", "source_mapping": { - "start": 1235, - "length": 21, + "start": 926, + "length": 22, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 55 + 42 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad3", "source_mapping": { - "start": 1188, - "length": 128, + "start": 879, + "length": 125, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54, - 55, - 56, - 57, - 58 + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -236,7 +236,7 @@ "ending_column": 0 } }, - "signature": "bad5(address)" + "signature": "bad3(address)" } } }, @@ -248,33 +248,33 @@ "type": "node", "name": "address(target).call()", "source_mapping": { - "start": 1470, - "length": 33, + "start": 1380, + "length": 24, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 61 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "externalCaller", "source_mapping": { - "start": 1417, - "length": 93, + "start": 1322, + "length": 89, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -366,7 +366,7 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "externalCaller(address)" } } }, @@ -376,37 +376,37 @@ }, { "type": "node", - "name": "ethSender(address(0))", + "name": "externalCaller(target)", "source_mapping": { - "start": 1235, - "length": 21, + "start": 926, + "length": 22, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 55 + 42 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad3", "source_mapping": { - "start": 1188, - "length": 128, + "start": 879, + "length": 125, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54, - 55, - 56, - 57, - 58 + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -498,7 +498,7 @@ "ending_column": 0 } }, - "signature": "bad5(address)" + "signature": "bad3(address)" } } }, @@ -510,33 +510,33 @@ "type": "node", "name": "address(target).call()", "source_mapping": { - "start": 1470, - "length": 33, + "start": 1380, + "length": 24, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 61 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "externalCaller", "source_mapping": { - "start": 1417, - "length": 93, + "start": 1322, + "length": 89, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -628,7 +628,7 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "externalCaller(address)" } } }, @@ -640,14 +640,14 @@ "type": "node", "name": "varChanger()", "source_mapping": { - "start": 1266, + "start": 958, "length": 12, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 56 + 43 ], "starting_column": 9, "ending_column": 21 @@ -655,20 +655,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad5", + "name": "bad3", "source_mapping": { - "start": 1188, - "length": 128, + "start": 879, + "length": 125, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 54, - 55, - 56, - 57, - 58 + 41, + 42, + 43, + 44, + 45 ], "starting_column": 5, "ending_column": 6 @@ -760,7 +760,7 @@ "ending_column": 0 } }, - "signature": "bad5(address)" + "signature": "bad3(address)" } } }, @@ -901,10 +901,10 @@ } } ], - "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#54-58):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#55)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#56)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L54-L58):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L55)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L56)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L54-L58", - "id": "1ae9af101075c35f02db1d683e93595ef26cf79370519b6d52d03f47c5e790ba", + "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#41-45):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#42)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#61)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#43)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L41-L45):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L42)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L61)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L43)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L41-L45", + "id": "57b2ad2ee5a85c48036d5e0a8e7b7d301256c1f692d6ff140516dd1ebaf4ae7d", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -913,21 +913,25 @@ "elements": [ { "type": "function", - "name": "bad4", + "name": "bad2", "source_mapping": { - "start": 1010, - "length": 172, + "start": 630, + "length": 243, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -1019,43 +1023,47 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad2(address)" } }, { "type": "node", - "name": "externalCaller(target)", + "name": "(success) = target.call()", "source_mapping": { - "start": 1057, - "length": 22, + "start": 677, + "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 48 + 31 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad2", "source_mapping": { - "start": 1010, - "length": 172, + "start": 630, + "length": 243, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -1147,7 +1155,7 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad2(address)" } } }, @@ -1157,35 +1165,42 @@ }, { "type": "node", - "name": "address(target).call()", + "name": "address(target).call{value: 1000}()", "source_mapping": { - "start": 1380, - "length": 24, + "start": 747, + "length": 36, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 33 ], - "starting_column": 9, - "ending_column": 33 + "starting_column": 13, + "ending_column": 49 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "bad2", "source_mapping": { - "start": 1322, - "length": 89, + "start": 630, + "length": 243, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -1277,48 +1292,52 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "bad2(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "ethSender(address(0))", + "name": "(success) = target.call()", "source_mapping": { - "start": 1089, - "length": 21, + "start": 677, + "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 49 + 31 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad2", "source_mapping": { - "start": 1010, - "length": 172, + "start": 630, + "length": 243, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -1410,45 +1429,52 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad2(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "address(target).call()", + "name": "address(target).call{value: 1000}()", "source_mapping": { - "start": 1470, - "length": 33, + "start": 747, + "length": 36, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 65 + 33 ], - "starting_column": 9, - "ending_column": 42 + "starting_column": 13, + "ending_column": 49 }, "type_specific_fields": { "parent": { "type": "function", - "name": "ethSender", + "name": "bad2", "source_mapping": { - "start": 1417, - "length": 93, + "start": 630, + "length": 243, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 64, - 65, - 66 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -1540,7 +1566,7 @@ "ending_column": 0 } }, - "signature": "ethSender(address)" + "signature": "bad2(address)" } } }, @@ -1550,38 +1576,42 @@ }, { "type": "node", - "name": "externalCaller(target)", + "name": "counter += 1", "source_mapping": { - "start": 1057, - "length": 22, + "start": 797, + "length": 12, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 48 + 34 ], - "starting_column": 9, - "ending_column": 31 + "starting_column": 13, + "ending_column": 25 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad2", "source_mapping": { - "start": 1010, - "length": 172, + "start": 630, + "length": 243, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 ], "starting_column": 5, "ending_column": 6 @@ -1673,45 +1703,169 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad2(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "counter" + } + } + ], + "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#31)\n\t- address(target).call{value: 1000}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#33)\n\tExternal calls sending eth:\n\t- address(target).call{value: 1000}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#34)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [(success) = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L31)\n\t- [address(target).call{value: 1000}()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L33)\n\tExternal calls sending eth:\n\t- [address(target).call{value: 1000}()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L34)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L30-L39", + "id": "8ffb53b6e7211ef3840068c9971a02666e80ffd49661cfe391abe977b26696fc", + "check": "reentrancy-benign", + "impact": "Low", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "bad5", + "source_mapping": { + "start": 1188, + "length": 128, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 54, + 55, + 56, + 57, + 58 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ReentrancyBenign", + "source_mapping": { + "start": 28, + "length": 1562, + "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "filename_absolute": "/GENERIC_PATH", + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad5(address)" } }, { "type": "node", - "name": "address(target).call()", + "name": "ethSender(address(0))", "source_mapping": { - "start": 1380, - "length": 24, + "start": 1235, + "length": 21, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 55 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 30 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "bad5", "source_mapping": { - "start": 1322, - "length": 89, + "start": 1188, + "length": 128, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 54, + 55, + 56, + 57, + 58 ], "starting_column": 5, "ending_column": 6 @@ -1803,178 +1957,45 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "bad5(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "ethSender(address(0))", + "name": "address(target).call{value: 1}()", "source_mapping": { - "start": 1089, - "length": 21, + "start": 1470, + "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 49 + 65 ], "starting_column": 9, - "ending_column": 30 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "ethSender", "source_mapping": { - "start": 1010, - "length": 172, + "start": 1417, + "length": 93, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1470, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 65 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "ethSender", - "source_mapping": { - "start": 1417, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 64, - 65, - 66 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -2078,14 +2099,14 @@ "type": "node", "name": "varChanger()", "source_mapping": { - "start": 1120, + "start": 1266, "length": 12, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 50 + 56 ], "starting_column": 9, "ending_column": 21 @@ -2093,21 +2114,20 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad4", + "name": "bad5", "source_mapping": { - "start": 1010, - "length": 172, + "start": 1188, + "length": 128, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 + 54, + 55, + 56, + 57, + 58 ], "starting_column": 5, "ending_column": 6 @@ -2199,7 +2219,7 @@ "ending_column": 0 } }, - "signature": "bad4(address)" + "signature": "bad5(address)" } } }, @@ -2340,10 +2360,10 @@ } } ], - "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#49)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L49)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L47-L52", - "id": "4aea41e92ea308d2b853acb9757e4ed9b40972b63e140c9ee24f6a8dca6ebbb5", + "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#54-58):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#55)\n\t\t- address(target).call{value: 1}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#56)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L54-L58):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L55)\n\t\t- [address(target).call{value: 1}()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L56)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L54-L58", + "id": "9ea4f876bdd562affa79eb256f24f2b4d36f6c488107451a724e247a01051dc6", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -2352,20 +2372,21 @@ "elements": [ { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 879, - "length": 125, + "start": 1010, + "length": 172, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -2457,21 +2478,21 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad4(address)" } }, { "type": "node", "name": "externalCaller(target)", "source_mapping": { - "start": 926, + "start": 1057, "length": 22, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 42 + 48 ], "starting_column": 9, "ending_column": 31 @@ -2479,20 +2500,21 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 879, - "length": 125, + "start": 1010, + "length": 172, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -2584,7 +2606,7 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad4(address)" } } }, @@ -2724,37 +2746,38 @@ }, { "type": "node", - "name": "externalCaller(target)", + "name": "ethSender(address(0))", "source_mapping": { - "start": 926, - "length": 22, + "start": 1089, + "length": 21, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 42 + 49 ], "starting_column": 9, - "ending_column": 31 + "ending_column": 30 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad3", + "name": "bad4", "source_mapping": { - "start": 879, - "length": 125, + "start": 1010, + "length": 172, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 41, - 42, - 43, - 44, - 45 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -2846,45 +2869,45 @@ "ending_column": 0 } }, - "signature": "bad3(address)" + "signature": "bad4(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "external_calls" } }, { "type": "node", - "name": "address(target).call()", + "name": "address(target).call{value: 1}()", "source_mapping": { - "start": 1380, - "length": 24, + "start": 1470, + "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 61 + 65 ], "starting_column": 9, - "ending_column": 33 + "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", - "name": "externalCaller", + "name": "ethSender", "source_mapping": { - "start": 1322, - "length": 89, + "start": 1417, + "length": 93, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 60, - 61, - 62 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -2976,7 +2999,7 @@ "ending_column": 0 } }, - "signature": "externalCaller(address)" + "signature": "ethSender(address)" } } }, @@ -2986,168 +3009,38 @@ }, { "type": "node", - "name": "varChanger()", + "name": "externalCaller(target)", "source_mapping": { - "start": 958, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 43 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 879, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1556, - "length": 25, + "start": 1057, + "length": 22, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 69 + 48 ], "starting_column": 9, - "ending_column": 34 + "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", - "name": "varChanger", + "name": "bad4", "source_mapping": { - "start": 1516, - "length": 72, + "start": 1010, + "length": 172, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 68, - 69, - 70 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -3161,257 +3054,123 @@ "length": 1562, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "varChanger()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#41-45):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#42)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#61)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#43)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L41-L45):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L42)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L61)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L43)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L41-L45", - "id": "57b2ad2ee5a85c48036d5e0a8e7b7d301256c1f692d6ff140516dd1ebaf4ae7d", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 630, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 + "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", + "is_dependency": false, + "lines": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "starting_column": 1, + "ending_column": 0 + } + }, + "signature": "bad4(address)" } - }, - "signature": "bad2(address)" + } + }, + "additional_fields": { + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "success = target.call()", + "name": "address(target).call()", "source_mapping": { - "start": 677, - "length": 33, + "start": 1380, + "length": 24, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 31 + 61 ], "starting_column": 9, - "ending_column": 42 + "ending_column": 33 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "externalCaller", "source_mapping": { - "start": 630, - "length": 243, + "start": 1322, + "length": 89, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 60, + 61, + 62 ], "starting_column": 5, "ending_column": 6 @@ -3503,52 +3262,48 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "externalCaller(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "address(target).call()", + "name": "ethSender(address(0))", "source_mapping": { - "start": 747, - "length": 36, + "start": 1089, + "length": 21, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 33 + 49 ], - "starting_column": 13, - "ending_column": 49 + "starting_column": 9, + "ending_column": 30 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad4", "source_mapping": { - "start": 630, - "length": 243, + "start": 1010, + "length": 172, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -3640,26 +3395,26 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad4(address)" } } }, "additional_fields": { - "underlying_type": "external_calls" + "underlying_type": "external_calls_sending_eth" } }, { "type": "node", - "name": "success = target.call()", + "name": "address(target).call{value: 1}()", "source_mapping": { - "start": 677, + "start": 1470, "length": 33, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 31 + 65 ], "starting_column": 9, "ending_column": 42 @@ -3667,25 +3422,18 @@ "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "ethSender", "source_mapping": { - "start": 630, - "length": 243, + "start": 1417, + "length": 93, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 64, + 65, + 66 ], "starting_column": 5, "ending_column": 6 @@ -3777,7 +3525,7 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "ethSender(address)" } } }, @@ -3787,42 +3535,38 @@ }, { "type": "node", - "name": "address(target).call()", + "name": "varChanger()", "source_mapping": { - "start": 747, - "length": 36, + "start": 1120, + "length": 12, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 33 + 50 ], - "starting_column": 13, - "ending_column": 49 + "starting_column": 9, + "ending_column": 21 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "bad4", "source_mapping": { - "start": 630, - "length": 243, + "start": 1010, + "length": 172, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 47, + 48, + 49, + 50, + 51, + 52 ], "starting_column": 5, "ending_column": 6 @@ -3914,52 +3658,46 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "bad4(address)" } } }, "additional_fields": { - "underlying_type": "external_calls_sending_eth" + "underlying_type": "variables_written", + "variable_name": "anotherVariableToChange" } }, { "type": "node", - "name": "counter += 1", + "name": "anotherVariableToChange ++", "source_mapping": { - "start": 797, - "length": 12, + "start": 1556, + "length": 25, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 34 + 69 ], - "starting_column": 13, - "ending_column": 25 + "starting_column": 9, + "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", - "name": "bad2", + "name": "varChanger", "source_mapping": { - "start": 630, - "length": 243, + "start": 1516, + "length": 72, "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", "is_dependency": false, "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 + 68, + 69, + 70 ], "starting_column": 5, "ending_column": 6 @@ -4051,20 +3789,20 @@ "ending_column": 0 } }, - "signature": "bad2(address)" + "signature": "varChanger()" } } }, "additional_fields": { "underlying_type": "variables_written", - "variable_name": "counter" + "variable_name": "anotherVariableToChange" } } ], - "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#31)\n\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#34)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L31)\n\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L34)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L30-L39", - "id": "8a0d0595c5a15f49c181e0fccddebd7783f10f9c4243813eec0c4c99fe5d031a", + "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#49)\n\t\t- address(target).call{value: 1}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#65)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#49)\n\t\t- address(target).call{value: 1}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L49)\n\t\t- [address(target).call{value: 1}()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L65)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L49)\n\t\t- [address(target).call{value: 1}()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", + "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L47-L52", + "id": "d8ad62c290ebe6f6eba92d21f77ea938d9d713700e72d0eca1a007d9526a226e", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -4183,7 +3921,7 @@ }, { "type": "node", - "name": "success = target.call()", + "name": "(success) = target.call()", "source_mapping": { "start": 536, "length": 33, @@ -4315,7 +4053,7 @@ }, { "type": "node", - "name": "success = target.call()", + "name": "(success) = target.call()", "source_mapping": { "start": 536, "length": 33, @@ -4579,10 +4317,10 @@ } } ], - "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#27)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L27)\n", + "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#27)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [(success) = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L27)\n", "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L24-L28", - "id": "9507741c95b0ae83311d2ff96548ef2c8313536e6e2eaf3eb8acb35d421421fc", + "id": "dc9321d7bad1a38e7ec848d79ac28b7ebdeb537afe5a753d05308f9575acaa53", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" @@ -4703,7 +4441,7 @@ }, { "type": "node", - "name": "success = msg.sender.call()", + "name": "(success) = msg.sender.call()", "source_mapping": { "start": 361, "length": 37, @@ -4837,7 +4575,7 @@ }, { "type": "node", - "name": "success = msg.sender.call()", + "name": "(success) = msg.sender.call()", "source_mapping": { "start": 361, "length": 37, @@ -5105,10 +4843,10 @@ } } ], - "description": "Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- success = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#21)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [success = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L21)\n", + "description": "Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#21)\n", + "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L21)\n", "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L16-L22", - "id": "ad5954811d108e6a5b88057caf9f10ee42091132f546342bce1e6a4d99bcfad4", + "id": "df1508d1cd0b80a365e0b0d1c11033a99ff078a905637351fb74c53292a98582", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" diff --git a/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json index b957668f0..0cfee492f 100644 --- a/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json @@ -38,10 +38,10 @@ }, { "elements": [], - "description": "solc-0.5.15 is not recommended for deployment\n", - "markdown": "solc-0.5.15 is not recommended for deployment\n", + "description": "solc-0.5.16 is not recommended for deployment\n", + "markdown": "solc-0.5.16 is not recommended for deployment\n", "first_markdown_element": "", - "id": "f968b391557275cb3d691dfc65ba75d1e189238446ae8e37060e0a9af12a48c8", + "id": "94ddf430efb860e471a768a108c851848fa998e8a2c489c6fb23ed71d3ef4b09", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json index 6e4b0e069..cb5878f1f 100644 --- a/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json @@ -41,10 +41,10 @@ }, { "elements": [], - "description": "solc-0.5.0 is not recommended for deployment\n", - "markdown": "solc-0.5.0 is not recommended for deployment\n", + "description": "solc-0.5.16 is not recommended for deployment\n", + "markdown": "solc-0.5.16 is not recommended for deployment\n", "first_markdown_element": "", - "id": "21539c75e015cde5bdae3a77b39cf5d17be24d0b87a05da1d6b5d5020b7aef22", + "id": "94ddf430efb860e471a768a108c851848fa998e8a2c489c6fb23ed71d3ef4b09", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json index b3e1d8420..d8e0ab3f9 100644 --- a/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json @@ -2,10 +2,10 @@ [ { "elements": [], - "description": "solc-0.6.10 is not recommended for deployment\n", - "markdown": "solc-0.6.10 is not recommended for deployment\n", + "description": "solc-0.6.11 is not recommended for deployment\n", + "markdown": "solc-0.6.11 is not recommended for deployment\n", "first_markdown_element": "", - "id": "b2c2f26d29a163098673e6dcb2342e00d94996a84040bac62f7dbb2f20fa8f28", + "id": "bafd522d637977886f038e619ad47c1987efedc6c4c24515e6e27b23585535bd", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json index 09d9bab0f..c1f83b58e 100644 --- a/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json @@ -1,15 +1,5 @@ [ [ - { - "elements": [], - "description": "solc-0.6.0 is not recommended for deployment\n", - "markdown": "solc-0.6.0 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "7740810b9fcfaf3efb5f0190072038a7d60dee014bb62485850611033bd7a5f0", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, { "elements": [ { @@ -48,6 +38,16 @@ "check": "solc-version", "impact": "Informational", "confidence": "High" + }, + { + "elements": [], + "description": "solc-0.6.11 is not recommended for deployment\n", + "markdown": "solc-0.6.11 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "bafd522d637977886f038e619ad47c1987efedc6c4c24515e6e27b23585535bd", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" } ] ] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json index 15bebfe02..18bc52bc7 100644 --- a/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json @@ -1,15 +1,5 @@ [ [ - { - "elements": [], - "description": "solc-0.7.4 is not recommended for deployment\n", - "markdown": "solc-0.7.4 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "27e54a3813c974274b355c03bd742d4f2b8cd63fa57143b4fb741cbecd022dd2", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, { "elements": [ { @@ -45,6 +35,16 @@ "check": "solc-version", "impact": "Informational", "confidence": "High" + }, + { + "elements": [], + "description": "solc-0.7.6 is not recommended for deployment\n", + "markdown": "solc-0.7.6 is not recommended for deployment\n", + "first_markdown_element": "", + "id": "ddb8ee36d9dd69b14eab702506268f8f9ef3283777d042e197277e29407b386e", + "check": "solc-version", + "impact": "Informational", + "confidence": "High" } ] ] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json index 6e78655a1..d20b1d58d 100644 --- a/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json +++ b/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json @@ -41,10 +41,10 @@ }, { "elements": [], - "description": "solc-0.7.0 is not recommended for deployment\n", - "markdown": "solc-0.7.0 is not recommended for deployment\n", + "description": "solc-0.7.6 is not recommended for deployment\n", + "markdown": "solc-0.7.6 is not recommended for deployment\n", "first_markdown_element": "", - "id": "a25ebaec6910184d3cb938f8638d2eeeb46edf25c444b137264555e9743d67bd", + "id": "ddb8ee36d9dd69b14eab702506268f8f9ef3283777d042e197277e29407b386e", "check": "solc-version", "impact": "Informational", "confidence": "High" diff --git a/tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json b/tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json index 8e6c6b2d9..5825bcacc 100644 --- a/tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json +++ b/tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json @@ -1,757 +1,3 @@ [ - [ - { - "elements": [ - { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "good3", - "source_mapping": { - "start": 1823, - "length": 267, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "good3(int256[3])" - } - }, - { - "type": "node", - "name": "intArray = userArray", - "source_mapping": { - "start": 1964, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 36 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "good3", - "source_mapping": { - "start": 1823, - "length": 267, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "good3(int256[3])" - } - } - } - } - ], - "description": "Contract A (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#3-45) \n\t- Function A.good3(int256[3]) (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#35-37)\n\t\t- intArray = userArray (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#36) has a storage signed integer array assignment\n", - "markdown": "Contract [A](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.good3(int256[3])](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L35-L37)\n\t\t- [intArray = userArray](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L36) has a storage signed integer array assignment\n", - "first_markdown_element": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L3-L45", - "id": "3948ae5e1f85032e07e32463f54e7ae97c3c144e228797680240014ea725f94d", - "check": "storage-array", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 601, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(int128[3])" - } - }, - { - "type": "node", - "name": "intArray = userArray", - "source_mapping": { - "start": 746, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 601, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(int128[3])" - } - } - } - } - ], - "description": "Contract A (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#3-45) \n\t- Function A.bad1(int128[3]) (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#15-17)\n\t\t- intArray = userArray (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#16) has a storage signed integer array assignment\n", - "markdown": "Contract [A](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.bad1(int128[3])](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L15-L17)\n\t\t- [intArray = userArray](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L16) has a storage signed integer array assignment\n", - "first_markdown_element": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L3-L45", - "id": "631aef0a5d3c7759d489e7ceb2e9721bc723e92fddfb55fbb6d16837104dee99", - "check": "storage-array", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 355, - "length": 132, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "intArray = (- 1,- 2,- 3)", - "source_mapping": { - "start": 384, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 355, - "length": 132, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "Contract A (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#3-45) \n\t- Function A.bad0() (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#10-12)\n\t\t- intArray = (- 1,- 2,- 3) (tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#11) has a storage signed integer array assignment\n", - "markdown": "Contract [A](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.bad0()](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L10-L12)\n\t\t- [intArray = (- 1,- 2,- 3)](tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L11) has a storage signed integer array assignment\n", - "first_markdown_element": "tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol#L3-L45", - "id": "6b15bf486dbb4488d1a70536ede22b1ede312e7d03479557fb43c125b82f1f92", - "check": "storage-array", - "impact": "High", - "confidence": "Medium" - } - ] + [] ] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json b/tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json index 043d0e607..5825bcacc 100644 --- a/tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json +++ b/tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json @@ -1,757 +1,3 @@ [ - [ - { - "elements": [ - { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "good3", - "source_mapping": { - "start": 1823, - "length": 267, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "good3(int256[3])" - } - }, - { - "type": "node", - "name": "intArray = userArray", - "source_mapping": { - "start": 1964, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 36 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "good3", - "source_mapping": { - "start": 1823, - "length": 267, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "good3(int256[3])" - } - } - } - } - ], - "description": "Contract A (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#3-45) \n\t- Function A.good3(int256[3]) (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#35-37)\n\t\t- intArray = userArray (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#36) has a storage signed integer array assignment\n", - "markdown": "Contract [A](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.good3(int256[3])](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L35-L37)\n\t\t- [intArray = userArray](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L36) has a storage signed integer array assignment\n", - "first_markdown_element": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L3-L45", - "id": "0109ebb10600cb7b9f9f3bb49a6e72e29b9a1bcac9011f8a2fcf8b8cf1be1ccc", - "check": "storage-array", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 355, - "length": 132, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "intArray = (- 1,- 2,- 3)", - "source_mapping": { - "start": 384, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 355, - "length": 132, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "Contract A (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#3-45) \n\t- Function A.bad0() (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#10-12)\n\t\t- intArray = (- 1,- 2,- 3) (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#11) has a storage signed integer array assignment\n", - "markdown": "Contract [A](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.bad0()](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L10-L12)\n\t\t- [intArray = (- 1,- 2,- 3)](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L11) has a storage signed integer array assignment\n", - "first_markdown_element": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L3-L45", - "id": "79c53128e44603485fdf502967c92aa6ad8fb1af52343835a44655c101218f75", - "check": "storage-array", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 601, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(int128[3])" - } - }, - { - "type": "node", - "name": "intArray = userArray", - "source_mapping": { - "start": 746, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 601, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 25, - "length": 2256, - "filename_relative": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(int128[3])" - } - } - } - } - ], - "description": "Contract A (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#3-45) \n\t- Function A.bad1(int128[3]) (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#15-17)\n\t\t- intArray = userArray (tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#16) has a storage signed integer array assignment\n", - "markdown": "Contract [A](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.bad1(int128[3])](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L15-L17)\n\t\t- [intArray = userArray](tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L16) has a storage signed integer array assignment\n", - "first_markdown_element": "tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol#L3-L45", - "id": "ff29abd9707859837debdb3c3bc5261fbc5146642353819d17853729a516faf9", - "check": "storage-array", - "impact": "High", - "confidence": "Medium" - } - ] + [] ] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json b/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json index 7c5dbf4e3..5825bcacc 100644 --- a/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json +++ b/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json @@ -1,421 +1,3 @@ [ - [ - { - "elements": [ - { - "type": "contract", - "name": "bad1", - "source_mapping": { - "start": 178, - "length": 306, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "b(10)", - "source_mapping": { - "start": 472, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 196, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "bad1", - "source_mapping": { - "start": 178, - "length": 306, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Contract bad1 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#11-18) \n\t b(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#16) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad1](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L11-L18) \n\t [b(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L16) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L11-L18", - "id": "228f34e5afc4d016e11b5752458d38b91139d50f5a56ae8062851f0e9e5f07ef", - "check": "uninitialized-fptr-cst", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "bad0", - "source_mapping": { - "start": 27, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "a(10)", - "source_mapping": { - "start": 164, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 45, - "length": 129, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "bad0", - "source_mapping": { - "start": 27, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Contract bad0 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#3-9) \n\t a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#7) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad0](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L3-L9) \n\t [a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L7) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L3-L9", - "id": "b2be27583a5fd04b192d5a5428e96df2cac54b72fd914a43c8ebc1dcc4a951b7", - "check": "uninitialized-fptr-cst", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "bad2", - "source_mapping": { - "start": 486, - "length": 199, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "s.a(10)", - "source_mapping": { - "start": 671, - "length": 7, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 27 - ], - "starting_column": 5, - "ending_column": 12 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 628, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "bad2", - "source_mapping": { - "start": 486, - "length": 199, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Contract bad2 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#20-29) \n\t s.a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#27) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad2](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L20-L29) \n\t [s.a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L27) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L20-L29", - "id": "b6898ad74de2e13efc8ff8891e303245c76f660dc0d956453ed7ee752dc4368d", - "check": "uninitialized-fptr-cst", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "bad3", - "source_mapping": { - "start": 687, - "length": 269, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "a(10)", - "source_mapping": { - "start": 858, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 36 - ], - "starting_column": 5, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 831, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "bad3", - "source_mapping": { - "start": 687, - "length": 269, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Contract bad3 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#31-42) \n\t a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#36) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad3](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L31-L42) \n\t [a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L36) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol#L31-L42", - "id": "b6f0736636abbfe3c14c9667b604f2966377c50d6565f40db4e19a7f5a466dbd", - "check": "uninitialized-fptr-cst", - "impact": "Low", - "confidence": "High" - } - ] + [] ] \ No newline at end of file From b0e589ec4f52542a1725ae51ca5e146943aeb742 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 20 Mar 2023 23:20:02 -0500 Subject: [PATCH 105/193] fix compilation tests --- .github/workflows/compilation.yml | 48 +++++++++++++++++++++++++++++++ .github/workflows/features.yml | 5 ---- 2 files changed, 48 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/compilation.yml diff --git a/.github/workflows/compilation.yml b/.github/workflows/compilation.yml new file mode 100644 index 000000000..aebe3c692 --- /dev/null +++ b/.github/workflows/compilation.yml @@ -0,0 +1,48 @@ +--- +name: Compilation tests + +defaults: + run: + # To load bashrc + shell: bash -ieo pipefail {0} + +on: + pull_request: + branches: [master, dev] + schedule: + # run CI every day even if no PRs/merges occur + - cron: '0 12 * * *' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: Compilation tests + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-2022] + + steps: + - name: Checkout Code + uses: actions/checkout@v3 + + - name: Set up Python 3.8 + uses: actions/setup-python@v3 + with: + python-version: 3.8 + + - name: Install dependencies + run: | + pip install ".[dev]" + + pushd tests/e2e/compilation/test_data/test_node_modules/ + npm install hardhat + popd + + - name: Test with pytest + run: | + pytest tests/e2e/compilation/ \ No newline at end of file diff --git a/.github/workflows/features.yml b/.github/workflows/features.yml index 8f88b86dd..b148b261a 100644 --- a/.github/workflows/features.yml +++ b/.github/workflows/features.yml @@ -39,11 +39,6 @@ jobs: run: | pip install ".[dev]" - - cd tests/test_node_modules/ - npm install hardhat - cd ../.. - - name: Test with pytest run: | pytest tests/unit/ \ No newline at end of file From 97b91a0eacd68e071a98093a970a50713f73129b Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 20 Mar 2023 23:27:09 -0500 Subject: [PATCH 106/193] fix file CI and slither-read-storage test paths --- .github/workflows/IR.yml | 2 +- .github/workflows/features.yml | 2 +- .../read-storage/test_data}/StorageLayout.abi | 0 .../read-storage/test_data}/StorageLayout.bin | 0 .../test_data}/TEST_storage_layout.json | 0 .../test_data/storage_layout-0.8.10.sol | 74 +++++++++++++++++++ tests/tools/read-storage/test_read_storage.py | 16 ++-- 7 files changed, 84 insertions(+), 10 deletions(-) rename tests/{unit/core/test_data/storage_layout => tools/read-storage/test_data}/StorageLayout.abi (100%) rename tests/{unit/core/test_data/storage_layout => tools/read-storage/test_data}/StorageLayout.bin (100%) rename tests/{unit/core/test_data/storage_layout => tools/read-storage/test_data}/TEST_storage_layout.json (100%) create mode 100644 tests/tools/read-storage/test_data/storage_layout-0.8.10.sol diff --git a/.github/workflows/IR.yml b/.github/workflows/IR.yml index de2023ba9..454b22185 100644 --- a/.github/workflows/IR.yml +++ b/.github/workflows/IR.yml @@ -48,4 +48,4 @@ jobs: - name: Test with pytest run: | - pytest tests/slithir/ \ No newline at end of file + pytest tests/unit/slithir/ \ No newline at end of file diff --git a/.github/workflows/features.yml b/.github/workflows/features.yml index b148b261a..06034fa94 100644 --- a/.github/workflows/features.yml +++ b/.github/workflows/features.yml @@ -41,4 +41,4 @@ jobs: - name: Test with pytest run: | - pytest tests/unit/ \ No newline at end of file + pytest tests/unit/core/ \ No newline at end of file diff --git a/tests/unit/core/test_data/storage_layout/StorageLayout.abi b/tests/tools/read-storage/test_data/StorageLayout.abi similarity index 100% rename from tests/unit/core/test_data/storage_layout/StorageLayout.abi rename to tests/tools/read-storage/test_data/StorageLayout.abi diff --git a/tests/unit/core/test_data/storage_layout/StorageLayout.bin b/tests/tools/read-storage/test_data/StorageLayout.bin similarity index 100% rename from tests/unit/core/test_data/storage_layout/StorageLayout.bin rename to tests/tools/read-storage/test_data/StorageLayout.bin diff --git a/tests/unit/core/test_data/storage_layout/TEST_storage_layout.json b/tests/tools/read-storage/test_data/TEST_storage_layout.json similarity index 100% rename from tests/unit/core/test_data/storage_layout/TEST_storage_layout.json rename to tests/tools/read-storage/test_data/TEST_storage_layout.json diff --git a/tests/tools/read-storage/test_data/storage_layout-0.8.10.sol b/tests/tools/read-storage/test_data/storage_layout-0.8.10.sol new file mode 100644 index 000000000..28d1428eb --- /dev/null +++ b/tests/tools/read-storage/test_data/storage_layout-0.8.10.sol @@ -0,0 +1,74 @@ +// overwrite abi and bin: +// solc tests/storage-layout/storage_layout-0.8.10.sol --abi --bin -o tests/storage-layout --overwrite +contract StorageLayout { + uint248 packedUint = 1; + bool packedBool = true; + + struct PackedStruct { + bool b; + uint248 a; + } + PackedStruct _packedStruct = PackedStruct(packedBool, packedUint); + + mapping (uint => PackedStruct) mappingPackedStruct; + mapping (address => mapping (uint => PackedStruct)) deepMappingPackedStruct; + mapping (address => mapping (uint => bool)) deepMappingElementaryTypes; + mapping (address => PackedStruct[]) mappingDynamicArrayOfStructs; + + address _address; + string _string = "slither-read-storage"; + uint8 packedUint8 = 8; + bytes8 packedBytes = "aaaaaaaa"; + + enum Enum { + a, + b, + c + } + Enum _enumA = Enum.a; + Enum _enumB = Enum.b; + Enum _enumC = Enum.c; + + uint256[3] fixedArray; + uint256[3][] dynamicArrayOfFixedArrays; + uint[][3] fixedArrayofDynamicArrays; + uint[][] multidimensionalArray; + PackedStruct[] dynamicArrayOfStructs; + PackedStruct[3] fixedArrayOfStructs; + + function store() external { + require(_address == address(0)); + _address = msg.sender; + + mappingPackedStruct[packedUint] = _packedStruct; + + deepMappingPackedStruct[_address][packedUint] = _packedStruct; + + deepMappingElementaryTypes[_address][1] = true; + deepMappingElementaryTypes[_address][2] = true; + + fixedArray = [1, 2, 3]; + + dynamicArrayOfFixedArrays.push(fixedArray); + dynamicArrayOfFixedArrays.push([4, 5, 6]); + + fixedArrayofDynamicArrays[0].push(7); + fixedArrayofDynamicArrays[1].push(8); + fixedArrayofDynamicArrays[1].push(9); + fixedArrayofDynamicArrays[2].push(10); + fixedArrayofDynamicArrays[2].push(11); + fixedArrayofDynamicArrays[2].push(12); + + multidimensionalArray.push([13]); + multidimensionalArray.push([14, 15]); + multidimensionalArray.push([16, 17, 18]); + + dynamicArrayOfStructs.push(_packedStruct); + dynamicArrayOfStructs.push(PackedStruct(false, 10)); + fixedArrayOfStructs[0] = _packedStruct; + fixedArrayOfStructs[1] = PackedStruct(false, 10); + + mappingDynamicArrayOfStructs[_address].push(dynamicArrayOfStructs[0]); + mappingDynamicArrayOfStructs[_address].push(dynamicArrayOfStructs[1]); + } +} diff --git a/tests/tools/read-storage/test_read_storage.py b/tests/tools/read-storage/test_read_storage.py index 64b175711..9d18f6c8a 100644 --- a/tests/tools/read-storage/test_read_storage.py +++ b/tests/tools/read-storage/test_read_storage.py @@ -4,6 +4,7 @@ import re import shutil import subprocess from time import sleep +from pathlib import Path from typing import Generator import pytest @@ -14,8 +15,7 @@ from web3.contract import Contract from slither import Slither from slither.tools.read_storage import SlitherReadStorage -TOOLS_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -STORAGE_TEST_ROOT = os.path.join(TOOLS_ROOT, "storage-layout") +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" # pylint: disable=too-few-public-methods class GanacheInstance: @@ -93,15 +93,15 @@ def deploy_contract(w3, ganache, contract_bin, contract_abi) -> Contract: @pytest.mark.usefixtures("web3", "ganache") def test_read_storage(web3, ganache) -> None: assert web3.is_connected() - bin_path = os.path.join(STORAGE_TEST_ROOT, "StorageLayout.bin") - abi_path = os.path.join(STORAGE_TEST_ROOT, "StorageLayout.abi") + bin_path = Path(TEST_DATA_DIR, "StorageLayout.bin").as_posix() + abi_path = Path(TEST_DATA_DIR, "StorageLayout.abi").as_posix() bytecode = get_source_file(bin_path) abi = get_source_file(abi_path) contract = deploy_contract(web3, ganache, bytecode, abi) contract.functions.store().transact({"from": ganache.eth_address}) address = contract.address - sl = Slither(os.path.join(STORAGE_TEST_ROOT, "storage_layout-0.8.10.sol")) + sl = Slither(Path(TEST_DATA_DIR, "storage_layout-0.8.10.sol").as_posix()) contracts = sl.contracts srs = SlitherReadStorage(contracts, 100) @@ -110,12 +110,12 @@ def test_read_storage(web3, ganache) -> None: srs.get_all_storage_variables() srs.get_storage_layout() srs.walk_slot_info(srs.get_slot_values) - with open("storage_layout.json", "w", encoding="utf-8") as file: + actual_file = Path(TEST_DATA_DIR, "storage_layout.json").as_posix() + with open(actual_file, "w", encoding="utf-8") as file: slot_infos_json = srs.to_json() json.dump(slot_infos_json, file, indent=4) - expected_file = os.path.join(STORAGE_TEST_ROOT, "TEST_storage_layout.json") - actual_file = os.path.join(SLITHER_ROOT, "storage_layout.json") + expected_file = Path(TEST_DATA_DIR, "TEST_storage_layout.json").as_posix() with open(expected_file, "r", encoding="utf8") as f: expected = json.load(f) From 4c6d3aee2b169190cdc575cfa61a660967778e0f Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 20 Mar 2023 23:36:08 -0500 Subject: [PATCH 107/193] fix script paths --- scripts/ci_test_cli.sh | 6 +++--- scripts/ci_test_erc.sh | 2 +- scripts/ci_test_printers.sh | 2 +- tests/e2e/compilation/test_resolution.py | 2 +- .../config/{config => test_json_config}/slither.config.json | 0 tests/e2e/config/{config => test_json_config}/test.sol | 0 6 files changed, 6 insertions(+), 6 deletions(-) rename tests/e2e/config/{config => test_json_config}/slither.config.json (100%) rename tests/e2e/config/{config => test_json_config}/test.sol (100%) diff --git a/scripts/ci_test_cli.sh b/scripts/ci_test_cli.sh index e35bf3ff5..08d9de836 100755 --- a/scripts/ci_test_cli.sh +++ b/scripts/ci_test_cli.sh @@ -4,17 +4,17 @@ solc-select use 0.7.0 -if ! slither "tests/config/test.sol" --solc-ast --no-fail-pedantic; then +if ! slither "tests/e2e/config/test_json_config/test.sol" --solc-ast --no-fail-pedantic; then echo "--solc-ast failed" exit 1 fi -if ! slither "tests/config/test.sol" --solc-disable-warnings --no-fail-pedantic; then +if ! slither "tests/e2e/config/test_json_config/test.sol" --solc-disable-warnings --no-fail-pedantic; then echo "--solc-disable-warnings failed" exit 1 fi -if ! slither "tests/config/test.sol" --disable-color --no-fail-pedantic; then +if ! slither "tests/e2e/config/test_json_config/test.sol" --disable-color --no-fail-pedantic; then echo "--disable-color failed" exit 1 fi diff --git a/scripts/ci_test_erc.sh b/scripts/ci_test_erc.sh index ce9a62363..ebc59475a 100755 --- a/scripts/ci_test_erc.sh +++ b/scripts/ci_test_erc.sh @@ -2,7 +2,7 @@ ### Test slither-check-erc -DIR_TESTS="tests/check-erc" +DIR_TESTS="tests/tools/check-erc" solc-select use 0.5.0 slither-check-erc "$DIR_TESTS/erc20.sol" ERC20 > test_1.txt 2>&1 diff --git a/scripts/ci_test_printers.sh b/scripts/ci_test_printers.sh index f6eaf0fc8..61994b337 100755 --- a/scripts/ci_test_printers.sh +++ b/scripts/ci_test_printers.sh @@ -2,7 +2,7 @@ ### Test printer -cd tests/ast-parsing/compile || exit +cd tests/e2e/solc_parsing/test_data/compile/ || exit # Do not test the evm printer,as it needs a refactoring ALL_PRINTERS="cfg,constructor-calls,contract-summary,data-dependency,echidna,function-id,function-summary,modifiers,call-graph,human-summary,inheritance,inheritance-graph,slithir,slithir-ssa,vars-and-auth,require,variable-order,declaration" diff --git a/tests/e2e/compilation/test_resolution.py b/tests/e2e/compilation/test_resolution.py index 738887045..4b50b0737 100644 --- a/tests/e2e/compilation/test_resolution.py +++ b/tests/e2e/compilation/test_resolution.py @@ -20,7 +20,7 @@ def test_node_modules() -> None: # hardhat must have been installed in tests/test_node_modules # For the CI its done through the github action config - slither = Slither(TEST_DATA_DIR, "test_node_modules") + slither = Slither(Path(TEST_DATA_DIR, "test_node_modules").as_posix()) _run_all_detectors(slither) diff --git a/tests/e2e/config/config/slither.config.json b/tests/e2e/config/test_json_config/slither.config.json similarity index 100% rename from tests/e2e/config/config/slither.config.json rename to tests/e2e/config/test_json_config/slither.config.json diff --git a/tests/e2e/config/config/test.sol b/tests/e2e/config/test_json_config/test.sol similarity index 100% rename from tests/e2e/config/config/test.sol rename to tests/e2e/config/test_json_config/test.sol From 6162c9a5901d6a583ad50c72ff4ef22ff039c940 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Wed, 22 Mar 2023 11:55:14 -0500 Subject: [PATCH 108/193] fix misc. character, remove invalid fields --- .github/DISCUSSION_TEMPLATE/trouble_with_installation.yml | 2 -- .github/ISSUE_TEMPLATE/false_negative.yml | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/DISCUSSION_TEMPLATE/trouble_with_installation.yml b/.github/DISCUSSION_TEMPLATE/trouble_with_installation.yml index a2b56336c..788f487ad 100644 --- a/.github/DISCUSSION_TEMPLATE/trouble_with_installation.yml +++ b/.github/DISCUSSION_TEMPLATE/trouble_with_installation.yml @@ -48,8 +48,6 @@ body: label: "Output of running `slither-doctor .`:" id: logs type: textarea -description: "Get help troubleshooting slither installation" labels: - installation-help -name: "Trouble with Installing Slither" title: "[Installation-Help]: " diff --git a/.github/ISSUE_TEMPLATE/false_negative.yml b/.github/ISSUE_TEMPLATE/false_negative.yml index e11b6ca8d..38dfa6230 100644 --- a/.github/ISSUE_TEMPLATE/false_negative.yml +++ b/.github/ISSUE_TEMPLATE/false_negative.yml @@ -57,5 +57,5 @@ body: description: "Slither missed a bug it should find." labels: - false-negative -name: False Negative" +name: False Negative title: "[False Negative]: " From 05223c9f2680dfc930bde445b8a4fd6c360ddf34 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Wed, 22 Mar 2023 12:17:15 -0500 Subject: [PATCH 109/193] change name to match discussions page --- ...ble_with_installation.yml => installation.yml} | 15 --------------- 1 file changed, 15 deletions(-) rename .github/DISCUSSION_TEMPLATE/{trouble_with_installation.yml => installation.yml} (71%) diff --git a/.github/DISCUSSION_TEMPLATE/trouble_with_installation.yml b/.github/DISCUSSION_TEMPLATE/installation.yml similarity index 71% rename from .github/DISCUSSION_TEMPLATE/trouble_with_installation.yml rename to .github/DISCUSSION_TEMPLATE/installation.yml index 788f487ad..64ac9375e 100644 --- a/.github/DISCUSSION_TEMPLATE/trouble_with_installation.yml +++ b/.github/DISCUSSION_TEMPLATE/installation.yml @@ -1,11 +1,5 @@ --- body: - - - attributes: - value: | - Please check the issues tab to avoid duplicates. - Thanks for taking the time to fill out this bug report! - type: markdown - attributes: label: "What operating system are you using?" @@ -31,14 +25,6 @@ body: - "Yes" - "No" - "Not sure" - - type: dropdown - id: solc - attributes: - label: Do you have solc-select installed? - multiple: true - options: - - "Yes" - - "No" - attributes: description: | @@ -47,7 +33,6 @@ body: render: shell label: "Output of running `slither-doctor .`:" id: logs - type: textarea labels: - installation-help title: "[Installation-Help]: " From 512499327478678f4a70fbb1110b27aff1b332cb Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 23 Mar 2023 15:58:40 -0500 Subject: [PATCH 110/193] fix path filtering test location --- scripts/ci_test_path_filtering.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 scripts/ci_test_path_filtering.sh diff --git a/scripts/ci_test_path_filtering.sh b/scripts/ci_test_path_filtering.sh old mode 100644 new mode 100755 index fb2a18842..d7a2a9833 --- a/scripts/ci_test_path_filtering.sh +++ b/scripts/ci_test_path_filtering.sh @@ -3,7 +3,7 @@ ### Test path filtering across POSIX and Windows solc-select use 0.8.0 -slither "tests/test_path_filtering/test_path_filtering.sol" --config "tests/test_path_filtering/slither.config.json" > "output.txt" 2>&1 +slither "tests/e2e/config/test_path_filtering/test_path_filtering.sol" --config "tests/e2e/config/test_path_filtering/slither.config.json" > "output.txt" 2>&1 if ! grep -q "0 result(s) found" "output.txt" then From f460d1e07b5e567a882e55c2ba58fbf16044a757 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 23 Mar 2023 16:02:51 -0500 Subject: [PATCH 111/193] move code generation tests to utils' tests --- tests/{ => unit/utils}/test_code_generation.py | 10 ++++------ .../test_data}/code_generation/CodeGeneration.sol | 0 .../test_data}/code_generation/TEST_generated_code.sol | 0 3 files changed, 4 insertions(+), 6 deletions(-) rename tests/{ => unit/utils}/test_code_generation.py (59%) rename tests/{ => unit/utils/test_data}/code_generation/CodeGeneration.sol (100%) rename tests/{ => unit/utils/test_data}/code_generation/TEST_generated_code.sol (100%) diff --git a/tests/test_code_generation.py b/tests/unit/utils/test_code_generation.py similarity index 59% rename from tests/test_code_generation.py rename to tests/unit/utils/test_code_generation.py index 13d1c8fb0..679489634 100644 --- a/tests/test_code_generation.py +++ b/tests/unit/utils/test_code_generation.py @@ -1,5 +1,4 @@ -import os - +from pathlib import Path from solc_select import solc_select from slither import Slither @@ -7,17 +6,16 @@ from slither.utils.code_generation import ( generate_interface, ) -SLITHER_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -CODE_TEST_ROOT = os.path.join(SLITHER_ROOT, "tests", "code_generation") +TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" / "code_generation" def test_interface_generation() -> None: solc_select.switch_global_version("0.8.4", always_install=True) - sl = Slither(os.path.join(CODE_TEST_ROOT, "CodeGeneration.sol")) + sl = Slither(Path(TEST_DATA_DIR, "CodeGeneration.sol").as_posix()) actual = generate_interface(sl.get_contract_from_name("TestContract")[0]) - expected_path = os.path.join(CODE_TEST_ROOT, "TEST_generated_code.sol") + expected_path = Path(TEST_DATA_DIR, "TEST_generated_code.sol").as_posix() with open(expected_path, "r", encoding="utf-8") as file: expected = file.read() diff --git a/tests/code_generation/CodeGeneration.sol b/tests/unit/utils/test_data/code_generation/CodeGeneration.sol similarity index 100% rename from tests/code_generation/CodeGeneration.sol rename to tests/unit/utils/test_data/code_generation/CodeGeneration.sol diff --git a/tests/code_generation/TEST_generated_code.sol b/tests/unit/utils/test_data/code_generation/TEST_generated_code.sol similarity index 100% rename from tests/code_generation/TEST_generated_code.sol rename to tests/unit/utils/test_data/code_generation/TEST_generated_code.sol From 9a062453b78dd3a8557d5dccf8bfa721955bdbb9 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 23 Mar 2023 16:38:34 -0500 Subject: [PATCH 112/193] use artifacts to speed up detector tests --- .github/actions/upload-coverage/action.yml | 30 +++++ .github/workflows/test.yml | 107 ++++++++++++++++++ .../storage_ABIEncoderV2_array.sol-0.4.25.zip | Bin 0 -> 10150 bytes .../storage_ABIEncoderV2_array.sol-0.5.10.zip | Bin 0 -> 10810 bytes .../storage_ABIEncoderV2_array.sol-0.5.9.zip | Bin 0 -> 10804 bytes ...arbitrary_send_erc20_permit.sol-0.4.25.zip | Bin 0 -> 6650 bytes ...arbitrary_send_erc20_permit.sol-0.5.16.zip | Bin 0 -> 6676 bytes ...arbitrary_send_erc20_permit.sol-0.6.11.zip | Bin 0 -> 6739 bytes .../arbitrary_send_erc20_permit.sol-0.7.6.zip | Bin 0 -> 6657 bytes .../arbitrary_send_erc20_permit.sol-0.8.0.zip | Bin 0 -> 8706 bytes .../arbitrary_send_erc20.sol-0.4.25.zip | Bin 0 -> 6593 bytes .../arbitrary_send_erc20.sol-0.5.16.zip | Bin 0 -> 6648 bytes .../arbitrary_send_erc20.sol-0.6.11.zip | Bin 0 -> 6632 bytes .../0.7.6/arbitrary_send_erc20.sol-0.7.6.zip | Bin 0 -> 6506 bytes .../0.8.0/arbitrary_send_erc20.sol-0.8.0.zip | Bin 0 -> 7796 bytes ...trary_send_erc20_inheritance.sol-0.8.0.zip | Bin 0 -> 2885 bytes .../0.4.25/arbitrary_send_eth.sol-0.4.25.zip | Bin 0 -> 3670 bytes .../0.5.16/arbitrary_send_eth.sol-0.5.16.zip | Bin 0 -> 3660 bytes .../0.6.11/arbitrary_send_eth.sol-0.6.11.zip | Bin 0 -> 3698 bytes .../0.7.6/arbitrary_send_eth.sol-0.7.6.zip | Bin 0 -> 3614 bytes .../0.4.25/array_by_reference.sol-0.4.25.zip | Bin 0 -> 4876 bytes .../0.5.16/array_by_reference.sol-0.5.16.zip | Bin 0 -> 4928 bytes .../0.6.11/array_by_reference.sol-0.6.11.zip | Bin 0 -> 4838 bytes .../0.7.6/array_by_reference.sol-0.7.6.zip | Bin 0 -> 4741 bytes .../inline_assembly_contract.sol-0.4.25.zip | Bin 0 -> 2333 bytes .../inline_assembly_library.sol-0.4.25.zip | Bin 0 -> 3681 bytes .../inline_assembly_contract.sol-0.5.16.zip | Bin 0 -> 2368 bytes .../inline_assembly_library.sol-0.5.16.zip | Bin 0 -> 3959 bytes .../inline_assembly_contract.sol-0.6.11.zip | Bin 0 -> 2547 bytes .../inline_assembly_library.sol-0.6.11.zip | Bin 0 -> 4049 bytes .../inline_assembly_contract.sol-0.7.6.zip | Bin 0 -> 2505 bytes .../inline_assembly_library.sol-0.7.6.zip | Bin 0 -> 3978 bytes .../0.4.25/assert_state_change.sol-0.4.25.zip | Bin 0 -> 3203 bytes .../0.5.16/assert_state_change.sol-0.5.16.zip | Bin 0 -> 3205 bytes .../0.6.11/assert_state_change.sol-0.6.11.zip | Bin 0 -> 3231 bytes .../0.7.6/assert_state_change.sol-0.7.6.zip | Bin 0 -> 3156 bytes .../backdoor/0.4.25/backdoor.sol-0.4.25.zip | Bin 0 -> 1508 bytes .../backdoor/0.5.16/backdoor.sol-0.5.16.zip | Bin 0 -> 1497 bytes .../backdoor/0.6.11/backdoor.sol-0.6.11.zip | Bin 0 -> 1508 bytes .../backdoor/0.7.6/backdoor.sol-0.7.6.zip | Bin 0 -> 1475 bytes .../boolean-constant-misuse.sol-0.4.25.zip | Bin 0 -> 3382 bytes .../boolean-constant-misuse.sol-0.5.16.zip | Bin 0 -> 3391 bytes .../boolean-constant-misuse.sol-0.6.11.zip | Bin 0 -> 3413 bytes .../boolean-constant-misuse.sol-0.7.6.zip | Bin 0 -> 3349 bytes .../boolean-constant-equality.sol-0.4.25.zip | Bin 0 -> 2974 bytes .../boolean-constant-equality.sol-0.5.16.zip | Bin 0 -> 3001 bytes .../boolean-constant-equality.sol-0.6.11.zip | Bin 0 -> 2993 bytes .../boolean-constant-equality.sol-0.7.6.zip | Bin 0 -> 2925 bytes .../multiple_calls_in_loop.sol-0.4.25.zip | Bin 0 -> 4685 bytes .../multiple_calls_in_loop.sol-0.5.16.zip | Bin 0 -> 5282 bytes .../multiple_calls_in_loop.sol-0.6.11.zip | Bin 0 -> 5051 bytes .../multiple_calls_in_loop.sol-0.7.6.zip | Bin 0 -> 4905 bytes .../const_state_variables.sol-0.4.25.zip | Bin 0 -> 5391 bytes .../const_state_variables.sol-0.5.16.zip | Bin 0 -> 5583 bytes .../const_state_variables.sol-0.6.11.zip | Bin 0 -> 6688 bytes .../0.7.6/const_state_variables.sol-0.7.6.zip | Bin 0 -> 6585 bytes .../0.8.0/const_state_variables.sol-0.8.0.zip | Bin 0 -> 8339 bytes .../0.4.25/constant.sol-0.4.25.zip | Bin 0 -> 2093 bytes .../0.5.16/constant.sol-0.5.16.zip | Bin 0 -> 1865 bytes .../0.6.11/constant.sol-0.6.11.zip | Bin 0 -> 1905 bytes .../0.7.6/constant.sol-0.7.6.zip | Bin 0 -> 1828 bytes .../0.4.25/constant.sol-0.4.25.zip | Bin 0 -> 2091 bytes .../0.5.16/constant.sol-0.5.16.zip | Bin 0 -> 1867 bytes .../0.6.11/constant.sol-0.6.11.zip | Bin 0 -> 1911 bytes .../0.7.6/constant.sol-0.7.6.zip | Bin 0 -> 1829 bytes .../array_length_assignment.sol-0.4.25.zip | Bin 0 -> 3744 bytes .../array_length_assignment.sol-0.5.16.zip | Bin 0 -> 3760 bytes .../controlled_delegatecall.sol-0.4.25.zip | Bin 0 -> 3471 bytes .../controlled_delegatecall.sol-0.5.16.zip | Bin 0 -> 4085 bytes .../controlled_delegatecall.sol-0.6.11.zip | Bin 0 -> 3653 bytes .../controlled_delegatecall.sol-0.7.6.zip | Bin 0 -> 3577 bytes ...e_costly_operations_in_loop.sol-0.4.25.zip | Bin 0 -> 4913 bytes ...e_costly_operations_in_loop.sol-0.5.16.zip | Bin 0 -> 4854 bytes ...e_costly_operations_in_loop.sol-0.6.11.zip | Bin 0 -> 4923 bytes ...le_costly_operations_in_loop.sol-0.7.6.zip | Bin 0 -> 4780 bytes .../HighCyclomaticComplexity.sol-0.8.16.zip | Bin 0 -> 1996 bytes .../LowCyclomaticComplexity.sol-0.8.16.zip | Bin 0 -> 2398 bytes .../dead-code/0.8.0/dead-code.sol-0.8.0.zip | Bin 0 -> 2054 bytes .../0.4.25/delegatecall_loop.sol-0.4.25.zip | Bin 0 -> 4460 bytes .../0.5.16/delegatecall_loop.sol-0.5.16.zip | Bin 0 -> 4968 bytes .../0.6.11/delegatecall_loop.sol-0.6.11.zip | Bin 0 -> 4542 bytes .../0.7.6/delegatecall_loop.sol-0.7.6.zip | Bin 0 -> 4432 bytes .../0.8.0/delegatecall_loop.sol-0.8.0.zip | Bin 0 -> 5917 bytes .../0.4.25/deprecated_calls.sol-0.4.25.zip | Bin 0 -> 1628 bytes .../divide_before_multiply.sol-0.4.25.zip | Bin 0 -> 1751 bytes .../divide_before_multiply.sol-0.5.16.zip | Bin 0 -> 1781 bytes .../divide_before_multiply.sol-0.6.11.zip | Bin 0 -> 1776 bytes .../divide_before_multiply.sol-0.7.6.zip | Bin 0 -> 1728 bytes .../permit_domain_collision.sol-0.4.25.zip | Bin 0 -> 11762 bytes ..._domain_state_var_collision.sol-0.4.25.zip | Bin 0 -> 11587 bytes ...it_domain_wrong_return_type.sol-0.4.25.zip | Bin 0 -> 11720 bytes .../permit_domain_collision.sol-0.5.16.zip | Bin 0 -> 11912 bytes ..._domain_state_var_collision.sol-0.5.16.zip | Bin 0 -> 11723 bytes ...it_domain_wrong_return_type.sol-0.5.16.zip | Bin 0 -> 11875 bytes .../permit_domain_collision.sol-0.6.11.zip | Bin 0 -> 11837 bytes ..._domain_state_var_collision.sol-0.6.11.zip | Bin 0 -> 11564 bytes ...it_domain_wrong_return_type.sol-0.6.11.zip | Bin 0 -> 11776 bytes .../permit_domain_collision.sol-0.7.6.zip | Bin 0 -> 11652 bytes ...t_domain_state_var_collision.sol-0.7.6.zip | Bin 0 -> 11393 bytes ...mit_domain_wrong_return_type.sol-0.7.6.zip | Bin 0 -> 11592 bytes .../permit_domain_collision.sol-0.8.0.zip | Bin 0 -> 15631 bytes ...t_domain_state_var_collision.sol-0.8.0.zip | Bin 0 -> 16931 bytes ...mit_domain_wrong_return_type.sol-0.8.0.zip | Bin 0 -> 17269 bytes .../0.4.25/erc20_indexed.sol-0.4.25.zip | Bin 0 -> 2819 bytes .../0.5.16/erc20_indexed.sol-0.5.16.zip | Bin 0 -> 2830 bytes .../0.6.11/erc20_indexed.sol-0.6.11.zip | Bin 0 -> 2919 bytes .../0.7.6/erc20_indexed.sol-0.7.6.zip | Bin 0 -> 2856 bytes .../incorrect_erc20_interface.sol-0.4.25.zip | Bin 0 -> 1696 bytes .../incorrect_erc20_interface.sol-0.5.16.zip | Bin 0 -> 1658 bytes .../incorrect_erc20_interface.sol-0.6.11.zip | Bin 0 -> 1762 bytes .../incorrect_erc20_interface.sol-0.7.6.zip | Bin 0 -> 1720 bytes .../incorrect_erc721_interface.sol-0.4.25.zip | Bin 0 -> 2411 bytes .../incorrect_erc721_interface.sol-0.5.16.zip | Bin 0 -> 2411 bytes .../incorrect_erc721_interface.sol-0.6.11.zip | Bin 0 -> 2551 bytes .../incorrect_erc721_interface.sol-0.7.6.zip | Bin 0 -> 2492 bytes ...ssing_events_access_control.sol-0.4.25.zip | Bin 0 -> 4372 bytes ...ssing_events_access_control.sol-0.5.16.zip | Bin 0 -> 4405 bytes ...ssing_events_access_control.sol-0.6.11.zip | Bin 0 -> 4500 bytes ...issing_events_access_control.sol-0.7.6.zip | Bin 0 -> 4410 bytes .../missing_events_arithmetic.sol-0.4.25.zip | Bin 0 -> 5099 bytes .../missing_events_arithmetic.sol-0.5.16.zip | Bin 0 -> 5113 bytes .../missing_events_arithmetic.sol-0.6.11.zip | Bin 0 -> 5204 bytes .../missing_events_arithmetic.sol-0.7.6.zip | Bin 0 -> 5100 bytes .../0.4.25/external_function.sol-0.4.25.zip | Bin 0 -> 6262 bytes .../0.4.25/external_function_2.sol-0.4.25.zip | Bin 0 -> 3780 bytes .../0.4.25/external_function_3.sol-0.4.25.zip | Bin 0 -> 2248 bytes .../0.5.16/external_function.sol-0.5.16.zip | Bin 0 -> 6456 bytes .../0.5.16/external_function_2.sol-0.5.16.zip | Bin 0 -> 3750 bytes .../0.5.16/external_function_3.sol-0.5.16.zip | Bin 0 -> 5517 bytes .../0.6.11/external_function.sol-0.6.11.zip | Bin 0 -> 6263 bytes .../0.6.11/external_function_2.sol-0.6.11.zip | Bin 0 -> 3841 bytes .../0.6.11/external_function_3.sol-0.6.11.zip | Bin 0 -> 5441 bytes .../0.7.6/external_function.sol-0.7.6.zip | Bin 0 -> 6094 bytes .../0.7.6/external_function_2.sol-0.7.6.zip | Bin 0 -> 3785 bytes .../0.7.6/external_function_3.sol-0.7.6.zip | Bin 0 -> 5472 bytes ...nction_init_state_variables.sol-0.4.25.zip | Bin 0 -> 4287 bytes ...nction_init_state_variables.sol-0.5.16.zip | Bin 0 -> 4215 bytes ...nction_init_state_variables.sol-0.6.11.zip | Bin 0 -> 4327 bytes ...unction_init_state_variables.sol-0.7.6.zip | Bin 0 -> 4249 bytes .../immut_state_variables.sol-0.4.25.zip | Bin 0 -> 5631 bytes .../immut_state_variables.sol-0.5.16.zip | Bin 0 -> 6141 bytes .../immut_state_variables.sol-0.6.11.zip | Bin 0 -> 7044 bytes .../0.7.6/immut_state_variables.sol-0.7.6.zip | Bin 0 -> 6937 bytes .../0.8.0/immut_state_variables.sol-0.8.0.zip | Bin 0 -> 9452 bytes .../0.4.25/incorrect_equality.sol-0.4.25.zip | Bin 0 -> 8253 bytes .../0.5.16/incorrect_equality.sol-0.5.16.zip | Bin 0 -> 8205 bytes .../0.6.11/incorrect_equality.sol-0.6.11.zip | Bin 0 -> 8374 bytes .../0.7.6/incorrect_equality.sol-0.7.6.zip | Bin 0 -> 8243 bytes .../0.4.25/modifier_default.sol-0.4.25.zip | Bin 0 -> 2880 bytes .../0.5.16/modifier_default.sol-0.5.16.zip | Bin 0 -> 2895 bytes .../0.6.11/modifier_default.sol-0.6.11.zip | Bin 0 -> 2917 bytes .../0.7.6/modifier_default.sol-0.7.6.zip | Bin 0 -> 2848 bytes .../shift_parameter_mixup.sol-0.4.25.zip | Bin 0 -> 1383 bytes .../shift_parameter_mixup.sol-0.5.16.zip | Bin 0 -> 1377 bytes .../shift_parameter_mixup.sol-0.6.11.zip | Bin 0 -> 1502 bytes .../0.7.6/shift_parameter_mixup.sol-0.7.6.zip | Bin 0 -> 1468 bytes .../invalid_unary_expression.sol-0.4.25.zip | Bin 0 -> 2235 bytes .../0.4.25/locked_ether.sol-0.4.25.zip | Bin 0 -> 3075 bytes .../0.5.16/locked_ether.sol-0.5.16.zip | Bin 0 -> 3056 bytes .../0.6.11/locked_ether.sol-0.6.11.zip | Bin 0 -> 3063 bytes .../0.7.6/locked_ether.sol-0.7.6.zip | Bin 0 -> 2989 bytes .../0.4.25/low_level_calls.sol-0.4.25.zip | Bin 0 -> 2563 bytes .../0.5.16/low_level_calls.sol-0.5.16.zip | Bin 0 -> 2777 bytes .../0.6.11/low_level_calls.sol-0.6.11.zip | Bin 0 -> 2692 bytes .../0.7.6/low_level_calls.sol-0.7.6.zip | Bin 0 -> 2565 bytes .../0.4.25/MappingDeletion.sol-0.4.25.zip | Bin 0 -> 4458 bytes .../0.5.16/MappingDeletion.sol-0.5.16.zip | Bin 0 -> 4505 bytes .../0.6.11/MappingDeletion.sol-0.6.11.zip | Bin 0 -> 4468 bytes .../0.7.6/MappingDeletion.sol-0.7.6.zip | Bin 0 -> 4364 bytes .../unimplemented_interface.sol-0.4.25.zip | Bin 0 -> 1675 bytes .../unimplemented_interface.sol-0.5.16.zip | Bin 0 -> 1666 bytes .../unimplemented_interface.sol-0.6.11.zip | Bin 0 -> 1678 bytes .../unimplemented_interface.sol-0.7.6.zip | Bin 0 -> 1634 bytes ...ing_zero_address_validation.sol-0.4.25.zip | Bin 0 -> 5256 bytes ...ing_zero_address_validation.sol-0.5.16.zip | Bin 0 -> 5583 bytes ...ing_zero_address_validation.sol-0.6.11.zip | Bin 0 -> 5599 bytes ...sing_zero_address_validation.sol-0.7.6.zip | Bin 0 -> 5498 bytes .../0.4.25/msg_value_loop.sol-0.4.25.zip | Bin 0 -> 3537 bytes .../0.5.16/msg_value_loop.sol-0.5.16.zip | Bin 0 -> 3834 bytes .../0.6.11/msg_value_loop.sol-0.6.11.zip | Bin 0 -> 3668 bytes .../0.7.6/msg_value_loop.sol-0.7.6.zip | Bin 0 -> 3589 bytes .../0.8.0/msg_value_loop.sol-0.8.0.zip | Bin 0 -> 4644 bytes ...ultiple_constructor_schemes.sol-0.4.22.zip | Bin 0 -> 1851 bytes .../0.4.25/naming_convention.sol-0.4.25.zip | Bin 0 -> 3543 bytes ...arning_for_public_constants.sol-0.4.25.zip | Bin 0 -> 1373 bytes .../0.5.16/naming_convention.sol-0.5.16.zip | Bin 0 -> 3551 bytes ...arning_for_public_constants.sol-0.5.16.zip | Bin 0 -> 1382 bytes .../0.6.11/naming_convention.sol-0.6.11.zip | Bin 0 -> 3560 bytes ...arning_for_public_constants.sol-0.6.11.zip | Bin 0 -> 1402 bytes .../0.7.6/naming_convention.sol-0.7.6.zip | Bin 0 -> 3476 bytes ...warning_for_public_constants.sol-0.7.6.zip | Bin 0 -> 1357 bytes .../0.4.25/pragma.0.4.25.sol-0.4.25.zip | Bin 0 -> 1088 bytes .../0.5.16/pragma.0.5.16.sol-0.5.16.zip | Bin 0 -> 1105 bytes .../0.6.11/pragma.0.6.11.sol-0.6.11.zip | Bin 0 -> 1096 bytes .../pragma/0.7.6/pragma.0.7.6.sol-0.7.6.zip | Bin 0 -> 1075 bytes .../0.8.2/comment.sol-0.8.2.zip | Bin 0 -> 3779 bytes .../public_mappings_nested.sol-0.4.25.zip | Bin 0 -> 3512 bytes .../redundant_statements.sol-0.4.25.zip | Bin 0 -> 1931 bytes .../redundant_statements.sol-0.5.16.zip | Bin 0 -> 1937 bytes .../redundant_statements.sol-0.6.11.zip | Bin 0 -> 1982 bytes .../0.7.6/redundant_statements.sol-0.7.6.zip | Bin 0 -> 1911 bytes .../0.4.25/reentrancy-benign.sol-0.4.25.zip | Bin 0 -> 4994 bytes .../0.5.16/reentrancy-benign.sol-0.5.16.zip | Bin 0 -> 5431 bytes .../0.6.11/reentrancy-benign.sol-0.6.11.zip | Bin 0 -> 5375 bytes .../0.7.6/reentrancy-benign.sol-0.7.6.zip | Bin 0 -> 5260 bytes .../reentrancy-eth/0.4.25/DAO.sol-0.4.25.zip | Bin 0 -> 58977 bytes .../0.4.25/reentrancy.sol-0.4.25.zip | Bin 0 -> 6471 bytes .../0.4.25/reentrancy_indirect.sol-0.4.25.zip | Bin 0 -> 4191 bytes .../0.5.16/reentrancy.sol-0.5.16.zip | Bin 0 -> 5375 bytes .../0.5.16/reentrancy_indirect.sol-0.5.16.zip | Bin 0 -> 4201 bytes .../0.6.11/reentrancy.sol-0.6.11.zip | Bin 0 -> 5307 bytes .../0.6.11/reentrancy_indirect.sol-0.6.11.zip | Bin 0 -> 4206 bytes .../0.7.6/reentrancy.sol-0.7.6.zip | Bin 0 -> 5199 bytes .../0.7.6/reentrancy_indirect.sol-0.7.6.zip | Bin 0 -> 4125 bytes ...eentrancy_filtered_comments.sol-0.8.10.zip | Bin 0 -> 3423 bytes ...entrancy_with_non_reentrant.sol-0.8.10.zip | Bin 0 -> 9221 bytes .../0.5.16/reentrancy-events.sol-0.5.16.zip | Bin 0 -> 2370 bytes .../0.6.11/reentrancy-events.sol-0.6.11.zip | Bin 0 -> 2337 bytes .../0.7.6/reentrancy-events.sol-0.7.6.zip | Bin 0 -> 2289 bytes .../0.4.25/DAO.sol-0.4.25.zip | Bin 0 -> 59000 bytes .../0.4.25/reentrancy-write.sol-0.4.25.zip | Bin 0 -> 3362 bytes .../no-reentrancy-staticcall.sol-0.5.16.zip | Bin 0 -> 4176 bytes .../0.5.16/reentrancy-write.sol-0.5.16.zip | Bin 0 -> 3726 bytes .../no-reentrancy-staticcall.sol-0.6.11.zip | Bin 0 -> 4072 bytes .../0.6.11/reentrancy-write.sol-0.6.11.zip | Bin 0 -> 3637 bytes .../no-reentrancy-staticcall.sol-0.7.6.zip | Bin 0 -> 4008 bytes .../0.7.6/reentrancy-write.sol-0.7.6.zip | Bin 0 -> 3708 bytes .../0.8.2/comment.sol-0.8.2.zip | Bin 0 -> 3261 bytes .../reused_base_constructor.sol-0.4.21.zip | Bin 0 -> 2883 bytes .../reused_base_constructor.sol-0.4.25.zip | Bin 0 -> 2908 bytes .../right_to_left_override.sol-0.4.25.zip | Bin 0 -> 2015 bytes .../right_to_left_override.sol-0.5.16.zip | Bin 0 -> 1997 bytes .../right_to_left_override.sol-0.6.11.zip | Bin 0 -> 2024 bytes .../unicode_direction_override.sol-0.8.0.zip | Bin 0 -> 1397 bytes .../0.4.25/shadowing_abstract.sol-0.4.25.zip | Bin 0 -> 1314 bytes .../0.5.16/shadowing_abstract.sol-0.5.16.zip | Bin 0 -> 1339 bytes .../0.7.5/public_gap_variable.sol-0.7.5.zip | Bin 0 -> 1756 bytes .../shadowing_state_variable.sol-0.7.5.zip | Bin 0 -> 1546 bytes .../shadowing_builtin_symbols.sol-0.4.25.zip | Bin 0 -> 3097 bytes .../shadowing_builtin_symbols.sol-0.5.16.zip | Bin 0 -> 3013 bytes .../shadowing_local_variable.sol-0.4.25.zip | Bin 0 -> 3502 bytes .../shadowing_local_variable.sol-0.5.16.zip | Bin 0 -> 3699 bytes .../shadowing_local_variable.sol-0.6.11.zip | Bin 0 -> 3751 bytes .../shadowing_local_variable.sol-0.7.6.zip | Bin 0 -> 3642 bytes .../shadowing_state_variable.sol-0.4.25.zip | Bin 0 -> 2577 bytes .../shadowing_state_variable.sol-0.5.16.zip | Bin 0 -> 2656 bytes .../shadowing_state_variable.sol-0.6.11.zip | Bin 0 -> 2695 bytes .../0.7.5/public_gap_variable.sol-0.7.5.zip | Bin 0 -> 2034 bytes .../shadowing_state_variable.sol-0.7.5.zip | Bin 0 -> 1543 bytes .../shadowing_state_variable.sol-0.7.6.zip | Bin 0 -> 2621 bytes .../0.4.25/similar_variables.sol-0.4.25.zip | Bin 0 -> 1785 bytes .../0.5.16/similar_variables.sol-0.5.16.zip | Bin 0 -> 1787 bytes .../0.6.11/similar_variables.sol-0.6.11.zip | Bin 0 -> 1807 bytes .../0.7.6/similar_variables.sol-0.7.6.zip | Bin 0 -> 1750 bytes .../solc-version/0.4.25/static.sol-0.4.25.zip | Bin 0 -> 949 bytes .../solc-version/0.5.14/static.sol-0.5.14.zip | Bin 0 -> 964 bytes .../0.5.16/dynamic_1.sol-0.5.16.zip | Bin 0 -> 974 bytes .../0.5.16/dynamic_2.sol-0.5.16.zip | Bin 0 -> 988 bytes .../solc-version/0.5.16/static.sol-0.5.16.zip | Bin 0 -> 961 bytes .../solc-version/0.6.10/static.sol-0.6.10.zip | Bin 0 -> 955 bytes .../0.6.11/dynamic_1.sol-0.6.11.zip | Bin 0 -> 971 bytes .../0.6.11/dynamic_2.sol-0.6.11.zip | Bin 0 -> 980 bytes .../solc-version/0.6.11/static.sol-0.6.11.zip | Bin 0 -> 957 bytes .../solc-version/0.7.4/static.sol-0.7.4.zip | Bin 0 -> 938 bytes .../0.7.6/dynamic_1.sol-0.7.6.zip | Bin 0 -> 956 bytes .../0.7.6/dynamic_2.sol-0.7.6.zip | Bin 0 -> 969 bytes .../solc-version/0.7.6/static.sol-0.7.6.zip | Bin 0 -> 937 bytes ...torage_signed_integer_array.sol-0.5.10.zip | Bin 0 -> 4065 bytes ...torage_signed_integer_array.sol-0.5.16.zip | Bin 0 -> 4088 bytes .../suicidal/0.4.25/suicidal.sol-0.4.25.zip | Bin 0 -> 1512 bytes .../suicidal/0.5.16/suicidal.sol-0.5.16.zip | Bin 0 -> 1504 bytes .../suicidal/0.6.11/suicidal.sol-0.6.11.zip | Bin 0 -> 1511 bytes .../suicidal/0.7.6/suicidal.sol-0.7.6.zip | Bin 0 -> 1479 bytes .../type_based_tautology.sol-0.4.25.zip | Bin 0 -> 2183 bytes .../type_based_tautology.sol-0.5.16.zip | Bin 0 -> 2207 bytes .../type_based_tautology.sol-0.6.11.zip | Bin 0 -> 2213 bytes .../0.7.6/type_based_tautology.sol-0.7.6.zip | Bin 0 -> 2142 bytes .../timestamp/0.4.25/timestamp.sol-0.4.25.zip | Bin 0 -> 2641 bytes .../timestamp/0.5.16/timestamp.sol-0.5.16.zip | Bin 0 -> 2621 bytes .../timestamp/0.6.11/timestamp.sol-0.6.11.zip | Bin 0 -> 2659 bytes .../timestamp/0.7.6/timestamp.sol-0.7.6.zip | Bin 0 -> 2593 bytes .../0.4.25/too_many_digits.sol-0.4.25.zip | Bin 0 -> 3459 bytes .../0.5.16/too_many_digits.sol-0.5.16.zip | Bin 0 -> 3413 bytes .../0.6.11/too_many_digits.sol-0.6.11.zip | Bin 0 -> 3512 bytes .../0.7.6/too_many_digits.sol-0.7.6.zip | Bin 0 -> 3196 bytes .../tx-origin/0.4.25/tx_origin.sol-0.4.25.zip | Bin 0 -> 2729 bytes .../tx-origin/0.5.16/tx_origin.sol-0.5.16.zip | Bin 0 -> 2858 bytes .../tx-origin/0.6.11/tx_origin.sol-0.6.11.zip | Bin 0 -> 2846 bytes .../tx-origin/0.7.6/tx_origin.sol-0.7.6.zip | Bin 0 -> 2769 bytes .../0.4.25/unchecked_lowlevel.sol-0.4.25.zip | Bin 0 -> 2211 bytes .../0.5.16/unchecked_lowlevel.sol-0.5.16.zip | Bin 0 -> 2615 bytes .../0.6.11/unchecked_lowlevel.sol-0.6.11.zip | Bin 0 -> 2529 bytes .../0.7.6/unchecked_lowlevel.sol-0.7.6.zip | Bin 0 -> 2440 bytes .../0.4.25/unchecked_send.sol-0.4.25.zip | Bin 0 -> 2715 bytes .../0.5.16/unchecked_send.sol-0.5.16.zip | Bin 0 -> 2780 bytes .../0.6.11/unchecked_send.sol-0.6.11.zip | Bin 0 -> 2790 bytes .../0.7.6/unchecked_send.sol-0.7.6.zip | Bin 0 -> 2725 bytes .../unused_return_transfers.sol-0.7.6.zip | Bin 0 -> 6111 bytes .../0.4.25/unimplemented.sol-0.4.25.zip | Bin 0 -> 2469 bytes .../0.5.16/unimplemented.sol-0.5.16.zip | Bin 0 -> 2967 bytes .../unimplemented_interfaces.sol-0.5.16.zip | Bin 0 -> 4288 bytes .../0.6.11/unimplemented.sol-0.6.11.zip | Bin 0 -> 2951 bytes .../unimplemented_interfaces.sol-0.6.11.zip | Bin 0 -> 4256 bytes .../0.7.6/unimplemented.sol-0.7.6.zip | Bin 0 -> 2878 bytes .../unimplemented_interfaces.sol-0.7.6.zip | Bin 0 -> 4182 bytes ...ed_function_ptr_constructor.sol-0.4.25.zip | Bin 0 -> 6624 bytes ...ed_function_ptr_constructor.sol-0.5.16.zip | Bin 0 -> 6687 bytes ...zed_function_ptr_constructor.sol-0.5.8.zip | Bin 0 -> 6668 bytes ...ninitialized_local_variable.sol-0.4.25.zip | Bin 0 -> 1811 bytes ...ninitialized_local_variable.sol-0.5.16.zip | Bin 0 -> 1798 bytes ...ninitialized_local_variable.sol-0.6.11.zip | Bin 0 -> 1827 bytes ...uninitialized_local_variable.sol-0.7.6.zip | Bin 0 -> 1762 bytes .../0.4.25/uninitialized.sol-0.4.25.zip | Bin 0 -> 4255 bytes .../0.5.16/uninitialized.sol-0.5.16.zip | Bin 0 -> 4291 bytes .../0.6.11/uninitialized.sol-0.6.11.zip | Bin 0 -> 4187 bytes .../0.7.6/uninitialized.sol-0.7.6.zip | Bin 0 -> 4099 bytes ...initialized_storage_pointer.sol-0.4.25.zip | Bin 0 -> 1996 bytes ...initialized_storage_pointer.sol-0.8.19.zip | Bin 0 -> 1937 bytes .../0.4.25/Buggy.sol-0.4.25.zip | Bin 0 -> 2749 bytes .../0.4.25/Fixed.sol-0.4.25.zip | Bin 0 -> 4045 bytes .../0.4.25/whitelisted.sol-0.4.25.zip | Bin 0 -> 2858 bytes .../0.5.16/Buggy.sol-0.5.16.zip | Bin 0 -> 2744 bytes .../0.5.16/Fixed.sol-0.5.16.zip | Bin 0 -> 4064 bytes .../0.5.16/whitelisted.sol-0.5.16.zip | Bin 0 -> 2864 bytes .../0.6.11/Buggy.sol-0.6.11.zip | Bin 0 -> 2803 bytes .../0.6.11/Fixed.sol-0.6.11.zip | Bin 0 -> 4100 bytes .../0.6.11/whitelisted.sol-0.6.11.zip | Bin 0 -> 2898 bytes .../0.7.6/Buggy.sol-0.7.6.zip | Bin 0 -> 3458 bytes .../0.7.6/Fixed.sol-0.7.6.zip | Bin 0 -> 5568 bytes .../0.7.6/whitelisted.sol-0.7.6.zip | Bin 0 -> 3593 bytes .../0.8.15/Buggy.sol-0.8.15.zip | Bin 0 -> 3525 bytes .../0.8.15/Fixed.sol-0.8.15.zip | Bin 0 -> 6065 bytes .../0.8.15/whitelisted.sol-0.8.15.zip | Bin 0 -> 3678 bytes .../0.4.25/unused_return.sol-0.4.25.zip | Bin 0 -> 3194 bytes .../0.5.16/unused_return.sol-0.5.16.zip | Bin 0 -> 3207 bytes .../0.6.11/unused_return.sol-0.6.11.zip | Bin 0 -> 3106 bytes .../0.7.6/unused_return.sol-0.7.6.zip | Bin 0 -> 3033 bytes .../0.4.25/unused_state.sol-0.4.25.zip | Bin 0 -> 1917 bytes .../0.5.16/unused_state.sol-0.5.16.zip | Bin 0 -> 1928 bytes .../0.6.11/unused_state.sol-0.6.11.zip | Bin 0 -> 1946 bytes .../0.7.6/unused_state.sol-0.7.6.zip | Bin 0 -> 1879 bytes .../0.4.25/var_read_using_this.sol-0.4.25.zip | Bin 0 -> 3972 bytes .../0.5.16/var_read_using_this.sol-0.5.16.zip | Bin 0 -> 4379 bytes .../0.6.11/var_read_using_this.sol-0.6.11.zip | Bin 0 -> 4378 bytes .../0.7.6/var_read_using_this.sol-0.7.6.zip | Bin 0 -> 4290 bytes .../0.8.15/var_read_using_this.sol-0.8.15.zip | Bin 0 -> 5121 bytes .../predeclaration_usage_local.sol-0.4.25.zip | Bin 0 -> 2621 bytes .../void-cst/0.4.25/void-cst.sol-0.4.25.zip | Bin 0 -> 1415 bytes .../void-cst/0.5.16/void-cst.sol-0.5.16.zip | Bin 0 -> 1414 bytes .../void-cst/0.6.11/void-cst.sol-0.6.11.zip | Bin 0 -> 1408 bytes .../void-cst/0.7.6/void-cst.sol-0.7.6.zip | Bin 0 -> 1366 bytes .../weak-prng/0.4.25/bad_prng.sol-0.4.25.zip | Bin 0 -> 3076 bytes .../weak-prng/0.5.16/bad_prng.sol-0.5.16.zip | Bin 0 -> 3016 bytes .../weak-prng/0.6.11/bad_prng.sol-0.6.11.zip | Bin 0 -> 3095 bytes .../weak-prng/0.7.6/bad_prng.sol-0.7.6.zip | Bin 0 -> 3001 bytes .../0.8.0/write-after-write.sol-0.8.0.zip | Bin 0 -> 3177 bytes tests/e2e/detectors/test_detectors.py | 39 +++++-- 357 files changed, 169 insertions(+), 7 deletions(-) create mode 100644 .github/actions/upload-coverage/action.yml create mode 100644 .github/workflows/test.yml create mode 100644 tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol-0.5.10.zip create mode 100644 tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol-0.5.9.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol-0.8.0.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol-0.8.0.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol-0.8.0.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol-0.8.0.zip create mode 100644 tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/constant-function-asm/0.5.16/constant.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/constant-function-asm/0.6.11/constant.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/constant-function-asm/0.7.6/constant.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/constant-function-state/0.5.16/constant.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/constant-function-state/0.6.11/constant.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/constant-function-state/0.7.6/constant.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol-0.8.0.zip create mode 100644 tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol-0.8.0.zip create mode 100644 tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol-0.8.0.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol-0.8.0.zip create mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol-0.8.0.zip create mode 100644 tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/external-function/0.4.25/external_function.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/external-function/0.4.25/external_function_2.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/external-function/0.5.16/external_function.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/external-function/0.5.16/external_function_2.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/external-function/0.6.11/external_function.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/external-function/0.6.11/external_function_2.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/external-function/0.6.11/external_function_3.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/external-function/0.7.6/external_function.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/external-function/0.7.6/external_function_2.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/external-function/0.7.6/external_function_3.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/immutable-states/0.4.25/immut_state_variables.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/immutable-states/0.5.16/immut_state_variables.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol-0.8.0.zip create mode 100644 tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/incorrect-shift/0.4.25/shift_parameter_mixup.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/incorrect-shift/0.5.16/shift_parameter_mixup.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol-0.8.0.zip create mode 100644 tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol-0.4.22.zip create mode 100644 tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/naming-convention/0.4.25/no_warning_for_public_constants.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/naming-convention/0.5.16/no_warning_for_public_constants.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/naming-convention/0.6.11/no_warning_for_public_constants.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/naming-convention/0.7.6/no_warning_for_public_constants.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol-0.8.2.zip create mode 100644 tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol-0.8.10.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol-0.8.10.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.8.2/comment.sol-0.8.2.zip create mode 100644 tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol-0.4.21.zip create mode 100644 tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol-0.8.0.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol-0.7.5.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/shadowing_state_variable.sol-0.7.5.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-state/0.6.11/shadowing_state_variable.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol-0.7.5.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-state/0.7.5/shadowing_state_variable.sol-0.7.5.zip create mode 100644 tests/e2e/detectors/test_data/shadowing-state/0.7.6/shadowing_state_variable.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol-0.5.14.zip create mode 100644 tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol-0.6.10.zip create mode 100644 tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol-0.7.4.zip create mode 100644 tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol-0.5.10.zip create mode 100644 tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented_interfaces.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented_interfaces.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented_interfaces.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol-0.5.8.zip create mode 100644 tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol-0.8.19.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Fixed.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/whitelisted.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Fixed.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/whitelisted.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Fixed.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/whitelisted.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Fixed.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/whitelisted.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol-0.8.15.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Fixed.sol-0.8.15.zip create mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/whitelisted.sol-0.8.15.zip create mode 100644 tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/var-read-using-this/0.4.25/var_read_using_this.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol-0.8.15.zip create mode 100644 tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol-0.4.25.zip create mode 100644 tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol-0.5.16.zip create mode 100644 tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol-0.6.11.zip create mode 100644 tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol-0.7.6.zip create mode 100644 tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol-0.8.0.zip diff --git a/.github/actions/upload-coverage/action.yml b/.github/actions/upload-coverage/action.yml new file mode 100644 index 000000000..ac620c8e6 --- /dev/null +++ b/.github/actions/upload-coverage/action.yml @@ -0,0 +1,30 @@ +# Derived from +# Originally authored by the PyCA Cryptography maintainers, and licensed under +# the terms of the BSD license: +# + +name: Upload Coverage +description: Upload coverage files + +runs: + using: "composite" + + steps: + # FIXME(jl): codecov has the option of including machine information in filename that would solve this unique naming + # issue more completely. + # This method has the limitation of 1 coverage file per run, limiting some coverage between online/offline tests. + - run: | + COVERAGE_UUID=$(python3 -c "import uuid; print(uuid.uuid4())") + echo "COVERAGE_UUID=${COVERAGE_UUID}" >> $GITHUB_OUTPUT + if [ -f .coverage ]; then + mv .coverage .coverage.${COVERAGE_UUID} + fi + id: coverage-uuid + shell: bash + - uses: actions/upload-artifact@v3.1.0 + with: + name: coverage-data + path: | + .coverage.* + *.lcov + if-no-files-found: ignore \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..f2c2d0d46 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,107 @@ +--- +name: Pytest + +defaults: + run: + shell: bash + +on: + push: + branches: [master, dev] + pull_request: + schedule: + # run CI every day even if no PRs/merges occur + - cron: '0 12 * * *' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + tests: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: ["ubuntu-latest", "windows-2022"] + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.8 + uses: actions/setup-python@v3 + with: + python-version: 3.8 + - name: Install dependencies + run: | + pip install ".[dev]" + solc-select install all + solc-select use 0.8.0 + + - name: Test detectors + run: | + pytest --cov=slither --cov-append tests/test_detectors.py + python -m coverage report + + - name: Test features + run: | + cd tests/test_node_modules/ + npm install hardhat + cd ../.. + pytest --cov=slither --cov-append tests/test_features.py + pytest --cov=slither --cov-append tests/test_constant_folding.py + pytest --cov=slither --cov-append tests/slithir/test_ternary_expressions.py + pytest --cov=slither --cov-append tests/slithir/test_operation_reads.py + pytest --cov=slither --cov-append tests/test_functions_ids.py + pytest --cov=slither --cov-append tests/test_function.py + pytest --cov=slither --cov-append tests/test_source_mapping.py + pytest --cov=slither --cov-append tests/test_storage_layout.py + python -m coverage report + + + - name: IR tests + run: | + pytest --cov=slither --cov-append tests/test_ssa_generation.py + python -m coverage report + + - name: Test ast parsing + run: | + pytest --cov=slither --cov-append tests/test_ast_parsing.py -n auto + python -m coverage report + + - name: Test storage + run: | + npm install --global ganache + pytest --cov=slither --cov-append tests/test_read_storage.py + python -m coverage report + + - uses: ./.github/actions/upload-coverage + # only aggregate test coverage over linux-based tests to avoid any OS-specific filesystem information stored in + # coverage metadata. + if: ${{ matrix.os == 'ubuntu-latest' }} + + coverage: + needs: + - tests + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.8 + uses: actions/setup-python@v3 + with: + python-version: 3.8 + + - run: pip install coverage[toml] + + - name: download coverage data + uses: actions/download-artifact@v3.0.2 + with: + name: coverage-data + + - name: combine coverage data + id: combinecoverage + run: | + set +e + python -m coverage combine + echo "## python coverage" >> $GITHUB_STEP_SUMMARY + python -m coverage report -m --format=markdown >> $GITHUB_STEP_SUMMARY \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol-0.4.25.zip b/tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol-0.4.25.zip new file mode 100644 index 0000000000000000000000000000000000000000..f3dddfab48865427a7fd9556b08d47ed26dc8b6e GIT binary patch literal 10150 zcmb7~Q*$K@7p!C3=8kPUlVr!XZ5tEYHYRp5v2EM7Ju%Mvo%?ffdR=t&s#^U6Ry~R` z;1EI}U?4~!U?Cpr_WRjpdz2s`Ko3w5RuB*n7gq;oBMUPF5mDeTdlLs!GiP;H10!c= zBQHi52U`O(Pe%u5*Z&qKmR9a&jMgp=_OK9;AbKDm0U#g(5fK(_pKMNl7G_%b5Oap@ zttfhlLSvQj1c_H&y0KX9C6Pl*QuQ@feLzs0ZZXfYQ3gwng@ZAux_&Kme=|vx?WgHO zdgrtLtx0Eywa(;8uF43xJ(hJbaV*n8M#ZjqKl% zHKwz@3F%;gh@nS}n)HzeFbmLOcg`g{*srsgIktT@EaKJet?Xw+8JMG$=Bi-`5^E3& zp}a^Bbo5!eVxZ>iE8T%ePJ!VeQKKMi~?b z++lDgHB76sG7yK)Kb?8BthC3B7LtJo`6dUKXqC6=b1O9xnovwHvZE;?N{*$I4*h1P zskkInNNyzrwYW=pWTwkI8IzvTc^l{zq(pC~!XfG}#yhFPwXSSj=hTh9jL8M<%8dM? z$hdT9Qd6Th%pY>`a;2d86Qqde*&PGHF%5wB;e$9vZ}V62cxw6xOsk_%EiZVv;{mWl zOR&066 zOp(hZbE9rnq?IG1Dfg$7tF&)aol9=LX!C_V@kAtUHgM_yzXay6n zO5nQdH{C)}wTMf=Y+K(}!_ZRs8|8X`5FQ1pDL^`6P&~G4v0r?m5KLU8xtSiC{;(be zSqMAuMW341#5JFsc=FSS>hpz~ZM%Gr*$PJ<>R6aD?J5vw?>v!bxm&#YQ4bUM>|}F| zw(lhRHvPIdyI$t{-Lv%F8$ICY>%=ABH64Lb4CctWd}L+z#tVah#9v17@mZkWWh+`c z&t^Hd(OZ#DUDyn^Q-rRzjl@0CFPgeRQ(H-+q23|(+mPf*(aMQ^M;FiDR9Rqj@UwNq zhla9c6AMSsZp2({kxw^ifo5zBm)!wp;a%|0(BVI*TlLA9eN{E;cfT=oN$BeaXAY&1 zNj927WS^`zD}(WWsIu`w9gcO)OD<2^M0(n7FI?9fDJFaisU(l`htjp{%_!j;d>;EjNn>UtVTXPvX0|=!1$^;fjWyV*C8&`@o@FA)<9a1 zN#oV#&NQpPlZU`}Z5={gHm|;ESgP{4E&Ws+Epx!T<7|Wx(2$cCvuMa-$kjvON&tM) zsb$0&#@eR|{y=u7mtyMc;TuEDlSNaf&{Rc381uvs=I^L=_Aa%yzpBV3lLlK4}_f=LDce4kF_xp~r)&q*CF6LJS zH;%VrtfAE?$mzXw#d$-BL;x(x@t^PY!m3J*O?BI<^7Krb4rXQ~Z|-T)bvxl%C~Oo7 zGn$%SegDukegTN>3svedVQ;Kj$EmffAu}`|?d&d{>nT@JKiduH{3HGxTxt#yB|xfE zc>oTWSfaN>W|q~U?AE}ov!4%0qM!Dfm~6Z!}4&BEIJf#1XPfrf=Jj8x4p$k))9 zJ40Kxw9}5 zxd_Rj?ucl&?GqCw8-Jgdnwyu_wD+VHLC8f%hoBf9aCJQWdG>=z?%vc9yDi5 zaqPGze^at1B-~kJ;lz@EC8m!mHZ4UL!sWeIKsqJARLcJH+WEqWB0Lssz<-oKE*H`f ziWD#mV)2Drq-(q86@?OkN@EEMN5Ach6oc$}srA-Fid9`Wqj(!NBwOljQA!9`9EvIA z*R>>?J0jEas}4>(!6&S$UbEmdV2mpPGcjU*cyFmmE*;WbZ)upbL;#;m5R};6SHoQ> zHFkNjqB=cX5n48oT*??H;mqY{2CD^hGrf(>R3tRF@7&X2=Z`i}6>cKTn0l|!rZntY z{Fr?N0IBUQG5%$S4^@9c_OouMJCN8G2k6ee_#Zw88FVv$_>M z5i{M({aD*VVddz}3}({jb#c@oE|@km9BX|G9PVQ6VxFQ_9zYN93$|dL$AKHUS=%-w zQKc5GfIbouf(BSAk+?;Mc46*C=j$iCxxo0 zh8(yfxs0E=D4Zwz;Sx|e(93XZAg))$`dNpW_qRb4$?{QE29Q;3SgXE4A<-XJ5bX8fMe{v-$sgAHQYQG^QcQa^5Fj(-b1 z-_(0~zQxQ+&ntYf%}S)q#m*2|xP4$`PC}+7VkzGtvx+Z}Whb%5o{*tK`9~_7C6{kF z?t09=8;!QmPWHF`8pO~8xyg8)SM2TBTStW%sC%}OyAp!DEE*esw-}e=WGx_kG&FftJz?Rs@YS@VGB<2c@)+l&Fc{Ho~EWvxa%p( z7`tdQbp*_Lmyt9|YKTi+egMDCYXi$Xn_nH}+6j=NL;8gKl6jOWx%p>uKL+7PQsTsug{ z1Td*a*c9~|Kvg!Z+1l9T!%36BC1s?Z?}qQ^YKXlI>|^$I0+KUn*{pLj$SU?<;*(`0 zN7N1Voul)^J#(kuCoxTM5A?+lA{!!QLOX=VNs=#pCwfQ5OH4w{IbN{n_glqw&>s~A z8cBE-2>nBICFY*+(KeRaSMVShP`TG(D|u=Ps=QZB5mwp=jth&9(s+uQKcmiLtPoHW{X4jQJ!}**F zda{hZ2RLlBC02P)5XW>v+0jz)lb;POr{jt)y;f%zbi;_d&&WABsgt(-Q=2_HD06qv z+$$HhH%9`HHzEg~oDE2eunBL$*puvUXmkC%hQ~z<+3mrD7q5pV6u{QOhxRx$%ODv0 zxDhrHgu);FXg+D6-&EDzLk>f`kivovKhf1Mc@NDy8#d$lbHBVcSjyM#O%78;#sO!1@H1(-Fb7{y+O>!%uy$J$<7Nplb2Gau-8(p!In!PBG>OSNym*Nw&HurIujV# zFgCNY0!O8^Fge+6Ci%#Jb!aTHmjoV@R+|7Gq8T*yrYf%oL()SeuJyb#qC$H}^GN(|-*Q@sDYaadE_$+wAu( zaT%SlM0VTm{%)pKM|DJ~LM{Kok5h@oCfh`@<{K1;UwFz@DAyilWA_!JoR@_wOg18s zuYPtj?*3GD^x%t-Q#=*T%KUxgiJf}$juXEaT1X0Xtt$_JL}OV6?c3$E)Mge3VQvlt z`(2m>;IGZD ziJQv?OB#O84D8>FF2sZ)_C5a*yP!_R+fLJIuSj_ZW{TN>9Fo#zg46=dl!7*rh#^ta z`eV|?V?mugIM)Djb<17=Y#Q1Zu0fIX-5g1CuZgExwrpT`>2v!&;xP}$AQ%G_JP3Y{ zd6ih>MN#=HRfv`yF9Ek8~Iwp zHn!)cwKpbPlySnT7*1?|;5k`_X1 zb03q;>i*Tv$~FBRWN^lFSBz)Bi}PqTpxsM>)ke%EFv)(z`#DVnX|*5K6gLFjBKg_; zMPmBKJd-$$mg%!`MZ=xi)JIwf4sEv-MO;TCe+QGDXcC0~y|+IbCJYZLq@@svt_Ed; zUx5|HGY}@(+ECPA^u~wpx-6zW;*aSMnL|2gmXG zE{hIHp(si08}~`7;~kB?%rnbfvtZjOJ->Q-Sf~$z!=Qfm8@_PpDvCIktBS#RQ67c?2D#B}_nTbzW!xB%q7v~>!a%X2Xhc$~iO!(&0V z8S_Hat@B>~Q>)@&kk7`Fn{C<|en1NKClwgjJzzl=)n9c@58i$abVA!C%~d!lcigRm z{C4ERzvWwj@ILziq2<=xy-(_na#^tkDp1?(!XVKMkFfacc*G>5Ot%7E;!}2D3!ukE zFLJ*M!tY8&h3CdbJUbjy;8O7+s#=BU)sxgudi}ELj+Hz(r)nvTvE z(s7ma4Sax65-Z>=clT%Z2-k`exbUAa9-T}y3jod2SSc3ki{Wfs%LHy4q^m0e2L)zN zRk?==v%)N0?O@a($y-0_p}McKXrzT`k;8O~Ap}lEk@#b9nH}~TgV!TPvbtqYu@Z0k z#SOLgqgMce_O3$P@)_uWZ(m&3JErGw6^JE;hOt%0!3wjG2;FSl%l_8%hs529i zfCux5^;6f&Wa92RUnM?eBT?3YKpA-SnR6cYD1=aK=w71kAA$F7!eo^gZ&%7|vkqC( zOE%rfcW1d zlo%WI`;OI<&1348n!2 z8LA56ib5cX2DUK_w8i?;B~M|eHQ=-p!P)7ScR*TZ+4f&E7H84~q*|Iu&ILr?o|Cb= zSh3#rF_EueKJ<8)k4hFz)6MOs`y&`|txr&W=0t$n?LIb2{loNH< zQLq=F7=0_{uj0I;A`Hy0^(DG0xAiAk{-Lv66ueu3H{kmPr%bSW+>Ve|$mwV?DrUCS zzF;8l64A=(D*87m^6VE23yfdi+TOcCNqkn}7q!cBEn!nsCes|(1znhdPoLIhSlars zN>EFzzmYSd<|&Z(-g-G_T{pH8&y%hDGaN_UQsc-AK{Mx8WJv6f%@X0heVfUOc4b*QSFz}g0LSzisnT?$Br~h=2)^| zV|kk`B8EW}tL}0j?Mv9@3`Xnbe9Y;oma%;!nMwq4$)IdU)we)JWxUP3FT@jL=zuD# z7yira!8{h^GqL+sXNh<4@a5ElBO%EIckC@nZAY4q#A}>>O zEB9$GTY>%i=afj~w($e^uHjBwhTO+&H8W1K{sgsOg_?xn48qKs#-sa&A)lpH zi&*82dYHsfuom249P-mzYy125n&2{R+pWMUX^6pRBafn_YAj^bv#i^4%9A+=+A*rM zA4If}Jb4{)j|^(5quFn@xwpYCuN?IlGO?>LxhurzWU-d8L4_^os!NhMNt$4D#>a#A zahhPSDw-76v)85SZq-xmXciW8ale^gNc>l7Bno{jH=lvDn2#`N*^T9xLQp;ol?8jz zbtSZ}We+h*@+;MK}_rl4!F z;6Rdkm84Vuo?GV#Og9J{KC-;uRd)f+-{SrTFr9%A;bTR=BEG)AzIHRbArG)DVC7+Z zv3ptdE?V!4o)kbD4}-uw1c+l)nKs>OLorO6tfxb3I9Z}NMcXP=`eA`nPITsMX7V?r z8`QKtEHf_{P;nJM2o6WY*f~p3ZEL@~uNd`@{UWz|0S;p*|0)aznqW8gP=ZX9Yje}e zM3=j6MU{WQG16Cc8UvHllO!Oe_ZhSUMoPDuJt@#hkpL%?61|Le$%XWvmD@`mKNEjQ z|J^cZvsoPZbNHZ?Du-;y)p&`fYRI>SAMSA5T5KO)MmtF&w1kTd30MxF;99j^jSC?l^ z$YaKVa`uBR0}LW>+k=2`vwFT;J( z$cpon#(3o<#4xY|^uC?O4XRVP;WwSi{q313>TPje&nW==+*m^Qo$;IWLz=Rr&sv_svK{47iyg|o| zFC(t6x=7ncAchA|MEEYGB2xf9ePj{-W+WYbc}el{M);odqW4k;9!utIw{-s#yLzxj zQcWiQ(!CuNJ#(ODKm&Rylm(?2x+dHDIFhr4+V=(G_|C%~+q-%{N@1+ORnYl)g2QSO zOqaZIP{oL!AcPsy_kzXv+(hzf7Zxn83-CR+8k3TAkFEv&w3C;q&g@(UZ3}EN!|UJG zp@C62AENK~;-=FAO>jr*bH|nn(C(#3cu`@T;B6uuh!?aC4(Yl*mv34VW<_R5qPtDb z%I002Q#rn*@6QfBM5~Wf`2{eWlSW{-LU9mmM1~o}l~O+KL5!N-@x;Dp#Pp=_F5CMQ zdK&T|3FIZEs>*b#`UIa9yOUX6`i3eVu4Cy@1;&SZ%2s@L4L+nt-1%yzKDwP#zF8-l z4599Dk_vkvW8B5S5KFHMA5VRM=s$*ju1Q`N-_MsIts?f-IZ697^1n(IRGf&|XXclW zcszEAoS#i#09tm@Zb81}M{)x8Zc4`F<=zspRkM`f8y$=V{=)F&Z{N?krZ52&nCARn zgsiYsK}3Yg2?lIj=43Q9avxHu(P#dFRG{;1Ggq*t7P!8DLfY*o^&YCk(bFr1`+%3ByKtWWYMex;LcMPdQu*SAjfsTa}LdPBj3(lO5ZHT=u#`K z%|OD6&-w~R;4dT13x%0=${Fa`7ZTY8XX!dO0ZG#VZK@GVCyn7DzEobezqoQ}m|&s1(bDd6GA5`DSvFR;UFvSUCGDHExQ&69?f0<|eGvsOw+@oqth=VqCbLJr1= zfL(ORE+C8iDM`@p2YtI=F~MR9!t1-^9Jw*7Zh)Nt5{|e`b3=x1{vwZ08Z;|A%ov-- zZKF>DZWY+yf9Ce(!L!>n1IYl?UGTHQTFr}Rt3;`T?M7B2J#^%0EQ%(_yKnH|pVj&e zaBL`+1HT@p453}?3E#4z(4D}GYb_tr?kpI01}UFlghE+90+#S=_L_UJ$%|0;JE$A$ z_ek!UWTj0asCAS39r|zM`Ug&PQzA{~DL68eX$G*Gg~bnCfX~&y%UOQ|v?qlE>KT{M z+&wHi*!)1_(Pip3J@-5HI}n|6nT~(Y-rM>>HyX?gG;Hw{jbd}x@F=p~TsdwR^apK< zyn@gikW}FT^t?6kqn}1JJ=8eiL|fomr4foOg;cBoT6;A0UW(98g{C+b?I2YI=En1b z2;1r8)WxsE$d5#dtB_3p&{G*Of>z;7pYxxW3eo{JM2lU73_wS9?QM5AlVY(|4PPV% z`Pd6B>Hu&4zgHc+P~4R~D|9D;W-bjMAsJ86RvW9(&eX6{T9wFaN-rXv-`;MRym_pd7&Q8OHEF7 zZ1jgS8pgELs_~pmR&sGn+{}|%9jQ*T)1E2%DzCU~M#OM8HpNWEbm>Ezz94L;t~{^! z1xgY)Bgw$x)-_?(kHKNit1Xapk3Z5iK%_6t@)#t3XkVqyKG;2?(8JEz6Z=gd7|Z;S zKF(P@Q*xOHimIJalKdf`eZQ^M=&I^dkauN4DryAxR~eoO~j%j{o~W z$UEGE?D=i}vaRFr3&(a$-Djx@B13MGce_-;xI>Ri2kha|EuX1=fGNk#2v*8U2shyq z;6bRipK@EUfhC-}tGgqI>xY?65qjm1EVT3Ia%fe2_!k@a8`~e*g5Fiw6rHUARAIXb z*&Qf#ArSc`)Gx>utzk87eh(?sI^lm`zJ4O;b*V;?``=n<_SopO8oW~5hPpHQb)|=f z!uKmFvIzIoga_82>J*uD7gg)>ZlC6Cl~nEDL+ep0B^>$^IQ!W`cA9dtn{FS!fvamYA%Fn1iffY(_xMZ&6nf9nyYQ!< z$P8gQu#tmU`Spovy2z=Z5$H4FFK!d%P}?ayGynLeg<0BpPW|Il0Dg6BJi!n1c;q!# zn*g@hR_OHFO!7yFk*M9J%h%nyL}I0l+=LUXw$I%70i0!c%m(}jyZ9~<?&GI~% zhJQ$s)ji4unKx%n6E7%1m4Dl~!i(ulO<1jTA3{0UPQ@uei|k6mCm zemUPs8iX7X&5T^gmE1hPTfEMqjj(W}J_V5V)u_?nDm3?d>SQn*1pU?hp|@4YU{hxf z;*kz^y|kLkh>>W%ew8l7^7~tU&H-n7?LXx*Q zYn5NrtnO5Znhl>D-Y^QzfnQ8_-yJWU^l|05gY1KCL(jTCVDyKeX3pzqQI+_ElbDrOtmq1x!2qcb2 z58{bn#UJ^1jbxF5V*HKsMUD)YAtT5NuHaU=WK}KGyhsh6S>Cj}<3=pCV5q`yz^mgbe(%2LQQq0eyMgB|_Q@;DX$@ODo|KvfdxAI*zPoA|0k0Bwzu0B8Y8)EUM zopX6L!8^`v5Xx9(q^FjGSpWTe)zTt~%-DaIX_}f1hlGbke>Gvr5fzUMv}a*i>z#{Z$ST zJHDc;sd=BKIv&;~!>mr!`KE(GnOn)!+Aj70F=b^sd}$ixLru^sc))vg!Co&)^x?;Q zC^+&@U`b!ZGH{d&rQb4>5W{DV4rl{aZFGH=mZF*?kohpSm-Ky~QQL($cjp;$5aaDS z*v?Ki0U3LABGPuC7#SKv-x02H2P46*Fp{)>>0g#uMp2`G4R|mjk(iM>B_QV2)QLIxW_i^+M2zn` z|9##uj`z$uOaFmC4>d1v^GpP7H=M9N3vxzj>9+f zTX1q22eZo;)B;b+0u;=odAHZlWt+3bk}`PBL1D%pr?RM z-xoA3bw^&V*@@Afr{aBIl#|?cvhq*Gd=9oT6dU+N@Yj*dQGX=vh!_sTF#CR5C^dX; z#)K-;P*A0nr3C6omFG7b)j<@%O`xr~y`WZCW7&iM|W;$-VZOedc z@Hjg^0#7KH$E;tv>1N)H_^<(CWO~skBEl|ZqX!!OhleH|9)t-@xU*9tsMpQ>OFL$B zd-(8S$S5=Vcf1eHM&xF{eZl|=7I;h0G>A9}>v7qD^1728cosR@D&M!vEtu9&E1B0V z+bg*ul@kLzr@d2fEQD~QK&4~U8oz&1!(ak3&vf-B1UENYGm9RJS*I&RkKXopvO1z= z8|R4$Y+m%NZImS1!U>xc4+HS;AC}EEa`zj(kPCt6FO|G~Zvhc9a@Udel0bSl4>CTO zb>+TmM_PgH58@jYQFo@i4*ozkPVBQ1l_Y-ZfLfiE>=fe`_Yobkrkgpze?M}5^U}~( zja2m*lD0}MFbu&tO3MG@@@G*|Re$qMes6|?sg61HjX)%rIL<0IjK-JjE8fwVg+w<{ z;ImDr%<1xsFpCN2xrcN$`qhp)$duZFPxY${t7O*U$e(RL|5ZvF*4X(ckZ$gaHzlF9 z;7K*Z5@okgzp>$~tVJ*BtgMIJ#D8hWuF_PVyNvK=bb?k4Jd15(JU-Yn>{V~eDq+jM zfauLWvLgIaU0yGX2p~1_Cci$US$E@SHUO8A>$1t^l30Ee_8eiR>W)cmPsf?~*8rc= zW1{|q?7`V5om-^45Ueipf!=3x7uSu-b%t(!M<;k5BY7cgA!TxxUJDw-nR8(ZuK%4h zr$jwl**$^7jF!60RSGR&*!7WZK=D2=8N}I=`4@ZF+7cVg13(-v!SFLIZ`h_N0}3Vt m{{JTC{)6WJuL3~-XaE2FoT3aQ)c-C){~N>qoSEu>>Hh#WGGXNa literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol-0.5.10.zip b/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol-0.5.10.zip new file mode 100644 index 0000000000000000000000000000000000000000..2755335fd25b192b57bad3215ce0c23269662103 GIT binary patch literal 10810 zcmb7~LvSt%w5(&>wyi&Qc5K_WZQHhO?bx<$XU8_)xo>_4clDsFx~iwEdhjVogMtYF zfdC-@frPlLr8{Wwx=;fFEqMV0u>b)9IlI_98Je5w3kge#+8NuMm^!Jk=o>mY8G14} z+uP`ydN|lSx%?LxTUff8GFUm=+d+eY1L*<*1poo@MMRjhez7_hF3$etfzKJSvn1~$ z2#r<3;U`>k?!jQb7e@>&P1RFh^9Dk4yhT6HMj9$T5e!D7>=s?@`C$|*KS1*dsO*%zt< zS%>3jZN+JOf(`6FoI70^8@yE!pgy%!Bsw^DGe+)R&es5$6!+%D$vd%~M`9kbX_mW7 zajm!Nvn>VEN9t$M&8=f-)6{iNi!OryK9R3^g>4d1W0a$?F@g2)>3B6pciusm>4qmV zrjTk)aQS*a%zg&CwmvmkTgsHlk_F`N3v2mzPoI__+ry#sr%iTvFbCVo?p&fJ2oj{JLi#+K_xOf6~kAe+-fS^A(E z{c|_soCd>idw=}&w*m%xUAozTqqosQe2=bDj2UT+9DHCFTtX8;BqwLr(A|8x*Pi0F z<*iT5fdl5Tm^&u@oB;5dzahz>td!uyhlggYy1C$)YDV9edaLi@@N$nHT@PeUT0 zEf^_B&#MA;nq8-^mLM$hMOGoAK;I#1MoU4dHgaFH$UN0bxd*?=_nWr88A1;=#mO) ze8E#u8Cu{=;Nn2_*|w{^Ok}X698a~wG7GJngy#YV1J~04HAd*_W{R_Y0VdU0U;Z!0 zc@E>0oA8UBT;k4UlU9R7a6#%FY_}fbr5+D|LW*oPJ6?SWqAwWZu@aNPz!!-Z;g~!0 zi3Q!_<3w3%=QoIvX*>JQ2Nsi!y4_84_UbKfpp|7w} zX+tq!LuWqz>P`H1FZ#w;B^PS)=8=0K{Yk;`6Hr%Pjw8CEaqe)M*AXfX2zEcL8Netj zGm^P}lcvfj_`x}A+golqSRk&E-ToP{(N93IISu>Otz*4l10o27&F#j!T`S;PseSq8 zY-*^ulkbP?9J}hCbc`a}j{Y|9f4)N9pg}H-vnc{v>e<^1!d`x3&%#vQ;~GE&Vr1$r zqg}q!T!+a%okM~8MV9q6o88RLh&j=~mQXS)X&4d^#sNV{v-w4v zrBO7Zy)uV^HInkkre8a|iBxiZ_A7_R`gQ$n;V}8t(Bgqdznik8T!i zew<33$vlHDfX*#}gM5LrW2VQi1_g=3cTA!jgBU;;uDy1LGG{hC{kFR8YC6GAv+3U7 zNf15Ve=PMKt%SzmM1l5LWNORT+;p(Xe&_Lox5NbY=mU(PKY_!JOQd_r@nZ^DOV6|+ zWmtviLUf&)?AZ17J>bsFmW4G?Tj&(4YhSBnqHnUblbvB)6UTI6H;M|3S39uoV_fGg zQoI2%Wl(5XJ@6+p$hxY!KEHerIBQWZiu^3~Y9dCF9?kNpgdEv#AC(DtAnzRoii2O3 z;;T9kR@+tF{RF~oOMGhgE6#{km<7st*k21}RRrdsqzQAG0MqQn8&Z!(J@6x*OvqIZ z3~L3TN_NJ^=71UT&BrKn%XHg=inI9_8=<+#?P2}Hd@oR>89BsnUIe7JEooBX)-SfC zmyifP7>QYy`M@*BJuwV~Lgp?PP?u>@2hBJXbT;&gpnh<4X=lJH7$n_Khkd+VhB=0s zim25lgrnrTU9yC(FQkFT4!%!;g#+ zvx`b4ny-OsQsmA$L)|=Il5OWNp2Qtf()#13IYmj;F>S&NV)7eHnrA_Cpa4AEbtCfJ66!UK@R-Wzv|=5Lt}CWZ4s#u=m+G-9N- zbt&McC)%5F-;4nANK*N5B^Sdb9!$2}JE9^*CLH$zS92w~MwExrvx1eTcyoo6WCLPy zQ8OW10OOC(wlj@$0kEOs@4Y4J9s-ce6J-mZs4_t<#X( z{^~JZm0)Ig{Lk8@`4(Js`R9$I_`*`@bzy9dbybXR2tW56!L^w|cB>k)0qqXytf-x5 zhcI9fk{8PYg~SPCSVV6p#{B?L$i9+YF9dB)*4{lXuVWIVz3oV?tfBBpi$<3k_la@S|ivotTWY+tIS;}n;L$>?PDP&Ie4Hg8qit4b&u3zc0 zRb@t2V~f2__xwqib^js)C`lHN*S*!WShE`Yl(1?p4mV=DDT2aVw>e{Ye!vB8DBs@s~BEkn?r*FqV}VL*H~^@gHYW8ZKaDi%G}sLKYcwN9Is z5A5ER$appQ0{f+ejhTMtOhJ5yScQt}Vx|hw9tU3XU#56mZuFpMhXlVf@U<$s2CkVh zcju*YjZ(XVHG22?QM9aagOZe+l(V}?36Pn?dhk*c7}v~%lQPefAI+U4B~z}vQ|1(8 zmkkXLgSRKnOuT2!crJ_Usp#qK;K>@j^CFjq0#ET9_XixHGe|F{jzQYwC0dri}4D|O}E*Kk)V}hkobLyaM%fh3P3ayT$LBR)Eq_;b( z@VQ1vuf|5WWkbr1e}niaxty5DHE-Ojkh7|);|eVmulh6=2g}`D%S7VWfVN#ZC-X4&W$z(2V-g{*B>{1&k&$FM1t1z3^{w#lJ5fx-miy)&j zeU~U&J~KH1%&_CFi}(X4+(ZqQw8(udGVR$DZFL;ZYS0;MlgeR+niMU^;Z7O`HC?Ki zzrQuPd|!;i@ik?(A-pACjNT+34V{xDXVggIurLI20rAyauc6?!iussjs#YMWGuyyp zlr&lkt{30U4aN-%wa5&KQWUHLd(K=d(M$1Mj~aPp*|#WFdb9|p+3T;qDc>>Lu06^1 z?LvKS^F(V=9L>*RWSzs%f*!%didv{q5-)hxN^mg?T}vh-DS)5xUVV}~$9oO#TbMk) zw**{28O1TG^p7oaE4F&x{EEeDCj{RucKNmTCbpp;&}H(8sj3(u*9vAumfq>`tl9#h ztj_y1clRu+c^)G{7Gm70SlmhL9orZ<46SRSHZKKyQ+|8p@u3vj*E;w03G9EOudsU9 zRsA)8g|aLDrKe?<+itoMRxAVLZ#bSj$htse7Oe1wkCV8?G)mz+2y2@@@8d3*Djk23 z?#=vh&)A>v+0${sDvKz0&4Ljbuo;C7sUf8ESi?>m#3oh#SqzT`{f$Uzgn{}#2qQ&( z_;A?;%#vo4lq&Z~oc`suNi=7%HZ-AP1+@w4DK3Hv1_T?5Ga&>D#7BSzK;n7(PwEvS z(tg7Ow)`hv`@ac^xQH^O;B4_6cE-?3zIP}_HBH|hml<=1hm|dLJut=+f_7|^MnYCC zC!*YTzSHz7coPz7dP{+e5|2Okmq$ch73GJ<^}iDu{$3QK+e<{gPfe~o2iGPfwVOHsLtNd8 zh9C{}jVp`)U9O!~5ROs?UNp0n>*L?*)M)iR)y)s!;L%^v& zQm|Q`NFHIl8TWN`f{xcO5a`yU%x>{l${I5oFb()##;gzjLiM43v!30t%s+i3JrDT4 zXtSue{~Smf3*jW_RBe(pttD08CD&W(2w7F05&vLfCO${->pwS|b6>0hQ#`=n;K#JO z5V{^<44IdYLJ>xcVEvdNP`w-l*J+j3Up&S z6jDC;VZs0KS%dZ`{(E2n#)A_EX-s9Nx@{g|N7BtNUc$VaM*vgS0ZQ z)2F!=oE`N;&fXop`KO~OYH=uYS}H!!|Iqbmt8KpOFd2J%k@R*;E}g6r(QQ6obbR;lwNB(;GW z?1NAB_*%pT&5vHpu$?Ktzw6Tt9WHq5e8DnsG!t|{&9P}*0nrj~Vgu{XDJpPVJ;o}v zfa55Qu0PE0MR5VX=U>tq|3sOPF%h=HD$c8#MGLDgihz-Cok>)%wC689Q2&Gm$%KeE z_7@*+O-GjEDf!kSyFb?!>V7w7`m>|H%T}fn{+_$;bLJx^?;D$v3MQUD?9)7;BL9x& zwdE!BsO&tVGMBp^WS7LB{Ur=(Qg92dm6gPagvyn<+DHqc_X@ZyoMiu0h55LDKPTD} zo7cU>s>J+!A77kBlgbXOSIJwy@PJw+Kt|q}Jpv9hwhQ?zLq~G0#>gavSgrBgSOX+@ zvJi>)hCuKk?gV7y*n~+@8}LEpr2o1&d9>6f=g<+x@8FjqJ_QeM#@Mw8afhlB2{oH& z*UfUG5Qa~{f^qaSqNpdB(~@iHsDs_^^Wwi7LB!D##*+WhX4>7{D12`J*S$`1Fg9%z z7R2RbR^NXAa(oILF7a|^lu?^klxh$tnGQ#L%hyCVm=K%w-a7=q%v9+ttZ+)H;Z2ai z`H_yWQ*D`ta86k#2%3-rka)AyR_}}h_q&5vPW?j7jsBnn7w8F%->TVgzB@3;=rgoT zOJyo>_oVDTlM|WK<2r}TWU+@Ee6Q>#PSH2T+ZH;gY&Uy|g4tY|0+HNOMUy-61Vvqb zz(L^8JqBW$Ux$mZk$&cVNRjh>UH_u9vj(0aSH-BAlBuDZt@9ZahYdn~EzzHY28Uxn za7EJr={wL+nJ%L=4*(sfnx1yUr_u1Q z?DR+HNSEjg=@Sss+R#uHtm9MM)Z;@bZN6t$>7Ky`UPc{hQzsrW`jPJ07+&85Bv)~Z z(FbZzf?wD_>U!g1ge;G=;hL&a?Dll;{*&RdRHksg(VT;01b$P@ z0JhaMJC{IEP^1vEcxNDFYxw!xXlzbRaIxuFhS+6>eHwP0jHM%B2T46v>O72IZ*d`( zb{oGI`5u(S7guIo!d3Z}K7EFSU6J7)=?3}9;TH3`Q!vG3mR^RT*I%k_JLls^4&dE1 z_UiLp=OAg4^q9dE^@9!uxnI7>2&y2L&jfbZpQDH*wu^JlHx4ANr!3W9?yG|jT1YsI ze`}X$C8HN1SwQLn>4G{|f57fzI+o`f)8_B$4T0rLsCSqLddPzF z^Nh9&`4pHRMei$Jd(ys@Qg8nQd*gzvaq$Fun$`0-*+?@wC{&xS+VP2c9${I3Lq_@r z|D9b}ufcM?j4QKG+Es$DgYW;4#s@r~q4)&KB#aXZ@k1Cg9ifxelxi7)>@G^Qel8(S zu;#L(0pUe<@1GKFRF<>As+abv_fK%KvYJ;t;dYQ)+6Os8BeF51ZAYTu`NlOZpX8xt z7kSVc^KNkk(@zu_!N4m(?Et52;6B8RoPoDD=HEu!v)ys>+rH)x+~-wt(0WA{{8cC zCO8>hZSxB|v=)MFs~qr@X8h02QEqA6j*F^sD;jAa@lhwVXJPB9@S?_{;pMeFur&f5 za-c!36Q zz8(JY1W@trbnA8320_UH&o1~@4(8i!!3>nrwY578!!jtl?Pu45h*{yFV`6euGV2{H zmjw(-p2eP}rF@63w@ByipUw9q$uk5LcPhbGmW)$Ovje5Gr9H%bm< z5RDPssjTOS6D<&pXGbkKo)Z?Xg;F$VPho0Gr8JHTOcP-Mp|Ms2=u>bY6jcWw?}y)Y_iT(zb?s>fk3ty|)j!dQZADb^p=+M_qDk&yi}!06P7${%28czf*`Y~r33S*T zWC|k1-n$S4SwIcJc}k6j0PQeqB*32EGIMYKe3?Q^!-Lv;bj$TmhVy1XE(9x6$hOG) z!ym)%swl2?ohdizWVnc!kswxi0*Hz)I|Rm9G$*$q64IiLFekT4+tHgMH77E{xV~yV z*n>zcg!vjI)mWD|h}=hxI{a}HJB^{;Zb=+A^3Bm#|DKK3A+Pu8M{xmiMJYhK{+q#U z?5}73GYte1_8~JD9g(h;z>*o?uEV1DCr4q{*4rG(^Tnl!F1%uL=E^@so1CO-nn^$M zIVfz!)Z5st1lItC{a^mL&XRInYkUFBhdg7JbsB*pSEhEQncL>v(V`{IJCAj2`8U=F zy!H^hO^VW?lW3)r*ajK)s?U-$wMIJ+U5&nP&Lq}XxN9{qfa}D7 z-O$R`R$d8_pP)}#yYd2K)LLxjI*0s=>ME2N6Ct^+gvGdMUP=5YwoH8DwdWDf!^$I& zI)nH4;fE7)u**KByaQ_23p~B+QJmwa%z^dTl2rB+8Q=OlHUL?6szS*$#P!V#WWaK; zT%a#&T13*=uq9(kLHz<$zlirt)T8MvM_boUi4bY#mDMHMGg5tin^akGxMvbrrf$*|L3ZVj*E+uWO?2236`f@@qC zd(>a@tI}tWiOmq#5H)n_Uf#4(olI#dSk1MSP2^!U_~~nxIUjKy#rm}7_F*i&B46%Z5uV1KTue0`TG{xNR{gh1qinewE>245F14ob0X@h+Um_L68{C)_8{2 zT!6_n(PMC{Ooc#hNDLy-M0BFIoH*w94+>Rb|2IFKaVwq~t(KOoVVRP%f6CZltSb~U zcI(p8`k;>mH2jUIMT}zV+gLg!007MaZKNzi5*cxSD_C>0}1JYs* z?qztow)*s?Xug4FFY(VDC${U^8^W$g9C~6I>pCl|1pOV}8;7t}_Nn@CR8W3~KtYBSP=`9` zN_itdBp2;i80Hm$&B6BQi&O!mXuBEGl1QF(Xzy}hwN8;P>)thgs_R^e7=PrSPa7O7 z)!U6?2{7+#7;TMGLxG4Wev1jUp5==G5bg=IAm!#REOR&%43r5!5YX z-L(j^)0X^C4(e+j_2(0DgRL7(z2cdG2VT#1IutVY19P{oq%NPzYM1x{_Yf`;Zax!< zO7pFhOrX-IzRgn`tl8i9KzPG0{q3NiWPMGXb6xS?!LCZs#UKmyu9j`zf(c zFgKgH#8z*roj!lT@sv5~+4_2+xsntpFV$aD;nxXPpL{+(l@!lVq3N!l_Gp#f;Y=PS zz|GXU^?|Ac6nD~Qn!lx^iTKWfo>jmJZXu5rMf2QhA?)|(QdX`l+(+oD0-HJkgStfC zJJqC$XoYl8PSHFvlA5ngniG@ z!CXkNPmIB$b-pz&%xeS9ZjUUAWc!03q=IU#)1|<(X>3$YE19lYn9oBgErjj)2yEV| zGc|3ETTz~8^KVlA61ULh=9n6C99$R*%0ReDic8f@*VfaF!gp1WJp6jvsox53LD>%s zV}1jAdM`nbD`1G#L77()HA8MYEVkl?tpdSrC;~>Gsrt;6L8LV~XrErWlq6JD=XFsF z!Pawed;-41gmX!?n9N{3EJmDtoj+X7j8rqLq~m#R;@}#(ypYP>2j*f&V5{))uOc^P zkddOuI1Jnhg6S|PXG1%$X;{fkplYPEc;!bRS>7SmbHfiE@~3|+Bq8lh1l33X?kxDOrQgIEyH#etrAH*80j*KX2by!#BAn2`q%nUzx`v)LhQBkXrDsKs(u*lU< zWYvg_(qL3PD}~!0a)oiY5HCnl>Tr+>+SJV}>?1;d0}T=5mvbuR)js^Rt1JxgS!IQ*wR?l{i4uE zKVd^ikwK-%e|#&xEUK?mRog1B!75UI_c*HEMhd^0UxKuQA7k``zg{xdUXrWJ+{%lN z-EFd`mmqK*BHN#rnMla>hAXoNX5~}|=J$91co`FJ2-MogAY{t_(Zu@tHCr*xIZv}j z^99>GIiK3zp;@}DYw=9Nv4p;4Q+DxTv^BZ12g90rooZCY>&y^pg&*$tyLaSJ@2#24BJCocCawojRq5&qIOW)$C- zu3UWtT8586YJVU2^;P}1_52ZQ|C=^3sp1M3Jfh6`P~r*bD}wAmE)j54FBTQ`;^`;4 zK5=S;deAQ4iL!W2=Mo+FgQ1~nxZY$zj88Yz)jr*0F0DA)W^B<~%>w}uT;dEYj?paME$ z3K@VQpzM9$S_6{0|0R0+vqI>ZLul7BXVddkFLsqc{u%s~dH&swGDo1txCp@wNWbzP zIfb(_e>JmV{h@*}eqg#B-G{m*b0wtah0v`QX1ip>w?p#gb+n!6lA8qG6NLWsEwE{b zHAyQ3A^(&A+e|UyID|KtzGca_KjgCeoc5BFjUatahzvD(AT*HH3sXNv`9R;%&i}C` z0m<~1zE;ITS^*^CFj=bqpx7#eY}wO{&B(KXEo)77!O6-{&K+b1<{RMH1@-TT1reC8 z#E@zmWnNBx$!W>v$HLjTEUcU=xZ?Sc8U#C8uTJi&96ZYEgNxyWgp+F`bpA#>#36jZ z*@O|y$1a*szU(gE1AInKnrPZtQp`N-ufHPKt?&*1kd}aWB47blbszSkDE?ipPv$ev zsxc7P586M<-_>vHujg-|Jy>v+|DE@4ZEv3YpX!S*R{j#odowjK?CH7i(?x7cpFH+B znb1gob=GAN!uR|L6v~~4v4bGjE{%vwQrhm6Y zRxo8t(VG15R8LaXptVBPZExk|-jbMYHJ&?Z^R4!w*s_idI~w-_|G=ALs1l67f0g}Z zlB&N8;|cr6{+kUb*+k{_PKMEbkjFY|0B_a@rIJYeOL_lO?^FkRnECI)eJ~GxtlP3M z{$2&m5@^p^MG@KfXOO)iZ#$Q=e!#2{J_8?y6`dzwa^S`#P*y*&%w?Do-uxQqp?OB4 zw8o0CxUGDS*FD%-RIRTWJ%*vjOf~B=^a83ME#WBBlARM*SjXRAn84*^YGb^xteg>< z(RIH<%5dD|bE4=QRM55FhJh7o@sE^*g(CioLK)qABBl)HEq71=?O}^JG|+k|u)0>L zjjlYf)f1_eHHe~&G4KkXba{$+{@za|?xzrEv(Ay9X{8biRB(-h{j*QdS`#MT6~^sy z+Plf}0jRNrBN*{$U=3_40r05cpKr96&_5-W&+;ni?IFH;SSk`;kz$UXec)v5Tihu) zQb*5pw0t=tq1J;*bQ|e?iI~!70-DzeaWUJAFQ&%sI`dr1GD!pq6B#El`Jjg+5h@c=k0tq7~LS zylTM`?n7P>_RTaoq{*t7R0hu!^SVng4&Zd4D!EW>Q$!>dFWM-{y&@lJd|;b9P`>;J z?L&hPY;?sw-{rB-!2YmXy&@A_Zq`2H%szj2#cu^K*M0?BwHaZ;~fd zjo(owb<4UxP$XcC242V}8s8e|GB;fJE7$gBeK4{(I}kgB=Q(v@{SK_GeTA5i*XC!P zkvP^`@m&6*gyzGToO=k{7rCjCJ{nCX!7B^+LEGUf$n4#~_lYcgw|ex#9tay?NO$({ zg-FbgMpa9h+1oqz#SO$qC6D1LDjQ0t?2Tj&7PAQ2*kYqr%+R@=rSl{Qy5Y|ki&%nT zhJPIdsEeYznREr=(I%-NFDHQwj!+!LVVDeX51(%-=AXo4USRUk>Hk0!r`y05SL8%1 z>qXmMGgHmfw%qwGFEU^+s6_kDkj+&$b3;~G@;{<#snKOC(8s^$?^91N8y&0u3}Oe) zJ3zJ*?V*A<`8AEo8Q;;9R-K!M)#M5l z4lF`u_BDf=j5%0d+B0V3Bd&9NZ6_6QosxP}@0uZb2{>0mQ;QL8!E=K3-t7M3L~ox! z*PLi>w;$sF__N8VQ*;R$BXv}_yJt2d9BG$|F{JHSko*e07|$$N zWwim8Oxwz(l(}wZ<4_U3)B8=zJy!mGjHUTfkOl@30R7)7&i_Ep|9=6%|6~7mrc*&0 U9O8eP!2ikMKOg>&5CsDIe@=1Cg#Z8m literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol-0.5.9.zip b/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol-0.5.9.zip new file mode 100644 index 0000000000000000000000000000000000000000..7f4e03785e59e54cb67aa5dde425885324cacc5b GIT binary patch literal 10804 zcmb7~LvSSww5?;?=%8a;9h)7aV>{_M>Dab)V%xTD+dQ##lDz-E`5oN72CHgU?b)h5 zSoJB%K|%?EL4cuvK?eWR$nfjlv!ewAoA3k&V*>*Nb9S+JGO{o;5D}G;urskYHFMHn zGca;;GV)+@wzoAfb9bIH`8c!PZgKpQMR77oIq?vhyO{$iFa z-A~nr_RM9guTEo(vCjCFRIOP@nrMtaQfwWun66eWf&hjx(nH}_zkk6n#v?(*4qs}i>CZvRNCj?!ZH~x3vbxoncI{vB1h64W_p|RHr~dAq_)9=NRDSPM_an%N4CHe z&nuC_Y)=3lMVZ*4?d(q9l<4q0%3+U zYQp^`br&mF`CaDLt+{T4nPIo$tP1Wm_?D1{ zSEvt;HHxu0xvj296mkh+i?wC^Pw_1p=@x78*1{OAc4MMyE_a2rSY(s+F&zzK$xr)> z+;>5dAb@JJI*E2zVvpY4fQN{U+z(v~IHJ?K{@_XZwUP?`Goi;_|8(#=^z7#${q`6_ zzIa$F;(O!H6DR-aSm(~jkEcX7fO(~lhAz@L`~c*~xCW$4_WT4NDK1}TH1TvJaU-R3 zG>1iA`kOYp7=OGH4G6%8g6a*Zgg`uO9&$h8Cf?k-Jo3Dbutxg?c6o2p{jAmf0 z>bE{?rNP)to_MmfGzX8MX@oD?Z1hhu*|~05+z09E@|KD}{1&eIx{{q6j-;2ayPiPbBC>I*2oXm=;PXW_v7yb0sP)um)l-;c|D z@LwU_b>VB+QhGjpDhOkmMx&hM$Dt{-L^B7}#1zmYI7^um%T=?x6|`?JlY15Wt6q@s z`FimGZjn{cHHV3t`CRX!riL(21f}(f6}qltbt~@ z4)GqRVI~}TN%=4OP4;FW7qEYp(6nxwNrusXa35=|^dAprzjZ6t)+dbf%pvZoNOM3q z@2SV{(Bq$7N$Qi)2uW1(m1Py21=J@C18({~wiw!*-c08_Xo zbsTSkBlP`qb(yH1{L~Y5Ej06BK_c_t_vRT;Y1FDDvGXnf)F5!42WZXUOjn-j4h6yL zs#zyWRu~k<`9I$lj`FOTEicL!nx-!4Vr;SRsW6LV6nveH&&d77H?C(lV?vI0JQ z1@qk39)dq;jL$5}p$@yGPkeTvo9vU2Jzv}Fn*+`Tzup(zjBgv{=4%KQ(r90I+`MA` z!k0*9m=R*o>%86N%%2z``4eL~?`)e3j{mA>21VJ4UzHL%KMki%aCQC8#{(fg7JYh1 zGmCZEB&=~={W7YT>egi^FtSi9uX|QRYMId-OuUp+sKrL!j)?fV7Ur|;PN?Wrsh22v z1PmaH@kEMl3Pf4sVFxSRzGpr*_m?_Csc6Tbh@4J?PI zE1@+WjR1#-_!GYSG=hZO$F?|xW=Sk)xU4D2RObck2Gnv7yyi?LlvJ!6$h$SJhP=qA zTYV%nU11IyzkOQ?JC~M*UT%Kb*hAO_?!O@`;XYu0AYN*hcOjnugkgu})d$HGaj@$v zRoW~aWImDk@*}1CukJ1ctDA#FPH|(uFX(v^QL{+jxhK}o;fZK z7safE*ikcgVze8rs?fSLrEb~0RJH83Mu}kw=`yOWd6gLya$D9U2 zYM;QH)~Us@j-!#300&*mHpyppkT9@CmUQ*fMb?D*Uq-+rdVPN;oUg;N(Cr=&pu>X(h6b5BcPm-ZLy_ybJE5 z_v2i!# zcv;RCDy0M9S_eO{Jc5PzfUJ%!pVRYnEnI-Yp&u&p`sH7>m!dGsx_(5EyA>!XwwN-V zj+J2;IV8DyFEG^6mhpT10!Ij4$f-RA$|H9PZ(rP6u&UDWLLM%bKH8aTnsxpOq|v1g zD`eV05gnMzUn;s5f)-y2|1H!2T}?U8Cgt(@vg z#%=KdPpTnf&}drPgPYT1LMCOrzUbC&d19qcOw6Nlrav&gINn71NjUsMPYCsB0{tju zB}+@pJh^mST0ZfXJKSTd+0Nhl4P6LufPWy){SHgVJQ_9c|CMM<~OT0S_-2p z$3mLT`zt8AGen98?HWIu8VfrA!l5v=v;1Z{S(@=VHo!dtYomqEOc&J=iLMgDSS|N0 zlj-&jv5!0VKE)WKevP3ccs0_AE^V{#zokCm2O&vhBr{M^mwrB$R<<%{{Z;-}RB#Vy(*6*!WHhTe9 z*1CI{(!qspIJeiB&M5+6mx`80fb>Ks{;;cl^8uDnr9D zt|Zim9Dm``eyrab+8anRD*d20EnfE7KR6#`y1GSjQ@qzZ5ySV6wdHQqWh~GM(en-( zo%EJ!`-@5uv1VoRBH9${c0Wii$elZ$`;)hAM{^4=>Rlho60$=ICnZXn!iIndV8E;E zi8!yf?YHn961*YZI6bc4m=}sxP=a0H9Vve4qir-EeOb2I#a&sAMkS-m5$%qFUT%IV@jB3?f9v)nH& zaUItt|20v2kgbhdOX<<6By2QB&@31wu`dPZ&~gWE6jGXD`ojZTH2`{5lJYk7%dX!r zAQsx|tI0|1oFxlBPP3yovs`3!#AVaT3IV~6Xf62P`!>I4)&>p+ALxra)z|M6al@Qu z?Wq+~zg*s4F_650?>xN)*Z;wWzG)PIX{N?91PZ%;IwOxk7f|mJse}4Bn{|>h}V8 zR#SjiD#955wJ?)Qva3-VFFb2@0IFc&mT-(7RjAtLL)k0`*bfYKRhA_ABvA8-TyCq# zAl7fEH_ngpF3eEnharF1VReYEyL#q4m0jJ+`n~elD@r~uMLfy9rAWr|izC*wtFvtn zSg+L*A2t|1L=lzlnsAs`J!I_fbkMzewG>Mq6(Yf}r4mI!m3u)S+1;qJy3||Uoa7Ag z6Z3*p@tlo)664^7Ao1rEF=ib5f}7boE#XAsegsVLGWV0-x`rhDsOscw4d3C#xz=@& z?!37=S{yVr9H)(0d z8`UQ+1c^TPsE$5MB+=@32iSLHoe$T?=r!w|MFOxAdL*gjg}vz5YT9L>n&ym)svC3t z4f|6Gw><;QW_n&!rm~m0mt?8)AQ6nFS-UusPtd?OHg?w;$UrXm#%Qi~_sKfFND?|% z#4O0&(|>EZ%#F_OmHKoccPu(CkH<7K_Lhkoo@AIM>fNiq*If!{9vAZhJaL?fse|QX zIz2&(!rj8d*q}ceEbubw)EDrKprSiy{~FS5i1^)5I3#SOHDKOZT>h#wNRa0yG4tx? zw4L7sN;-E=g(J>+eRW4NAW+P1*rmJ)vSn z?iQ?$9<#V-SNA|S^`41oV-6u2%$Rh?{UW8JA{$@po9_V!dgc1>C8f?eV*I||zWEeO z604y79S41Rb!ndH?2Fr`)*z~v;$W&ce2x4~x&1^M`TD85bn+vws5js`sua9hCX-cg z%*t$at5Pd_x1&h}<0CHFi0#q@S>#^2EiLI_SDFRb!BGkBCz#wU3C>mW{Z$iCgc>fu z^_BAn8bup7{Jof0={393P0w>51bqz5A(5_YJ*Sn(RDJ%vBFDRtD#9Az_sU=e{N*T# zJkpGpDGuLsF4!0?U^po+eSE*Azpe;jpl%y&o_r*Qmo_mw`YebgCL!N!FnwkB;nNCR z4c)YZsvh3f5}vJg#fd(^*$z#Q!Im5xzYw-@+dI8=a-@4kuuDnb)d<8ollaJ>(+)AD z-Ysq&OCe*N>07oi4T2KxXzJ^YL}#-cgF?>zoyAHb^3=aI!edPu<*}ZIEne#Z`f|*h zabw?il`_b0#ILuZQm03NS9z!Mw`ChW#47C=kcV3)`+1}en^(CMNgXFmb+M+zOc?BV zOTNCUUUR9QNXX~u6yAuxr@F@g5AU-LD6uef#QrFrCk84R9Z=c!5cWjuu9M;9wK=`lF zVfv?Ni3;=bj@a$pB~{J}&hOya$p%b0m=$8-4Qk}Fy}K!m@0FG((>v5G0_KjE4ZJ7KxZ+#SG@h<*u%~2xL&NPx~3^hFDwO!QLLY!u-ZOCjGs)E8P|4U$y1DI=nvCg_ZKqrWmaWazMEY6oP*eoE>m zkh6~B(UdBX;&=V+1+L$x@^t(ex<9SsxLzBx(ABfaY{pyfi|eEA?)#3sRtZiXXXs7T z1g?Ubx7Qe((}q?Fp^wxGl*_oRJYtE2D^G0pVJkz4F*11+7EVkkd@OgJd}rjmB0U^_nwV-n;kN;9C52VhXd-palToY3w8sy(k1{ zWPh9`s5E*;&9Rm;Xyo9mjjXYy`iJXVP_MT$8n;YsYOS%p%9=0YFLw{g=;GNISFVF~ zxifrE(FfY0Y&NRN&e*ssnnd`AWFlt<6L8w0j^QjX{gstG%g^KT0>>-#h7@uIS_!7@pxJQD-Qwg)W~1-<7{;D_)}h*|-~Wo#M+t6|)j>Q7)7z2P!Mk%b ziorzu2JV)ReQ@+MF%W7Ol0WKL_iI#63V}4Pj_9p6iH)cE+uAm@C4cuMMpgYJkDo-| zXRFjtbTdosN+4aIB4k#-)T z+!>vTqANz(oMwmg3@Ioqo|+!5XHrvM& zGaHLPwd3)CH1=C#O&ealdY56hWgejHWBn?eO-kBzF0|BEl^EN3ASZ%s+N8?HT=#fu zj`K?Y6~qUpFIu0XHKZ*kQPsuMZHHfnXj&5j04Z3l*uHJ>&rVvB1btLoNWilh%%A4k zjXRcw%3#vy`0=%rDVOT7pN954cqsryIt9vy;>@T(c19s5_Ju-|_)@-3iqrT9r)W?S z;T+WdIoXhPwPVMMB5#f1kmNmKg6f1MU5iySzT7NcfeI|;dzMEII5rVEE6d7982i z&dY-$>vOJQr_K%OGVfEOxVKl=(Y*CS&}S_{8ubd8+MUrM@HN2b{CyKfTxZkkNEBJRf%@a#qA=^ ztWhlWNmj*i0nnSZRiow-A=k8dzd-}H0EpEm?r0;xDO!$JO2xrqW)hqDRc7M?Nzw9qAO z&bUZJSPx!V-b9f|a2v_Q1~LwEGQWqeHi{Imzh2?rH*dXD=MftjLdsiGmT&q6tPA1! z4=7M&1&g0qRec2*;D&s?XO$fO4$hzS%Z7i0r1>I*j?EaB_uriBd9$*Gn(gQOV$V*7-PD%h+TbL=be z0%Ue`(Q`aTgiEc+z(8FcdpZhMbnuNd>wy#N+f!dgq^G<*EF;sH>dP- z5%F{Mwn~w0nvR;hC?ImZ_#t)Ikpb>$VK7LoQXpVDiNrSHDz)8ac;kDi;21ULp=X6h z>psS;O5P2}zIZcgCuaBXK9{jaA1hqN?CnU14B=Mc&xd@yEb8loEp`g0yVztYwuN2& zQ-ksxTyLBP)>&zZ-2$~7x#Z*ZCbsurd$xRf^KFvO&* z{-E!brJkCHSjVI#p|bjyM(BLjf3c;71(;HywP=lWN3M&^=uHLS=a26lPb-+e;N-o8 zN2Jm5t)Ocvrxh6@^{Nv=fE4UZ8?_(B-I0wO_*_ybpb5S@l9^Hte@qyCSJ4gVR$8~h zGO53y;2l~lo$eVwC)^|bl8VO?B($w)WsRI4OA%-V)VY8ARR-L*J?kq*d?CPZ<=%dc zv!LFXEJou~zBv$#^|ndDuoCd5K~mJdylgMfs@8p$dHbe_DkBVuE|*q3HyCN-@xi(w zB&WoNJ#o!Eh;MicX1*#0lDer1#u*T2-=5^a=X=`S6O-1IT{SxL7$KmgzaLRVNxv+$ zY!Ja>fAuL{vMyyp+}`)FH(yW}_iROqf;fvgzm0@GN=YzHyuIYo1s{a)Xz!ERaAA|Q zbot60%_ZKfnqGh@>LEOMCkAR(T4U+43a|9*Zc97W)A+9e&XvV@qj#$&_+_S{r$(WD zi^KH-^ee_|_rHbQxmeS4h76G75oPxp>vv67eIsC+a)r#@TZ(Xhy091V>upHt#lwt0 z#|qMo9hKhf?DVN(d}B{_B$TKTv0lCnV^C7jU5>DYeSkV z*nHemy18)vrswPx4ldi|rY(^m#ugFt*|^{FnW~!mnMojE-T6>SCVcR8ezE>;8g? zxCKYSk6WevG}}}Tk2(mtMT+HpYS1#9vXZa6*+?aVXP*o%)!E!-Zu|#9XQBHRhJm6^ zR6!OX8tD#JlZqKlLB||AQey-kSie-cjBBByz#Y72=z#r4zwPdq`zEQq%S(Sak{lPW z>JlR2k!@OmK@x%Sv!99huhu?`T`w$1I#AG5Qfp(RLZJGyxU+RKo`i&DG8f_t)8AdF zQ@n+pWVI2)WAk94?JH=#S!A^){S-n3%$O#uv1qTOz8gP(i!|?h@tKLoBFHh$Fn(Q0 z$ZkB|{R_Yw9?V+nKcv|MrNJ&%2S&ZfAL>pi1Pzr$f6s_m zuPO$#=5WL0j{eYZti(>%&F@8cUkIMZOnz%nX8B@WOPYPNA8yh1XqJ)OSB^**kF&{B zM6Tc-mDD^t<_a^oB|Jj{&5}n^GkFKw!b>%DIf^pwzC>d(6=0y7?1Hq<`JYooEcxT^ ztOUlMG3CLOr&7Cf+s~3cvmbv0de9Fw@{5%nO$Ax}At!F*rHQCx{;R*M-_bm~1L}-J zANCR4dj#0xSwqY1aRQ_`roH1y83sRl$u&~fa#BUTg-21fgiI zCd9*h`RpR2PHGooG>7drG`IvBDm{NCl_tFOzKT9`!kZ7t;ketzb9_+7uX@yKHfi=< z%6*WzIw*fPfPbXk1U;Yn#ql7!oWo9E1DqaSswYPKes@(!KNfkpipA;d^so!g_e&IoT%Eg7B;5b-%-kWGXE)5I(``xSNSoCcG|kyd}8oO%4^>Bw8wAs z(Vl?$6tH3kg91~#M)UF*_y5rvul3Rt?WYn`^6Cq{%jQnam3B~ z*@P;KmaQwmOGkZDzZZ0Gd-v9@v&!a2vO4*jlo~)Q;bvgEf5uFI>5Qe$dnz4e=N^04 z7oWYbIv>>*-o2uOuwxkiO_}ap&DF-yS1RNeIf@z7?pcS_gWEimc_mN$^Foi6{rCg< zwG0Jtf|Hf}@xmoxP~T_4Wkd09z;rBTU39=71v;VF&|o~Jm1nEkO(aUY;I>&ki8;0Q zn~l1>$(-@JrwphzQd7W`6?Z2xP|dWP6udH|yz-bJ&u*nE{(+L;P|fcB?u}hc>+2&F zDt<;cuf|i~;^B1ItF{9#W-;K{It1=KF7JjBzWu?k+29p#e`AL58!Z8VGU_mmR+9s) zTzeu7#uBr2EOsUyVEa{|=oMmW9wGZHyHEQ~AJn=;z3W@Stz2GFjvQ+sJIu;N4OB?L zIZhz+m_TlON;&}dwfv<{&Y=a>9XlBpFq~X=!1t*oNt0^BRfB_i#c>GZ@7epI2fLJK~+iBZgGj+ATHn{e9*IVXAXbfzN�&%bHt_Jx zpt~8ZS;-$1A=-~p?Fi^{@4&P+)#LSaX3a*;5`#kmSI0aK2~>{%Q}7a0Z)?9=Sl(WV zM?Zs&ToBPg0w8?Z&IN3t&5sQ--KecE) z$PYb8pN@7SzWg6_0=A)Ca-}-^;cWjqlZt8{ey-j8BhvsIuYgYy;`nt?{O~f_tNesX zqnUIgUt`qY?UYhsiK4dP(fd7P#2r|pWfB%@c)fb7AL_q1@=LsqvuQWrM23zjLX*f0=J{$U9AkH_{NPSne<$}LIrD+f(naOOx z8G65m4Nl>N3aUj$vg-b-J}*Xd5iQ()=`U>H-hM`@4i@gkf6TU$ntyCOSS^3yfLlG8r})#nIjCyTti%6E{Ptu{oMQ(-PeGFRp)~~IRLQy%OxE)KgbN) z_DtkjziaY91X5D0wrl-3Bs^nVL#oV@L@C_E#Ctg;OT)WU1Ls?X; z9-;JVY&xW*uOq3p9Wd_BIMVGmC^$6uQaNeOl~m;p^4n*5opQy|rBWZQ@9y1#Xx??O z8i%?xq@4ec(JhRv8p4Za*R*1_PDH-v0EhE%WLje%L-dKtkOGg-%tYr9aFPR7;l;fkB@5=KY?aAUl`9Bosei@9v22fK1fm zneQtvxZjn~B3CrpLUTzXp@q>KNl}N{h~4+94Z~pAZA}v5GSEZYe_eQFI#I!iGJ*=P zKp(+sP%H3n)^o8RZlvcY<7~g$BHzCF29De%E6IUF2toeu{N{fM=l>sn@c*&@JI$#i V2MzN-m*D@&@IUYQj|~L_`+rmVE^z<= literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol-0.4.25.zip b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol-0.4.25.zip new file mode 100644 index 0000000000000000000000000000000000000000..63a52ded6200ea07e359a37b7a0f91a316d818c6 GIT binary patch literal 6650 zcmbW6Ra+Dcpsk0H?ha|`Zlp(=K^mk-O1hDdE29Q@;e7kt@0-2W z#e21Wz|dhQv<$FQ8&D!SN{0OflUlI8zTK?=@#UD8NI?* z`KPARl6MAz9qggj_FnWLbt~HHyY63E!6}8Wy_;ta#7#k3^ZQ2wo@G!gE!jmhD%S@e zfHoii_09;a3lU=Y{<%6t0Q`FY?#gPB&%=JL(d22tAtRt(_;rtsh%n)MC25u6N1?@V z`nSAhHsHv|GOdngbqc8#U_J-T~YNIn#|E+MOL3&%2|}S4^2mfE@$NtU{DXQ5VtS@-GofbLt*kuE~^N zPHs^#uyB%5)(dBCG)j-JGDX?_Hv86uN;HQ^ zOKXB{afvTM>wlc7x4n5uwtcmOO`hMh@mr?qCaq(R?U7Tw0wB55wDStn;5g4HU@q7!ArjBGaQOQ zoQP5*@K-%V=zumS-FGK8J^~OF*fNh#3xgI=)-6{35Qy4nM4pUIXuCFRP{6YicBd=5 zqGMDN?UR!m)uO`_ptIZPpR8#px7>4a zonq(Xohb`4r)yzkS=4BQfI2}OS$!&8}dP1X3ZGQF0Cmy|y4Z!**4 z@y?>#Wp0q+(}!0%!8H^X3)9BTNgh%~5LeRcp0n!gloHcpGRb-3Md|cPrC;Mg+ll3WrQ64R-jCwumWW+lJIBwGtyoOgy@-VWzIn zHF2kkpQ8uIU*xtUWiLOQA|*^ zO1aom+nA-en0qqoD{_*eZ)YKnm+IDCyboIzzA`Yc@V&Qvjo3T3$p=<26y6#UUXqzf zbI&n})y)?6W*$h-URJGBK+Si%AbSZ&*#kS_ zgl6m&FLt?KQl^e+SQ)LJR=2_ZoWEOj=r8D8^X4LpD5=RC?UNOT!RmpdNAOvJWC+mbA+?upo zbF|+({$_;A2VzvLI29`v?+vx~kX(}1enHf<&ItJ>ix2UJBO+vfA2sNK&0~mqY1ohw zQl))IcXB~9MT055?Zac>t0D*|S5J;oOa55jH%vWbLS|X{FCL@K`36~_I-XjJvg6^| zspH$}Rzj=I{yZ$S>VhKFqPa z_3Mbu{_v7h7>#;yav69+e&%J-fk+Jx9m-@lIzDWQ>xCSZ*sI%jYY(MBLkJAVhGWNG zO{}wE^IoFOz2v&fc!G@Y6<5f(;GL|5$CIxKc8d{6*-lNNl?%GCY;cBlsQ!k(zlViG zbLgzcE_AQ z;FvJHX~)TaoU-@V8321ciJ{LRY4#L{nbCASX=-uoWIbckO?o(Wrty0w4XMX?EQ5<2F|_l&C=D<-v8fE+nPyYZ(8wEIHz;k5FdSF(L=sP*%NTP)R68?Dvg7I%C+`!IAdFJP#a)DblJdksl$*90mT1)hp~l{oa4o7l z$_){)kfa+`Y5SQO8E5=;`6{t}t;D1D$KIhx+pEbIL=#JVmZb{^gWi@n)Q>RVyc50Y zku~OM$v0b%Dp^-%oD&8l1{*5NhLqxRUiTuMT zjSY`nW8X*r_%iPT;?uD_@wsU_c|7^lJAH>=s{tkgv&8zmsj4IpN|5-(J+|u zild1+zd(+%ZF*^`$!ex-Zm?yd46*9^-~wTU$9zU|z5=Vwue{2w_z(R3ix5jy^ykdY z)JNw;Fj^zSDZHvON{;qr`kRitOwU!Q#q*%eQ+G?I9!T_OaL~k0_$`E{f!Y5Z3tCn( z5nVfA7rd?!dGfD1|40gAZ2I&~kbITjLy=rmLPx7A_gM|V0ke&7{P$8yk48AM?Q#axxP=)?(m`yA zI$N+j0V{D|pD zD#fev7f)=n{X1APfgL_2-QCRl*hh|^%Um_`ks_8NMxTtqEHt39bH)=GiSBLg8(Oi~ z!mH}PZzt>kA>=nVo$)OVn=!ps*|O<>l!yY{p`v;`E%=AubGYZlHNT1qrWKS!L(ZBk z^VpZ%9p&xZCAX*V6ov-Jd#2aVipd^sYyny++L!M|S?gWy*fc7stl}?6#1sEU#7>L+ zK)GKl&I3Lv=7`kCIrl3QJUNx_hMNX(rQq`>)kF%&%NU~_E-m1|B4URklkRg)he?c= zaG^3N3zYToFhqrF1G!ob$On3Brt;2w;93lAU1n-6XI)5g9b@WdS;0f^z~x6t*`Ia` zc$_pmAEgD*lF`7VyT(lZ#OwcdzI}@*)+_&Bc^L=a(~h%7I#pM%Q6i5(G20-4q@?4( z!ubu~<&ws3Us7ZECYK+7olsrlPw_Rb&4Hj*^Y?Lkr14(35jbb6w_LQ%%r?rZVmYN^ ztX%YQP~<6V^UNxKF55`<$VVDyZ|HpVP_kA5Vz?d7lp4^NoYuxUegjNSJ1-@HV-3_% z#NfZVQAC)i1fJkoOaY!5upVZDJT;144Z;V$grfGUe*4at*$&ak7(2( zL5)N%{;1v}_$u1stFQz#+MJ6W#JVk)dGVj&P+Hf7P;&lFE56-g_6d#!YN2DM`sUi7 zz+QPXD7JmvP

Tw+^rcK01~kF34Shg5r8u714z-fH6{i+yQoyO!N$-=jNyMt9k1mD%3O@5xdEJ7|Pu^@T)5^}jP~dYb-B@`gV_xrPUBm7&zQ(@f1W{zC*8p!; SHjn{~K$s4s7XUK>0|Nkhj9mZ# diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 2cee8a124e6738803e502b81757c46169092a933..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797 zcmWIWW@fQxU}E57Ff1+znXJa7=*h&uFp-^s!IFW2Aty7bD6yzAJ~OuXbn!b|72S@X_0nwP1%U#_(`NXkxqJ@;R_#av8cuTFaH8kMJeq-yh z8K>6zp4=L-GVK3B%Sp8dzF+p|OIsH?Yo_oih3JSE9F|8#U(7DA{&!#SQ*{9E-n9y% z{_}cHBvp3E-`3oH;f`6IN?G=Yf6|}+N;kUC$=J0vSf=mJ(WRwMhMPi;A5M(<|7MBAjB9s( z^jj?7Cd#)bT*Bv2^x+voy^f`~vvf?av#~cF`lOw6^~R3fleI#46!-nVa*RbFoO6|v z$X2y5MW(sxUtTKyKggP%{%;Ap#-G^#Q|D=X4De=TvS-GfLV<}C3>p|g6xr!Dz?+o~ RWB?-&rUU5(z)Zlv008!bQs)2w diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.10-compact.zip deleted file mode 100644 index 57d688f5792559603e54febc76d6ed77104d102d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 869 zcmWIWW@fQxU}E57Fe)wx>7V)j+e9V?1~U!@21^D8hMdf#qQs)g_{`jboXq6RlKABO zyt34y;>`R!T?0K6Jp;Ys{G9mIih}&2lK8};xp7^Zk#!%?)SvhpJ^iiF?s; zcIyKFH$S{*q_5x#`FGQ!@pHKD)w51PHj?$;5g!)qy7@JF_Y9YdV!K-Z9L%VDc{BOy z#g12rM(%C1bxIF=D7p3o-d$Jiytd!?o>|^pvAk)j{f-hclV&Sg#&e~vGW=GcxZ(<5 zRL?^#gL_>b>Px@Re5&!bHOzJ0&j&%*#FsN4eRfg3SNPb^kLn+6Ey_zBJX`xk7EO!) zX0R(X(9V%R%fW+1%6Zc}Lyx|rf3&=drd>?w`q({Z*6*JUZ_hFG?&j0D=<-9Q@Z#;e z>y~<`@R$8BYuX;ib#?cPim#iF@jvF*D=~x;wF|S4HpMQ$@u?9YV(pL*#9?U%z^NTFf$A=`Wks z&;00MD0i^bZSTCTlCRq~JW&&rXcEpzIU-{{_5O)Og)3~#Rv9uYdlSED9FG*))NJzT zYsDX|uOuJx$*t_3hzxLWLe8-&KzQWXbn!b|72S@X_0nwP1%U#_(`NXkxqJ@;yGIz4{Mpc_)i-&gicl65Ons8dVy~6-8IXy?bB76 zDt#88Dcj?<`qaE@sT*rrHt|U-=m*5SE~{Rw!Fn)x{x`Y6ZU04VPFz5+ve0_3`t7P~ICs|5;jOnx;MZa;oK=%W-D@{jmw( zlP7<3iM;i8;T-#j-JTWKjm!2fnX+8di|=H4>(O}54XwOp471A>gXZ;pn!0kiov&2? z<;RA*m+VxT8(F2tF|$qbf2F>J>xtzR#an(n%-u7KYxb^rpZKdTzCCttvU%w)pOZB! zB)|O>WZrOoarExy)E@bQ^X6~9))__3)(jD~ymJ1^QMO2x8B2fqtxcHC+1k8qd)D)^ zEvF|g`WyUn<(c-N4()R3+69GlQQY?Ek8t z{?j)IeTa5cyLk1CsZW8_iAc>YOOC(nGWQUdSY(&FjP;S=#_f@|FDte!$hpp)c>by9 zjEhI|WI|t@xp~*L@${pnzAPrDUe@b1%@=2%T^(zzxAXYI?OZGWB&4)EZ#l%Ytybn& z^piEc0sp_g@5l=9W@NHw#+~AUi5?6Z7(o=-=|8}ml?`M7BM_zo=?}n6#lQdn_0fYP diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.12-compact.zip index 8b60c4b0aba13e7ed76b7df9b45d412bc8613ab7..5f940c8258af6469c48db30e956928bb0c35949b 100644 GIT binary patch delta 764 zcmV@KL7#%4gl=6WLEbVS0mK|0089)kr-otAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH2LCUv5qA5r5c`+aVgUM1Z8G_u(?^i6|{2%GVOSrj4I1RRDcYZri6g|aV!aP+`Ei}7sU%FzU?F0 z;%tMitxVCP$6_&Ey+Awmpie$c+LMTZ@L85x8jN+(NqY&_Wk1eWFUYgxC-Evn>>maXQ1Y~47S}^?}YZ%5OF!tJ8LN{DSx%ZxD&*BO(Fq_WwT6hu?n!edvgk06OKT!+YZqHsyd|YBDRes z05Z{?(OV>cU#llzMgZR4j7>BZ5XUQ%Ne@t=D>6!&Yg>Wzk-}w~(<{$eE02Se1)Bme zk~x^TQVg#Zq6JB6v-I0i-Sd_~^Yx#@4>FJa{)1+yNm)QHIqd-uwP!bccrBnfetx^G zXdeB3Tg;QzV zZUo`?P{Tj3ki8li|6W3<-KA8gRf>F9IRy3R5x^BFrTdrKe8yswzcpQK5O+dY*xrUS59CP>?Gz+gdQ*cM~9 u9siDKP5@9#0Rle*KL7#%4gl=6WLEbVS0mK|0089)lT-s;1}p;r0000_17Z>Y delta 778 zcmV+l1NHo=2e$_pP)h>@KL7#%4gfN9a8zgaoDAav003PIkr-otC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*+_x&S1r}eLQ*^#e@j^KqPp4jTf3M< z(H6Re{K05`>Dgn|(TM6{GDn7+EOo<3B1Mc*-L88?88$5T|Bcx3pt`U0ejCR)0?B7h zROR;!@CC7Dk03aI0Ggd}!r;PBjg|!1$20YU>G!srFEj_^Ebvjyy$fmL8PR$N0LCYE zR+5?X7alxBVn!66@x%Q445FAjS`;?BhALbY$a4#(viXO1YUhFGEwT7y&;+|nSiCqaX6rHs$Bbre#s85M%MI4;3@N^J=ZmILxT!ytJ@$9N3Qdyxw z{QB|_x`X0gb+1uQ-Nf^^TUn)zc61qKw714VglZun2?|-VQ``~>4eU||dtaPD41*x^ zh!tC&(9SC5?tXGrTRB4@EymtO7_z+Ex2A!g?i3fe_xK=fQUJp=aKO0~c1lt@lq73fAg&)C+VTSH_DZo&c&8Wnj)~|7VOm1xc<-RRQPx<9A($e6P-Z;&ec_HhKxdH(VDdVZFyXmm zG*vD@INNUQYP>G-;n$Sn78oxnYVm{Qy%2wZeUn#OGRg_8Mg7REN{5+=r*;E*j5ODC z(O$S+SM;H78waVJF$Wto&fGK*umubhL@^lNbQLt)ZxNqg07#xVb`@2Svqa)n2~J!) z&Rh{*9Yrojo}#a0;ES9}`F&byGVGU5QGuT~y@~gLn9> I0{{R30JzO@YXATM diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index f95251267c4d6d3196241033cc262499a447e779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797 zcmWIWW@fQxU}E57Ff1+zc`18W$dieIVIn&NgCzq4Lr!K=QDRYLd}eMzPG)juNqlmC zURi2Uab|v=u7RG3o`GI*eolO9ML~X1Nqk~aazRG2C8_9a_h!2Z)-TWH8dxpzJv0bfy4rbK7yqSFU zV#ljQBlou1I;Dp_lw5lP@2;z!S+B>j-Rqsew#~;37J2|hKP1yc- zD{{?C{xdP{epa^f*S9RfCTE%q85Od`EqXV;WqxAc`754N;eTYU<1Mwy*3f_>`;D#3 zW}I58`$clj_OsWQf8TY#wJh|;dAY3UL*fPnjWO2l`u54^%qE6deTkcwE5UGB`4ZFL zH@Tbj^OyCW{J(Ja^XQN_!B+Cx{|-KT?G)b@Z5kQoY5iit9H;BQ-;4gWZ{4Zq$~<@9 zB;Lkyjb}yPCH4_Zb@oii@ugb*BM)6W-!E6$=vVgQR?n?PiZ{8rR#9$ z0?jP14;7CR4xImA*c)l0KB0cjQW4#McMPuucr!BDGviL7z(fiL4U8a)?DQJo&B_Kc QfDs7Of%F1kCSYIy0P}xR0ssI2 diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index 9710968d04f21e46b7a285db0de33cde67555424..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797 zcmWIWW@fQxU}E57Ff1+zdG`DXpC=Oo!$ful21^D8hMdf#qQs)g_{`jboXq6RlKABO zyt34y;>`R!T?0K6Jp;Ys{G9mIih}&2lK8};xp7^Zk#!%?)SvhpJ^iiF?s; zcIyKFH$S{*q_5x#`FGQ!@pHKD)w51PHj?$;5g!)qy7@JF_Y9YdV!K-Z9L%VDc{BOy z#g12rM(%C1bxIF=D7p3o-d$IH<-Q)rcCU8=+cqByZm+!U%)8F%_SR+R@8rB{HevhU zt;jVm`On0(`&rq_U*EC_o1AGfWK_r!x9HvYmidW&=dXB9h5wPYj^HV9 zn{jHb@5!yPuXVnN8)_=}MKC3#E3In@TO%H)q$A9jDPAIR==YMAhCLaZR{32!6TSHL z#`tyHrW8qqRuyYZmPna!ShUU}Yhqmfo;_L`*Xq-qmP$=qYRPzkFLLJY?Tc?ODsr75 zrNY3ZUEH_p`nD25o0Z2GNXB*7yYyFles#@wiAM8E4xRmRvjlc!%~aQ9WA%}{w#qTm z>X$)KPm82-^10Jzp6uJc`ZL=K=*Rx#fG9?VeyM69A_x~bVxXIRqOpg@1Lezx}sB-YMuI%YQ=Q) z2v>lxw#(<|e!4ZTY&Y_)mK%9Ai_SYzd(_g(;ln*q1^1!`_GXzlk6AB2t{0dxaqsGP z*AGou(YtA;%Nf?WJv%W=Y|zH;(_ltGn+lt@3~JLg>q$wxm<_aYsWV zUT1Ce&i2j9OT4NgvFOxM#hO>=i*K-9)%fR^&K}^+$YjrqJB0!hDHt>`f+(`nYk)T^ S8^{1gAWR3+3xJt`fdK#&I909y diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index 4919e6afe330bc9ae537f78e22e3db892a0b163c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmWIWW@fQxU}E57Fe)wxnQ!f1>&3*tFp-^s!IFW2Aty7bD6yzAJ~OuXbn!b|72S@X_0nwP1%U#_(`NXkxqJ@;)uGExq#UZgKP`QCEJY zMJgX(On&X|U)%IqAo*l~r(D|ML)<&PMDCyZH+|~ER~|D%SADTCwHBMNuYOm)E^trl z?_lw~^#Rk%&MQBjB9a+=ZZEIF`u`DU9V%D2tysI}K+J6q?mf4>(hMEn%H}*5Gt8Y< zxj1Zpq)E`7wJ)mPo(-59H}lXx@uk=ErtsSx+#7YE>yqsKPYw=dan?#s(=SA>S`r;p z>$rLQ*0M^bK7&v565MwDVw>`{`Bu%P-`Q~+5@)$Te)-EmEO7SXOqZ3lnwqUwI_~qj zitAa-xawx{e}`$?@5?iaB7En2KUq`$jr-k#3rF)Z=J2~*jef#l*%7O9K+P~R{mirA zWuA*yyc0Pmaex1*8-H1&?pi0`JZliS`?GCrljNQm#@S_oSwbE6e{Q(*?A1-_Nwrgi zFI_$IKYsgTSQ1``;dN;uby4vC%Ei z;Oxb^)k;759{uv$-;lsqhFp-^s!IFW2Aty7bD6yzAJ~OuXbn!b|72S@X_0nwP1%U#_(`NXkxqJ@;Q#U=Uw6Nd!gyQWZLPi zpI9$C-jn2N^_rd&yZF@HFIU0^bpzu#crUhYb9S!s+IRA9(g~(XJO7l5 zwh6ZhF1|OzhB5M*T99LohvxgFLwl|jm02!{w7K&r<OT9NhZ%;cu3TcFm$R&p+qbulg^xty(D{ySc?ETxxw(b+$B%cpK-9Id^{V`)<=! zUBh^Ky1bQ+*WB>X+7MH0Q%h9!0Sy!98pT8v3P5-)=XSacT@O-yWc`bcd1rqQ-?m zZ|yYK{XfE=V)9Y?`k!X$sEnvhfd*}Bn6#RH9N8>T9&-3g&5q+-W_pt9q0pMCc8k95yT$XU^_H_x@vP$~80_5U zO}JI)KHGP7-jA&|A{8GU6R%Bbh__xaRZeZX(arA973Nj`0|4vPTtEN- diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index cabd98531f6124072a9084bd1872f9ba896deacb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 800 zcmWIWW@fQxU}E57Fe)wxd6M_-oevWO!$ful21^D8hMdf#qQs)g_{`jboXq6RlKABO zyt34y;>`R!T?0K6Jp;Ys{G9mIih}&2lK8};xp7^Zk#!%?)SvhpJ^iiF?s; zcIyKFH$S{*q_5x#`FGQ!@pHKD)w51PHj?$;5g!)qy7@JF_Y9YdV!K-Z9L%VDc{BOy z#g12rM(%C1bxIF=D7p3o-d$JIxj>ugW$S{|3=(z@NfZ88JT9?seevM9&PD6feQWmq zauolkGQDBKyX}+A4_90H_2+Q~FARJizSiY;$Ls!@)1Qjx$1VD^V5<7}<)w`Wg<1Ff zR9SAZXZh)=D_R!m9!%j0@AF8@vpJl`)*-cpiS6{n&`r7i20ce}3={3LGGtGGpX9vZ z_tfu>v(%Pq1v!<=N!;uB)Z{UFFKd>bzeO$6RHNPOca|B5R))RPv5I)SEKh#jC6UZ2 z*4maHJ5C6F)aK#ZXtg%PqwmVa+M?J)4exLH^D6sg{7}={{xEG@tL3%3UEC`RFYS~3 zz{v03yo0-KW^>w$m@rF&>AQRvu1s*9a8J6UlYQNP`Nk_t1Kbm4dKJ4>O>phCxNM=` zsa|bp089zQ}VTdWDSrqTTt?m&*OU*+ecZJbmS_^;^%| zXJevP?-yeH^-x$z|ChrtyW%k8yloK-`X{c;nIj@JKljep*(Dy=pZ&b)J7wu#j_IXbn!b|72S@X_0nwP1%U#_(`NXkxqJ@;Q8Vb(oA zRhC=qS$=xzisZ7Lrom28F?O$JG5?XdxbsHHg9l4L2nhXEw(C^B`R2imQx}sm)mAIa ze&5@vDZAODkF$PpcG~(bz5ieS*N<1V zxThU`Dt>z7nzBc=QpewgB*d9B3k8t1k0ZMEln1phsIX)voIf0FUQ+y9tG7)$E_OvXzx-zJC3WYy zUl^88dwXAMV^#SPIqA~@()RwoboA!Y5r&1RMr=fpD!M3_uYDP?fgotZr8v>BtKeD&+k`4P9@?4G*%hn#X`?$RKww)mhK-`W@K-|424tsN8E%&K>h v>+An-yp9?H-i%E4%(xRfFuj9810#qcJLv~_v$BBXbn!b|72S@X_0nwP1%U#_(`NXkxqJ@;d}`V3tzDPeg(uWSinv&$-uAq7F3xhvdS!Fj-N#?Qi7B(%&%46k_d?Tq$+Xj3 zKe1kPyeG-k>c413-1(wS#jD>Qn7k!$gCmdRk)QAL&drMx_-0{s<4w`t9GjYFhqs(@ zcRTqzdMTsF@!6RNGp@$3y0liT{kmOlONnXZ8!t;1@5M_jV*bcTZhp+HczRW}K?lp? zGL0L%f(726p2HomMYTxDU1p2p<$u!OKeg4j9B+HLa!R1|o7;)9Y`4xU{1Z*Omoeq& z`%rPyx|?ycmaGtcbx~tWlT&!LeNY9D$lbJqou7Bh`N!SQdLHfU8)}}in8SbN>_0+( zmRxjUvU5Mfyh@jiZ>7MdmwU4|F5CRQqt}VFzFctajmua!uTB4SSl|?u#b3kYPO$5qV%hvki8W;#^NB)L zrkU@ z%S&FEp5b(Q!qsxjTe9uxo;5Asrd#NRbj5zWnkVWddi+4_?{($#7rxncKv>7KG4*WE zE~#Ya<6&DDl>L(I?$6i%yYkWGXa9xgO#iRm=6rLqQ%kk;v53y?`m3}(q=nquk_9&Z tFMXB35a7+oWY3H{tpk%g7&I_~D6&(2fHx}}$N)wlOb61hfZ2(G0RXoUfbakS diff --git a/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/library_implicit_conversion-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index 2ee7cc13391b9594b93ab51d149ad791d093adb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 867 zcmWIWW@fQxU}E57Fe)wxF+UT$y`PDJ!IXo6!IFW2Aty7bD6yzAJ~OuXbn!b|72S@X_0nwP1%U#_(`NXkxqJ@;>YNi?dv^UfEoB_wm7KtxU+PYLAqZ7pnTFl)Z%0`WuSBF7BVxsAAcEy5uXTu3g%JLlXoP6@zXBe5kZd z6MWusW#7#BC7I8yt^T#NJW#zIuu$Z&Mx0jE76+Cd_pS10_MbbMPlYpDz`A{g{~I1>N^zs;{ED(kvp@_%(6W7JgiFQ%_?Q* zpd;zAvEEU##ZCDF%oXC>HdOhYbznK_8?aU*B6@rDt(>E;Ek0e2>)oh+=a^dL%VgI4 zjup}}TFN~I4o{>T!&MnfHb%r+iOf}*e(Cl{rHL~=!*4#jHMz+&Rl2D90Lw9z?v3gH ztWIRhKfYC9%QpYGv(-jx;g4Ucr--=E+BPe6$&;!Y7WSz>O#g1LIj=Lz#avjy?BLNI zQ?0M8)~&kn_mGpC=lTh}E1Hi-_$-w#@BP^rvAk;g`QO!XrRV2Q4O^aUeNFh^vlTl6 oycwD7nQ^CcU{VKz21XD?cB&8XW@Q5zzzBrtK>8UlD={zt0ILmpX#fBK diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 4db9fe732a40e7aa8848234b21c5ee47ac8196b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1744 zcma*o`8(SO00!`{x*NCFO=;_l1`Un7suXpEk`_aRx)UNonER+wqG*a$Ypx)5bvA8@ ziZi3SI9oDDkUHiHR;G1y-G1Nm?0tWDpZ72LINNjcTm?=6B7h(c>qdNkCGH|00O*|q z09610&>{E$9149&7orc*g+xW5kpZ#T2pk@X!ubb>!~{S>qawlud3XVD07wA8n1~z z7XHi!Rv5A#m)5)A>jn5nljQeAQ>w`-aFQ9I*{ zB#FzaSs9`kFK143AyZGo&XP4avE`fMsuv%`(BKM_VtPefVwi#g|MA~Pe;(TA03UTw z0lB`}ogDluy8pA_>SOSrp0UOoY*fR-LQ*72kU64^*K#;45x+1C=?&65UW2Wj>ShzsSXQ$H1(KT?BYqvOvgr7R$5L+YXtG=2;T&9Hmy2>eV zooc5LYSd3X2}c*|hoQYPQg`H@-e^n}LSVjKBJdCUx(wJ!oON9oSh1cy?_maqJg zebZmNMhU79x22xq4QV-z?&a= zrki%xMMqPoSDM9oeg(%t<`AnHVutIbPGCki#%;! z!f9j6jnl7sX%u-$qR;5Yy`0tU4B!mcBKkmKjy5Du34hlihYn|p=MQKz)#Xj~TbdK1 z<_d4yBvMt-RYvw|Vhz#i19lO#(K@e2-_D9>We9bt5xwGY9V0Jg0JQO8eMT6;V*bf1 z(zxKeTSzcy&|kcLCsq(8-4Y;d#A&*##&1^38w~8gv=csC($|K3u2&Y8R^{q}%x*Zk zw4YyuSEfDn+nW<&U+IFi>(Jf9YAh&tzWb7BYD3T0L@m6r2$;V7>48Ab2ginbR+Ic6 zvKi1a0|K*{yZ;^Z5e^E1eeFBc4q|uYQkvJ%G5YEI{2;KndV2W)HucwG4{V1@`1kq- z(k%lOE?-!2tbn2H8Q#j0<-?TwO=;%il{7%|PpC_S(*EL&4 ztEgbtc+TTtI;~G8b!e9Ze#vda8fbS zvUSSm3RkJDtmxqDT#FS?v_{KN^;~V1Sa0W<`^TTkWFSVmK0e~-YeaA&jZ-%_!+&gM z^UJ>>LBN+tO62F%EE{Si`7&}#Wkd;wjf#1JN*4iz5j$+81zuCUmlh_ zwx{Wez?Uh4?AC$-B*i0|H4L{Qz+pxWpSrTv1XU12|I0zl!=?F`Td z83W!bomjMapz4$_x|-iJv3}Q*IcOd55YCZkdZRqcYNA zG)(J+VVm&d5)|pG(AS9yRKnh?7rt-(h>;zSGz3vY=vTd#+Pgx&IrQZ`S;q a6s~{ff3f3i&-+a(0O0yo*KZs2@B14O4=Jkv diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 09e6c647c319d768676ab8c40fcbd5a461d42d5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1742 zcma*o_dDB*0tWCeK?!P|C~91*Qmgh}DT>kHzs$~3+7GwT`9!#hrRXX*di-eg{9dCzj!&-M@d8<3<%NBnMafph%gkHL}N*Zo1 zc3j`L&k245c0FaltC0ZegrLydMhSbN@#}HSBK!8eX6$Md(n#_{KBw-tJ3=l;@4d@Y z-i5<9Kx1_yDo)gB{e*jNJKeYTs(j$PF)4DNWQr<=vqbJSmX_qY){FD45uhi#zMaA4G2}#+Eso;Z+rva<)Tfc+w=NT~|l&spyLQ2KuK9L^ulU@^N66 zxBAjGE&^?H`(JRCNNBPRtHok|v~02=O`crYw3YXCAKJ>bhD@b|AQDQIOD^LTq{>K+ zq^}4ohhXufxT3)`e|)Ce^cwd0R8<**LpBLJ?yk*mIvUlgj`mTcWC-hQ{YVpJMtDEq zL&PFC>K7T8dAm}yug~wbw=@`xg_l%+{PWBG9^<3}>Fcns?#Gi7?|#HdMe0DcZs?@p z$EJ;Kd!oQXkwc@AiaNR_xxp}5v7>JA9dot!KzZ$`@v({W`6+5YT`)IFjX&NH!B@m= zeoRcOUov=Lz!_4zJM>u&E3gS}5mUN2$I$ndF4g(1qH0|Aju5ttR`VNlrF!PsK%h+& zH{-~l@UGddFwgnyxS}67Lj#SjeZZM)WiF3}lAHD{y(CG6br9@QkZP7=ml6z;Vl=TH z_bc{!xy^kW4X>-~xC$@Iaq6}CsiD7Uov=?m7-dZnmZpJds_%NvFCDd6*Zm=$G zXFPd&55E9nm69W74(AQ@JnC};THWep+aMbgb$0Z_G4Db4Q&y!|q^L+>)vEF-Q#8>; zHZHYX=Jx*g?X-?sL{S zd^3>c8e3Dw7w;NYceMiaT-Yl~e?2j8mh3!V=vQm%DKfDjswVi>f&mG2I8m%o!=qBO zM*?B`1RL1fk^hjg%2>etUhNbCh@A(W5`({;-aP>;$PoWS_AgqSokOpB^m-PJ;v+9$ z@!7T!p~7bVjkoYZsr^c_W6@D@dY-(T!)hZl(9HAE1GRCmpk|a90(#SADjM{WdeFOt9#|>~posY&@%P+dfNeZPt%`Z#u_|G0*38 zl&X-X`1E14X>_gb$)F+6q}{mIx5&z9;x2R2u?OBQ@e2J~t5EpKkXa$pJh~5|Vbiot zJ5m7A39acP)kTU&({8a(+H{Y?pQ22FWvv&Iq-6%dhhV)S3C)Q`qOUK9xp?MyC=yj; z#rg#da|SP&^-3;VANhl*ZGO|~ILMufolX8ycbUc21klmSBmR6>Rry2BQ@xaBJe-=D zhiK0UdBLBHzKe_EOLT}U0!!=N$gu1S3NK2{g|?OQ*~k2QuYGvo_|Ieb_Yh8@nwzSo zRP^YxuCSR=GgC_w`Qh16)9w}3T)mgwO6DC48L$1V3SQT&RdJ#`$Xa4uhE1>1$K8Ge zNQSF4vRSnVMzZ{hqpJHeq@G_K7OFhp`tp@AWqf)w>ARg+1q$5qi)BbTP<^{VHw~ zS@5Lep%dBN_J%PlVOSarwOCJ#Keq@E&eP$E!Qp~(*Ot(`vkT(P$Am;{;!cJHH4Xa! z(9x4Bn>(XR%3?VPekUvEAzaQsxB{4!ub!P8j=dj4%X6IVj~YXq?Ah4OLI0bXpVIsj aBHMrG|3b&fp7WJ;ZTppRZtPQy> zVhYiAXd;QmhBh%d5mBMze%Ww(&hO9b^?W`*d|scw;Ei$si^2dAKnnOZDc)_npsPw# z901O%1Aq4!2tzBlpFkb(m_m^IT3^{n#w|hv}2gy{WYwp5Q-Mk7Z`CnC`k! zbN-9jLr*K6mv$UV!yihx9ZVn_+<~C|H0@XP&dB0(H-*?)kqz9_#Ki>n3#Yp8ixK&CaIIAj%G@3+AN`!B zx4#w8WqT}N`U>;-&y})oc<-LI$k|%x-|u0?B6~EicXk-hUosWKxRVk|ZP%RYHWOE8 ziDKFSKWE?|2^k6T+}<6eM@eerEYtS#xD>?=6mqN0+%gSj7@s?@D11bE^LTX#yu5U8 zKQLl*Qbtz?E|EFdtsb?D_g=Qxp0Zy=zR^&f(X+~M*TGHHm-$@cyUX;G>Xm?Mr-{_br(emjLMn8fQ@2D{y@hU;DG4 z+q&(BkEJ&DWBf>+A^eIrH7!+42up2z?N}9mS#em+i-l2`+CMD(Y7Ds3 zd7JbQIqu!F=d7luH8kzobt2LIz2o9JUvIO>O-rQW6!|1KC5zBdu6>c*=m_eO!~9 z9K{R%)SNmoW$Bh)FM9#z-aAZNReNJpC=k$&jwJEep0n&b5a11$h|?tJ zq*^+?KEdOzX;2a~)chF^Vk4`+n4hOHhz$%O-i~ljV+xhFL|~e@d~_noVJiV9k$rXR=!bc zo4NFHnhmjjNS+$d5|zOp;;hw3fe2!^bnsQi90zo>-}D+aCh@nAouKl8!&^Mez7F|H2{d`e1$A^ux*h`-}Hms`C z?Ianlvv=;PfIh7DEyP|NdP>RQ_tvzGK_($}kW&vq0$BN==z`~SvJ*)I5>)uDwc#>W z3`8#z8S)y81vkONHz>+JT>46pVqvC@Bcsq zY5!5KMua=o6er-$jQa9v9mn||r7Aic9F+80Wltrpg!lCW#`=Wfb#p-kHlkKGSHk}! zO8aF;H3S=xz43x$*3X-%)YUd8)S%Vr z7j3g32&+-iqqWSN+T)RH(znOWwC-+YXW=pwf^=~LcDUiPE*DKWD|5Q~GmiT@o zwdFu%O(r&$Oeufq*}tEcAK#t|rP&#ko7??6^IG^@CW0U$YsT6_ge5S$CR5=6pDOfJ zs5P}G9cACK1TU-HduwCTTnv3W%cWP^FHKKrrdHgNSm7e!>oe7=1a$DJ`|k;%hydxP z#ZRU**Qn=axUY~tPPH)ai^!PRnCxH8(|cwX)OvTj`G!MY{(%w70VDzg|8Hi#OY=`M ZK>wZp3mue$*mtJ@0Q9}C-#7H1_cu)OMxX!y diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index 0e21c2d64fae81bb8daad8b18d3cea571de3db2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1746 zcma*o`#;kQ0|)T0%g9_KM~K`nX;Q3Oj*#LMGWYvja+#Tt%P5Pn7INEJaYA+6@0tx2 z$xd@OOJ%N0At5a0mRNdv&hO9b^?W`*d|scw;0?DG5;g|}0VyB|8|6Y$TW`}50f3W7 z0YDo70CZSvaC86~Vq|DyXk-`@iS`Rlh>DDk^$Uo;h77|78=_(&F=E0Xz!w1U0AQA$ z9%{@tzFzX~^;1*HhuxSkZMrHk+ezuXE=BwWl=`JJvErGB&_|vm0Y6B0)d`)jx*bc<=s)_nl0}kBX(}x#aA{PO_;O3{$F|?g zOOiR#j&vDVu`F|R{5ehTlBq!vV-Rzdp@D0EX8hR-$~PaG1Y?_HToY+VTsuk7=w-|| z3q{emcFw}!!5X|Bi0qXKt};EFVmwCHr(4YNzW>ci5Ld&#| z?1oA#bi!FWcV>XEwp;rYw3xQg_UtZVn?tT>I;WdMx%V5h+eW2m@5ZY_ha3<$_NFRl zuJ+D4+pOt+hu*Tb4d_;Owmf}RR@kwyW6;Y4XCXn*Z9SFS)gNlV=jNjFDDcxdgmMi* zA8M^eyt9u8ZrG|LWgg6Lw#5zSRjJ>9V^GI#dHLp$ldB^9e%JQ z7&TdUdu=4GvTB&Xb=OyT%Y5D144CjGTt+n^*_g=iykhoBsDZH`LxAe9%eP!csp30bBFM8|Ypp{m2D()q*FilrHecMxl{ImZ00TYO5}(j4W)FAKh!$;Qd6{UDoL=uC2l2 z4g_r3;lh`jJttCU`ge78T8mz9Y5BE<^rcV8i8mz1Lz}2#@&GvrOBXzpUq7-QH^eV<0anR(jolggIM0LUA zHHOC>PN^a&^_|!`4O>{ESTyA$DRaX3ZGlRvNN(|?Lb#I#3Teua9 zRcXzC_TIu!iSLQ}n!9^!AN-!0n^v0ZX(}h2n$oFh3Z_=}7Ajo#LTb45PT->Y8PU^? z&&Ra$0F4lZ)hlaYj1eL8f%IhSOgSidndv0Sq+*i3F|L`R_^!x?4u7@g!}s?~TC6K2 zZ_*OCC4Cbab(IpM_2dJ!tv4h++nuc>%%0Zt{6;h>b{Zay9z}-*Y#%PQ0bb$FC8TC6 z^nC&#&*avF{^GPTz@yF?(OmX;%ZW!!AAwE(i-99ddbBmIyPKrOm=hg^cKM^YDO$nm zL?{J957JxEG~*O+`Su_(d?#LW({XAGk5S~g8Xe*DDrBX|<*EG0?t6g*bkVM|$23n} zQFWg$_;Lp8W%!0Wof7Wj`$9dxErFcu8Y&fl<@U3@=fjnT?drVqf?}q*w*#zLd4<0( z9*{DS>JS|{j=Yn+-;L4QD7|xxCKvm)9~~bFn=kZQWw2Hc9l;ujZJ5Z**D~vMG?Thu zD#U7nvUj5*KP!hlH(~r7q9y(JfVw;Uj@tQ+FA%;{a?Qq&hv%g=&NN@%T^|ak$t1eMnW%aHDFZ z*0H5xmeM+^)GE?yirVA$p5O2D-1q(Aecr#|V{5_2ZV0df0)Q7L$i5`5+~OuD0H{d= zfE)k-em3P_0uBlEb3;S~1qO$@xd(eb^1&d$sF1*b3+x<#3jo9efPPvU z^47^M^wY_)7G3_*fdC)5E~(@Un7Dy_J#V{4!$w~;iR#F<@SQ&~ex%FcrtgaDdfI3+ z(dNs6MIo|=$Np^An(P3$pT@`zwsxTMA-I#!CDz@9=8$!?gN|f(35Uj}zYy&Br89{Z zRpj5Rg$dgP)$V)uTlER*8{W}6khO&+_LLZ&wcJLLUiDxSNd@!`CxrYCrkob&a9iz| zatBe}iSA~;QB5P#ST}as)6F=>`hM4R40^`a=$6Gw!@=3JHn5jSnbZs)?oL|M?)_qB zY}|vq#!g-Q;1ZF%H9k@KILK$t>B4Quc)oVZ07ZU=6J@AK=uyL2TwQKxcgIUVZ8=Ip z!~yN7*oV6)^jsT% z^X#ut21GVI2J2+^5>b3^u5R;*cGZ%NNNdauofFRd$I3v)Nxa*`ubB&I;s`42jXK%aK1}NKM+-x@ zlP?gkTruz+LS}zX;`S@VIm7QBc0a38ORN=tfARYosb*g@;J1+>XV)TRxGW=ctwG|e zgcsWGO=Nm0Y6-ujDvBOjbgu8NwW^q-mL*-K-2h1ciE ztqEgbn|UoUZB=381JUE&u15ay>bduPPI(z0vb>OmhtE|<6kFj0J?+`Qb!_jg-EU(N zMf~u3dRgdh0mHM%q$fbF{~3>I4hVfNB<;L*wrW)Y)|g6?5*@x`^^&^|tJl0CZ!}8Z z7BmvR)&m>wD0&!UnQ8$_ZM>>E8)fj?@%i)p3DfQu%N`(nuKLBp+%q=TGHi+%>~V-3 z=z}Cc$)}JQg&r&^CW=JdE9`P1A92apL;0l331{QEZ6y*ljIbNiT9(n^RLk8VmA=i# zCHxKPtaYPkV#PH1r#%GAC=C=>JEOzT6))1uud0fxkaJaLdFi6Mq~yDV>T+0^apHBQ z323#tM)9{Ye#HnV;sbr6+G7OJ9+8Xd7vW175cUdfZAIG`Y+%ft}> z=DY|sfMA4!7nHU8Qs4bq*(W(|gFIKM6x<(b7);6XRT$G1qu~ZVXFP!SbVKUGu!N6O z0$CTk6g9v2H%-FFE*w|P$Qewp#P&Yf7Tp@c&iKuyqtM4D=l?b$xbRC<^)DV;oyq&l zehXs-%eUPK<&jFJlfNWIQ^`w_#+Wv|;g!qt_#cYb3d33gvm`=f_}1pX5R~mfcHep> zk`nAlpvCghS*4hGf#K&*=cC6e-osaeZzr%>iv$&b;7PJ!%w8v zUeX(mt$$m3tefYpHTCp+&8}wCDh}|P*brAn`pf>Z{uMXkNWuloB^H9|a!g3tB&S+% zVkr^M0~3F}Fs&ea$GsupK;|S}Ky>U0&qwPUp&d=z)-Hvy%(t~_;pHHPUXCbVSMhrp z*IG}nxKCTU?>>o4C`Ir^K*i0jD_Rm`K3sk%uCfd={DGrC_OX`Y@>MFVaz!Ceo@5uP zr9`GUkIs!VjVsQ6tuuCLGaWpXNr`KI9eViflBLVF5vy>gVjX1THAKWlceMHVon0@PL zYR9Ng`CtAfSd+3ZXerH+HstKJ`TJc!?=#*8pKzejs z>J9N{W;Vt<&oBvcc)4uZADWv?vXasT;1T!^_jk-(_q4RFXN91TMHIeL$?1- f%};IqNj%Gc=l_Do)`H`wRRF;9vvxn%=b!f<3fn)Z diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 1cc77ce92a9fc157e42502c6bd0617d486c9cb5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1601 zcma)-Xp05pjneB7*V$9X zq~)g2n=g)z5H3Jo3eV#%)J138J!ctW8~hs;UwpAqeeLzTUu(ibsD|lsabx#s_nuu* zuz}8$)AxNH9~nq@hMo9x+n~w7Qe?u3D(YdgHB@cHDP$E|Rqx~CkG$GU+Lx6+gC^vR zi~XUA-xPZup6qT%ppY4(ygmF;y=+$wt4kM++T4Y_{xZ}b$9~+IdS=tJz@>UzWil)$ zp1S2O*hiGJAvpTdO1XdO4zq_??is0>>21$>+D{TZEl$n0juSC#-8ar@;f^c468mCt zgtD+FIt*#<94;|how1b4_o(06EXx!{vvqW8M#+yxUI&O1PdDsg)()-b5ykiS>xSi} z2~n8-&gTaOOVE0eq^9Q%muRw-YXPU2fTm4E;0!^zzTn%|jSEYU5c|UC_rA@Ymbh&1 zx|*vf>3a}#X&ALYo`8Z^5kYSn&u;EH%f?RO@(XT$fL&$Q){&nM6)mVR&&rn{n)oH4 z&+|O`EWI!7gU&Y9Wqpa1pMbZJj1EHIRb22)vZ}q^XL&$CY#-B_KCA;}4h|dHRp1Q0 z1ByXGfP20ZWgKOn8>?}LO#(`d&yBF1@tnI(Tb+K@uwQ`f;jjJ5Wozkk!tevL>W2f z(9}9S!onkB*9qwR?Y%wOJ=qXcP3wVr&)l~1IYuwn_uagRJ6&qJa`caD#vwRo!5aQj zteH1SYJZ>B-E{5ymR+2F;TWPtyedr@M?e2&(x4Dg>8GmN!RNG?5K3~YlSIoU-oj+_ zxYTNNnu85b;Q-N^hvV`=b;DP-QJuF8oNIFsFBF)TZu+@lE#S~39Yo6}HxCtbTi#0} zI9w4AVn&x!sU(VSjWAkD2z;Q3TbvF(z`FedF@>z`NDb1~*LTFW;j5;KU8X%|CKWsq zEY=P9vj)L=>Wb|P!8pvJNd53^$CazyMNKZ4t@`*f&1A%lNZ{h{rI*cYXmoY{cjxvv zx4nI?l87uYD(Ttlp+&(kyTraerdzF`;%hv8d658X+4dy$V}~JlgLf_B2pH!6UNdq= zGVAu6I3j#OX^2BD-LlZ@EeyKSCNa(8!MnJm%s&6TL}`+2?4!<5HR5vC?h>o?{SYF# zj{d>MMp}JP-P$~{1Rsu*DR;{NTh`0W8v*KO1I*(Ji!H83(|-Dvmjz;E-nMr(<14|m za;Fi1I1;KLekt-U^Hn{ob zE{`gVOb?+^bVArxgT?zYxdVYzbK+c7=?3tG-kfjCE4un;gkFd1Sjb02v)Nl&))c!P=`_4i9F)%2NL7;BixqiExgC z9~G_@oDyHqtuEp2+0e!TJyErf_LZ4x2c! diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index 4246b047044226dc17d426a5c4c763bf2e8825b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1601 zcma)-YdF&j0LK4p%bCtfq>ioB#B|Y`%57+hh?O?9)K+dWa~rc5qA}#sT*Ao6r4o5c zVdRpK(M8IV=t2r1lWG?nTc^(V^E~H$Km5MDpMNg_4+7%=RbUlxCL+{rwz7wx2LS-| zMgTAX03e9Q^ksMj?Zlw>qA}=jdXR@NE0oS)dU!E>{Am%s=zwr~2owwfP5}TL0IX9| zsC$<8gq4Z<8Z2Q&!VsFl1KlL93w)np&B_*&yVDP2t~a`aM!&&0?A`~*P=Vv8r&68? zN{`Mi;0vgg>Tb$m=bOg>FGZ|=cT;Ns50kLW{HQ947lcoR9m8&D=R-_pg4ekGT}!zx zvGZ}>YFT_W-Wi7qh;8iRR$S7!z^uMAD$5itb;(>O3$r(Kyx*VAUGU>kDuC=cMBUhg z)GS-9ey#lSJY4Kowokr|$#q0qtfN!Zi084c_1slOxOkQ_7=sACT@qa^i1EG%l}Io6 z_<5zQFr?}5ZF3Uf3!@IH;9-wWvlJx70ggnSEj z=;`DBMUm8#2ffP|Ra9LF;8EUqeQ-=EVSqMb^E8;vpUp1|s+~l}FE_xP{;C-PrAU;ExFC-XSh{qXl6~R8NtKr+jg^hJ6a`=pVtI!99frt z+O!#OP+f;YfcC=gpq637r_1i^S)+=K$Ir~M_Aj+f`WAM=jVFZj8Iz4>3l4ke4d=FF zg2t|wog{9rH6AtD*BN_C+$MsN-wm<2_kD;g>vBUp_dOi()WxsPXJ3@;-h%h~FYp>8KO`k#5#Ci0z zY$NvAo;*vsXxkzSw1l(k6B9mx5?&Wl?OhAdIbW!821v~2qgi*{S4sT5KYz(G?v*ar zu5?c#9#pQ-_NmEpN$;2sfqAk|lcHqFH_Jz~P3X_LmP^$>N@?@6HC0qnt_mz&uJ%QC<{I!? ztV%%4f&hf(Izy?N-B{!f>9LRF*Zl7hXY4daXzj^a+1l-8wJ>1c zPOs!9Kr>g3MA)qjWodF62HK{h1&^S$SW~ja578iQ5_O4QA@>Ab&L6GaRz3xecC>8T zwpNon($yH(PqQK}!?bQWB6@dvT&%bWepRpgGey-&rey=d*dEVGs`Y&1wq1_MM2DmL zz@}{LvZI@W$3yHb8cgu-3h}|*B+D&>HBYkYm|qd@0|$5xym)*Jp>o-c9b1EIPEt{A zrs_rYBk5j!V%B2o_p@UC!!2_hmW2mJFDv=`WF+)9OFhRXsz=t9)iX@g(FgQ|=ga#z ziL>Kn{>VC0_=uM{Z!IwR&97m?*^?tOS=0|1T`Yfi14>dro}3bp!y3dtWhYs033wG% k9O%Ez{!8xvhOP1&|I70PJY>c1vC6Ny{^HQDqX2+^0NkMRod5s; diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index 740a817e8062f9ae59a4811b2c1f0d0ed9416901..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1682 zcma)-eK^wz0LOpkCG&cgy3SlJuVI8jjFGoa-ebCwmtiq%lkMER9iwoh4D&WGiw^7M zm|_;8Ss~%5l*wC7MPBA*-s8Ia|DNZ*-#|MUC9DAupa6u#M0q#-P)ztJ z2>=p@0YDP~fJiI}6OE44H#9hDU}!)jL$+n2qzNoUttI@STmjRf3SZRpIDMlO@7gi(uxrH zf6nM@WVp|5I2VQ1%6RXNxZObk=&y+y&p55&1%@d*r1zjzN+a>}6_kZ)2VK%+7N>M> zyWvtbSm5q<3{h4^akJJ6Ph|75t8>3gC*7@|Si3p2#ar|GSVD!R295oazj3+XQZ+zb zfIgU-7MW4!Wo}m%3svSX-$JhIkg}Z&%nuSS?ek2s@Oqf7P-;yf@8UMBaPjt#Jo>?S0{JWGEo~*i%Vw%uDZ)b8b`j|sX{>tDB)>kFWd{DaE|D)^9t>z)_j7)8@^(52e26xmIl6IY$W+uEs~(mYR6G6Vyz>-_Pf)se04Zun z=DL*Z_fRP6Jyy5j_wdE`&f+l4wp=?9nk+NG?a=TE9tFe5(LJhtj)~)oht%s7SGxz> z@g04?KJYjom>yWFLvmfSY9$wYKgq`hmZEM@Vw_xpcUMb#3A+g$aa( zz9xsNjc7@lb5Wkd!xp+%>Tu>J(2#_+;eQsvFQ)BIu#F_K3JxcU~V@Yl+`~j<{lvqqx|rPo?j%i7fFl;A%b3?TP$AC zNGYV2t640`blg!qV|O3^Ud7^ZNeV1y;3M3jL|qnD$#qU(Dh{+pJWMl=lO3}keTuPq1fj9S#VDP*RbcJnY5Ai>W@sm2;w)qZXHxA>D^t_ zzGmqpPS*TA`{8e1ZEr?62N+D~>Hx$_npt;P78k2`I>4&%$a$wV;Arb*v{Tl82+D)p z?^?}~31PqSs^MH8HHiU*B)UsE)lGJ%U-N7sR%LfU(1@FzX+Iw+W15sda~t;Av)~K@ z8GjMk84#x097L-xjScqsl~j~4gSmA9OPH-J*=&92(1V^Gszmk!0y@^?U}csK8OH!8oGC{H_&Ns;6{e zzVMyBYFs?^OiaIf_bX9V%?#nFR9pd4j+{~j@<`A^=aG?Kd~vpbvdnR+>cSh6l^^e z-q4_lybDfNIHbb$SIqL|d13UgpyS5DO4ZObM{*tVIu@hC!5~(@80m7zL zlUePG>8{yNa~w+}T={!zDY>~VOM77j3Q?_Dr#I1lCJuY5duod=ug~KThZR*=(O)tt zE_BmJ-YXnA8rW>7`NJnL`<>Y95dpfCYeg;ik^{OP_~LG~d=zn6XN>xjLnlq)qFh|f zJj5YKpA!7Gq_=j<9KC67< zTr*{qm&r{0vLpMTXnec3f&w>|5k(Ab`KB$u{=CmLWtA8^YwR6;^{wDcJh? z_lnPeaP!GmdQ&yywKS)S=hJCM#~IbP?eCqLJF4VpllUlbeq5P>_d^GN!hAPS9F}2u zqS08nux3^_wC&6MdZktf6TPzIX;MoAadR*1E&2cS*uz;2WG(*Rs`zG$f0Hcs5B`@p TJe(z^{yB?%tJgQ`{JZ`JB6ukE diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index f663e519169a721fdd144e6c6dcf1593545f5534..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1678 zcma)-dpOez1IK^Hn9XQNYcEbYF1gK=OXW61L}Bi?kj--4Y;xam_ohe_BAzjkj>~Bh zMZM;75XDPwm0Rv}3t_Iysq_DNp7Z_w@p-<_^Zoy0YsD{M1b_fh03S|vsIuN+PlEwK zKo$TL000Q`4zvy? zb;UL-yHpT%M&_=t} zctx`t+N|sC_f2I;d|)3>^(%34I&p-m^bM9Ok)5oz(6W|Fuf<{S1Eq?_CZ3N3Bim6T zs?Z_w04;4@h>Y+Pu{Dn`AI65QeV?<Xa-+#nx13CaqoRczzW;r_@15 z*dx8H!sk<@sR zyKl`h26uoVIE;HS6{x)Q+riasCg84_Lc({<8!>C(G2Cu1(wB6f=@Ye#vi8hnO;e08 z0^4`GQ7!<23Hc9Y?!)%TCa-;x`ZZ5HB$~3jly%+P*D$&n2Z5y%b1ukzqzal%ir?`& zd3m4ebfsHIY&QP&B7hgNoZZ7d43pR2Q_sC#_N&thp-Xzh&N^{wdo8zrDM9n(&u93lS?Xbo!HAVSHdI!}QB+oJW490}MxzXv-`-%;y3jKFv>rbi%jltf&*hEJC z`G-S|1x;HARJ(u1?$(S4p|maJbpti5FV@E0(jF{VdSj(1rM9SMTBq*+jVcz4hWb*K zo+u2%a;c(W!L+LJGX7Dvk#lCXZIev-4E*q-SZ)0y*?EaA?D)XvdxM+$VAU7LhseXl z*0C+_$)GZm?bA~X*P;vAU!J&Y4jg{XEXSrQJ_$)DP*sYC*U)doajla!ZmegV!b9V! zlkEf=x7dl{t7)C^jg^LF;u8gw1!w5UoMV&97A6ygQPHMU^$Tj=#*PJg$@#0T!x0m% z5lN?_lr!gLh1;^;$Rc!>A5FSaNuB-H?hlWLkfmLx4RNN}afU(Z7Mbc{nqifLBktX(CptR5f6ZUCQSH`ju%lmdurjEtu9C!u%$CA{W=Wn$Z+J}MmV){(h7~Q(VG7xIwURw_ zpq$tOBS}xElC|WXAsLGCs5-c-D$<#Ew^hm3iVtMO|IeEEVT!*K&-WAmN*cCSV8Nef Mz8|&!L5089UxNh;cK`qY diff --git a/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/literal-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index 16e866a3b5a91c9ea2f99957b326e1481ece833d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1615 zcma)-Z9LNn0LTAgvSl73B#g{M)I5)9ES*yFaPlyB#9ElgiG?tPU3TWy$U`lqiC8ob zF^_pBL?McKn1`5$bETnlxVrcE`P}dK;``?J`ulUT6Be-o_5l*W)yOcHw-cby0uTU5 zCf2qaI-psf6digsf7VDSq_nQ{#NN( zgfwGG4er(N&Q=vlV>TZoY7!LHkvG2>T5wilb?dd3Q!2}?ayN^WTQOceX8vNs?WF7V z7YuqKEv7zx>pCL`hqtdr_%ShV@_UL;aUpU{mFY5DK!m%B9c+rYU)*%gyLMb~;{dL6*+0IIZe(gd?wq zKebZjW8I%dx5c5dSKJuN%jP<~AX|TH=>j(_N+mJB>!_TKbv;5d?yTMu)RyAIv!}<$ z?$v!%YT`CZF=>3&IR&vI>w}8AIxiCpcMIj;hc&E)SlM1#@%a{@eI@U8hFN0)%YU-} zVchinB(>Qy6EGDO~8>XN9VP~shX&Z&Q!C!tCs^$60?UvauW5ps!wh4;S+K9_r zy<~g~66zV%{7yDWl4GGhhIhAjPhRRD(3^5j6)mlpZZmjJ&q}hyiD#=n_t+42GZw3! zywxsKRiSAQM{N1o9f*7M{#cfBMgqR3bAqd9XP7oZt{A05Ll%BVCquJKIST~OPI0TM z-?||^VhCa$d)&b~Y$yZz<~C7jQy{oG>61&rpD}KPr(kK~=e4E4M@kpT-B{2nW2gn_YhOvaEcD3Oy<~^Gb--Kxe*tnKRbeTl{#vP>8dPP&= zE=f&Lit;EHDz}YD*bggUmK^IZInU}-#PqIfGrXkZOXriTVYJ~Vpo${+SIctbW?$NF z{weMx&1WuZ@c53Pl?C2!CCl6;-s;$Z51Q~a<)g3dW|Y-Glp{(AwFjTuW!3V6^ygYK z8(NRYxmkfn%3Qqf22zLl;+0}PA7?()Kyu6av3AVKhN6o`d#cx!;{KpH=CBoTNu_n2 zEL+2-?w^-180?(jxM&p9T}5g%A`pgDv%NUM$ccI&=`^9RDoY^q+ zJBgKZysSEybAZ;>l^Z23vx}4~3r`=c8LK=yf%H}KbaK+5TFUId4?d3OV6I=<(wGXj zIT`DL$#4a)G?6W5YU6)u^D_I>9OHV5=6a;pkw_ywW=(}o*qkt_=*&bfcCWsA0P^~) zX&!xuE!#DBLa5TfL6${d;DkZM?MpV;7T}*)5Q52ix#=;1!0b84(>=y{^g%-(7W9UJp?seyjOWAS@iKxORU>o&dba# z(7a1WaWbD0nRip9>KiWwhngGp_No_DevMh8=Dn^#V8>*14;Vl8GbE+{;>m>K|l8`%{{7Y#CmZO^HEtygK=_O zm2Uq=I*pRHG4o3bC=Qb8%R3d*21mfB>sUudggfS}SJ-ez?-U0q(icPUU7MPC$9Fo1 zVS(6~2!fz};Js!JslGKP;o0w>{>)?qBfzWrU^NJr)I|-~8yMUJnO=@;4C;3|VzJpS zH$1wTsr4BWR5*0uMfX%GtDu(I!KdJBnxN)GtrXi&r0~eJ^x+x|0YrB2mY7!o$NrOKgL4ed+9qDzTXA_ F`~x$Y`i%ep diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.10-compact.zip deleted file mode 100644 index 1c9217da080fa858d153d6da5e31513771809688..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1706 zcma)-eK^wz0LOpK2sfQMFQX)R7v}Af!los8Y361oZ>OOap^b6a%}aWgX~-dAmgj#@Gxl!FyIRS z2>@V2r(ZVTF~45Q8*DlSDd-9#YCly^x$UlMt6L}AYT2;Z5m&~+gQkR#TYRMWECwi@T|X-(H-kFGOd%bM;UIySt8A- zWv*M9QCkpxV7Lj+xgJ7+{-9hCtdiN1@oAPb)xKL2RX>z(U z8W@)pWQNMNnUomhx1}c<^NR>vP3__GFa~`2#fJ%X?jo_;y5k6|R$})t%pqjZqxi6< z`UdBFPKnOdRm`x%X2 zTEYHgfpw!T4ZL|)c=!ag`{t#m?sES4K2rwHKxHhRNTR253-k0WpWm<`Mek$W1Yfiy zHS#M@Qe`<`9!|bclH+*_f{?X{ld@78h7cd*0kh;^&N$?*Rc{DV!*?mRknqcTl82=!gw+<6=ROOkwZ;`&D`;l4Mid5M=EXR06duBMu-2}Xm`>HNaxZ+VE zn#T13IWJDbyCTL#rJrXh^L}qXwMMnjEu4F)TygJL`hSakab&cJWtoNs?_tNB_6MCc zHKEr$TmtP9POX;Gm5zN9E-j&5I)fH|(0Oe$$7lCI7y!cDUffwiFK7GLiTL}6SX*4& zRyb^KI89kkzH@ELkC#ixFyl)xk&dk|^`;F@k9n~+r&+I$+ExgWg=Upt z2T74Mf54J3RDnHzr86a;?AXuF{WU+uw`pk#so7WC=t#ZE(V-^DFlY% znjAWr!Z^@%91^^`Zm_r>t?=DMCehxCcYL7q>H{wWSB@E@8ARjJC)@U%`U!hJ8yDbO zRa~_R-T53LMJah(iF?r}8`xeo@S8RJ2(@zN~51hdgDFv@X=V< z>=8X0<95nuAFD8bJ#(Tao9(rX?oxUVjrDYuee#1ZAn|H`J0(?k*GWSu+pSQ$Rz`aHdAj0Em-J0&GX}x~OYZ_% zLqG-x9~l*Q=LY+`@g6CWr_0CsIRY5;8!`~NtlTex##y|LyFG(Y8*PFanQQIZ`44~8 zE&n*Kv1#O|-o{^0&oXFl;OW?$ROPsPxO#bZftttJ@``gR~4N?d#UFaJh_vQGzP$=8h6Mmd57Mq+}}Yb zC6;LEHxzlN-F$#iP0hgcTxboUl6&hmKj5o5a3rRpU+;E6>RFkz~sVQIQNx=KEj#EzYdIE41%lkP)ux0RQTH9{7GV-3sUt(+4HEfsF7drq_{hK%>olq=H*2ot92^>sW~DSo(2@hg6F+Kso99-sav<%l@i>T7Ca zochRRCUHK8y4OiRdwnT*LF{$+0%zLH)Y-Yby#6GLXkh9c7X7=0)PLRSU-Hf z>U{nmi0)bW(Q%gLO7IckYu<2O?zFOJcbp!aRj zvLuE9G%r#eXz<67(*uvR@_y{Hg4shf-tn0=c5m|y2MW8=TpX!6Ao}`j}*Lx$tgoy~RY)=0I>sLLe34z_sIKBDm?z>&S+fod5_oZO;IX0(;;ek0h zS#fp)z&Ffk07*zctasW!8%dh;gI%#}kU+l(sfQMfs}f1Y*+bQa?)zC}PAHhGsA}pS zx%4%4GTLHUq7bSK8V5z?^;ZvV(tg7)v^SW-aB0^%s%Pi;2(XIcF*Ts^uLp&58rU>v zmxICz7n2L;BzMEY96dMWubAJb;5^WNq1!0_@sqL0ku+aT`$<&4*N#?s4jJMtJy1@^ zjXURiJtbvIwGv~@MeVGmP$G^wn-L84!p#5aLtA@$7}=3 z>9L&ELO*|$`u!fJcQ$g{>Q;$Sf@0Yz`daMai@Kg}@$|Z1whTW8F3sdC1BTBqBzpA( zF(p?Y^sx1IID9aX5BoB^dT%O9CnfG+>x133?oV>86Cw`;wkH^a&mn^o(@hzbu5mQ= zIkT9#X5)Ge-ajL@{CWDboRAGm3@^20(i4oy7 zu^rM<;(=Ec*^0NrQ(qL>T{B)NjF!zSIH91;>d$`mZ!e7=?bLTzi59KWh$=7qpls+= zut89RO>x?-LI-;ZV|w9AZE&li@(@;}wa%7?W?m8<6TCaC*L!)0b~2jqf@_b5(Ofq@ z*iC(>^Xy4QMNfM}jUaTa+8jgmFw3#Nz&YlwwS|BCo#@Ez`#P-ovIMlw>podzDX*%s zjO4KwNR(x!99KA&Tr`QL1n#EH1V7ELVi^^F&b&5RBhl#@*;ev$B<#BL8}q@%CtP73y*rMuuItsk-A_3v67#dIct6>u zPg*W*?v>6geOxKz8BTGzIoYudOmj+jsl_D0Yv1MxO>(I#Lk@=&2?8aku*j~l)by7f zWwMd3hZ@q<#e*6bc&>kO$@=-HdM!sEY-G3Epaig%AcV$*BfXY%9%f#?HIsWW&b=Ns zD*8%))G`mxl`$S$)Du-i>5aQfTln-eIoSBakxY)Tw$*GxEi;cg^nGtRY5|s`!eH)m z4Q{wnIUmKGV}IQ`XXJSy{HM)Zet#-ekAjjq&;f_ln&qnNztBo`S2)wrN}nx*`AujsX1_s?j;I~EdGGbX z2zm{(BM3MiwDN_yJBf%|i~Vm*zIpO@GDQA6{~s;xPU7D<0sxV3_5QX_f4~0#6hk7V diff --git a/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/literal-0.4.10.sol-0.4.12-compact.zip index cd96363a4072dc216b8f4bfcc6cb1961012d16cf..65715fcce3aa2867a73087ce7e07515f34665a29 100644 GIT binary patch delta 2029 zcmV@KL7#%4gl-5WLDuf1$VXw001^I001VF5eF%eL?nM7*K@rV zG4V$ag{75VSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!KfxMgOsdc<2EL|LA-wy&yPIq; z$?UOdX9(cIuXoS=O3tvlmrH)c=wOFV7iBODS@E+7YB@d?hBT2tbDn?O9^y=x8^^87 zNF~wC0NPPjRXwuX-I{gc<>Xg5`Xx-zwl}P|o@=gkZ<+PImGR^Y7zW}t22~e1VtN}DdD!Z+sr1^lN&BET^Po*=yfQ{=$8UWt78&9Xcxm^ibB54r7#-@mCnq< zyFozydV+NqfI(5}*C`@43@+6i@dKUoXE(t^Al6L@Rq37gaOd(UId?Y+fF~?6-XHMHxRwEd1?k%+ijiRSe4!!p8=F-d}D%kLSo?;#175s z^II0z@dyIe33jx>h8LgCX{zQ3DSm40F?t)*DnEbZwYxxnAbi3_ikDCQmHQ{59MT7@ z$K;OTvftz>lUP5R4m;6>5M&u1O#}AkE7f_NrsG6ss#pSe2)!8@sY*y^%)M;KOHtGG zx$N#WsU;JOcNHmP8x$}<$p~Ofsxkp>6w**s0d4JpVKe?~p*Ka$mpofB*{=X{-0Jb?`(EpwwWf9lZl&`{%@5_25mvK< zGD@H0tkLWB;1u*d&Xvz`P$g#TLg)JPFQM#pufSyZ zfv!)GonTP_a?Z&jP>?$kLC+6o_8rsma1?(nHof+{(JeQ7m9%-}3F%@fsay6_7i+vU zr-X}N-u&W_c+P&Q_-J~UN*doiJAU@iGh=-XW}T2}oE72@^XTE~oO{3*k2O*IfL+;^ zUP>mrKyq+Mo%mULV(rl|p}e zR}*a)yceG>j1|$mG=8~iijsHlj@Akpin;=uZ6lCRpT%@8?6rlxvBXB~fvf70+Mf;X z{3>kwZzQP;$5@cv-s?XpD9T0%PX^~NeJEDk90K}_;qTFO*KK=~3OxuJ1ELwyzb+Ai z4{C}v8GMp`0`I8v8aefR#h**RNbi48&Ii=+D8SiFHtLJJ@)fnLkiK5tRl*vAe`dOO z>#p)I@OSZmjEW1nRwb~?kFnamU1WRxMN&X99H2e;Y_Ku|^l5VTZmc@TYI;M1@ zEX%V7gw$c(jw_TzmRDO9Ja|^0Vcpb(^$A_v(}_fSkl*OIut8t$LJU3u`vE1%Rm))% z=3hO4h-gOu^mn^YLpzhE-16ItWImBty~E!{KtdKe5_qsm)#$^(QD83#WKGLbP&!7* z7X*>`>e~bEM?q_}w=4X4^CEveO#Wd2O@$wf5GwjH?`3 z_tPLVVw5$f@D{_qW4;4=jT>g(v?DOwS0Q-_yTym)LjX6fBn7(&6nQ)&1#4&!$PN7;Wq_$wg&(JHZhV1 LN(TA|000000DIfT delta 1745 zcmV;?1}^#J5YP@7P)h>@KL7#%4ggVda8w!g!+D|x008nUkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6*-ole0Ac-oB*wYC6`G#si&&c07f-|W ze{+Ati~e@ewpKMkGJT~@+;!*NbNIWa8%gF~&l4`)=L-eRXi`;;=EX5pRnpesxlsyp zgmRFN>pWVb;2{}*b+LXe2xsWQ26zmqq8bRk^~f@W`r=UYt8UK>fRTuyrJq&@&G+>K z>NJHrn1KS#>6A(8@VbG%0$02GZ2yVoN`{#pQ#8UO_ubHcww2v_Os&99SImn77xjLd zcQIcTy09>}fE>cXf1t;Vw4WHt+c(2V*DoeY1p)=xK0QK;7@5g~`9Yj6DArvJY7u;% zIRS~N0g!4jD9HghS4V@x zlrW{{3sS~Bp{1Tn(@!R|)T}}wx0O=16aQ1%_PgQL0_4i{qEkx)0Z2~GX8x$l(hW^l zY_Wp(bpwsWtpoI^ukHVJcc3)gO3Y`Fb19u7S>t<&A9=!<=6CRc)k+WX<(85M z;>vkM9T=n%p6egCgJeb??emhX*1=ClM5v{I0w|JqAu3iwW?I>nl4#mIOgI8(ysAr9 zj%qy#xkn~(6e&Jy7QBWC*=Ecdg+o71#^ z7Ibd;F>)2s20hP&BV?|vkUsnVTFPbrU_nyXIljXULR`kk!2>sDr>X#ew|I5wg`vYU z?-Z@)pb@+osWH0n#8kcqPq>IJamZD}N~Ane>EU0J`8J7OHD&j17l!A4U(dw2Bn5lm z!YkO&9~A%A&?Brf(r^4yl_6S*d(q;5kjn~rydy@v9qaHNscyNJ*_NpE`j|hVwA@bs zIX08(Yn>t}{z0aXYPVA|GC1YM99pTYgI(x($sc93v ~pnw7Hg?S24QLCCAe5Lj# z;U#fa>S^0C#e9u`!(aRp9r~3MYJLx4S1{gj?QSiWSISe}A_kNtc{dKNo@s)Arf6E~ z5!CY3KRFsH`sSQztI8sXhW8<|iBQ%HU|CvuUG@2}tKzn9Qnm-FR@Tt_1PTbopOGd# zs??5Ll=&m08|UT-t?|M^$#V{wHvj!7}N2KSXJ!lrNkHBFB z0x+@}J`x&}Cr^LAT?KqXJ>v}QxujwA72$h*sHvP}-CjNmpHpw@1y^4U5SmmJw56jF zhl!fGah%9=-1eIehxXYYAq|$=&+F)#Yx4o^HK|0-{$Q!EE{0Zt6`#3zhVT=(ve&Zu=E6oj2Tx@7!7zB29|n1eKQlYAV31^4?K!*7wNMlE#Te~d-25n;wny1 nO928u13v%)01g0Aa&S}`_QQFi1^@u^E0YumN(SZz000002nSu<=A9@n|7$egp1W60=Y zb{HWO*|c10Oj2`j4iUncj(h3pocGV?^Zb41{W;&Aww7;9S_dmCGum}mkPPa{WDsMt^nF5*fY-X=08nxw7@ z0)hb`1pu5GjBvzf#MQEamyJg>?utoQ%%8$CnEnPXmbKqMIr!U5XF}!U^D1KsjkJ{B zr)MmpCPO|j`WiT=KCXGQ!>hjw*qUgj`AybANzp7MQb~bWfqL$!t!_4x9}le<<(Ho_ zNGP1ImC6q~^M_!6G`-+;5_WyHWhY?yOKJsf+aGENeH8tsu~?`TM`rbc~P5k;LdeUK6Es zcU93dl%e?OMZ`n!oT+>YBGl_w+j%%_a^J8(9CoMy{2!RJU0hSS=$0~`+ETY@lPV!P zDC5BaQ|>-t&$4QS!RgHG_siFGR!4VV13^W5j6+hpB&uO);z0lT8}7BEC;Vi6)4HdS{66F1Br(adnm}hAD3U_Tt zCCGJ|9(>z%VI}6XQ;zf4sRfVe&Q0FLnFC4Xp8w(V--!KoK^e?)->fp%;_8`Bu+&Jo2Lx`O#E7+y) zc{9Rl-#E(W<b`EBixvG4gM4e<8^42Tc zIkP%-_0v%+jlVu`weGMl6Xdl*SWHn7^XS@S{t-}kLYGH+&ZDl#Sn4^{oY*TfibYl` zfk->A5|SD32HLPG0<;bBwoOVVSj-KE(4Phb6g{wOv)vc3s z#KRI1eauv&XL#_y4a!z@q<%WLJ@<&RDUd2JHfx}B&z8Cbgm*tzF_8&iG~zqU^=!iL z%Yk{~fDs2!2$g4t$*c0XDFyThEgkH{_^-xVmv1!8=)6tO_dcS@YNNPbE8(RAy7lDDqKrHB*cmP7JJ_jiYkHEldwIRjNLAqbsXFBa{s!O+3y9~m09=3zi>vh zcPdsk_TR_TQ_z!MnliihMD_kkTyD<-oVmBi4706cBi(>FUb8#tshiJ;?*U!9B!^nN z>gyt=jniI54WSmX!FCNHj1f1}i#6t|4+Oq>w`>K)nsFe_7mx3{Rxgz(6r6~FlA_o( z=Pv!*tbKvBs-FfbTKFL*3cuTirKIWn!Kx?lxS6eb6ZH)Zvy1bN5R0iQvdfx@gSU59 z+g5klUH&Dw$^H-b9;LLoO5}n@7Tlck!0WGVz)OMch1sOz`33lOW5;8kg9gIwxa643 zRNm%wx57$2x(F@df0D+Gd`?9e5RD{Wg864*#~e&#+d|tR?4|gjn@0C8syPzw8JF4W x7>=o3zxhlq>Es#>aY#*wW`|sk*qqM!|9zhK`~BndeE<0V{lR&H6`cSDKn?JZWcu-S z)2;iI004ay0E__upi}5qDUsyhU`kY!nWZ_}+|oRX5f(^^VKO441IdxWp|tB1^M6G# z!l8;v01*HZ0l*8y*b`3srcIZffk!$TR>OqWwI93UOP>+IZ`a_- zi34pHPF$NOEu{`N6#IPo!}9^PLe)<$ZjQmt*J+0{xK2)>wbNVLZiwoNW`k*0a>;DX zPd>=_TuJrFw6#OcxbC}{C}#tlkz3&|K@jpIa1D#I_Ly zhYa~n^s$?bvQMUEDLHW4p4uYRgQ~_`3GTub+w~0=j}LbkxMBIfuEvnRq*m)PkpPK zmlnAXCee3Uf~GP&_f8WynW68UwWqIP^MmxeRtDOe-ZoMz-wok);JPl|b+@y7jeQ;g zBmIZxP-?t&uH~%q;>lb|&<0w`h}y%MqT6DKXEwOy>+DOa;SmP!$Yq5 z_4yt~WlYkzhOo`y3x(4U9lG%AxrbdTh0@^{k!h02~n)gp1otU!70YQu#44Rw8o*3CsE-bBl~X_ z1xW)_0VZW@v=Z}%4Vtx~~27<-^p(|Nnsd)l>AtuLz# zi{>HX=mNgsJL=XcP_KForj_e6QH{aDP(sK1D3JGXk)A3G=S@|8d(-}Zwo+_R@!w%E}#ACk>sZGDUG z+kJcK3pOih*{;3L4Vcwx!9P6qc0|5c>=JiVjeZG$zG5f)9XBO@RP@>T6uWLrS4lAZ z_BiR#E2M=N^Y;TULzHWFxz2BDVWgeF-r%Zbt8mx zx!%N*b_rrir5Y57S?HcoJ-V?CB<)ZFtB1bzGkS@uo6L^zG7`YqstJs#8Pf$#ilfMkigJmp;$9cS zy@lN<_OVzkwg4~f2tuBJ>>LI}TfqtLFdvRJUmSA4I4Ur}^&_Oc`LHX>X1YZk1IPcv7+F^&i;1*ujlnwFh*2X9lQ~R|92v9YteF_avMUK&85&nSvphx` zOf}A2sazvRIg?`$yOUh&7{gSHY1@7Od_K?b_u~8cz4*QUVm+k62tW!@0{mjG5F{Y8 zi5?jMDAWJ|Qvd)ilP`ymV~8XYnMO0SfLp^Y;56!`i{$t#)R@?d#28X|#5FQJl18P- zfn|U|07wP^hg-M8toE#;OGgJA?G=l&3I%%1BEk~nj`Bt0S<*r0_ldtrgQ1NE+ z>$dZTQSXD6ZVfcBFn@mXC=9Foh9D8N#ADyrK`GQc1Og*eGvw^v03otgap)%NxcW(lGPdg_^NDz@+a z3~=Wvsbr-6^jUO5`Dv4i(MrFX&QCvxm<{)Hj#7=#s%dK5cax*d-R9#{A5%Iy4`j=7 zvvYP6NBDoHpkr6VO;tpig}?{eY=*qKQn14w_u=^!DqXP8m0|gjM!{hVtuhJu z8jV{~AV&-EVN~W)YM;o~X{LQVmCQp9h(|Sv3EkmAU@eVCMsRjuf9~c;upe9mAM$tQgAWlNcX&V)gFqRyS5zqMQ~S-6gZK*ur0Sol@?N4X1!&Ulm0S;$Kk zns(B2rks$vSHD-iA@4w+U1Sy{c03Q8kPmp?1cU9&BTRX(q~_cuoCz89AxXNKqK+ps zfkDZiyu&wZkPqh^P}G}!Hm(~^pAPkhUN&vGac;Fqmb-rVF~YTuaH&{BgYxmkQ=SKj zpJ*G9Qbc%qJta*XqwZ`mz0iAmblIj9f2ix~(4k2W*#j9dkyfc1f@q zZ*Uyd3VCCm8!~c)b0N_g^8w`L@&!EhV|7;1-p=8k1IwS}izX?y^?oQ5@!IrmsrP(c zle?|d>t_D?oPS6as#}V*i?HmZx8U*;2ea8`MF@JWl%rvOpk zB+`R^l>a*kOFP{y#7wd}l*@_>ncZ*T1(guucpWkWBMv1eds zBA*84zq8jxuj}W9rxxEVFqFBUFk^J4RPgkNnzwm+Ltuq%;|!t5#m^izT%oYETMME@ wA6Xd-7JgCfr2tqDkQ74te+%KO6aGyy=pX$5dcbm4vzSj3EmH%CT12*~u_y7O^ diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index 0ed1be33650e2495ce1a320bf329df85f8973bf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1696 zcma)-SvcE?0>%IK%M?+xwyIH$LB$rOQ=yhSwTD=OGH4J{l1Q|Z2CXg1jC9j$D;1Jn zYe$vVG9}t-?b>Dtm7tml8kGpK)Kb%#_xZj#=i&FAhx7dN^OBKu0;B;IAe4X)%xzxh z2;=|&qyqq^001P#CY_HZM59o#M54JR1PZZ)5OIl-u_Qc>kP;b9K*eJ&#X=H@IINa21u!n5@ITF#~lkxdtD@P@yx!M>bZ-SV}wA?AzC?Q!I771!w9<^_6>z$;1 zIUA@f>3eIIqPx#hufqk7O;+GDsxxxd#dk{rf1&(eLY@?-+#j8_ZrN5Uup76?;OaAb zta~^?ax>dfgFEkbZau#l^VXUnHOc81gn_&3&rp9&_x2yFN4%&Fn9en7{OAzp2H-U- z<0;-|4n8uY4!6wSP5pXwt$ALcN^LY3g5)$OL~E<_{ywDYa6JTH_)0$=9Z9)(gRa2{ z=tYp+Ii6wgVf5jLcE{k>*(1eISWO~Ev#ZbrD)(S=`N8FuL0YEryPB)F(^Idja0g6G zBJWMR7}1WGgk|9MHD6{em{TsM5AWKNvS^Hv%gv8$m$UdHNsVpn5_^l04LL zo3w%+K_b*Z#-Etqz1hkp2DvqDXbD2K>fP~%bomCVfH(2M#jla1Ig#Eo>WhJqOblip z6pdW)Cv{#!XMQe8ranwi&)YYnfI1BJefZWiV#{-1!^H~@(RVC*>>lB;YZlJy=ex<& zAGrKOa}nf$@XSw)?!ho!>@?ZR`}*tL_EGRNRt}d6HPH0QMbxpcu-Cx8(dS$_sk#FzR{^Ig zii}k(VkOcT*-qk+-dX|b%aXGSHMowgzQdiKuSGXFf-MJ9yc}?j%qqorD`Yr*_%6?K zHLj1rO;$5JC97>Rwsmo|)CWVeh_V_ARa1l);jF zl?EQ_W>6KY%x3>{AW96HaaXW^`mUo*UcDc>8l!sRJ4#blijtJZq19#zkX1NiRTnDh zogL@{shWzPw+(;GoEP7%e6d}XePFgf3LrOo!_SJeNjPbi&XLSD&sSNU*Ff_h4$LNJ z@&cT2CR!}xnXrb%93JhuP|m_h`?#$C+ILN`8!&rLQG18={a1X?){}|TMVGtgOmA;I zg@D%Do0eyw0>11(g8IDte||f9DaO+E$VrX c#^1@1`V0TwAbwtQ@_#*~zBc45t^Zzs0@PD3$p8QV diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.12-compact.zip index 9f0034712b38376a67f0cef5998ac35e42338e0f..f4bf4dde3adb9d43b52adb2440cfc3a86d28546c 100644 GIT binary patch delta 2068 zcmV+v2@KL7#%4gl-5WL82+E{5C(003Vo001hJpa(6HNF;wB*K@rV zG4V$ag{75VSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!Kc13cE+fPgO3N`n=$7CPUB z7eg3~qtLbq$SC|))}A*+TP@zhyNog`zMl@uHR)=>z;ex2b%4I}O3rZb|aov({JE<3!2UTl}}`p?YasWwe@oIu!B z{3nnhD0|J>`7>&fm#z}WvaMI(6>)Wt<{Iwbo&)bJa4|9t|7bPAN0Wb?q2cs8S)@Wr zO2Qj}nNk45`GE24fXlaLYe(A7#V=U(+irPU5W(?#r%T_18+#uoaj|g!*Pw$c*(>Em z=38m;C3oXXqyrFwgRo|4>8cUeX{98r56bcfueY_z;axp{c&|1(;?J zYg%jS=|8bh4bXp^ts_UmPqRbao%w);xa?{LR@3+2L4~weQMR0RTndwS56<)=_w;#t zGg#!dq+yaaUlR%k_~7h!?M*7!wQy8*N^reabVHch0GL*ax&?*$?u6=ec!B$d&juW! zweAnP{h8xv?dSFH7hm0OimFv6r1EtPsE|(GO(t!3je38sA^+pcOKoNP%RSU|hdO`d z^y6N-^0hI2qW`)oROIpeOKO?T`0?Ws%|wbt0E*op^;27CT1CFIBK*SrKPY72CI_QU zwmd`eOMcm3xW%@>S-~<)q;pF2z?D+hQ*or`afTQ_F9P)+Qz{w701Kx4P43B{D^Lm3 zw_IZL0Mr8N^>18+{SASF zneCOfWB5WQ3D?AUes0=IXqu*P1#;qT`?yB=uMU5|eM%p){K?0XAi~|%np|~@oW}^9 zE}_2qOUpkx;7$B5mfRyK$y-ut7R8r>K=z90jD5}{u!)S<5m)pHTU3}^_2nTuYh<@ zpZlWo-M7`YLGbc+E6PQaCPPH>;|D*OyW&vGKb(Fl$`r@lsWJB!|A}MFomhKyNqmW< z!T)HAub>9<)>tJlzeQ^rix=lcZj^{l{^@^=Xz?NEKIeVrabJg;MTSPFH>ZThhtR(Y zcAeo+Vqh3dJe(!uFb1Sb6Obs^}P!rAW&7Xi&Wi9&os0&d33RQnK ztd4oMA7dPv?=yX)fF|I*{&<)zkaU1NeQooH%`(OwjM5cw9qaqGKzBpeBVL=L1|&CkhD8V+-| zG(&62^43NYdz0B()zy2%QGj}iN2^Y~pp2?=J*JG~2k^IIW8ri#;czJ!$kTr;E-)XE z#*Q$&0Ag80T&FGyl2z1vHs+pfd7C`bY_8L(crRKLHCX$dn?3XJ9m`yz{xSxHIEC!r z@#ml_{Ff*!VnxTw0l{#g_gMD~AurnaPE)*Qd-4cK7UJA9Jd&YBrSt}{f=reBFXca;O1rL;#RlXC>6F{4x zsxLvaw#yxqrVa#_(xaf_bRWzv5=f6SVimfciLj^4DR?i9e`%JCd-1o#_mp+LVJ57` z>d+Vg^AFp@o~EoEb^7=|7v~}2^Ky}v9zh3)8B)pn=~-O-rU~L1TMS{GKeN~U;PbWd z6kJfflNFr~a9fq9f%#A51+n&MEN(DsGZwVXkn8+bMf;N8*ZR}4R&QVQ$r<|rBfr}r y_@tW!_htT(vtv+80Rle*KL7#%4gl-5WL82+E{5C(003VolaB{Z1|$do0001omiD0l delta 1892 zcmV-q2b=hk5#tXVP)h>@KL7#%4ggtla8%V$v5GAR006oq001hJPY5lMNF;wJuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2%xp+|IvKwx1ls`WK@iX=t zMiQ^6xg^^}VWZx#qE8xolkKn2+ciC~)*j(_b3F8;FPyZz3|Dry6ZhztAEnqo?QTB* zl&IMeA>UO8Z~`t-H`MlqmGFP8lGKNEDn9X@*-8&ykxkd(Hq_<~ z?X3U_rh)-I-UsDxegt!!Y5pPR+@A44EL56gKJCRPPrz$_JLtfqq|LxuvAJxd%f3i( zZ5M4Lqp(KaBWpD8Y^kB)ANRhJiUl9Upe4U&8P%bA53n}Bc0VU6-p7CRv*EyF^?0g^ zhQ6|G7ExkIS0lLt&c*4UjK+2`;D&+Uhv_LBv8@e!NODULY%(0GE@LQRtn?Nd zN@GWA9V`Z;H=JG_+Yo=ld;kb#6ox6C!$(cbtE_n7{Zw4&6x^^4V$>`>(TJ=7jU2hE zSjJjOpa5&$ru0NG-iEZ1B-~oia^oXIaejAyI%A-f(qTys~|Ro4a0GcFTlJyfJopBEd>R; zi-WIr$Dlce7dD}M7`j1z2ZSew>=uB$Gl)SlJpVr@hD_a1sg_h@0L~(`l4WNtfBWj&sbHeIK6r zCV0~gOPPf9d~^b= z;KBqYlevE)cprZAJly^ARvQe1ZqEJa)M{D03p@WEZTsuolSH}bY@gOb21!R}N$=JJ^$vXL&H8fv}XTUMt-WCeCcheoB!7H<0 zhrEnqk(R!JKlCfMTxxA0U15;s2@67UMl;Dpm@9u!KY)_3AoR$jtPY&tz8ctA=b5R{ ziBXRy3h*e-`Jwe~)x(&8T3jX+T6uiVh{hXL4X&?BgUFvP?o^#q-qWz!tG6&g5B+5 zE~|fyO4mBsou8M1cFypYTd5%Airn0ZQ;)t=_|26Z*;#Ygo1}gJbjl|bO+3jgWKLSJ zlo5mc*Z*fY*#OhhwJ;$bJ4*O$OON9Wn7Vm!UE{_IA&S|gLHwwY>!M<$6NqX=p2Bt=I*?VYWA0D_62qL;1k4`sN#SA7TK=hb1H=*52|Rls%=!hX6K$rK~kQg z;nZ@??d+eWUC#o@uyqV+!6uT(UHb^U@;jmL?qX|}p<0Cz9ISf(m#ykW+HR9}&;})x z?x7OQmG1y1P^nBHFM?8vA^eZE@q7OcJPUB3FW`dhg(od~rQArGBP`s#9zz!m;tPL+ zp>`ZO$hHN$GhoFZY+mQ|Nad@l?xIn_y(S06) zN4cn`YhepGD8?VL2cKz4JiX}>E?WK__KY+pD^7coD(|q9sJHF9O7Z=S7Ap!|p{aq? z4@60LTFCxpR%I*FG?aA+2wXN0; zND5bG%O*aeSeFrKvIAk~&xBQgtE5r>%EB}^|l08sM0Rle*KL7#% e4ggtla8%V$v5GAR006oqlRgMe26YDj0000fsh6+- diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 18bd8076e666fda5105889e365fa48a631cc211c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1663 zcma)-dpOgJ1IE8I_gV-gq|R@1`!Sc0SS}%&#ilJ*Y>RQCVcMLzo#D7Vq-PE?MTH?- zOyrg&Eu0LQ!yL+?q7wWUjP6iLL!1fXn|yM2%QeMFtawZFr!n$Ng=UOR9ZACkVXy-V}zJpp;IH3 zWaR(?03-u|LuTe>t8Z3UIg1$S{4OUOMZXwxeO~o>rTO^PLIz9^t_g>yXss zKH+%-$_#NXQ`}UFUiyN%b(yD(+nE-`VrJ@fBB}XKPM~$GPde`VYk30Lm|I}^o4PWz zcEXM2+JP|}hq@8H$ymB)#rr?q?`+{82NwbqB*q5)3aUYJJQP3Eh?f}*E9l6)D-|s^ z6ZgDFnIlVA(;zoL9`Q@zL{}{&%7g}zz(aHG<-MyhBm>O&zU|vO4)MR;^B5cYWdo!M z@=yHmZfS*3s5LPAZKQ9ejbY%~vsVyskK={>AxM{k;_3lBHed&Ap1zfqv_ z$Ggh5UNa{Gq&dImk<5ibWZY3#E7+=IX12Dx?v6llPs?-`V`cE?E}{_QlJOSI&-Y*q z0ULX3J^x1UvY&!==Cz1%Ci+Z|cGyJ8^WTkQHE(1s?*hVlm6VaM26j!KiksC^yupU- z$_{VRC0P&io+)k(5#{H6hBpqnnh<0kbeq^`DpCu~NJ+X&3s>=V-3WikL_BNpPEVWr z@kM=mhBCKGe1hk`5@^XYtn>_^J~ZFz+N3t<7z=9iL@ciI>x%rP%E+Z~{!fLIuCG<9 zPyJd^aN$;S;!VVK%igJ$yLq~;J-MK=kHU2mEb%E+&1yVU&&E}5AAuZxH=b&7g!388k5+dz|{0v z5jH6;?_;LMd+qVsbZb$8H%Q|mYBbYwdmdY_G#$WAzHJ$egNLn%_};7dIBM?`wjk~k z#1|E_yXcOm@Q#P|iX_2J1D~#4zvf?u@u8xhy_`Dj{t8pdu@I-dQhK~)juZ?}eC%K( z@MRb4jdd?d;`{Wryq)XE8;5Ev^}|99<$Ro$C1n$4Fvu+0iy+`#NbtHC3zseQWnQyX zCbQ@58|T8(c;z&A6;SJ#ruWY=S6*7?M03lwiUJii=v6U)V33V<+tMxxufxPSZZuoc z6sf>@EPtF|q|s0DS?pUUDvOUrLkrFpvv3NbKaFIZK)eALnOL|xuq!7BpC=*8)9FJH zRhWT;bJL5!QWn{y_?)z2NYEjl>#~+m%PKF6DT_a#ya^<$yhfdI{42sPH6)7EJz_M4 zYS=1ydPqBjF=>@honbn>F>e`Anyts_gahw%u2vB2km@^--11g+!bnnq_ z*d6YDcM)+k(SE{pB}eTNKSL|kb70(H8!1giUtGG@r?h<;djZ+`d{VLdE2k4{(Z3mm z#ub6s93@BfryIOd*}wBCZ>YUnaCqgt`&%k@)C|=^@|PBe~eK&-??0 zId6A9#vC@;|5@xKRpk)%3vDe2v!uG`*;?c;*JI^oeI;Dnqbizjw*>a!;_&i~s6Kh7 zTZf`+Nr23HH5z~3ifxbllYraEu*RJC2cW6Jpt zr83!i1q@T-+U%G^gSnWVD08-5$qBYrRKi`ro?^6J3C;|!pd4ggTBe-IQx5Jm-Free zV(quv@RYBeQ$*E}6@L-XqU2(G8Xfw`Isb$}3pj?v{HOhk>gDF%2dQ6%N|y9R-=^nB zHN-E4u~&8iWdlswG&r^fK{FQC3&UxBckT3QA#9Eau6NxeDXUHY*!|Wbl_-Daf>;w; zdi}#m{cX-)lsqt=8|76AyU>}wOV4|ll3~n;X1&a2E9|y!hI`rQC9l0%1Qk`~Bn6OG ulIjSo-5H&72?hm{aRUE4624R6A0>l+#QzTn3`$P^#{%@-`0uIqPx~K}GzP!` diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index 18b6d584d94378fc62f2843d29f4378790288b7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1658 zcma)-Sya-A0>=Lc5)Lk@kqe_`rec;$q|Ky)mozP0$Q8BGh!Dx#pivVyT5hPQ=%}G$ z>QzpL4X(Ik>9{-Pl9tQ3mAP-BHIBJY&HJ2lzwhC9zK8GmN5F$2SU?Jp2Z;0#SLln4 z&{k;xIHLvtCjbBlqy%20&`D%6g~2#wYKMIJc)e-)LJLz+Lj=EDle-(& z)##=hFzqwX?iS}eEq}rDsKwv8?oHK25T+}TLBZ)*ENBh=7xIEqX>r~0QEO7+MA`qG z)S17ml)fG{wJaOdoQz<&>hMt)_}j#1*Rz0tiv&}rVeLb{7`4dhDxy>$Ewh=OJKM2T z?F0XeH@cWFxhMB<{fNh%f?LAH7%6{}FZj)TQ{hWVxUVi@Onx^9X&K29*p9yW`4b2M zy3%RV#4hm>{xZzI>NjDlRrEZlHof?wODp_{zkyYh!8vU+N8_Jr^Myd^71Ntpl2k7@ zzsAhjwD43u7ygB)zm+YW(~*SMyFcvx2*M_P6m?*0JddTJ{b`%1F&tM2y*A z?$=D3d|%gH%(sYHTu%-X49Wh5-`X!(tFqV*e_A#K>N^%&-cWAmR{98vU3Opx^BS!z z{7V<0QtjKQ5Z;&YiQ3N3(}7CgZChf}2XRxCf4owUy++@u2T)RR_k7N#dPZo8yz6kP zU;|O#X(EIvtK-gaNP)*FxO?GRmjYrq^@I&3+4II0h3m0yi?fDMo^_au8nVHj(I$zV z>)_&)q;*sdK27mmPIQ8&yI~?vrot8bG7Fah+x_4)BM8iOJAfV(`vmlMHM_E-^68Pe zcr${LS-9)BYpq zZT4QEbKcnR_)q^mq|t*=-DEzP+l>A2IKCzd@>#!e-rx6jed^`y+)+i zFt2+239_PbP`g&@*{4Rg7%|kibhXhwg723M2)(1BUDONIUe$Kt z8MJ|9jJGl}Hf|a5_MAo0xUAiJX!DxeWaWqI~|rJHm<@l9(&hy<)O7$ds{{FAYfrgM--Y<#pyr(RZ`zZU#djeMJ3-Fj~dvl$H%2qE944|O6< zW0tP2aDxSz0bktr zl+lT)nXbQ1D%dKLh?;M{hrfb+qb6#pI`jg?+kTOyAW450)72e#?E*Ql3d(XjWx$pU zItIxxv^#c7mGPPxBL2p5HF)U{{T^#AQKk(;&!#~3I637yR)SxhSlzhA18ImgVS>S7_()? z{04}cKYI#!%IQklWX<%K<&v!6bGz&wk=+JlfaqiV2UUrbn3X!VA$Z@iDc3ARR7gg& z-C<~Vts~H=DDaTmq6!p*{1vjPcWa^`)1uI^2XyGumoz4RT(k} z*&P;~>y5lGicf0igqt<7@fbJ$RyTAk#dJ1~rZ(B<45z#YT&`{aGC6d3JW6`Dbd0Q@ zTK2MJNNTQr8a8&1{pqxYP6*5oOv>-MO`vF`XSWLB$)W@G@qCL zZ2gmPYI`#-k_P_>JQXkVfOm0ZBv)E3Z+4+3s(9y#(7NHLI=a3@_hRsZX7MH1XjPAY z+1-7L!v$6QMq-y(VSLA&w+F|+V=$e}@9ih^Vz-Qu73Y723As0{q5jF zYPx7!PAI?oSS0mldKc2VkWOt?zo6?PP>5)L`TEsYY;#ihkVXw^0aY^!5Xhu)&o zza@PA2C2h&X)=HO5}wL9u3?hreq!^w3&lk!TohBS- z)8pv3Fj3Q&p)U9QOozj9x!D8xZM13EQg=_YTcP5r)2x2MwlD4Cd#Cc13YwbgK~QU= zg^O;6WtMe&0EBvfcSor#?5@#oljoD?~ zy|0>q5$E~CzwnZN8!+=U)_yvGDZDRtuw_3S=xk{q%YkJFdz+1yRHjLMUOap_8BVcB z9hA!{En)FJa$&QZX!>;0A=j}=*%*gUf~Y^2)wM^CCYf+`qJ~Mb0es3KGCY| zXXx9Z0vm8*_|arTWR3L?+kNWKFm7+-t}r%cCk9IoRAd(d;3)?d6-^(|&;izbPRea_ z>tx&@2}4LOT#KpS@FjKj8w-vHaC-DDvMZsFLWvnMQHPqtKt`GO!J^LWX&Ofm7`kUC zc$mr^_q4aXR=bjs$+hJ7Clra7bTn$4&UjtioKqx$H>uvg?-?7NW8Lg-FbkSe=YOlg zK61#U&{~-Hh}nPadwxtii2S z79v36Zgd?<$@LJWNx5S{tmk(hX6ioH@XAH3#v`IrSMMn6p8Nr9qmDw(SoKlnOAYHI z!wb~+Ku7usLt7ie{!c0dvvc!Y(i@;g6k*<=Cntoge3W6 zbIBTO&b`Z4om$UA#vVA>@cq?WMrcIF|gEnqZckff349Lj&xy`EJSlK=n! diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 6b10d21ab2c5b4c01ce1d646d06802851b1c276c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1660 zcma)-dpOez1IK?ej!VWl?xvV5i`*|A$D7M>YuPDILpyRkEKQ8IktlYIOi|6PF&>v8 zlIB(&ugx5rkt1|+IWv1{v_vcAm?HCb&j0W8yx;F1pXd9>_wP?I3asn}C;?gkhL9S9 zzMd==r~trGV*s!Q03aEg{41H}>a-;GfbR6+@KvnohgWQ|CcVIK-YreOUkfdtNE;O9$tHL+>CG@WTC4`za8z-7W zS{14XS-QY((jG>Dsb(KV6mi=~o}mB^OiWKmiqty&c!m+s<-<1p*oFyRji$%uF|)`K z{STNCbAk5NNO0^Jc0~JoZMA;TUHHov3=>_Y3asK)xL)FYvz&34rJ!}0&5~+2nO%jJ z53~$3gL1714UtkkWpt`fKyObx-MzNrUI`6NydSWtS=dqt?sBhiI$&Vucr!Gro|je)abVoR zgE*OLP?5oLioO;SDlJ#d>TwTwBH?H}KLVHWAUGu5sJh$L<7Ps+G z5=i!15oE8Npzjc|Z4ib4H#0ZTG3W3k`aq6k>^UcMUwZyG%qj6!$k15($8(rS1er2p zHC|A{e#^OGot4LFOsjo9qN#V%T-|JQlxtEI$?YhQy`e|b?#USGpox#^^e)`rE9YijezMjg-5GKL=`u_WJ~Y5ffJLuVWtD0&?bBH+_TY^&gT(O({E}SYl^m6;h8Y=`#$AxNb!EbxWw=lC{n4gP zV6Cj*a~3ECM@jphnroYK+d?-bT^hvmXi`x3p(7wy#SxHz|8Q@oqB=yMa7t zp%a5X2yPo1d=tWLf8*aB*5GqITiDZ&nxnnqAK&vXr@TgaD9hgaq3z& zJHXI-$zfhJF24D=}PQ>0p!K7Omi|_97bxY%fU!V1d!0ZvaKq`H! zj59n!ReG>>7Ipy5kOYa!E*~4)CRwpPnYq8Z5CzWDJGX@h<98IH<4Ll$fvz7yPVJ74 z=z;j|uJX@Nr`*IZA>9YsWu!D&$ZktU$??2~ZH4AwRH30$6~}S6kv_%Vj`4e4b*hh$ z#s1CJ{0uMnj*$X+|7pp$vCE?kmabIIuA7kt=66*DMpyR_&uN`7zSj-A$BVX3qRyIW z3Pfl5i;^T8N0?oUOhcGNP+FTVEY`&H=Bom0H*3}#>y6dKLn@7b##BaEC+fGNjKWYf u!_ufxg?}h97zI-D0{?Fxd{M$bA%p(L|8Iw2l*(6sKR{oK`9iIK)_(z(NE>wk diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index 8c42985edf9ee4e41586be43168fc351ec7cb61b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1668 zcma)-eK^wz0LOpZOd(rdLX78V(w4&rr!Xh;TuENqO69y{^BOaR=mk5>%W%wjX_e%f zH1CtVoq5emy1d-b%XVQqqs3H9-ge#nf6sH@?;qdi`^WcrzW;qZ-5?5B01UtYpO|R; zDIsg$b0`4V><0ie005Ds$V;S{z@Q*fZ0xrdW=G5{%woxx{Yi<@#N(4uUrD} z^BXEXbd!rD^)FsoJ2dbN-X_LU)S2u(O1+AFl9*TV@|uqdK1RuC`vR;iQ1zPASo~UH z&n3axQ{15MXEUZHGF@yoH5E*~%|aN{n36l(@nsXsnMuyo;FG)!^=eZ251%j_$I{Pb zP>UTcZtsm7>>`TcvCMHb7=z&Io;f;{q>EN{Pg~*FtF5eeZaOXEP}Pvjr_(ysaif!P zIAme!dVsC!tnZlV+0Y%~8Nr8f$L61Wk-;pjv`qNnk>}$WZWZMXgOYo_|Kiby6Z-S6 zP;kG0O>#Qo-0_n;+HE|;^Oh>}LBkG2;!B+X{A`$|s+en156g(30zab{cgB{r5g%JR zw%M8@-TjlaGizMetJe9uNZ9jTNjmq1JOM4zH<93P8Dg5vBr-ydE(m0XV>)as+NR4y zT3~blCysz`e^a)vDU$Aqd*Nte+*+Eq`0&v1+LT1V#w6^f*jaJ-M_1m4droiWH;7-g z&O}}5r9*hggsuvc=toMDjZ~rNa~1eDal_sE(HV$L<3exP`~-Mu2c#K5Q|pVS(L~41 zP#~?=t-z;CbE=W3Mu%*dFkR&Dyf?Oe6D|d!k_MvL@)0f9y<-yT>Lq8Vx?zERUJqWp zIS^sc#Y|BY&&Jsc={z68y@U~O^+TYm8a>9v-iTeFD_Y~ZHj5FxiFe~l#zm8B2)qzQ zDMS?(S+RnM3!8K}*`LRc5J3sNQ$|q@vJXADhs~R^X7*aE`JQeXBiRp%amMKGTt8;- zkvyOBx_Q|cRV1P_d#cKFUGFe%5Du4^8wyl7buGf0i|}jw$^Djzm0zd>-pj#B$7j0B zl<#ewzxDa&pJPTZWsx}gfdd9V;XKt{Axkw5U2#!m{zshaQldP}lT1EN%c0shp7oxe!Vhk&k_-l&>A=$B``;=NQf%kfscDE&Ty zwT;Gmp2gVD4&wPFytwj-(8ULo#?9jBYrHjVfBGIilIKUxus|6)w+;B|qjJ~?T8>jV zQ<9TVjh`Fw*nddwyFC(KlkB%anZO4yg4(7ux?Qp*Biw6W7RnoGCo*+nV6Q4ldQGLz z^asB9aehq)FLb389G`K->|)IZ&`+4BYIwKjB(k=u74kT2kE~GCb_T!imv2^m1|Dqx z1!up@Tb|(av9{4nre4ymzbEe(tR5#0obeYTNi@T*Df@;w(n8A88 zC3&2Azt?y5%29U~cnDoXsLx^R;pw|`j~}fcxY}7cv5Nlg%>HJl39CQb375TGj9BeA zjY8{s@7nCahEWyT;c~6h@qnir2#kgNHy6I5;a{bI{)zuj2~Rhu;y(+}SNnWTt$*9! DVJsWX diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index 853f3fc2dc10d15dd803972b4bb33575bcba9f68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1695 zcma)-YdF&j0LK5wmP>@gj!RR`%prGjdSI^PKnn@O$15@8=&HCAJ3%hypTz2Z`vWHV3}T69)hj zWdP6y03Z|_>Wd}$`1xVUWL*P26FmbxG9d(mjUp0A;TRv1Utkags~1crgh}iX2fP3v z5df@cG@S7_<12Rud+RLr6}}7$g110ZGh9@x5mi!6rjL2;vG?me#HK&(OHS-=Ij4!A z^>sLOgd8MNl)z5Z} z`gTR2f=o+J5=}1RsKIH4E5)q?9}z~QL$%QXjw9RhW!U`F8;08!spqN53~K}3F5}Kq zCsl6amaB=x-VAWopYFK6JLaj<`si0dr#RCV&@pACU4g~r&Ql|+!4KA5?i&$Vy%`G_ z=&kd;pIuGxa(AyU!|Z}79e**hH{{K|y>!3Tb#8(Tf7Q@vJm`qIHusO?^TXKc1#O_naj?_@fIZcqG zp(pOZ=lMo0{GOnW78_>#6Z7@S{nH-<^)SL#F_NmwAwftu{AT`*_&;$6CA`YtFtUvs z?`L-49<}Az!^K@Zg=%-Y8@(f3lh*b(Q4{HDdlZ+y1Th4 z9uTpRIwME3V?m={?-Z+-O$|BDpD~X2+Y0}A+cepQaG`fC*U>=oo%G65YIDBWwm$q; z_oFXfpwe;e=j=HuDOz%u);AtCV+iCS9C{`EVCW&@%K|Ad1?q^im^j@YQMg{Jv)}{2 zfYxlspE3Qu(6aWP=apyFPhe0X*Ug4vn`+pgQkrMV>jEWnnR@nAw|wPRgdE^R=qD+JV%^gMyp=|@zY+qLDxYUm z354Yt+pPCSV*^ClfHwa(l?l)A;9&aq(g9~po;Ey12T{8kPMp8i1u})@(v9yPP?wIK zfRG86#1;d@vwG`lG58e^6#Jwi4x>*+~eG_LDNEAW-c&x1?AvXyILflU#bq zCA3vR!CdR!QROwy(BUEe#M{9K-iw}li!@zIEkW_on1`x#;)4qd4_qtEo|h=xE{z=I z4rf`eK|3F2MpELNgB1lkH^rkDS8wn)&VGMNsfH!g;Ex^W>LO}6NIv^c-)! zl&AG(Q3}~J*l@lub&lULZ!g47HRDB1h6i5tJEuJwW`?ah{z{9?K3mRl*yki%A?w@Z zF37S^gWTX2^nt`-#~I;g?Guk)ND8tNYrLwspMJsxi#*=!x*VfTG}Grsxkg(r$vF*2 zLK-09ZRt}vIh}R$>w{}($--}L!m6id!42w13_n1QTwGs#GNDB_I^di9v2-k-5sqSX z<_f0;#gW!qbqPmgeVJoLOahX1KzZvR<}Z8OY6r$zz~n#|cgrFnGu?jKS^1fa2K?9} z$QD*Z?U}ZE36@Uq>u$UjB?ZyS=Gi61yxThG+sn7F0o3G?yR?uU0F4q6MT-5mGJaU& a-z19sga0oOG)f%w&qL%#J$}&e-}N`(xFm%D diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index 0477fe97ec4ffa119abc0193418d3fa07fe5ae2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1688 zcma)-XH?UN0>%GK8DSPk*&-kn%Mw8lkX4xy(g?~57)XGKNgzQDG7<@x0EQu88EMf{ zN@!3_kRSx)AyE4wOBAXJql~g?j9`=zsO|T6&b#-+J@>=?cF*}igXQEs0a-vDh`^_Y zX-L{%%_#tYxjq0`0|04P|?o zfWs=wD*$i+AOnC0jh5uN=a_bXY?$k&#u&h&EqhGz=`e#cRxPSLC-zETWBU_ zLLTf1Kbo=-yG$EuyBE6tDYz<$sS>t7-$8^fa161y3QtcNv7^M$PrHTLVIlkmQ9u3Y z$54aJ@{N{Jp_9j>36ohOfzp^(q2dymmXumg?Ao<~4)H`5*8&>)Qs7giH=?5Uwc|6g zEZM~Y+UYF;_Q+)8!!6qpbU^KdS_INFC z)3m|r?x0DtKNA$^n?J_tc(|1l_#i*MM!LV34=#M94RaM0dqoY}`Yb z{l6iBbJ#C*h{t6!r?w0jQx45e+6kLMzSm z+vhX%AeL<|3@G(4sY2!5z(YEF8U%}1y6JU{n)(pR1+tESm2-Ws_%D(=E7M0hJLm8e z<`ZvJrDR%3)o5??=JRd*hWVvaVXTm2b3XU?i3Bn!Cx-J7GGUg!RNKI**XItVKJe9C z&i{5;bDJCYGH_?GU+yT?8ux}UrRu$jF?HCE`DFX0ziXB?=|o{sNq}Qh_a>GcY0oLH z8*%pgb&k=(+03axu5t68M_(+$fTEqN7wgbj>-h76hNK!x3(P6O>k%;Wa!>SEH|yzF z3$IfPo*!EkJa!3G_l|KdH0(GY9)0E)r;p0L6s$n3U$wuIEi8-K+PB)}OzBWC0qFN{ zcfXx7)ja}2dFVInjmX6FFOKSeDy zQP|zt<8BxuPyB;hZ`;zjJHP84tWnCUX?*WqHRJ!THF%#1#cr7*M@!Vhu_j4MLR`zyPtT)h{?#-)HmZ zZX&yM-yAilotrCPa+@NLbQ8@7AI@nV{!MB(0J?`SP$0B|1DT4+{j9tw>-?l(dKfum z=ng86v}@qi+T%0O=Q~Yfr0;(aL}D2WdF^nDs2U8(JcW)TPg=#r-)2`SWxTiRugSj@ zu7^E$KmuFl6^)jC$3L$FFY6iIOoB9?=QkAGFZMj{UwbZA_C?!|F)#A3(8h71*nn&z zOu+6SxPzW<3_XQV|8sX9*9R{s}xmm3advAKpC?A>fIg`a)_^l8UkD`#49w-_<%peZIhswf?kq}d7T zGVhoCVFFn@h~Nqz%q}} W|35jP!3v81EMz`A;&WR6+x`aVof`lE diff --git a/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/memberaccess-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index c49b8ffbaddb43eaa6feb909ada4f6402c0f9a89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1658 zcma)-X*k;n0>=ODBT`2(b=HnZl|@YI=%hq3bwo?6DvZ>Kr0#@hOo$chXtGVwsurbg zGogqpjy9TXM~k#6Vk=CGICjOY>Z&@nGvD`l_I*G6p7+E1`R9j{lScxwz%c+#ioYt1 z6d-yP0HE*$09XJ35QmS$;z?oQ;rPTvE12~eYnXK+F*X!Wi6@e7hK7;CBcqb=*3pSX zf{MHXfB}GX0B~Y3BH;V*gi6ud4g|RLB_Ya;XPljLMc?@p8}!VsW#Kn!Z6{i8>LWNa z{S7Yw8Z&oY$`EoYe3y4oMG-93tB14Q6u-Gv0|K!CiIn*W-!{0Q#b$Lw-n)lYPc~Qi z>QnEpu!r8;IW>n2Eb7!NG@G*yL2R zmRwJ*n`}=QF4D+^{TZDDfWHHyaY%3PC^Eg30GY8{mvVrX;kZquD9gmKUd^*TE=34H zh2v(_|Ki;u%>1}`A;1~ZCFEwztC(Lz^=hJ;xIf>mc?}->ATZ%I`zWow`xRLfXI&bf;az_5;|is%1MB;Cj>{W9ijzC-OiSJ6JNDD?({N=%q2k6Y8PnP;R#n{||WqSm5HYVXaG~kJzE(&OqMCx7~<$StlV=S|5W$a+nuj!rD6Kl=QL{{PX)U z`dN=w3rAeu%p8?ED6F`&_9#U1v>fDG{@sQmzrS^)Txfv>HwgV9CzU^`^VKe8BgFMC zg(qk1&7srz4mZV{UiYjnR!l$66zsTY;L2ezB^)i4P?j~=NF-;KzauA8uU17$zo8!* z_0QBKPcmj`YQ<}qszLwFH%4-)$`}uu=OssqtLsM0gJm~8#(p#QZo9GW=ad1!kDNJ7 zs{`rhDbuiVZnt#a^G@$A{BXo)T>p%g7(I1mK( zR2Q!X-SpTV#yqKTXS*~g8C(CenWGY>i7%*R`4|Oyubf-MwSB&(Y*L^yG;Vjx+|n%D zrl-ad`i{ zKx?|Mgov6#?Ct53+UQI79z^6t@>%{Zt}fQ4X0NAqVR^*pFBvb=ASnmQ6lLi>q6XPQ zcbzSkJ`4#@JvGsu-lWg?&|zEO@VL3;m3J*T7Px>S+wKL~$hcS_OHg{p#xp)u{#5Gl zVHZ@NmbUdhNDv2KtK1o(`t!7BkX4oAM5mRXRmW8W#Mm+J5`W(NlGgcIGdV&uiFbkm zR|;rskMa?R(qa)a+Kcn4U8%;&g-spJsII?e56`N|4i~F_%*ho=U{wT3)@q{dGkD<} zgBHf`uQYN@y&CUO!mBe%(k#~`<4J+gJ#O$eCb|!!?AQPX6nlCE`Z6^Kx7vr?ok*Q2 z_R^!1ItaLa-eagMmg-*~E>|aD40mEjXUumVmJEIX0c;$W`Z3 zmnF~RR1)F*-c|RqvE}tJP@dG6Z|1duyLRLH7K8-}Gpu zg0CT>7ZJH#ZOm0)gJ0_F3=tMIYen?G3C!uGlr!yBZ4GzLf>trctm_i(A{|XzJ;VF3 r!>z@^UO$wKEK=@&+u*AZ{!F^eANc>>;D=IB{No|>wdk)@`*ZylZLtnm diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 2b6481a4038f48908be8dc9339f1a46e1144e83c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1102 zcmWIWW@fQxU}E57h$t=yiSK>fw}hF2;RZJYg9-x!LvChXZeoS5fu4z;fnITbPJC)b zL4Hw5d}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=d%UwNLM8fj z_1qI`adUDs5AkZgw>-G#&QYy$o5sA!%j7F>h-`5xI{Mt)d)gQ8eVzdq)!rW1&F<0p zv2@S$*9Y3CD#dXmb6h@T`00`CeCta0ep#=MU*COhT7K1I=KjX^V!L#|lGn=*1r>@oCdN4Wmb1?MG_3BzZsH`gium&T|==udSBPsZKupK&$7~ublANN)>|FUUw-> zUnJ2kwBuihrulW2G-iANgchS2{T1E)K~C(nrH+|fBx09I^~3*=M~ow6_&hkaAKhoD6`C_pnZ_4_4|K8o``Re&vA|RuF$R>r4E*ZRraZ_FdLx>X>@&M)OU(>a8!fuQa!)WMvTk z*Ze`d@n`@o zG=3EQ^z_loRnGS+tUVrvJD*c?>deu3aP5ILn_2JKM9V2x*jENu{Yczmx}wUhFDG|( zgM8+7b=yMLwBMW&(=CPTq_^|#a!`8b^;FULc~0}4EkEw8j5wc{!zGt8^|Q#IDCfP- zldeW@DSy*!%jIvexH({t2G>`%&01G2>*h(^uuD6|Cpztc)jbul#CI(33(tjXp4C5f z@mkKazQuVR`z?Ks)?VtgQCmE(!-Hw{Q3sb}a|(ps`c(g3!DX#r|HXEu!^LHi3!i&N z{!@;Koz8jq?i#aLEvv|{M}*mCZ>jCKOXw>(HqByV^s2{)e>EdKy>q<_r>#D#W4m*Ws#u`K)(KZUZ>xtUH)lK4$Gq&>n8Vg=;(oCBiM+>|6Lqou zaxB{$&b^Af{BM=_LjP6VyM0e8PdBr7y&${h!@1^D<(z`+>SAPsT8}e%uAN>ha!z6@ y&w-Tv|LazsWeD(QWU^<*ozH<;9Sj;6K@>5$KERum4WyP42!nw1GhnH~zyJVXHuQb~ diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 0ad8744fe0e543dd49fa66ebad8d0c06be97fc41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1100 zcmWIWW@fQxU}E57h$t=y(O)p>$0BA1h8x@r3@Qu^47r(kxrr6J26`rX271N$Iq|6# z1^GoK@rgyr8JT6NdRfK!d7Lb)46zIh4Gavn9UbY$e~b$kUOKnUns?68yiC>oa;?2V zQg-U=xp$jxe0jKf>GlZb`yY9m8_w(xRm*-7_oCzM)&>4=et6GFU%?gf@A1yA2$ks9 z)pJj%#m&jlJjAQ{-typ{J4dz3Z5s0?FO#plA+p7(=;-O{BYzd7JD#QN66#X*H#?+0 z<9O=wJ_cRsxJ~MYN-uqt*$plhFL>jtIrYkitG`^{%(qTk(HJmgLFld{0%x^(zO1W# zWFxdztV(eO)6R#dLq8thmgslSq3S2c4Pyz<#ZwpkdeVJ!=j>}++|GGao^bjXm$Uxs zw>?L~AGruiP7zF8*7N0kLrn7ZaMp8rzP|03wwPx&U#;Xm$bCYz`DKCo@>6p!zrX$@ z?)|mur6HHEg~9fEU*~NuFh63qIi+zHyL0jG@@e4- zjQLFqS3gxKIhpg_df%_3fzKue-ClCX+NgZ`>+DIN=a@#WahkLHT&~W9Fqbc`->S|X zZj*DKu2rh4QQgyi@t3OmA-VPPOgqw;rxtZIt>6oC{B~#k4@-9z=3mQH&6?wGFrIht zm~$ybqHXuorwPIcX?VsDJ#nZiJOCTjcx^0Tk@Oij8te?i2e7h*NFm!`7*DplF9 z$kypm&1@q)>4l+w(f!84#k%|+M;a6Nu>Y00FBZ zmL_i@V=O=Kj)jh9r(C5U&;2Xit^cN9**cHyo5N?BcP}oSp0Z26tF+QW%dPf!=96Uo zx#3qY2{a!FxOi^gjlw&oOi?*=l(t-&F7sY6gDdYUU+%K5JpCs=%WWDBx4->%E6!|I wRM`J-igzyscr!BDGvm(Xz>E$C4U8a)m^>fg&B_K+%Ls%)K>7)=%wS*u0KeqycmMzZ diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.10-compact.zip deleted file mode 100644 index c300db8375c2581ebc2ec4dc0f3c632b686a0120..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1166 zcmWIWW@fQxU}E57h%7D$Im+~D-xFpAhGHHD1{DSdhTP1&+{6l913eQx1HIz>ocPp= zg8ZVA_{5^*jLfoBy{zK=JWdu?hFAuM1_lP(j*fKWKgNX%FP+jM8bKfGt8uiy&#_jqSlgi7@5 z>bWP>;^yRN9^%z}Z+URfougXiHjR0cm&sS&5ZU5Xbo6xfVMd+;Ww!mH%3s-^cm8`( zSo&qwJLW)k$KTZxpItd6GRxUmwsSXA(dlQ?cKWdVYLK>*n*P#Y&x0$>@4~kAJm#o0 z{U+#kPF(BqlHFfl=rAX-yeg4riCG*!>4V8}rD*1rM`yIGeZBmNNtod5nT6U(TW57l zxWcd^YQKcieq~qb?o$kRf0c9Hbt~l5+~Q{~{01iuiz-LYSnyPR`zhsy%~$pb+zel+vwqLYF3#YC>YF~gA0*--{Q%j0)k3I=;j}?&3Eo_Dd(%-8u6}kFO6te{)ipf7 z{MAh^c9Q@7q{=Ze9Ho{s$}rk7oS)D1J}sXZ1nXAKO;Fn7m2O@4HBg>Qcu~ z$&cTE$xzSJR}`7acWtVQ;O666M?&v)T>jTpE}h-WZ*=iyW4YO@i`|hht}Ual8)Byn4WHXLVsS`-?T4xi(zWIvLG>->lf- z(>o>P>Fx9%%T614c1){Us5t-Z?h2TU#QE-_3Xs{PWn_-U;H0F%ObwS#GJxUi|)7rHjng*Ass| zz8##X(0g{u{EA!Kj=#v^Tb&!stF-&Q{h}8q8e_P2Y0Ublt+DhY`+`kV7%NuR7a!;9 zjxu>xCwcq)5#J2gjO_M>KlUord3JjIX|{j%hK4EpZ|q^d|^4Yv)A;?_r&M6lmG9yC3Z8wn~}+$8Fx7WEGodDfe}OzQ)&cw Rv$BEIG6G=`kXB;>@c{2zBx3*o diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.11-compact.zip b/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.11-compact.zip deleted file mode 100644 index f938f957da493ce61189e4e599dfc94350e1eb7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1205 zcmWIWW@fQxU}E57h%7D$NfDmCkDG;op_`Y1L4|>VAvZHGH?cz3K+iJO=I5VW%89bM7B5;9X(xrm{o)Ev-J(rS=+AJc)a%C zu$c3iw;W#a#NQ=gH+PvJ(Xj@NSc z7BLzsEcXtxk=)`E6?VVsr#pKVU*$ThFUHlzIstZ*J#L6tEqKmS_UQcg!#7(G&bgFZ z<}}?zYG(Ck&FlTM);w1W{>fS*^H%rO_3|#>nOwRL>Py z_Cd&Kmhb+HT041K^WUC2J-5%bolDI#=&X@!+>@#riwUc1<~qz~bXmt;eBB^aQhwh= zuKb&f5qtMWvUg}$H(u_^v44B^aNf1|*f#ae=Nc9Bqs6Y0Wg+s1!Y$+Nh5kxE z-StXJ*LK;VE!*bmy`HT-cd4V%6@|x3=4&63lYL|HW_{5zA^F2RLWzRQzbDIXa<2@J zyT-pRIJY-9>r$O*%+m+@t9Gq$pZ$AL)tfhuRdPq z-YeZWbY}WG)+-77b&sxGR`zn0+nRGLEhCb+ZPXVo>uy`zxVd8E)%SN5W2D5`&Uq$! zis%|%__osBYDNm@rM|%DuenxK3U$vu`ywFE@Ob>�mQ@Km5^k(CUB(hsn1pZs&_F zg?$p@&lV^oaLZmcF%$jS&N=^+93YTz<=^EAD-}>zc`<(w>#ny`V`YGsR2BI7+3> zDlYDr{pTYpjZaEhbG~iezUKb5#ma|ULitR51&+oqIPL4mKBY9yZcn{ z#B5*6QYF0n_|w)Y2cN(G@O3_Y3K%pnf+%7NmjG{8Hjr9IAPfT1zQDqXfdK$n CwHN{b diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.12-compact.zip index 54d9990d85c63c78fb19f1ebe5220e51f6ad0cfe..00e016edd63b37f73153e18ef1f51840f22620db 100644 GIT binary patch delta 1302 zcmV+x1?l?C3XcmLP)h>@KL7#%4gl=6WLA=3L1yIy000&c001PD4+STYLL`45*K@rV zG4V$ag{75VSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!Kc31EQ{KbVrSp7S3Z%Z)oW z>1Y($`MnK#GUesLgp&kj;HvuV7g*#SOd=SBYHooc+81|?NxKOv@vC7~s7c<(5inYP zR4;-A0Xeg}uS8m@{cI?#C~AKPQTQ;+5GrQrk%mlbF$j@n z#{n)>cEvFv!9BSmg%Ci?nSiyOWT4*oXwJSGCUbR*+WThGCMN)*xyGrP)Yw(k=#+-8Hz4IK8u#-7}aipvT)Vzb>C<%%g>~ zqz~Vc$JjzIxn6m(d}H5?^D118IIsoOfroU89H1@0TyKzAVVyMRM%i}a^vE&#v&0eP zop8{=pTz)`edtSX-Wh*9fP+^AHOSpIlh0^MCI*qJsa7{Z2>+cGFfq}}4QE7Z{n=$9 zMs50_{_y7^zkq-W_?;deKip=j(N*cmaXIXSqXDq!^6F+P8r|ch8MEeSLP-6c{j^JMi)aGm)AD~yK;&deiX zSVVU71w=(X<53Uvp}25Ki=(vA|ghZO=xgXA%7Ug%^pmfl9R2}bfP`uaRm{+4D8ea zC)XxoBr`ymUOpglr2J{9cEGz$ew}a4sKc+{Kh&OzG7k|MyJBQ)C-#&XornTAppzMx zt2k>{wy1wuPm_;;U352`8xicd3(UVA4dtcY@iXDUJt19Yfra3lfj)G8#L4MnR>?fX zLm*B2#PR&bIN0vRWY1oOX@6Sbzp%5)OYmdjRsL5y=qUaPr{Xeq8NPOw{%zF&(EG@k z|EPu@k_at6TB;5oQZ+4zD!737DCN9k`5i=#mFIugDGE)-WckB|9f*W&$Z9BS5JC4v z`lH@L{^NTAo@W=o+MS>EZW|R~Mxe^W>tS-Niex9&|5(0Mjsr$xmfK7?LGoSndiOi$ z%pa-<(Bx5!d|p+iMfn5pIlO;=kr9z9pJ#uQx(Q*IOTu|~R$WFbfVt{%hu5Seq&>`N zKj~u~c)y30v&sy>Mg0^)s9y!-{mj~l7bRYiJ1fc~&t}BNBAu@HI}s?HH)Tq&Eok5s zE6SEwQWPrTwXwl0o#!92-o&oz|G@zxxll_10zU&k00ICG0PMA7R+3;rX5|C`02Y(| M1W5)b1poj50L-6o&Hw-a delta 1227 zcmV;+1T_1P3(N`^P)h>@KL7#%4ggtma8&E9_RXRM000G%7f*jDuM4|1vFXEmrMFlE z-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2%xr$gMTkCtB$R=K#Y$?JGDepPKyxheq zcRYb^lcpbe*c7xva>dJg!wD7Jr9HDWs-3k|FUM`|iJ&txE%(^x8hUxsD+_;B`+Sv$ zSjSJr<06>x*#dtVQz0*C`EJFj)PvsmSAi@gyErm50cK%{)}urPywEnxF8;>7~FtBN5B&#AgsX59YrcO`RdbwSuI!33f!L_(UpMEE zMs{rphf5B#wgD@c^AKz2sKr1{X_~plmmNzwYTXMkxjrT4Q%PA1zXHWsAFPQFTDTFk zrIN`2xkWT(KG^zwI9j~1W*c6zwGxPW^9w&xlM4`hcg*j@NVF7(+h*sbzKf)vatl_x zXF%e#@qK>}CyM}!!SD2K0E*&eon=4&w3gb@0(`Q_iA?JIC1g*iNozTv_b|3f^-(Qh zS2~v_q-82J|2B}Tz^yL;LZ&A)TwEYfc*JK*9q;)q^x#pIIr)FH2`zMK=*W=4HHC=& zdEsr+HZ!^~WK?4X@`uluh-z`VSUFz65jj+sHLZW%HhfAXH83M(H9A6535BwNd&qv& z7aeNMT0&we7f3jW|NT{$8BSpbK~o!7Q@Zeg>>AF^bcCK*4Ba-h`Pj`343YVeRY|$P zN}KJ)k?Rf321zuC4oi2Wp~Co#Xa5%p+(FJlnF562^0#Oyfg~63NDF8mC+n-8MF2 zPi)qKf^D=~07Ry`ie67>B3dEMe4MM3&94~yON%rh;%C3&pkp!(>KEVnW4bl(?$Ob4 z8{>iaUX&#VT1DZ^%G^Hnw{*>e$p<`Q>Ix|}9i2+sJDnZFa%u^}q zG3osz2d%irp-@+7i#6b~s~_sfT7VedqW?vgCc8ofp;8~=*Bdh0gYn1!+aP1sF&g-M z{-ubq?=Wt((s*hT<-_9o_oMKamIL1EWLxPH(n!^y{6Om z&xa0Q(SK{c|GEF?AZ2kB8c)_Y7A1cM4g4(q{_cS!G$t0*r^4qgzQKK|Fs1rcuolKk zsf#~`ZAE?*z6Mz6Hc8T|xwqMVAvZHGH?cz3K+iJO=I5VW%89bM7B5;9X(xra^VN*j%O*mgt}Dy%?_#0 zIG(z^k3m;DZj-v9(o0`uc7uz>3*Pu@PQCKs>Mxf!^R3fXGzLsr5W4G#z*%jcFY9U_ z*$Ax_t5RISwDaNV(2vKrCHmcSsQSrq!&t&I+V{?z^7=g~d`b4c{#x7IUwe3#E6RE( zTk*HdV>=VIWPwFrMGEV)c_~j+BDO8IE|Iq6*8gB`;mg0Y{mIr}J6AI=>opQ_{5IFc zSbmmC`B%==Wnzkq#{;^y-B`7CnbImdX#qvCuMttNGNWwwUboXI{`*>E@}yN?{e`^~ z-Y-7!W5>#-%`8$<=HU}8raSYsGkI;8mg@Jo@2-U8vVHG`i$Y?nUS(!>9EnPAN}ue* zEv?!gY5uJ^=BH=Wvb!Hocp7D1=FxH7qj#7|=5JVo#Z|e&=Kf!yY&BapHL>kA^7oA| zm}vgJd}@hA*~;8YteStP+>PAJFmnoh-f^Vy}MZ;an_MZLXf?tXHQ zigj{VLLBpb_t$5wb`^b!I@?jE_j|gswrc1O?$wETmi1dp%P?z~NNoA{kPa zHpMsp;KyTE95(J&3ElK4{JG+{!v_WZuNoF-F7FEH5pc};>n|~_%jQsCzEG7}v!q;8 zaHj98?!5kpi}&}KyprRSH&{5$dY-noxrVp0&y9_nYf@HdaDR|Dm=ogBo4qsKXiHqt z#NOvlb)sjNpKvP+nNcD6>UvyxYu?cwj{g_0bVMxKRae|=CI0{I1(%#Tg~Ccj$CtP< zP2KGtHvhxhw+>A;3(`1)_G~)Kef4J7#JgXs9>nc9zt?l3$zOrLrYk)*q@Akcwt4>T z`A+ePy06b|{V4b-#PwM~_xF+tmiT z_S(pN@AbwjLvNbDZ;dca*z&idJmKN|*0x!-vnoBUU;7Jx?ElqOsPfZg?xF`<^-kuW y`w+D#_&?XBpP)!wqf*1{DSdhTP1&+{6l913eQx1HIz>ocPp= zg8ZVA_{5^*jLfoBy{zK=JWdu?hFAuM1_lP(j*fKWKgNX%FP+jM8bKfGt8uiy&#_jqSlgi7@5 z>bWP>;^yRN9^%z}Z+URfougXiHjR0cm&sS&5ZU5Xbo6xfIkyAS9nVsB33aLZn;lZ0 zaXfW-AA_!R+$MEHrI)_S>;@N$7rgP+oOeC!YF%^twcvvy+ua{-$%Hhl3^ZMMM^Zv_ z*O@))A9@le`G*Jwa9G6|Jt+&ce*N}oqmOR;i5M~1ucpMR&Z~NMAvE#NyLi0`ugkVi`?~6j zd9Gpbs&AtI!|zDFTY0|2Bi^-f=Vbj$Ul*7g-BUL3vk;oPJ1Ss}*;nKJOuZd}S44Oj z)Y2_j`S(amL5|q^fU;4hGk}goU_&KH4x(xogw1(}8{cf6rWDzV&u8v+un6RgSL} z7-IT2?6`b+*IMV-k-i_b|Li-^ayqm)+@)N6`pgiKEgCFtlqQ(pPZzIeLuO8$x8R+%#o{$?(}ZL!Qx$v?TpanTy%=-8N7+@-fKCjFSv zt)#qU{{Pi^wQCzDZt}7CypHSr=Pbvv6IoT>PuRAudGP0Z`AY%kO5qx{)pMH5%Vhdw zH||)dVcyl>v`Si_?d(UhXV;TA|Gcg45n1Ws?`@>n+K%g@jgFXGd*aylG#BlYU=f zP|lsw1Ac82^Zx&ju3yX$;LXTn&x|{(19LkVG%$iFVlsY!H!B-REh7*H0qK{(f`fqp E07BXN@Bjb+ diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index 7b96d8d8e5327596ee922cc2d0fc3984a3552483..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1103 zcmWIWW@fQxU}E57h$t=yvH!Qub15?e!wqf*1{DSdhTP1&+{6l913eQx1HIz>ocPp= zg8ZVA_{5^*jLfoBy{zK=JWdu?hFAuM1_lP(j*fKWKgNX%FP+jM8bKfGt8uiy&#_jqSlgi7@5 z>bWP>;^yRN9^%z}Z+URfougXiHjR0cm&sS&5ZU5Xbo6xfWii>XqMc?dx9@1=yJX1N z7u>$wUsiONk`lR9_= zc0RN7vi&LMSmBr;9v6T5OxA4Hz7_v(JUZw9Wz$rDaSI_W?{gdT>z$wJZ%wyt{u#Bg z$@QOAtXkXQJr5P9t*%>JeZ-mP^0)T}vZ1T;o1T9PdcA40%i(n*8X1g7oI_UHKVnKx zKK(H(wtvPskyD6(gRV}NYcXylhJ(Vwe5>Rt`&CQk~eQ(D%rAlG!Ic=s}JJS4vPVTs;_;}R^ zyDT$%#cw;sB07&xS+OQvCHO+M{ewV*-G`?bru(m-dDUqDoIPbrIv#wvR@$U}r?}-+ zcckwU@MB?hTk14x(6n?bw&U3)dG+9hUL9Iv$FDg*-N7& z7yX5vcNLo+7+VWf{mWFG=BK|gfz3M4Z0=skc~TZ{-WPCY?~(u7Y-P=`?wR+V_)l6s z%kLeIIz82H@y#_-E_#;29m}52?q0upO@zXkC0{Shw1|1DdR;eZX^x2C|~@n!QvJifd+kdzb4ieuJ*F?)sJre?c4tD4@}Uzvv+COr8z4S%4_?N?YcPO{p!0l%bwNO zC1wAJ>okAy@AvkS0B=SnduH4j9hld_pn(xY5tHo$yjj^mY8inr2uME%78?u<0F-?9 AM*si- diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index a86c9c001fdefa6b9e702ef874f114da796cc0dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1101 zcmWIWW@fQxU}E57h$t=y;W;=>Z80+g!zFG81{DSdhTP1&+{6l913eQx1HIz>ocPp= zg8ZVA_{5^*jLfoBy{zK=JWdu?hFAuM1_lP(j*fKWKgNX%FP+jM8bKfGt8uiy&#_jqSlgi7@5 z>bWP>;^yRN9^%z}Z+URfougXiHjR0cm&sS&5ZU5Xbo6xf_1l`<2J);5UK_sj82Hw& z`8>C?bDznEciu`&(|u>KoIPoI%;oI*Amz^$7jhlfaU4rpam@1E^iP+oi+rZ|%JY4G z8vV3n&wKxLh9x(frmMNeo~u5|+Z*~?^%9@Q<-LL3S7*mKMD|sE*qW2s zJX<*A{*3iAR_U(T#j0=dCgy4BBU8Oq^VsvWtiK*lSz2A0>c3jC@^nOn4fDC;6+x+S zT>PbH%l`g~-MsTcJm=R(jNCuw=R2Jbxh9q=)Vu5KzbT#ui))fo{j^y!M=jL0*?}=G!h>>f-0l+bZ9(yZorAu{A59a+2ALXY%t8 zS;nt&n=CYuk6*s`>Wu&Cm#tSl{xFSQF06OG%dOWQKX-^S8YKJOt=V)gUG!)0$&UB3 zkG@P7xzBamXA zzU?0jcZTc_{kSpw)V{DwqCX=7Y{DMSOMmOrnv$>FYOweF`6)p+u812HCHZE_G2W?sPhz-1YL?wT&s?oK zk7u|Ut@=sq8o5rXeOkOkTJPwE(+xbK4`Mlg&Ru;+B7jSyP&({J&xGXVOPa+u86W>Dq|NRa zE2+2ZXJr1q)!`*p)d`#nXSVrVw3_oOAVPGegrAXvMHe@(oKXIuY7(DZ yg3a~EUw$u`#UJ3!$YjrqJDUS@Iv6xCf+%7#eSkMB8%Ql95C#G1r@%skfdK#l+VIf; diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index 7c0946a74be592478807ebf2ebf48870c0c80be4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1103 zcmWIWW@fQxU}E57h$t=yDO)Wnxs;iK;Sx6kg9-x!LvChXZeoS5fu4z;fnITbPJC)b zL4Hw5d}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=d%UwNLM8fj z_1qI`adUDs5AkZgw>-G#&QYy$o5sA!%j7F>h-`5xI(oYLPF73&<2P*8ayfsT=6JvA zJvKd=uUsw9!q8-rZF7#hQ~k{cCr@7c_-9_$qB+jN4F|(Stpm@5Ulfo z`B)wIfxS$-lq14ktxLSk5wdEreUM-s|HOA!W<*Yu$T+wqXxY>Sx0FS9eM_mH@Ht`U zwcF}xmNGv)-UxE`I9o6N6#lHccGIEB2Om zx}u4c(%ja~I&=42zMk|vV4td%L4Cf~KbaZ9pYwYTm>##9ut@00vNLObKEHZCZ|jZg zrv49S9`y+kvhg_7>2XB+D&s_R<9}~?QaV#AxRshu`2GC3Y2&pJ53RUrzGWYu-??s> z!}D-?2fK99{*6TktXCfUcIw^icy)$_cct(B?wa`E+~1fJdIHR+So&VFH>Z4CZuiQ5 zduHS2Q(SHi>(UoJ`hVhE-NqY&-v1r6vZSRvr7D6KnVq=A@n}LPuQbO3`zF!<33gNR zkDM&p^x|okyW~FyF?;z)o~ZZFV>C|Bk$bShK%QqAd&&-J=Rf)m`!n?49~Vpi#AWmI zMgIlO_%BXOp?>&&b{jr;O8;<6XASf4uUgVXH)j!Lf^KUd~!P?<`&? zXOzV>sByZm%lel77LqKJdUn{%$mb{Lvf?A!IyF3DTlUOinXUFmE%Ap{SjDF(*0Sra z`U@hmqZJEMvX5$NE^1yPb!bQVvB4DRTn{v&i=w z=G{4a`>SQH`u2{;fAuHDw0BLfInT68U2pkIze8c^mXE_THu-BB`}KtKUth-jG2!IY yb!PeJ{)<)HGX!`uGTAfZ&gj6r4h9X3Ac~l5AK=Z(22#righ4?1Ik4DZU;qG3gy+2g diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index eaf69ae41ec7bf004722e79ee90805c0b724a5e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1184 zcmWIWW@fQxU}E57h$t=yd4DO!_Zu?ocPp= zg8ZVA_{5^*jLfoBy{zK=JWdu?hFAuM1_lP(j*fKWKgNX%FP+jM8bKfGt8uiy&#_jqSlgi7@5 z>bWP>;^yRN9^%z}Z+URfougXiHjR0cm&sS&5ZU5Xbo6xfgI7B7kKeFW%jNuWn&bVd z_t^AgzH+rZ3qzAhw#_;2PW3k*oIH8$~7HyG&lXhbd3emL(CXPsPrL$J;V z=3{l-2lg`UQjQ3FwJz~CN64zh_CbPm{1e|@`QB*toUgIgyj6S3@(nZm>myr2UP*-L zG*9`SKlitL+q&knYKvbOu}v*DT_3up$ma=DiJ{QGZ(g_j><(^{U8L+2S>~aj^fz;Vf#;pO_wKV9^hvDXQh9a!Q%Z6*;Ka^jg|HCjWXf}zG@~X z^LOc|HgDT;eD_nv>n*R^bAJ8Z)D-%EnI7}2zP0<;opj;6t)^M;vitBGPm`PS(~j5u zttz>+Mso^X1++dr7;kd{*+gVkve7saw02GM=6z#!t!KWQyL*j7)SW9a%d--%uWflKqO5lM#^ElN$J@6zi+kC}uc>(Q;#U5{ z|Eb|3;zus8Ik=CczExQ-{P<~A^Er7- zD=n+oJ;tr<&%ZBvWjFENc3!D93A0>cW`_Hm44G7An|$+9_NB?!-CWW*mn=APd;SiU zET^}#KUB#yFaM^IyZ8yqnx#hNo^sO`wP_wddU>h6zOw4<=T1zuYH5>>^hcQd`a36a z#_@aqQva@+viR1WmgPbMS?$x7)|`8h@7uFiT6UFiD$9Ys`%>Z>qWdpYik`{ew>Kky z$J^N3v4L3^+!qE^PM*I+Q9a@FFL&{D?To1p?;5-5>)v0zR%CW$qf=Y-NeR=5MYrUq zr9PLFQ+o6)USxwZ|Gno&nyXfD`WTa(g9-x!LvChXZeoS5fu4z;fnITbPJC)b zL4Hw5d}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=d%UwNLM8fj z_1qI`adUDs5AkZgw>-G#&QYy$o5sA!%j7F>h-`5xI(oYLX`N!Wfjp~%*M=`W2EO%c zKF{s!+-I`kowpLxbl({)XHQxlb2+;{NcnTcg@BA+R~@_e74 zMn5gt^WHz5Vad(rIKDknCI{bf>dahMmKq%R?%bq%;qQuTpJyKoD`u5`@G;)z-mmXB zS5B5VF1BSxbfn{(d5J5tw_S*QlhPS3zT|9WFam><+I*uHaWA){TpWnw1(qVtc6wwX-HWaNCNrBY(gBdlH>u!q0m@62%hi;uUl z>v`y_NA0+=_>*jy#*>tax3|T=vRbZnQ&X40;_%4ObIrVcK8Y)$s_WLQPzrHd zl~Gq)Iz6SLKeIrFbC?K|JRpZLgGicK`|Xpz{7wf`IcZNI|t@qtH;Cg-f}%XiK` zb!DqoWbuqSuMb2zDEDD{C;=pk8+ zRC`H~ zLt~O0k5Wz4oQvF(a@MZM`E405)$1A}AbR4_nZS2y_3b|L*(Pq2D!;#}w*H%yxtLA) z-?Z52!tBk9TJJqntBXC`9g!V>sqCg`gIBd#*^(PN;tXp&-0T%%9_!2v^_V_yS#g2Z z@*V3AWHqN3aDE6?VcS^J8TD_?uXRrKPRH2YLe|=g>$U%z-H~)%mTB4NyUk{-wRvH( zU(|TzHIFZuuq2js3G+FFbJ{;WE}rg^>nY_iY}_8zDe6@8>hhX;cgE!A*hO1f)}LQd z$E7_#pYg-K-JfP@nTT_9-~0Nf^3dO^6Hm_89^ov{bviq9iJFwpffX{vt{q7$zJL5G zd)LtTZ%{?S#nR5qPcl9Kv#L+VnRh#w*Y`>@t~=5i7Zdc1b5~k>?b8V+%=3bjHZT2@ zeo&%1C)0Fo{a16vJLxamPq}d1Q(5shXgPDVMeOu{Z&u${*z)&#_1^$*Mkae^+yw`) d>;QuXMi50zF%sa-$_7%)2!ugE+MET%0|1mw6oLQ% diff --git a/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/minmax-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index 33483a67953e99720c19f5dbee02fbbc5226f4d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1163 zcmWIWW@fQxU}E57h%7D$nREWD;X`Hyh9VvY1{DSdhTP1&+{6l913eQx1HIz>ocPp= zg8ZVA_{5^*jLfoBy{zK=JWdu?hFAuM1_lP(j*fKWKgNX%FP+jM8bKfGt8uiy&#_jqSlgi7@5 z>bWP>;^yRN9^%z}Z+URfougXiHjR0cm&sS&5ZU5Xbo6xfE5)PP2J);5UK_sj82Hw& z`8>C?bDznEciu`&(|u>KoIPoI%;oI*Amz^$7jhlfaU4rpam@1E^iP+oi+rZ|%JY4G z8vV3n&wKxLh9x(f{5X@BeMfC;Tkz?dcO8FK_dabmy0ghV z&3sAvdXGl7%OzrGR-3kcoIXRjb(bYW#Cz5w9TPU4U`U-U+C5?Eamk0)64fU-1Gjiy zSn!x@x5kM*hFikeybAS$V>ka@m&*Hzxyo$Tk`L+2y`yZH-M=++G^!qyHGgp9U7v!L z>56}jClhvOi=WwEamp#eQhUM4>0Nz4*tmLJ*PUdF^m@88*+TA9ioqi5yE@KaL%$Sg z*rf?>C}KKrt8lh++#4RZo_S|_*C>U&%$g;8)8S3n-2Zv!GFy!! z&fK=6@vg~>?LVGnTec-OKKzY=V03CZzrlh84c7DQ;+J`JmORlun)1tFm1o?HZ=%dE zgs!t%J$C)!wpQP$YNC|ess6Q#xSz){UCC=rsS4fmaf8qij=*){*I!hBX}fT6*{x+C z-Aj9}^Hj}O(TMo?{q2n{rmf#r35b0B{5mP~qTvZSPbaI`2|jl6KW|T|(eaQ}T=t;y z-e%6&!>cm3oqG^*qLx>r!|3$cx_GtsbN8rq9A2@I(a%7(*eq*3$AkAF3pTGf$o}Te zS*;wm_~ssWwp!k|er`?;KNU87RrCAZBlh-c?3-WfE-$ULI{YK5W9P}4M$7h&vT&ITce3h4Gq!QW=r&OcVN}n}UZ`K6+-Lst)yl(nr&Yf(m3c-=4%gxes#63Q* z3k!JY*?jNeQvcm&<*wYEyk^<;rNw8a=~f)P8TF#1Rkl#xvw4eW<-I8$AHK7(%bm_O zQDm%N+&(dKMkLdZw%rC%Pb3REmtR~cxzf_g!KF5?XvzuOsWOkNA8xGi6q~IT|8Vi7 ztt*#3;kBA4-L}a0!JN30Wsm(Fdo=ACmiFH?2DTx)NT zl%4$b;=N*qpI)+Se<5OfI#i96Ox;z13@0)<1gc*N5uAjaAVJzm6w6F_)`# z%Keo-m*ukHlgc8cO@%wcO&fG7_v*17y3Eybjk8xTuIUJu!mQ__x95Ji+B56T`&)-w zbax*US)p@TxmEJ%kxSx!;tyV&eH)=UIp&A>kK#28sqHD){fszgb2~zFu9Ith}~QsESiDTI?__XW=_J z=5;w%nyp0o zxOoaaa)w*ZEDqTJrYhp4Pn~vZ>u32Q)#}%~!&Zod^adX~dgIeHQ3owWCeOV~f3ANU zy3|hO&bkECQ&~aj30$+4g2KHu^y-g4To}0Exy{P@e0%n;R<+KRSD11iR?aJ*uw;X! z@`6>CsrFGD3T-a@oaL0TMERuB>WO(jie5MH6+GClRml-0Q1<4-8RHWZ^>!tRbpTd;W@_XTlGiei7_|N&~ zl^nX}bm(^D2kW;fdhcR4Z8WQz^JUG9n&p1+`6rf5?%r=+ml-y2l~R@Tu++zh?{h zkL^oa;?2V zQg-s!i}#8detxy!0mF0FYhSPMF}c*5a_n&W_g1f2S^wy%UmvRfHdaL^{5qcO#9Xe{ zDfd_UT$am%Pb!O)HWls&H*L_V+^ffS=rUK!HO^kWxTYgqimYWUFP7Mx{b1xg-Pt`) zJ+-0G;mqF1J-_}eI=jr&>tgcVZJbu$9nW<+uhi}RwZ`qf3-?pjH~hOS4c}MHpKiLv z_n=Vae68z!PcOaXtU1_w#qzr@Gkt!zN9@Cm2@^XRV@!W?URcDx zccQ}#?SB)TOOCygjsK`|@Wb4-^E3&GnWwKkE#axP zh;ID&VS;)7oWL?|^Qf|bOHS(I^HR=TFKg($qp*xK;?#HMV%L}5rNR*cN4aOmYzdry zrPgGIz{~mx66QA37Ig346_q~cK!&7hWx(Bx!fW5l7HxUd^3&|{h0qyiuKnq-Q`^s* zz;QeLu4K;n8CLt|JN@5uNc>sX|MMSY?M){1ua;idKi^>GpP#?xZRJe_kyRr~poeBM1rJ05LyeYb{nt80to zRw*^M%^n|H_S)O>iYO_UyDpWhSZ`x?MWnpK>ZJCam;7^=RT!LE`&%@m+PQzW==#?$ z)@0f(=;;!flUCW$^2waRCF{tCA6}=vC|EcAZ>amhllE~}&7MU^bAmnkSZK(`M9R|~#5Q;(9M_z5R&;{K zkFxH)DzQ_f_7{d1bYzA3UpmSx|LOzpHJ!Pq&UjzHwpJ~SM_yw|ylLU-!&`-p#Hp^0 zyL>?A_bF{9BSyX==cpZ@6Hm(M$NrcZAF;L9{L%ByP`$hAa*>yQ{7|@b-sp+*|7Tt` pssY}NO!myUvo|n@gFyo$h$1Gl2Y9oxfz&brVGxkM3oI-c7y#mw@D~68 diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/modifier-all.sol-0.4.10-compact.zip deleted file mode 100644 index 16f0e36945917e4770934097773e5ebbcf8f081d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1116 zcmWIWW@fQxU}E575Q?!5O}9Vewuza6!HAE6L4|>VAvZrIGc7ZmNP!>qGV5#;WLqU&oW3n9J2V z<^D>a%W_%pNoA4JrotWJrVTokd-d23UFK@J#@VYE*K~wS;k?(A|2$JJO*-KAL2l|g zlVism{?^S8PxLQNxxjK_=KCX0eoeM?`2S|}$!mw#cYG?gWMw%ge|W?$u0BI^&-0G=;SpyT zr+4(0GQAFu+SGJ%j!{Ra^=?z2W8zQQ)TRC@S=p_$61bo$w*8U!V&CI`7T&52EU1@Q z)^p_iy4UjZa;$DDl8?o$Wt#H~O5Gnydn9{2UU58gL$P~g(rtqUkN9dfME-JSk>ZmP zj#)cnv;>z8&%qCKk0 zKTLIB$bWT)UGvYGmsJ?vJTOk+ow1#5oyDWia~m$}Fnx%;$2~i7Rn+%h#`mHHx$*sX zDo-n)WVc)E&(i6bz2))!|IJM%CJ7;ei=8c>GR8fQ-}ETbq<7(0(NnEQSHIFav8(3& zx3zjl^iOE_{x>YY(|NAGZSm4gj>6))7v|5M6sZ(EEhBS=*LC)#hZ`p;W#&G)=wZ`o zSQhH@{rYXMU#n++OurN~vtoAUqA-V<9a<*SIa^SP7tr$2w@){DvS?FwD? z?0e7UEarDJZzk8x3_BXXYm=H&^HZn&-GRQcSxx&gi{$kt#q67!yGp3%=SH`ZyuY%$ zzD~4g)8ydTyX@pdg;ewBs)xhG?v`_C>LtD7oqa~9ao_!wM-_aIq*P7TDRl9fo?Xkl z(8#dd?!wO-`w#DP2yUro}jQgC>~x^R#E%VoQQjKp>Zt<_m8e^y3rW~6O&-Ru`-jUWE8tLqBu z#4%)EUvv7fQ7$Xf!ZovZ^k#kGNsGDEdg5w*{vCOXD4z|pUH+d|Kj0y?rttoPbv^uc z?OXwl*v)f$rI~1?wdTD)jaMdqzrz&&b#1t2ae>dq2({OzbL!XhFW6^R z-FNu&OwB3TGo7?84xIV&!1?jJ{?dQ{FPsbTW@NHw#+~bd86ON97(o;VAvZrIGc7ZmNP!>qGV5#;WLqU&oW3n9J2V z<^D>a%W_%pNoA4JrotWJrVTokd-d23UFK@J#@VYE*K~wS;rwOgcU(Qc*Yzz6Srhna zQ~GS3NXLC19aSq&)cQu9-oD~>czfjENesUhrLwa*UB8v;WT$w@F)i4JA>(JbrjU(B zK+Cbk%0D-1>_7YLb>O?Q+49EBvpW`l`k(wo`kcxf$28M}RUiERX?}XRGS`OlR_|$> z9RI>6@{;vtVw|~m@}*v9-%CSS&<^K1%nlnzXc$s`vM%r(VYqy3$!FP-6#;aJk z)``ifx$#2lyq#+b6oSj|AKyHA zzwW_hvkxX8Q+;~eoufxR^5?Sn&vJZCw zBdHtZOUk|E_mVr&`J2MYjrtWIwT&KjtXwS8VG{jcTY$^w>V26Nd4^So)`)5?%)MaAxNy_b z_N%j{Ia6)~pFKQHifz`T-e+zb-QO|HIo$anNQ?Q!8JTlF8_O6z_L>~Do{(3$^hm^LWnPR;xLp`Tyfe{+FLqnR6I8OgW{M?SC`ab-mx3o+*CuYBPJ9!^czKSgx|U zZ*7ZTaJ0fjda8)MVzKn&>d#FvIu`}a|A*zc73k~dtZ%JTn#G~`Dq6X2!G_fe_CFOO zEjVR9Jt%W1bYPn-UVBADBw^;Eg^Sp@rfRo*JJ8$UtlE*gYgyx_r6>MhykS$X)nfc+ zS+RXiO7e;;JL}oz*J!Y=D)@K(tcoz}e>wPvsuITdrI$ zx=bo?>H0gb_}b68pJMyA?y*^r_NITlSAG5dG^_uP`O~{%LvH?Ny?f{4ex;foS~tCS zMa(8Em1$S^aaCroFtgYy%lhV+Q?&K=J+tH{1hTkoPrLH{<_@su~Kx`uFJuZ@6}$cS{8Eso0s#vA0i9V zLU}|^%iZ;hyfx+AQOSSrmWkE>U$WA9bAUG^lRY!;VgguFfI$Nzh$5!Y2=HcQ1F2;M M!XO~6$^zm601Al=9{>OV diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/modifier-all.sol-0.4.12-compact.zip index bda6fe0e3af835c344649cd7b7774a091db58442..9cfe55aeda7a66935d3dd2cb91fe354de2744e58 100644 GIT binary patch delta 1158 zcmV;11bO@M362UEP)h>@KL7#%4gl=6WLAE33KvWLfk#AMCkF(#zIQH~goTGANP1v3Jy&U3I3SE^^OWC7vuX*+ zGfPLkUS;tn>l1fFV|6tZnznYxzqEsV)Gvw1D4JVbY+B;g4=|PD7|p3^%HiDi;G=8L zJ{tU$Y3yf7(M5l}JVGv=np=cn^W+f|E(3B)w*h>FKeoj~kCHIZ|2OQCa+RDXg&nE# zY^(ml0{L&c=PQa^ClCi5 zR;$%R9&m13--oaOqJAkFW^d+EM~)F7$2>vme_w%lM~QX^@kE_?vb7t zcknS32MK@h-%rvH;fj{zjN0CNs8J&q=`s#D>jm0D*AB%^uZ3WlT9c^ zr%Pxz4{R@sk+wJp)!X`IaCHGnLUM+>*2w(s$xvy&yh7zIRiCMk+Pu?d(Q8euPucG5 zHr$f*TIG*G{%9gvHDXy)B~v?R=AB6S((BOPhDm>2h5f--?pH!2u=uRd>cQRbfPtvG z7e2b(qIyNeNbUaX?CIzKMj@8PmCRTs#9yU`Pi!q~&cS^t#i7s>7JqfQh;)zd+Mtil zX6S)KR-8vosLv;$vt53n&@rJX9qQg1lh+S^UTmSWUJ`ypHIVR*qmS?C*{7_K5h?fV zx{H7C-G{-LO!#*~fFuJpODsNoyFqaF`LIcd^+8gT3tLLPm@#&s&~xRQQb1+aDG7!5)$v1!goDc_9CJ5II)OkC9Z_9u6Wl+o821 z>@~XGsO}8^9LY}{?S(-LM;uHEzm7QI|kP9f}wF)I74?|Mt!4*icIW0zU&k00ICG0PMA7 YR(^C017rjM02h;@1W5*_1ONa40HQ@HDF6Tf delta 1137 zcmV-%1djWT3h@aWP)h>@KL7#%4geHfJ5}lR_Zde7003VR001PD(F7-vLMngr>Y(5N z=LOdF)D8kfeKiQULjLV8gCj4+%KGqo{egO0VEV^nLIZaui5~qM&T2%U@+6`nvT?Xq zHGnL6y)FjA(+Y&v35_mZg2W0S&`{;yj%7SOXg*XjX8nXLlJ|m*l>(+@Psu zKFo7M_p$4%O=hQ-E_AGz9W)Hb$+Ux)s%?Uv*D{E@g1USuNv4%48hUHg`V^beCen_E zyP=!bNu^y&UqY6a+D8#3J!`QIIgh{95lG-AyT8B_FQwWhr_~2!A-rcCL z8oG_|`pdcAO->&{Ww3u^VZ?ruiseb=`O0BPRw_{*TUA+}{;^JNoJfm7ZfavLk}c7k zw<0YDH>>HWuwA@7AD|Lx&qq-_WJ5aWaupfixMY4;{dCYxpJ*JUdcojv?nRzbZrT=r z@dxrMf|1kS>xR zM5+&I7B&=UPj41VYZGA-E85rcE%DUnITZRn1RCGsVqd#U88 z1r$wwm{+Ox2#X%EH{P3jA1?FSr8K6o7q8wmqCk+kpp$IG)u#&*{y5vB?t zbbG1NWubo@^j|BDkOYVh+BceU+ZcR^)t4+1W*4iFt_AY64Jzt&7G4+ZEFDV<3*i&p z@R6UskM2T%uXY01Pzl+QAugC~3Z#7z3L6wxqei$(o*ZWyH`=Ux?Z3#n=@xKY2Zss- z4v6P?ixEj<Gk&+M+5)>Uz5KCNd}1o00000 DkC+_e diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/modifier-all.sol-0.4.2-compact.zip deleted file mode 100644 index 61e61685770e360097a07b9a05f9af0266aaf96e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1095 zcmWIWW@fQxU}E57;EAygjlIfUI+vM&VHqC-g9-x!LvDUbW?E)yk#1s6j$UzoPJC)b zL4Hw5d}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo=ACmiFH?2DTx)NT zl%4$b;=N*qpI)+Se<5OfI#i96Ox;z13@0)<1gc*N5uAjaAVJzm6w6F_)`# z%Keo-m*ukHlgc8cO@%wcO&fG7_v*17y3Eybjk8xTuIUJuV)mX_Y*GqUHonEybNA|q ze%!l3{Qat#Mz<&Y3RLV`%vQuupSDvn=hppsyBq5zH}Ynj>~oANn_uUD&*sLCS*s2o zxe@d|ls{DPfttLw(vAPCcS_BElKRry;B?>|o%75m-OT1G9o}|-Q)6)WjVy(aTFuPn z>Q{>QcFz*|?E1kq>Y0mhQ{%E832me8)oboF?09whv}~ZA`KIk^Ww+9Oj!ONxJFBTD zb&c1nGkeY)? zM@&|E+&%nMSVzU@=e^<=f9K{Gbx*zL>wUsFbjre$Hoa`^jfdWU2>rhE^$c%M_jjf( z8kM@=PHr$VV42GNp6QBJ?8B8=hY#7GFqs&X^wIKxc6`OztKy#*eC;f1xcF$trMc_d z)@&(vxvsE}=gQP(H-Sax?YlFJU#Wcb^8Uy6<;=E47p>3iHrS#0NdM^TC2tNj&#h## zx@0)>R5ioDC#`SR7)M$7tk3P7H}A!Xb5rzZew`q$@}Zb>Vvj*siI&LJ^LM@e$nVs= zKQZn?tf%Wor+u+~_tcoVb9JXHMHx?5I#IZ?T&?=U9El|{w$2I%4@!4zUO(-Op6|W| zGWQxMPvhNh(e-3%#pVdN?q_!!%NZ0`II(ZI9(&nn*N<8L^F9e`To&lO$nx%Q>5l8H zkF)ee=eEuH&^f`xN584(^1*bOu2p?OYCC_N@HyFTnPeu<&f#WWa#VWX`R2<9uS+wp z{vem1)VDxD>+|-aU+hK?;v^3XJz=~zd!K#VXP3W1Y;&JipRk>H-1}gN^v-*c7nc9O sq#mOj;LXTn&x|{R1M@f-G%$iFVzPUHH!B-REh7*H0qOg|;(~zz0MelG_5c6? diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/modifier-all.sol-0.4.3-compact.zip deleted file mode 100644 index a1086e50829b35d5ffbe54666be8b171e9c23462..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1092 zcmWIWW@fQxU}E57;Ek~kH7Z~0HH(>nVHqC-g9-x!LvDUbW?E)yk#1s6j$UzoPJC)b zL4Hw5d}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo=ACmiFH?2DTx)NT zl%4$b;=N*qpI)+Se<5OfI#i96Ox;z13@0)<1gc*N5uAjaAVJzm6w6F_)`# z%Keo-m*ukHlgc8cO@%wcO&fG7_v*17y3Eybjk8xTuIUJu;zc$yHYtTF8{cBBj%nJEdknNqy;Ua5`{~&Uxlj3ny6J=U9JG@&D$n8R=5$T?&b= zdBrymn5A%Nyjh>Hp>e-TTcK*!$!`aYx)P36t=dte+~))SunF)!V-m8t8_ z?H9p^y|zF5_w<^l#5(3JQfqE}DtPX>q3!Sv$@3oWKE5+6KQ#WCZIr0aZ19*Tan{BM zr*@S|9CQt}jI=PHpD?8^#$R=+#Q7~AkCf-#R&ke|dv(H+%?Vl`x~94Rx_m|N&eH4q zwail|S}L__s_SQT=1NB zigK!9(5+A|R_E#EdjyJK>pRT6*)FeLmsy{(w$JHm=0Tp>%O!u7pP00vV8NqTGcA4I zhbTLoTzvb}-QCjKi6@t5)ulB?8vb84NxNrjYVD)qjV~ryZT8Lh>0rRSS;l#Z;;K+1 z$CuBG-^@KFn^f7EF50xUQE1EKXG+`?uY{|5DAjD~N&NOny+ywJS%ZSt`bs(bEARP*fkpVaomFMEBk z*1Sc37F@J4bUPK0DYd_J(WBhRK)0vm&A+(&yeIdnElyEe>uMgFK8>^xdejQJCVlG$f zl=~}vF3V-XCzVA?n+kV?n>OfF?$u*EbeXH=8fULwT+aLg@`nnCEpNOkyuo`esD9JWf_vQa%u?Tn z9Jje5qG(x@vc_HcdDQ0lzf{UQ918N=F9b52jPU$W^Wa1O>)&6maQt4gBaI_c8mS7yod zNK8Dd^e6MJkNt$%-N#-XH@@4~7B+{gWXoc1??sH!8BZbw_8-j^Iq@)=OK9h2%jvnV zytkOHtlTz(<6+YD-t)58-hA%No#C5om}kG_`20T=OqItXV!WD~_gYokh;Q=vChK9Z zE}1BsHl@j0qwDmY*e_M4oyTztOx^y}AL@9Ssh$T&VTT`ci0!@&8{VLi=t z#cnrlJ#)32{MY&v^SQH{f3|8ja?i?tylA?z;jK&G+)gZ56S%5r<5$}=8=9X)ITe1} z685~3!m_F+!Q+^D%K# z-Cv&4fNxhH+Hs|UA={L+5ac)C`4)5b`9GnkTP zqy#;u+86C-)|1xUrGF;#TwAH%$IWG@4dTDpH8@O36y4c;BZwjm(Fdo=ACmiFH?2DTx)NT zl%4$b;=N*qpI)+Se<5OfI#i96Ox;z13@0)<1gc*N5uAjaAVJzm6w6F_)`# z%Keo-m*ukHlgc8cO@%wcO&fG7_v*17y3Eybjk8xTuIUJu(hBx7`RlHT9J<=ap^(nf zo-gH=?f3LWKD(39_0rRaE5B7UIq9`HiNzqHg?Hp=``y+zHM;Nw^8S2kGjxCopO-T5%qZOOUnUB8yjGrA^LZ{GC3sC2~~ z$#?rc)JZaWzCGFcxl*-wThU6F;|3cel^!gx$v*Xjf9bQBr_+=)mzDf~w@AynFZm2_ zhIK&1-&t$>BgLJe&_jzTYMB4eK-A2QrL69dG$)ZBX6U9 zkN$4YXJ@H&`^H}~@BBrL39aePG0Xdl+w+!|e&Uhky%wwgM6x`fMQ&G!mSPX%&9t*@ z4~#jJc&%42yMD;HrDXp9}>w9TXT`tKQyE^3r^2{e`{S8*U{dpJf?U3cU`Y*ZfWh{Pbp`%7R$cosaBQ9)FlyD$~vp4e@e{q zZ+w!6q#6&sPV#QLpHRuppdWEBZugHTRsS{TCq@*kRAsrZvhLNcufoSY{q5f|#u#|^ zKl+_IUB-5Tat_1hcXRl3Zk^@aG27^#;kIQ7_b2=eP`eo7%BH-qepedT6^^P(t7G9( z8$Di_3v`qRRD?aAtib-1H)Zp`Gwb&pJb1N@hp|%hK;U2gjAH@0IsCfD-F|l4?OsI~ zoa@V(_e7bM=`b71MZY#djy7?X=TcASJf55zAm(Fdo=ACmiFH?2DTx)NT zl%4$b;=N*qpI)+Se<5OfI#i96Ox;z13@0)<1gc*N5uAjaAVJzm6w6F_)`# z%Keo-m*ukHlgc8cO@%wcO&fG7_v*17y3Eybjk8xTuIUJuGGFs@W|dC48G(~?r*4?{ z`0_U~^RvE_{<>ewT)gb^>c(rurGnnzL=)gM=6KJ9|#5VeB3#y$6(^&ZB>l6 zTg$mVT+N#LvgqHFRRgDz|te(zm4i;9La_Pgo zM~h#V{fuu5KeXEE8)~^dbUu+}lc&Ebcf}wm=hpyg(z2(~`hHUrzB;8)G^an%ydS z`#M*3p%uf4O|Dikm(@x(TE?<4+1M8U`}{jO^4t81EmJ@#p^C$KGdk%-Q$H z_G-|}Dh-R+nEp4hOMV#j=PhD+trWf9rmp<)?jluC;z{GjqUBGRg#)L%IE)w>}yz(v&33++foIc z?0QzGZ5x~CYh`J$S}H z{?xA<={XOm@N98~^EW0wQJ*(Ti+@jK(qWyo?E|~^p;afIrsPPiIwmVr ztz!Hs<4uCm^+(3M%iCFOzh6kyoED_>^3bZgCzFegb1X18|NWH0%?omNQz!S?)=B?& u{;wUkgdxD2k;$GJcLoRMaWH6L1X09f_W*BJHjr9IAPfT1_kqO)0|NjDQuylt diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/modifier-all.sol-0.4.7-compact.zip deleted file mode 100644 index 081953928bfaae6fd7f97ab8800f362c44ee7ef5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1161 zcmWIWW@fQxU}E575Qwo3-5I||?mjaELj*qqg9-x!LvDUbW?E)yk#1s6j$UzoPJC)b zL4Hw5d}2{@MrK*6URH5_9w!ScLo5SB0|SF?M@PExALGJ>m(Fdo=ACmiFH?2DTx)NT zl%4$b;=N*qpI)+Se<5OfI#i96Ox;z13@0)<1gc*N5uAjaAVJzm6w6F_)`# z%Keo-m*ukHlgc8cO@%wcO&fG7_v*17y3Eybjk8xTuIUJuatUKPvr4DjjKImcQ#Z_e zeEFN0`B~pdf8DQTE?#zdb>p?-)5}Ai%T9lutoHx*fnPkY<(*H>(cN&P=I>ui)~XnW zD3A0%bN-~4eRpw~6@2b1!%Bm+3$Gt9O8$R(UrbY5XyJ>PrXR;v?siuDA{~E&E9Ao) zqc4AE`^Cz>i_0s1-sXQ)zovSt#lwC@$xg1vRkyD!64ybI| z`J&-On;ol1-S&09dTeQvR;ozmy>I^eDeF|ssk12wpQ=;uitKbS5-O11Y-RN*AT)*J zy0g#aiV6iYx!{R1Gdzr|x245g6cbYlJh%SIg|Or+w+cVyS4(H|u^3mV+ugE1vuRU> z;Or-%t&1)?eU}y!KX=5!DkbH}N54y7V^Ou#H9C>=7=zwHV^2CFTEA>1tZFo`k`{CQSrjILonf10c&0KbC zue9n#cE@Z>|D&ywdFRQlN{hE}II)_4#T470vun9>_j#(y_E_9>zvBMc>7A(9vo&Yp zSbu8i+U;a_V6oDhGi$j@$GjunZ|{b(`Ku-!c~f2;9N-*S(^FdZf0BHN!c(4Od<=4@ z(jWcNmgAg}ccZ2+i}&!$2YZ$+%X<~Ri0NSOpLxp|xZIo8?7n!oYxBP_^JRP%*MxPq zey=p+Y;h+4x-D7)G4ckX;#WezR=R8r}|9aEst@WRL!;%yJ8G17C%T)YMW=o4n zo-Vt5WIauvu%snx0|_$&9S?%6DD&3SfG^G4|O7n`143=ettb#;G_oY&>h*-n;G z)3%y=Y+YmZg7+`KwfmEAipzZ_J$}7H?VIY#Hpe>|`c?tY*jCOz`Ecj5c8+z=mVCY8 zr6c$zgXQXai>_JcXC5oK8L{tCO!tLFSKNYKk2Zg-)m-Xn$#I(ZhvqVoS5FtaPI`6r z?ZX8#Ke?(|xUsV5^VZG$<=Fk(ZEyI~t&x9Kl&bB-FET9qw2fuW&ONmg(tfR8=5l2B z+bJUImli%=>i@2*tm}n!o6r7Bvn;DE9=YTOr7rzD&sG0L;%gCk^Q)?np&DCupD`?# z|Fd3p65r-3hNnjtdq(6{{!iAt%n;zs$YjrqyNCdm5@6842%?B7Fao?;*+6O;fiMV2 IE3$xi0HkOVO#lD@ diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/modifier-all.sol-0.4.8-compact.zip deleted file mode 100644 index ad369947e94fb9a0b2991e953f931161f14c0e59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1166 zcmWIWW@fQxU}E575Qwo34T;QPe!|Sa5W&yDpu)hwkei>9nUOz`$VJ(UETa$GC9erE}Y?dFLF>%T(Pj*V-E- zWhZ~Vc(0h@=T{3JFg$0y_Vo%MlS{2B#}21|Z}pm$^^czV^`ZK2V^ws*uj9#1%;jpG za(|`IWw|W)q_Rk9Q{j$q(*~W&y?ShiE_1b9urqs zf|?T|w%@w; z&i!TguD$tmsqcP^-wY=44zA-zMHbn)F)`{dyF63(b!ue5^evlLsD^v;2%Xw0-0xF2 zZKjI+@f)+-=gUNS9hP8v&#Bk`RH^?{n0~H=hX@hYvflKL47vx?6*DiOl=2D$Kh#cJ{iSyUMXsOZ3hwL!skKeth|^yyyqVGo{9B zJJhGWoEY;>YvR^C!wuhTcjWa=-g2Zp#XXMeS6`FT0{4#45R@JL}P# zPp|h?ZC|$kz|xoZ3Yi02rYNXPx)!-IGHt)qNv5Kwvz|<8pV{<1MRGHLmvL(TM7Pk! zW4o7MPj7b>+Mlq$a3<@lOl#%M6J-peNcYT~c8T|Mfc!_t;D?7k%g;Q)yT>PZ zZReBk&E5x?b*vAs{$;#qg7*E+r=hC0*MI6imzT`0Y_yh4^18S3LGW?r-v4D&t=$)0 zIrd{MueZ?G$uTRKf4mia70{n>eb4$6#`n72UKnP!%ZJQbwDb1g+pddLQ_4Quny!BC z_VC-nP?63w`I_~TwTbg9l_q9n8eC}Nx@ok3X?QO4(#(5vE^o2X%H50$8QZ;8tODOqIIbx!9ccc97hSzLuZFBB2QT$d{= zyk5epI4?ys{;+-SONZL@<#I*y_>5ZCyijS=Sy@*2{8Mp(&}z@iQzkF9jrDt)Cb4r3 z^Pg8zFWcmwnNFzlT3XY>_uyyFe&4ojDu*3>)oxwv{m8UcY2oc3$!(vc9xR`(7W$+A zOoE({FSD2LKp+5I6t; diff --git a/tests/ast-parsing/compile/modifier-all.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/modifier-all.sol-0.4.9-compact.zip deleted file mode 100644 index 2646618afcad95ada97e2f5a7a56fa341887cb19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1119 zcmWIWW@fQxU}E575R9=7oz)PkxRsfK!H|!EL4|>VAvZrIGc7ZmNP!>qGV5#;WLqU&oW3n9J2V z<^D>a%W_%pNoA4JrotWJrVTokd-d23UFK@J#@VYE*K~wS#j-4Ax6U56JQk(g>urqs zf|?T|w%@w;-&U{udZ@q^^}eAL;jG!-G%G zrycdGq|9zjn7VKIafbMX`z~_cn|Y0~W#Xqjaqntmboi!yH;&FRv3*mx?8Ik|^owb4 zr#_B;+;e8i!Ms|Fsk{j?Yj19qn%3|CDtpD2*>`5T<{DN`neV4|Z`t)J+x$X>*`}n4 z=H$;6W@wWV{}beSR?gh>U6R0rZC!dnPLdI6OL}rPggjVa?!N0sSMsIa-FeT8az$=TuaB%g@$c#d(FwbIWyHMK zEHyv#{KL)ptKazF+c)=UWtv7_F>ATF*2z8X{;b(InLZy#@LCXl?cC}DFUIcf>ZZG$ zhm!8NG|jHKa@Rue;Q{t7sHN3uF$NlzI_2rdX%pEKL-2by@Nr3W{ zH`n(1JqvA9W!ll%U^(dmul&qNhTSu(IrcE`TmE$E3Z+ka!TA9(+OI@PdsB-;O#64X z3p+ZNUX3vOCU9z{v32R^-m`s+w%vPl{2X6e{F>=ET-N(cxS{lC{yMwAVGpX?YFQd* z%zLFSf93SOg~E~QybY}jJxc=`rhH5)+g971bCCNp?~AEjsx?`y_49u}Hn%ThSU)?9 zXHBw-{oy6&GM`W3kojP#zoV`|a<*RglmNq8kvEgm?)wUVTwCeNQBoBjD%Q43;@}IW zYeszz&eNJ&jU%1d%q_L=tXhz;V(!z$TwdH4E}mHNsxWctcLDvbgeKQZL5bcy7p~?g zY`AcVdClw#jMq-&CMocJ->4Fow(Z%q{eO;Za0>8dWU^<*o$-Nr9}F58K@>5?K!7(Z S8%Ql95C#G1@4#Y&fdK$IBK>Xv diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.0-compact.zip b/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.0-compact.zip deleted file mode 100644 index 5313e848e2f7905a5e842a2ab858cc4014f0368a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1275 zcmWIWW@fQxU}E57xLI5fq9`4B)QW|;?Ya5R+v{fE)>>NYpMOqVj7$VrRrSwk~BSI$apyyBmf zGM`z&_x7w4Kc*e%QtGwJ6+HFju+Hb!FmY3)fo*gZss$#m~G|Hoqx) zCA5F*)1!8=nG$J>BOF(T&pBmy;K+=PS!Yi@&$i@V&5^+Wp-Uib!fne%s+SgSQraN1 z29j( z_isxJKOSeC^=SUBvfytoEAR8#Wgq&s_LytHp8ADSnuk3zIgk98;g2+YeZZv1O1EzN zT9qpGpNlzJI9E)a6o2ac)7B??Ub6GcLlQTqGX6ZT9Ddy9-Icy?A1a?uvHr}?-M*7Q ziS5e&{d)uU{&YMUn6La}yIqX$(Sj@OcN}iat5W~xdoaAQA@I{N=_i%TT`UBRc*S{3 zPtPo_`fPDib;^}LYZm0_OqGZTo%?#Br@xVOc20B~kF8hdf1&Wc>}^|E z_wIJQHi;u><(9V>j_6HEYK(omt2W|$%HN;m-xInrXKUJZIRt#YGVQT={`sOMk=4n2 zQtjS0zyI9c%>2iF0)Or)zSAq_yzJXz{PX8`g^jH&B|GEmmhH=#klnym791xwHTlqy zE2nFW%q~}c^Q_2Qs=c?yyi#WU-Sba)8*A?ei@g6PxA|+Y=*?w6cbq%QRQ!lNYWI_d z@K+_DbGbQ^zyEc8u65T@j&HGt(Jl*yuhROZX6FkUx(^;UF7=tuv0g3lXZn3j-t)&r ze)EY){mK2$yhpHmYVEE2&(0P{$KNk{y75ZK;iBxY&@bPOitGbo8hT!8ov1NpyU`l5 zZq)&O<$@HkJjG4_Z&^Ru*QjIhIB=@3glvx$?{Qu?|LvDqtELb5@6RsIU%O`grZjmLg^DK);?mJI&!2hs-xHb;v}pQ!=F0)Xi!Xj`J`|+q zxir))ugbl)q4LE&<1>*QyXR`2&x-9^@BXF0brs9)1I8|kE?Y=gi|HP6yt+|4Eb*R~ z^6tx;e@YdX%}6^F*=tkm`rdltpBF~j%bt0Cw|{o=->Gj>7V`b>AD4Qvv`J1m_oOwj zIqq=!?We!}1i$yyd#*d?4B)QW|;?Ya5R+v{fE)>>NYpMOqVj7$VrRrSwl11U2?pRUs!U} zFzGR0sad<_W4nb0^OL&0vYt%*By;!AuQ>s_+9zE7YG=&vX09<p zKjXEW_!6J6v~n&Dj=L?c_D11s?DC@2SxJ-Z_G#~{Z*PBEcCe|Ufv@|~>ZJvJhTGR~ z=bN(4C}h&Z(p?R{os)!Sy-e7}`|6IDVO?tzoa;TX8bj=wrpw!(1;8g)X~x$f4M4>#EB$S^O;*ianlb zS22HKc~AUdi{nkpqkZ##d0kxC$r~OLlcG4zHEP7Hdo0%MwHKLN|NSFVecR2|>Aqd;-rU%; zryrU~6of{5&wqRD z(W$(QBR`gPD%$ZiKI*z@YvOWhx!+q`p;>cmuAed3{5kTc-3NJ_qyLOtg*X!CuKQy7 zdjGarC%txMU2nVeZANeFZ6@Xot891_|Ff(SKelw^+7p^=EuUl;&#o+#++L);?DKn0 zDQh`iRGiY^hyH!(I?&I0Ra$-7IcED=MFG{-QTBT~6O`*1?$xl& z&6u}BUB#($ZG1@4KZ!pPCCfgkq*-Ne@w^fGZ^O*1Eh>A`zD8_*em}HGJbl@uqSoub zl)b`huQ42F)8S|SUO3B?OJ~Q;L+iH4)yV4bn|>?rIM}iMrS43J)ErOmz;o*JFT99< z5xu%0dyjePdcls;xK{<~Pp|B$Wjl4Vr0Tn*#3_v>ZHC|a{tFy4DcSzePxx{ZtM7jk z-)aHRpStnB+wMyHJ$~J@S!%+U$rpTA^e)KVbTy{>v3TuwJ6-)XUrj7NzEZzrb8xwz zQT}`;+4zht$MrmytnU1q_y3VVkwAbqBa=Nd?ve;t7=b|pBZwlQTng}JWdmtp1j0xl K-2p7#7#IKuQ9f1x diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.10-compact.zip b/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.10-compact.zip deleted file mode 100644 index e3402eb0b614518c1e90aac17e6b095c710cbed9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1371 zcmb7^do!RsjHgjk+hs)G_lbYZfZ*S!8c6nrk!(qht4VmNP%~%tX z6CLAwqs$KEO=3HR@2i%k2^Kby$lMw7x%4<}#WTZ-ZZAJFC)B7IcfRum(g z;p4-Ik%INHU147FzWQ-2-xqExd{N!%EZwK)bK5J}WkQuO8x$ROGQ6oaA2-~Q@A4+t z@Yl=9bK@k2Or_m#{pSt)P)BzCnB}Wo77E>m)=2(|$JVDn>FHMMlSlp%7 z59RlM!Sisx6DjtH4gP)XBg|-9&ez56q4al0jajk2kmNUhvr*^Z%MH}0{nr+A&C}b!TIDmkWLY^V#_(vhW5mS-r9~AnUx-zhtD|eK6dC3x#Y)y@ zt`1b;GD8G`I@x9Xa}GG|B&>?L2%KKIY1U<#{rdLJ^hpjwJtt5Jp+F$lN!HX3TP4b- z7_JcyM(^9hvGFwSPY##=p7{Jqs8~x9?qLN+L1F7VYfHwmob)ioJ=zrx%0Ss*CU&Sz zP@$+Qlj|rr{oXSIZj<1B; z`F6IV0`W({suIZI3JA&|(j`181X|<~A zmMocTGTL>el-pd-9i_Yr3>ac%vx|6ZmL|9iS<0@$#Z5351?;|RR$SCPYv&LsgE-4h z{O0pH&Ek&v(PoQB4FjuFI?FqHpDj&M&gRwVO^PNH=HIP*b&9H<^`1fPX%4dU#7vMP zGnMpD3H^?vB*7dHjQ9vu1AEuJE8{Ryj7f_RR|I$au2Vg1h|bJr%8XSP*ri}kddyX$ zAmu=RYL;_g3$o!*C)PMT-8e*?B9q4ZBqBq_!{VLH;MUUaqg5F*1(E!oS+&M1di=&1qSa)VYdrA+zk1EeY?-%`;9EJ^%n@LJT1`oI;>dNnvC|W2hO_7)lKb!R?P>lt^441y3YJ6QIG=FtRLI3h)B} zIsn)(7*|bqOe2a1dTXr}^4iIyADX^P&cLYK>OPf!ZqEJG8dqB9CHZklA(7tQgw?qw z@}FV!{8{8Ozu}y7wM@=qSKyehUC=Md6-Mc9M_{o!N-w}V;V9U#?H!QQQ0-4pl6^G7 z`#}j(3QJ0{57AJ3PO&e69~4bkXEOexod?G9ccWq!x09g8FQ6G0j#84Wc^HsP`Imem z0~sy6UTrBLU#wF^VN2^dYeDHTqH4nh38|HIv72KH`VR7sAz_FgSrunXx^XtN_T)m4 zmI{>1UrDXEWNPHb9qL*axVMi^%A#0iypu^VoE24IV=yhF-pt&yP<5#E%EI>5E1Zw( z>R_{u+)cVX6@Nw4$vi5QZF6VeL>qNxekLHA+*_8b^; zaMt*Z1_-mjQ;|5)6#p(jZ}f)h;`dQJ2jw{!%(Kw?_-dsIGJ-WUjIk0PhIqu7Hps7_ z)#7GPXV%0d`g|Z5gFlCxQ^jCBYR~Kq0hUJeo}ky5^fnQJ_jbD1UF}D$NIuesH&rmX z+@^lY9khu6$)bs$Q4;iTwc9Ye;ZOL5Y9R8O0j0Fropo#Pk|&Hd6ca|V6+$So+DRd|* zpUCU+^2*(w*HYJd{t40!}xcAO6|Q!Z!ON+_8GOi_N0?`%`!3S!#~E#d$`N3zj_Ia(MIu#Sx34 zm%Vmh(&xZOPhT4ymr?dTcxfP@u2L-V3e{uRw%Zyx9#wrX;r1u|!(%xu8Wt|UH++Oc zDvg3ZmvtZirk)=Xgvq0K7gWch2gIFtglqYby z%V=0jQ_%1GwKZ6;@i<>7ka)QmzmPRQIExb^yo5w1}O z(M=YcPNN>o-jhVGzK#q(RgpELS8NAId&xb0X1V;z{vBsgJQkb+SD)f07%H~NTP2!7 z@~(1`%~y6uA});L(xquk;g;^WYkjb5d@l477youMSKf2tl=(gT)zs0qk|#Y5+1?*3 zm_sOw@ZvB0s*e^~Q+-wVbI-`2%Ffi;i;W$*dmB8&8CPeJ1XA+9#kcRie?td-#sAQt UtFx5!*9&OB-uqnNw@KL7#%4gl@7WL8d#MxqJ^002iFkr-8fAJ=oe7BTTh4~3dwgEWQe9G%61M?_vH2MrnJ9IvLTZf7EnZEaE!#2bGafU!9m zK@W|OU=EMC5~pPjg;%&w4N@E(UV~JvmgYc~wIWOr_kLJL9ImABrb1gCs%2=+)S{ot zXhQJai2*%l^evNrB#`xTu{8mCC3Xr<{f;!lgt9owXZwNsz;KW^caJ<`y*ruvaFBxU7@#O(M&u(2oIsiY?IB8Gzp}-wQ*K_$FzD z)}yV%=;)1v7QTK(&xHl%`%(@mFPKCHZ}*VxC#l(F^9R)zByZyMIULNXTEg>H zK~2(t^Tn2bBnQ0U`NEQ)(rqOkC0$Ouy?(`kmcs)DIFA~Z_qf@cS`Q(hx|(R@^&kSK z=Z%B?m$Rtvj>TYxcDUX~UNkZ3T$6@>#$~L9uQ-NrapjID37Hh)lA$#I zKoWzG3cQ7xCEm-7d>Vs8Y$YM(_Dc#c0o^SsR%m#oosr-noZo}=>UKcE z+^q=zuOaAw)0$4FKk{H?sJ|h8gpSVY-8G*)+zcm6P~7X93eO4T!TiHrNctt|FW9WF z%)mm0PNQ_S6BMCm`Fo0)mOBcPw208a)yPRr zd#ZZp!}nZy;BmSaf@XI!0hqepE7*#rxPcH@OT3a*kY&8J@H&STTW#cBJeg5+O8$F) zLd0?t$f2S3{bWvJMr;B=5~c#7h69qZzjqjmhIbH0j@=Cf0m*68(arHwA|<$7KSen*ilh~BlA{H_ zwwl?9oW@17=2q|*Jo5i0NzF7Ss!ZGTn#mZl*9v9IEVe5bg7Tt}F5sVIvn|Yj&}zxf zJ;r!E%m+CIr!4Z|;sE^NcuK-ZYB9z}0ng%mli}4#2^&};Ex%3@HvUF`MPXO#1&N7PeZy1~t>(f2z1J28Bc^uGX4>hstuNi^*z)}Z5DE|!UL7eu}xt__`E z?P~Lf0_5{Q{Ms%}%53Fu@Hu~f(MYE05^Q0~Qxf>!zd^7b$l7ios+sVk@KL7#%4glJ7a8yT#IXr{~003GW001kKeg-a)NhE(KuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2tNS!2}(F3vFbtn6ARaGVs zz62(4K`|fu`~gYTwni>#M0Pw`lA=EaRcVJrY#eJ)a!p;nH@_q0!e>&1KKsq?AeY`% z!0#2Z`=B5UF25Fh0xv*^m$85S9?wI75AW!g3^@jUgzVyd2Yw#wZPx~#_~d3@)q?s2 z8Go>0W^;}+(|3xd@GA1eHJY;_LaK@M+RSiS(~`A7wVy{N4HD!uIwpI}B6xxSnLQF- zLc1xUu=&M10v$gZ^c+ZxFgq7WNoOt8fSz1U%xoMIHuc^f2?$A1xZHnf-X~$-)#OP{a_#zdQu|VuZ%;i~+Dmz+SM8(`>@0d1uEAA+N8h6R0d_Y_RUR9KPWqW4Sl)n%xiVDK1hN5^ zoc5TjIhcQB`k~YvfZs4?hrih6+NJ@vAjCcs+7i#hE zADSe7e3q%LW*8=}Av+Ki$IbGNzj+Q)`LUVo#q@z?#2NZ!=NYin0w*($WMCvFUWD#~ zfXe#Dy5WDCTDDL&@k7n34LbtCqO*$&ybqXZ7zd37S%HiDC8%<%MF5d>KLB(VGI!|M zYpWJFfAngg<0t=*TAA40#v}IR4|DYL|<;8W=N7cg`@MJZ!9DuKJK3igM*reD=b4v^W$Kbk~Uv{)N?5< zlj3JcxuQ}ry2T}<=zH>cErlkBmTJ7k5Eei0zU&k00ICG0NQhKR7Z$8JcI=W S003GWlWhi12F(Qk0002agtbZl diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 6c599b95d125abde55a6b794957927c8bc45b51a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1273 zcmWIWW@fQxU}E57xLI5f;wrzW+mVHV;iE7EgEj*LLtbimYDGa&YH@L9ex9y@o{64; zUU7a-JWw#ds3bnIC^;juELAV7I6se*g_R+efuVtc!M39#-T04j;lfMjwpsJeIhvQL zx?irfH%Q7(eLeSX(~U0=S1;Wj!F>NCZ*#+${h?~vPvTy5oZY&>|IH8Y8R;vyLjK+K zn5#1HBJ;+(rRu*6LqpXB_OYlHI2y|T{=?{bb(@=Brc0Sks_+9zE7YG=&vX09<zdYonr9_74*w+gRPyewU^n0Vc(LI5AMf6aPXD9#deQ#QvZa$RZOQzk$k@BF&H8!m*M5bTeY53% zIhbrqtPxuLY)QxAe!0Z&0vZGsto+eLY z)7fOsY`@0+`oz4j2~q}!Pj~J-oysO!DER2;zKiSB_plpZVDWBboxbgK?}M%W|L#{# z;-CM|SpD%*={;<>P8#mBbna%oHz$slamTdwj2R8-i(mZ`xfg5Jll3AxaMy+F4?U;$ zf6MrM(7Gx5)1eEubUv(-Ol3=Ne7^5^K>iUwsUzLoJiCtYT}$;ho*^u3GV}h5Vx{LP z?J;jWewus7?>(j>ez}85Ut%Bo)QWw*jlWlZs47o;kz?;&pv87-s^`+_#s8TrJZ4`I z`qH}JdbZ)3j70APhcd45Ul)s4-)H{0K6}1YsJF26OwVJ%2K%i~rWP(d_NSdWUVoXx zm7FhcdQIPm-#ogiU+_Q--zCRsS?A7Qknx?J*LNu@VbNTqKl$WhI z-T(Z^27%_KU;VRu9B0a>`MAx>eg8j$;}}DLHzSihGw!koSR8>t10#qcp=1j1W@Q6u PVFbcRAl(Hl;20PHkfTVq diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.3-compact.zip b/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.3-compact.zip deleted file mode 100644 index 9f0715bc72659afbb4fa6e95d53924826c216635..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1270 zcmWIWW@fQxU}E57xLI5fa_--h^>!=_3?GFV7_=D}81hofQ!5IJQj3c-^Ye5K^i1>& z^osLy;(>zsMJ4fxMadbNWvO~u#rb)hEUXN%3=9nn47ME|>BfJI3m0BGx6PV&&e6O~ z)%|jg&08n{Ir0xO(aK2jtJ~c4GF{4SA}1}fXARA4cga!U*Dl1Z-v4qn;$%J`1#-=NqCnOuL7^YP0>eOCWlck^(m*;W@a7$&^fVxj2q&@J>Y|2 znYrW#`STw2Y0oY^t&mmt#Ch&hce)}ITg{g%hc8_>FY&IBX69R@d9Oddf%|j!e7--z zHkG`xW(z(BB;RvIE^Xt;~+nusUQt!>VDA{I~ zvUAVfV}_?pMV)$Y{B!wzZ_Ug3z8{>{WuNj2EY22TUt0A3fwM7#WFKGCp5^@WnKuQS zB~}*ui?$y&koc%3_<9D*rDw}Hd4l`a^Hl7pd+Q_NZS3d%aT4b-=4*osAhP8}du7^@K-%LsQ)$dPC+vq!WMhj=jy_I}2uea`*wN}I1oOSmJyPQeRJMFJ+ zPfWOeiQ}3;=#v|v`xxdtwK>@|bwy(64z9y>3R&B9S$}!IjF!1&bnNMl)2GE5Y}gJ? zJS4GHE}>lI;-q-Z^A1UOUewK7`Lxtw^;x5;r8@WZcPHDqckjBnU99n)IfvB&KO?<6 zC;J2UZC<~e)gxA=oy$_cL;lzPvSVw#)=pOXBbIwLd4Xf`v_Jh!&rYa0u6eF-+^F`` zfkXv1ejn~u4(-4L>w9k7rxZ=p5$~NFEHmSe%Yh$<>$PSV<}cQa-j`K5tte4A^}Xxa zMW2n>MdN!M3;k8)?&K@9Me<}+DqK!XpD%c#^?meaD{i4vb9>caOXMxo`h0Wo?H77` zjgLk%PkMSY`cTH=uEt-H3u@SsMflE|7u`BOcg1ft%hXj-@tr^T|0-R+!|mZ-=6W{y zkNotTtB<;bb8Ve{k!{)WssDBbE(!2vWU^<*T@V4wA~0xR1W_auO99@jY#=R+Ko|+6 K+kvGU0|Nk+`8i|& diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index ea9d6cc85f060fd8ee33945fff59d617b08e354f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1273 zcmWIWW@fQxU}E57xLI5f()4}eH%Ar*hL6Gw4B89~40);LsTBo9sl~;a`FXkqdM0`X zdd2xU@j$`+qLTQ;qU4OsvQ)jS;`}^L7FLE>28IR(2HTE~bmKq9g$pm8+h)x>=V)H0 z>VCP_-XJME_4VAlO*g(gT)lLA1oQomyv+?~_J^uvKZ$$Madzth|2IFpXQZ#-3i)@_ zW3I})i_9DEma6|Q3=LHi*vFz);AklS`wye%)opHinJ#5Ek&_nLvxa82yX5x2@I8C3 zf9t~^K83HVUHiA5*dPAIH%V9BoTWb2CZr`^ZOt{e4-3BKeo&oiFY=tbv7`F*eNpBc zp}M!eE!g)~u4K7Zv0A69-(vj}amfEg2U>|(^VB0xif4-exC0s z4BfQ*y+UYjuS$J|+qZ~jEvtHt!gKz2vNnZmQh!)h=9gO9oN}j%&DZ;v_1S%w8kR3P zQ?h@ny3)bl@>ksjGb)^u9xXldVE^B;nJ4`OA9c(<=dG>xp?Gf5C%Y^DMO+o>3cs!3f&WL^i-zJt}$}nYTbD7gXM&$;f%d|PfyM(ZNKoYxZ3;J_dJ6EsXbV3 zS|hZ|BB`K`o#+0<8LJk}Q%!V{C@2?oyn95xka@+w-{-ci*!}rNu$9DSoh8hhRTq3K zo!3@1>$q;!UWGG@5|Xoz&R1Uj#D?QaN1Sk)nMS^2;iI=lYd7W9oQn}*Qxo{w_=L%c zXYI@r9!qAQ{~2VpG5pQJ4-%dKlY5dG0=yZS?3rp|g6bU6$fHx}}NDCtn NMgr+BU;)R#000#pK(hb< diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.5-compact.zip b/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.5-compact.zip deleted file mode 100644 index 8c96e3e5ea6c1be54940914a1e47d9b8286427ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1265 zcmWIWW@fQxU}E57xLI5f@=wID(vpRNfnS7yL7RbrAuqK&wW6RXwYWGlKTp>{&qU8a zuQ)#^9w?Y!R1%+9l$?=Sma3OkoS(vA z-7nYL8zg0?zMgxx>Bg6btCwz%V7~v6x4GfW{!q2-Cvh)2&Td`c|K^AHjPw;;A^&cA z%vG6pk$L0YQuW`3p`mI5`&iTp91Z1v|6%mJy3I{5)1}NNa?&Du*3is$m)yTcxHYcd zs+p?Rw0PAjjoX)}J$#+Xb~DQI&=)mPn>*ztPw(!FEOZyXGr2%^Dy!uz&m9vknuku+ zy(?6INBdjn{K?**Hr#Sy;aXgG(2|$UD~7uviT%{p^Pac2w{W}=Q4Xk8+AEMJRv!Is z!JWnRBF&$+)HX)N+IB16z5H8tw{W9oc!=NOk_&l(2K)XR)hC{>v(>uDGbjAk`^Aoz zGCOrvJn2wcl+k~Lk??$~o5;FN(f5oK(Y8IKUldMi&7OlzVTV?lPxi1rc!G*Yk%aq%=>z|3ZER9k! z)SId0*3rmeEXZNhpp>24(+Cr*|rov*jAyK?f?w5kJ&M%roOs`ktdv!59rU&3o> zBU8>Uq-wLAC;neAi}J?qAggJD93C=%uJ>GA#nZ&-`A$&#Z$z5Fvn-h9Rzs-s#ty*)98RzqVJG!nvqT+mvK%iVjobDm{ zS&1wMPQ6oCy~%y`%|!ofKE`$0WpN9tbAC=$ukd1H+$eVXiSfkO64Gv;Z~uMvID3xx z`3oU7MOw;{1=q{D_P1$narW*tGm>4D!S$nY(woCG=adMZ$PBb>o0U|2vLoa5Nwo!& zKEy6P6!BnsyTN>~lft&FhO_6sthDVppz$WIU+wg*A1-CLlnc)8{`@xA>0kM8f8)6_ zvmdv{E52k7_jxRvU-iG?Z}bhhkDoKUlPxb&&wzizI^=Df_2}6E&RjT%}u*ybgq>ZxVUe;bYGGEudHl_Tbe23LH*6T zB1{wPXPXDut}?o~^ztu(x%b624t@M@;AVa>|62C_zZXL;-`pjwvHMlCeS6YJ8@qn3 zlDyxU(sy_6&=HaT6yI{{M}*SCfE~>L`ZIZpi&a-^+}n4Wzr~^Y_`d4XI}P}qdFOCE z;RrG;DPjNri*4e{0B=SnduH5a5U>~mg9b(rMM8-b;LXYg(!vOYkwCf$Sg28IR(2HTE~bmKq9g$pm8+h)x>=V)H0 z>VCP_-XJME_4VAlO*g(gT)lLA1oQomyv+?~_J^uvKZ$$Madzth|2IFpXQZ#-3i)@_ zW3I})i_9DEma6|Q3=LHi*vFz);AklS`wye%)opHinJ#5Ek&_nLvxa82yX2+atXQ-= z_sNx?oOW}ZcWm8ie73G`x7Xk2S9`v`?Bo)j{^F#=bv@@fA;!PeS|7sfy2qNxym(j@)Njh14C*Lzw%l;ZR0uZ zsd>+yE?Js; z9rInMpRuM+H9qXrB&BocL>|wFf4ArC-yS4wrN8}XI!}8wBV;x|Xl=W4qLhj|KqzKv1apJUpQ zlYV_>&(o0VfQ#Q#41=FFzFp6z7`FJqxv%AJVY2BhM;5Ye))6``Uv02O{K-M%N}(=W z@4`8~=OP@r9=_;fUT{#D!*b3R0riMg@@3b>igJSvUb!?=FrxF-Y}ut1v8Ku5J0Ill z%bK%C>EEKw3k@f1zU&aO!8!NqpBBcBXI=f-&v|r>Ox@hs_*JCY&Mth)I(>uZT-Mm6 z-WR#z$G09^`O#4R$G53B#k;(&bJSWmsTpp)?QcK*Ak~Z?aSGYRdeqju}*{cC?^`yANEa8$0dVwub>#}8>827=e~ zlahR{slRLtICAsSrjL%(tc-Ss%Nkmy~>pxMtz> zN8w}l<09`9#&Q$?H901J{(p4aGSL8UMkae^+{F;EBm#p5Mi50pp%mcF$_CQH2!xS9 Lx)oTqF)#oC%Em`g diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.7-compact.zip b/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.7-compact.zip deleted file mode 100644 index bfa9d86b0c03b64e859be6e3f380a6bfb050b4f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1403 zcmb7^YdF&j0LK5DZDez4ax$qL*CHED*``dnL`%nUJ0jN%bJ?&a4zZHjkZUCO%TZXz zrPEv*LvDv$iX_)m9&@J>b3Z!Y&xiBAAKvGEpXdGhvm}W?hyWOn1cvDWHVqk>+szOF z$dv^EO#lF>jah$Ab zx(WBP2)5UdTjw7`nV)WvyEF0>s>{AZOsvsR=$T!cn(K?SSCtGf>2D<31@ zy!(CM!A_0dPIk%4kR5FF7G6Lrm@w$jaae}OYa&>AHw5lQG|1CSGdsqzao%o=Q{ub} zS@vQdmbwF!c`CQ4SPXJLJnK-#&YvvlQgHHhC75lBT(_>!cJ;t&?FCN%r$;&S!lFR~ zqfCodG1Xo|xCto{Q}Ut#{$2~7&o*j96A&3jwV9J*{b~60Mtsp|TAfe)>s{+b38)gq zBKsu4tS~KMv_6p@wQVU&*N>EkMjO0<da!APd2}Jo{abYT?=Ov`-46ix! z2+vGL`||Pfc5A%JOP9M&Hd;XjS|{%@+Y8KobyQr$<(jY3O~A0NwMHfR_jc{t(JlOz{vql!UNVeS4cey6C}dD-o$KOX${d+ei?LeeB0DgXa|^jEGA0#u`%&%gy_Top z7Im@OaSArlkc#$K9!Lj;^Yw{L#~rQnLTtaDFmKG2c_GaSwD|f*qMoSRsRlh)KO2I~LUil~h@8@d`Yvqq*XD@h7ifam zA4ShPn9^^Sy(Z#I@DrWwZx@1TpS#jEnIVcYt$~%0W{MX&b(1~Z(|;LbY6UMTx;nkR z+yY8D6z3uU;CCO`NAFzde;j3V;NoiKq;#xn7H^QFDvA&;wUte#GQO!4xsOZ_K zArWx0#Z79r9?GhJ;{9yYKD}T(yi8nqf}4`MCm91W!`4C8B9nMD<3_0;%#bt>eLcVa=sM^Dz@j>dXt;vu4=|k zEX(0GGj7N0ggDEDe6&L&TOE)3ma+sRL2HViHQ}RWI9PHSOb!Wr#&gXCFo@#O`$e-yiope>|V(`Fx&#zy7`;1tcI3r~v{pG3Z4N8pKxs z0J=5+SONf$9Gf0XC8orZ$#_CC!q(c++SZy(IE&pG2`LmTE+skvpB8JKNG2rjQcwgU z0DuMnZh3j}4qFbSikCy&!>V_ClkujV202#)_PU!jK-!&}7JDvKwFHBvC91#Bo^@hi zNpq2+yywmLPc5zcmd3NdL9%i0dnV;0pr)x*v#%r!2ByJNfDt|H48Ly4`Ml;Hv&N&+ zTtjYDA{8rc*vl@j^)G?JUj{w3Rp$x6c|;<2ndd1U;PW_pTEc_Os<|Bof|(07 zph7=NTohJZ_w@L$XM!X!WBWztGQHoJ8rT^vLu&iR+k9Tr-RQ!xrQ~5MW5&ErefJGr z>1pypZM+-;m2MRl+K(i$0}g}|sN-T(Z-;QO!M?G<+~&EwYebdY#}Oe@U8f|3sOA}y zfIH|+5J6uBu8j^8YnW;AcXr+DhFC})>-Ep%c@)7oE~(H*7lHLE>De36(PwiX@Du(N zNaJRuTbf$~nvM0)P%Ws6DJ`6*3N~8_S*tR8iKrbD;pZO4W!fy*6RrO6Q;J2i=P(>E zTPNw7Y93U_Zl3++8l+9$mtDthE!gFRu6}u6Ao1^t?ti3EB)c+o?jsR?AWy2XvZOwo zrBVZ9$k(*jcAs!qqXpO{wHJ%I{IKoY`@Bo1ahr~~g-a^=+Jby@)*!M2hY0>%KWJUk10yXdztC6(O?S-i;gf>6f=o#pb5t8L#6UY4miu0^#`~7inAR zj0JPaCd6tIe^YbMQx|?+*|U_Es;kDVlUo8fRf&FWohCSLcyzO9**M63gX}&ciAh9F zRP4rr6}cXpM%yBnOwEWUIoW2!qk7A%(Pv)CX<=f`oQ>K!R;fqri9}Xcpm%Us)4Xsn z2YU>hdw#8d*$3kOucnesL zr=91%nLVj&(jeWkGd#)aL6Tks*fQ?dwvqJu`*hJ2P9r*YE^EX>V|%uDR&V4v%Cz-S zh_@oEUAOx(!m~4-xtBXM zs#KG%$}fY?eQNt;u%5;s;qR^5%LPg*@rw>+g6;bLPlU*F{QK(EYDbOK+*$f?=b@Pf z968i45GulHWqj{$z{vwIrf#HoK9XSY_LgurU!#PfH;%WIl{iAk?Wy&sbKV-F)v3QD p`+5O?UpaXs=)ZBeL&SeYllvC`1CIW_ib~%uayt&$Nma#f?H}1sjfVgL diff --git a/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.9-compact.zip b/tests/ast-parsing/compile/newexpression-0.4.0.sol-0.4.9-compact.zip deleted file mode 100644 index 2d2364754104f766b693e807289d778e3cc0eaa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1376 zcmb7^YdF&j0LK5zjKfiw=_F~%C24DNi7?5sNkZey+%J#Va_mNtTv8ZON)u|)RPGjY zX*!V*Ni3Ignb1ngb%kVer1SlJIPd%6_dM_OykCDVjxt~yU=y$z7-mr2R!w!1i@^Y( z1_J;?006>+&jv?P>A?&Ji4u-LAx)4dB!d#>w=q)a5q<&mpit78U?iDA3I7c&3-|y) z0svSunIXnfW7^%`?mA1Q+il?_-6pN1jFTE@eXinT)2h!cG56~|WX8lw7ZbXg-1Sa> z@SS45sx5GyS#it>DOPa%X9&mEx$|14YBW+`LUVW5Q*H$7QEiQON~9o%fjWC633JAZ zc%5S->rP6+PzvEK=5L43v-A=ROH22R^kq*>lORK$7S9&-U{=Dj5g$hzi8L%!m_^;e zlC{Wlc$E42pgRjOsv0jeTu#l;a{T&m7z0))jBB<~f*kW!ObC?gtnG0asZTO7;T0$f zEIW+*h}heu{$%b%j!sRtTM|NBl@I6M%KW2E_b{8$wn7p;x%VlH%Vi723bB`cllAOg zho?t#VmOf7^geTi^{7i;RSm__=eRwMR#@LIJN_Z`Bz&2q&#%Wcc6plnQe#DyQR0D8 z;k2dtuv7dLS>LjHk+5UshbkVfHopg!+6cf(MYzt&3vKQ0Oj)lcdH9#DP50BBDS zQ_SwPe5=%Cff<;PX$uY2^x?%gYpe!MW-A*k5g^-OMY~a|#sM!4iT+p7YgUQl(3zL4 zA2Mia%BR83U<@nFUg;Bw5`uQ1hfv)7RUC4054Tem?rCqL;qYOCMd z_2~}9GWPq&vb>w+VHJ6JTidH+-We8=4VV88JVI!$Lfn|8T>s8mMLi3$Ymu6G1_o&= zuGOqTkG*iRcxu$|HD~(eTcTMVN%$ICxs_IrzMe93v9f}r>4 zcLdoJaof2lD}Fq-AaOtt@|Nl9#M@f?>H*)WWJbY=C?PjjihSc7@{u9*(%l6M2*!=_ zS=i`iJch@#{Z3Xn&uG2qr?%L~u29a|HpSi&v5x|iHm&JBq$ z-tMgnISn}6;lHE;n>B;^jlRpvc(%M^(Q%vXIUfNNETG_Kc0uu>iUTiu72 zbfbAylGnV) z0Mz8FU1%f%7F>A)my(|E|8-xTDNDTGaZ7jLJ&lQhfuEg$L4|>Vp`a)+JvUL;K+i>1~zD$2{kG{v5E4S9m-!tC4IpUegqFnBzErCLlBUi`I zdCkTdaO&TgZCm49^G{iQOn#tx#{b=fxl`I7b}?D2M904tifenj@>qaFp`4k_bCZbq zO}1O-?_-p`!N{lX$}Q%hL*AAZkd`Jvo% zYGTyK>oT!F60U4|D0#oIVRv%VI=)S0X7{4&lMlw@gZ z+5baiND}G^t`_hc2 zv|o*vz8ne4R*mdB>#6yC13Lo?>V}@GQL6pVg9$;cRxXVdkmV z&HI-ZMju$8Hc8!7>+@0Bm&;q~($?~vn8o$#^HM*aQ!oF2k-Z}s;LXTn&x|{z0uw73 cG%$iFV$yAZH!B-REh7*H0qGUMbkD#50GD=CJpcdz diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.1-compact.zip b/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.1-compact.zip deleted file mode 100644 index 1db167805ba644deef43b11fa5053fd09ccae93c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 785 zcmWIWW@fQxU}E57s4grBnclvBPdXC=13xm(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=yXkRMEctx5 zU3$cdmZc||nI|!u{)n7@>&%6~e3|~@9(|89S8lDBzsJzG?cn+zua(P=i%<9}!{9jo z>AdNEjq!hrZ8Y3m|=|kKt~{1m_uSZlb3Inl63{I(Del)~Rsq zpLeHtmtN&&7Vw_?@3@~w5yK{bnOVE0EuXR8(D#py-n~iBb{oF?U%p-Ytl>STru_|! zPAt8w*OoroeR7kl(Q6su37^)*;Zgh`n6w6tReo7J;!?Gs!RD=8oU;ojB-_S2_c&c3obm+p@xlyD#MW1sj8nt8a?`lJd3t|A*B*F>U|iU#bjyI8V&uU3v7ynuMT$^{@RZ z`5w0X(G#ybe)inr(ixIDD5+g5qHLB&Ca_;b2dNrfz-H-Fzi)toL4t)68Nnw@l8_B5sHuA|yswsKv z?sTo(Iz1*|SYMVp`a)+JvUL;K+i>1~zD$2{kG{v5E4S9m-(%?8tT*|=%KN^e|1OGp_4_^Q zNJwC0xvy^V^%7U7igd~}S=rRKlRdBMY8(F)9$RjC>3H>{*E-8qtbZ{v@}=6cV|PCk z$QrM{dDN5nRsCN1izz*c_wB{cmCjtc$E`Kh>iOxi6oDVP-}KwRF1zOYlW9}frfi-( zk$=^;iqah~tEByB?y#}qVhLkBlajJrYj0)6+QoBn<*z+y(Q*l%&~Bpq~6RBrBXLdGZ(BfpJ{URuJ1IlskRc` zGtyq|jGrnW!*?Ka^DFVKFQ0PA-tJRY{`k{lYr29c&xHj-g{<*6wy{nP?k(l0Tc63b zZOy^O0k%Pn6~8K$3%!6@=-ai(B8IL4hPD#@+(9-7eVyL~SrSEJc&Y$jEz|WH*czf>S>@|MhIk&_% zh%IAsRemY4|Im|9E(`Z|sZX1=@D<0}!W47gj4qXnOS?`V3%P#m0lI?~NDV1qS#OM&B0= zvt8;Xf93M+-|N3iZ?K7GbluUJ&uYcpYOIy zk66*N^dvL$Bxchek<)LTxe%By(_h@9?{VhJt@ZNv82UDwKJWXurEyQzXBAza&hQg! z+NbQ@QeFDud6Z|Z_)PBOin{IRlAe@vbG}*pgQdua;jq}8;8!6&G?e+8iO*!DHoVH|Eo?{>e4>*=u7sDy(;Cq_O5uqIC0u}K8^HK z<@3*Ov75upT4-+Wve39+XPVyJ(ly)bj(#h7_9J~0kA$%M+zZjmS<>(4o@{Xn&`*6T z{^*Ui=)3PL7uZVkuC9;M&T7ny{&ynoOU+3ezKuSn=jX{ZrX5R5Tc5=xEzBzS=4>A@ zEQB`bSU=d4#-I7T+BimAqVQ4a%bPFnrEA{*zIp$@zZW=V{)R7p`|+gO(X+?r`mu7w zUu%CoBYXPF=dnq*_J{w`Jn{M6R>$Bb#hloJ6`bZ9m}LJlJY3y;S*P;fqQ!GJc-{K> z%rev5_|WFJCr)&5YF#;4%#CX4=p ztECGrpUvFKnti-6@0ff0ZYRE)rfAz$F`skhb~CiiQkZxyh(X=@ph9f1Qj4^vb-)rY z_x1WO8g1__e|f0Kc>mkh9Y^kbX__)$ehZtfwY2QU3L9Jf8K0vn76;y*%CEUUX!!@D zpMH}j${St}$aj09G4-#6&ZGcuMkae^+zB6;_Q9Zm5kwJ_4FbGb*+6O;fiMV2e+OnG G1_l84w}GVq diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.12-compact.zip b/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.12-compact.zip index dc1a7d063024676ac4a07709ab19a87e25369dfa..25d79d21eafea7e5c08ebb40253a4dcec07d2de7 100644 GIT binary patch delta 818 zcmV-21I_%Y2c8ETP)h>@KL7#%4gl)4WL6Av+duRI008?4001PDYy&5eLL`45*K@rV zG4V$ag{75VSJ!(05OMDn=$jD3rR6|_G==IMoyCDiL|!KcBoSXtnr>bR4M*=jV>G|2 zIlDM!AW8Ua3CZa!T$J~go3oOT*I71y*(}V-R-BzJ1fFfc?c@Cl$;8sBvLY`0i*n*C zIY1XV0Dq}7uMQnvN|J=n8|iJ+02HeLb+;myr;FlC}F30rZ2>f9NymFyE1?w z-b}akP30W*JbCWsYwyq+l02FJ2oIYN?yL=psqZzY#XsO{j^JJKejTDq859VLc4&jo zw!ZbmHsllX$OSfV!C*(`^{KBytBG6Ysqd@w31z*?x$$Hwu03m!b|HWEdlLzdVmmQI z7TUFmBQZy*LRnV49^%Xq;_Zel6~%I8l+MoKScxE~Hddyub2-{;N?0JAiX=k^ch-yq zkYQuVC*ukaT~&Rpe~Mu0CLUS^EN_1bmyeoo?9iV~y(Dk(1~MJ;zpW``r7fThV|;r9 zz|QnqJJ|buWQ{`=3>1I#<=m{nOFxKt|BsTLe(Fs4DFMt;mOhbcf^hTzzcbi9l&=_3 z0^1d}xiaM4scgq)9ku$B|2tgDw3SuTz?J;D)~?Wkk&oBD0<(ZNbwBvmAZErokmh2% zkffii-h=H_VZT53hc_4fOAK^f(t#ipaJtR9^r1$e!PDZ1B*?IsJaIDf>!L3 zca}E64078)^a20?`v?F4Bme*a0000000000fB}@KL7#%4gh>{a8$Aq;wJwB003$U001PDVFM?TLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2tNW~Uo&x<~1Sg3@h$pZtD z12yD7mAyNIAk* z&$rS~=-_5*iQ2FuDi5Ucxm|w~;AsJGJ3Oc$S`R~`uPaz9Np#{FHxddBH03g$Wl!?t zbXcMxuYc5$dQqMKd6s-eYMy2Gx`{GztOCP6&e?IIyebT&j|6H*a&%hnPi0Hk_nS*>&;nS1(=-J(0M59 z>hiC$?O)g32+2NAkmbpsQ3JzWf}73)TYP0JbW=_IoB5s5PFysw7%66yE)t7$Cv6zIcmOy$(PMVpZN z(nSbix{|5z}QI3HA9#PG>a5T z@qyoOYayg>WHqjGU6a+}Iy7g@JslAIohh0;IXdGUz)GqiB{_eIOa5X}XmlKw;_o(W zW(FqzYLn%(Yh6zALdP-Z(rFYr>L4q5p&7qi)yt+>+nvFZ``peniJz|>H87IM?`8}Q z)w<)`5?$=rPM`K%2HPJbcG=yThZu;TR1#!5pPMz;P*{?fI)2HYkzOWQ5W;&Zr?1a5 zw&BJkYT>+zm5e6a{@1g z#|$NwCz#I*b;ky2Mx#wiLkTQd$=tP>W?L@o$rrYa(~EzGE8`|MmD&5dWBBA7Wz+wE wkT?KPO928u13v%)01g0rad1?!65=NR0ssJN2><{j005I!149Nu0{{R30CR$OzW@LL diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.2-compact.zip b/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.2-compact.zip deleted file mode 100644 index 66dd2076334579d7dd356d4c34eb4320a9882357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 786 zcmWIWW@fQxU}E57s4grBSyw9WoWaDvz|YRWpu)hwP*9YZo|~v^pl70IpjVuq6Q5d9 zkY7|1pIDTfky)0imsOmf$H~IV5X->Oz`$VJ(UETa$GC9erE}Y?dFLF>%T(Pj*V-E- zWv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&16EfrLV~1L8oeJ0f zd3TC;=~Zqf%MewS_HQ}~SGp<;xhq!eyj8j`>xuTmgUYubx8I$-LRo!gsau1;Kw5|Q zXEw_{oQmhJxiFU7y{K`xSNPu`_EDe2L5>Lv>@@FOQJDS6l_T~PpZ!-!g*;7u z;yAYN>0;aWGv;qgOeFJh-9Y zRLNC#L`aOEBj)ui@71p-*BWn~XYpa}?&l_MWgSn|SJ<7|yja5E%ngf~;pcsKK2fyJ z;hlKu$EOM*mOo2^Zm--F+H_%peQ(qmcZU~R-!3$EvD8W}a`H5_%T+$=B)Vz8v{UUS z$MajZUS*hDvt3y0;N8uQmVZN7RJ?!KMJ{!1k7T>}*Oz`$VJ(UETa$GC9erE}Y?dFLF>%T(Pj*V-E- zWv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&16Xbt+u@ z=iMpZrB}I`R_II@&B%NIdULg0Lfb2Zz)2SU3^DQ`X}Dw+KORwTc>5^KNmbF82|F=j@W$%X9Ub%YsUB`rgOpE z8HR`2mvb}wvxzNP&|URc?4{P9Z3RM$quhMcXQ~HrPG7TzQMp;1r$1PA^1ir_kBoJ1 zI=RRPA3L?Z`dR$xt=elv`zGJJd$!;K*UiH4qdm)fFPf%IkO}qi4rBHR{T)@8_iz2< zfPd@vm}WDZhny;IzVF)8en0nHz2)1i-w!gMdF{H(Tb8^;>XvPzWTLxPxdF$Is7cYY z`>t#I8ejGE>E2`4R{wX+*Bh-4C&{-=FPtByL@)R^SLjl z>Cdz1xp(uSdGAl|6QB1i`ryM9c|m|P{`U&`cKM@0Q?^9^{P)9)WlexLBa=Nd?z9R_ eu3*r>2%?BdxdGm+Y#_CaKo|t1R{>K#0|NlD+gGXp diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.4-compact.zip b/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.4-compact.zip deleted file mode 100644 index 971e5ec5108d67ec30720fd4bba78681925175cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 785 zcmWIWW@fQxU}E57s4grB`8exvXF3xD13xm(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=yXkRMEctx5 zU3$cdmZc||nI|!u{)n7@>&%6~e3|~@9(|89S8lDBzsJybVgK)6bv_&{V*4)}%h&EZ zF7mF_e~$h9$!QH)S5Kb^)XsS) zW;LyHvaD%6y->vE>fsxkU)t;~KE9%Jd6rvE%2L4#3wFh|@A_`-m@%b^ao&8h8y6?X zE6-Z-@!vwXT?;>^SY_4QbEvEko-K81@vsbv$+-V*D5@n`nu zE%Oqb**TAIw+q}HVN$wq`>~7_mR|(t|2=VeL%&3orFU}NcZv1wyI=gg)3~;Hf}r5~ zckO&^S{C(lL*gp9XK)?hJCH1WZr{PYe>?Bl6r8@l?1o)JYjckKuZz{!!}En_+C5yb z<)()g%QnF~l^Z z(dJ1|TL0B|V$O;c*SVK^Es?+dHB?|-zwDZwjK+rxW47?kI_gq&>av2(p~qjtkmx0xqqTc#Jg@8&c0198;_TSbrlo{_VfGLyBuko z5js7gzBffLE>qp&{7V(VgW>9-de;x%6MdKI#T)!HZOz`$VJ(UETa$GC9erE}Y?dFLF>%T(Pj*V-E- zWv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&16{C6nlKE9P|NXt{EqO1W z`TSYEEANV241e4mmb1sE=yY7ZVy_;f^r4lhr#7;0nvMF*2HQP5541A>t@d2Uv;HWL zq28j}8T`LiX}>IgooeMEcjjwPsqQLW`Yr+$|77ATC>3Q|@`6KSEts$GH*)Q--xR+Y_$@-i5JcCu4+qqq3vM1fM%yhYv zHfay@2l4CE+*sdj_- z+5c?DGUJddTRz#ZyC|q}Og%S|d2YeyC^3bLzuJ6`&bHLmIPWAa8~**A)v@_JyM-LC z+wv_*d0^zpZ9AXMb)?VZU}yT_HtdP%(oW#z;3^i9ox2BJ#1`eJk=-R z!+5^!rmmP7!|Kl={mnIdUV8H`d3flh_!JMpJueq|EDKiI8Q_05e^$W9r!E)SeAiwO zKJ0Nx;L+EsFO7CRekl^nd9v->kNyHT@t$lusY@3t0^duUa8yZ43oAP4_b8@5zAj{% zb>wz>VBhn7*=FOV64~-}GM>FoGyzl5T)ED;r2HBM=4w>D9ob&%gixw8~g= diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.6-compact.zip b/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.6-compact.zip deleted file mode 100644 index bce0b4ca83711066cee75177c72f3f0a09bec308..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787 zcmWIWW@fQxU}E57s4grB(Gq01pUK3)z|YRWpu)hwP*9YZo|~v^pl70IpjVuq6Q5d9 zkY7|1pIDTfky)0imsOmf$H~IV5X->Oz`$VJ(UETa$GC9erE}Y?dFLF>%T(Pj*V-E- zWv9NLd$;MvmxrsDZjWHT|B<)3;mrO}wd^NxFFMX{UEu%bhxd&16h4qXg|GT~2PiEYBS0EkgVmq0gN5Ae}_{7ypJ->bxudS_Xi#}hNARaR7K-#L` z%#vPHnddit$(EjSRQpxk@>#NgtN?Hy2emR;7u4`oF&R(lur!XKgF7 zO4Zz#J_c9J**5%TRuJt8y8rcw{r$OOU0e!{HJcPRswUa4aGf)GPvh19#}oP=dv`Qs zb#sVKDmAyeQ8h~<;YGg5=WpUJJd-V+uUqVLNz7F=xbr>t`akIkxlzmH<^-tM6s@F$JHPm>}M{VQY#<)yxyW=3MJoVzq|p{W<>l zS2>yAgLx;v;r)}=da-figVn+!ty@-1n!c(|m}f?Dsb{6*yol(RIUm~pu9kP0bKIpj z$RI@M#_{MZ73-2skKatcVRq3aX3pgl>1A&guKTt0k3+ia?$t+h9D1kSbnUP2UJ%ee zt9|*mUkkq0UwCkAg;&%QyCcuz4sE@??(Fg1{P$O73BCTd$MsF>+xFVe6C36C&S~2A zL_}6>lD?_BL)q?*|3 zBo9tKeEf%x+wm(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=yXkRMEctx5 zU3$cdmZc||nI|!u{)n7@>&%6~e3|~@9(|89S8lDBzsJz`%EhI3QueFzJg3QPEBN1Z zJ^A@%3+ow0{&#!3pUk-Nu0T4}#db0~kAB^|@QJIHdVc*XURzt&7Ja@jK|EyEfwWb> znI*lZGS6@P{4ecg;Zj+>34yvd>Qr)Wf15G=gx%@FL&6JBmL1B?+T}9!`EgVIpvdoz z9%|dv-t8Auc<~{tM#hxoe*`ui>vmti`!)B0?ijy+XHRZEs@MGF5MR3Sp|!k9 zZHBsE%Ac>_ydyBgJE3__*3-0g?~3Gp&gELdrS|j-+rp0@rk`t&{Ck3PMcrxp(_gqs z0@}Nx)zbTCx9L92sb0{Ue%fsJmNP+LW}h_{%F z-15C=f1<=Q`2)&rSG#*E`nn?Ovs){L-g36rpL5TZdw2Na2mc8-ryDx6*9u8w#Y8Wd zUiw)`h-Vxx*J{TT+Z{XClDX#7)o5an%wiQy5$#q{=DL$9ycbmDlfBqD4LAi$fI4WyP42!nw1Ctwa@U;qGK CeSWV1 diff --git a/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.8-compact.zip b/tests/ast-parsing/compile/pragma-0.4.0.sol-0.4.8-compact.zip deleted file mode 100644 index 9893308af994a4232d65a858973f9ef0537081ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 858 zcmWIWW@fQxU}E57s4grB;g?t2wtm(Fdo=ACmiFH?2DTx)NT zl%4u|?%k#vUmmVrx;=vV{zu;ChBNy^)v}+&z34c*b%FnzAKo+4S8#>=yXkRMEctx5 zU3$cdmZc||nI|!u{)n7@>&%6~e3|~@9(|89S8lDBzsJz`Y0H%}E16$)^WWdA-jet7 zna`iqyYjBc#qh`7VL5wjicZJnEB5L!N*`L8dTJy4rrD^^Y_Q$4^FS-}-)hfwJnN70 z80symox%TWb-FuqV$%5swf<_aQ;x?Q{uC8^;%wmXAl>||)>8N4Ga4HLSHAhS?&6J# z)eQQ7pWNQUF->82n{1NUQ4bF%(=(-&iVtQif0?9wI>6xYo%8lyA@WNf*0cnadb^#D z`{jK3@q6D@K5O;EE(yKwwENqeX3D=%(xBs)#_Y#-?Fp7CU1MZR+@d|< zCX7YDtNy8!tbOZsC^3HP-aifvOl^ISzgum7ec)N-=B1``yXWpb@wm48MwnirQr4BF zOMVOOfB(ecU6b6=oqRoN;+NC{C+PJS$vpdXO8EJoSy?vCZ)A!VZak3Mq*ock!L`as zJZwh0{S|)RMYfM-UVU5?P%V`4ApF9IEJuEoUm6-$!~(mQwkCm8Bl>RIuW|*m#%cI9q-5+y_^Vu|05` zu9;w@TW<9KONQy%0B=SnduH5e9+>RGpn(xY5t9P~yjj^mY8inr2uObd<{$A8uz26`rX271N$Iq|6# z1^GoK@rgyr8JT6NdRfK!d7Lb)46zIh4Gavn9UbY$e~b$kUOKnUns?68yiC>oa;?2V zQg-U=xp$jxe0jKf>GlZb`yY9m8_w(xRm*-7_oCzM)&>4=et6GFU%?gf@21C5vE=jJ zcIgo-T9%$8>Rw});-lzJk zzIXA2$xfSJAD#&9+{JdObK>1~u|KSWiZqKwmwNcbcW!nq2#8qIslIk6lWmLoUdJ6f zKTe<0csNIYo6QQr-%5%mB{$z?X!zeQ6KF4fyZU~jx|;aYl2v=ZzlcAxanJhcQzZX4 zEeMqF`MvsL-2AIgJxs*YvP=#3-{4b?^R2#-X4+!XyZcHs=So?=&9C|vyeZu%xk@u# zyLGDk7ymPTizfuF+rF1w(rrFhtB5Sbw)cCY$L=e~_<0;x|< z9ocvBXVly(cwsOqDH70 z6g8@)cI;KPRnM#%jYmp2z3=zj`+j)8yq|xzmfSqX02d$vm=goB1vzdr61)KLLIMC3 z0RRXLCHh?SA`mo*0R)db;ei3cAs$}A-aft$?r7d42HY3q;RW0PAO-*o6B6*qBV?n+KMe z_+laK@zk}Bze}O?+`h*-gG6F=*}7Qpmiqlx-zMRPAZyd?fYWyqukG)W_Ksr^i1JZ$$P)rEfbOXjq&P z!?!=K;W=ru*LgT6(Ooi|bk=qon~W>k3FVx_LN*t~L6aZ#eJCnskmfw?+5PR^pExy_ zVKQ98VNVf`%Th}E)A^wqL#At_-%{-0t-tcfG``*jsjDyg4PP6%=?R@`ka%-MS?nC6 z1>I9>uBIgSCU)%>8l|~2K>SXf%e4y14tw##u`TP_rBP0`F00&?@y$6;O5wg$WclPc z-AK`yoQbq@@S~l!L5~#dw04ZC5cgpqwrIO=sOOpgoQA@B6IHM-JxisfMPIU*`YhGE zbn0_c)&M~SDAi#E5F0bgYNqjGCG9B4@lAWhw0n|6$ENNAys5skzx#(KS{2-$8pKll zQZ_fGa_>r~=5Fz4;3un;9Cdh=yAI=I)5jX+an(3 zn8E_@fm)bGnhAz|u)TX%fr^8~FLotTkYlcY!DWxbH+4{&J748R)HbBh4Y$k;ew!e` z-ba-1tq@0#?4by+(u-;{dL-v3kLXba0(;E(li*I;zOu3>++Z}cS{N-^b;YpUhpIo# zR}EDSBwgSSirPrt-vo&`T-P&+ExE;x=r;FxyL!m#f!F%J{XjOIl!G)_s zZ{j~XF>C+}I|k%&W3Kwny-93mwA)mLw212zS;3K{^{&jpSlXa?NVCQORxZONRp*#J z%o1Y;2AoG=%t&2WIYN_optBG55X0SVi|a8RDASDr# z2o3cM?2mp&)EuBFGqtR^kP2lhkH2b+1pZDt|%gt zp&0EK5%lN^GYb64jY}qhf!;D?pgHM_DUh78{ud~enWTuOMdn(UQ+ItfWQq&UWXWwr z7iMN^vytnE5WB4}7#NBka`3Tyj4zKyKUevFt8DvdTt2c8Qs*(;{+Zm=mIh@j$gYzc zmGmhrTj`n9cFbgLL_{t%D1B&ue|~fsoexSZ`hX+6HfM#53l>8z%6u0Wr`vb;R_K